# Praxis — Roadmap **Milestone:** v0.4 (Operator tier — cohort dashboard, auth, Postgres) — active **Status:** phase 3 — final review (active milestone); P0-P2 complete (v0.1.6/v0.1.7/v0.1.8 tagged) **Previous milestone:** v0.3 (Mastery scoring + competency rubrics + verifiable credentials) — complete, tagged v0.1.5, release #380, merged to main ## Milestone Philosophy v0.4 activates the operator tier deferred from v0.3 per the grill's binding verdict (GRILL-v0.3.md Axis 2 — the operator tier was originally v0.8 on this roadmap; pulling it into v0.3 created a 2-milestone program disguised as one). v0.4 layers the operator surface on top of the v0.3 mastery/VC/scenario work: a Postgres store in the existing LXC CT, operator auth (argon2id session cookies), a cohort aggregation pipeline (k-anonymity ≥ 10, 7-day windows), and a React cohort dashboard served by the same FastAPI server. The learner-facing surface carries forward unchanged (SQLite, voice loop, mastery gates, VC issuance). The VC issuer key store migrates from SQLite to operator-tier Postgres + secrets (D-042). ## v0.4 Phases ### Phase 0 — Pre-Execution (complete — tagged v0.1.6, release created) **Branch:** `phase/00-pre-execution` → merged to `milestone/v0.4-operator-tier` **Ship target:** `v0.1.6` (patch release on v0.3's v0.1.x line — NFR/docs milestone type) **Status:** complete (v0.1.6 tagged, Gitea release created) Pipeline stages: SPECIFY → CLARIFY → RESEARCH → PLAN → GRILL → SHIP **Goal:** Produce all `.ciagent/` planning artifacts for v0.4: activated requirements (REQ-MT-01/02, REQ-AUTH-01, REQ-DASH-01 + 4 NFRs), research-grounded Postgres-in-LXC + k-anonymity + argon2id + React-dashboard architecture, persona roster (frontend-engineer + data-engineer reactivated, security-engineer retained), vertical-slice plan for P1/P2. **Deliverables:** - PROJECT.md (v0.4 scope validated; operator tier activated) - REQUIREMENTS.md (v0.4 active REQ-IDs = 8; v0.3 marked complete) - ARCHITECTURE.md (operator Postgres + auth + cohort dashboard + aggregation pipeline added to v0.3 topology) - PERSONAS.md (v0.4 roster — frontend-engineer + data-engineer reactivated for dashboard + Postgres; security-engineer retained for auth/crypto; devops-engineer for Postgres-in-LXC) - GRILL-v0.4.md (adversarial review — auth + PII surface warrants grill) - Phase 1 + Phase 2 plans (vertical slices with wave ordering) ### Phase 1 — Operator Foundation (Postgres + Auth) (complete — tagged v0.1.7, release created) **Branch:** `phase/01-operator-foundation` → merged to `milestone/v0.4-operator-tier` **Ship target:** `v0.1.7` (patch release, feature milestone type) **Status:** complete (v0.1.7 tagged, Gitea release created; 272 pass, 33 skip, 0 fail; 5/5 REQ covered; APPROVE_WITH_NOTES, 4 P1+ flagged) **Goal:** Operator-tier Postgres 16 running as a second Docker service in the existing LXC CT (internal network only), operator auth (argon2id session cookies, single `operator` role, login rate-limited), VC issuer key store migrated to Postgres + secrets. Foundation for the cohort dashboard in P2. No UI yet — API + DB + auth only. ### Phase 2 — Cohort Dashboard + Aggregation (complete — tagged v0.1.8, release created) **Branch:** `phase/02-cohort-dashboard` → merged to `milestone/v0.4-operator-tier` **Ship target:** `v0.1.8` (patch release, feature milestone type) **Status:** complete (v0.1.8 tagged, Gitea release created; 317 pass, 36 skip, 0 fail; 4/4 REQ covered; APPROVE_WITH_NOTES, 4 P1+ flagged) **Goal:** Cohort aggregation pipeline (on-session-end hook + nightly reconciliation, k-anonymity ≥ 10, 7-day windows) + React cohort dashboard under `/operator/*` (served by same FastAPI, reuses v0.2 StaticFiles) + `/api/operator/*` endpoints (auth-gated). Dashboard shows anonymized practice/mastery/failure-pattern views with cells < 10 learners suppressed. ### Final Phase (P3) — Review + Ship (planned) **Branch:** `phase/03-final-review-ship` → merged to `milestone/v0.4-operator-tier` → merged to `main` **Ship target:** final patch = v0.4 milestone release **Status:** planned **Goal:** Multi-persona code review, project audit, milestone merge to main, milestone release. ## v0.3 Milestone (complete — released as v0.1.5, reference) ### Phase 0 — Pre-Execution (complete — tagged v0.1.3, release #378) **Branch:** `phase/00-pre-execution` → merged to `milestone/v0.3-mastery-scoring` **Ship target:** `v0.1.3` (patch release, NFR milestone type — docs/planning only) **Status:** complete (v0.1.3 tagged, Gitea release #378 created) Pipeline stages: SPECIFY → CLARIFY → RESEARCH → PLAN → GRILL → SHIP **Goal:** Produce all `.ciagent/` planning artifacts for v0.3: activated requirements (REQ-MAST-01/02/03, REQ-SCEN-02/03/04, REQ-PATH-02 + 6 NFRs), research-grounded rubric/VC/IRT/architecture, persona roster, vertical-slice plan for P1. Operator tier (REQ-DASH-01, REQ-AUTH-01, REQ-MT-01/02 + 4 NFRs) deferred to v0.4 per grill. **Deliverables:** - PROJECT.md (v0.3 scope validated, D-031..D-049 recorded; operator tier deferred) - REQUIREMENTS.md (v0.3 active REQ-IDs = 13; 8 deferred to v0.4) - ARCHITECTURE.md (mastery engine + VC issuer + IRT added to v0.2 topology; operator-tier Postgres deferred to v0.4) - PERSONAS.md (v0.3 roster — security-engineer added for VC crypto; frontend + devops deactivated) - GRILL-v0.3.md (4 MUST conditions resolved, 5 FIX tracked) - Phase 1 plan (9 slices, 5 waves, ~40 tasks, 13/13 REQ coverage) ### Phase 1 — Mastery Core + VC Issuance (complete — tagged v0.1.4, release #379) **Branch:** `phase/01-mastery-core` → merged to `milestone/v0.3-mastery-scoring` **Ship target:** `v0.1.4` (patch release, feature milestone type) **Status:** complete (v0.1.4 tagged, Gitea release #379 created; 13/13 REQ covered, 4/4 grill MUSTs satisfied) **Goal:** Competency rubric engine + Mastery Score computation + scenario library (≥6 CS scenarios) + dynamic difficulty (IRT) + Customer Service path (6 weeks) + verifiable-credential issuer (W3C VC 2.0, Ed25519, SQLite-backed, formative-tier, public verification). All learner-facing. 9 slices, 5 waves, ~40 tasks. ### Final Phase (P2) — Review + Ship (complete — tagged v0.1.5, release #380, merged to main) **Branch:** `phase/02-final-review-ship` → merged to `milestone/v0.3-mastery-scoring` → merged to `main` **Ship target:** final patch = v0.3 milestone release **Status:** complete (v0.1.5 tagged, Gitea release #380 created, merged to main; review APPROVE_WITH_NOTES, audit HEALTHY) **Goal:** Multi-persona code review, project audit, milestone merge to main, milestone release. ## v0.2 Milestone (complete — reference) ### Phase 0 — Pre-Execution (complete — tagged v0.1.0, release #371) **Branch:** `phase/00-pre-execution` → merged to `milestone/v0.2-lxc-deploy` **Ship target:** `v0.1.0` (patch release, NFR milestone type — docs/planning only) **Status:** complete (v0.1.0 tagged, Gitea release #371 created) Pipeline stages: SPECIFY → CLARIFY → RESEARCH → PLAN → GRILL **Goal:** Produce all `.ciagent/` planning artifacts for v0.2: validated requirements (REQ-DEPLOY-01..16), research-grounded Docker-in-LXC architecture, persona-assigned vertical-slice plans for Phase 1. **Deliverables:** - PROJECT.md (v0.2 scope validated) - REQUIREMENTS.md (16 REQ-DEPLOY IDs + 4 NFR-DEPLOY IDs) - ARCHITECTURE.md (deployment topology: Docker-in-LXC, image distribution, secret injection) - PERSONAS.md (updated roster for deploy-heavy milestone) - Phase 1 plan (vertical slices with wave ordering) ### Phase 1 — LXC Deploy Implementation (complete — tagged v0.1.1, release #374) **Branch:** `phase/01-lxc-deploy` → merged to `milestone/v0.2-lxc-deploy` **Ship target:** `v0.1.1` (patch release, feature milestone type) **Status:** complete (v0.1.1 tagged, Gitea release #374 created; 121 bats + 77 pytest passing; 18/20 REQ covered, 2 deferred live-E2E) **Goal:** A working `lxc-deploy.sh` orchestrator that clones a Debian template from the Proxmox cluster, configures the CT with Docker + nesting, builds/loads the praxis Docker image on first boot, starts the service via systemd, and health-checks `/health` :8789 — all idempotent with rollback on failure. ### Final Phase (P2) — Review + Ship (complete — tagged v0.1.2, release #377, merged to main) **Branch:** `phase/02-final-review-ship` → merged to `milestone/v0.2-lxc-deploy` → merged to `main` **Ship target:** final patch = v0.2 milestone release **Status:** complete (v0.1.2 tagged, Gitea release #377 created, merged to main) **Goal:** Multi-persona code review, project audit, milestone merge to main, milestone release. ## v0.1 Milestone (complete — reference) v0.1 was the **foundation milestone** — minimal viable voice loop (one persona, one scenario, ASR+TTS+LLM round-trip, single learner state). Shipped as `v0.0.0` (phase 0) → `v0.0.1` (phase 1) → `v0.0.2` (final/milestone release). ## Future Milestones (post-v0.4, indicative) | Milestone | Scope (indicative) | |-----------|-------------------| | v0.5 | Live Assist on-the-job companion | | v0.6 | Low-bandwidth surfaces (WhatsApp, offline cache) | | v0.7 | Multi-language (French-Canadian, then PRD's 10-language list) | | v0.8 | Full operator-suite dashboard (REQ-DASH-02 — beyond v0.4's foundational cohort view) | | v0.9 | Credentialing (third-party verifiable, shareable) | | v1.0 | Working, tested product — multiple paths, multi-market, production-ready | These are indicative and will be refined by ci-roadmapper at the start of each milestone.