mirror of
https://github.com/JuliusBrussee/caveman.git
synced 2026-09-14 18:02:35 +08:00
0385ad9bbb
Three loader facts the manifest was fighting: - An explicit `agents` array loads ZERO agents. `claude plugin details caveman` reports "Agents (0)" with the array and "Agents (3)" without it, so the cavecrew subagents the cavecrew skill delegates to did not exist for plugin users. Drop the key and rely on the default agents/ scan. - That scan takes EVERY top-level .md in agents/, so agents/AGENTS.md and agents/CLAUDE.md — maintainer docs for the profile registry — shipped as subagents named AGENTS and CLAUDE. They move to agents/docs/, which the scan does not recurse into. - commands/*.md load as flat skills beside skills/*/SKILL.md, so each .md stub registered its skill's name a second time: `caveman`, `caveman-commit`, `caveman-review` and `caveman-stats` each appeared twice, a 3-line stub competing with the real ruleset for the same slash command. The .toml stubs are Codex/Gemini-only and are not scanned. verify_repo.py now guards all three, and its skills-are-documented check only counts a name inside a code span — a bare substring search over the whole document meant `skills/migration/` was "documented" by any prose sentence using the word, so the guard could not fail for the drift it exists to catch. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SqmbqWDtNexzDfH5V3BMRz