Doc steward
Steward agent-facing repository documentation against a tiered house standard. Use when auditing or grading AGENTS.md, CLAUDE.md, SKILL.md, .claude/rules, ADRs, or DESIGN.md for structure, drift, frontmatter, or broken routing; explicitly previewing or applying gated low-risk fixes after an audit; or explicitly capturing one documentation lesson. Not for prose copy-editing, application-code review, product-interface design, or generic formatting.From its SKILL.md
npx -y skills add stone16/stometa-skills --skill doc-stewardAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
6.4 KB, ~1.4k tokens by cl100k_base, as published. Nobody here has run it
doc-steward
Keep agent-facing repository documentation predictable: put each fact at the right residency, altitude, and volatility level; evaluate it deterministically where possible; and gate every write.
Run commands from this skill directory. Every scripts/, references/, and
agents/ path below is relative to this file.
Route the request
Choose exactly one starting mode. Never cross from a read-only mode into a write mode without explicit user intent.
| Mode | Trigger | Writes? | Surface |
|---|---|---|---|
| DEFINE | The user asks to explain or classify against the standard. | No | This skill + references |
| EVALUATE | Default for audits, grading, drift, frontmatter, or routing checks. | No* | scripts/checks/doc_lint.py |
| ENFORCE | The user explicitly asks to preview or apply fixes after an audit. | Yes, only with --apply | scripts/apply/enforce_apply.py |
| LEARN | The user explicitly asks to retain one documentation lesson. | Sink-dependent | scripts/apply/learn_capture.py |
* EVALUATE changes no audited document. Pass --history only when the user
explicitly wants .doc-steward/history.jsonl updated.
DEFINE
-
Classify the target:
python3 scripts/checks/tier_assess.py <repo-root> --jsonPrecedence is
--tier> explicit--config> auto-detection. Unknown offline signals round down. -
Read
references/standard-core.mdfor the three rulers, tier, profile, and taxonomy. Usereferences/rule-catalog.mdto distinguish spec-required rules from house opinion. -
Open
references/templates.mdonly when the user requests required-document checklists or skeletons.
DEFINE is complete when the requested standard, classification, and rule status have been presented with no mutation. Stop unless the user also requested an audit.
EVALUATE
-
Run the deterministic audit for the exact target:
python3 scripts/checks/doc_lint.py --target <repo-root> --jsonUse
--tier,--config,--fail-on, or--historyonly when the request calls for them. Explicit YAML config needs PyYAML fromrequirements.txt; no-config evaluation remains stdlib-only. -
Run deep inspectors only when explicitly requested. Dispatch the applicable read-only checklists in parallel when the harness supports it, otherwise apply the same checklists sequentially:
agents/inspector-structure.md— residency, structure, duplication, no-ops.agents/inspector-taxonomy.md— altitude and cross-tool wiring.agents/inspector-staleness.md— volatility and implementation drift.agents/inspector-design.md— DESIGN rules when the frontend profile fires.
-
Render the deterministic result as a fenced
DOC-STEWARD REPORT. Followreferences/rubric.mdfor verdicts and finding format. Put deep-inspector findings in a separate, unscored judgment appendix; never alter the deterministic composite with them.
EVALUATE is complete only when:
- the report was freshly generated for the exact canonical target;
- every unavailable or failed checker appears under
skipped; - every deterministic finding includes its catalog severity and remedy;
- every judgment finding cites
file:lineand passes the quote-gate; - the final output states target, tier/profile, dimensions, grade, findings, skipped checks, and whether history was enabled; and
- no audited document changed.
ENFORCE
Open references/apply-workflow.md and follow it completely. The essential
sequence is:
- Save a fresh default EVALUATE report outside the target worktree.
- Confirm the target is on an existing non-default feature branch with a fully clean worktree. The script does not create or switch branches.
- Preview the exact dispositions without
--apply. Use--scaffoldand--link-maponly for exact user-requested paths or mappings. - Show the previewed write set and obtain explicit approval.
- Repeat the same command with
--apply. - Inspect the complete diff and run target validation plus
git diff --check.
The classifier and LOW-RISK-AUTO allowlist live in
references/do-dont-table.md. ENFORCE never blind-deletes or overwrites a
present scaffold target. The script never stages, commits, pushes, or opens a
pull request; perform those repository actions only under separate user
authorization.
ENFORCE is complete only when every finding has a disposition, preflight and verification succeeded, and the exact changed paths and remaining escalations have been reported. If rollback verification fails, stop and report the target for manual inspection.
LEARN
Open references/learning-sink.md and capture exactly one selected finding.
Learning is never implied by EVALUATE or ENFORCE. Keep the noop sink unless the
user explicitly supplies a trusted, reviewed adapter; capturing a lesson never
changes repository documentation.
LEARN is complete when the sink returns a success or safe rejection receipt and no unapproved write-back occurred.
Read on demand
| Need | Open |
|---|---|
| Three rulers, taxonomy, tiers, and profiles | references/standard-core.md |
| Canonical rule ids and ownership | references/rule-catalog.md |
| Score anchors, severity, quote-gate, and finding format | references/rubric.md |
| Required-document skeletons | references/templates.md |
| Preview, approval, apply, verification, and rollback | references/apply-workflow.md |
| ENFORCE dispositions and auto-fix allowlist | references/do-dont-table.md |
| LEARN redaction and sink contract | references/learning-sink.md |
Invariants
- Read-only by default; writes require explicit mode and intent.
scripts/lib/rules.pyis the rule catalog's single source of truth; regeneratereferences/rule-catalog.mdwithscripts/gen_rule_catalog.py.- Quote every judgment finding at
file:line; hypotheses are not findings. - This package must pass its own deterministic audit, resolve every pointer, and keep this entrypoint within the dogfood line budget.
What ships with it: 74 files
457.6 KB alongside SKILL.md, 33 of them executable
agents/
- inspector-design.md3.4 KB
- inspector-staleness.md3.0 KB
- inspector-structure.md3.6 KB
- inspector-taxonomy.md3.3 KB
- openai.yaml245 B
references/
- apply-workflow.md3.6 KB
- config.example.yml517 B
- do-dont-table.md6.3 KB
- learning-sink.md2.7 KB
- rubric.md9.2 KB
- rule-catalog.md5.8 KB
- standard-core.md10.7 KB
- templates.md5.1 KB
scripts/
- apply/enforce_apply.pyruns49.7 KB
- apply/learn_capture.pyruns23.7 KB
- apply/overlay.pyruns3.3 KB
- apply/test_enforce_apply.pyruns52.6 KB
- apply/test_learn_capture.pyruns9.5 KB
- apply/test_overlay.pyruns2.4 KB
- apply/test_wiring_apply.pyruns2.2 KB
- checks/doc_lint.pyruns27.5 KB
- checks/fixtures/chain0.md36 B
- checks/fixtures/chain1.md36 B
- checks/fixtures/chain2.md36 B
- checks/fixtures/chain3.md36 B
- checks/fixtures/chain4.md36 B
- checks/fixtures/chain5.md36 B
- checks/fixtures/chain6.md31 B
- checks/fixtures/cycle_a.md37 B
- checks/fixtures/cycle_b.md37 B
- checks/fixtures/front_bad_desc.md227 B
- checks/fixtures/front_bad_lang.md463 B
- checks/fixtures/front_bad_meta.md350 B
- checks/fixtures/front_bad_vocab.md368 B
- checks/fixtures/front_good.md377 B
- checks/fixtures/link_dead.md578 B
- checks/fixtures/link_good.md157 B
- checks/fixtures/link_symlink.md90 B
- checks/fixtures/nest_child.md87 B
- requirements.txt74 B
34 more files not listed here. See all 74 in the repository.