--- id: CUST-WP-0004 type: workplan title: "Extension Points & Technical Debt Tracking" domain: custodian status: completed owner: custodian topic_slug: custodian state_hub_workstream_id: e84ecd70-b276-4a93-a298-1ef1299b7c22 created: "2026-02-27" updated: "2026-03-11" completed: "2026-03-11" --- # Extension Points & Technical Debt Tracking ## Summary Adds structured tracking for extension points (known future enhancement opportunities) and technical debt (known quality compromises) across all project domains. ## Context Phase 1 (infrastructure) is complete: DB tables (`extension_points`, `technical_debt`), API routers, MCP tools, and dashboard pages are live as of commit `2bf9523` (2026-02-27). Phase 2 populates the catalogue per domain. Phase 3 triages and resolves high-priority items. ## Tasks ### P1.1 — DB schema and API routers for EP and TD ```task id: CUST-WP-0004-T01 state_hub_task_id: 539da477-b9ad-4e0b-a8a1-deab4afe9bc7 status: done priority: high ``` Created `extension_points` and `technical_debt` tables (migration `a3f1c2d4e5b6`). FastAPI routers at `/extension-points/` and `/technical-debt/` with full CRUD and soft-delete (status-based). ### P1.2 — MCP tools for EP and TD registration ```task id: CUST-WP-0004-T02 state_hub_task_id: a35fa615-13a3-4168-9e25-98edbd8411da status: done priority: high ``` Added 6 MCP tools to `server.py`: `register_extension_point`, `list_extension_points`, `update_ep_status`, `register_technical_debt`, `list_technical_debt`, `update_td_status`. Each write tool emits a progress event. ### P1.3 — Dashboard pages for EP and TD ```task id: CUST-WP-0004-T03 state_hub_task_id: cd392ee9-9b65-48cb-8337-9fbe546ea9c3 status: done priority: high ``` Created `extensions.md` and `techdept.md` Observable pages with KPI sidebar, charts (by type, by severity/status), urgent items section, and filterable card lists. Added to nav in `observablehq.config.js`. ### P2.1 — Catalogue technical debt in custodian repo ```task id: CUST-WP-0004-T04 state_hub_task_id: 76aa3932-9a06-45ae-8836-d766eb61b755 status: done priority: high ``` Automated assessment of state-hub codebase. Registered 19 items TD-CUST-001 to TD-CUST-019 (2 high, 10 medium, 7 low). Top priorities: TD-CUST-001 (hard-coded API URL), TD-CUST-004 (no max limit on list endpoints). ### P2.2 — Catalogue technical debt in railiance domain ```task id: CUST-WP-0004-T05 state_hub_task_id: 00492d87-3bb7-4df9-8f12-a06da0307fbc status: done priority: medium ``` Assess railiance-bootstrap and related repos for technical debt. Register findings as `TD-RAIL-xxx` items via the `/technical-debt/` API. ### P2.3 — Catalogue extension points in custodian repo ```task id: CUST-WP-0004-T06 state_hub_task_id: 3069aa1d-3d5f-4b9f-be8b-dfa0ffe690fe status: done priority: medium ``` Identify and register extension points in the state-hub codebase as `EP-CUST-xxx` items: API gaps, MCP tool gaps, dashboard gaps, schema gaps, integration opportunities. ### P2.4 — Catalogue extension points in railiance domain ```task id: CUST-WP-0004-T07 state_hub_task_id: 3a355a74-237f-4572-af05-683eceb32694 status: done priority: low ``` Identify and register extension points in railiance as `EP-RAIL-xxx` items. ### P3.1 — Address TD-CUST-001: extract API URL to config ```task id: CUST-WP-0004-T08 state_hub_task_id: a9b5d39e-706b-4f71-8f5d-ce4f927b3e4c status: done priority: high ``` Replace hard-coded `const API = 'http://127.0.0.1:8000'` in all 7 dashboard pages with a shared config module or Observable environment variable. ### P3.2 — Address TD-CUST-004: add max limit to list endpoints ```task id: CUST-WP-0004-T09 state_hub_task_id: 7050eb96-964d-4c06-a9f5-6d49db6b9c98 status: done priority: high ``` Add `Pydantic Field(le=1000)` to `limit` parameters on all list endpoints (progress, tasks, workstreams, decisions, extension_points, technical_debt) to prevent memory exhaustion. ### P3.3 — Extract shared dashboard CSS to common stylesheet ```task id: CUST-WP-0004-T10 state_hub_task_id: c54553be-d947-4b8d-9c16-eb1a0e9ae3a0 status: done priority: medium ``` Extract `.kpi-infobox`, `.filter-bar` and related CSS from all dashboard pages into a shared CSS file imported by each page. Addresses TD-CUST-003.