Two related simplification-audit findings, bundled because they edit some of the same skill-audit files and splitting would fragment single-file diffs. Finding 10: delete 48 per-skill/reference README.md files (they restated SKILL.md in narrative form and no agent ever loads them) plus 2 scaffold templates. Drop the README criterion from skill-audit's file-structure.md and finding-criteria.md, and the README-generation step from skill-author's new-skill.sh; update new-skill.bats to match. Plugin-root READMEs are kept intentionally, out of scope. Finding 12: strip historical ADR-0020/ADR-0023 citations and changelog-style narration from model-facing skill content across kyberforge and git plugin skills. Delete skill-author's one-time retrofit.md migration guide and its references. Some ADR-0023 tags were not narration but check-rtk-prefix's required opt-out marker for intentionally-bare git commands -- those were restored, not stripped. Mirror re-synced and full pre-commit/pre-push suite verified green. Refs: SIMPLIFICATION-AUDIT.md findings 10, 12 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01YR2CjVumUbEGWcMikcoXBD
3.5 KiB
3.5 KiB
name, description, metadata, allowed-tools
| name | description | metadata | allowed-tools | |||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| git-history | Use when investigating git history — pickaxe (`-S`/`-G`) or `-L` line-range log queries, tracing when a change landed, bisecting what broke something, or locating a commit to revert or backport. Not authoring or rebasing commits -> `git-commits`. Not a Gitea server's history -> `gitea-branches`. |
|
Bash |
Gotchas
-S"string"matches only where the string's count changed, so a line edited in place matches-G"regex"and not-S. Reach for-Gwhenever the string may have moved rather than appeared.--followtraces renames for exactly one path. Given several paths or a glob it fails instead of degrading, so run it once per file.- Under
git bisect run, exit128or above aborts the session rather than marking the commit bad, so a crashing test script ends the search silently. - Bisect answering "cannot find exact culprit" beside skipped commits is a complete result: it is as precise as the skip range allows.
Step 1 — Pick the entry procedure
| What is known | Procedure |
|---|---|
| Content, a file, or a line range to search for | Query the log — Step 2 |
| Nothing to search for — only that the behaviour changed between two points | Bisect — read references/bisect.md |
| The commit itself, already identified | Step 3 |
Step 2 — Query the log
Default to rtk git log --oneline, then narrow by whatever is known:
- Content:
rtk git log -S"string", or-G"regex"to match any diff line.--pickaxe-regexmakes the-Sargument a POSIX ERE;--pickaxe-allshows every file in a matching changeset. - A line or function:
git log -L <start>,<end>:<file>orgit log -L :<function>:<file>— bare, notrtk: rtk truncates each diff line at ~72 characters. Confirm the range resolves before reporting on it — an off-by-one silently omits the target. - A file across renames:
rtk git log --follow -- <file>. Without--followthe history stops at the rename boundary. - Mainline only:
--first-parentfollows the integration branch and skips commits merged in from side branches. - Structured output:
rtk git log --format="%h | %s | %an (%ar)".
If you need the placeholder catalogue, format presets, --diff-filter letters, full -L syntax, ancestry filters, pickaxe binary-file behaviour, or git diff output-control flags such as --stat, --word-diff and the whitespace options, read references/git-log-format.md.
Step 3 — Act on a located commit
Offer the operation and its consequence; run it only once the user has chosen.
- Backporting the commit to another branch is a cherry-pick, and cherry-pick is
git-commits' — it owns the destination-branch check, thertk gitwrapper and the--abortpath. Hand it the SHA; do not rungit cherry-pickfrom here. rtk git revert <commit>adds a new commit undoing it — for un-applying merged work without rewriting history.rtk git blame <file>attributes each line to the commit that last touched it, when the question is which commit introduced one specific line.
For diff output control on the located commit, read references/git-log-format.md.
Step 4 — Return the result
Report each located commit in this shape, so a calling agent can act on it without reparsing raw log output:
<sha> — <subject>
<author> (<relative date>)
Recommendation: <action or "none">