From agent-starter
Reads the .harness ledger and feedback memories, then proposes gated rule/threshold/ADR changes so the project stops repeating mistakes. Run periodically.
How this skill is triggered — by the user, by Claude, or both
Slash command
/agent-starter:reflectThis skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are performing a reflection - turning the signal this project has captured
You are performing a reflection - turning the signal this project has captured into durable improvements. Nothing is applied without the developer's approval.
~/.claude/hooks/harness-ledger-stats.sh --ledger .harness/ledger.jsonl --min-recurr 3
If that path doesn't exist, the hooks aren't installed at ~/.claude/hooks/ - run the
copy from wherever this project keeps them. If the script prints all zeros there is no
ledger yet (no signal captured) - stop; there is nothing to reflect on.CLAUDE.md so you improve them rather than duplicate.feedback-type memory files - these are the developer's explicit
corrections and are the highest-value signal. Locate the memory directory first
(it sits next to MEMORY.md; find . -name MEMORY.md if unsure), then
grep -l 'type: feedback' <memory-dir>/*.md..harness/reflections/*.md report (if any) to recall the last
metric snapshot and what was already changed.From the stats output and feedback memories, identify recurring problems:
recurring <rule> <prefix> <count> line is a friction cluster - the same check
keeps firing in the same area.For each cluster, draft exactly one proposed change, choosing the fitting type:
| Type | When | Where it lands |
|---|---|---|
| Project rule | a convention would stop the repeat | append to CLAUDE.md project-specific section |
| Threshold change | a guardrail is too strict/loose | a diff to .claude/settings.json or the hook - shown, never auto-applied |
| Lint rule | the mistake is mechanically catchable | a diff to eslint.config.mjs / biome.json |
| ADR / knowledge | durable "why" worth keeping | a new memory file or docs/adr/ note |
Present all proposals together as a numbered list with the concrete change for each.
/remember)./commit)..harness/reflections/ if needed (mkdir -p .harness/reflections), then write a
reflection report to .harness/reflections/YYYY-MM-DD.md containing:
The report is committed; the raw .harness/ledger.jsonl stays gitignored. Signal is
private; wisdom is shared.
The headline metric is recurring_events from the stats output. Compare it to the value
in the previous reflection report. If a rule you promoted last time worked, the cluster it
targeted should have shrunk. Note the trend explicitly in the new report.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub sneg55/agent-starter