diff --git a/inventory/README.md b/inventory/README.md new file mode 100644 index 0000000..623d26c --- /dev/null +++ b/inventory/README.md @@ -0,0 +1,100 @@ +# State Hub disposition inventory + +**Workplan task:** [SHR-WP-0001-T02](../workplans/SHR-WP-0001-foundation.md) +**Inventory ID:** `SHR-INV-0001` +**Version:** 0.1 (initial, 2026-08-09) + +Machine-readable disposition of State Hub surfaces for the retirement program. +Every item has an initial **owner** and **keep / move / replace / retire** +disposition. Values are revisable through architecture work (T03/T04) and child +implementation workplans (T05). + +## Files + +| File | Contents | +| --- | --- | +| [`state-hub-disposition.yaml`](state-hub-disposition.yaml) | Master inventory (all items) | +| [`capabilities.yaml`](capabilities.yaml) | Capability rollup (primary owner + disposition) | +| [`routes.yaml`](routes.yaml) | OpenAPI routes (live extract) | +| [`datasets.yaml`](datasets.yaml) | SQLAlchemy tables / compat model modules | +| [`mcp-tools.yaml`](mcp-tools.yaml) | MCP tools | +| [`dashboard.yaml`](dashboard.yaml) | Observable dashboard pages | +| [`jobs-callers-ops.yaml`](jobs-callers-ops.yaml) | Jobs, callers, ops deps, migrations | + +## Disposition legend + +| Value | Meaning | +| --- | --- | +| `keep` | Still required during migration without a better home yet, or external dependency retained as-is | +| `move` | Responsibility relocates substantially intact to the named owner | +| `replace` | Capability survives under a different contract/API (not necessarily same schema) | +| `retire` | No successor runtime after evidence gates; history archived | + +## Owner legend (initial) + +| Owner | Role in target architecture | +| --- | --- | +| `hub-core` | Cross-domain framework, messaging, projections, telemetry, policy integration | +| `repo-manager` | Repository representation, file-backed work-record index, consistency, governed control | +| `activity-core` | Schedulers, ops-run execution, event-triggered maintenance | +| `ops-hub` | Service catalog / operational catalogs | +| `fin-hub` | Fabric / financial graph authority | +| `ops-bridge` | Private tunnel connectivity (transport only) | +| `the-custodian` | Kaizen agent personas and durable canon | +| `archive` | Explicitly terminated surfaces (e.g. suggestions, workstream aliases) | +| `state-hub-until-cutover` | Temporary host for migration tooling, schema history, fallback runtime | +| `undetermined` | Needs human/architecture review | + +## Snapshot (v0.1) + +| Kind | Count | +| --- | --- | +| routes | 187 | +| datasets (+ model-compat) | 44 | +| mcp tools | 88 | +| dashboard pages | 39 | +| migrations | 43 | +| jobs | 5 | +| callers | 10 | +| ops dependencies | 9 | +| **total items** | **425** | + +**By disposition:** move 269 · replace 66 · keep 48 · retire 42 + +**By primary owner volume:** repo-manager 167 · hub-core 128 · state-hub-until-cutover 55 · archive 30 · activity-core 18 · ops-hub 13 · fin-hub 10 · ops-bridge 2 · the-custodian 2 + +## Baseline counts (orientation) + +From live `GET /state/summary` on 2026-08-09: + +- topics: 14 +- workplans: 868 +- tasks: 5138 +- decisions: 89 + +Full dataset row counts and recovery evidence belong to **T06**. + +## Regeneration notes + +Routes were extracted from the live OpenAPI document at +`http://127.0.0.1:8000/openapi.json`. Models, MCP tools, dashboard pages, and +migrations were scanned from the `state-hub` checkout. Callers and jobs combine +source docs (`hub-ecosystem-route-audit`, `cron-migration`, +`workstream-caller-inventory`, cluster operating model) with the retirement +`GOAL.md` / `INTENT.md` direction. + +To refresh after large State Hub changes, re-run the extraction against a +current checkout and OpenAPI, then re-apply capability mapping rules (or edit +YAML deliberately and bump `version` / `updated`). + +## Open review points + +1. **Topics vs classification domains** — `topics` marked `replace`; confirm + residual need after classification spine is universal. +2. **Task-flow engine** — assigned `activity-core` / `replace`; confirm whether + flow defs stay repo files with a thinner runtime. +3. **Service catalog vs TPSC** — split between `ops-hub` and `hub-core`; may + consolidate under one catalog authority. +4. **Dashboard home** — currently `replace` under hub-core projection UI; may + become multi-consumer or a small ops surface instead of one mega-dashboard. +5. **Undetermined items** — none remaining after intake/dependency mapping (v0.1.1). diff --git a/inventory/capabilities.yaml b/inventory/capabilities.yaml new file mode 100644 index 0000000..a209f16 --- /dev/null +++ b/inventory/capabilities.yaml @@ -0,0 +1,580 @@ +inventory_id: SHR-INV-0001-capabilities +title: State Hub capability rollup +version: 0.1.1 +created: '2026-08-09' +parent: inventory/state-hub-disposition.yaml +capabilities: +- id: schema-history + item_count: 43 + primary_owner: state-hub-until-cutover + primary_disposition: keep + owners: + state-hub-until-cutover: 43 + dispositions: + keep: 43 + kinds: + migration: 43 +- id: repository-registry + item_count: 24 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 24 + dispositions: + move: 24 + kinds: + route: 16 + dataset: 1 + mcp_tool: 7 +- id: work-records + item_count: 20 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 20 + dispositions: + move: 20 + kinds: + mcp_tool: 20 +- id: capability-catalog + item_count: 18 + primary_owner: hub-core + primary_disposition: move + owners: + hub-core: 18 + dispositions: + move: 18 + kinds: + route: 11 + dataset: 2 + mcp_tool: 5 +- id: suggestion-backlog + item_count: 17 + primary_owner: archive + primary_disposition: retire + owners: + archive: 17 + dispositions: + retire: 17 + kinds: + route: 8 + dataset: 3 + mcp_tool: 6 +- id: cross-domain-registry + item_count: 16 + primary_owner: hub-core + primary_disposition: move + owners: + hub-core: 16 + dispositions: + move: 16 + kinds: + route: 8 + dataset: 1 + mcp_tool: 7 +- id: hub-projection-ui + item_count: 14 + primary_owner: hub-core + primary_disposition: replace + owners: + hub-core: 14 + dispositions: + replace: 14 + kinds: + dashboard_view: 14 +- id: token-telemetry + item_count: 14 + primary_owner: hub-core + primary_disposition: move + owners: + hub-core: 14 + dispositions: + move: 14 + kinds: + route: 9 + dataset: 1 + mcp_tool: 4 +- id: work-coordination-ui + item_count: 14 + primary_owner: repo-manager + primary_disposition: replace + owners: + repo-manager: 14 + dispositions: + replace: 14 + kinds: + dashboard_view: 14 +- id: work-records-workplan-legacy + item_count: 13 + primary_owner: archive + primary_disposition: retire + owners: + archive: 13 + dispositions: + retire: 13 + kinds: + route: 9 + model-compat: 2 + mcp_tool: 1 + caller: 1 +- id: work-records-workplan + item_count: 12 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 12 + dispositions: + move: 12 + kinds: + route: 10 + dataset: 1 + job: 1 +- id: agent-messaging + item_count: 11 + primary_owner: hub-core + primary_disposition: move + owners: + hub-core: 11 + dispositions: + move: 11 + kinds: + route: 6 + dataset: 1 + mcp_tool: 4 +- id: interface-change-log + item_count: 11 + primary_owner: hub-core + primary_disposition: move + owners: + hub-core: 11 + dispositions: + move: 11 + kinds: + route: 6 + dataset: 1 + mcp_tool: 4 +- id: fabric-graph + item_count: 10 + primary_owner: fin-hub + primary_disposition: move + owners: + fin-hub: 10 + dispositions: + move: 10 + kinds: + route: 7 + dataset: 3 +- id: sbom-inventory + item_count: 10 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 10 + dispositions: + move: 10 + kinds: + route: 6 + dataset: 2 + mcp_tool: 2 +- id: third-party-software-catalog + item_count: 10 + primary_owner: hub-core + primary_disposition: move + owners: + hub-core: 10 + dispositions: + move: 10 + kinds: + route: 6 + dataset: 3 + mcp_tool: 1 +- id: legacy-meter + item_count: 9 + primary_owner: state-hub-until-cutover + primary_disposition: retire + owners: + state-hub-until-cutover: 9 + dispositions: + retire: 9 + kinds: + route: 7 + dataset: 2 +- id: register-technical-debt + item_count: 9 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 9 + dispositions: + move: 9 + kinds: + route: 7 + dataset: 2 +- id: repo-goals + item_count: 9 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 9 + dispositions: + move: 9 + kinds: + route: 4 + dataset: 1 + mcp_tool: 4 +- id: service-catalog + item_count: 9 + primary_owner: ops-hub + primary_disposition: move + owners: + ops-hub: 9 + dispositions: + move: 9 + kinds: + route: 3 + dataset: 5 + mcp_tool: 1 +- id: state-projections + item_count: 9 + primary_owner: hub-core + primary_disposition: replace + owners: + hub-core: 9 + dispositions: + replace: 7 + move: 2 + kinds: + route: 5 + mcp_tool: 3 + job: 1 +- id: unclassified + item_count: 9 + primary_owner: hub-core + primary_disposition: replace + owners: + ops-hub: 2 + state-hub-until-cutover: 2 + ops-bridge: 1 + hub-core: 3 + activity-core: 1 + dispositions: + replace: 3 + retire: 2 + keep: 3 + move: 1 + kinds: + ops_dependency: 9 +- id: upstream-contributions + item_count: 9 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 9 + dispositions: + move: 9 + kinds: + route: 5 + dataset: 1 + mcp_tool: 3 +- id: work-records-intake + item_count: 9 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 9 + dispositions: + move: 9 + kinds: + route: 7 + dataset: 2 +- id: work-records-task + item_count: 9 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 8 + activity-core: 1 + dispositions: + move: 8 + replace: 1 + kinds: + route: 7 + dataset: 1 + job: 1 +- id: progress-telemetry + item_count: 8 + primary_owner: hub-core + primary_disposition: move + owners: + hub-core: 8 + dispositions: + move: 7 + replace: 1 + kinds: + route: 4 + dataset: 1 + mcp_tool: 2 + caller: 1 +- id: repo-ui + item_count: 8 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 8 + dispositions: + move: 8 + kinds: + dashboard_view: 8 +- id: topic-spine + item_count: 8 + primary_owner: repo-manager + primary_disposition: replace + owners: + repo-manager: 8 + dispositions: + replace: 8 + kinds: + route: 5 + dataset: 1 + mcp_tool: 2 +- id: work-records-decision + item_count: 8 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 8 + dispositions: + move: 7 + replace: 1 + kinds: + route: 6 + dataset: 1 + caller: 1 +- id: workplan-execution-queue + item_count: 7 + primary_owner: activity-core + primary_disposition: replace + owners: + activity-core: 7 + dispositions: + replace: 7 + kinds: + route: 6 + dataset: 1 +- id: domain-goals + item_count: 6 + primary_owner: hub-core + primary_disposition: move + owners: + hub-core: 6 + dispositions: + move: 6 + kinds: + route: 5 + dataset: 1 +- id: register-entries + item_count: 6 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 6 + dispositions: + move: 6 + kinds: + mcp_tool: 6 +- id: register-extension-points + item_count: 6 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 6 + dispositions: + move: 6 + kinds: + route: 5 + dataset: 1 +- id: task-flow-engine + item_count: 6 + primary_owner: activity-core + primary_disposition: replace + owners: + activity-core: 6 + dispositions: + replace: 6 + kinds: + route: 3 + mcp_tool: 3 +- id: repo-consistency + item_count: 3 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 2 + activity-core: 1 + dispositions: + move: 3 + kinds: + route: 1 + job: 1 + caller: 1 +- id: agent-integration + item_count: 2 + primary_owner: hub-core + primary_disposition: replace + owners: + hub-core: 2 + dispositions: + replace: 2 + kinds: + caller: 2 +- id: kaizen-agents + item_count: 2 + primary_owner: the-custodian + primary_disposition: move + owners: + the-custodian: 2 + dispositions: + move: 2 + kinds: + mcp_tool: 2 +- id: policy-integration + item_count: 2 + primary_owner: hub-core + primary_disposition: move + owners: + hub-core: 2 + dispositions: + move: 2 + kinds: + route: 2 +- id: service-catalog-ui + item_count: 2 + primary_owner: ops-hub + primary_disposition: move + owners: + ops-hub: 2 + dispositions: + move: 2 + kinds: + dashboard_view: 2 +- id: work-records-deps + item_count: 2 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 2 + dispositions: + move: 2 + kinds: + dataset: 1 + mcp_tool: 1 +- id: connectivity + item_count: 1 + primary_owner: ops-bridge + primary_disposition: keep + owners: + ops-bridge: 1 + dispositions: + keep: 1 + kinds: + caller: 1 +- id: dashboard + item_count: 1 + primary_owner: hub-core + primary_disposition: replace + owners: + hub-core: 1 + dispositions: + replace: 1 + kinds: + caller: 1 +- id: dashboard-meta + item_count: 1 + primary_owner: state-hub-until-cutover + primary_disposition: retire + owners: + state-hub-until-cutover: 1 + dispositions: + retire: 1 + kinds: + dashboard_view: 1 +- id: event-bus + item_count: 1 + primary_owner: hub-core + primary_disposition: move + owners: + hub-core: 1 + dispositions: + move: 1 + kinds: + job: 1 +- id: ops-automation + item_count: 1 + primary_owner: activity-core + primary_disposition: keep + owners: + activity-core: 1 + dispositions: + keep: 1 + kinds: + caller: 1 +- id: ops-run-projection + item_count: 1 + primary_owner: activity-core + primary_disposition: move + owners: + activity-core: 1 + dispositions: + move: 1 + kinds: + route: 1 +- id: recently-on-scope + item_count: 1 + primary_owner: hub-core + primary_disposition: replace + owners: + hub-core: 1 + dispositions: + replace: 1 + kinds: + route: 1 +- id: repo-doi + item_count: 1 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 1 + dispositions: + move: 1 + kinds: + dataset: 1 +- id: repo-onboarding + item_count: 1 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 1 + dispositions: + move: 1 + kinds: + caller: 1 +- id: repo-reconciliation + item_count: 1 + primary_owner: repo-manager + primary_disposition: move + owners: + repo-manager: 1 + dispositions: + move: 1 + kinds: + route: 1 +- id: write-idempotency + item_count: 1 + primary_owner: hub-core + primary_disposition: move + owners: + hub-core: 1 + dispositions: + move: 1 + kinds: + dataset: 1 diff --git a/inventory/dashboard.yaml b/inventory/dashboard.yaml new file mode 100644 index 0000000..9ad75a4 --- /dev/null +++ b/inventory/dashboard.yaml @@ -0,0 +1,415 @@ +inventory_id: SHR-INV-0001 +title: State Hub capability disposition inventory +version: 0.1.1 +created: '2026-08-09' +updated: '2026-08-09' +workplan_task: SHR-WP-0001-T02 +source_repo: state-hub +source_revision_note: Inventory generated from live OpenAPI, source tree, and docs on 2026-08-09 +disposition_values: +- keep +- move +- replace +- retire +owner_values: +- hub-core +- repo-manager +- activity-core +- issue-core +- ops-hub +- fin-hub +- ops-bridge +- the-custodian +- archive +- state-hub-until-cutover +- undetermined +confidence_values: +- initial +- medium +- high +rules: +- dispositions are initial and revisable through architecture tasks T03/T04 and child workplans +- file-backed work records remain authoritative in domain repos regardless of index owner +- retire means no successor runtime after evidence gates; archive history retained +- replace means capability survives under a different contract/API, not necessarily same schema +- move means substantially same responsibility relocates to named owner +- keep means remains operationally required during migration without a better home yet, or external dependency + retained +related_docs: +- state-hub/INTENT.md +- state-hub/docs/hub-ecosystem-route-audit.md +- state-hub/docs/cron-migration.md +- state-hub/docs/cluster-operating-model.md +- state-hub/docs/evidence/workstream-caller-inventory-20260709.md +- prj-state-hub-retirement/GOAL.md +baseline_counts: + captured_at: '2026-08-09T15:33:34Z' + source: GET /state/summary + topics_total: 14 + workplans_total: 868 + tasks_total: 5138 + decisions_total: 89 + notes: Full table counts for T06; this is orientation baseline only +items: +- id: dash:/capability-requests + kind: dashboard_view + path: /capability-requests + source_file: capability-requests.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/contributions + kind: dashboard_view + path: /contributions + source_file: contributions.md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/decisions + kind: dashboard_view + path: /decisions + source_file: decisions.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/dependencies + kind: dashboard_view + path: /dependencies + source_file: dependencies.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Dependency graph UI over workplan deps +- id: dash:/domains/recently-on-scope + kind: dashboard_view + path: /domains/recently-on-scope + source_file: domains/recently-on-scope.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/domains + kind: dashboard_view + path: /domains + source_file: domains.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/extensions + kind: dashboard_view + path: /extensions + source_file: extensions.md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/goals + kind: dashboard_view + path: /goals + source_file: goals.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/inbox + kind: dashboard_view + path: /inbox + source_file: inbox.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/index + kind: dashboard_view + path: /index + source_file: index.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/interface-changes + kind: dashboard_view + path: /interface-changes + source_file: interface-changes.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/interventions + kind: dashboard_view + path: /interventions + source_file: interventions.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/policy/intake-doc + kind: dashboard_view + path: /policy/intake-doc + source_file: policy/intake-doc.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/policy/repo-doi + kind: dashboard_view + path: /policy/repo-doi + source_file: policy/repo-doi.md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/policy/service-dom + kind: dashboard_view + path: /policy/service-dom + source_file: policy/service-dom.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/policy/work-item-dor + kind: dashboard_view + path: /policy/work-item-dor + source_file: policy/work-item-dor.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/policy/workstream-dod + kind: dashboard_view + path: /policy/workstream-dod + source_file: policy/workstream-dod.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/progress + kind: dashboard_view + path: /progress + source_file: progress.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/reference + kind: dashboard_view + path: /reference + source_file: reference.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/repo-sync + kind: dashboard_view + path: /repo-sync + source_file: repo-sync.md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/repos/* + kind: dashboard_view + path: /repos/* + source_file: repos/[slug].md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/repos + kind: dashboard_view + path: /repos + source_file: repos.md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/sbom + kind: dashboard_view + path: /sbom + source_file: sbom.md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/services/first-party + kind: dashboard_view + path: /services/first-party + source_file: services/first-party.md + capability: service-catalog-ui + owner: ops-hub + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/services/self-hosted + kind: dashboard_view + path: /services/self-hosted + source_file: services/self-hosted.md + capability: service-catalog-ui + owner: ops-hub + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/suggestions + kind: dashboard_view + path: /suggestions + source_file: suggestions.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/tasks/* + kind: dashboard_view + path: /tasks/* + source_file: tasks/[id].md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/tasks + kind: dashboard_view + path: /tasks + source_file: tasks.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/techdept + kind: dashboard_view + path: /techdept + source_file: techdept.md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/todo + kind: dashboard_view + path: /todo + source_file: todo.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/token-cost + kind: dashboard_view + path: /token-cost + source_file: token-cost.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/token-events/* + kind: dashboard_view + path: /token-events/* + source_file: token-events/[id].md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/tools + kind: dashboard_view + path: /tools + source_file: tools.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/tpsc + kind: dashboard_view + path: /tpsc + source_file: tpsc.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/ui-feedback + kind: dashboard_view + path: /ui-feedback + source_file: ui-feedback.md + capability: dashboard-meta + owner: state-hub-until-cutover + disposition: retire + confidence: medium + notes: Dashboard feedback scratch; not a product capability +- id: dash:/workplan-queue + kind: dashboard_view + path: /workplan-queue + source_file: workplan-queue.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/workstreams/* + kind: dashboard_view + path: /workstreams/* + source_file: workstreams/[id].md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/workstreams + kind: dashboard_view + path: /workstreams + source_file: workstreams.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/wsjf-triage + kind: dashboard_view + path: /wsjf-triage + source_file: wsjf-triage.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +summary: + item_count: 39 + by_disposition: + replace: 28 + move: 10 + retire: 1 + by_owner: + hub-core: 14 + repo-manager: 22 + ops-hub: 2 + state-hub-until-cutover: 1 diff --git a/inventory/datasets.yaml b/inventory/datasets.yaml new file mode 100644 index 0000000..0c8fdaa --- /dev/null +++ b/inventory/datasets.yaml @@ -0,0 +1,655 @@ +inventory_id: SHR-INV-0001 +title: State Hub capability disposition inventory +version: 0.1.1 +created: '2026-08-09' +updated: '2026-08-09' +workplan_task: SHR-WP-0001-T02 +source_repo: state-hub +source_revision_note: Inventory generated from live OpenAPI, source tree, and docs on 2026-08-09 +disposition_values: +- keep +- move +- replace +- retire +owner_values: +- hub-core +- repo-manager +- activity-core +- issue-core +- ops-hub +- fin-hub +- ops-bridge +- the-custodian +- archive +- state-hub-until-cutover +- undetermined +confidence_values: +- initial +- medium +- high +rules: +- dispositions are initial and revisable through architecture tasks T03/T04 and child workplans +- file-backed work records remain authoritative in domain repos regardless of index owner +- retire means no successor runtime after evidence gates; archive history retained +- replace means capability survives under a different contract/API, not necessarily same schema +- move means substantially same responsibility relocates to named owner +- keep means remains operationally required during migration without a better home yet, or external dependency + retained +related_docs: +- state-hub/INTENT.md +- state-hub/docs/hub-ecosystem-route-audit.md +- state-hub/docs/cron-migration.md +- state-hub/docs/cluster-operating-model.md +- state-hub/docs/evidence/workstream-caller-inventory-20260709.md +- prj-state-hub-retirement/GOAL.md +baseline_counts: + captured_at: '2026-08-09T15:33:34Z' + source: GET /state/summary + topics_total: 14 + workplans_total: 868 + tasks_total: 5138 + decisions_total: 89 + notes: Full table counts for T06; this is orientation baseline only +items: +- id: table:agent_messages + kind: dataset + table: agent_messages + module: agent_message + file: api/models/agent_message.py + classes: + - AgentMessage + capability: agent-messaging + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:capability_catalog + kind: dataset + table: capability_catalog + module: capability_catalog + file: api/models/capability_catalog.py + classes: + - CapabilityCatalog + capability: capability-catalog + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:capability_requests + kind: dataset + table: capability_requests + module: capability_request + file: api/models/capability_request.py + classes: + - CapabilityRequest + capability: capability-catalog + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:contributions + kind: dataset + table: contributions + module: contribution + file: api/models/contribution.py + classes: + - ContributionType + - ContributionStatus + - Contribution + capability: upstream-contributions + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:decisions + kind: dataset + table: decisions + module: decision + file: api/models/decision.py + classes: + - DecisionType + - DecisionStatus + - Decision + capability: work-records-decision + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:doi_cache + kind: dataset + table: doi_cache + module: doi_cache + file: api/models/doi_cache.py + classes: + - DOICache + capability: repo-doi + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:domains + kind: dataset + table: domains + module: domain + file: api/models/domain.py + classes: + - Domain + capability: cross-domain-registry + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:domain_goals + kind: dataset + table: domain_goals + module: domain_goal + file: api/models/domain_goal.py + classes: + - DomainGoalStatus + - DomainGoal + capability: domain-goals + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:extension_points + kind: dataset + table: extension_points + module: extension_point + file: api/models/extension_point.py + classes: + - EPStatus + - ExtensionPoint + capability: register-extension-points + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:fabric_graph_imports + kind: dataset + table: fabric_graph_imports + module: fabric_graph + file: api/models/fabric_graph.py + classes: + - FabricGraphImport + - FabricGraphNode + - FabricGraphEdge + capability: fabric-graph + owner: fin-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:fabric_graph_nodes + kind: dataset + table: fabric_graph_nodes + module: fabric_graph + file: api/models/fabric_graph.py + classes: + - FabricGraphImport + - FabricGraphNode + - FabricGraphEdge + capability: fabric-graph + owner: fin-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:fabric_graph_edges + kind: dataset + table: fabric_graph_edges + module: fabric_graph + file: api/models/fabric_graph.py + classes: + - FabricGraphImport + - FabricGraphNode + - FabricGraphEdge + capability: fabric-graph + owner: fin-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:intakes + kind: dataset + table: intakes + module: intake + file: api/models/intake.py + classes: + - IntakeLane + - IntakeStatus + - IntakeOutcome + - Intake + - IntakeNote + capability: work-records-intake + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:intake_notes + kind: dataset + table: intake_notes + module: intake + file: api/models/intake.py + classes: + - IntakeLane + - IntakeStatus + - IntakeOutcome + - Intake + - IntakeNote + capability: work-records-intake + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:interface_changes + kind: dataset + table: interface_changes + module: interface_change + file: api/models/interface_change.py + classes: + - InterfaceChange + capability: interface-change-log + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:legacy_interfaces + kind: dataset + table: legacy_interfaces + module: legacy_meter + file: api/models/legacy_meter.py + classes: + - LegacyInterface + - LegacyInterfaceUsageBucket + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:legacy_interface_usage_buckets + kind: dataset + table: legacy_interface_usage_buckets + module: legacy_meter + file: api/models/legacy_meter.py + classes: + - LegacyInterface + - LegacyInterfaceUsageBucket + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:managed_repos + kind: dataset + table: managed_repos + module: managed_repo + file: api/models/managed_repo.py + classes: + - ManagedRepo + capability: repository-registry + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:progress_events + kind: dataset + table: progress_events + module: progress_event + file: api/models/progress_event.py + classes: + - ProgressEvent + capability: progress-telemetry + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:repo_goals + kind: dataset + table: repo_goals + module: repo_goal + file: api/models/repo_goal.py + classes: + - RepoGoalStatus + - RepoGoal + capability: repo-goals + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:sbom_entries + kind: dataset + table: sbom_entries + module: sbom_entry + file: api/models/sbom_entry.py + classes: + - Ecosystem + - SBOMEntry + capability: sbom-inventory + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:sbom_snapshots + kind: dataset + table: sbom_snapshots + module: sbom_snapshot + file: api/models/sbom_snapshot.py + classes: + - SBOMSnapshot + capability: sbom-inventory + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:service_catalog + kind: dataset + table: service_catalog + module: service_catalog + file: api/models/service_catalog.py + classes: + - ServiceCatalog + - ServiceThirdParty + - ServiceFirstParty + - ServiceCloud + - ServiceSelfHosted + capability: service-catalog + owner: ops-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:service_third_party + kind: dataset + table: service_third_party + module: service_catalog + file: api/models/service_catalog.py + classes: + - ServiceCatalog + - ServiceThirdParty + - ServiceFirstParty + - ServiceCloud + - ServiceSelfHosted + capability: service-catalog + owner: ops-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:service_first_party + kind: dataset + table: service_first_party + module: service_catalog + file: api/models/service_catalog.py + classes: + - ServiceCatalog + - ServiceThirdParty + - ServiceFirstParty + - ServiceCloud + - ServiceSelfHosted + capability: service-catalog + owner: ops-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:service_cloud + kind: dataset + table: service_cloud + module: service_catalog + file: api/models/service_catalog.py + classes: + - ServiceCatalog + - ServiceThirdParty + - ServiceFirstParty + - ServiceCloud + - ServiceSelfHosted + capability: service-catalog + owner: ops-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:service_self_hosted + kind: dataset + table: service_self_hosted + module: service_catalog + file: api/models/service_catalog.py + classes: + - ServiceCatalog + - ServiceThirdParty + - ServiceFirstParty + - ServiceCloud + - ServiceSelfHosted + capability: service-catalog + owner: ops-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:suggestions + kind: dataset + table: suggestions + module: suggestion + file: api/models/suggestion.py + classes: + - SuggestionStage + - Suggestion + - SuggestionNote + - SuggestionRelevanceBump + capability: suggestion-backlog + owner: archive + disposition: retire + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:suggestion_notes + kind: dataset + table: suggestion_notes + module: suggestion + file: api/models/suggestion.py + classes: + - SuggestionStage + - Suggestion + - SuggestionNote + - SuggestionRelevanceBump + capability: suggestion-backlog + owner: archive + disposition: retire + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:suggestion_relevance_bumps + kind: dataset + table: suggestion_relevance_bumps + module: suggestion + file: api/models/suggestion.py + classes: + - SuggestionStage + - Suggestion + - SuggestionNote + - SuggestionRelevanceBump + capability: suggestion-backlog + owner: archive + disposition: retire + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:tasks + kind: dataset + table: tasks + module: task + file: api/models/task.py + classes: + - TaskStatus + - TaskPriority + - Task + capability: work-records-task + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:td_notes + kind: dataset + table: td_notes + module: technical_debt + file: api/models/technical_debt.py + classes: + - TDStatus + - TDNote + - TechnicalDebt + capability: register-technical-debt + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:technical_debt + kind: dataset + table: technical_debt + module: technical_debt + file: api/models/technical_debt.py + classes: + - TDStatus + - TDNote + - TechnicalDebt + capability: register-technical-debt + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:token_events + kind: dataset + table: token_events + module: token_event + file: api/models/token_event.py + classes: + - TokenEvent + capability: token-telemetry + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:topics + kind: dataset + table: topics + module: topic + file: api/models/topic.py + classes: + - TopicStatus + - Topic + capability: topic-spine + owner: repo-manager + disposition: replace + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:tpsc_catalog + kind: dataset + table: tpsc_catalog + module: tpsc + file: api/models/tpsc.py + classes: + - TPSCCatalog + - TPSCSnapshot + - TPSCEntry + capability: third-party-software-catalog + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:tpsc_snapshots + kind: dataset + table: tpsc_snapshots + module: tpsc + file: api/models/tpsc.py + classes: + - TPSCCatalog + - TPSCSnapshot + - TPSCEntry + capability: third-party-software-catalog + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:tpsc_entries + kind: dataset + table: tpsc_entries + module: tpsc + file: api/models/tpsc.py + classes: + - TPSCCatalog + - TPSCSnapshot + - TPSCEntry + capability: third-party-software-catalog + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:workplans + kind: dataset + table: workplans + module: workplan + file: api/models/workplan.py + classes: + - Workplan + capability: work-records-workplan + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:workplan_dependencies + kind: dataset + table: workplan_dependencies + module: workplan_dependency + file: api/models/workplan_dependency.py + classes: + - WorkplanDependency + capability: work-records-deps + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:workplan_launch_requests + kind: dataset + table: workplan_launch_requests + module: workplan_launch_request + file: api/models/workplan_launch_request.py + classes: + - WorkplanLaunchRequest + capability: workplan-execution-queue + owner: activity-core + disposition: replace + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: model-module:workstream + kind: model-compat + module: workstream + file: api/models/workstream.py + capability: work-records-workplan-legacy + owner: archive + disposition: retire + confidence: initial + notes: Compat shim module; no independent table +- id: model-module:workstream_dependency + kind: model-compat + module: workstream_dependency + file: api/models/workstream_dependency.py + capability: work-records-workplan-legacy + owner: archive + disposition: retire + confidence: initial + notes: Compat shim module; no independent table +- id: table:write_idempotency_keys + kind: dataset + table: write_idempotency_keys + module: write_idempotency_key + file: api/models/write_idempotency_key.py + classes: + - WriteIdempotencyKey + capability: write-idempotency + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +summary: + item_count: 44 + by_disposition: + move: 35 + retire: 7 + replace: 2 + by_owner: + hub-core: 12 + repo-manager: 16 + fin-hub: 3 + state-hub-until-cutover: 2 + ops-hub: 5 + archive: 5 + activity-core: 1 diff --git a/inventory/jobs-callers-ops.yaml b/inventory/jobs-callers-ops.yaml new file mode 100644 index 0000000..a9f4ffb --- /dev/null +++ b/inventory/jobs-callers-ops.yaml @@ -0,0 +1,668 @@ +inventory_id: SHR-INV-0001 +title: State Hub capability disposition inventory +version: 0.1.1 +created: '2026-08-09' +updated: '2026-08-09' +workplan_task: SHR-WP-0001-T02 +source_repo: state-hub +source_revision_note: Inventory generated from live OpenAPI, source tree, and docs on 2026-08-09 +disposition_values: +- keep +- move +- replace +- retire +owner_values: +- hub-core +- repo-manager +- activity-core +- issue-core +- ops-hub +- fin-hub +- ops-bridge +- the-custodian +- archive +- state-hub-until-cutover +- undetermined +confidence_values: +- initial +- medium +- high +rules: +- dispositions are initial and revisable through architecture tasks T03/T04 and child workplans +- file-backed work records remain authoritative in domain repos regardless of index owner +- retire means no successor runtime after evidence gates; archive history retained +- replace means capability survives under a different contract/API, not necessarily same schema +- move means substantially same responsibility relocates to named owner +- keep means remains operationally required during migration without a better home yet, or external dependency + retained +related_docs: +- state-hub/INTENT.md +- state-hub/docs/hub-ecosystem-route-audit.md +- state-hub/docs/cron-migration.md +- state-hub/docs/cluster-operating-model.md +- state-hub/docs/evidence/workstream-caller-inventory-20260709.md +- prj-state-hub-retirement/GOAL.md +baseline_counts: + captured_at: '2026-08-09T15:33:34Z' + source: GET /state/summary + topics_total: 14 + workplans_total: 868 + tasks_total: 5138 + decisions_total: 89 + notes: Full table counts for T06; this is orientation baseline only +items: +- id: migration:0001_initial_schema.py + kind: migration + file: migrations/versions/0001_initial_schema.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:0b547c153153_add_workstream_dependencies.py + kind: migration + file: migrations/versions/0b547c153153_add_workstream_dependencies.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:5733434addf4_merge_task_status_canon_and_legacy_.py + kind: migration + file: migrations/versions/5733434addf4_merge_task_status_canon_and_legacy_.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:a3b4c5d6e7f8_gems_pass3_sbom_snapshot.py + kind: migration + file: migrations/versions/a3b4c5d6e7f8_gems_pass3_sbom_snapshot.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:a3f1c2d4e5b6_add_extension_points_and_technical_debt.py + kind: migration + file: migrations/versions/a3f1c2d4e5b6_add_extension_points_and_technical_debt.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:a4v5w6x7y8z0_legacy_meter.py + kind: migration + file: migrations/versions/a4v5w6x7y8z0_legacy_meter.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:a4v5w6x7y8z9_task_status_canon.py + kind: migration + file: migrations/versions/a4v5w6x7y8z9_task_status_canon.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:a7c3e9f1b4d2_intake_work_record_entity.py + kind: migration + file: migrations/versions/a7c3e9f1b4d2_intake_work_record_entity.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:b1c2d3e4f5a6_v0_5_dynamic_domains_and_managed_repos.py + kind: migration + file: migrations/versions/b1c2d3e4f5a6_v0_5_dynamic_domains_and_managed_repos.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:b4c5d6e7f8a9_add_needs_human.py + kind: migration + file: migrations/versions/b4c5d6e7f8a9_add_needs_human.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:c2d3e4f5a6b7_v0_3_contributions.py + kind: migration + file: migrations/versions/c2d3e4f5a6b7_v0_3_contributions.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:c5d6e7f8a9b0_add_goals.py + kind: migration + file: migrations/versions/c5d6e7f8a9b0_add_goals.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:c7d8e9f0a1b2_service_catalog.py + kind: migration + file: migrations/versions/c7d8e9f0a1b2_service_catalog.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:d3e4f5a6b7c8_v0_3_sbom_entries.py + kind: migration + file: migrations/versions/d3e4f5a6b7c8_v0_3_sbom_entries.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:d6e7f8a9b0c1_sbom_ecosystem_expand.py + kind: migration + file: migrations/versions/d6e7f8a9b0c1_sbom_ecosystem_expand.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:d8e9f0a1b2c3_repo_anchored_classification_spine.py + kind: migration + file: migrations/versions/d8e9f0a1b2c3_repo_anchored_classification_spine.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:e1f2a3b4c5d6_gems_pass1_domain_fk.py + kind: migration + file: migrations/versions/e1f2a3b4c5d6_gems_pass1_domain_fk.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:e2f3a4b5c6d7_add_last_state_synced_at_to_repos.py + kind: migration + file: migrations/versions/e2f3a4b5c6d7_add_last_state_synced_at_to_repos.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:e9f0a1b2c3d4_write_idempotency_keys.py + kind: migration + file: migrations/versions/e9f0a1b2c3d4_write_idempotency_keys.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:f0a1b2c3d4e5_suggestions.py + kind: migration + file: migrations/versions/f0a1b2c3d4e5_suggestions.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:f1a2b3c4d5e6_workplan_file_backing.py + kind: migration + file: migrations/versions/f1a2b3c4d5e6_workplan_file_backing.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:f2a3b4c5d6e7_gems_pass2_workstream_repo_id.py + kind: migration + file: migrations/versions/f2a3b4c5d6e7_gems_pass2_workstream_repo_id.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:f3a4b5c6d7e8_add_agent_messages.py + kind: migration + file: migrations/versions/f3a4b5c6d7e8_add_agent_messages.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:g4b5c6d7e8f9_add_host_paths_to_repos.py + kind: migration + file: migrations/versions/g4b5c6d7e8f9_add_host_paths_to_repos.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:h5c6d7e8f9a0_suggestion_workflow.py + kind: migration + file: migrations/versions/h5c6d7e8f9a0_suggestion_workflow.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:i6d7e8f9a0b1_capability_requests.py + kind: migration + file: migrations/versions/i6d7e8f9a0b1_capability_requests.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:j7e8f9a0b1c2_tpsc.py + kind: migration + file: migrations/versions/j7e8f9a0b1c2_tpsc.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:k8f9a0b1c2d3_doi_cache.py + kind: migration + file: migrations/versions/k8f9a0b1c2d3_doi_cache.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:l9g0h1i2j3k4_capability_request_routing_note.py + kind: migration + file: migrations/versions/l9g0h1i2j3k4_capability_request_routing_note.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:m0h1i2j3k4l5_capability_request_dispute.py + kind: migration + file: migrations/versions/m0h1i2j3k4l5_capability_request_dispute.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:n1i2j3k4l5m6_add_git_fingerprint_to_repos.py + kind: migration + file: migrations/versions/n1i2j3k4l5m6_add_git_fingerprint_to_repos.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:o2j3k4l5m6n7_add_token_events.py + kind: migration + file: migrations/versions/o2j3k4l5m6n7_add_token_events.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:p3k4l5m6n7o8_add_repo_id_to_capability_catalog.py + kind: migration + file: migrations/versions/p3k4l5m6n7o8_add_repo_id_to_capability_catalog.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:q4l5m6n7o8p9_add_interface_changes.py + kind: migration + file: migrations/versions/q4l5m6n7o8p9_add_interface_changes.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:r5m6n7o8p9q0_workstream_status_string.py + kind: migration + file: migrations/versions/r5m6n7o8p9q0_workstream_status_string.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:s6n7o8p9q0r1_workstream_planning_metadata.py + kind: migration + file: migrations/versions/s6n7o8p9q0r1_workstream_planning_metadata.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:t7o8p9q0r1s2_perf_indexes.py + kind: migration + file: migrations/versions/t7o8p9q0r1s2_perf_indexes.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:u8p9q0r1s2t3_workstream_canonical_states.py + kind: migration + file: migrations/versions/u8p9q0r1s2t3_workstream_canonical_states.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:v9q0r1s2t3u4_token_event_provenance.py + kind: migration + file: migrations/versions/v9q0r1s2t3u4_token_event_provenance.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:w0r1s2t3u4v5_token_event_legacy_source_ids.py + kind: migration + file: migrations/versions/w0r1s2t3u4v5_token_event_legacy_source_ids.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:x1s2t3u4v5w6_workplan_execution_queue.py + kind: migration + file: migrations/versions/x1s2t3u4v5w6_workplan_execution_queue.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:y2t3u4v5w6x7_fabric_graph_read_model.py + kind: migration + file: migrations/versions/y2t3u4v5w6x7_fabric_graph_read_model.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:z3u4v5w6x7y8_financial_fabric_vnext.py + kind: migration + file: migrations/versions/z3u4v5w6x7y8_financial_fabric_vnext.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: job:consistency-sweep-remote-all + kind: job + name: consistency_sweep_remote_all + trigger: activity-core cron ~15m (Railiance01) → POST /consistency/sweep/remote-all + capability: repo-consistency + owner: activity-core + disposition: move + notes: Executor stays activity-core; reconciliation engine moves with repo-manager + confidence: high + source: docs/cron-migration.md +- id: job:cleanup-stale-tasks + kind: job + name: cleanup_stale_tasks + trigger: manual/daily cron make cleanup-stale + capability: work-records-task + owner: activity-core + disposition: replace + notes: Migrate to ActivityDefinition per docs/cron-migration.md + confidence: high + source: docs/cron-migration.md +- id: job:summary-cache-refresh + kind: job + name: summary_cache_background_refresh + trigger: in-process asyncio on /state/summary + capability: state-projections + owner: hub-core + disposition: replace + notes: Becomes hub-core projection cache + confidence: initial + source: api/services/summary_cache.py +- id: job:workplan-index-refresh + kind: job + name: workplan_index_background_refresh + trigger: in-process on workplan mutations + capability: work-records-workplan + owner: repo-manager + disposition: move + confidence: initial + source: api/routers/workstreams.py +- id: job:nats-event-publish + kind: job + name: nats_event_publish + trigger: fire-and-forget on selected writes + capability: event-bus + owner: hub-core + disposition: move + notes: NATS subjects documented in docs/nats-event-subjects.md + confidence: initial + source: api/events/nats_publisher.py +- id: caller:agents-mcp + kind: caller + name: Agent MCP clients (Claude/Codex/Grok) + capability: agent-integration + owner: hub-core + disposition: replace + notes: MCP tool surface redistributed to new owners with compatibility adapters + confidence: high + source: mcp_server/TOOLS.md +- id: caller:dashboard-observable + kind: caller + name: Observable dashboard + capability: dashboard + owner: hub-core + disposition: replace + notes: Consumes REST projections + confidence: high + source: dashboard/ +- id: caller:activity-core + kind: caller + name: activity-core (sweep, sinks, context resolvers) + capability: ops-automation + owner: activity-core + disposition: keep + notes: Retains executor role; target APIs change to repo-manager/hub-core + confidence: high + source: docs/evidence/workstream-caller-inventory-20260709.md +- id: caller:ops-bridge + kind: caller + name: ops-bridge tunnels + capability: connectivity + owner: ops-bridge + disposition: keep + notes: Transport only; retarget ports/services at cutover + confidence: high + source: docs/cluster-operating-model.md +- id: caller:fix-consistency-cli + kind: caller + name: statehub fix-consistency / scripts/consistency_check.py + capability: repo-consistency + owner: repo-manager + disposition: move + confidence: high + source: Makefile, scripts/ +- id: caller:custodian-cli + kind: caller + name: custodian_cli / statehub register + capability: repo-onboarding + owner: repo-manager + disposition: move + confidence: high + source: custodian_cli.py, statehub_register.py +- id: caller:wise-validator + kind: caller + name: wise-validator reporter + capability: progress-telemetry + owner: hub-core + disposition: replace + notes: POST /progress/; update base URL/contract + confidence: medium + source: docs/evidence/workstream-caller-inventory-20260709.md +- id: caller:agentic-resources + kind: caller + name: agentic-resources session_memory + capability: work-records-decision + owner: repo-manager + disposition: replace + confidence: medium + source: docs/evidence/workstream-caller-inventory-20260709.md +- id: caller:remote-workers + kind: caller + name: Remote workers (Railiance01, CoulombCore) via tunnel :18000/:18001 + capability: agent-integration + owner: hub-core + disposition: replace + confidence: high + source: docs/cluster-operating-model.md +- id: caller:legacy-workstream-http + kind: caller + name: Legacy /workstreams HTTP clients + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Meter-gated; zero then remove + confidence: high + source: docs/evidence/workstream-caller-inventory-20260709.md +- id: dep:postgres-cnpg + kind: ops_dependency + name: PostgreSQL CNPG state-hub-db + role: primary datastore + owner: ops-hub + disposition: replace + notes: Data migrates to owner DBs or consolidated hub DB per cutover plan + confidence: high + source: docs/cluster-operating-model.md +- id: dep:k3s-coulombcore + kind: ops_dependency + name: coulombcore-k3s Deployment state-hub + role: API runtime + owner: ops-hub + disposition: replace + notes: Workloads replaced by hub-core/repo-manager deployments + confidence: high + source: docs/cluster-operating-model.md +- id: dep:forgejo-image + kind: ops_dependency + name: forgejo.coulomb.social/coulomb/state-hub image + role: container image + owner: state-hub-until-cutover + disposition: retire + confidence: high + source: deploy/ +- id: dep:ops-bridge-tunnels + kind: ops_dependency + name: ops-bridge state-hub-primary / MCP tunnels + role: private access + owner: ops-bridge + disposition: keep + notes: Retarget to new services + confidence: high + source: docs/cluster-operating-model.md +- id: dep:nats + kind: ops_dependency + name: NATS event bus + role: async events + owner: hub-core + disposition: move + notes: docs/nats-event-subjects.md + confidence: medium + source: api/events/nats_publisher.py +- id: dep:activity-core-scheduler + kind: ops_dependency + name: activity-core scheduled sweeps + role: job executor + owner: activity-core + disposition: keep + confidence: high + source: docs/cron-migration.md +- id: dep:wsl2-docker-postgres-fallback + kind: ops_dependency + name: WSL2 docker postgres fallback + role: local/rollback DB + owner: state-hub-until-cutover + disposition: retire + notes: Retained for rollback during migration window + confidence: high + source: docs/cluster-operating-model.md +- id: dep:hub-core-library + kind: ops_dependency + name: hub-core Python package (router factories) + role: shared library + owner: hub-core + disposition: keep + notes: Surviving framework; absorb state-hub host role over time + confidence: high + source: SCOPE.md, docs/hub-ecosystem-route-audit.md +- id: dep:mcp-http-sse + kind: ops_dependency + name: MCP SSE :8001 / remote :18001 + role: agent tool transport + owner: hub-core + disposition: replace + confidence: high + source: Makefile +summary: + item_count: 67 + by_disposition: + keep: 48 + move: 6 + replace: 10 + retire: 3 + by_owner: + state-hub-until-cutover: 45 + activity-core: 4 + hub-core: 9 + repo-manager: 4 + ops-bridge: 2 + archive: 1 + ops-hub: 2 diff --git a/inventory/mcp-tools.yaml b/inventory/mcp-tools.yaml new file mode 100644 index 0000000..1c4f0ce --- /dev/null +++ b/inventory/mcp-tools.yaml @@ -0,0 +1,858 @@ +inventory_id: SHR-INV-0001 +title: State Hub capability disposition inventory +version: 0.1.1 +created: '2026-08-09' +updated: '2026-08-09' +workplan_task: SHR-WP-0001-T02 +source_repo: state-hub +source_revision_note: Inventory generated from live OpenAPI, source tree, and docs on 2026-08-09 +disposition_values: +- keep +- move +- replace +- retire +owner_values: +- hub-core +- repo-manager +- activity-core +- issue-core +- ops-hub +- fin-hub +- ops-bridge +- the-custodian +- archive +- state-hub-until-cutover +- undetermined +confidence_values: +- initial +- medium +- high +rules: +- dispositions are initial and revisable through architecture tasks T03/T04 and child workplans +- file-backed work records remain authoritative in domain repos regardless of index owner +- retire means no successor runtime after evidence gates; archive history retained +- replace means capability survives under a different contract/API, not necessarily same schema +- move means substantially same responsibility relocates to named owner +- keep means remains operationally required during migration without a better home yet, or external dependency + retained +related_docs: +- state-hub/INTENT.md +- state-hub/docs/hub-ecosystem-route-audit.md +- state-hub/docs/cron-migration.md +- state-hub/docs/cluster-operating-model.md +- state-hub/docs/evidence/workstream-caller-inventory-20260709.md +- prj-state-hub-retirement/GOAL.md +baseline_counts: + captured_at: '2026-08-09T15:33:34Z' + source: GET /state/summary + topics_total: 14 + workplans_total: 868 + tasks_total: 5138 + decisions_total: 89 + notes: Full table counts for T06; this is orientation baseline only +items: +- id: mcp:activate_domain_goal + kind: mcp_tool + name: activate_domain_goal + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:add_progress_event + kind: mcp_tool + name: add_progress_event + capability: progress-telemetry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:advance_workstation + kind: mcp_tool + name: advance_workstation + capability: task-flow-engine + owner: activity-core + disposition: replace + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:archive_domain + kind: mcp_tool + name: archive_domain + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:bulk_update_task_statuses + kind: mcp_tool + name: bulk_update_task_statuses + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:bump_suggestion_relevance + kind: mcp_tool + name: bump_suggestion_relevance + capability: suggestion-backlog + owner: archive + disposition: retire + notes: Legacy; use intake + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:check_repo_consistency + kind: mcp_tool + name: check_repo_consistency + capability: repository-registry + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:clear_human_flag + kind: mcp_tool + name: clear_human_flag + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:close_intake + kind: mcp_tool + name: close_intake + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_dependency + kind: mcp_tool + name: create_dependency + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_domain + kind: mcp_tool + name: create_domain + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_domain_goal + kind: mcp_tool + name: create_domain_goal + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_intake + kind: mcp_tool + name: create_intake + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_repo_goal + kind: mcp_tool + name: create_repo_goal + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_suggestion + kind: mcp_tool + name: create_suggestion + capability: suggestion-backlog + owner: archive + disposition: retire + notes: Legacy; use intake + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_task + kind: mcp_tool + name: create_task + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_topic + kind: mcp_tool + name: create_topic + capability: topic-spine + owner: repo-manager + disposition: replace + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_workplan + kind: mcp_tool + name: create_workplan + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_workplan_dependency + kind: mcp_tool + name: create_workplan_dependency + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:decline_suggestion + kind: mcp_tool + name: decline_suggestion + capability: suggestion-backlog + owner: archive + disposition: retire + notes: Legacy; use intake + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:dispute_capability_routing + kind: mcp_tool + name: dispute_capability_routing + capability: capability-catalog + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:flag_for_human + kind: mcp_tool + name: flag_for_human + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_capability_profile + kind: mcp_tool + name: get_capability_profile + capability: capability-catalog + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_contributions + kind: mcp_tool + name: get_contributions + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_domain_goals + kind: mcp_tool + name: get_domain_goals + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_domain_summary + kind: mcp_tool + name: get_domain_summary + capability: state-projections + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_flow_state + kind: mcp_tool + name: get_flow_state + capability: task-flow-engine + owner: activity-core + disposition: replace + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_kaizen_agent + kind: mcp_tool + name: get_kaizen_agent + capability: kaizen-agents + owner: the-custodian + disposition: move + notes: Agent personas live in custodian; hub indexes + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_licence_report + kind: mcp_tool + name: get_licence_report + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_messages + kind: mcp_tool + name: get_messages + capability: agent-messaging + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_next_steps + kind: mcp_tool + name: get_next_steps + capability: state-projections + owner: hub-core + disposition: replace + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_recent_progress + kind: mcp_tool + name: get_recent_progress + capability: progress-telemetry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_repo_dispatch + kind: mcp_tool + name: get_repo_dispatch + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_repo_goals + kind: mcp_tool + name: get_repo_goals + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_state_summary + kind: mcp_tool + name: get_state_summary + capability: state-projections + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_token_summary + kind: mcp_tool + name: get_token_summary + capability: token-telemetry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_topic + kind: mcp_tool + name: get_topic + capability: topic-spine + owner: repo-manager + disposition: replace + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:ingest_sbom_tool + kind: mcp_tool + name: ingest_sbom_tool + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:ingest_tpsc_tool + kind: mcp_tool + name: ingest_tpsc_tool + capability: third-party-software-catalog + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_blocked_tasks + kind: mcp_tool + name: list_blocked_tasks + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_dependencies + kind: mcp_tool + name: list_dependencies + capability: work-records-deps + owner: repo-manager + disposition: move + notes: Workplan dependency graph + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_domain_repos + kind: mcp_tool + name: list_domain_repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_domains + kind: mcp_tool + name: list_domains + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_extension_points + kind: mcp_tool + name: list_extension_points + capability: register-entries + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_flow_definitions + kind: mcp_tool + name: list_flow_definitions + capability: task-flow-engine + owner: activity-core + disposition: replace + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_human_interventions + kind: mcp_tool + name: list_human_interventions + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_intakes + kind: mcp_tool + name: list_intakes + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_interface_changes + kind: mcp_tool + name: list_interface_changes + capability: interface-change-log + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_kaizen_agents + kind: mcp_tool + name: list_kaizen_agents + capability: kaizen-agents + owner: the-custodian + disposition: move + notes: Agent personas live in custodian; hub indexes + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_pending_decisions + kind: mcp_tool + name: list_pending_decisions + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_repos_by_classification + kind: mcp_tool + name: list_repos_by_classification + capability: repository-registry + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_suggestions + kind: mcp_tool + name: list_suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: Legacy; use intake + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_tasks + kind: mcp_tool + name: list_tasks + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_technical_debt + kind: mcp_tool + name: list_technical_debt + capability: register-entries + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_workplans + kind: mcp_tool + name: list_workplans + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:mark_message_read + kind: mcp_tool + name: mark_message_read + capability: agent-messaging + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:patch_capability_request + kind: mcp_tool + name: patch_capability_request + capability: capability-catalog + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:promote_suggestion_to_task + kind: mcp_tool + name: promote_suggestion_to_task + capability: suggestion-backlog + owner: archive + disposition: retire + notes: Legacy; use intake + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:publish_interface_change + kind: mcp_tool + name: publish_interface_change + capability: interface-change-log + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:record_adhoc_task + kind: mcp_tool + name: record_adhoc_task + capability: token-telemetry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:record_decision + kind: mcp_tool + name: record_decision + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:record_interactive_task + kind: mcp_tool + name: record_interactive_task + capability: token-telemetry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:record_token_event + kind: mcp_tool + name: record_token_event + capability: token-telemetry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:register_contribution + kind: mcp_tool + name: register_contribution + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:register_extension_point + kind: mcp_tool + name: register_extension_point + capability: register-entries + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:register_interface_change + kind: mcp_tool + name: register_interface_change + capability: interface-change-log + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:register_repo + kind: mcp_tool + name: register_repo + capability: repository-registry + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:register_repo_from_classification + kind: mcp_tool + name: register_repo_from_classification + capability: repository-registry + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:register_service + kind: mcp_tool + name: register_service + capability: service-catalog + owner: ops-hub + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:register_technical_debt + kind: mcp_tool + name: register_technical_debt + capability: register-entries + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:rename_domain + kind: mcp_tool + name: rename_domain + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:reply_to_message + kind: mcp_tool + name: reply_to_message + capability: agent-messaging + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:request_capability + kind: mcp_tool + name: request_capability + capability: capability-catalog + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:reroute_capability_request + kind: mcp_tool + name: reroute_capability_request + capability: capability-catalog + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:resolve_decision + kind: mcp_tool + name: resolve_decision + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:resolve_interface_change + kind: mcp_tool + name: resolve_interface_change + capability: interface-change-log + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:route_intake + kind: mcp_tool + name: route_intake + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:send_message + kind: mcp_tool + name: send_message + capability: agent-messaging + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_contribution_status + kind: mcp_tool + name: update_contribution_status + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_ep_status + kind: mcp_tool + name: update_ep_status + capability: register-entries + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_repo_goal + kind: mcp_tool + name: update_repo_goal + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_repo_path + kind: mcp_tool + name: update_repo_path + capability: repository-registry + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_task_status + kind: mcp_tool + name: update_task_status + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_td_status + kind: mcp_tool + name: update_td_status + capability: register-entries + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_workplan + kind: mcp_tool + name: update_workplan + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_workplan_status + kind: mcp_tool + name: update_workplan_status + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:validate_repo_adr + kind: mcp_tool + name: validate_repo_adr + capability: repository-registry + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:vet_suggestion + kind: mcp_tool + name: vet_suggestion + capability: suggestion-backlog + owner: archive + disposition: retire + notes: Legacy; use intake + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +summary: + item_count: 88 + by_disposition: + move: 75 + replace: 6 + retire: 7 + by_owner: + hub-core: 30 + activity-core: 3 + repo-manager: 45 + archive: 7 + the-custodian: 2 + ops-hub: 1 diff --git a/inventory/routes.yaml b/inventory/routes.yaml new file mode 100644 index 0000000..da3518b --- /dev/null +++ b/inventory/routes.yaml @@ -0,0 +1,2324 @@ +inventory_id: SHR-INV-0001 +title: State Hub capability disposition inventory +version: 0.1.1 +created: '2026-08-09' +updated: '2026-08-09' +workplan_task: SHR-WP-0001-T02 +source_repo: state-hub +source_revision_note: Inventory generated from live OpenAPI, source tree, and docs on 2026-08-09 +disposition_values: +- keep +- move +- replace +- retire +owner_values: +- hub-core +- repo-manager +- activity-core +- issue-core +- ops-hub +- fin-hub +- ops-bridge +- the-custodian +- archive +- state-hub-until-cutover +- undetermined +confidence_values: +- initial +- medium +- high +rules: +- dispositions are initial and revisable through architecture tasks T03/T04 and child workplans +- file-backed work records remain authoritative in domain repos regardless of index owner +- retire means no successor runtime after evidence gates; archive history retained +- replace means capability survives under a different contract/API, not necessarily same schema +- move means substantially same responsibility relocates to named owner +- keep means remains operationally required during migration without a better home yet, or external dependency + retained +related_docs: +- state-hub/INTENT.md +- state-hub/docs/hub-ecosystem-route-audit.md +- state-hub/docs/cron-migration.md +- state-hub/docs/cluster-operating-model.md +- state-hub/docs/evidence/workstream-caller-inventory-20260709.md +- prj-state-hub-retirement/GOAL.md +baseline_counts: + captured_at: '2026-08-09T15:33:34Z' + source: GET /state/summary + topics_total: 14 + workplans_total: 868 + tasks_total: 5138 + decisions_total: 89 + notes: Full table counts for T06; this is orientation baseline only +items: +- id: route:POST:/capability-catalog/ + kind: route + method: POST + path: /capability-catalog/ + operation_id: create_catalog_entry_capability_catalog__post + tags: + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:GET:/capability-catalog/ + kind: route + method: GET + path: /capability-catalog/ + operation_id: list_catalog_capability_catalog__get + tags: + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:PATCH:/capability-catalog/{entry_id} + kind: route + method: PATCH + path: /capability-catalog/{entry_id} + operation_id: patch_catalog_entry_capability_catalog__entry_id__patch + tags: + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:GET:/capability-requests/ + kind: route + method: GET + path: /capability-requests/ + operation_id: list_requests_capability_requests__get + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:POST:/capability-requests/ + kind: route + method: POST + path: /capability-requests/ + operation_id: create_request_capability_requests__post + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:GET:/capability-requests/{request_id} + kind: route + method: GET + path: /capability-requests/{request_id} + operation_id: get_request_capability_requests__request_id__get + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:PATCH:/capability-requests/{request_id} + kind: route + method: PATCH + path: /capability-requests/{request_id} + operation_id: patch_request_capability_requests__request_id__patch + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:POST:/capability-requests/{request_id}/accept + kind: route + method: POST + path: /capability-requests/{request_id}/accept + operation_id: accept_request_capability_requests__request_id__accept_post + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:POST:/capability-requests/{request_id}/dispute + kind: route + method: POST + path: /capability-requests/{request_id}/dispute + operation_id: dispute_request_capability_requests__request_id__dispute_post + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:POST:/capability-requests/{request_id}/reroute + kind: route + method: POST + path: /capability-requests/{request_id}/reroute + operation_id: reroute_request_capability_requests__request_id__reroute_post + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:PATCH:/capability-requests/{request_id}/status + kind: route + method: PATCH + path: /capability-requests/{request_id}/status + operation_id: patch_request_status_capability_requests__request_id__status_patch + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:POST:/consistency/sweep/remote-all + kind: route + method: POST + path: /consistency/sweep/remote-all + operation_id: sweep_remote_all_consistency_sweep_remote_all_post + tags: + - consistency + capability: repo-consistency + owner: repo-manager + disposition: move + notes: fix-consistency / sweep + confidence: initial +- id: route:GET:/contributions/ + kind: route + method: GET + path: /contributions/ + operation_id: list_contributions_contributions__get + tags: + - contributions + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: Contribution artefacts live in repos; index may be hub projection + confidence: initial +- id: route:POST:/contributions/ + kind: route + method: POST + path: /contributions/ + operation_id: create_contribution_contributions__post + tags: + - contributions + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: Contribution artefacts live in repos; index may be hub projection + confidence: initial +- id: route:GET:/contributions/{contribution_id} + kind: route + method: GET + path: /contributions/{contribution_id} + operation_id: get_contribution_contributions__contribution_id__get + tags: + - contributions + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: Contribution artefacts live in repos; index may be hub projection + confidence: initial +- id: route:DELETE:/contributions/{contribution_id} + kind: route + method: DELETE + path: /contributions/{contribution_id} + operation_id: withdraw_contribution_contributions__contribution_id__delete + tags: + - contributions + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: Contribution artefacts live in repos; index may be hub projection + confidence: initial +- id: route:PATCH:/contributions/{contribution_id}/status + kind: route + method: PATCH + path: /contributions/{contribution_id}/status + operation_id: patch_contribution_status_contributions__contribution_id__status_patch + tags: + - contributions + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: Contribution artefacts live in repos; index may be hub projection + confidence: initial +- id: route:GET:/decisions/ + kind: route + method: GET + path: /decisions/ + operation_id: list_decisions_decisions__get + tags: + - decisions + capability: work-records-decision + owner: repo-manager + disposition: move + notes: Decision records origin in repos + confidence: initial +- id: route:POST:/decisions/ + kind: route + method: POST + path: /decisions/ + operation_id: create_decision_decisions__post + tags: + - decisions + capability: work-records-decision + owner: repo-manager + disposition: move + notes: Decision records origin in repos + confidence: initial +- id: route:GET:/decisions/{decision_id} + kind: route + method: GET + path: /decisions/{decision_id} + operation_id: get_decision_decisions__decision_id__get + tags: + - decisions + capability: work-records-decision + owner: repo-manager + disposition: move + notes: Decision records origin in repos + confidence: initial +- id: route:PATCH:/decisions/{decision_id} + kind: route + method: PATCH + path: /decisions/{decision_id} + operation_id: update_decision_decisions__decision_id__patch + tags: + - decisions + capability: work-records-decision + owner: repo-manager + disposition: move + notes: Decision records origin in repos + confidence: initial +- id: route:DELETE:/decisions/{decision_id} + kind: route + method: DELETE + path: /decisions/{decision_id} + operation_id: supersede_decision_decisions__decision_id__delete + tags: + - decisions + capability: work-records-decision + owner: repo-manager + disposition: move + notes: Decision records origin in repos + confidence: initial +- id: route:POST:/decisions/{decision_id}/resolve + kind: route + method: POST + path: /decisions/{decision_id}/resolve + operation_id: resolve_decision_action_decisions__decision_id__resolve_post + tags: + - decisions + capability: work-records-decision + owner: repo-manager + disposition: move + notes: Decision records origin in repos + confidence: initial +- id: route:GET:/domain-goals/ + kind: route + method: GET + path: /domain-goals/ + operation_id: list_domain_goals_domain_goals__get + tags: + - domain-goals + capability: domain-goals + owner: hub-core + disposition: move + notes: Domain intention projection + confidence: initial +- id: route:POST:/domain-goals/ + kind: route + method: POST + path: /domain-goals/ + operation_id: create_domain_goal_domain_goals__post + tags: + - domain-goals + capability: domain-goals + owner: hub-core + disposition: move + notes: Domain intention projection + confidence: initial +- id: route:GET:/domain-goals/{goal_id} + kind: route + method: GET + path: /domain-goals/{goal_id} + operation_id: get_domain_goal_domain_goals__goal_id__get + tags: + - domain-goals + capability: domain-goals + owner: hub-core + disposition: move + notes: Domain intention projection + confidence: initial +- id: route:PATCH:/domain-goals/{goal_id} + kind: route + method: PATCH + path: /domain-goals/{goal_id} + operation_id: update_domain_goal_domain_goals__goal_id__patch + tags: + - domain-goals + capability: domain-goals + owner: hub-core + disposition: move + notes: Domain intention projection + confidence: initial +- id: route:POST:/domain-goals/{goal_id}/activate + kind: route + method: POST + path: /domain-goals/{goal_id}/activate + operation_id: activate_domain_goal_domain_goals__goal_id__activate_post + tags: + - domain-goals + capability: domain-goals + owner: hub-core + disposition: move + notes: Domain intention projection + confidence: initial +- id: route:GET:/domains/ + kind: route + method: GET + path: /domains/ + operation_id: list_domains_domains__get + tags: + - domains + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:POST:/domains/ + kind: route + method: POST + path: /domains/ + operation_id: create_domain_domains__post + tags: + - domains + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:GET:/domains/{slug} + kind: route + method: GET + path: /domains/{slug} + operation_id: get_domain_domains__slug__get + tags: + - domains + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:PATCH:/domains/{slug}/archive + kind: route + method: PATCH + path: /domains/{slug}/archive + operation_id: archive_domain_domains__slug__archive_patch + tags: + - domains + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:POST:/domains/{slug}/recently-on-scope/ + kind: route + method: POST + path: /domains/{slug}/recently-on-scope/ + operation_id: generate_recently_on_scope_domains__slug__recently_on_scope__post + tags: + - recently-on-scope + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:GET:/domains/{slug}/recently-on-scope/ + kind: route + method: GET + path: /domains/{slug}/recently-on-scope/ + operation_id: list_recently_on_scope_domains__slug__recently_on_scope__get + tags: + - recently-on-scope + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:GET:/domains/{slug}/recently-on-scope/{report_id} + kind: route + method: GET + path: /domains/{slug}/recently-on-scope/{report_id} + operation_id: get_recently_on_scope_report_domains__slug__recently_on_scope__report_id__get + tags: + - recently-on-scope + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:PATCH:/domains/{slug}/rename + kind: route + method: PATCH + path: /domains/{slug}/rename + operation_id: rename_domain_domains__slug__rename_patch + tags: + - domains + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:POST:/execution/launch-requests + kind: route + method: POST + path: /execution/launch-requests + operation_id: create_launch_request_execution_launch_requests_post + tags: + - execution + capability: workplan-execution-queue + owner: activity-core + disposition: replace + notes: Launch/queue intent; not permanent hub ownership + confidence: initial +- id: route:GET:/execution/launch-requests + kind: route + method: GET + path: /execution/launch-requests + operation_id: list_launch_requests_execution_launch_requests_get + tags: + - execution + capability: workplan-execution-queue + owner: activity-core + disposition: replace + notes: Launch/queue intent; not permanent hub ownership + confidence: initial +- id: route:GET:/execution/semantics + kind: route + method: GET + path: /execution/semantics + operation_id: execution_semantics_execution_semantics_get + tags: + - execution + capability: workplan-execution-queue + owner: activity-core + disposition: replace + notes: Launch/queue intent; not permanent hub ownership + confidence: initial +- id: route:GET:/execution/workplan-stack + kind: route + method: GET + path: /execution/workplan-stack + operation_id: workplan_stack_execution_workplan_stack_get + tags: + - execution + capability: workplan-execution-queue + owner: activity-core + disposition: replace + notes: Launch/queue intent; not permanent hub ownership + confidence: initial +- id: route:PATCH:/execution/workplans/{workplan_id}/intent + kind: route + method: PATCH + path: /execution/workplans/{workplan_id}/intent + operation_id: update_workplan_execution_intent_execution_workplans__workplan_id__intent_patch + tags: + - execution + capability: workplan-execution-queue + owner: activity-core + disposition: replace + notes: Launch/queue intent; not permanent hub ownership + confidence: initial +- id: route:PATCH:/execution/workstreams/{workstream_id}/intent + kind: route + method: PATCH + path: /execution/workstreams/{workstream_id}/intent + operation_id: update_execution_intent_execution_workstreams__workstream_id__intent_patch + tags: + - execution + capability: workplan-execution-queue + owner: activity-core + disposition: replace + notes: Launch/queue intent; not permanent hub ownership + confidence: initial +- id: route:GET:/extension-points/ + kind: route + method: GET + path: /extension-points/ + operation_id: list_eps_extension_points__get + tags: + - extension-points + capability: register-extension-points + owner: repo-manager + disposition: move + notes: Register-entry style + confidence: initial +- id: route:POST:/extension-points/ + kind: route + method: POST + path: /extension-points/ + operation_id: create_ep_extension_points__post + tags: + - extension-points + capability: register-extension-points + owner: repo-manager + disposition: move + notes: Register-entry style + confidence: initial +- id: route:GET:/extension-points/{ep_id} + kind: route + method: GET + path: /extension-points/{ep_id} + operation_id: get_ep_extension_points__ep_id__get + tags: + - extension-points + capability: register-extension-points + owner: repo-manager + disposition: move + notes: Register-entry style + confidence: initial +- id: route:PATCH:/extension-points/{ep_id} + kind: route + method: PATCH + path: /extension-points/{ep_id} + operation_id: update_ep_extension_points__ep_id__patch + tags: + - extension-points + capability: register-extension-points + owner: repo-manager + disposition: move + notes: Register-entry style + confidence: initial +- id: route:DELETE:/extension-points/{ep_id} + kind: route + method: DELETE + path: /extension-points/{ep_id} + operation_id: defer_ep_extension_points__ep_id__delete + tags: + - extension-points + capability: register-extension-points + owner: repo-manager + disposition: move + notes: Register-entry style + confidence: initial +- id: route:POST:/fabric/graph-exports + kind: route + method: POST + path: /fabric/graph-exports + operation_id: ingest_graph_export_fabric_graph_exports_post + tags: + - fabric + capability: fabric-graph + owner: fin-hub + disposition: move + notes: Financial fabric read model; specialized authority + confidence: initial +- id: route:GET:/fabric/graph-exports + kind: route + method: GET + path: /fabric/graph-exports + operation_id: list_graph_imports_fabric_graph_exports_get + tags: + - fabric + capability: fabric-graph + owner: fin-hub + disposition: move + notes: Financial fabric read model; specialized authority + confidence: initial +- id: route:GET:/fabric/graph-exports/latest + kind: route + method: GET + path: /fabric/graph-exports/latest + operation_id: latest_graph_import_fabric_graph_exports_latest_get + tags: + - fabric + capability: fabric-graph + owner: fin-hub + disposition: move + notes: Financial fabric read model; specialized authority + confidence: initial +- id: route:POST:/fabric/graph-exports/pull + kind: route + method: POST + path: /fabric/graph-exports/pull + operation_id: pull_graph_export_fabric_graph_exports_pull_post + tags: + - fabric + capability: fabric-graph + owner: fin-hub + disposition: move + notes: Financial fabric read model; specialized authority + confidence: initial +- id: route:GET:/fabric/graph/edges + kind: route + method: GET + path: /fabric/graph/edges + operation_id: list_graph_edges_fabric_graph_edges_get + tags: + - fabric + capability: fabric-graph + owner: fin-hub + disposition: move + notes: Financial fabric read model; specialized authority + confidence: initial +- id: route:GET:/fabric/graph/nodes + kind: route + method: GET + path: /fabric/graph/nodes + operation_id: list_graph_nodes_fabric_graph_nodes_get + tags: + - fabric + capability: fabric-graph + owner: fin-hub + disposition: move + notes: Financial fabric read model; specialized authority + confidence: initial +- id: route:GET:/fabric/graph/summary + kind: route + method: GET + path: /fabric/graph/summary + operation_id: graph_summary_fabric_graph_summary_get + tags: + - fabric + capability: fabric-graph + owner: fin-hub + disposition: move + notes: Financial fabric read model; specialized authority + confidence: initial +- id: route:GET:/flows/definitions + kind: route + method: GET + path: /flows/definitions + operation_id: list_flow_definitions_flows_definitions_get + tags: + - flows + capability: task-flow-engine + owner: activity-core + disposition: replace + notes: Workstation flows; execution ownership closer to activity-core + confidence: initial +- id: route:GET:/flows/{entity_type}/{entity_id} + kind: route + method: GET + path: /flows/{entity_type}/{entity_id} + operation_id: get_flow_state_flows__entity_type___entity_id__get + tags: + - flows + capability: task-flow-engine + owner: activity-core + disposition: replace + notes: Workstation flows; execution ownership closer to activity-core + confidence: initial +- id: route:POST:/flows/{entity_type}/{entity_id}/advance/{target_workstation} + kind: route + method: POST + path: /flows/{entity_type}/{entity_id}/advance/{target_workstation} + operation_id: advance_workstation_flows__entity_type___entity_id__advance__target_workstation__post + tags: + - flows + capability: task-flow-engine + owner: activity-core + disposition: replace + notes: Workstation flows; execution ownership closer to activity-core + confidence: initial +- id: route:GET:/intakes/ + kind: route + method: GET + path: /intakes/ + operation_id: list_intakes_intakes__get + tags: + - intakes + capability: work-records-intake + owner: repo-manager + disposition: move + notes: Work-record kind; file origin in repos + confidence: initial +- id: route:POST:/intakes/ + kind: route + method: POST + path: /intakes/ + operation_id: create_intake_intakes__post + tags: + - intakes + capability: work-records-intake + owner: repo-manager + disposition: move + notes: Work-record kind; file origin in repos + confidence: initial +- id: route:GET:/intakes/{intake_id} + kind: route + method: GET + path: /intakes/{intake_id} + operation_id: get_intake_intakes__intake_id__get + tags: + - intakes + capability: work-records-intake + owner: repo-manager + disposition: move + notes: Work-record kind; file origin in repos + confidence: initial +- id: route:PATCH:/intakes/{intake_id} + kind: route + method: PATCH + path: /intakes/{intake_id} + operation_id: update_intake_intakes__intake_id__patch + tags: + - intakes + capability: work-records-intake + owner: repo-manager + disposition: move + notes: Work-record kind; file origin in repos + confidence: initial +- id: route:POST:/intakes/{intake_id}/close + kind: route + method: POST + path: /intakes/{intake_id}/close + operation_id: close_intake_intakes__intake_id__close_post + tags: + - intakes + capability: work-records-intake + owner: repo-manager + disposition: move + notes: Work-record kind; file origin in repos + confidence: initial +- id: route:POST:/intakes/{intake_id}/notes + kind: route + method: POST + path: /intakes/{intake_id}/notes + operation_id: add_intake_note_intakes__intake_id__notes_post + tags: + - intakes + capability: work-records-intake + owner: repo-manager + disposition: move + notes: Work-record kind; file origin in repos + confidence: initial +- id: route:POST:/intakes/{intake_id}/route + kind: route + method: POST + path: /intakes/{intake_id}/route + operation_id: route_intake_intakes__intake_id__route_post + tags: + - intakes + capability: work-records-intake + owner: repo-manager + disposition: move + notes: Work-record kind; file origin in repos + confidence: initial +- id: route:POST:/interface-changes/ + kind: route + method: POST + path: /interface-changes/ + operation_id: create_interface_change_interface_changes__post + tags: + - interface-changes + capability: interface-change-log + owner: hub-core + disposition: move + notes: Interface/change events across services + confidence: initial +- id: route:GET:/interface-changes/ + kind: route + method: GET + path: /interface-changes/ + operation_id: list_interface_changes_interface_changes__get + tags: + - interface-changes + capability: interface-change-log + owner: hub-core + disposition: move + notes: Interface/change events across services + confidence: initial +- id: route:GET:/interface-changes/{change_id} + kind: route + method: GET + path: /interface-changes/{change_id} + operation_id: get_interface_change_interface_changes__change_id__get + tags: + - interface-changes + capability: interface-change-log + owner: hub-core + disposition: move + notes: Interface/change events across services + confidence: initial +- id: route:PATCH:/interface-changes/{change_id} + kind: route + method: PATCH + path: /interface-changes/{change_id} + operation_id: patch_interface_change_interface_changes__change_id__patch + tags: + - interface-changes + capability: interface-change-log + owner: hub-core + disposition: move + notes: Interface/change events across services + confidence: initial +- id: route:POST:/interface-changes/{change_id}/publish + kind: route + method: POST + path: /interface-changes/{change_id}/publish + operation_id: publish_interface_change_interface_changes__change_id__publish_post + tags: + - interface-changes + capability: interface-change-log + owner: hub-core + disposition: move + notes: Interface/change events across services + confidence: initial +- id: route:POST:/interface-changes/{change_id}/resolve + kind: route + method: POST + path: /interface-changes/{change_id}/resolve + operation_id: resolve_interface_change_interface_changes__change_id__resolve_post + tags: + - interface-changes + capability: interface-change-log + owner: hub-core + disposition: move + notes: Interface/change events across services + confidence: initial +- id: route:GET:/legacy-meter/interfaces + kind: route + method: GET + path: /legacy-meter/interfaces + operation_id: list_interfaces_legacy_meter_interfaces_get + tags: + - legacy-meter + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + notes: Migration instrumentation; retire after cutover evidence + confidence: initial +- id: route:POST:/legacy-meter/interfaces + kind: route + method: POST + path: /legacy-meter/interfaces + operation_id: register_interface_legacy_meter_interfaces_post + tags: + - legacy-meter + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + notes: Migration instrumentation; retire after cutover evidence + confidence: initial +- id: route:GET:/legacy-meter/interfaces/by-key + kind: route + method: GET + path: /legacy-meter/interfaces/by-key + operation_id: get_interface_by_key_legacy_meter_interfaces_by_key_get + tags: + - legacy-meter + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + notes: Migration instrumentation; retire after cutover evidence + confidence: initial +- id: route:PATCH:/legacy-meter/interfaces/{interface_id} + kind: route + method: PATCH + path: /legacy-meter/interfaces/{interface_id} + operation_id: patch_interface_legacy_meter_interfaces__interface_id__patch + tags: + - legacy-meter + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + notes: Migration instrumentation; retire after cutover evidence + confidence: initial +- id: route:GET:/legacy-meter/summary + kind: route + method: GET + path: /legacy-meter/summary + operation_id: usage_summary_legacy_meter_summary_get + tags: + - legacy-meter + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + notes: Migration instrumentation; retire after cutover evidence + confidence: initial +- id: route:POST:/legacy-meter/usage + kind: route + method: POST + path: /legacy-meter/usage + operation_id: record_usage_legacy_meter_usage_post + tags: + - legacy-meter + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + notes: Migration instrumentation; retire after cutover evidence + confidence: initial +- id: route:GET:/legacy-meter/weekly-review + kind: route + method: GET + path: /legacy-meter/weekly-review + operation_id: weekly_review_legacy_meter_weekly_review_get + tags: + - legacy-meter + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + notes: Migration instrumentation; retire after cutover evidence + confidence: initial +- id: route:POST:/messages/ + kind: route + method: POST + path: /messages/ + operation_id: send_message_messages__post + tags: + - messages + capability: agent-messaging + owner: hub-core + disposition: move + notes: Cross-entity communication + confidence: initial +- id: route:GET:/messages/ + kind: route + method: GET + path: /messages/ + operation_id: list_messages_messages__get + tags: + - messages + capability: agent-messaging + owner: hub-core + disposition: move + notes: Cross-entity communication + confidence: initial +- id: route:GET:/messages/thread/{thread_id} + kind: route + method: GET + path: /messages/thread/{thread_id} + operation_id: get_thread_messages_thread__thread_id__get + tags: + - messages + capability: agent-messaging + owner: hub-core + disposition: move + notes: Cross-entity communication + confidence: initial +- id: route:PATCH:/messages/{message_id}/archive + kind: route + method: PATCH + path: /messages/{message_id}/archive + operation_id: archive_message_messages__message_id__archive_patch + tags: + - messages + capability: agent-messaging + owner: hub-core + disposition: move + notes: Cross-entity communication + confidence: initial +- id: route:PATCH:/messages/{message_id}/read + kind: route + method: PATCH + path: /messages/{message_id}/read + operation_id: mark_read_messages__message_id__read_patch + tags: + - messages + capability: agent-messaging + owner: hub-core + disposition: move + notes: Cross-entity communication + confidence: initial +- id: route:POST:/messages/{message_id}/reply + kind: route + method: POST + path: /messages/{message_id}/reply + operation_id: reply_to_message_messages__message_id__reply_post + tags: + - messages + capability: agent-messaging + owner: hub-core + disposition: move + notes: Cross-entity communication + confidence: initial +- id: route:GET:/ops-runs/summary + kind: route + method: GET + path: /ops-runs/summary + operation_id: get_ops_runs_summary_ops_runs_summary_get + tags: + - ops-runs + capability: ops-run-projection + owner: activity-core + disposition: move + notes: Read projection of activity-core ops runs + confidence: initial +- id: route:GET:/policy/{name} + kind: route + method: GET + path: /policy/{name} + operation_id: get_policy_policy__name__get + tags: + - policy + capability: policy-integration + owner: hub-core + disposition: move + notes: Policy integration surface + confidence: initial +- id: route:PUT:/policy/{name} + kind: route + method: PUT + path: /policy/{name} + operation_id: put_policy_policy__name__put + tags: + - policy + capability: policy-integration + owner: hub-core + disposition: move + notes: Policy integration surface + confidence: initial +- id: route:GET:/progress/ + kind: route + method: GET + path: /progress/ + operation_id: list_progress_progress__get + tags: + - progress + capability: progress-telemetry + owner: hub-core + disposition: move + notes: Progress events as coordination telemetry projection + confidence: initial +- id: route:POST:/progress/ + kind: route + method: POST + path: /progress/ + operation_id: append_progress_progress__post + tags: + - progress + capability: progress-telemetry + owner: hub-core + disposition: move + notes: Progress events as coordination telemetry projection + confidence: initial +- id: route:GET:/progress/alerts + kind: route + method: GET + path: /progress/alerts + operation_id: get_alerts_progress_alerts_get + tags: + - progress + capability: progress-telemetry + owner: hub-core + disposition: move + notes: Progress events as coordination telemetry projection + confidence: initial +- id: route:GET:/progress/risks + kind: route + method: GET + path: /progress/risks + operation_id: get_risks_progress_risks_get + tags: + - progress + capability: progress-telemetry + owner: hub-core + disposition: move + notes: Progress events as coordination telemetry projection + confidence: initial +- id: route:POST:/recently-on-scope/hourly + kind: route + method: POST + path: /recently-on-scope/hourly + operation_id: generate_hourly_recently_on_scope_recently_on_scope_hourly_post + tags: + - recently-on-scope + capability: recently-on-scope + owner: hub-core + disposition: replace + notes: Derived view + confidence: initial +- id: route:POST:/reconciliation/state-change + kind: route + method: POST + path: /reconciliation/state-change + operation_id: classify_state_change_reconciliation_state_change_post + tags: + - reconciliation + capability: repo-reconciliation + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:GET:/repo-goals/ + kind: route + method: GET + path: /repo-goals/ + operation_id: list_repo_goals_repo_goals__get + tags: + - repo-goals + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:POST:/repo-goals/ + kind: route + method: POST + path: /repo-goals/ + operation_id: create_repo_goal_repo_goals__post + tags: + - repo-goals + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:GET:/repo-goals/{goal_id} + kind: route + method: GET + path: /repo-goals/{goal_id} + operation_id: get_repo_goal_repo_goals__goal_id__get + tags: + - repo-goals + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:PATCH:/repo-goals/{goal_id} + kind: route + method: PATCH + path: /repo-goals/{goal_id} + operation_id: update_repo_goal_repo_goals__goal_id__patch + tags: + - repo-goals + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:GET:/repos/ + kind: route + method: GET + path: /repos/ + operation_id: list_repos_repos__get + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:POST:/repos/ + kind: route + method: POST + path: /repos/ + operation_id: register_repo_repos__post + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/by-fingerprint + kind: route + method: GET + path: /repos/by-fingerprint + operation_id: get_repo_by_fingerprint_repos_by_fingerprint_get + tags: + - repos + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/by-id/{repo_id} + kind: route + method: GET + path: /repos/by-id/{repo_id} + operation_id: get_repo_by_id_repos_by_id__repo_id__get + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/by-remote + kind: route + method: GET + path: /repos/by-remote + operation_id: get_repo_by_remote_url_repos_by_remote_get + tags: + - repos + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/doi/summary + kind: route + method: GET + path: /repos/doi/summary + operation_id: doi_summary_repos_doi_summary_get + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:POST:/repos/onboard + kind: route + method: POST + path: /repos/onboard + operation_id: onboard_repo_repos_onboard_post + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/scope-health + kind: route + method: GET + path: /repos/scope-health + operation_id: list_repo_scope_health_repos_scope_health_get + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/todo-md-staleness + kind: route + method: GET + path: /repos/todo-md-staleness + operation_id: list_todo_md_staleness_repos_todo_md_staleness_get + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:PATCH:/repos/{slug} + kind: route + method: PATCH + path: /repos/{slug} + operation_id: update_repo_repos__slug__patch + tags: + - repos + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/{slug} + kind: route + method: GET + path: /repos/{slug} + operation_id: get_repo_repos__slug__get + tags: + - repos + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:PATCH:/repos/{slug}/archive + kind: route + method: PATCH + path: /repos/{slug}/archive + operation_id: archive_repo_repos__slug__archive_patch + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/{slug}/dispatch + kind: route + method: GET + path: /repos/{slug}/dispatch + operation_id: get_repo_dispatch_repos__slug__dispatch_get + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/{slug}/doi + kind: route + method: GET + path: /repos/{slug}/doi + operation_id: get_repo_doi_repos__slug__doi_get + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:POST:/repos/{slug}/paths + kind: route + method: POST + path: /repos/{slug}/paths + operation_id: register_repo_path_repos__slug__paths_post + tags: + - repos + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:POST:/repos/{slug}/sync + kind: route + method: POST + path: /repos/{slug}/sync + operation_id: sync_repo_consistency_repos__slug__sync_post + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/sbom/ + kind: route + method: GET + path: /sbom/ + operation_id: list_sbom_entries_sbom__get + tags: + - sbom + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: Repo-attached dependency inventory + confidence: initial +- id: route:POST:/sbom/ingest/ + kind: route + method: POST + path: /sbom/ingest/ + operation_id: ingest_sbom_sbom_ingest__post + tags: + - sbom + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: Repo-attached dependency inventory + confidence: initial +- id: route:GET:/sbom/report/licences/ + kind: route + method: GET + path: /sbom/report/licences/ + operation_id: licence_report_sbom_report_licences__get + tags: + - sbom + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: Repo-attached dependency inventory + confidence: initial +- id: route:GET:/sbom/snapshots/ + kind: route + method: GET + path: /sbom/snapshots/ + operation_id: list_snapshots_sbom_snapshots__get + tags: + - sbom + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: Repo-attached dependency inventory + confidence: initial +- id: route:GET:/sbom/snapshots/{snapshot_id} + kind: route + method: GET + path: /sbom/snapshots/{snapshot_id} + operation_id: get_snapshot_sbom_snapshots__snapshot_id__get + tags: + - sbom + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: Repo-attached dependency inventory + confidence: initial +- id: route:GET:/sbom/{repo_slug} + kind: route + method: GET + path: /sbom/{repo_slug} + operation_id: get_repo_sbom_sbom__repo_slug__get + tags: + - sbom + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: Repo-attached dependency inventory + confidence: initial +- id: route:GET:/services/catalog + kind: route + method: GET + path: /services/catalog + operation_id: list_services_services_catalog_get + tags: + - services + capability: service-catalog + owner: ops-hub + disposition: move + notes: Service catalog beyond TPSC + confidence: initial +- id: route:POST:/services/catalog + kind: route + method: POST + path: /services/catalog + operation_id: upsert_service_services_catalog_post + tags: + - services + capability: service-catalog + owner: ops-hub + disposition: move + notes: Service catalog beyond TPSC + confidence: initial +- id: route:GET:/services/{slug} + kind: route + method: GET + path: /services/{slug} + operation_id: get_service_services__slug__get + tags: + - services + capability: service-catalog + owner: ops-hub + disposition: move + notes: Service catalog beyond TPSC + confidence: initial +- id: route:GET:/state/deps + kind: route + method: GET + path: /state/deps + operation_id: get_deps_state_deps_get + tags: + - state + capability: state-projections + owner: hub-core + disposition: replace + notes: Dashboard loaders / summary cache become hub-core projections + confidence: initial +- id: route:GET:/state/health + kind: route + method: GET + path: /state/health + operation_id: health_check_state_health_get + tags: + - state + capability: state-projections + owner: hub-core + disposition: replace + notes: Dashboard loaders / summary cache become hub-core projections + confidence: initial +- id: route:GET:/state/next_steps + kind: route + method: GET + path: /state/next_steps + operation_id: get_next_steps_state_next_steps_get + tags: + - state + capability: state-projections + owner: hub-core + disposition: replace + notes: Dashboard loaders / summary cache become hub-core projections + confidence: initial +- id: route:GET:/state/overview + kind: route + method: GET + path: /state/overview + operation_id: get_overview_state_overview_get + tags: + - state + capability: state-projections + owner: hub-core + disposition: replace + notes: Dashboard loaders / summary cache become hub-core projections + confidence: initial +- id: route:GET:/state/summary + kind: route + method: GET + path: /state/summary + operation_id: get_summary_state_summary_get + tags: + - state + capability: state-projections + owner: hub-core + disposition: replace + notes: Dashboard loaders / summary cache become hub-core projections + confidence: initial +- id: route:GET:/suggestions/ + kind: route + method: GET + path: /suggestions/ + operation_id: list_suggestions_suggestions__get + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:POST:/suggestions/ + kind: route + method: POST + path: /suggestions/ + operation_id: create_suggestion_suggestions__post + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:GET:/suggestions/{suggestion_id} + kind: route + method: GET + path: /suggestions/{suggestion_id} + operation_id: get_suggestion_suggestions__suggestion_id__get + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:POST:/suggestions/{suggestion_id}/bump-relevance + kind: route + method: POST + path: /suggestions/{suggestion_id}/bump-relevance + operation_id: bump_suggestion_relevance_suggestions__suggestion_id__bump_relevance_post + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:POST:/suggestions/{suggestion_id}/decline + kind: route + method: POST + path: /suggestions/{suggestion_id}/decline + operation_id: decline_suggestion_suggestions__suggestion_id__decline_post + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:GET:/suggestions/{suggestion_id}/notes + kind: route + method: GET + path: /suggestions/{suggestion_id}/notes + operation_id: list_suggestion_notes_suggestions__suggestion_id__notes_get + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:POST:/suggestions/{suggestion_id}/promote + kind: route + method: POST + path: /suggestions/{suggestion_id}/promote + operation_id: promote_suggestion_to_task_suggestions__suggestion_id__promote_post + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:POST:/suggestions/{suggestion_id}/vet + kind: route + method: POST + path: /suggestions/{suggestion_id}/vet + operation_id: vet_suggestion_suggestions__suggestion_id__vet_post + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:GET:/tasks/ + kind: route + method: GET + path: /tasks/ + operation_id: list_tasks_tasks__get + tags: + - tasks + capability: work-records-task + owner: repo-manager + disposition: move + notes: Tasks as file/index projection; issue-core may project externally + confidence: initial +- id: route:POST:/tasks/ + kind: route + method: POST + path: /tasks/ + operation_id: create_task_tasks__post + tags: + - tasks + capability: work-records-task + owner: repo-manager + disposition: move + notes: Tasks as file/index projection; issue-core may project externally + confidence: initial +- id: route:POST:/tasks/bulk-status-sync + kind: route + method: POST + path: /tasks/bulk-status-sync + operation_id: bulk_status_sync_tasks_bulk_status_sync_post + tags: + - tasks + capability: work-records-task + owner: repo-manager + disposition: move + notes: Tasks as file/index projection; issue-core may project externally + confidence: initial +- id: route:GET:/tasks/counts + kind: route + method: GET + path: /tasks/counts + operation_id: count_tasks_tasks_counts_get + tags: + - tasks + capability: work-records-task + owner: repo-manager + disposition: move + notes: Tasks as file/index projection; issue-core may project externally + confidence: initial +- id: route:GET:/tasks/{task_id} + kind: route + method: GET + path: /tasks/{task_id} + operation_id: get_task_tasks__task_id__get + tags: + - tasks + capability: work-records-task + owner: repo-manager + disposition: move + notes: Tasks as file/index projection; issue-core may project externally + confidence: initial +- id: route:PATCH:/tasks/{task_id} + kind: route + method: PATCH + path: /tasks/{task_id} + operation_id: update_task_tasks__task_id__patch + tags: + - tasks + capability: work-records-task + owner: repo-manager + disposition: move + notes: Tasks as file/index projection; issue-core may project externally + confidence: initial +- id: route:DELETE:/tasks/{task_id} + kind: route + method: DELETE + path: /tasks/{task_id} + operation_id: cancel_task_tasks__task_id__delete + tags: + - tasks + capability: work-records-task + owner: repo-manager + disposition: move + notes: Tasks as file/index projection; issue-core may project externally + confidence: initial +- id: route:GET:/technical-debt/ + kind: route + method: GET + path: /technical-debt/ + operation_id: list_td_technical_debt__get + tags: + - technical-debt + capability: register-technical-debt + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:POST:/technical-debt/ + kind: route + method: POST + path: /technical-debt/ + operation_id: create_td_technical_debt__post + tags: + - technical-debt + capability: register-technical-debt + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:GET:/technical-debt/{td_id} + kind: route + method: GET + path: /technical-debt/{td_id} + operation_id: get_td_technical_debt__td_id__get + tags: + - technical-debt + capability: register-technical-debt + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:PATCH:/technical-debt/{td_id} + kind: route + method: PATCH + path: /technical-debt/{td_id} + operation_id: update_td_technical_debt__td_id__patch + tags: + - technical-debt + capability: register-technical-debt + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:DELETE:/technical-debt/{td_id} + kind: route + method: DELETE + path: /technical-debt/{td_id} + operation_id: defer_td_technical_debt__td_id__delete + tags: + - technical-debt + capability: register-technical-debt + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:GET:/technical-debt/{td_id}/notes + kind: route + method: GET + path: /technical-debt/{td_id}/notes + operation_id: list_notes_technical_debt__td_id__notes_get + tags: + - technical-debt + capability: register-technical-debt + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:POST:/technical-debt/{td_id}/notes + kind: route + method: POST + path: /technical-debt/{td_id}/notes + operation_id: add_note_technical_debt__td_id__notes_post + tags: + - technical-debt + capability: register-technical-debt + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:POST:/token-events/ + kind: route + method: POST + path: /token-events/ + operation_id: create_token_event_token_events__post + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:GET:/token-events/ + kind: route + method: GET + path: /token-events/ + operation_id: list_token_events_token_events__get + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:GET:/token-events/aggregate/ + kind: route + method: GET + path: /token-events/aggregate/ + operation_id: get_token_aggregate_token_events_aggregate__get + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:GET:/token-events/by-repo/ + kind: route + method: GET + path: /token-events/by-repo/ + operation_id: get_tokens_by_repo_token_events_by_repo__get + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:GET:/token-events/quality/ + kind: route + method: GET + path: /token-events/quality/ + operation_id: get_token_quality_token_events_quality__get + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:GET:/token-events/summary/ + kind: route + method: GET + path: /token-events/summary/ + operation_id: get_token_summary_token_events_summary__get + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:POST:/token-events/upsert + kind: route + method: POST + path: /token-events/upsert + operation_id: upsert_token_event_token_events_upsert_post + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:PATCH:/token-events/{event_id} + kind: route + method: PATCH + path: /token-events/{event_id} + operation_id: patch_token_event_token_events__event_id__patch + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:GET:/token-events/{event_id} + kind: route + method: GET + path: /token-events/{event_id} + operation_id: get_token_event_token_events__event_id__get + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:GET:/topics/ + kind: route + method: GET + path: /topics/ + operation_id: list_topics_topics__get + tags: + - topics + capability: topic-spine + owner: repo-manager + disposition: replace + notes: Legacy topic spine; classification-derived domain supersedes long-term + confidence: initial +- id: route:POST:/topics/ + kind: route + method: POST + path: /topics/ + operation_id: create_topic_topics__post + tags: + - topics + capability: topic-spine + owner: repo-manager + disposition: replace + notes: Legacy topic spine; classification-derived domain supersedes long-term + confidence: initial +- id: route:GET:/topics/{topic_id} + kind: route + method: GET + path: /topics/{topic_id} + operation_id: get_topic_topics__topic_id__get + tags: + - topics + capability: topic-spine + owner: repo-manager + disposition: replace + notes: Legacy topic spine; classification-derived domain supersedes long-term + confidence: initial +- id: route:PATCH:/topics/{topic_id} + kind: route + method: PATCH + path: /topics/{topic_id} + operation_id: update_topic_topics__topic_id__patch + tags: + - topics + capability: topic-spine + owner: repo-manager + disposition: replace + notes: Legacy topic spine; classification-derived domain supersedes long-term + confidence: initial +- id: route:DELETE:/topics/{topic_id} + kind: route + method: DELETE + path: /topics/{topic_id} + operation_id: archive_topic_topics__topic_id__delete + tags: + - topics + capability: topic-spine + owner: repo-manager + disposition: replace + notes: Legacy topic spine; classification-derived domain supersedes long-term + confidence: initial +- id: route:GET:/tpsc/catalog/ + kind: route + method: GET + path: /tpsc/catalog/ + operation_id: list_catalog_tpsc_catalog__get + tags: + - tpsc + capability: third-party-software-catalog + owner: hub-core + disposition: move + notes: Or specialized compliance service; start as hub projection + confidence: initial +- id: route:POST:/tpsc/catalog/ + kind: route + method: POST + path: /tpsc/catalog/ + operation_id: register_service_tpsc_catalog__post + tags: + - tpsc + capability: third-party-software-catalog + owner: hub-core + disposition: move + notes: Or specialized compliance service; start as hub projection + confidence: initial +- id: route:GET:/tpsc/catalog/{slug} + kind: route + method: GET + path: /tpsc/catalog/{slug} + operation_id: get_catalog_entry_tpsc_catalog__slug__get + tags: + - tpsc + capability: third-party-software-catalog + owner: hub-core + disposition: move + notes: Or specialized compliance service; start as hub projection + confidence: initial +- id: route:POST:/tpsc/ingest/ + kind: route + method: POST + path: /tpsc/ingest/ + operation_id: ingest_tpsc_tpsc_ingest__post + tags: + - tpsc + capability: third-party-software-catalog + owner: hub-core + disposition: move + notes: Or specialized compliance service; start as hub projection + confidence: initial +- id: route:GET:/tpsc/report/gdpr + kind: route + method: GET + path: /tpsc/report/gdpr + operation_id: gdpr_report_tpsc_report_gdpr_get + tags: + - tpsc + capability: third-party-software-catalog + owner: hub-core + disposition: move + notes: Or specialized compliance service; start as hub projection + confidence: initial +- id: route:GET:/tpsc/snapshots/ + kind: route + method: GET + path: /tpsc/snapshots/ + operation_id: list_snapshots_tpsc_snapshots__get + tags: + - tpsc + capability: third-party-software-catalog + owner: hub-core + disposition: move + notes: Or specialized compliance service; start as hub projection + confidence: initial +- id: route:GET:/workplans/ + kind: route + method: GET + path: /workplans/ + operation_id: list_workplans_workplans__get + tags: + - workplans + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:POST:/workplans/ + kind: route + method: POST + path: /workplans/ + operation_id: create_workplan_workplans__post + tags: + - workplans + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:GET:/workplans/index + kind: route + method: GET + path: /workplans/index + operation_id: workplan_index_preferred_workplans_index_get + tags: + - workplans + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:PUT:/workplans/index/bindings + kind: route + method: PUT + path: /workplans/index/bindings + operation_id: sync_workplan_bindings_workplans_index_bindings_put + tags: + - workplans + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:GET:/workplans/{workplan_id} + kind: route + method: GET + path: /workplans/{workplan_id} + operation_id: get_workplan_workplans__workplan_id__get + tags: + - workplans + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:PATCH:/workplans/{workplan_id} + kind: route + method: PATCH + path: /workplans/{workplan_id} + operation_id: update_workplan_workplans__workplan_id__patch + tags: + - workplans + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:DELETE:/workplans/{workplan_id} + kind: route + method: DELETE + path: /workplans/{workplan_id} + operation_id: archive_workplan_workplans__workplan_id__delete + tags: + - workplans + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:POST:/workplans/{workplan_id}/dependencies/ + kind: route + method: POST + path: /workplans/{workplan_id}/dependencies/ + operation_id: create_workplan_dependency_workplans__workplan_id__dependencies__post + tags: + - dependencies + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:GET:/workplans/{workplan_id}/dependencies/ + kind: route + method: GET + path: /workplans/{workplan_id}/dependencies/ + operation_id: list_workplan_dependencies_workplans__workplan_id__dependencies__get + tags: + - dependencies + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:DELETE:/workplans/{workplan_id}/dependencies/{dep_id} + kind: route + method: DELETE + path: /workplans/{workplan_id}/dependencies/{dep_id} + operation_id: delete_workplan_dependency_workplans__workplan_id__dependencies__dep_id__delete + tags: + - dependencies + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:GET:/workstreams/ + kind: route + method: GET + path: /workstreams/ + operation_id: list_workstreams_workstreams__get + tags: + - workstreams + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:POST:/workstreams/ + kind: route + method: POST + path: /workstreams/ + operation_id: create_workstream_workstreams__post + tags: + - workstreams + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:GET:/workstreams/workplan-index + kind: route + method: GET + path: /workstreams/workplan-index + operation_id: workplan_index_workstreams_workplan_index_get + tags: + - workstreams + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:GET:/workstreams/{workstream_id} + kind: route + method: GET + path: /workstreams/{workstream_id} + operation_id: get_workstream_workstreams__workstream_id__get + tags: + - workstreams + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:PATCH:/workstreams/{workstream_id} + kind: route + method: PATCH + path: /workstreams/{workstream_id} + operation_id: update_workstream_workstreams__workstream_id__patch + tags: + - workstreams + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:DELETE:/workstreams/{workstream_id} + kind: route + method: DELETE + path: /workstreams/{workstream_id} + operation_id: archive_workstream_workstreams__workstream_id__delete + tags: + - workstreams + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:POST:/workstreams/{workstream_id}/dependencies/ + kind: route + method: POST + path: /workstreams/{workstream_id}/dependencies/ + operation_id: create_dependency_workstreams__workstream_id__dependencies__post + tags: + - dependencies + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:GET:/workstreams/{workstream_id}/dependencies/ + kind: route + method: GET + path: /workstreams/{workstream_id}/dependencies/ + operation_id: list_dependencies_workstreams__workstream_id__dependencies__get + tags: + - dependencies + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:DELETE:/workstreams/{workstream_id}/dependencies/{dep_id} + kind: route + method: DELETE + path: /workstreams/{workstream_id}/dependencies/{dep_id} + operation_id: delete_dependency_workstreams__workstream_id__dependencies__dep_id__delete + tags: + - dependencies + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +summary: + item_count: 187 + by_disposition: + move: 143 + replace: 20 + retire: 24 + by_owner: + hub-core: 63 + repo-manager: 80 + activity-core: 10 + fin-hub: 7 + state-hub-until-cutover: 7 + ops-hub: 3 + archive: 17 diff --git a/inventory/state-hub-disposition.yaml b/inventory/state-hub-disposition.yaml new file mode 100644 index 0000000..267fd06 --- /dev/null +++ b/inventory/state-hub-disposition.yaml @@ -0,0 +1,4673 @@ +inventory_id: SHR-INV-0001 +title: State Hub capability disposition inventory +version: 0.1.1 +created: '2026-08-09' +updated: '2026-08-09' +workplan_task: SHR-WP-0001-T02 +source_repo: state-hub +source_revision_note: Inventory generated from live OpenAPI, source tree, and docs on 2026-08-09 +disposition_values: +- keep +- move +- replace +- retire +owner_values: +- hub-core +- repo-manager +- activity-core +- issue-core +- ops-hub +- fin-hub +- ops-bridge +- the-custodian +- archive +- state-hub-until-cutover +- undetermined +confidence_values: +- initial +- medium +- high +rules: +- dispositions are initial and revisable through architecture tasks T03/T04 and child workplans +- file-backed work records remain authoritative in domain repos regardless of index owner +- retire means no successor runtime after evidence gates; archive history retained +- replace means capability survives under a different contract/API, not necessarily same schema +- move means substantially same responsibility relocates to named owner +- keep means remains operationally required during migration without a better home yet, or external dependency + retained +related_docs: +- state-hub/INTENT.md +- state-hub/docs/hub-ecosystem-route-audit.md +- state-hub/docs/cron-migration.md +- state-hub/docs/cluster-operating-model.md +- state-hub/docs/evidence/workstream-caller-inventory-20260709.md +- prj-state-hub-retirement/GOAL.md +baseline_counts: + captured_at: '2026-08-09T15:33:34Z' + source: GET /state/summary + topics_total: 14 + workplans_total: 868 + tasks_total: 5138 + decisions_total: 89 + notes: Full table counts for T06; this is orientation baseline only +summary: + item_count: 425 + by_kind: + caller: 10 + dashboard_view: 39 + dataset: 42 + job: 5 + mcp_tool: 88 + migration: 43 + model-compat: 2 + ops_dependency: 9 + route: 187 + by_disposition: + keep: 48 + move: 269 + replace: 66 + retire: 42 + by_owner: + activity-core: 18 + archive: 30 + fin-hub: 10 + hub-core: 128 + ops-bridge: 2 + ops-hub: 13 + repo-manager: 167 + state-hub-until-cutover: 55 + the-custodian: 2 + route_count: 187 + dataset_count: 42 + mcp_tool_count: 88 + dashboard_page_count: 39 + migration_count: 43 +items: +- id: route:POST:/capability-catalog/ + kind: route + method: POST + path: /capability-catalog/ + operation_id: create_catalog_entry_capability_catalog__post + tags: + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:GET:/capability-catalog/ + kind: route + method: GET + path: /capability-catalog/ + operation_id: list_catalog_capability_catalog__get + tags: + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:PATCH:/capability-catalog/{entry_id} + kind: route + method: PATCH + path: /capability-catalog/{entry_id} + operation_id: patch_catalog_entry_capability_catalog__entry_id__patch + tags: + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:GET:/capability-requests/ + kind: route + method: GET + path: /capability-requests/ + operation_id: list_requests_capability_requests__get + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:POST:/capability-requests/ + kind: route + method: POST + path: /capability-requests/ + operation_id: create_request_capability_requests__post + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:GET:/capability-requests/{request_id} + kind: route + method: GET + path: /capability-requests/{request_id} + operation_id: get_request_capability_requests__request_id__get + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:PATCH:/capability-requests/{request_id} + kind: route + method: PATCH + path: /capability-requests/{request_id} + operation_id: patch_request_capability_requests__request_id__patch + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:POST:/capability-requests/{request_id}/accept + kind: route + method: POST + path: /capability-requests/{request_id}/accept + operation_id: accept_request_capability_requests__request_id__accept_post + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:POST:/capability-requests/{request_id}/dispute + kind: route + method: POST + path: /capability-requests/{request_id}/dispute + operation_id: dispute_request_capability_requests__request_id__dispute_post + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:POST:/capability-requests/{request_id}/reroute + kind: route + method: POST + path: /capability-requests/{request_id}/reroute + operation_id: reroute_request_capability_requests__request_id__reroute_post + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:PATCH:/capability-requests/{request_id}/status + kind: route + method: PATCH + path: /capability-requests/{request_id}/status + operation_id: patch_request_status_capability_requests__request_id__status_patch + tags: + - capability-requests + - capability-requests + capability: capability-catalog + owner: hub-core + disposition: move + notes: Capability catalog/requests; may split domain extensions later + confidence: initial +- id: route:POST:/consistency/sweep/remote-all + kind: route + method: POST + path: /consistency/sweep/remote-all + operation_id: sweep_remote_all_consistency_sweep_remote_all_post + tags: + - consistency + capability: repo-consistency + owner: repo-manager + disposition: move + notes: fix-consistency / sweep + confidence: initial +- id: route:GET:/contributions/ + kind: route + method: GET + path: /contributions/ + operation_id: list_contributions_contributions__get + tags: + - contributions + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: Contribution artefacts live in repos; index may be hub projection + confidence: initial +- id: route:POST:/contributions/ + kind: route + method: POST + path: /contributions/ + operation_id: create_contribution_contributions__post + tags: + - contributions + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: Contribution artefacts live in repos; index may be hub projection + confidence: initial +- id: route:GET:/contributions/{contribution_id} + kind: route + method: GET + path: /contributions/{contribution_id} + operation_id: get_contribution_contributions__contribution_id__get + tags: + - contributions + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: Contribution artefacts live in repos; index may be hub projection + confidence: initial +- id: route:DELETE:/contributions/{contribution_id} + kind: route + method: DELETE + path: /contributions/{contribution_id} + operation_id: withdraw_contribution_contributions__contribution_id__delete + tags: + - contributions + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: Contribution artefacts live in repos; index may be hub projection + confidence: initial +- id: route:PATCH:/contributions/{contribution_id}/status + kind: route + method: PATCH + path: /contributions/{contribution_id}/status + operation_id: patch_contribution_status_contributions__contribution_id__status_patch + tags: + - contributions + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: Contribution artefacts live in repos; index may be hub projection + confidence: initial +- id: route:GET:/decisions/ + kind: route + method: GET + path: /decisions/ + operation_id: list_decisions_decisions__get + tags: + - decisions + capability: work-records-decision + owner: repo-manager + disposition: move + notes: Decision records origin in repos + confidence: initial +- id: route:POST:/decisions/ + kind: route + method: POST + path: /decisions/ + operation_id: create_decision_decisions__post + tags: + - decisions + capability: work-records-decision + owner: repo-manager + disposition: move + notes: Decision records origin in repos + confidence: initial +- id: route:GET:/decisions/{decision_id} + kind: route + method: GET + path: /decisions/{decision_id} + operation_id: get_decision_decisions__decision_id__get + tags: + - decisions + capability: work-records-decision + owner: repo-manager + disposition: move + notes: Decision records origin in repos + confidence: initial +- id: route:PATCH:/decisions/{decision_id} + kind: route + method: PATCH + path: /decisions/{decision_id} + operation_id: update_decision_decisions__decision_id__patch + tags: + - decisions + capability: work-records-decision + owner: repo-manager + disposition: move + notes: Decision records origin in repos + confidence: initial +- id: route:DELETE:/decisions/{decision_id} + kind: route + method: DELETE + path: /decisions/{decision_id} + operation_id: supersede_decision_decisions__decision_id__delete + tags: + - decisions + capability: work-records-decision + owner: repo-manager + disposition: move + notes: Decision records origin in repos + confidence: initial +- id: route:POST:/decisions/{decision_id}/resolve + kind: route + method: POST + path: /decisions/{decision_id}/resolve + operation_id: resolve_decision_action_decisions__decision_id__resolve_post + tags: + - decisions + capability: work-records-decision + owner: repo-manager + disposition: move + notes: Decision records origin in repos + confidence: initial +- id: route:GET:/domain-goals/ + kind: route + method: GET + path: /domain-goals/ + operation_id: list_domain_goals_domain_goals__get + tags: + - domain-goals + capability: domain-goals + owner: hub-core + disposition: move + notes: Domain intention projection + confidence: initial +- id: route:POST:/domain-goals/ + kind: route + method: POST + path: /domain-goals/ + operation_id: create_domain_goal_domain_goals__post + tags: + - domain-goals + capability: domain-goals + owner: hub-core + disposition: move + notes: Domain intention projection + confidence: initial +- id: route:GET:/domain-goals/{goal_id} + kind: route + method: GET + path: /domain-goals/{goal_id} + operation_id: get_domain_goal_domain_goals__goal_id__get + tags: + - domain-goals + capability: domain-goals + owner: hub-core + disposition: move + notes: Domain intention projection + confidence: initial +- id: route:PATCH:/domain-goals/{goal_id} + kind: route + method: PATCH + path: /domain-goals/{goal_id} + operation_id: update_domain_goal_domain_goals__goal_id__patch + tags: + - domain-goals + capability: domain-goals + owner: hub-core + disposition: move + notes: Domain intention projection + confidence: initial +- id: route:POST:/domain-goals/{goal_id}/activate + kind: route + method: POST + path: /domain-goals/{goal_id}/activate + operation_id: activate_domain_goal_domain_goals__goal_id__activate_post + tags: + - domain-goals + capability: domain-goals + owner: hub-core + disposition: move + notes: Domain intention projection + confidence: initial +- id: route:GET:/domains/ + kind: route + method: GET + path: /domains/ + operation_id: list_domains_domains__get + tags: + - domains + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:POST:/domains/ + kind: route + method: POST + path: /domains/ + operation_id: create_domain_domains__post + tags: + - domains + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:GET:/domains/{slug} + kind: route + method: GET + path: /domains/{slug} + operation_id: get_domain_domains__slug__get + tags: + - domains + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:PATCH:/domains/{slug}/archive + kind: route + method: PATCH + path: /domains/{slug}/archive + operation_id: archive_domain_domains__slug__archive_patch + tags: + - domains + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:POST:/domains/{slug}/recently-on-scope/ + kind: route + method: POST + path: /domains/{slug}/recently-on-scope/ + operation_id: generate_recently_on_scope_domains__slug__recently_on_scope__post + tags: + - recently-on-scope + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:GET:/domains/{slug}/recently-on-scope/ + kind: route + method: GET + path: /domains/{slug}/recently-on-scope/ + operation_id: list_recently_on_scope_domains__slug__recently_on_scope__get + tags: + - recently-on-scope + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:GET:/domains/{slug}/recently-on-scope/{report_id} + kind: route + method: GET + path: /domains/{slug}/recently-on-scope/{report_id} + operation_id: get_recently_on_scope_report_domains__slug__recently_on_scope__report_id__get + tags: + - recently-on-scope + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:PATCH:/domains/{slug}/rename + kind: route + method: PATCH + path: /domains/{slug}/rename + operation_id: rename_domain_domains__slug__rename_patch + tags: + - domains + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: Shared domain registry already partially hub-core factory + confidence: initial +- id: route:POST:/execution/launch-requests + kind: route + method: POST + path: /execution/launch-requests + operation_id: create_launch_request_execution_launch_requests_post + tags: + - execution + capability: workplan-execution-queue + owner: activity-core + disposition: replace + notes: Launch/queue intent; not permanent hub ownership + confidence: initial +- id: route:GET:/execution/launch-requests + kind: route + method: GET + path: /execution/launch-requests + operation_id: list_launch_requests_execution_launch_requests_get + tags: + - execution + capability: workplan-execution-queue + owner: activity-core + disposition: replace + notes: Launch/queue intent; not permanent hub ownership + confidence: initial +- id: route:GET:/execution/semantics + kind: route + method: GET + path: /execution/semantics + operation_id: execution_semantics_execution_semantics_get + tags: + - execution + capability: workplan-execution-queue + owner: activity-core + disposition: replace + notes: Launch/queue intent; not permanent hub ownership + confidence: initial +- id: route:GET:/execution/workplan-stack + kind: route + method: GET + path: /execution/workplan-stack + operation_id: workplan_stack_execution_workplan_stack_get + tags: + - execution + capability: workplan-execution-queue + owner: activity-core + disposition: replace + notes: Launch/queue intent; not permanent hub ownership + confidence: initial +- id: route:PATCH:/execution/workplans/{workplan_id}/intent + kind: route + method: PATCH + path: /execution/workplans/{workplan_id}/intent + operation_id: update_workplan_execution_intent_execution_workplans__workplan_id__intent_patch + tags: + - execution + capability: workplan-execution-queue + owner: activity-core + disposition: replace + notes: Launch/queue intent; not permanent hub ownership + confidence: initial +- id: route:PATCH:/execution/workstreams/{workstream_id}/intent + kind: route + method: PATCH + path: /execution/workstreams/{workstream_id}/intent + operation_id: update_execution_intent_execution_workstreams__workstream_id__intent_patch + tags: + - execution + capability: workplan-execution-queue + owner: activity-core + disposition: replace + notes: Launch/queue intent; not permanent hub ownership + confidence: initial +- id: route:GET:/extension-points/ + kind: route + method: GET + path: /extension-points/ + operation_id: list_eps_extension_points__get + tags: + - extension-points + capability: register-extension-points + owner: repo-manager + disposition: move + notes: Register-entry style + confidence: initial +- id: route:POST:/extension-points/ + kind: route + method: POST + path: /extension-points/ + operation_id: create_ep_extension_points__post + tags: + - extension-points + capability: register-extension-points + owner: repo-manager + disposition: move + notes: Register-entry style + confidence: initial +- id: route:GET:/extension-points/{ep_id} + kind: route + method: GET + path: /extension-points/{ep_id} + operation_id: get_ep_extension_points__ep_id__get + tags: + - extension-points + capability: register-extension-points + owner: repo-manager + disposition: move + notes: Register-entry style + confidence: initial +- id: route:PATCH:/extension-points/{ep_id} + kind: route + method: PATCH + path: /extension-points/{ep_id} + operation_id: update_ep_extension_points__ep_id__patch + tags: + - extension-points + capability: register-extension-points + owner: repo-manager + disposition: move + notes: Register-entry style + confidence: initial +- id: route:DELETE:/extension-points/{ep_id} + kind: route + method: DELETE + path: /extension-points/{ep_id} + operation_id: defer_ep_extension_points__ep_id__delete + tags: + - extension-points + capability: register-extension-points + owner: repo-manager + disposition: move + notes: Register-entry style + confidence: initial +- id: route:POST:/fabric/graph-exports + kind: route + method: POST + path: /fabric/graph-exports + operation_id: ingest_graph_export_fabric_graph_exports_post + tags: + - fabric + capability: fabric-graph + owner: fin-hub + disposition: move + notes: Financial fabric read model; specialized authority + confidence: initial +- id: route:GET:/fabric/graph-exports + kind: route + method: GET + path: /fabric/graph-exports + operation_id: list_graph_imports_fabric_graph_exports_get + tags: + - fabric + capability: fabric-graph + owner: fin-hub + disposition: move + notes: Financial fabric read model; specialized authority + confidence: initial +- id: route:GET:/fabric/graph-exports/latest + kind: route + method: GET + path: /fabric/graph-exports/latest + operation_id: latest_graph_import_fabric_graph_exports_latest_get + tags: + - fabric + capability: fabric-graph + owner: fin-hub + disposition: move + notes: Financial fabric read model; specialized authority + confidence: initial +- id: route:POST:/fabric/graph-exports/pull + kind: route + method: POST + path: /fabric/graph-exports/pull + operation_id: pull_graph_export_fabric_graph_exports_pull_post + tags: + - fabric + capability: fabric-graph + owner: fin-hub + disposition: move + notes: Financial fabric read model; specialized authority + confidence: initial +- id: route:GET:/fabric/graph/edges + kind: route + method: GET + path: /fabric/graph/edges + operation_id: list_graph_edges_fabric_graph_edges_get + tags: + - fabric + capability: fabric-graph + owner: fin-hub + disposition: move + notes: Financial fabric read model; specialized authority + confidence: initial +- id: route:GET:/fabric/graph/nodes + kind: route + method: GET + path: /fabric/graph/nodes + operation_id: list_graph_nodes_fabric_graph_nodes_get + tags: + - fabric + capability: fabric-graph + owner: fin-hub + disposition: move + notes: Financial fabric read model; specialized authority + confidence: initial +- id: route:GET:/fabric/graph/summary + kind: route + method: GET + path: /fabric/graph/summary + operation_id: graph_summary_fabric_graph_summary_get + tags: + - fabric + capability: fabric-graph + owner: fin-hub + disposition: move + notes: Financial fabric read model; specialized authority + confidence: initial +- id: route:GET:/flows/definitions + kind: route + method: GET + path: /flows/definitions + operation_id: list_flow_definitions_flows_definitions_get + tags: + - flows + capability: task-flow-engine + owner: activity-core + disposition: replace + notes: Workstation flows; execution ownership closer to activity-core + confidence: initial +- id: route:GET:/flows/{entity_type}/{entity_id} + kind: route + method: GET + path: /flows/{entity_type}/{entity_id} + operation_id: get_flow_state_flows__entity_type___entity_id__get + tags: + - flows + capability: task-flow-engine + owner: activity-core + disposition: replace + notes: Workstation flows; execution ownership closer to activity-core + confidence: initial +- id: route:POST:/flows/{entity_type}/{entity_id}/advance/{target_workstation} + kind: route + method: POST + path: /flows/{entity_type}/{entity_id}/advance/{target_workstation} + operation_id: advance_workstation_flows__entity_type___entity_id__advance__target_workstation__post + tags: + - flows + capability: task-flow-engine + owner: activity-core + disposition: replace + notes: Workstation flows; execution ownership closer to activity-core + confidence: initial +- id: route:GET:/intakes/ + kind: route + method: GET + path: /intakes/ + operation_id: list_intakes_intakes__get + tags: + - intakes + capability: work-records-intake + owner: repo-manager + disposition: move + notes: Work-record kind; file origin in repos + confidence: initial +- id: route:POST:/intakes/ + kind: route + method: POST + path: /intakes/ + operation_id: create_intake_intakes__post + tags: + - intakes + capability: work-records-intake + owner: repo-manager + disposition: move + notes: Work-record kind; file origin in repos + confidence: initial +- id: route:GET:/intakes/{intake_id} + kind: route + method: GET + path: /intakes/{intake_id} + operation_id: get_intake_intakes__intake_id__get + tags: + - intakes + capability: work-records-intake + owner: repo-manager + disposition: move + notes: Work-record kind; file origin in repos + confidence: initial +- id: route:PATCH:/intakes/{intake_id} + kind: route + method: PATCH + path: /intakes/{intake_id} + operation_id: update_intake_intakes__intake_id__patch + tags: + - intakes + capability: work-records-intake + owner: repo-manager + disposition: move + notes: Work-record kind; file origin in repos + confidence: initial +- id: route:POST:/intakes/{intake_id}/close + kind: route + method: POST + path: /intakes/{intake_id}/close + operation_id: close_intake_intakes__intake_id__close_post + tags: + - intakes + capability: work-records-intake + owner: repo-manager + disposition: move + notes: Work-record kind; file origin in repos + confidence: initial +- id: route:POST:/intakes/{intake_id}/notes + kind: route + method: POST + path: /intakes/{intake_id}/notes + operation_id: add_intake_note_intakes__intake_id__notes_post + tags: + - intakes + capability: work-records-intake + owner: repo-manager + disposition: move + notes: Work-record kind; file origin in repos + confidence: initial +- id: route:POST:/intakes/{intake_id}/route + kind: route + method: POST + path: /intakes/{intake_id}/route + operation_id: route_intake_intakes__intake_id__route_post + tags: + - intakes + capability: work-records-intake + owner: repo-manager + disposition: move + notes: Work-record kind; file origin in repos + confidence: initial +- id: route:POST:/interface-changes/ + kind: route + method: POST + path: /interface-changes/ + operation_id: create_interface_change_interface_changes__post + tags: + - interface-changes + capability: interface-change-log + owner: hub-core + disposition: move + notes: Interface/change events across services + confidence: initial +- id: route:GET:/interface-changes/ + kind: route + method: GET + path: /interface-changes/ + operation_id: list_interface_changes_interface_changes__get + tags: + - interface-changes + capability: interface-change-log + owner: hub-core + disposition: move + notes: Interface/change events across services + confidence: initial +- id: route:GET:/interface-changes/{change_id} + kind: route + method: GET + path: /interface-changes/{change_id} + operation_id: get_interface_change_interface_changes__change_id__get + tags: + - interface-changes + capability: interface-change-log + owner: hub-core + disposition: move + notes: Interface/change events across services + confidence: initial +- id: route:PATCH:/interface-changes/{change_id} + kind: route + method: PATCH + path: /interface-changes/{change_id} + operation_id: patch_interface_change_interface_changes__change_id__patch + tags: + - interface-changes + capability: interface-change-log + owner: hub-core + disposition: move + notes: Interface/change events across services + confidence: initial +- id: route:POST:/interface-changes/{change_id}/publish + kind: route + method: POST + path: /interface-changes/{change_id}/publish + operation_id: publish_interface_change_interface_changes__change_id__publish_post + tags: + - interface-changes + capability: interface-change-log + owner: hub-core + disposition: move + notes: Interface/change events across services + confidence: initial +- id: route:POST:/interface-changes/{change_id}/resolve + kind: route + method: POST + path: /interface-changes/{change_id}/resolve + operation_id: resolve_interface_change_interface_changes__change_id__resolve_post + tags: + - interface-changes + capability: interface-change-log + owner: hub-core + disposition: move + notes: Interface/change events across services + confidence: initial +- id: route:GET:/legacy-meter/interfaces + kind: route + method: GET + path: /legacy-meter/interfaces + operation_id: list_interfaces_legacy_meter_interfaces_get + tags: + - legacy-meter + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + notes: Migration instrumentation; retire after cutover evidence + confidence: initial +- id: route:POST:/legacy-meter/interfaces + kind: route + method: POST + path: /legacy-meter/interfaces + operation_id: register_interface_legacy_meter_interfaces_post + tags: + - legacy-meter + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + notes: Migration instrumentation; retire after cutover evidence + confidence: initial +- id: route:GET:/legacy-meter/interfaces/by-key + kind: route + method: GET + path: /legacy-meter/interfaces/by-key + operation_id: get_interface_by_key_legacy_meter_interfaces_by_key_get + tags: + - legacy-meter + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + notes: Migration instrumentation; retire after cutover evidence + confidence: initial +- id: route:PATCH:/legacy-meter/interfaces/{interface_id} + kind: route + method: PATCH + path: /legacy-meter/interfaces/{interface_id} + operation_id: patch_interface_legacy_meter_interfaces__interface_id__patch + tags: + - legacy-meter + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + notes: Migration instrumentation; retire after cutover evidence + confidence: initial +- id: route:GET:/legacy-meter/summary + kind: route + method: GET + path: /legacy-meter/summary + operation_id: usage_summary_legacy_meter_summary_get + tags: + - legacy-meter + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + notes: Migration instrumentation; retire after cutover evidence + confidence: initial +- id: route:POST:/legacy-meter/usage + kind: route + method: POST + path: /legacy-meter/usage + operation_id: record_usage_legacy_meter_usage_post + tags: + - legacy-meter + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + notes: Migration instrumentation; retire after cutover evidence + confidence: initial +- id: route:GET:/legacy-meter/weekly-review + kind: route + method: GET + path: /legacy-meter/weekly-review + operation_id: weekly_review_legacy_meter_weekly_review_get + tags: + - legacy-meter + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + notes: Migration instrumentation; retire after cutover evidence + confidence: initial +- id: route:POST:/messages/ + kind: route + method: POST + path: /messages/ + operation_id: send_message_messages__post + tags: + - messages + capability: agent-messaging + owner: hub-core + disposition: move + notes: Cross-entity communication + confidence: initial +- id: route:GET:/messages/ + kind: route + method: GET + path: /messages/ + operation_id: list_messages_messages__get + tags: + - messages + capability: agent-messaging + owner: hub-core + disposition: move + notes: Cross-entity communication + confidence: initial +- id: route:GET:/messages/thread/{thread_id} + kind: route + method: GET + path: /messages/thread/{thread_id} + operation_id: get_thread_messages_thread__thread_id__get + tags: + - messages + capability: agent-messaging + owner: hub-core + disposition: move + notes: Cross-entity communication + confidence: initial +- id: route:PATCH:/messages/{message_id}/archive + kind: route + method: PATCH + path: /messages/{message_id}/archive + operation_id: archive_message_messages__message_id__archive_patch + tags: + - messages + capability: agent-messaging + owner: hub-core + disposition: move + notes: Cross-entity communication + confidence: initial +- id: route:PATCH:/messages/{message_id}/read + kind: route + method: PATCH + path: /messages/{message_id}/read + operation_id: mark_read_messages__message_id__read_patch + tags: + - messages + capability: agent-messaging + owner: hub-core + disposition: move + notes: Cross-entity communication + confidence: initial +- id: route:POST:/messages/{message_id}/reply + kind: route + method: POST + path: /messages/{message_id}/reply + operation_id: reply_to_message_messages__message_id__reply_post + tags: + - messages + capability: agent-messaging + owner: hub-core + disposition: move + notes: Cross-entity communication + confidence: initial +- id: route:GET:/ops-runs/summary + kind: route + method: GET + path: /ops-runs/summary + operation_id: get_ops_runs_summary_ops_runs_summary_get + tags: + - ops-runs + capability: ops-run-projection + owner: activity-core + disposition: move + notes: Read projection of activity-core ops runs + confidence: initial +- id: route:GET:/policy/{name} + kind: route + method: GET + path: /policy/{name} + operation_id: get_policy_policy__name__get + tags: + - policy + capability: policy-integration + owner: hub-core + disposition: move + notes: Policy integration surface + confidence: initial +- id: route:PUT:/policy/{name} + kind: route + method: PUT + path: /policy/{name} + operation_id: put_policy_policy__name__put + tags: + - policy + capability: policy-integration + owner: hub-core + disposition: move + notes: Policy integration surface + confidence: initial +- id: route:GET:/progress/ + kind: route + method: GET + path: /progress/ + operation_id: list_progress_progress__get + tags: + - progress + capability: progress-telemetry + owner: hub-core + disposition: move + notes: Progress events as coordination telemetry projection + confidence: initial +- id: route:POST:/progress/ + kind: route + method: POST + path: /progress/ + operation_id: append_progress_progress__post + tags: + - progress + capability: progress-telemetry + owner: hub-core + disposition: move + notes: Progress events as coordination telemetry projection + confidence: initial +- id: route:GET:/progress/alerts + kind: route + method: GET + path: /progress/alerts + operation_id: get_alerts_progress_alerts_get + tags: + - progress + capability: progress-telemetry + owner: hub-core + disposition: move + notes: Progress events as coordination telemetry projection + confidence: initial +- id: route:GET:/progress/risks + kind: route + method: GET + path: /progress/risks + operation_id: get_risks_progress_risks_get + tags: + - progress + capability: progress-telemetry + owner: hub-core + disposition: move + notes: Progress events as coordination telemetry projection + confidence: initial +- id: route:POST:/recently-on-scope/hourly + kind: route + method: POST + path: /recently-on-scope/hourly + operation_id: generate_hourly_recently_on_scope_recently_on_scope_hourly_post + tags: + - recently-on-scope + capability: recently-on-scope + owner: hub-core + disposition: replace + notes: Derived view + confidence: initial +- id: route:POST:/reconciliation/state-change + kind: route + method: POST + path: /reconciliation/state-change + operation_id: classify_state_change_reconciliation_state_change_post + tags: + - reconciliation + capability: repo-reconciliation + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:GET:/repo-goals/ + kind: route + method: GET + path: /repo-goals/ + operation_id: list_repo_goals_repo_goals__get + tags: + - repo-goals + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:POST:/repo-goals/ + kind: route + method: POST + path: /repo-goals/ + operation_id: create_repo_goal_repo_goals__post + tags: + - repo-goals + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:GET:/repo-goals/{goal_id} + kind: route + method: GET + path: /repo-goals/{goal_id} + operation_id: get_repo_goal_repo_goals__goal_id__get + tags: + - repo-goals + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:PATCH:/repo-goals/{goal_id} + kind: route + method: PATCH + path: /repo-goals/{goal_id} + operation_id: update_repo_goal_repo_goals__goal_id__patch + tags: + - repo-goals + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:GET:/repos/ + kind: route + method: GET + path: /repos/ + operation_id: list_repos_repos__get + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:POST:/repos/ + kind: route + method: POST + path: /repos/ + operation_id: register_repo_repos__post + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/by-fingerprint + kind: route + method: GET + path: /repos/by-fingerprint + operation_id: get_repo_by_fingerprint_repos_by_fingerprint_get + tags: + - repos + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/by-id/{repo_id} + kind: route + method: GET + path: /repos/by-id/{repo_id} + operation_id: get_repo_by_id_repos_by_id__repo_id__get + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/by-remote + kind: route + method: GET + path: /repos/by-remote + operation_id: get_repo_by_remote_url_repos_by_remote_get + tags: + - repos + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/doi/summary + kind: route + method: GET + path: /repos/doi/summary + operation_id: doi_summary_repos_doi_summary_get + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:POST:/repos/onboard + kind: route + method: POST + path: /repos/onboard + operation_id: onboard_repo_repos_onboard_post + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/scope-health + kind: route + method: GET + path: /repos/scope-health + operation_id: list_repo_scope_health_repos_scope_health_get + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/todo-md-staleness + kind: route + method: GET + path: /repos/todo-md-staleness + operation_id: list_todo_md_staleness_repos_todo_md_staleness_get + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:PATCH:/repos/{slug} + kind: route + method: PATCH + path: /repos/{slug} + operation_id: update_repo_repos__slug__patch + tags: + - repos + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/{slug} + kind: route + method: GET + path: /repos/{slug} + operation_id: get_repo_repos__slug__get + tags: + - repos + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:PATCH:/repos/{slug}/archive + kind: route + method: PATCH + path: /repos/{slug}/archive + operation_id: archive_repo_repos__slug__archive_patch + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/{slug}/dispatch + kind: route + method: GET + path: /repos/{slug}/dispatch + operation_id: get_repo_dispatch_repos__slug__dispatch_get + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/repos/{slug}/doi + kind: route + method: GET + path: /repos/{slug}/doi + operation_id: get_repo_doi_repos__slug__doi_get + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:POST:/repos/{slug}/paths + kind: route + method: POST + path: /repos/{slug}/paths + operation_id: register_repo_path_repos__slug__paths_post + tags: + - repos + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:POST:/repos/{slug}/sync + kind: route + method: POST + path: /repos/{slug}/sync + operation_id: sync_repo_consistency_repos__slug__sync_post + tags: + - repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: Repo representation, paths, classification spine + confidence: initial +- id: route:GET:/sbom/ + kind: route + method: GET + path: /sbom/ + operation_id: list_sbom_entries_sbom__get + tags: + - sbom + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: Repo-attached dependency inventory + confidence: initial +- id: route:POST:/sbom/ingest/ + kind: route + method: POST + path: /sbom/ingest/ + operation_id: ingest_sbom_sbom_ingest__post + tags: + - sbom + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: Repo-attached dependency inventory + confidence: initial +- id: route:GET:/sbom/report/licences/ + kind: route + method: GET + path: /sbom/report/licences/ + operation_id: licence_report_sbom_report_licences__get + tags: + - sbom + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: Repo-attached dependency inventory + confidence: initial +- id: route:GET:/sbom/snapshots/ + kind: route + method: GET + path: /sbom/snapshots/ + operation_id: list_snapshots_sbom_snapshots__get + tags: + - sbom + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: Repo-attached dependency inventory + confidence: initial +- id: route:GET:/sbom/snapshots/{snapshot_id} + kind: route + method: GET + path: /sbom/snapshots/{snapshot_id} + operation_id: get_snapshot_sbom_snapshots__snapshot_id__get + tags: + - sbom + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: Repo-attached dependency inventory + confidence: initial +- id: route:GET:/sbom/{repo_slug} + kind: route + method: GET + path: /sbom/{repo_slug} + operation_id: get_repo_sbom_sbom__repo_slug__get + tags: + - sbom + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: Repo-attached dependency inventory + confidence: initial +- id: route:GET:/services/catalog + kind: route + method: GET + path: /services/catalog + operation_id: list_services_services_catalog_get + tags: + - services + capability: service-catalog + owner: ops-hub + disposition: move + notes: Service catalog beyond TPSC + confidence: initial +- id: route:POST:/services/catalog + kind: route + method: POST + path: /services/catalog + operation_id: upsert_service_services_catalog_post + tags: + - services + capability: service-catalog + owner: ops-hub + disposition: move + notes: Service catalog beyond TPSC + confidence: initial +- id: route:GET:/services/{slug} + kind: route + method: GET + path: /services/{slug} + operation_id: get_service_services__slug__get + tags: + - services + capability: service-catalog + owner: ops-hub + disposition: move + notes: Service catalog beyond TPSC + confidence: initial +- id: route:GET:/state/deps + kind: route + method: GET + path: /state/deps + operation_id: get_deps_state_deps_get + tags: + - state + capability: state-projections + owner: hub-core + disposition: replace + notes: Dashboard loaders / summary cache become hub-core projections + confidence: initial +- id: route:GET:/state/health + kind: route + method: GET + path: /state/health + operation_id: health_check_state_health_get + tags: + - state + capability: state-projections + owner: hub-core + disposition: replace + notes: Dashboard loaders / summary cache become hub-core projections + confidence: initial +- id: route:GET:/state/next_steps + kind: route + method: GET + path: /state/next_steps + operation_id: get_next_steps_state_next_steps_get + tags: + - state + capability: state-projections + owner: hub-core + disposition: replace + notes: Dashboard loaders / summary cache become hub-core projections + confidence: initial +- id: route:GET:/state/overview + kind: route + method: GET + path: /state/overview + operation_id: get_overview_state_overview_get + tags: + - state + capability: state-projections + owner: hub-core + disposition: replace + notes: Dashboard loaders / summary cache become hub-core projections + confidence: initial +- id: route:GET:/state/summary + kind: route + method: GET + path: /state/summary + operation_id: get_summary_state_summary_get + tags: + - state + capability: state-projections + owner: hub-core + disposition: replace + notes: Dashboard loaders / summary cache become hub-core projections + confidence: initial +- id: route:GET:/suggestions/ + kind: route + method: GET + path: /suggestions/ + operation_id: list_suggestions_suggestions__get + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:POST:/suggestions/ + kind: route + method: POST + path: /suggestions/ + operation_id: create_suggestion_suggestions__post + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:GET:/suggestions/{suggestion_id} + kind: route + method: GET + path: /suggestions/{suggestion_id} + operation_id: get_suggestion_suggestions__suggestion_id__get + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:POST:/suggestions/{suggestion_id}/bump-relevance + kind: route + method: POST + path: /suggestions/{suggestion_id}/bump-relevance + operation_id: bump_suggestion_relevance_suggestions__suggestion_id__bump_relevance_post + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:POST:/suggestions/{suggestion_id}/decline + kind: route + method: POST + path: /suggestions/{suggestion_id}/decline + operation_id: decline_suggestion_suggestions__suggestion_id__decline_post + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:GET:/suggestions/{suggestion_id}/notes + kind: route + method: GET + path: /suggestions/{suggestion_id}/notes + operation_id: list_suggestion_notes_suggestions__suggestion_id__notes_get + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:POST:/suggestions/{suggestion_id}/promote + kind: route + method: POST + path: /suggestions/{suggestion_id}/promote + operation_id: promote_suggestion_to_task_suggestions__suggestion_id__promote_post + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:POST:/suggestions/{suggestion_id}/vet + kind: route + method: POST + path: /suggestions/{suggestion_id}/vet + operation_id: vet_suggestion_suggestions__suggestion_id__vet_post + tags: + - suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: HTTP 410; replaced by intake + confidence: initial +- id: route:GET:/tasks/ + kind: route + method: GET + path: /tasks/ + operation_id: list_tasks_tasks__get + tags: + - tasks + capability: work-records-task + owner: repo-manager + disposition: move + notes: Tasks as file/index projection; issue-core may project externally + confidence: initial +- id: route:POST:/tasks/ + kind: route + method: POST + path: /tasks/ + operation_id: create_task_tasks__post + tags: + - tasks + capability: work-records-task + owner: repo-manager + disposition: move + notes: Tasks as file/index projection; issue-core may project externally + confidence: initial +- id: route:POST:/tasks/bulk-status-sync + kind: route + method: POST + path: /tasks/bulk-status-sync + operation_id: bulk_status_sync_tasks_bulk_status_sync_post + tags: + - tasks + capability: work-records-task + owner: repo-manager + disposition: move + notes: Tasks as file/index projection; issue-core may project externally + confidence: initial +- id: route:GET:/tasks/counts + kind: route + method: GET + path: /tasks/counts + operation_id: count_tasks_tasks_counts_get + tags: + - tasks + capability: work-records-task + owner: repo-manager + disposition: move + notes: Tasks as file/index projection; issue-core may project externally + confidence: initial +- id: route:GET:/tasks/{task_id} + kind: route + method: GET + path: /tasks/{task_id} + operation_id: get_task_tasks__task_id__get + tags: + - tasks + capability: work-records-task + owner: repo-manager + disposition: move + notes: Tasks as file/index projection; issue-core may project externally + confidence: initial +- id: route:PATCH:/tasks/{task_id} + kind: route + method: PATCH + path: /tasks/{task_id} + operation_id: update_task_tasks__task_id__patch + tags: + - tasks + capability: work-records-task + owner: repo-manager + disposition: move + notes: Tasks as file/index projection; issue-core may project externally + confidence: initial +- id: route:DELETE:/tasks/{task_id} + kind: route + method: DELETE + path: /tasks/{task_id} + operation_id: cancel_task_tasks__task_id__delete + tags: + - tasks + capability: work-records-task + owner: repo-manager + disposition: move + notes: Tasks as file/index projection; issue-core may project externally + confidence: initial +- id: route:GET:/technical-debt/ + kind: route + method: GET + path: /technical-debt/ + operation_id: list_td_technical_debt__get + tags: + - technical-debt + capability: register-technical-debt + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:POST:/technical-debt/ + kind: route + method: POST + path: /technical-debt/ + operation_id: create_td_technical_debt__post + tags: + - technical-debt + capability: register-technical-debt + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:GET:/technical-debt/{td_id} + kind: route + method: GET + path: /technical-debt/{td_id} + operation_id: get_td_technical_debt__td_id__get + tags: + - technical-debt + capability: register-technical-debt + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:PATCH:/technical-debt/{td_id} + kind: route + method: PATCH + path: /technical-debt/{td_id} + operation_id: update_td_technical_debt__td_id__patch + tags: + - technical-debt + capability: register-technical-debt + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:DELETE:/technical-debt/{td_id} + kind: route + method: DELETE + path: /technical-debt/{td_id} + operation_id: defer_td_technical_debt__td_id__delete + tags: + - technical-debt + capability: register-technical-debt + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:GET:/technical-debt/{td_id}/notes + kind: route + method: GET + path: /technical-debt/{td_id}/notes + operation_id: list_notes_technical_debt__td_id__notes_get + tags: + - technical-debt + capability: register-technical-debt + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:POST:/technical-debt/{td_id}/notes + kind: route + method: POST + path: /technical-debt/{td_id}/notes + operation_id: add_note_technical_debt__td_id__notes_post + tags: + - technical-debt + capability: register-technical-debt + owner: repo-manager + disposition: move + notes: '' + confidence: initial +- id: route:POST:/token-events/ + kind: route + method: POST + path: /token-events/ + operation_id: create_token_event_token_events__post + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:GET:/token-events/ + kind: route + method: GET + path: /token-events/ + operation_id: list_token_events_token_events__get + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:GET:/token-events/aggregate/ + kind: route + method: GET + path: /token-events/aggregate/ + operation_id: get_token_aggregate_token_events_aggregate__get + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:GET:/token-events/by-repo/ + kind: route + method: GET + path: /token-events/by-repo/ + operation_id: get_tokens_by_repo_token_events_by_repo__get + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:GET:/token-events/quality/ + kind: route + method: GET + path: /token-events/quality/ + operation_id: get_token_quality_token_events_quality__get + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:GET:/token-events/summary/ + kind: route + method: GET + path: /token-events/summary/ + operation_id: get_token_summary_token_events_summary__get + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:POST:/token-events/upsert + kind: route + method: POST + path: /token-events/upsert + operation_id: upsert_token_event_token_events_upsert_post + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:PATCH:/token-events/{event_id} + kind: route + method: PATCH + path: /token-events/{event_id} + operation_id: patch_token_event_token_events__event_id__patch + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:GET:/token-events/{event_id} + kind: route + method: GET + path: /token-events/{event_id} + operation_id: get_token_event_token_events__event_id__get + tags: + - token-events + capability: token-telemetry + owner: hub-core + disposition: move + notes: Telemetry kind + confidence: initial +- id: route:GET:/topics/ + kind: route + method: GET + path: /topics/ + operation_id: list_topics_topics__get + tags: + - topics + capability: topic-spine + owner: repo-manager + disposition: replace + notes: Legacy topic spine; classification-derived domain supersedes long-term + confidence: initial +- id: route:POST:/topics/ + kind: route + method: POST + path: /topics/ + operation_id: create_topic_topics__post + tags: + - topics + capability: topic-spine + owner: repo-manager + disposition: replace + notes: Legacy topic spine; classification-derived domain supersedes long-term + confidence: initial +- id: route:GET:/topics/{topic_id} + kind: route + method: GET + path: /topics/{topic_id} + operation_id: get_topic_topics__topic_id__get + tags: + - topics + capability: topic-spine + owner: repo-manager + disposition: replace + notes: Legacy topic spine; classification-derived domain supersedes long-term + confidence: initial +- id: route:PATCH:/topics/{topic_id} + kind: route + method: PATCH + path: /topics/{topic_id} + operation_id: update_topic_topics__topic_id__patch + tags: + - topics + capability: topic-spine + owner: repo-manager + disposition: replace + notes: Legacy topic spine; classification-derived domain supersedes long-term + confidence: initial +- id: route:DELETE:/topics/{topic_id} + kind: route + method: DELETE + path: /topics/{topic_id} + operation_id: archive_topic_topics__topic_id__delete + tags: + - topics + capability: topic-spine + owner: repo-manager + disposition: replace + notes: Legacy topic spine; classification-derived domain supersedes long-term + confidence: initial +- id: route:GET:/tpsc/catalog/ + kind: route + method: GET + path: /tpsc/catalog/ + operation_id: list_catalog_tpsc_catalog__get + tags: + - tpsc + capability: third-party-software-catalog + owner: hub-core + disposition: move + notes: Or specialized compliance service; start as hub projection + confidence: initial +- id: route:POST:/tpsc/catalog/ + kind: route + method: POST + path: /tpsc/catalog/ + operation_id: register_service_tpsc_catalog__post + tags: + - tpsc + capability: third-party-software-catalog + owner: hub-core + disposition: move + notes: Or specialized compliance service; start as hub projection + confidence: initial +- id: route:GET:/tpsc/catalog/{slug} + kind: route + method: GET + path: /tpsc/catalog/{slug} + operation_id: get_catalog_entry_tpsc_catalog__slug__get + tags: + - tpsc + capability: third-party-software-catalog + owner: hub-core + disposition: move + notes: Or specialized compliance service; start as hub projection + confidence: initial +- id: route:POST:/tpsc/ingest/ + kind: route + method: POST + path: /tpsc/ingest/ + operation_id: ingest_tpsc_tpsc_ingest__post + tags: + - tpsc + capability: third-party-software-catalog + owner: hub-core + disposition: move + notes: Or specialized compliance service; start as hub projection + confidence: initial +- id: route:GET:/tpsc/report/gdpr + kind: route + method: GET + path: /tpsc/report/gdpr + operation_id: gdpr_report_tpsc_report_gdpr_get + tags: + - tpsc + capability: third-party-software-catalog + owner: hub-core + disposition: move + notes: Or specialized compliance service; start as hub projection + confidence: initial +- id: route:GET:/tpsc/snapshots/ + kind: route + method: GET + path: /tpsc/snapshots/ + operation_id: list_snapshots_tpsc_snapshots__get + tags: + - tpsc + capability: third-party-software-catalog + owner: hub-core + disposition: move + notes: Or specialized compliance service; start as hub projection + confidence: initial +- id: route:GET:/workplans/ + kind: route + method: GET + path: /workplans/ + operation_id: list_workplans_workplans__get + tags: + - workplans + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:POST:/workplans/ + kind: route + method: POST + path: /workplans/ + operation_id: create_workplan_workplans__post + tags: + - workplans + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:GET:/workplans/index + kind: route + method: GET + path: /workplans/index + operation_id: workplan_index_preferred_workplans_index_get + tags: + - workplans + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:PUT:/workplans/index/bindings + kind: route + method: PUT + path: /workplans/index/bindings + operation_id: sync_workplan_bindings_workplans_index_bindings_put + tags: + - workplans + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:GET:/workplans/{workplan_id} + kind: route + method: GET + path: /workplans/{workplan_id} + operation_id: get_workplan_workplans__workplan_id__get + tags: + - workplans + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:PATCH:/workplans/{workplan_id} + kind: route + method: PATCH + path: /workplans/{workplan_id} + operation_id: update_workplan_workplans__workplan_id__patch + tags: + - workplans + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:DELETE:/workplans/{workplan_id} + kind: route + method: DELETE + path: /workplans/{workplan_id} + operation_id: archive_workplan_workplans__workplan_id__delete + tags: + - workplans + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:POST:/workplans/{workplan_id}/dependencies/ + kind: route + method: POST + path: /workplans/{workplan_id}/dependencies/ + operation_id: create_workplan_dependency_workplans__workplan_id__dependencies__post + tags: + - dependencies + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:GET:/workplans/{workplan_id}/dependencies/ + kind: route + method: GET + path: /workplans/{workplan_id}/dependencies/ + operation_id: list_workplan_dependencies_workplans__workplan_id__dependencies__get + tags: + - dependencies + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:DELETE:/workplans/{workplan_id}/dependencies/{dep_id} + kind: route + method: DELETE + path: /workplans/{workplan_id}/dependencies/{dep_id} + operation_id: delete_workplan_dependency_workplans__workplan_id__dependencies__dep_id__delete + tags: + - dependencies + capability: work-records-workplan + owner: repo-manager + disposition: move + notes: File-backed workplans; repo-manager indexes/reconciles; projection may stay on hub-core + confidence: initial +- id: route:GET:/workstreams/ + kind: route + method: GET + path: /workstreams/ + operation_id: list_workstreams_workstreams__get + tags: + - workstreams + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:POST:/workstreams/ + kind: route + method: POST + path: /workstreams/ + operation_id: create_workstream_workstreams__post + tags: + - workstreams + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:GET:/workstreams/workplan-index + kind: route + method: GET + path: /workstreams/workplan-index + operation_id: workplan_index_workstreams_workplan_index_get + tags: + - workstreams + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:GET:/workstreams/{workstream_id} + kind: route + method: GET + path: /workstreams/{workstream_id} + operation_id: get_workstream_workstreams__workstream_id__get + tags: + - workstreams + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:PATCH:/workstreams/{workstream_id} + kind: route + method: PATCH + path: /workstreams/{workstream_id} + operation_id: update_workstream_workstreams__workstream_id__patch + tags: + - workstreams + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:DELETE:/workstreams/{workstream_id} + kind: route + method: DELETE + path: /workstreams/{workstream_id} + operation_id: archive_workstream_workstreams__workstream_id__delete + tags: + - workstreams + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:POST:/workstreams/{workstream_id}/dependencies/ + kind: route + method: POST + path: /workstreams/{workstream_id}/dependencies/ + operation_id: create_dependency_workstreams__workstream_id__dependencies__post + tags: + - dependencies + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:GET:/workstreams/{workstream_id}/dependencies/ + kind: route + method: GET + path: /workstreams/{workstream_id}/dependencies/ + operation_id: list_dependencies_workstreams__workstream_id__dependencies__get + tags: + - dependencies + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: route:DELETE:/workstreams/{workstream_id}/dependencies/{dep_id} + kind: route + method: DELETE + path: /workstreams/{workstream_id}/dependencies/{dep_id} + operation_id: delete_dependency_workstreams__workstream_id__dependencies__dep_id__delete + tags: + - dependencies + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias surface; meter-gated until zero + confidence: initial +- id: table:agent_messages + kind: dataset + table: agent_messages + module: agent_message + file: api/models/agent_message.py + classes: + - AgentMessage + capability: agent-messaging + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:capability_catalog + kind: dataset + table: capability_catalog + module: capability_catalog + file: api/models/capability_catalog.py + classes: + - CapabilityCatalog + capability: capability-catalog + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:capability_requests + kind: dataset + table: capability_requests + module: capability_request + file: api/models/capability_request.py + classes: + - CapabilityRequest + capability: capability-catalog + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:contributions + kind: dataset + table: contributions + module: contribution + file: api/models/contribution.py + classes: + - ContributionType + - ContributionStatus + - Contribution + capability: upstream-contributions + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:decisions + kind: dataset + table: decisions + module: decision + file: api/models/decision.py + classes: + - DecisionType + - DecisionStatus + - Decision + capability: work-records-decision + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:doi_cache + kind: dataset + table: doi_cache + module: doi_cache + file: api/models/doi_cache.py + classes: + - DOICache + capability: repo-doi + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:domains + kind: dataset + table: domains + module: domain + file: api/models/domain.py + classes: + - Domain + capability: cross-domain-registry + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:domain_goals + kind: dataset + table: domain_goals + module: domain_goal + file: api/models/domain_goal.py + classes: + - DomainGoalStatus + - DomainGoal + capability: domain-goals + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:extension_points + kind: dataset + table: extension_points + module: extension_point + file: api/models/extension_point.py + classes: + - EPStatus + - ExtensionPoint + capability: register-extension-points + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:fabric_graph_imports + kind: dataset + table: fabric_graph_imports + module: fabric_graph + file: api/models/fabric_graph.py + classes: + - FabricGraphImport + - FabricGraphNode + - FabricGraphEdge + capability: fabric-graph + owner: fin-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:fabric_graph_nodes + kind: dataset + table: fabric_graph_nodes + module: fabric_graph + file: api/models/fabric_graph.py + classes: + - FabricGraphImport + - FabricGraphNode + - FabricGraphEdge + capability: fabric-graph + owner: fin-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:fabric_graph_edges + kind: dataset + table: fabric_graph_edges + module: fabric_graph + file: api/models/fabric_graph.py + classes: + - FabricGraphImport + - FabricGraphNode + - FabricGraphEdge + capability: fabric-graph + owner: fin-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:intakes + kind: dataset + table: intakes + module: intake + file: api/models/intake.py + classes: + - IntakeLane + - IntakeStatus + - IntakeOutcome + - Intake + - IntakeNote + capability: work-records-intake + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:intake_notes + kind: dataset + table: intake_notes + module: intake + file: api/models/intake.py + classes: + - IntakeLane + - IntakeStatus + - IntakeOutcome + - Intake + - IntakeNote + capability: work-records-intake + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:interface_changes + kind: dataset + table: interface_changes + module: interface_change + file: api/models/interface_change.py + classes: + - InterfaceChange + capability: interface-change-log + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:legacy_interfaces + kind: dataset + table: legacy_interfaces + module: legacy_meter + file: api/models/legacy_meter.py + classes: + - LegacyInterface + - LegacyInterfaceUsageBucket + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:legacy_interface_usage_buckets + kind: dataset + table: legacy_interface_usage_buckets + module: legacy_meter + file: api/models/legacy_meter.py + classes: + - LegacyInterface + - LegacyInterfaceUsageBucket + capability: legacy-meter + owner: state-hub-until-cutover + disposition: retire + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:managed_repos + kind: dataset + table: managed_repos + module: managed_repo + file: api/models/managed_repo.py + classes: + - ManagedRepo + capability: repository-registry + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:progress_events + kind: dataset + table: progress_events + module: progress_event + file: api/models/progress_event.py + classes: + - ProgressEvent + capability: progress-telemetry + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:repo_goals + kind: dataset + table: repo_goals + module: repo_goal + file: api/models/repo_goal.py + classes: + - RepoGoalStatus + - RepoGoal + capability: repo-goals + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:sbom_entries + kind: dataset + table: sbom_entries + module: sbom_entry + file: api/models/sbom_entry.py + classes: + - Ecosystem + - SBOMEntry + capability: sbom-inventory + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:sbom_snapshots + kind: dataset + table: sbom_snapshots + module: sbom_snapshot + file: api/models/sbom_snapshot.py + classes: + - SBOMSnapshot + capability: sbom-inventory + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:service_catalog + kind: dataset + table: service_catalog + module: service_catalog + file: api/models/service_catalog.py + classes: + - ServiceCatalog + - ServiceThirdParty + - ServiceFirstParty + - ServiceCloud + - ServiceSelfHosted + capability: service-catalog + owner: ops-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:service_third_party + kind: dataset + table: service_third_party + module: service_catalog + file: api/models/service_catalog.py + classes: + - ServiceCatalog + - ServiceThirdParty + - ServiceFirstParty + - ServiceCloud + - ServiceSelfHosted + capability: service-catalog + owner: ops-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:service_first_party + kind: dataset + table: service_first_party + module: service_catalog + file: api/models/service_catalog.py + classes: + - ServiceCatalog + - ServiceThirdParty + - ServiceFirstParty + - ServiceCloud + - ServiceSelfHosted + capability: service-catalog + owner: ops-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:service_cloud + kind: dataset + table: service_cloud + module: service_catalog + file: api/models/service_catalog.py + classes: + - ServiceCatalog + - ServiceThirdParty + - ServiceFirstParty + - ServiceCloud + - ServiceSelfHosted + capability: service-catalog + owner: ops-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:service_self_hosted + kind: dataset + table: service_self_hosted + module: service_catalog + file: api/models/service_catalog.py + classes: + - ServiceCatalog + - ServiceThirdParty + - ServiceFirstParty + - ServiceCloud + - ServiceSelfHosted + capability: service-catalog + owner: ops-hub + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:suggestions + kind: dataset + table: suggestions + module: suggestion + file: api/models/suggestion.py + classes: + - SuggestionStage + - Suggestion + - SuggestionNote + - SuggestionRelevanceBump + capability: suggestion-backlog + owner: archive + disposition: retire + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:suggestion_notes + kind: dataset + table: suggestion_notes + module: suggestion + file: api/models/suggestion.py + classes: + - SuggestionStage + - Suggestion + - SuggestionNote + - SuggestionRelevanceBump + capability: suggestion-backlog + owner: archive + disposition: retire + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:suggestion_relevance_bumps + kind: dataset + table: suggestion_relevance_bumps + module: suggestion + file: api/models/suggestion.py + classes: + - SuggestionStage + - Suggestion + - SuggestionNote + - SuggestionRelevanceBump + capability: suggestion-backlog + owner: archive + disposition: retire + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:tasks + kind: dataset + table: tasks + module: task + file: api/models/task.py + classes: + - TaskStatus + - TaskPriority + - Task + capability: work-records-task + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:td_notes + kind: dataset + table: td_notes + module: technical_debt + file: api/models/technical_debt.py + classes: + - TDStatus + - TDNote + - TechnicalDebt + capability: register-technical-debt + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:technical_debt + kind: dataset + table: technical_debt + module: technical_debt + file: api/models/technical_debt.py + classes: + - TDStatus + - TDNote + - TechnicalDebt + capability: register-technical-debt + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:token_events + kind: dataset + table: token_events + module: token_event + file: api/models/token_event.py + classes: + - TokenEvent + capability: token-telemetry + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:topics + kind: dataset + table: topics + module: topic + file: api/models/topic.py + classes: + - TopicStatus + - Topic + capability: topic-spine + owner: repo-manager + disposition: replace + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:tpsc_catalog + kind: dataset + table: tpsc_catalog + module: tpsc + file: api/models/tpsc.py + classes: + - TPSCCatalog + - TPSCSnapshot + - TPSCEntry + capability: third-party-software-catalog + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:tpsc_snapshots + kind: dataset + table: tpsc_snapshots + module: tpsc + file: api/models/tpsc.py + classes: + - TPSCCatalog + - TPSCSnapshot + - TPSCEntry + capability: third-party-software-catalog + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:tpsc_entries + kind: dataset + table: tpsc_entries + module: tpsc + file: api/models/tpsc.py + classes: + - TPSCCatalog + - TPSCSnapshot + - TPSCEntry + capability: third-party-software-catalog + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:workplans + kind: dataset + table: workplans + module: workplan + file: api/models/workplan.py + classes: + - Workplan + capability: work-records-workplan + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:workplan_dependencies + kind: dataset + table: workplan_dependencies + module: workplan_dependency + file: api/models/workplan_dependency.py + classes: + - WorkplanDependency + capability: work-records-deps + owner: repo-manager + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: table:workplan_launch_requests + kind: dataset + table: workplan_launch_requests + module: workplan_launch_request + file: api/models/workplan_launch_request.py + classes: + - WorkplanLaunchRequest + capability: workplan-execution-queue + owner: activity-core + disposition: replace + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: model-module:workstream + kind: model-compat + module: workstream + file: api/models/workstream.py + capability: work-records-workplan-legacy + owner: archive + disposition: retire + confidence: initial + notes: Compat shim module; no independent table +- id: model-module:workstream_dependency + kind: model-compat + module: workstream_dependency + file: api/models/workstream_dependency.py + capability: work-records-workplan-legacy + owner: archive + disposition: retire + confidence: initial + notes: Compat shim module; no independent table +- id: table:write_idempotency_keys + kind: dataset + table: write_idempotency_keys + module: write_idempotency_key + file: api/models/write_idempotency_key.py + classes: + - WriteIdempotencyKey + capability: write-idempotency + owner: hub-core + disposition: move + confidence: initial + notes: SQLAlchemy model; migration history under state-hub/migrations/versions +- id: mcp:activate_domain_goal + kind: mcp_tool + name: activate_domain_goal + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:add_progress_event + kind: mcp_tool + name: add_progress_event + capability: progress-telemetry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:advance_workstation + kind: mcp_tool + name: advance_workstation + capability: task-flow-engine + owner: activity-core + disposition: replace + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:archive_domain + kind: mcp_tool + name: archive_domain + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:bulk_update_task_statuses + kind: mcp_tool + name: bulk_update_task_statuses + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:bump_suggestion_relevance + kind: mcp_tool + name: bump_suggestion_relevance + capability: suggestion-backlog + owner: archive + disposition: retire + notes: Legacy; use intake + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:check_repo_consistency + kind: mcp_tool + name: check_repo_consistency + capability: repository-registry + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:clear_human_flag + kind: mcp_tool + name: clear_human_flag + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:close_intake + kind: mcp_tool + name: close_intake + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_dependency + kind: mcp_tool + name: create_dependency + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Legacy alias + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_domain + kind: mcp_tool + name: create_domain + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_domain_goal + kind: mcp_tool + name: create_domain_goal + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_intake + kind: mcp_tool + name: create_intake + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_repo_goal + kind: mcp_tool + name: create_repo_goal + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_suggestion + kind: mcp_tool + name: create_suggestion + capability: suggestion-backlog + owner: archive + disposition: retire + notes: Legacy; use intake + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_task + kind: mcp_tool + name: create_task + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_topic + kind: mcp_tool + name: create_topic + capability: topic-spine + owner: repo-manager + disposition: replace + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_workplan + kind: mcp_tool + name: create_workplan + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:create_workplan_dependency + kind: mcp_tool + name: create_workplan_dependency + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:decline_suggestion + kind: mcp_tool + name: decline_suggestion + capability: suggestion-backlog + owner: archive + disposition: retire + notes: Legacy; use intake + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:dispute_capability_routing + kind: mcp_tool + name: dispute_capability_routing + capability: capability-catalog + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:flag_for_human + kind: mcp_tool + name: flag_for_human + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_capability_profile + kind: mcp_tool + name: get_capability_profile + capability: capability-catalog + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_contributions + kind: mcp_tool + name: get_contributions + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_domain_goals + kind: mcp_tool + name: get_domain_goals + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_domain_summary + kind: mcp_tool + name: get_domain_summary + capability: state-projections + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_flow_state + kind: mcp_tool + name: get_flow_state + capability: task-flow-engine + owner: activity-core + disposition: replace + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_kaizen_agent + kind: mcp_tool + name: get_kaizen_agent + capability: kaizen-agents + owner: the-custodian + disposition: move + notes: Agent personas live in custodian; hub indexes + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_licence_report + kind: mcp_tool + name: get_licence_report + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_messages + kind: mcp_tool + name: get_messages + capability: agent-messaging + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_next_steps + kind: mcp_tool + name: get_next_steps + capability: state-projections + owner: hub-core + disposition: replace + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_recent_progress + kind: mcp_tool + name: get_recent_progress + capability: progress-telemetry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_repo_dispatch + kind: mcp_tool + name: get_repo_dispatch + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_repo_goals + kind: mcp_tool + name: get_repo_goals + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_state_summary + kind: mcp_tool + name: get_state_summary + capability: state-projections + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_token_summary + kind: mcp_tool + name: get_token_summary + capability: token-telemetry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:get_topic + kind: mcp_tool + name: get_topic + capability: topic-spine + owner: repo-manager + disposition: replace + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:ingest_sbom_tool + kind: mcp_tool + name: ingest_sbom_tool + capability: sbom-inventory + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:ingest_tpsc_tool + kind: mcp_tool + name: ingest_tpsc_tool + capability: third-party-software-catalog + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_blocked_tasks + kind: mcp_tool + name: list_blocked_tasks + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_dependencies + kind: mcp_tool + name: list_dependencies + capability: work-records-deps + owner: repo-manager + disposition: move + notes: Workplan dependency graph + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_domain_repos + kind: mcp_tool + name: list_domain_repos + capability: repository-registry + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_domains + kind: mcp_tool + name: list_domains + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_extension_points + kind: mcp_tool + name: list_extension_points + capability: register-entries + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_flow_definitions + kind: mcp_tool + name: list_flow_definitions + capability: task-flow-engine + owner: activity-core + disposition: replace + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_human_interventions + kind: mcp_tool + name: list_human_interventions + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_intakes + kind: mcp_tool + name: list_intakes + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_interface_changes + kind: mcp_tool + name: list_interface_changes + capability: interface-change-log + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_kaizen_agents + kind: mcp_tool + name: list_kaizen_agents + capability: kaizen-agents + owner: the-custodian + disposition: move + notes: Agent personas live in custodian; hub indexes + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_pending_decisions + kind: mcp_tool + name: list_pending_decisions + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_repos_by_classification + kind: mcp_tool + name: list_repos_by_classification + capability: repository-registry + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_suggestions + kind: mcp_tool + name: list_suggestions + capability: suggestion-backlog + owner: archive + disposition: retire + notes: Legacy; use intake + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_tasks + kind: mcp_tool + name: list_tasks + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_technical_debt + kind: mcp_tool + name: list_technical_debt + capability: register-entries + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:list_workplans + kind: mcp_tool + name: list_workplans + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:mark_message_read + kind: mcp_tool + name: mark_message_read + capability: agent-messaging + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:patch_capability_request + kind: mcp_tool + name: patch_capability_request + capability: capability-catalog + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:promote_suggestion_to_task + kind: mcp_tool + name: promote_suggestion_to_task + capability: suggestion-backlog + owner: archive + disposition: retire + notes: Legacy; use intake + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:publish_interface_change + kind: mcp_tool + name: publish_interface_change + capability: interface-change-log + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:record_adhoc_task + kind: mcp_tool + name: record_adhoc_task + capability: token-telemetry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:record_decision + kind: mcp_tool + name: record_decision + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:record_interactive_task + kind: mcp_tool + name: record_interactive_task + capability: token-telemetry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:record_token_event + kind: mcp_tool + name: record_token_event + capability: token-telemetry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:register_contribution + kind: mcp_tool + name: register_contribution + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:register_extension_point + kind: mcp_tool + name: register_extension_point + capability: register-entries + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:register_interface_change + kind: mcp_tool + name: register_interface_change + capability: interface-change-log + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:register_repo + kind: mcp_tool + name: register_repo + capability: repository-registry + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:register_repo_from_classification + kind: mcp_tool + name: register_repo_from_classification + capability: repository-registry + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:register_service + kind: mcp_tool + name: register_service + capability: service-catalog + owner: ops-hub + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:register_technical_debt + kind: mcp_tool + name: register_technical_debt + capability: register-entries + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:rename_domain + kind: mcp_tool + name: rename_domain + capability: cross-domain-registry + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:reply_to_message + kind: mcp_tool + name: reply_to_message + capability: agent-messaging + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:request_capability + kind: mcp_tool + name: request_capability + capability: capability-catalog + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:reroute_capability_request + kind: mcp_tool + name: reroute_capability_request + capability: capability-catalog + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:resolve_decision + kind: mcp_tool + name: resolve_decision + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:resolve_interface_change + kind: mcp_tool + name: resolve_interface_change + capability: interface-change-log + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:route_intake + kind: mcp_tool + name: route_intake + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:send_message + kind: mcp_tool + name: send_message + capability: agent-messaging + owner: hub-core + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_contribution_status + kind: mcp_tool + name: update_contribution_status + capability: upstream-contributions + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_ep_status + kind: mcp_tool + name: update_ep_status + capability: register-entries + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_repo_goal + kind: mcp_tool + name: update_repo_goal + capability: repo-goals + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_repo_path + kind: mcp_tool + name: update_repo_path + capability: repository-registry + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_task_status + kind: mcp_tool + name: update_task_status + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_td_status + kind: mcp_tool + name: update_td_status + capability: register-entries + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_workplan + kind: mcp_tool + name: update_workplan + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:update_workplan_status + kind: mcp_tool + name: update_workplan_status + capability: work-records + owner: repo-manager + disposition: move + notes: Index/projection; file authority remains in repos + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:validate_repo_adr + kind: mcp_tool + name: validate_repo_adr + capability: repository-registry + owner: repo-manager + disposition: move + notes: '' + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: mcp:vet_suggestion + kind: mcp_tool + name: vet_suggestion + capability: suggestion-backlog + owner: archive + disposition: retire + notes: Legacy; use intake + confidence: initial + source: mcp_server/server.py @mcp.tool (+ inbox tools) +- id: dash:/capability-requests + kind: dashboard_view + path: /capability-requests + source_file: capability-requests.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/contributions + kind: dashboard_view + path: /contributions + source_file: contributions.md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/decisions + kind: dashboard_view + path: /decisions + source_file: decisions.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/dependencies + kind: dashboard_view + path: /dependencies + source_file: dependencies.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Dependency graph UI over workplan deps +- id: dash:/domains/recently-on-scope + kind: dashboard_view + path: /domains/recently-on-scope + source_file: domains/recently-on-scope.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/domains + kind: dashboard_view + path: /domains + source_file: domains.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/extensions + kind: dashboard_view + path: /extensions + source_file: extensions.md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/goals + kind: dashboard_view + path: /goals + source_file: goals.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/inbox + kind: dashboard_view + path: /inbox + source_file: inbox.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/index + kind: dashboard_view + path: /index + source_file: index.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/interface-changes + kind: dashboard_view + path: /interface-changes + source_file: interface-changes.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/interventions + kind: dashboard_view + path: /interventions + source_file: interventions.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/policy/intake-doc + kind: dashboard_view + path: /policy/intake-doc + source_file: policy/intake-doc.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/policy/repo-doi + kind: dashboard_view + path: /policy/repo-doi + source_file: policy/repo-doi.md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/policy/service-dom + kind: dashboard_view + path: /policy/service-dom + source_file: policy/service-dom.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/policy/work-item-dor + kind: dashboard_view + path: /policy/work-item-dor + source_file: policy/work-item-dor.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/policy/workstream-dod + kind: dashboard_view + path: /policy/workstream-dod + source_file: policy/workstream-dod.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/progress + kind: dashboard_view + path: /progress + source_file: progress.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/reference + kind: dashboard_view + path: /reference + source_file: reference.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/repo-sync + kind: dashboard_view + path: /repo-sync + source_file: repo-sync.md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/repos/* + kind: dashboard_view + path: /repos/* + source_file: repos/[slug].md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/repos + kind: dashboard_view + path: /repos + source_file: repos.md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/sbom + kind: dashboard_view + path: /sbom + source_file: sbom.md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/services/first-party + kind: dashboard_view + path: /services/first-party + source_file: services/first-party.md + capability: service-catalog-ui + owner: ops-hub + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/services/self-hosted + kind: dashboard_view + path: /services/self-hosted + source_file: services/self-hosted.md + capability: service-catalog-ui + owner: ops-hub + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/suggestions + kind: dashboard_view + path: /suggestions + source_file: suggestions.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/tasks/* + kind: dashboard_view + path: /tasks/* + source_file: tasks/[id].md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/tasks + kind: dashboard_view + path: /tasks + source_file: tasks.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/techdept + kind: dashboard_view + path: /techdept + source_file: techdept.md + capability: repo-ui + owner: repo-manager + disposition: move + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/todo + kind: dashboard_view + path: /todo + source_file: todo.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/token-cost + kind: dashboard_view + path: /token-cost + source_file: token-cost.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/token-events/* + kind: dashboard_view + path: /token-events/* + source_file: token-events/[id].md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/tools + kind: dashboard_view + path: /tools + source_file: tools.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/tpsc + kind: dashboard_view + path: /tpsc + source_file: tpsc.md + capability: hub-projection-ui + owner: hub-core + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/ui-feedback + kind: dashboard_view + path: /ui-feedback + source_file: ui-feedback.md + capability: dashboard-meta + owner: state-hub-until-cutover + disposition: retire + confidence: medium + notes: Dashboard feedback scratch; not a product capability +- id: dash:/workplan-queue + kind: dashboard_view + path: /workplan-queue + source_file: workplan-queue.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/workstreams/* + kind: dashboard_view + path: /workstreams/* + source_file: workstreams/[id].md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/workstreams + kind: dashboard_view + path: /workstreams + source_file: workstreams.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: dash:/wsjf-triage + kind: dashboard_view + path: /wsjf-triage + source_file: wsjf-triage.md + capability: work-coordination-ui + owner: repo-manager + disposition: replace + confidence: initial + notes: Observable Framework page; consumer of REST projections +- id: migration:0001_initial_schema.py + kind: migration + file: migrations/versions/0001_initial_schema.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:0b547c153153_add_workstream_dependencies.py + kind: migration + file: migrations/versions/0b547c153153_add_workstream_dependencies.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:5733434addf4_merge_task_status_canon_and_legacy_.py + kind: migration + file: migrations/versions/5733434addf4_merge_task_status_canon_and_legacy_.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:a3b4c5d6e7f8_gems_pass3_sbom_snapshot.py + kind: migration + file: migrations/versions/a3b4c5d6e7f8_gems_pass3_sbom_snapshot.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:a3f1c2d4e5b6_add_extension_points_and_technical_debt.py + kind: migration + file: migrations/versions/a3f1c2d4e5b6_add_extension_points_and_technical_debt.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:a4v5w6x7y8z0_legacy_meter.py + kind: migration + file: migrations/versions/a4v5w6x7y8z0_legacy_meter.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:a4v5w6x7y8z9_task_status_canon.py + kind: migration + file: migrations/versions/a4v5w6x7y8z9_task_status_canon.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:a7c3e9f1b4d2_intake_work_record_entity.py + kind: migration + file: migrations/versions/a7c3e9f1b4d2_intake_work_record_entity.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:b1c2d3e4f5a6_v0_5_dynamic_domains_and_managed_repos.py + kind: migration + file: migrations/versions/b1c2d3e4f5a6_v0_5_dynamic_domains_and_managed_repos.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:b4c5d6e7f8a9_add_needs_human.py + kind: migration + file: migrations/versions/b4c5d6e7f8a9_add_needs_human.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:c2d3e4f5a6b7_v0_3_contributions.py + kind: migration + file: migrations/versions/c2d3e4f5a6b7_v0_3_contributions.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:c5d6e7f8a9b0_add_goals.py + kind: migration + file: migrations/versions/c5d6e7f8a9b0_add_goals.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:c7d8e9f0a1b2_service_catalog.py + kind: migration + file: migrations/versions/c7d8e9f0a1b2_service_catalog.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:d3e4f5a6b7c8_v0_3_sbom_entries.py + kind: migration + file: migrations/versions/d3e4f5a6b7c8_v0_3_sbom_entries.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:d6e7f8a9b0c1_sbom_ecosystem_expand.py + kind: migration + file: migrations/versions/d6e7f8a9b0c1_sbom_ecosystem_expand.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:d8e9f0a1b2c3_repo_anchored_classification_spine.py + kind: migration + file: migrations/versions/d8e9f0a1b2c3_repo_anchored_classification_spine.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:e1f2a3b4c5d6_gems_pass1_domain_fk.py + kind: migration + file: migrations/versions/e1f2a3b4c5d6_gems_pass1_domain_fk.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:e2f3a4b5c6d7_add_last_state_synced_at_to_repos.py + kind: migration + file: migrations/versions/e2f3a4b5c6d7_add_last_state_synced_at_to_repos.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:e9f0a1b2c3d4_write_idempotency_keys.py + kind: migration + file: migrations/versions/e9f0a1b2c3d4_write_idempotency_keys.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:f0a1b2c3d4e5_suggestions.py + kind: migration + file: migrations/versions/f0a1b2c3d4e5_suggestions.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:f1a2b3c4d5e6_workplan_file_backing.py + kind: migration + file: migrations/versions/f1a2b3c4d5e6_workplan_file_backing.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:f2a3b4c5d6e7_gems_pass2_workstream_repo_id.py + kind: migration + file: migrations/versions/f2a3b4c5d6e7_gems_pass2_workstream_repo_id.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:f3a4b5c6d7e8_add_agent_messages.py + kind: migration + file: migrations/versions/f3a4b5c6d7e8_add_agent_messages.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:g4b5c6d7e8f9_add_host_paths_to_repos.py + kind: migration + file: migrations/versions/g4b5c6d7e8f9_add_host_paths_to_repos.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:h5c6d7e8f9a0_suggestion_workflow.py + kind: migration + file: migrations/versions/h5c6d7e8f9a0_suggestion_workflow.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:i6d7e8f9a0b1_capability_requests.py + kind: migration + file: migrations/versions/i6d7e8f9a0b1_capability_requests.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:j7e8f9a0b1c2_tpsc.py + kind: migration + file: migrations/versions/j7e8f9a0b1c2_tpsc.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:k8f9a0b1c2d3_doi_cache.py + kind: migration + file: migrations/versions/k8f9a0b1c2d3_doi_cache.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:l9g0h1i2j3k4_capability_request_routing_note.py + kind: migration + file: migrations/versions/l9g0h1i2j3k4_capability_request_routing_note.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:m0h1i2j3k4l5_capability_request_dispute.py + kind: migration + file: migrations/versions/m0h1i2j3k4l5_capability_request_dispute.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:n1i2j3k4l5m6_add_git_fingerprint_to_repos.py + kind: migration + file: migrations/versions/n1i2j3k4l5m6_add_git_fingerprint_to_repos.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:o2j3k4l5m6n7_add_token_events.py + kind: migration + file: migrations/versions/o2j3k4l5m6n7_add_token_events.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:p3k4l5m6n7o8_add_repo_id_to_capability_catalog.py + kind: migration + file: migrations/versions/p3k4l5m6n7o8_add_repo_id_to_capability_catalog.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:q4l5m6n7o8p9_add_interface_changes.py + kind: migration + file: migrations/versions/q4l5m6n7o8p9_add_interface_changes.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:r5m6n7o8p9q0_workstream_status_string.py + kind: migration + file: migrations/versions/r5m6n7o8p9q0_workstream_status_string.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:s6n7o8p9q0r1_workstream_planning_metadata.py + kind: migration + file: migrations/versions/s6n7o8p9q0r1_workstream_planning_metadata.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:t7o8p9q0r1s2_perf_indexes.py + kind: migration + file: migrations/versions/t7o8p9q0r1s2_perf_indexes.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:u8p9q0r1s2t3_workstream_canonical_states.py + kind: migration + file: migrations/versions/u8p9q0r1s2t3_workstream_canonical_states.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:v9q0r1s2t3u4_token_event_provenance.py + kind: migration + file: migrations/versions/v9q0r1s2t3u4_token_event_provenance.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:w0r1s2t3u4v5_token_event_legacy_source_ids.py + kind: migration + file: migrations/versions/w0r1s2t3u4v5_token_event_legacy_source_ids.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:x1s2t3u4v5w6_workplan_execution_queue.py + kind: migration + file: migrations/versions/x1s2t3u4v5w6_workplan_execution_queue.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:y2t3u4v5w6x7_fabric_graph_read_model.py + kind: migration + file: migrations/versions/y2t3u4v5w6x7_fabric_graph_read_model.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: migration:z3u4v5w6x7y8_financial_fabric_vnext.py + kind: migration + file: migrations/versions/z3u4v5w6x7y8_financial_fabric_vnext.py + capability: schema-history + owner: state-hub-until-cutover + disposition: keep + notes: Historical schema evidence; final dump archived at retirement; new schema owners evolve their + own migrations after extract + confidence: initial +- id: job:consistency-sweep-remote-all + kind: job + name: consistency_sweep_remote_all + trigger: activity-core cron ~15m (Railiance01) → POST /consistency/sweep/remote-all + capability: repo-consistency + owner: activity-core + disposition: move + notes: Executor stays activity-core; reconciliation engine moves with repo-manager + confidence: high + source: docs/cron-migration.md +- id: job:cleanup-stale-tasks + kind: job + name: cleanup_stale_tasks + trigger: manual/daily cron make cleanup-stale + capability: work-records-task + owner: activity-core + disposition: replace + notes: Migrate to ActivityDefinition per docs/cron-migration.md + confidence: high + source: docs/cron-migration.md +- id: job:summary-cache-refresh + kind: job + name: summary_cache_background_refresh + trigger: in-process asyncio on /state/summary + capability: state-projections + owner: hub-core + disposition: replace + notes: Becomes hub-core projection cache + confidence: initial + source: api/services/summary_cache.py +- id: job:workplan-index-refresh + kind: job + name: workplan_index_background_refresh + trigger: in-process on workplan mutations + capability: work-records-workplan + owner: repo-manager + disposition: move + confidence: initial + source: api/routers/workstreams.py +- id: job:nats-event-publish + kind: job + name: nats_event_publish + trigger: fire-and-forget on selected writes + capability: event-bus + owner: hub-core + disposition: move + notes: NATS subjects documented in docs/nats-event-subjects.md + confidence: initial + source: api/events/nats_publisher.py +- id: caller:agents-mcp + kind: caller + name: Agent MCP clients (Claude/Codex/Grok) + capability: agent-integration + owner: hub-core + disposition: replace + notes: MCP tool surface redistributed to new owners with compatibility adapters + confidence: high + source: mcp_server/TOOLS.md +- id: caller:dashboard-observable + kind: caller + name: Observable dashboard + capability: dashboard + owner: hub-core + disposition: replace + notes: Consumes REST projections + confidence: high + source: dashboard/ +- id: caller:activity-core + kind: caller + name: activity-core (sweep, sinks, context resolvers) + capability: ops-automation + owner: activity-core + disposition: keep + notes: Retains executor role; target APIs change to repo-manager/hub-core + confidence: high + source: docs/evidence/workstream-caller-inventory-20260709.md +- id: caller:ops-bridge + kind: caller + name: ops-bridge tunnels + capability: connectivity + owner: ops-bridge + disposition: keep + notes: Transport only; retarget ports/services at cutover + confidence: high + source: docs/cluster-operating-model.md +- id: caller:fix-consistency-cli + kind: caller + name: statehub fix-consistency / scripts/consistency_check.py + capability: repo-consistency + owner: repo-manager + disposition: move + confidence: high + source: Makefile, scripts/ +- id: caller:custodian-cli + kind: caller + name: custodian_cli / statehub register + capability: repo-onboarding + owner: repo-manager + disposition: move + confidence: high + source: custodian_cli.py, statehub_register.py +- id: caller:wise-validator + kind: caller + name: wise-validator reporter + capability: progress-telemetry + owner: hub-core + disposition: replace + notes: POST /progress/; update base URL/contract + confidence: medium + source: docs/evidence/workstream-caller-inventory-20260709.md +- id: caller:agentic-resources + kind: caller + name: agentic-resources session_memory + capability: work-records-decision + owner: repo-manager + disposition: replace + confidence: medium + source: docs/evidence/workstream-caller-inventory-20260709.md +- id: caller:remote-workers + kind: caller + name: Remote workers (Railiance01, CoulombCore) via tunnel :18000/:18001 + capability: agent-integration + owner: hub-core + disposition: replace + confidence: high + source: docs/cluster-operating-model.md +- id: caller:legacy-workstream-http + kind: caller + name: Legacy /workstreams HTTP clients + capability: work-records-workplan-legacy + owner: archive + disposition: retire + notes: Meter-gated; zero then remove + confidence: high + source: docs/evidence/workstream-caller-inventory-20260709.md +- id: dep:postgres-cnpg + kind: ops_dependency + name: PostgreSQL CNPG state-hub-db + role: primary datastore + owner: ops-hub + disposition: replace + notes: Data migrates to owner DBs or consolidated hub DB per cutover plan + confidence: high + source: docs/cluster-operating-model.md +- id: dep:k3s-coulombcore + kind: ops_dependency + name: coulombcore-k3s Deployment state-hub + role: API runtime + owner: ops-hub + disposition: replace + notes: Workloads replaced by hub-core/repo-manager deployments + confidence: high + source: docs/cluster-operating-model.md +- id: dep:forgejo-image + kind: ops_dependency + name: forgejo.coulomb.social/coulomb/state-hub image + role: container image + owner: state-hub-until-cutover + disposition: retire + confidence: high + source: deploy/ +- id: dep:ops-bridge-tunnels + kind: ops_dependency + name: ops-bridge state-hub-primary / MCP tunnels + role: private access + owner: ops-bridge + disposition: keep + notes: Retarget to new services + confidence: high + source: docs/cluster-operating-model.md +- id: dep:nats + kind: ops_dependency + name: NATS event bus + role: async events + owner: hub-core + disposition: move + notes: docs/nats-event-subjects.md + confidence: medium + source: api/events/nats_publisher.py +- id: dep:activity-core-scheduler + kind: ops_dependency + name: activity-core scheduled sweeps + role: job executor + owner: activity-core + disposition: keep + confidence: high + source: docs/cron-migration.md +- id: dep:wsl2-docker-postgres-fallback + kind: ops_dependency + name: WSL2 docker postgres fallback + role: local/rollback DB + owner: state-hub-until-cutover + disposition: retire + notes: Retained for rollback during migration window + confidence: high + source: docs/cluster-operating-model.md +- id: dep:hub-core-library + kind: ops_dependency + name: hub-core Python package (router factories) + role: shared library + owner: hub-core + disposition: keep + notes: Surviving framework; absorb state-hub host role over time + confidence: high + source: SCOPE.md, docs/hub-ecosystem-route-audit.md +- id: dep:mcp-http-sse + kind: ops_dependency + name: MCP SSE :8001 / remote :18001 + role: agent tool transport + owner: hub-core + disposition: replace + confidence: high + source: Makefile diff --git a/workplans/SHR-WP-0001-foundation.md b/workplans/SHR-WP-0001-foundation.md index 536400a..67c5827 100644 --- a/workplans/SHR-WP-0001-foundation.md +++ b/workplans/SHR-WP-0001-foundation.md @@ -46,7 +46,7 @@ T05 maps implementation streams (do not invent `INTENT.md` on `prj-` repos). ```task id: SHR-WP-0001-T02 -status: todo +status: done priority: high state_hub_task_id: "f19351e4-c922-417c-bcc7-746a2cd7fe52" ``` @@ -56,6 +56,14 @@ jobs, MCP tools, dashboard views, datasets, callers, and operational dependencies. Give every item an initial owner and keep/move/replace/retire disposition. +**Result (2026-08-09):** Initial inventory `SHR-INV-0001` under `inventory/` +(425 items). Master file `inventory/state-hub-disposition.yaml`; rollup +`inventory/capabilities.yaml` (51 capabilities); split views for routes, +datasets, MCP tools, dashboard, jobs/callers/ops. Dispositions initial and +revisable via T03/T04/T05. Baseline orientation counts from live summary +(topics 14, workplans 868, tasks 5138, decisions 89). Open review points in +`inventory/README.md`. + ## Define the information architecture ```task @@ -112,7 +120,7 @@ in `GOAL.md` into executable or evidence-backed gates. ## Acceptance - [x] The `prj-` flavor has a durable canonical definition. -- [ ] State Hub has a complete disposition inventory. +- [x] State Hub has a complete disposition inventory. - [ ] The information and extension architectures are reviewable. - [ ] Each implementation stream has one local owner and workplan. - [ ] Migration and retirement gates have measurable evidence requirements.