Skip to content

Specs

This folder is for feature-slice specifications.

Purpose

A spec turns the requirements into implementation-ready behavior for one bounded slice.

Each spec should:

  • reference exact requirements sections
  • define in-scope and out-of-scope behavior
  • name the core contracts involved
  • define happy path, interruptions, and fault behavior
  • list acceptance criteria that can be verified

The canonical per-slice status table (Proposed / In Progress / Completed / Superseded) lives in Roadmap Progress. This page is a flat index of every spec that exists in the repo, grouped by roadmap phase.

Current state

Pre-roadmap (foundation slices)

The four slices that predate the evolution roadmap (2026-04-22). These established the canonical app-state pattern, the layered architecture, the simulator-first runtime, and the docs-first execution discipline that all subsequent phases inherit.

Phase 0 — Foundations (CI + observability)

Prerequisites for trustworthy measurement. CI gates, warnings-as-errors, central package management, Serilog, unhandled-exception handlers, AppMetrics meter, single-instance mutex.

Phase 0 exit gate: met 2026-04-23 (demo baseline row 0 captured).

Phase 1 — Simulator to scale (complete 2026-05-03)

Five completed slices + two superseded. Scaled the simulator to produce real-machine-shaped load (50 telemetry tags at 1-500 Hz, 30 fps × 2 MP frames, 200-657 Hz encoder stream, fault-burst chaos, 8-hour soak). Phase 1 evidence: see phase-1-measurements.md and phase-1-capabilities-and-limits.md.

Phase 1 exit gate: met 2026-05-03 (Soak8h working-set steady-state drift = −2.7 MB across 8 hours; no leak).

Phase 2 — Store under pressure (in progress)

Phase 2 opens with a measurement-first slice (SLICE-2.0); the originally-planned 2.1 / 2.2 / 2.3 / 2.4 are conditional on evidence triggers from SLICE-2.0 or any Phase 3 row block per the 2026-05-07 strategy. Deferring Phase 2 entirely is a first-class outcome.

  • SLICE-2.0: Store Allocation & Contention Profiling — Proposed (Copilot in progress)
  • SLICE-2.1 (slice AppState into sub-records) — Conditional (opens if alloc share ≥ 10%)
  • SLICE-2.2 (immutable collections) — Conditional (same threshold as 2.1)
  • SLICE-2.3 (data-plane lift-out) — Conditional (opens for the dominant write caller)
  • SLICE-2.4 (per-slice observables) — Conditional (opens if lock-wait p95 ≥ 100 µs)

Phase 3 — New functionality (in progress)

Phase 3 proceeds in parallel with conditional Phase 2 per the 2026-05-07 strategy. Real-world domain features replace the prototype's "good enough" stand-ins (JSON files, basic UI, in-memory alarm history). Each slice's row block is also a candidate Phase 2 trigger.

  • SLICE-3.3: SQLite Persistence + Schema Versioning — Proposed (first Phase 3 slice; uses Dapper, not EF Core)
  • SLICE-3.1 (rich defect model) — Planned (next after 3.3 lands)
  • SLICE-3.2 (wafer loop / cassette cadence) — Planned
  • SLICE-3.4 (identity + audit) — Planned

Phase 4 — Real-world edges (parallel candidate)

Per the 2026-05-07 strategy, SLICE-4.1 (first real SDK swap) is considered for parallel execution with later Phase 3 slices since the simulator-vs-real-hardware gap is the largest unresolved confidence question.

  • SLICE-4.1 (first real SDK swap) — Planned
  • SLICE-4.2 (historian / MES bridge) — Planned (after 4.1)
  • SLICE-4.3 (packaging + signed installer) — Planned (after 4.2)

Conventions

  • One slice has one spec, one task, one row block in the appropriate measurements file, and one design notes deep-dive.
  • Specs reference requirements sections explicitly (/requirements-sections/...) — never paraphrase.
  • Out-of-scope is as load-bearing as in-scope; reviewers compare both before approving.
  • Acceptance criteria must be verifiable, not aspirational. "It works under load" is not a criterion; "1 kHz at receiver ± 2% over a 10-min capture" is. Where platform reality forces a measurement to be unachievable, amend the criterion as documented-not-gated rather than ship a misleading pass.

Docs-first project memory for AI-assisted implementation.