Engineering
Build Milestones (the sequence Claude Code executes)
Vertical slices in priority order; each milestone is end-to-end shippable, built fully before the next, driven by the first customer use case.
Phase 0 (
03) runs first — always. Before M0, study the owner's existing projects (Mongo AI/RAG, GCP footprint, reusable libraries), produce the Reuse Ledger, and re-validate the00decisions. M0 scope shrinks by whatever Phase 0 marks "reuse"; M0 does not start until the owner signs off the ledger.
Vertical slices, in priority order. Each milestone is end-to-end shippable (UI → API → data → infra), not a horizontal layer. Build M0 fully before M1. The first customer/use case (decide it — see
00Decisions Register Q8) drives M0's concrete data.
Phase 0 — Discover & reuse (prerequisite, not a code milestone)
- Gather reference repos / GCP access / Mongo system docs (
03). - Produce the Reuse Ledger + decision deltas; owner signs off.
- Exit: every M0 capability below is marked build / reuse / adapt, and
00's provisional decisions are confirmed or amended.
M0 — Walking skeleton (one tenant, one source, grounded chat)
The proof the whole spine works for a single tenant.
- Monorepo scaffold (
00layout); CI green (build + lint + unit). - Terraform
modules/tenantprovisions one tenant: Cloud Run + Cloud SQL PG16 + (Mongo Atlas or pgvector per11) + GCS + Secret Manager/KMS + VPC. (50,51) - Real auth: per-tenant SSO/OIDC, JWT minting with
tid/role/cellclaims, the request→RLS-context bridge. (40) - Canonical schema + RLS policies migrated;
Source/Observation/Entity/EventCRUD. (20,82) - One source ingestor: fetch→normalize→sign→write; deterministic resolution inline. (
20,21) - RAG index for that source's docs; the analyst chat end-to-end: retrieve→assemble→Claude (server-side, SSE)→citation validation. (
31,32,80) - Productionized frontend shell with the chat wired to
api(rip outwindow.claude.complete). (70) - Exit: sign in as a tenant user, ask a question, get a grounded, citation-checked answer over real ingested data.
M1 — Resolution & the canonical depth
- Probabilistic resolution (async via outbox) + the MERGE-REVIEW queue UI. (
21) - Event derivation; AsOf time-travel; supersedence/corrections. (
20) - More sources onboarded via the Ontology Agent path. (
30)
M2 — Investigation surface
- Cases (bind events+entities), Reports (draft) + the privileged publish gate (Q8). (
41,60) - Entity Inspector, the Explore map.
- Pattern-of-Life baselines + the Entity Network graph (if those product specs exist — confirm).
M3 — Control plane & fleet provisioning
- The control-plane service +
insigz Controlproductionized. (62) - Provisioning orchestrator (Cloud Workflows) driving Terraform +
insigzctl, with the idempotency/rollback contract. (51,83) - Billing/finance, observability (per-tenant), audit, RBAC, break-glass token flow. (
53,62,83) - Release management: per-tenant version pinning, expand→migrate→contract rollouts. (
52)
M4 — Autonomy & wargame
- Standing Watches → Proposal Inbox → Trust Evals (Q10). (
30, product §13) - Wargame: sessions, cells, Adjudicator/Inject/After-Action agents, AAR. (product §7)
Cross-cutting (every milestone, not a phase)
- Security scanning gates in CI from M0 (SAST/SCA/secret/container/IaC). (
44,52) - Per-tenant observability + audit from M0. (
53) - Cross-tenant negative tests in CI from the moment a second tenant can exist. (
43)
Gaps to close
- Pin the M0 customer/use case (e.g. Baltic Maritime → AIS ingest + vessel resolution + grounded chat).
- Confirm which M2/M4 product specs (
§13/§16/§17, Entity Network, Pattern-of-Life) exist vs. need authoring.