Skip to content
🚧 Early alpha — building the foundation. See the roadmap →

v0.1 implementation milestones

Updated

The v0.1 implementation phase breaks into 10 sequenced milestones. Each one has its own page with concrete tasks, dependencies, success criteria, and current status.

MilestoneTitleEffortStatus
v0.1.1Type system + validation foundation1–2 days✅ Done (2026-05-04)
v0.1.2render() v1 — folder + file + heading3–5 days✅ Done (2026-05-05)
v0.1.3Generation engine integration3–5 days✅ Done (2026-05-05)
v0.1.4Junction notes + crosswalk edges2–3 days✅ Done (2026-05-05)
v0.1.4.5Iterator-ready engine boundary (wizard remains eager)1–2 days✅ Done (2026-05-05)
v0.1.5Tier 2 sqlite-wasm sidecar projector5–8 days✅ Done (2026-05-06)
v0.1.6Bases query layer + SSSOM import + recipe UX3–5 days (ran long — absorbed the shape-workbench side-arc)🚧 In progress — Phases 1–6.4 ✅ + Phase 7 (shape-workbench side-arc) ✅ 2026-07-11; v0.1.7 is active. Delivery detail: CHANGELOG.md [Unreleased]; phase list: milestone page
v0.1.7Portability: exporters, reusable configurations, source bindings, MappingSetsExpanded🚧 In progress — exporter first slice ✅; recipe-fidelity foundation ✅ 2026-07-21; recipe library slice ✅ 2026-10-02; Run again and source-change status ✅ 2026-10-02; full NIST replay proofs ✅ 2026-10-03; mapping set release record slices 1 and 2 ✅ 2026-10-03; exporter completion remains, gated on the save-and-replay + primitives decision registers. Save-and-replay Gate 1 closed 2026-09-06 (ratification); Gate 2 closed 2026-10-02 (record); Gate 3 lands at v0.1.8. Two unmerged slices are in flight on fix/d1-per-import-root: the committed recipe-document digest, and the XLSX source-byte provenance plus ordinary import repairs work (2026-09-07; its targeted Tier 1 runtime acceptance passed 2026-09-09, with open Tier 2 and readability qualifications). Neither closes a track. Nested records (1.13.0) and body projection (1.14.0) were assigned here 2026-09-23 and are unmerged on feat/body-projection. Detail: CHANGELOG.md [Unreleased]
v0.1.8Execution records, audit, and package manifestsExpanded📋 Planning; depends on v0.1.7
v0.1-RCArtifact-chain acceptance, bundle, polish, ship2–3 days📋 Planning

Status legend: 📋 Planning · 🚧 In progress · ✅ Done · ⏸ Blocked

Scoped addendum, 2026-09-23 — the v0.1.7 cell only: nested records and body projection assigned to it. No status symbol changed.

Scoped addendum, 2026-09-09 — the v0.1.7 cell only, re-checked against the targeted real-Obsidian acceptance run and its independent evidence review. No status symbol changed: v0.1.7 stays 🚧, every slice named in that cell remains unmerged and unreleased branch work, and a passing targeted runtime acceptance closes no track, checkbox or success criterion. No other cell was re-verified on this date.

Scoped addendum, 2026-09-07 — the v0.1.7 cell only, re-checked against that milestone page, CHANGELOG.md [Unreleased], and the local working tree. No status symbol changed: v0.1.7 stays 🚧, and both unmerged slices named in that cell remain unmerged branch work rather than shipped milestone scope. No other cell was re-verified on this date.

Status last verified: 2026-10-03 (v0.1.7 row, re-checked against CHANGELOG.md [Unreleased] and the v0.1.7 milestone page after mapping set release record slice 2). Earlier: 2026-09-05 — every cell above was re-checked against the milestone pages, CHANGELOG.md [Unreleased], and the commit log. No milestone status changed in this documentation update; the fix/d1-per-import-root safety work remains unmerged branch work, not a shipped milestone. If today is far past this date and no newer verification line has replaced it, treat this table as unverified.

Ingestion sequencing: ship a correct, usable supported path first; stage advanced streaming, parser migration, and mutable-source replay integrity behind demonstrated workflow needs and measured acceptance. This does not relax preservation, supported-input, or completion-truth requirements. See the 2026-09-05 decision.

~3–6 weeks of focused work, depending on velocity. Each milestone has explicit dependencies on the previous one, so the order is roughly fixed. The closing sequence is source bytes → reusable configuration → Knowledge Set/MappingSet → Execution Record → Package Manifest, using the role boundaries in artifact roles and authority and the artifact-role synthesis.

Each milestone page contains:

  • Goal — one sentence
  • Dependencies — what must complete before this can start
  • Scope — what’s in / what’s out
  • Concrete tasks — checklist of work
  • Success criteria — verifiable outcomes (test passes, bundle size, schema validation, etc.)
  • Files to touch — specific paths
  • Estimated effort — rough day count
  • Status — Planning | In progress | Done | Blocked
  • Related — KB cross-links (decision logs, spec artifacts, concept pillars)

When work begins on a milestone, flip its status to “In progress” + start checking off tasks. When it ships, flip to “Done” + add a brief retrospective note. Use this status table at the top to track at-a-glance progress.

Top-level roadmap shows phases and high-level direction. Milestone pages contain the implementation detail without bloating the top-level view. Each milestone has a stable URL → linkable from PRs, decision logs, code comments, agent prompts. AI agents can be pointed at a single milestone page for focused work.

Every milestone gets at least one E2E spec that proves the feature works in real Obsidian. The harness is wdio-obsidian-service via bun run e2e; the smoke baseline lives at tests/e2e/smoke.spec.ts and validates: Obsidian launches, plugin loads, commands register.

Per-milestone E2E spec — verbatim from the testing-patterns skill:

MilestoneNew E2E spec
v0.1.1validation.spec.ts — malformed recipe → AJV Notice
v0.1.2render.spec.ts — recipe w/ folder+heading mechanisms → correct vault structure
v0.1.3re-import.spec.ts — managed overwritten + user_preserve preserved
v0.1.4crosswalks.spec.ts — junction notes + STRM enum enforced
v0.1.4.5streaming.spec.ts — iterator consumption and eager-array compatibility with 100 synthetic rows; no memory-ceiling proof
v0.1.5sidecar.spec.ts — .crosswalker.sqlite projects + recovers on delete
v0.1.6bases-queries.spec.ts — emitted Bases query renders in note body
v0.1.7export.spec.ts — reusable configuration save/reopen/replay + MappingSet SSSOM/STRM round-trip + honest OSCAL target handling
v0.1.8audit.spec.ts — terminal Execution Record through UI/programmatic paths + Package Manifest inventory/hash/signature verification
v0.1-RCfull artifact-chain replay, parity, tamper, mobile, and bundled-plugin smoke pre-submission

If a milestone closes without its E2E spec passing, that’s a violation of the milestone success criteria — flip status back to In progress.

Architectural foundation for these milestones

Section titled “Architectural foundation for these milestones”

All 10 milestones build on the 2026-05-04 design phase commitments:

Machine-readable contracts: spec/tier1.schema.json + spec/recipe.schema.json.