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:

  1. Runtime stop — container down, process killed, service removed
  2. Slot/registration removalmcpServers, settings perms, agent registry, OAuth profile
  3. Documentation cascade — grep all skills + memory + EA workspace + hookify + scripts for component name + every alias
  4. 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

  1. Before declaring eradication done, run the verifier with the component name + every alias.
  2. Exit 1 = your eradication is INCOMPLETE; fix every reported site, re-run.
  3. Codify the rule in any new skills you build that touch component lifecycle.