Follow the Plugin Layout
Only plugin.json goes in .claude-plugin. Everything else sits at the plugin root. Ask Claude to validate it.
Where you'll practice this
2 Promptles scenarios teach this principle directly. Each one drops you into a real engineering ticket and asks you to write the prompt you'd send to Claude Code.
Fix the Plugin Layout
Dana, who writes most of shipkit, has a first draft at `plugins/shipkit/` in `acme/claude-plugins`. Loading it with `claude --plugin-dir ./plugins/shipkit` starts a session with no errors, but nothing from the plugin shows up: `/shipkit:notes` is an unknown command, the lint…
Publish the Team Marketplace
shipkit is at 1.4.2 and the whole team wants it, but the only way to get it today is to clone `acme/claude-plugins` and start Claude Code with `claude --plugin-dir ./plugins/shipkit`. People forget the flag, run stale copies, and nobody can tell who has which version. Priya, the…
Other principles in Constraints
Define Component Boundaries
When splitting a component, give the decisions already made and say nothing on screen should change.
Define Inputs and Outputs
Say what goes in, what comes out, and what happens with bad input. Leave the inside to Claude.
Define the Business Logic
Turn business words into exact rules: the fields, the thresholds, and how they combine.
Deprecate Before Removing
Keep the old name working for a release, point to the replacement, and announce when it goes away.
Describe Edge Cases
Name the unusual cases you know about and what should happen in each.
Describe Type Contracts
Tell Claude the rules the code doesn't show, like allowed values and optional fields. It can work out the rest.