diff --git a/config/notion-repo-map.json b/config/notion-repo-map.json index df30021..3ccbc7d 100644 --- a/config/notion-repo-map.json +++ b/config/notion-repo-map.json @@ -20,9 +20,6 @@ "portfolio-mcp": { "localProjectId": "38dc21f1-caf0-8157-9f5c-d6425a4b32b9" }, - "portfolio-health": { - "localProjectId": "378c21f1-caf0-81ea-a12a-db8ee770df83" - }, "agent-session-replay": { "localProjectId": "38dc21f1-caf0-81fc-9366-d7d2bdae7815" }, diff --git a/config/portfolio-catalog.yaml b/config/portfolio-catalog.yaml index 3f741da..3f43fa2 100644 --- a/config/portfolio-catalog.yaml +++ b/config/portfolio-catalog.yaml @@ -1180,9 +1180,9 @@ repos: tool_provenance: claude-code portfolio-health: owner: d - lifecycle_state: manual-only + lifecycle_state: archived review_cadence: monthly - operating_path: maintain + operating_path: archive category: infrastructure tool_provenance: claude-code IncidentMgmt: @@ -1382,16 +1382,16 @@ repos: Lazarus: owner: d purpose: guarded repository recovery tool that selects safe historical revisions and blocks sensitive-file restoration - lifecycle_state: manual-only + lifecycle_state: archived criticality: medium review_cadence: monthly - operating_path: maintain + operating_path: archive category: infrastructure tool_provenance: codex - notes: Drill-verified (dated passing drill) at 2026-07-17 tribunal judgment; tribunal - KEEP maps to this manual-only standing-tooling contract. The 2026-07-11 - disposable real-repository recovery drill also passed, including broken-main - rejection, timeout handling, and force-tracked .env blocking. + notes: Drill-verified (dated passing drill) at 2026-07-17 tribunal judgment. The + 2026-07-11 disposable real-repository recovery drill also passed, including + broken-main rejection, timeout handling, and force-tracked .env blocking. + Archived on GitHub 2026-10-12. maturity_program: maintain target_maturity: operating sovereign-intelligence: @@ -1586,23 +1586,23 @@ repos: owner: d purpose: local-first case system for understanding and planning interventions in difficult Git repositories, binding observations to immutable scan epochs - lifecycle_state: active + lifecycle_state: archived review_cadence: weekly - operating_path: experiment + operating_path: archive category: infrastructure portfolio-tribunal: owner: d purpose: KEEP/PARK/KILL judgment layer over GithubRepoAuditor portfolio truth - lifecycle_state: manual-only + lifecycle_state: archived criticality: medium review_cadence: quarterly - operating_path: maintain + operating_path: archive category: infrastructure tool_provenance: claude-code maturity_program: maintain target_maturity: operating automation_eligible: false - notes: Rubric v1.1 graduated 2026-07-17; 182 repos judged and dispositions merged. Re-runnable on demand, not scheduled. + notes: Rubric v1.1 graduated 2026-07-17; 182 repos judged and dispositions merged. Archived on GitHub 2026-10-12. drift-court: owner: d purpose: intent-vs-diff arbitration for delegated agent work, pricing silence and disguise @@ -1632,16 +1632,16 @@ repos: consolidation-map: owner: d purpose: border arbitration over tribunal KEEP repos, ruling MERGE/ABSORB/SHARE_INFRA/STAND_ALONE - lifecycle_state: manual-only + lifecycle_state: archived criticality: medium review_cadence: quarterly - operating_path: maintain + operating_path: archive category: infrastructure tool_provenance: claude-code maturity_program: maintain target_maturity: operating automation_eligible: false - notes: Rubric v1.0 graduated 2026-07-17. Runs on operator request or after a tribunal re-run; not scheduled. + notes: Rubric v1.0 graduated 2026-07-17. Archived on GitHub 2026-10-12. instrument-foundry: owner: d purpose: extracted judgment-instrument chassis and doctrine proven across graduated instruments diff --git a/src/github_repo_auditor/codex_restart_packet.py b/src/github_repo_auditor/codex_restart_packet.py index 3f31d5a..c90c170 100644 --- a/src/github_repo_auditor/codex_restart_packet.py +++ b/src/github_repo_auditor/codex_restart_packet.py @@ -24,7 +24,6 @@ Path.home() / "Projects/cross-system-smoke", Path.home() / "Projects/mcpforge", Path.home() / "Projects/portfolio-index", - Path.home() / "Projects/portfolio-health", ) EXCLUDED_DIR_NAMES = { diff --git a/tests/test_portfolio_catalog.py b/tests/test_portfolio_catalog.py index c99db75..def7162 100644 --- a/tests/test_portfolio_catalog.py +++ b/tests/test_portfolio_catalog.py @@ -276,9 +276,7 @@ def test_live_catalog_matches_operator_attention_reconciliation() -> None: "cross-provider-egress-guard", "cost-tracker", "portfolio-index", - "portfolio-health", "portfolio-mcp", - "Lazarus", "peer-agent-tools", "ApplyKit", "JobCommandCenter", @@ -300,6 +298,19 @@ def test_live_catalog_matches_operator_attention_reconciliation() -> None: assert catalog["repos"][repo_name.lower()]["lifecycle_state"] == "manual-only" assert catalog["repos"]["gpt_rag"]["lifecycle_state"] == "dormant" + # Reckoning wave 0 archived these on GitHub; each repo row now carries the + # archive contract, overriding its former manual-only or active state. + for repo_name in ( + "portfolio-tribunal", + "consolidation-map", + "Lazarus", + "repository-renaissance", + "portfolio-health", + ): + entry = catalog["repos"][repo_name.lower()] + assert entry["lifecycle_state"] == "archived" + assert entry["operating_path"] == "archive" + def test_live_catalog_resolves_egress_alias_to_canonical_manual_only_entry() -> None: catalog_path = Path(__file__).parents[1] / "config" / "portfolio-catalog.yaml"