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