103 lines
2.8 KiB
Markdown
103 lines
2.8 KiB
Markdown
|
|
---
|
||
|
|
title: Extension Points — Reference
|
||
|
|
---
|
||
|
|
|
||
|
|
# Extension Points — Reference
|
||
|
|
|
||
|
|
The Extension Points page tracks known future enhancement opportunities across
|
||
|
|
all six domains — design forks the system *could* take, parked deliberately
|
||
|
|
for later consideration rather than acted on immediately.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## What is an extension point?
|
||
|
|
|
||
|
|
An extension point (EP) captures a place in the design where additional
|
||
|
|
capability could be added — an API surface that could be extended, a schema
|
||
|
|
that could grow, an integration that could be built. Recording an EP
|
||
|
|
acknowledges the opportunity without committing to it.
|
||
|
|
|
||
|
|
Extension points are distinct from technical debt: debt is a known compromise
|
||
|
|
that should be fixed; EPs are optional future directions that may or may not
|
||
|
|
be pursued.
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## EP types
|
||
|
|
|
||
|
|
| Type | Examples |
|
||
|
|
|------|---------|
|
||
|
|
| **api** | New endpoints, query parameters, response fields |
|
||
|
|
| **schema** | New tables, columns, relationships |
|
||
|
|
| **mcp** | New MCP tools or resources |
|
||
|
|
| **dashboard** | New pages, charts, or components |
|
||
|
|
| **architecture** | Structural changes to the system design |
|
||
|
|
| **integration** | Connections to external systems |
|
||
|
|
| **other** | Anything that doesn't fit the above |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Statuses
|
||
|
|
|
||
|
|
| Status | Meaning |
|
||
|
|
|--------|---------|
|
||
|
|
| **open** | Identified, not yet acted on |
|
||
|
|
| **in_progress** | Being implemented as part of an active workstream |
|
||
|
|
| **addressed** | The capability has been built |
|
||
|
|
| **deferred** | Intentionally postponed |
|
||
|
|
| **wont_fix** | Decided not to pursue — kept for documentation |
|
||
|
|
|
||
|
|
Items are sorted by status (open → in_progress → deferred → addressed → wont_fix)
|
||
|
|
then by priority (critical → high → medium → low).
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Priorities
|
||
|
|
|
||
|
|
| Priority | Meaning |
|
||
|
|
|----------|---------|
|
||
|
|
| **critical** | Needed to unblock other work |
|
||
|
|
| **high** | High-value enhancement for the near term |
|
||
|
|
| **medium** | Would be useful but not urgent |
|
||
|
|
| **low** | Speculative or long-horizon idea |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Filters
|
||
|
|
|
||
|
|
| Filter | Effect |
|
||
|
|
|--------|--------|
|
||
|
|
| **Status** | Multi-select |
|
||
|
|
| **Priority** | Multi-select |
|
||
|
|
| **Domain** | Multi-select |
|
||
|
|
| **Type** | Multi-select |
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Registering an extension point
|
||
|
|
|
||
|
|
Via MCP:
|
||
|
|
|
||
|
|
```
|
||
|
|
register_extension_point(
|
||
|
|
domain = "custodian",
|
||
|
|
title = "Configurable poll interval per dashboard page",
|
||
|
|
ep_type = "dashboard",
|
||
|
|
priority = "low",
|
||
|
|
description = "Each page hard-codes POLL = 15_000. An env var or per-page config would allow slowing down low-priority pages to reduce API load.",
|
||
|
|
location = "state-hub/dashboard/src/*.md",
|
||
|
|
workstream_id = "<uuid>" # optional
|
||
|
|
)
|
||
|
|
```
|
||
|
|
|
||
|
|
```
|
||
|
|
update_ep_status(ep_uuid="<uuid>", status="addressed")
|
||
|
|
```
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
## Human-readable IDs
|
||
|
|
|
||
|
|
Each EP carries an ID in the form `EP-<DOMAIN>-NNN` (e.g. `EP-CUST-001`).
|
||
|
|
IDs are optional at creation and auto-assigned if omitted.
|