Promptles
Constraints

Follow the Plugin Layout

Only plugin.json goes in .claude-plugin. Everything else sits at the plugin root. Ask Claude to validate it.

Claude Code finds a plugin's parts by where they sit. Only plugin.json goes inside the .claude-plugin folder; skills, agents, hooks, and MCP settings sit at the plugin's top level. A part in the wrong folder doesn't cause an error, it just never loads, so ask Claude to check the layout with the validate command. Vague: "Set up a plugin called shipkit." Specific: "Create the shipkit plugin with its skills at the top level, not inside .claude-plugin, and run claude plugin validate to show me it passes."

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