executing-plans
executing-plans
Use when executing an implementation plan in the current session as the implementer yourself — your human partner chose inline execution, or no subagent tool is available
kb-lintHealth-check a knowledge bundle for conformance and drift; optionally auto-fix safe issues.
Independent GitHub snapshot · Automated classification · Original documentation governs
Keep a bundle trustworthy as it compounds by catching drift — the decay a
growing knowledge base accumulates. Two passes: a deterministic conformance check (mechanical,
scripted) and a drift audit (fuzzy, judgment). Run both; report findings by severity. With
fix, repair what is safe.
For a bundle-wide format or lifecycle migration, first inventory active metadata with the same frontmatter-aware checker:
node "<skill-dir>/scripts/conformance.mjs" <bundle-dir> --inventory --json
The inventory parses only each concept's leading YAML frontmatter and reports body # Citations
separately. Its observations include counts and exact paths for every active top-level key and
status value; legacy_citations counts citation sections, numbered items, separately defined
footnote sources, total source records, and common citation shapes; structured_sources counts the
postflight concepts, entries, and entries carrying resource. An absent observation means zero. Do
not use repository-wide grep to classify active metadata because prose and fenced examples can contain
inactive field names and lifecycle values. Resolve every reported frontmatter error before planning
from the counts.
Run the bundled checker against the target bundle (default knowledge/). It is a zero-dependency
Node script (node >=18); <skill-dir> is this skill's directory — ${CLAUDE_SKILL_DIR} under
Claude Code, or whatever path your host exposes for the skill:
node "<skill-dir>/scripts/conformance.mjs" <bundle-dir>
It reports ERROR for a hard SPEC §11 failure and warn for producer-profile defects in optional v0.2 fields, broken links, non-ISO log dates, and stale dates. Optional-family warnings never make the bundle non-conformant. Broken links are explicitly tolerated by §6.1.
Completion criterion: the checker has run and every ERROR it reported is listed for the report
(and fixed, if in fix mode).
The checker can't see meaning. Audit the bundle for the ways a compounding artifact rots — this is the legwork that makes lint worth running. Cover every check:
conflicts_with.superseded_by; overviews behind their children.sources nor a legacy
# Citations / Reference trail.sources entries without resource, footnote labels without a matching
sources[].id, malformed generated/verified actors or dates, invalid lifecycle values, and
Attested Computations missing their required runtime or computation contract.sources[].resource, evidence that no longer supports the documented behavior, or source changes
since spec/repository_state.md's documented_revision that affect a concept without a
corresponding update. A lingering documented_worktree: true there requires comparison with the
current working tree. Skip this check when repository evidence or Git history is unavailable.spec/types.md; documented types that no longer
describe their concepts; spelling/case variants; or one overloaded type hiding several recurring,
materially distinct entity kinds. Treat unused documented types as Info, not an error.Completion criterion: every check above has been run across the whole bundle and its findings recorded — not a sample.
Present findings grouped by check, each tagged:
Turn coverage gaps into concrete next moves: questions to investigate, sources to
ingest, or repository evidence to inspect through
kb-document. Append a dated summary (counts + notable findings) to the
bundle's log.md — append-only.
Completion criterion: a severity-grouped report is delivered and a log.md summary appended.
If invoked with fix, repair only what is safe and unambiguous, then re-report what was fixed
vs. what needs a human:
Completion criterion: every safe issue is fixed and every meaning-level issue is flagged (not touched); the re-report distinguishes the two.