f2a12f9fed
v0.4 (Operator Tier — Cohort Dashboard + Auth + Postgres) milestone complete. Phases: ✓ P0 pre-execution (planning) → v0.1.6 ✓ P1 operator foundation (Postgres+auth+VC migration) → v0.1.7 ✓ P2 cohort dashboard + aggregation → v0.1.8 ✓ P3 final review + ship → v0.1.9 (= v0.4 milestone release) Requirements covered (8/8): REQ-MT-01 (Postgres store), REQ-MT-02 (aggregation pipeline), REQ-AUTH-01 (operator auth), REQ-DASH-01 (cohort dashboard), REQ-NFR-AUTH-01 (auth NFRs), REQ-NFR-MT-01 (Postgres-in-LXC), REQ-NFR-DASH-01 (k-anonymity ≥10), REQ-NFR-DASH-02 (freshness ≤24h) Grill MUSTs honored (6/6): G-008, G-011, G-027, G-031, G-038, G-041 Tests: 317 pytest pass, 36 skip (Postgres-requiring), 0 fail; 17/17 vitest pass Review: APPROVE_WITH_NOTES (6/6 personas, 0 P0, 8 P1+ carry-forward) Audit: HEALTHY (reconstruction PASS, 8/8 REQ, 6/6 grill) ---ci--- project: praxis phase: 3 milestone: v0.4 status: complete phase_role: final milestone_complete: true milestone_merged_to_main: true tag: v0.1.9 requirements: covered: [REQ-MT-01, REQ-MT-02, REQ-AUTH-01, REQ-DASH-01, REQ-NFR-AUTH-01, REQ-NFR-MT-01, REQ-NFR-DASH-01, REQ-NFR-DASH-02] partial: [] ---/ci---
141 lines
9.4 KiB
Markdown
141 lines
9.4 KiB
Markdown
# 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. |