Targeted surgery on skill files. One problem, one fix, one diff.
Entry Router
User-triggered? → READ: ## Reflection Protocol
Post-workflow automatic? → Run internal check:
"Did any skill instruction lead to wrong output?"
"Was there a gap the skill should have covered?"
"Did I improvise something not in the skill?"
YES to any → READ: ## Reflection Protocol
NO → skip
User says "run autoresearch on all skills"? → READ: ## Batch Mode
Jump directly to the matched section. If NO gap detected, stop here — do not read further.
Reflection Protocol
Step 1 — Identify the gap:
- Which skill? What was actual behavior? What should have happened?
- Is this: missing case / wrong instruction / outdated pattern / trigger conflict?
Step 2 — Read skills/[skill-name]/SKILL.md before proposing.
If file not found → output: "Skill file not found at skills/[name]/SKILL.md. Verify the skill exists before proposing changes." and stop.
Step 3 — Propose surgical diff:
SELF-IMPROVE PROPOSAL
=====================
Skill: vibe-coding-[name]
Problem: [1 sentence]
Root cause: [missing case | wrong instruction | outdated pattern | trigger conflict]
Risk: LOW (adds new case) | MEDIUM (changes existing behavior) | HIGH (changes triggers/handoffs)
--- REMOVE ---
[exact text to remove, or "nothing" if addition only]
+++ ADD +++
[exact text to add]
Location: [section name or "after line containing: [text]"]
Impact on other skills: [none | affects: skill-a, skill-b]
Approve this change? (yes / no / revise)
Step 4 — Wait for user approval. Do NOT write until user says "approve", "yes", "apply it", or "looks good". Rejected → log as rejected and stop.
Step 5 — Apply: Re-read SKILL.md (ensure no concurrent edits) → Edit tool to apply diff → verify change → log.
Step 6 — Log to autoresearch/autoresearch-results.md:
## [Skill Name] — [Date]
**Problem:** [1 sentence] **Root cause:** [type]
**Change type:** Addition | Modification | Removal **Risk:** LOW|MEDIUM|HIGH
**Change summary:** [2-3 sentences what changed and why]
**Before:** [key phrase] **After:** [key phrase]
**Tested:** [yes — user confirmed | no — pending]
---
Autoresearch Criteria (5-point check)
Run against any skill on demand:
- Trigger conflicts — do trigger phrases overlap with other skills?
- Handoff integrity — predecessors/successors named correctly and exist in
skills/? - progress.txt alignment — block format matches what
vibe-coding-stateexpects? - Orchestrator registration — listed in orchestrator's skill registry with correct trigger mapping?
- File/path accuracy — referenced files/paths exist? GitHub URLs valid?
Score: 5/5=100% (no action), 4/5=97% (one fix), <3/5=needs full pass.
Batch Mode
1. Read all SKILL.md files in skills/ directory
2. Run 5-point check on each
3. Present summary table:
AUTORESEARCH SWEEP
==================
| Skill | Score | Top Issue |
|-------|-------|-----------|
| vibe-coding-[name] | 97% | [issue] |
Propose fixes for all below 100%? (yes/no/select)
4. Fix in order lowest→highest score. Log each to autoresearch-results.md.
Scope Limits
In scope: trigger phrase refinements, adding missing cases, fixing outdated commands, correcting handoff skill names, updating progress.txt block format.
Out of scope (surface as recommendation, never auto-apply): changing workflow order, removing existing functionality, changing skill's fundamental purpose, merging or splitting skills.
Progress Tracking
PHASE: SELF_IMPROVE
STATUS: [proposed | approved | applied | rejected]
skill: [name] problem: [brief] risk: LOW|MEDIUM|HIGH