skills/run-curate/SKILL.md
Curate project knowledge files.
npx skillsauth add kenoxa/spine run-curateInstall 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.
Session: Generate per SPINE.md. When auto-triggered from build-finalize, inherit calling session's ID.
Phase Trace: per phase-audit.md table format. Log at gather, dispatch, synthesize, present, apply. Include action counts per type.
Subagent references (backticked): dispatch to subagent -- do NOT Read into mainthread.
| # | Phase | Agent | Reference |
|---|-------|-------|-----------|
| 1 | Gather | -- | -- |
| 2 | Dispatch | @curator + @envoy | references/curate-envoy.md |
| 3 | Synthesize | @synthesizer | references/curate-synthesis.md |
| 4 | Present | -- | -- |
| 5 | Apply (user-gated) | -- | -- |
| Phase | Base | Envoy | Cap | |-------|------|-------|-----| | Dispatch | 1 | 1 | 2 |
Envoy always dispatches (frontier multi-provider) — knowledge correctness warrants the cost.
Read AGENTS.md ## Project Knowledge section and each referenced knowledge file.
Auto mode (build-finalize passes knowledge_candidate: yes items): collect candidates alongside existing entries.
Standalone mode (user invokes /run-curate): full review of existing entries. Also scan .scratch/ for session logs that contain entries with knowledge_candidate: yes — collect these as additional candidates using the same shape (what_was_attempted, result, assumption_corrected, knowledge_candidate). Other workflow skills may emit candidates in their finalize phases.
Staleness detection (incremental): for each knowledge file declaring paths: frontmatter, run git log --since=<updated_date> --name-only -- <paths>; skip files with zero changes. Build staleness matrix (knowledge_file, last_updated, changed_neighbors, stale) and pass to @curator.
Memo-drift audit (standalone mode only): for each .claude/.../memory/project_*.md file whose description references mutable state (model picks, tier mappings, dependency versions, infrastructure defaults), run git log --since=<memo_updated> --oneline -- <referenced_code_paths> to check whether code moved on. Surface drifted memos as follow_up items in the curate plan — do NOT auto-update memory files; the user owns memory content.
Glossary discovery (optional): check for UBIQUITOUS_LANGUAGE.md at project root. If present, extract a lightweight term list (term + aliases if available). If absent, record [GLOSSARY_SKIP: not found] in session trace and continue — do not suggest creating one.
Dispatch @curator and @envoy in parallel:
@curator — receives:
candidates -- learnings with evidence anchors (auto mode) or collected from session scans (standalone)existing_entries -- parsed entries with file contentsstaleness_matrix -- from Gather phaseglossary_terms -- lightweight term extract from Gather (omit when glossary absent)Output: .scratch/<session>/curate-plan.md
@envoy — coverage gap discovery per references/curate-envoy.md. Base output path: .scratch/<session>/curate-envoy.md (run.sh writes per-provider files curate-envoy.<provider>.md). Advisory only — curator retains sole promote/update/prune authority.
Await both before proceeding.
Dispatch @synthesizer via references/curate-synthesis.md to merge curator plan + envoy per-provider outputs. Output: .scratch/<session>/curate-synthesis.md.
Read .scratch/<session>/curate-synthesis.md.
Present grouped by action type (promote / update / prune). Show token budget impact. When staleness matrix has stale entries, highlight them. Include envoy GAP/WATCH items labeled [ADVISORY: envoy]. Include glossary findings labeled [ADVISORY: glossary] — these carry E1 ceiling and cannot gate promotion.
Require explicit user approval before proceeding -- never auto-apply.
Gate: user approval received. On approval, mainthread applies changes:
docs/<name>.md with telegraphic content + updated: frontmatter. Requires E2+ evidence anchor.## Project Knowledge with backticked paths + glossesSkip actions the user explicitly declines. Report final state.
tools
Use when: 'create a worktree', 'git worktree', 'parallel branch'.
tools
Use when: 'session state', 'resume work', 'worktree session'.
development
Use when: 'goal prompt'.
testing
Thinking-lens stress-test on a recommendation.