notrest

The plugin tree

Part 1 · PLUGIN STRUCTURE AND ARCHITECTURE · Slide 3 of 60

plugins/notrest/
├── .claude-plugin/plugin.json      the manifest (name, version)
├── hooks/hooks.json                what runs on which event
├── hooks/*.sh, gate-check.py       the 11 hooks + 2 helpers
├── skills/<name>/SKILL.md          32 skills, one folder each
│         ├── scripts/*.py|.sh      the skill's runnable tool
│         └── scripts/fixture.sh    the tool's own test
└── README.md, docs/                what the consumer reads

.claude-plugin/marketplace.json     how it is installed
CHANGELOG.md · docs/MAP.md          the record and the map

Rule of the tree: a skill is a folder; a folder's name is the
skill's name; a skill with a script ships the script's test.