Copy architecture docs, ADRs, storage domain specs, research, reviews, and 56 storage architecture tasks from the alkhub_ts monorepo. Adapt for standalone @alkdev/hub repo structure (src/ not packages/hub/). Sanitize all sensitive information: - Replace private IPs (10.0.0.1) with localhost defaults - Remove internal server hostnames (dev1, ns528096) - Replace /workspace/ private paths with npm package references - Remove hardcoded credentials from examples - Rewrite infrastructure.md without private network details Add Deno project scaffolding: deno.json (pinned deps), .gitignore, AGENTS.md, entry point. Migrate existing code stubs (crypto, config types, logger) with updated import paths.
4.7 KiB
id, name, status, depends_on, scope, risk, impact, level
| id | name | status | depends_on | scope | risk | impact | level | |||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| review-operations-schema-stabilization | Review Operations Schema Split and Storage Spec Stabilization Gate | completed |
|
broad | high | project | review |
Description
Final review of the storage spec stabilization gate — verifying that the spec is truly implementable and that cross-references are consistent. This covers:
1. Operations Schema (Definitions + Registrations Split)
The D3 decision split operation_specs into two tables. This is the only broad-scope, high-risk task in the set. It changes the fundamental data model for how the hub routes calls. The review must verify consistency across ALL docs that reference operations:
spokes.md— table schemas foroperationsandoperation_registrationscall-graph.md— references to operation routingcoordination.md— references to spoke operationstable-reference.md— FK entries, indexes, status enums- ADR-006 — must reflect the definitions/registrations split
2. Storage Spec Stabilization Gate
The storage-spec-stabilization task is THE gate. Its acceptance criteria are:
- All dependent tasks are completed ✓
- Cross-references between completed tasks are consistent (needs verification)
- No remaining contradictions in the covered domain (needs verification)
All 26 dependent tasks are marked completed but none have Summary sections filled. The review must verify that the spec docs are in a state where implementation can begin without ambiguity.
3. Doc Status
All architecture docs still have status: draft. If the spec is truly stabilized, these should be promoted. The review should confirm readiness for status: stable.
Acceptance Criteria
operationstable schema inspokes.mdis complete and consistent withtable-reference.mdoperation_registrationstable schema is complete with polymorphic FK documented- ADR-006 reflects the definitions/registrations split (or is superseded)
- All
operation_specsreferences across docs are updated tooperations/operation_registrations - Call routing flow (definition lookup → active registrations → dispatch) is documented
- Spoke disconnect lifecycle is unambiguous in
spokes.md: deactivate registrations, keep definitions - Cross-references between all per-domain docs and
table-reference.mdare consistent - No remaining contradictions in cascade behavior, status enums, or FK relationships
spokes.md,call-graph.md,coordination.mdconsistently use the new naming- A recommendation on doc status promotion (
draft→stable) is provided
References
- docs/architecture/storage/spokes.md
- docs/architecture/storage/call-graph.md
- docs/architecture/storage/coordination.md
- docs/architecture/storage/table-reference.md
- docs/decisions/ADR-006-operation-specs-as-capabilities.md
- docs/decisions/storage-spec-phase1-resolutions.md (D3)
- All per-domain architecture docs in docs/architecture/storage/
Notes
This is the stabilization gate review. If this passes, storage implementation can begin. If it finds issues, they must be resolved before implementation starts — fixing spec contradictions during implementation is orders of magnitude more expensive than fixing them now.
Summary
Review completed 2026-04-23. 10 acceptance criteria checked: 7 PASS, 3 FAIL (2 critical, 1 requiring judgment).
Critical issues found and fixed:
operations.accessLevelin D3 vsoperations.accessControlin spokes.md — inconsistent naming with different semantics → Fixed: updated D3 to useaccessControl(matching spokes.md and operations.md).- ADR-002 still referenced
operation_specs.inputSchema/outputSchema→ Fixed: updated tooperations.inputSchema/outputSchema. call_graph_nodes.operationIdhad no FK declaration and was ambiguous (FK vs free-text identifier) → Fixed: made it a nullable FK tooperations.idwith SET NULL cascade, added to cascade table, clarified in call-graph.md.
Warnings noted (deferred to implementation phase):
spoke-runner.mdusesrunnerIdinstead ofspokeId(acknowledged in README, terminology cleanup deferred)- No end-to-end call routing flow documented (multi-provider dispatch unspecified — design gap for implementation)
- D3 column list doesn't fully match spokes.md (D3 is the decision, spokes.md is the spec — spokes.md is authoritative)
Gate recommendation: After fixes, storage spec stabilization should pass. 2 hours of additional doc work on call routing flow is recommended before hub.call implementation.