From 44f68258e4c6be4cf93b6208b0f11acc797ef098 Mon Sep 17 00:00:00 2001 From: saagpatel Date: Sat, 13 Jun 2026 04:22:10 -0700 Subject: [PATCH] chore: repair portfolio operating state --- config/notion-project-map.json | 12 +++ config/portfolio-catalog.yaml | 105 ++++++++++------------- config/project-registry-overrides.json | 9 +- docs/portfolio-context-contract.md | 1 + src/portfolio_context_contract.py | 1 + tests/test_portfolio_context_contract.py | 11 +++ 6 files changed, 78 insertions(+), 61 deletions(-) diff --git a/config/notion-project-map.json b/config/notion-project-map.json index 43ea4d7..6eafdf3 100644 --- a/config/notion-project-map.json +++ b/config/notion-project-map.json @@ -8,6 +8,9 @@ "bridge-db": { "localProjectId": "34cc21f1-caf0-81cd-9650-cf2253d7afd4" }, + "personal-ops": { + "localProjectId": "35bc21f1-caf0-81cb-9426-dd264ef668b2" + }, "cross-system-smoke": { "localProjectId": "378c21f1-caf0-81ec-b2db-f8a73ab0fb28" }, @@ -17,6 +20,15 @@ "PortfolioCommandCenter": { "localProjectId": "378c21f1-caf0-819a-86c3-c0c41d12eef3" }, + "GithubRepoAuditor": { + "localProjectId": "377c21f1-caf0-817d-9d57-e59a673dd0b7" + }, + "Grotto": { + "localProjectId": "377c21f1-caf0-81d3-add8-f9f31584d5ae" + }, + "Pressfield": { + "localProjectId": "377c21f1-caf0-8175-8858-ee479b9ef673" + }, "CryptForge": { "localProjectId": "326c21f1-caf0-8169-a680-e1ef6f5157e7" }, diff --git a/config/portfolio-catalog.yaml b/config/portfolio-catalog.yaml index 80e8ca3..83aa5c0 100644 --- a/config/portfolio-catalog.yaml +++ b/config/portfolio-catalog.yaml @@ -87,17 +87,6 @@ repos: target_maturity: operating doctor_standard: full notes: Owns Raycast script commands, active-project verification routing, read-only ops snapshots, and mirrored Codex operating-layer prompt/eval snapshots for /Users/d. - _machine/machine-control-tower/bin: - owner: d - purpose: nested command-bin folder under the machine control tower; not an independent portfolio project - lifecycle_state: archived - review_cadence: monthly - intended_disposition: archive - category: infrastructure - tool_provenance: codex - maturity_program: archive - target_maturity: archived - notes: Enrolled only to prevent the nested bin directory from being treated as a standalone decision-needed project. agent-bridge: owner: d purpose: local SQLite-backed MCP shared-state bus for coordinating coding agents @@ -454,6 +443,20 @@ repos: target_maturity: operating automation_eligible: false notes: Use docs/CURRENT-STATE.md for dated release posture, but AGENTS.md is the current primary context contract required by portfolio truth. + mcp-trust: + owner: d + purpose: neutral public trust registry and scan-backed grading surface for MCP servers + lifecycle_state: active + criticality: high + review_cadence: weekly + intended_disposition: maintain + category: infrastructure + tool_provenance: unknown + maturity_program: maintain + target_maturity: operating + automation_eligible: false + doctor_standard: basic + notes: Fresh v0.1.0 Python/FastAPI/Typer repo with v1 launch runbook; public launch is gated on real catalog seeding, sandboxed engine scans, live deploy smoke, and outreach loop validation. ModelColosseum: owner: d lifecycle_state: active @@ -550,10 +553,11 @@ repos: tool_provenance: claude-code GhostRoutes: owner: d - lifecycle_state: active - review_cadence: weekly - intended_disposition: maintain + lifecycle_state: archived + review_cadence: quarterly + intended_disposition: archive tool_provenance: claude-code + notes: Archived from active operator attention on 2026-06-13 because the local git object database cannot read HEAD (`bad tree object HEAD`). Repair should be a deliberate reclone/reset lane, not an in-place portfolio audit mutation. Liminal: owner: d lifecycle_state: active @@ -625,15 +629,6 @@ repos: intended_disposition: maintain category: fun tool_provenance: codex - StatusPage: - owner: d - purpose: self-hosted status page with built-in monitoring and GitHub OAuth admin - flow - lifecycle_state: active - review_cadence: monthly - intended_disposition: maintain - category: infrastructure - tool_provenance: codex MoneyPRJsViaGPT/StatusPage: owner: d purpose: GPT-built StatusPage SaaS/beta variant kept as an archived reference @@ -652,14 +647,6 @@ repos: intended_disposition: maintain category: it-work tool_provenance: codex - ITPRJsViaClaude/IncidentWorkbench: - owner: d - purpose: earlier production-ready IT incident review workbench kept for reference - lifecycle_state: maintenance - review_cadence: quarterly - intended_disposition: maintain - category: it-work - tool_provenance: unknown KBFreshnessDetector: owner: d lifecycle_state: maintenance @@ -682,14 +669,6 @@ repos: intended_disposition: maintain category: fun tool_provenance: codex - FunGamePrjs/OrbitForge: - owner: d - purpose: older build-ready staging copy of the OrbitForge gravity simulator - lifecycle_state: dormant - review_cadence: quarterly - intended_disposition: archive - category: fun - tool_provenance: unknown PersonalKBDrafter: owner: d lifecycle_state: maintenance @@ -824,13 +803,6 @@ repos: review_cadence: weekly intended_disposition: maintain category: fun - ApplyKit-public: - owner: d - lifecycle_state: active - review_cadence: weekly - intended_disposition: maintain - category: commercial - tool_provenance: codex Grotto: owner: d lifecycle_state: active @@ -887,6 +859,20 @@ repos: review_cadence: weekly intended_disposition: maintain category: infrastructure + cross-provider-egress-guard: + owner: d + purpose: destination-aware egress-control hardening lane for Claude Code and Codex hook surfaces + lifecycle_state: active + criticality: high + review_cadence: weekly + intended_disposition: maintain + category: infrastructure + tool_provenance: claude-code + maturity_program: maintain + target_maturity: operating + automation_eligible: false + doctor_standard: basic + notes: Lane is live end-to-end as of 2026-06-12; keep residual hardening, policy widening, and hook deployment under explicit operator review. da-scaffold: owner: d lifecycle_state: active @@ -913,6 +899,19 @@ repos: maturity_program: experiment target_maturity: functional notes: Evidence/history-style docs; use only when a cross-system architecture or conformance decision is active. + fable-outputs: + owner: d + purpose: time-boxed Fable-window artifact and campaign-output workspace + lifecycle_state: experimental + criticality: medium + review_cadence: weekly + intended_disposition: experiment + category: infrastructure + tool_provenance: claude-ai + maturity_program: experiment + target_maturity: functional + automation_eligible: false + notes: Active through the June 10-22, 2026 Fable window; staged harness/config changes are operator-installed only, then archive or park the campaign workspace after final index review. portfolio-index: owner: d purpose: public-safe static portfolio index for hiring-manager review @@ -943,26 +942,12 @@ repos: review_cadence: monthly intended_disposition: maintain category: fun - GithubRepoAuditor-public: - owner: d - lifecycle_state: active - review_cadence: monthly - intended_disposition: maintain - category: infrastructure - tool_provenance: codex LegalDocsReview: owner: d lifecycle_state: active review_cadence: monthly intended_disposition: maintain category: it-work - PomGambler-prod: - owner: d - lifecycle_state: active - review_cadence: monthly - intended_disposition: maintain - category: fun - tool_provenance: codex Relay: owner: d lifecycle_state: active diff --git a/config/project-registry-overrides.json b/config/project-registry-overrides.json index 21e9f88..821a572 100644 --- a/config/project-registry-overrides.json +++ b/config/project-registry-overrides.json @@ -36,13 +36,20 @@ }, "notion_projection_policy_schema_version": "notion_projection_policy.v1", "notion_title_aliases": { + "DesktopTerrarium": "desktop_terrarium", "DesktopPEt-ready": "DesktopPEt", "EarthPulse-readiness": "EarthPulse", + "FreelanceInvoice": "FreeLanceInvoice", "GithubRepoAuditor-public": "GithubRepoAuditor", + "KBFreshness": "KBFreshnessDetector", "Notion Operating System": "Notion", + "OrbitMechanics": "OrbitMechanic", "OrbitForge (staging)": "OrbitForge", "Personal Ops": "operator-os-docs", - "PomGambler-prod": "PomGambler" + "PhantomFrequencies": "Phantom Frequencies", + "PomGambler-prod": "PomGambler", + "seismoscope": "Seismoscope", + "signal-noise": "Signal & Noise" }, "notion_projection_only_rows": { "app": "local runtime/app shell placeholder; not a portfolio-truth repo", diff --git a/docs/portfolio-context-contract.md b/docs/portfolio-context-contract.md index 08a3717..2b19378 100644 --- a/docs/portfolio-context-contract.md +++ b/docs/portfolio-context-contract.md @@ -77,6 +77,7 @@ Accepted aliases include: - `Local Development` - `Commands` - `Quick Start` + - `Quickstart` - `Build & Run` - `Getting Started` - `Usage` diff --git a/src/portfolio_context_contract.py b/src/portfolio_context_contract.py index 1eb51ee..438318d 100644 --- a/src/portfolio_context_contract.py +++ b/src/portfolio_context_contract.py @@ -54,6 +54,7 @@ "run instructions", "development commands", "quick start", + "quickstart", "build run", "getting started", "usage", diff --git a/tests/test_portfolio_context_contract.py b/tests/test_portfolio_context_contract.py index f6ff48e..d017a48 100644 --- a/tests/test_portfolio_context_contract.py +++ b/tests/test_portfolio_context_contract.py @@ -132,6 +132,17 @@ def test_run_instructions_in_subsections_of_quick_start(tmp_path): assert result.run_instructions_present is True +def test_run_instructions_match_quickstart_heading(tmp_path): + _write( + tmp_path, + "README.md", + "# Proj\n\nA tool that does a thing.\n\n" + "## Quickstart\n\n```bash\nproj serve\n```\n", + ) + result = analyze_project_context(tmp_path, ["README.md"]) + assert result.run_instructions_present is True + + def test_heading_containing_alias_term_matches(tmp_path): # "## Commands By Mode" contains the "commands" alias but is not an exact match. _write(