Repository navigation
chore: give repo skills descriptions and fix their broken steps - #1057
Merged
Merged
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
TL;DR
All 18 repo skills in
.claude/commandsshowed<!-- 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:
create-prrequired 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.update-vendor-hashandflake-updatesaidvendorHashis inflake.nix. It is innix/package.nix.pre-commit-checksaid not to run the hooks by hand, then ran them, and recovered withgit clean -fdx, which also deletes the generated PDF ininternal/extract/testdata. Recovery now removes only.direnvand the generated hook config.fix-cipolled withgh pr checks --watch,capture-uiuploaded withgh image,add-entitynamed aSnapshot()handler method that doesn't exist and skippedcoldefs.goplusgo generate, andrecord-demodescribed a GIF and told agents to edit a script that already takes tape names.The codebase-map freshness hook used
grep -Panddate -d, so on macOS it said every map was missing its date. It now usessedandjq. The maps still match the code, so their verified dates move to today.Reviewer notes
.pre-commit-config.yamllinks to a hook build in the Nix store. Untildirenv reloadrebuilds it, the old license check prepends a second header to any staged skill file.🤖 Generated with Claude Code