ADR-0010: source-update skill redefined without adapters¶
Context¶
toolkit-spec.md’s source-update skill was written against a live adapter interface (fetch/diff against a source system, triggered by a webhook, branching on comment-vs-field-edit mutation type). v1 has no adapters, but already has source-delta/source-snapshot CLI commands that diff a Raw file’s current state against its last-known git revision (ADR-0004). Separately, toolkit-spec.md marks ingest/query/lint/maintain as “unchanged from llm-breakdown.md” — that claim needed checking against v1’s actual command names and identity model (ADR-0001, ADR-0003).
Decision¶
source-updatetriggers via direct invocation on a known source, or viamaintain’s periodic sweep (source-scanclassifying a fileupdate) — never a webhook.- New comments are out of scope for
source-updateentirely: in v1 they materialize as brand-new Raw source files (a newsourceid), classifiednewbysource-scan, and route throughingestinstead. The original comment-vs-field-edit branch is dropped. - Because only field edits reach
source-updateby construction, its resulting PR is always framedneeds-review— neverroutine— withchanged_fieldsfromsource-deltacalled out explicitly so a reviewer knows what to re-verify. - The dead
Delta.new_comment_idsfield (never populated once the comment branch was dropped) is removed from theDeltadataclass. - None of
ingest/query/lint/maintainport fromllm-breakdown.mdas-is; each is adapted to v1’s actual surface:ingest:source-scan --update→ write/update page(s) →build→lint→log --action ingest→propose-pr --frame routine.query:search-catalogreplaces the (nonexistent-in-v1)index.mdread step; a filed-back synthesis follows the same write gate asingest. Answering alone is never a write.lint: deterministic CLI checks first (lint,source-lint,source-coverage), then an agent semantic pass for contradictions/staleness/orphans/missing cross-refs — things the CLI can’t check structurally. Mechanical fixes route through the write gate; contradictions/staleness are surfaced, not resolved unilaterally.maintain: orchestrateslintandsource-update’s sweep trigger rather than duplicating their logic; agent-surfaced suggestions are logged individually vialog --action lint.
Consequences¶
- All five
SKILL.mdfiles are keyed to v1’s actual command names and thesource/processed/duplicatevocabulary inCONTEXT.md, not the adapter-era language intoolkit-spec.md’s Skills section.