CLAUDE.md had grown to 545 lines / 50 KB — most of it plugin-author
content that other AI tools (Cursor, Copilot, Codex, Aider) and humans
without AI never reach. Extract the plugin surface into 10 focused
docs and a JSON Schema for plugin.json, then slim CLAUDE.md to a
156-line navigable index.
New docs (~999 lines total, all self-contained):
docs/PLUGIN_AUTHORING.md — entry point and quickstart
docs/plugin-manifest.md — plugin.json field reference
docs/plugin-visualization-contracts.md — setRenderer / overlay / note-state
docs/plugin-audio-mixer.md — fader registration
docs/plugin-logging.md — context["log"] + env vars
docs/plugin-diagnostics.md — server_files / callable
docs/plugin-keyboard-shortcuts.md — registerShortcut + scopes
docs/plugin-sibling-imports.md — load_sibling pattern
docs/websocket-protocol.md — /ws/highway message reference
docs/testing-plugins.md — pytest fixtures + Playwright
schema/plugin.schema.json — Draft 2020-12 schema for
plugin.json; license enum
mirrors CONTRIBUTING's curated
allowlist. Backs CI validation
and the plugin-validate skill.
CLAUDE.md slim (581 lines changed, -485):
- Removed ~300 lines of plugin-author prose (now in docs/).
- Kept architecture quick reference, running the app, testing,
git workflow, versioning, song formats, frontend/backend
conventions, plugin authoring INDEX (table → docs/), first-hour
pitfalls, "For AI agents" footer.
- Anchor stubs preserved next to the new index entries so deep
links from specs/001-slopsmith-platform/analyze.md still resolve.
Verification:
python -c "import json,glob,jsonschema; s=json.load(open('schema/plugin.schema.json')); [jsonschema.validate(json.load(open(p)), s) for p in sorted(glob.glob('plugins/*/plugin.json'))]"
# ok — validates highway_3d, app_tour_library, app_tour_settings
Signed-off-by: Miguel_LZPF <mgcdreamer@gmail.com>
1.9 KiB
CLAUDE.md
Claude Code memory file. This repo's canonical project orientation lives in AGENTS.md - the cross-tool standard read by Cursor, Copilot, Codex, Aider, Cline, and others. The line below uses Claude Code's @-import to inline AGENTS.md into this memory file, so there's a single source of truth and no drift between two near-duplicate files.
@AGENTS.md
Claude-specific surfaces
The rest of this file is content that only makes sense for Claude Code (other AI tools have their own incompatible automation mechanisms). Skills, subagent, rule, and settings live under .claude/:
.claude/skills/plugin-scaffold/- generates a new plugin skeleton (visualization / overlay / settings-only / routes-only)..claude/skills/plugin-validate/- validatesplugin.jsonagainstschema/plugin.schema.jsonlocally before push..claude/skills/speckit-*/- spec-kit skills (auto-generated from.specify/; don't edit manually)..claude/rules/plugin-author.md- glob-scoped toplugins/**; encodes the contracts fromdocs/PLUGIN_AUTHORING.mdso suggestions don't drift from them..claude/agents/slopsmith-reviewer.md- plugin-aware code-review subagent. Invoke with@slopsmith-reviewer..claude/settings.json- repo defaults (no hooks enabled by default; commented opt-in example forplugin.jsonvalidation on save).
See .claude/README.md for conventions when adding more.
Why this file is short
Everything you'd expect to find here - architecture, running the app, testing, conventions, plugin authoring, first-hour pitfalls - is imported above via @AGENTS.md. Updates go in AGENTS.md. This file only carries Claude-Code-specific automation references.