Skip to content

chore: give repo skills descriptions and fix their broken steps - #1057

Merged
cpcloud merged 3 commits into
mainfrom
chore/skill-cleanup
Oct 25, 2026
Merged

cpcloud merged 3 commits into
mainfrom
chore/skill-cleanup

Conversation

@cpcloud

@cpcloud cpcloud commented Oct 25, 2026

Copy link
Copy Markdown
Collaborator

TL;DR

All 18 repo skills in .claude/commands showed <!-- Copyright 2026 Phillip Cloud --> as their description, so agents could not pick one by topic, and several gave steps that are wrong or conflict with each other. Each skill now has front matter saying when to use it, and the broken steps are fixed.

How

YAML front matter has to be on line 1, and the license-header hook also wanted line 1. The hook now puts the header after the closing ---, the same way it already handles a shebang, and fails on front matter that never closes.

The skill fixes, by problem:

  • Conflicting PR rules. create-pr required an inline heredoc body and banned temp files. It now holds only micasa's rules: rebase merges, labels, reproduction steps, no test plan, closing issues.
  • Wrong file. update-vendor-hash and flake-update said vendorHash is in flake.nix. It is in nix/package.nix.
  • Destructive recovery. pre-commit-check said not to run the hooks by hand, then ran them, and recovered with git clean -fdx, which also deletes the generated PDF in internal/extract/testdata. Recovery now removes only .direnv and the generated hook config.
  • Outdated steps. fix-ci polled with gh pr checks --watch, capture-ui uploaded with gh image, add-entity named a Snapshot() handler method that doesn't exist and skipped coldefs.go plus go generate, and record-demo described a GIF and told agents to edit a script that already takes tape names.

The codebase-map freshness hook used grep -P and date -d, so on macOS it said every map was missing its date. It now uses sed and jq. The maps still match the code, so their verified dates move to today.

Reviewer notes

  • Stale hook config after merge. .pre-commit-config.yaml links to a hook build in the Nix store. Until direnv reload rebuilds it, the old license check prepends a second header to any staged skill file.

🤖 Generated with Claude Code

cpcloud and others added 3 commits October 25, 2026 06:01
The license-header hook required the header on line 1 of every markdown
file. The agent skills in .claude/commands need YAML front matter on line
1 to declare a description, so the two could not coexist: each skill
showed its license comment as its description, and agents could not tell
the skills apart.

The hook now treats front matter the way it already treats a shebang and
puts the header right after the closing --- line. A file whose front
matter is never closed fails the hook with an error.

Generated with Claude Code (claude-opus-5-5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Agents pick a skill by its description, and every skill's description
was its license comment, so none of them could be chosen by topic. Each
skill now opens with front matter that says when to use it.

Several skills also sent agents down wrong or conflicting paths:

- create-pr told agents to pass the body inline and banned temp files,
  which contradicts the usual pull request workflow. It now holds only
  micasa's rules: rebase merges, labels, no test plan, closing issues.
- update-vendor-hash and flake-update pointed at flake.nix, but
  vendorHash lives in nix/package.nix.
- pre-commit-check said not to run the hooks by hand and then ran them,
  and its recovery step ran git clean -fdx, which also deletes the
  generated test fixtures in internal/extract/testdata. Recovery now
  removes only .direnv and the generated hook config.
- fix-ci watched CI with gh pr checks; it now reads the failing checks
  once and stops after the push.
- capture-ui uploaded with gh image; it now uses --attach.
- add-entity listed a Snapshot handler method that does not exist and
  left out coldefs.go and go generate, which column changes require.
- record-demo described a GIF and told agents to edit a script that
  already takes tape names as arguments.
- commit listed fewer types than the release config accepts.

Generated with Claude Code (claude-opus-5-5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The session-start hook read the verified date with grep -P and date -d,
which BSD grep and date on macOS do not support. On macOS it reported
every map file as missing its date, so agents there got a false warning
at the start of every session. It now reads the date with sed and does
the date math in jq, which the hook already uses.

The maps themselves were last verified on 2026-08-08. Every package and
identifier they name still exists, so the verified dates move to today.

Generated with Claude Code (claude-opus-5-5)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@cpcloud cpcloud added the chore Maintenance and housekeeping label Oct 25, 2026
@cpcloud
cpcloud merged commit 8f414ab into main Oct 25, 2026
28 checks passed
@cpcloud
cpcloud deleted the chore/skill-cleanup branch October 25, 2026 10:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

chore Maintenance and housekeeping

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant