Follow-ups to #888: 58 components without frontmatter, duplicated nested paths, CONTRIBUTING template
Follow-ups from #888, which repairs every component whose frontmatter exists but doesn't parse. These three items are what's left after that PR, and none of them is a mechanical fix.
1. 58 components ship with no frontmatter block at all
npm run frontmatter:check (added in #888) reports FM_MISSING for 5 agents and 53 commands. These files open directly with a # heading, so Claude Code has no name/description to load — the component is listed in the catalog and installs, but never becomes usable.
Each one needs a name and description written by someone who knows the component, so this isn't something --fix can do.
cli-tool/components/agents/business-marketing/cli-tool/components/agents/business-marketing/cli-tool/components/agents/business-marketing/vital-health-content-agent.mdcli-tool/components/agents/business-marketing/cli-tool/components/agents/business-marketing/vital-health-content-agent.mdcli-tool/components/agents/development-team/sdd-spec-writer.mdcli-tool/components/agents/git/commit-guardian.mdcli-tool/components/agents/security/supply-chain-security.md
cli-tool/components/commands/analysis/supply-chain-audit.mdcli-tool/components/commands/git-workflow/create-pr.mdcli-tool/components/commands/git-workflow/create-pull-request.mdcli-tool/components/commands/git-workflow/create-worktrees.mdcli-tool/components/commands/git-workflow/fix-github-issue.mdcli-tool/components/commands/git-workflow/pr-review.mdcli-tool/components/commands/git-workflow/update-branch-name.mdcli-tool/components/commands/orchestration/archive.mdcli-tool/components/commands/orchestration/commit.mdcli-tool/components/commands/orchestration/find.mdcli-tool/components/commands/orchestration/log.mdcli-tool/components/commands/orchestration/move.mdcli-tool/components/commands/orchestration/optimize.mdcli-tool/components/commands/orchestration/remove.mdcli-tool/components/commands/orchestration/report.mdcli-tool/components/commands/orchestration/resume.mdcli-tool/components/commands/orchestration/start.mdcli-tool/components/commands/orchestration/status.mdcli-tool/components/commands/orchestration/sync.mdcli-tool/components/commands/performance/optimize-build.mdcli-tool/components/commands/performance/system-behavior-simulator.mdcli-tool/components/commands/svelte/svelte-a11y.mdcli-tool/components/commands/svelte/svelte-debug.mdcli-tool/components/commands/svelte/svelte-migrate.mdcli-tool/components/commands/svelte/svelte-optimize.mdcli-tool/components/commands/svelte/svelte-scaffold.mdcli-tool/components/commands/svelte/svelte-storybook-migrate.mdcli-tool/components/commands/svelte/svelte-storybook-mock.mdcli-tool/components/commands/svelte/svelte-storybook-setup.mdcli-tool/components/commands/svelte/svelte-storybook-story.mdcli-tool/components/commands/svelte/svelte-storybook-troubleshoot.mdcli-tool/components/commands/svelte/svelte-storybook.mdcli-tool/components/commands/svelte/svelte-test-coverage.mdcli-tool/components/commands/svelte/svelte-test-fix.mdcli-tool/components/commands/svelte/svelte-test-setup.mdcli-tool/components/commands/svelte/svelte-test.mdcli-tool/components/commands/utilities/all-tools.mdcli-tool/components/commands/utilities/architecture-scenario-explorer.mdcli-tool/components/commands/utilities/check-file.mdcli-tool/components/commands/utilities/clean-branches.mdcli-tool/components/commands/utilities/clean.mdcli-tool/components/commands/utilities/code-permutation-tester.mdcli-tool/components/commands/utilities/code-to-task.mdcli-tool/components/commands/utilities/context-prime.mdcli-tool/components/commands/utilities/debug-error.mdcli-tool/components/commands/utilities/directory-deep-dive.mdcli-tool/components/commands/utilities/explain-code.mdcli-tool/components/commands/utilities/fix-issue.mdcli-tool/components/commands/utilities/generate-linear-worklog.mdcli-tool/components/commands/utilities/git-status.mdcli-tool/components/commands/utilities/initref.mdcli-tool/components/commands/utilities/prime.mdcli-tool/components/commands/utilities/refactor-code.md
2. Agent committed at duplicated nested paths
vital-health-content-agent.md exists only at these two paths (identical content), and not at cli-tool/components/agents/business-marketing/vital-health-content-agent.md where it belongs:
cli-tool/components/agents/business-marketing/cli-tool/components/agents/business-marketing/vital-health-content-agent.md
cli-tool/components/agents/business-marketing/cli-tool/components/agents/business-marketing/cli-tool/components/agents/business-marketing/vital-health-content-agent.mdBecause the catalog generator only scans one level of category, the agent is absent from components.json entirely. Fix: move one copy to the correct path (and give it frontmatter — it's also on the list above), delete the nested cli-tool/ directories.
There's a similar stray file inside a skill: cli-tool/components/skills/business-marketing/app-builder/templates/cli-tool/TEMPLATE.md.
3. CONTRIBUTING.md documents a format with no frontmatter
The "Adding Agents" and "Adding Commands" sections both show a file template that starts at # Agent Name / # /command-name with no YAML block. That's very likely where the 58 files above came from, so fixing the docs closes the tap:
- Add a frontmatter block to both templates, with
name+description(agents) anddescription+argument-hint(commands), quoting values as the sub-agents and slash-commands docs show. - Mention
npm run frontmatter:checkas the local pre-flight. - The "Available Categories" list (
domain-experts/,creative-team/,business-team/,development-tools/) no longer matches the actual tree undercli-tool/components/agents/.
Related: #65 raised the same point about command metadata belonging in frontmatter.
I'm happy to take item 3 and the path cleanup in item 2 as a small PR if that's welcome. Item 1 is best split among whoever authored those components.
Source: davila7/claude-code-templates