Component-Removal 4-Artifact Rule — every eradication touches all 4 layers or it’s incomplete
Rule
Every component eradication produces 4 artifacts before declared complete:
- Runtime stop — container down, process killed, service removed
- Slot/registration removal —
mcpServers, settings perms, agent registry, OAuth profile - Documentation cascade — grep all skills + memory + EA workspace + hookify + scripts for component name + every alias
- Automation-layer enumeration — crontab + systemd timers + Prometheus alerts + log paths
Until all 4 are confirmed clean, eradication is INCOMPLETE.
Origin (the failure mode this prevents)
2026-05-06 commit fbb348c “eradicated” Paperclip + MC Enterprise + CIOS-notify + OpenAgents at runtime + Permanent-MCP-slot levels but left 80+ stale references across 81 skills + 6 memory files + EA workspace; 7 dead crontab entries firing every 2-min to weekly against MISSING scripts; 3 stale Prometheus alerts watching dead /var/log/cios/ logs; 12 orphan log files; duplicate skill shells + UUID MCP perms for non-existent server.
EA agent surfaced “CIOS runs on Paperclip” claim 4 days later — proving documentation-layer drift had real behavioral impact.
Tier 1 Directive 3 (cascade-update on state changes) already prescribed cascade-update; the gap was discipline-of-execution, not policy. The 4-Artifact framing makes the cascade testable: each artifact is a discrete grep/enumerate operation with a binary “found stale → fix” outcome.
Verification command
bash /home/claude/.claude/crons/component-removal-cascade-verifier.sh <component> [<alias-1> <alias-2> ...]Exit codes:
- 0 = clean (all 4 artifacts free of references)
- 1 = drift detected (script reports each stale reference)
- 2 = invocation error
The verifier scans:
/home/claude/.claude/skills//home/claude/.claude/projects/-root-aj-workspace/memory//home/claude/.claude/projects/-root-aj-ea/memory//root/aj-ea//root/aj-workspace/scripts/- root crontab
/home/claude/.claude/crons/+/root/.claude/crons//opt/prometheus/rules/+/opt/prometheus/scripts//var/log/<component>/directories/root/.claude/settings.json+/home/claude/.claude/settings.json
How to apply
- Before declaring eradication done, run the verifier with the component name + every alias.
- Exit 1 = your eradication is INCOMPLETE; fix every reported site, re-run.
- Codify the rule in any new skills you build that touch component lifecycle.
Related
- self-maintenance-discipline (mechanism h)
- Tier 1 Directive 3 — cascade-update on state changes
- ST decisions:
9ab9a4ea-5caf(rule),0140df14-78f3(audit that proved necessity)