Files
oikos/.agents/skills/lifecycle-deprecate-node/SKILL.md
dtoro 5e3b946ded cleanup: fix all stale references across .agents/ docs
- Rewrite AGENTS.md: DB as source of truth, MCP knowledge tools, archive refs
- Fix OIKOS.md: seeds/ paths, remove Python-era notes, update deployment status
- Fix commands.md, agent-enrollment.md: archive/knowledge/ links
- Fix all SKILL.md files: remove hosts/*.yaml refs, point to inventory.yaml
- Fix HERMES.md, schema.md, page-templates.md, llm-wiki.md: update paths
- Fix bootstrap.sh: identity check reads inventory.yaml
- Fix README.md, cutover-checklist.md: stale wiki references
- Move convert-wiki.py to archive/ (one-shot done)
2026-07-07 21:00:39 +02:00

1.6 KiB

name, risk_class, inputs, verification, docs_update_checklist, transition
name risk_class inputs verification docs_update_checklist transition
lifecycle-deprecate-node config_mutation
node_name
replacement_node_or_reason
homelab node <name> relations — 'affected by' must be empty before completing
doc_page_deprecation_note
active -> deprecated

Lifecycle: deprecate a node

Per seeds/ontology.yaml: a node keeps running but takes no new dependents. Completion condition: zero remaining inbound depends-on/routes-to edges — this is a hard gate, not a suggestion; seeds/policy.yaml lifecycle_overrides.deprecated.refuse lists new-inbound-edges as refused going forward.

  1. Set state: deprecated on the node.
  2. homelab node <name> relations — read affected_by. Every entry there is something still relying on this node.
  3. Migrate or retire each dependent one at a time (point its backend/ config_repo/ingress route elsewhere, or deprecate it too if it's being retired alongside).
  4. Re-run homelab node <name> relations after each dependent is moved. The transition to destroyed is only safe once affected_by is empty — check this every time, don't assume from memory.
  5. Note the deprecation on the doc page: reason, replacement (if any), date.

If step 2 shows dependents you didn't expect, stop and investigate before proceeding — that's exactly the kind of drift the Week-3 detector will catch automatically, but until then this manual check is the gate.

Next (once affected_by is empty): lifecycle-destroy-node.md.