Files
the-custodian/workplans/CUST-WP-0004-ep-td-tracking.md

159 lines
4.2 KiB
Markdown

---
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-cluster 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.