- Rules: 4 new lifecycle rules for OpenSpec trees (specs/** keep;
changes/archive/*/ temporary retain 3 / 90d), root + plugins/*
- Fill TBD Purpose placeholders in doc-check + doc-clean specs (the
doc-check one was a check-run miss: sat under file_length thresholds)
- Report header: "findings: N" + "cleared: K of M evaluated entries"
(cleared no longer masquerades as files-scanned)
- CLAUDE.md: vault user-guide pointer; fix stale .dochygiene/ state
path to .cc-os/dochygiene/ (ADR-0027)
Suite: 408 passed, 3 skipped.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LAw7YxP71Fk6K9AHNaYPj2
Implements the lifecycle-aware-doc-hygiene change (ADR-0038..0041):
rulebook loader (global rulebook.json + per-project .dochygiene-rules.json,
add-only merge, two-axis precedence, IGNORE-sentinel zero-emission prune),
scanner lifecycle signals + temporary/delete-once-served tiers, report
schema delete/extract-then-delete ops with git-state tier derivation,
promotion_candidates from conventions.json, patch-applier deletion ops with
apply-time git re-verification, and the /os-doc-hygiene:calibrate skill.
Calibration pass #1 (cc-os) PASSED: protected-set hard gate + recall floor
9/10 with all 4 mandatory rows; 4 human-approved rules persisted to
repo-root .dochygiene-rules.json. invariants.md #3 (.cc-os/dochygiene per
ADR-0027) and #9 (rulebook IGNORE as third ignore mechanism) corrected
with explicit human approval per the META-RULE.
test_no_global_index_created now runs against an isolated HOME (the real
~/.cc-os legitimately exists since os-backlog's projects registry).
Suite: 408 passed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LAw7YxP71Fk6K9AHNaYPj2
Rename skills to bare verbs (hygiene-check -> check, hygiene-clean -> clean),
matching the os-vault/os-orchestration pattern. Remove the commands/hygiene.md
dispatcher in favor of two new skills, status and sweep, so all four actions
are invoked directly as /os-doc-hygiene:<skill> instead of through a custom
subcommand parser that no other plugin in the marketplace uses.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Moves the doc-hygiene plugin from the standalone cc-plugins repo into
cc-os as plugins/os-doc-hygiene/, following the same pattern as
os-vault and os-orchestration. Also commits the previously-unstaged
ADR-019 (global os-orchestration plugin supersedes per-project
orchestration text), which documents the prior migration but never
made it into a commit.
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>