skills/find-commit/SKILL.md
Searches git history for commits that contain generation-metadata blocks (created by the commit skill) and returns the plan intent, model, and unplanned changes for each match. Use this skill whenever an agent or user needs to understand why a change was made, trace a feature back to its plan, audit planned vs. actual changes, or find commits related to a topic. Triggers include "why was this changed", "find commits related to", "what plan drove this", "search commit history", "show me instrumented commits", "what was the intent behind", or any question about the reasoning or plan behind past changes.
npx skillsauth add jburns24/skills find-commitInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Searches git history for commits instrumented with generation-metadata blocks — embedded by the commit skill — and surfaces the original plan, model, and any unplanned changes for each match. This lets agents and users understand the intent behind a change, not just what changed.
Each instrumented commit message contains a block like this:
<!-- generation-metadata
{
"model": "claude-sonnet-4-6",
"plan_file": "/Users/jburns/.claude/plans/<name>.md",
"plan_contents": "<full plan text, JSON-escaped>",
"unplanned_changes": ["<filepath>: <description>", ...]
}
-->
plan_contents is the most valuable field — it captures the full reasoning and context that drove the implementation.
Accept any combination of these from the user:
| Parameter | Meaning |
|-----------|---------|
| keyword | Match against plan_contents or commit subject (case-insensitive) |
| file | Return only commits that touched this file path |
| since / until | Date filters, passed directly to git log |
| hash | Look up one specific commit |
| (none) | List every instrumented commit in the repo |
Read the user's request and identify which parameters apply. When no specific criteria are given, the intent is usually "show me everything instrumented" — proceed with a full listing.
Use a bundled helper script for reliable parsing. Run it directly:
python3 scripts/search.py \
[--keyword "term"] \
[--file path/to/file] \
[--since 2024-01-01] \
[--until 2024-12-31] \
[--hash abc1234]
The script (scripts/search.py in this skill directory) handles:
git log commandgeneration-metadataplan_contents and subjectIf the script isn't available or fails, fall back to running the steps manually (see Manual fallback below).
The script outputs a JSON array of match objects:
[
{
"hash": "53b254b",
"subject": "feat: add commit skill with generation metadata tracing",
"date": "2026-02-22T20:54:00-05:00",
"model": "claude-sonnet-4-6",
"plan_file": "/Users/jburns/.claude/plans/generic-wobbling-russell.md",
"plan_contents": "# Plan: Add `commit` Skill\n\n...",
"unplanned_changes": ["skills/hello-world/SKILL.md: deleted placeholder..."],
"files_changed": ["skills/commit/SKILL.md", ".claude-plugin/marketplace.json"]
}
]
If the array is empty, report that no instrumented commits matched the query and stop.
For each match, render a block like this (newest first):
## 53b254b — feat: add commit skill with generation metadata tracing
Date: 2026-02-22
Model: claude-sonnet-4-6
### Plan intent
<plan_contents verbatim if ≤ 500 words, or a clear 5–10 sentence summary if longer>
### Files changed
- skills/commit/SKILL.md
- .claude-plugin/marketplace.json
- skills/hello-world/SKILL.md
### Unplanned changes
- skills/hello-world/SKILL.md: deleted placeholder boilerplate skill (user-requested cleanup, outside plan scope)
If plan_contents is null, note: "Metadata block present but plan contents were not recorded."
Close with a one-line summary: "Found N instrumented commit(s) matching your query."
If scripts/search.py is unavailable, do these steps directly:
Find candidates:
# All commits
git log --all --format="%H|%s|%ai" --no-merges
# File-scoped
git log --all --format="%H|%s|%ai" --no-merges -- <file>
Filter to instrumented commits — for each hash:
git log -1 --format="%B" <hash> | grep -q "generation-metadata" && echo <hash>
Parse metadata — use Python inline:
import re, json, subprocess
body = subprocess.check_output(["git", "log", "-1", "--format=%B", hash_]).decode()
m = re.search(r'<!-- generation-metadata\s*(\{.*?\})\s*-->', body, re.DOTALL)
meta = json.loads(m.group(1)) if m else None
Get changed files:
git diff-tree --no-commit-id -r --name-only <hash>
List all instrumented commits:
"show me all instrumented commits" → Runs full scan, lists every match newest-first.
Keyword search:
"find commits related to custom domain" → Returns commits where
plan_contentsor subject contains "custom domain".
File trace:
"what plan drove changes to src/auth/login.ts?" → Scans
git log -- src/auth/login.ts, shows plan intent for each instrumented hit.
Single commit lookup:
"show me the plan behind commit 53b254b" → Fetches that commit's metadata directly.
Unplanned changes audit:
"show me commits that had unplanned changes" → Lists instrumented commits where
unplanned_changesis non-empty. Useful for auditing implementation drift.
data-ai
Orchestrate a competitive multi-agent PRD synthesis arena. Use when the user wants to synthesize, combine, or merge multiple PRDs into a single master PRD using competitive multi-agent workflow. Also triggers on: "prd arena", "prd competition", "compete PRDs", or when agents should independently draft competing PRDs from source materials and have them judged. Spawns 4 worker agents that create competing PRDs, then 3 manager agents that judge, debate, and synthesize into a final master PRD.md.
tools
One-sentence description of what this skill does.
development
Creates a conventional-commit message with embedded generation metadata (model, plan file, unplanned changes) in an HTML comment after implementing a plan. Use this skill whenever the user says "commit this", "git commit", "make a commit", or asks to commit changes after completing a plan in plan mode.
testing
Create, edit, improve, or audit AgentSkills. Use when creating a new skill from scratch or when asked to improve, review, audit, tidy up, or clean up an existing skill or SKILL.md file. Also use when editing or restructuring a skill directory (moving files to references/ or scripts/, removing stale content, validating against the AgentSkills spec). Triggers on phrases like "create a skill", "author a skill", "tidy up a skill", "improve this skill", "review the skill", "clean up the skill", "audit the skill".