Date: 2026-09-23
Program: #713
Architecture: ../architecture/API_CONTROL_PLANE_ARCHITECTURE.md
This document is the claimable execution map for API professionalization.
| Issue | Priority | Outcome | Hard dependencies | Parallel with | Exit evidence |
|---|---|---|---|---|---|
| #735 | P0 | current local API converged/release-qualified | PR #658 + current main | planning only | exact-head green gates, 0 behind main |
| #736 | P0 | conventions/version/deprecation frozen | none after planning review | #735 | accepted spec + ADR/index links |
| #737 | P0 | full schema catalog + compatibility CI | #736 | #738 | schema/example/runtime validation |
| #738 | P0 | unified service/API ownership | #736 | #737 | architecture map + no duplicate canonical objects |
| #739 | P0 | resource-oriented read model | #735 #736 #737 #738 | #741 after contracts | project/run/work/evidence reconstruction |
| #740 | P0 | immutable Human Decision API | #736 #737 #738 #616 #670 | #739 | idempotent digest-bound decision record |
| #741 | P1 | canonical events + resumable SSE | #736 #737 #738 | #739 | historical cursor + resumable stream |
| #742 | P1 | limits/backpressure/drain | #677 | #743 #744 | overload/slow-client/drain tests |
| #743 | P1 | network security profile | #670 #736 #738 | #742 #744 | scope/auth/proxy/CORS/CSRF matrix |
| #744 | P1 | metrics/tracing/SLO | #677 | #742 #743 | bounded telemetry + SLO evidence |
| #750 | P1 | durable storage profiles/migrations/retention/recovery | #736 #738; composes #616 #597 | #742 #743 #744 | restart/reconstruction + corruption + backup/restore evidence |
| #745 | P1 | qualification suite | #736 #737 | starts early, completes late | contract/fuzz/load/security report |
| #746 | P2 | official clients + API docs | stable read contracts | #745 later | Python + typed web client examples |
| #747 | P2 | v1 beta release | declared beta-scope issues | none at final gate | tag + qualification report |
These are dependencies, not child replacements:
| Existing issue | API program dependency |
|---|---|
| #677 | reusable HTTP service runtime |
| #670 | trusted actor + authorization semantics |
| #616 | restart-safe local metadata/idempotency |
| #597 | GitHub-native durable run/event/evidence ledger |
| #598 | GitHub-first multi-user identity/role/authority profile |
| #607 | GitHub governance and secret-access baseline |
| #580 | connector CLI/HTTP surface |
| #570 | connector-control program |
| #682 | end-to-end Product Spine |
| #572 | Control Tower UX |
| #667 | enterprise security/reliability program |
Work:
Do not add new API domains before this wave is stable.
Work:
Goal:
Every later endpoint starts from a testable contract.
Work:
Goal:
A read-only Control Tower/SDK can observe the product without direct repository file parsing.
Prerequisites:
Work:
Goal:
Record human/governance decisions against immutable evidence with no integration execution.
Work in parallel:
Goal:
A production transport can run behind a reviewed identity/proxy/storage boundary.
Work:
Goal:
Application services use one persistence boundary across local, GitHub-first, and network profiles without inventing duplicate run/evidence/decision models.
Work:
Goal:
External contributors integrate against supported contracts, not server internals.
Work:
No beta tag before the declared beta scope has exact-source qualification.
#735
|
#736
|\
| +--> #737 ----+
| |
+----> #738 ----+----> #739 ----+
\ |
+--> #741 ----+--> #745 --> #746 --> #747
/
#616 + #670 ------+----> #740 ----+
Operational parallel path:
#677 ----> #742
| |
+------> #744 ----+
+--> #745
#670 + #598 + #607 + #738 -> #743 -+
A child implementation PR should normally close one bounded acceptance slice, not an entire multi-month issue.
Good examples:
Avoid PRs that simultaneously introduce:
Those changes are difficult to independently verify and create convergence debt.
The issue is implementation-ready only when:
If any item is unknown, improve the issue/specification before implementation.
Checkbox completion is evidence-based.
An issue is not complete because code exists on a branch. It closes only when its acceptance artifacts are integrated and reproducible from the canonical repository state.
Storage profile path:
#616 local metadata ----+
|
#597 GitHub ledger -----+----> #750 storage profiles ----> #745
|
#738 architecture ------+