Unit type: Phase
Unit ID: phase-0
Status: ⏳ In progress — P0.1 decision pack drafted, pending human ratification
Last updated: 2026-09-23
Plan: phase-0-plan.md
Sketch: phase-0-sketch.md
P0.1 (decision pack) was executed autonomously on 2026-09-23: 17 ADRs drafted (A48, A50, A51, A54, A57, A59, A62, A63, A65 through A69, A71, A74, A75, A81), all filed with Status: Proposed, none marked Accepted. The human was unavailable during this session and asked the agent to work autonomously and make good decisions for later review — no ADR here is self-ratified; ratification remains a human act per the Agentic Development Contract. ADR-A62’s namespace harmonisation (the one part of P0.1.12 that is a mechanical change, not a decision) was executed directly: ontology/spc/spec/spc.ttl, ontology/spc/README.md, and tools/spc/python/src/spc/ontologies/spc.owl.ttl now use the harmonised nebularis.org namespace, and ontology-architecture.md §3 was updated to match.
No code slice (P0.2 onward) has started. The original P0.1.3 deliverable, docs/architecture/iri-policy.md, is now a short historical record: its body was removed on 2026-09-23 because it still read as guidance and contradicted the current catalogue. Its replacement is docs/architecture/iri-identity-patterns.md under ADR-A82.
2026-09-23, later same day: ADR-A51 was reviewed (docs/developer/review/ADR-A51-review.md) and found to conflict with RDF identity semantics (environment-scoped IRIs), overclaim uniqueness safety with a truncated hash, and disagree internally with rdf-sparql-patterns-guide.md’s own entity-identity default. An initial disposition claimed all findings resolved, but the second review (ADR-A51-2nd-agent-review.md) identified unresolved grammar, hash, skolemization, scope, and lifecycle issues. Human architectural direction then reframed the concern: LATTICE is a framework and cannot mandate one identifier scheme for every adopter. ADR-A82 supersedes the unratified ADR-A51. iri-identity-patterns.md is now the proposed pattern catalogue. iri-policy.md is retained only as historical profile material.
| Decision | What was assumed | Why |
|---|---|---|
| Accept ADR-A74 (graph-primary) | Yes, accepted as drafted | Epic’s own stated default; rejecting it reorders ~40% of the plan. No contrary instruction was given. |
graph-spi vs semantic-dataset-spi (blocks P0.5.1) |
Not resolved — left open, no P0.5 slice attempted this session | This decision has execution consequences (module deletion or coexistence) that should not be taken without confirmation, unlike a documentation-only ADR draft |
| ADR-A44 numbering collision | Filed the epic’s “amended A44” content as new ADR-A81 instead of touching the existing accepted ADR-A44 | Amending A44 would have silently corrupted an unrelated, already-accepted decision (MORK Teaching Pack) |
| Scope of this session | P0.1 decision pack only (13 slices’ worth of ADRs); no build/code scaffolding (P0.2+) attempted | P0.2.1 itself requires a build-tooling decision (ADR-A76, Maven vs Gradle) and produces a running module skeleton — higher-risk to leave unreviewed than documentation-only ADR drafts |
| Blocker | Detail | Resolution owner |
|---|---|---|
graph-spi vs semantic-dataset-spi relationship undecided |
See phase-0-plan.md §2. Still open — not resolved in this session. | Human — must resolve before P0.5.1 |
All active P0.1 ADRs are Proposed, not Accepted |
Every active ADR above, including ADR-A82, needs an explicit human ratification pass (Step 1–5 human validation gate) before the Phase 0 exit gate can close | Human |
Nothing else blocks P0.2 starting, once a human has reviewed the P0.1 ADRs (or explicitly authorised proceeding before formal ratification).
| Slice | ADR(s)/deliverable | Status | Notes |
|---|---|---|---|
| P0.1.1 | ADR-A74 | Drafted, Proposed | data-architecture.md §1–3, §5–7 rewrite still outstanding |
| P0.1.2 | ADR-A75 | Drafted, Proposed | |
| P0.1.3 | ADR-A82 + iri-identity-patterns.md |
Drafted, Proposed, pending human review | ADR-A51’s universal policy was superseded before ratification. The new guide describes configurable identity patterns and their ontology/persistence configuration surface (dal:IdentityProfile, specified, and resolved per resource role by the compiler since persistence-compiler-iri-sync Slice 3). Revised on 2026-09-23 by iri-patterns-post-3866b21-remediation (normalization, tuple-encoded digests, key rotation, store-local epoch, revision-class alignment). Ready for review. |
| P0.1.4 | ADR-A54 | Drafted, Proposed | Graph-name validator (P0.3.7) not yet built |
| P0.1.5 | ADR-A65 | Drafted, Proposed | ontology/governance/shapes/provenance.ttl (P0.3.6) not yet built |
| P0.1.6 | ADR-A67 | Drafted, Proposed | |
| P0.1.7 | ADR-A68 | Drafted, Proposed | DPO/legal review still recommended, not performed |
| P0.1.8 | ADR-A63 | Drafted, Proposed | |
| P0.1.9 | ADR-A48 | Drafted, Proposed | Replaces solution-design-specification.md §7.1 CAP framing — doc rewrite still outstanding |
| P0.1.10 | ADR-A50 + ADR-A81 (renumbered from “A44 amended”) | Drafted, Proposed | Numbering collision — see table above |
| P0.1.11 | ADR-A57 | Drafted, Proposed | |
| P0.1.12 | ADR-A59, ADR-A66, ADR-A71, ADR-A62 | Drafted, Proposed | ADR-A62’s namespace rename executed; the other three are documentation only |
| P0.1.13 | ADR-A69 | Drafted, Proposed | |
| P0.1.14 | Threat model document | Not started | Requires owner-per-control assignment; needs human risk input |
| P0.1.15 | NFR/SLO catalogue | Not started | Epic’s own framing: “are the numbers ones you are willing to be held to” — requires human sign-off on numbers, not agent invention |
| P0.2+ | Build skeleton, ontology, store SPI, coordination, host, messaging, synthetic data | Not started |
| Milestone | Demonstrable outcome | Status |
|---|---|---|
| M0 | Walking skeleton (browser → HTTP → domain → response, in compose, one correlation ID traceable, Playwright smoke) | Not demonstrated |
| M1 | Store conformance (signed capability + benchmark report, TDB2 + Fuseki, hostile scoping suite green) | Not demonstrated |
| ADR | Subject | Status |
|---|---|---|
| A44 | Control Plane HTTP runtime — renumbered to A81 to avoid collision with the existing accepted A44 (MORK Teaching Pack) | Superseded by renumbering; see A81 |
| A48 | Transaction boundary catalogue (replaces CAP framing) | Drafted, Proposed |
| A50 | Role-profiled deployment | Drafted, Proposed |
| A51 | IRI & identity policy | Superseded by A82 |
| A54 | Dataset topology | Drafted, Proposed |
| A57 | Change feed | Drafted, Proposed |
| A59 | PartitionedWorkQueue abstraction |
Drafted, Proposed |
| A62 | SPC namespace harmonisation | Drafted, Proposed — namespace rename executed |
| A63 | projectId vs environmentId |
Drafted, Proposed |
| A65 | Provenance | Drafted, Proposed |
| A66 | Principal model | Drafted, Proposed |
| A67 | Bi-temporal | Drafted, Proposed |
| A68 | PII & erasure | Drafted, Proposed |
| A69 | Pack trust model / safe SPARQL subset | Drafted, Proposed |
| A71 | Platform licence MPL-2.0 + SPI seam | Drafted, Proposed |
| A74 | Graph-primary realm model | Drafted, Proposed |
| A75 | Three-tier store SPI | Drafted, Proposed |
| A76 | Maven vs Gradle | Not drafted — deferred to P0.2.1 (build skeleton slice) |
| A81 | Control Plane HTTP runtime (was “A44 amended”) | Drafted, Proposed |
| A82 | Framework-neutral identity pattern selection | Drafted, Proposed |
Tracks phase-0-plan.md §3–5 as it is worked off.
| Item | Status |
|---|---|
docs/architecture/iri-identity-patterns.md (P0.1.3) |
Drafted and revised (2026-09-23), pending ratification with ADR-A82. iri-policy.md reduced to a historical record |
data-architecture.md §1–3, §5–7 rewrite for A74 (P0.1.1) |
Outstanding |
solution-design-specification.md §7 rewrite for A48 (P0.1.9) |
Outstanding |
ontology-architecture.md SPC section update for A62 |
Done |
docs/architecture/nfr.md + nfr.yaml (P0.1.15) |
Outstanding — needs human SLO sign-off |
| Threat model document (P0.1.14) | Outstanding |
| All other rows in the plan’s §3–5 tables | Outstanding |
Proposed ADRs above. Per the human validation gate protocol, review each ADR’s Context/Decision/Consequences before anything downstream depends on it.graph-spi/semantic-dataset-spi decision point (still open) before P0.5.1.data-architecture.md and solution-design-specification.md rewrites (tied to A74 and A48 respectively) should follow ratification, not precede it, in case ratification changes the decision content.