159 lines
4.2 KiB
Markdown
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.
|