• cloudinit-bot released this 2026-08-04 22:36:00 +00:00 | 0 commits to main since this release

    v0.5 Live Assist — On-the-Job Voice Companion — Milestone Release

    Summary

    • Milestone: v0.5 (Live Assist — on-the-job voice companion)
    • Type: Feature milestone — final patch v0.1.13 IS the milestone release
    • Phases: P0 (v0.1.10) → P1 (v0.1.11) → P2 (v0.1.12) → P3 (v0.1.13)

    What's New

    v0.5 adds the companion surface to Praxis: a hands-free voice assistant a learner invokes while actually working on the job, context-aware of their current scenario/skill path, coaching in real time without doing the job for them. The key distinction from the practice surface (v0.1-v0.4): in v0.5, the learner is on a real call with a real customer and the AI is in their ear.

    Phases

    Phase 0 — Pre-Execution (v0.1.10)

    SPECIFY → CLARIFY → RESEARCH → IDEATE → PLAN → GRILL. 16 active REQs activated (3 ASSIST + 4 NFR + 9 IDEATE). 760-line research, 1075-line plan, 627-line grill (Proceed-with-conditions, 2 MUSTs, 1 escalation).

    Phase 1 — Assist Core + Guardrail (v0.1.11)

    8 slices, 4 waves, 24 tasks. The safety-critical, on-voice-path surface:

    • server/assist/ — full assist module (session, context, lifecycle, routes, pipeline, webrtc, consent, pii_policy, mode_conflict, guardrail_processor)
    • server/guardrails/live_assist.py — 3-layer LiveAssistGuardrail (prompt + regex filter + audit log)
    • client/src/AssistControl.tsx — tap-to-talk client control
    • 92 new tests (409 total). G-049 + G-067 MUSTs resolved.

    Phase 2 — Integration + Tech-Debt + NFR (v0.1.12)

    4 slices, 2 waves, 9 tasks:

    • NFR measurement (p95 latency ≤650ms pilot, guardrail FP<5% / FN measured + trended nightly)
    • Cohort aggregation assist metrics (5 new metrics, no schema change)
    • Assist cost tracking + C-3 budget check
    • 8 v0.4 P1+ tech-debt findings addressed (argon2id offload, cookie-secret, credential enum, f-string SQL, cache persistence, zoneinfo, audit log, 429 mock)
    • 60 new tests (469 total)

    Phase 3 — Final Review + Ship (v0.1.13)

    Multi-persona review (APPROVE_WITH_NOTES, 1 P0 fixed — guardrail processor must buffer LLM text before TTS for REQ-ASSIST-03 safety). Audit (NEEDS_ATTENTION — 12 stale-status fields advanced, no critical issues). 8 P1+ flagged for v0.6.

    Requirements Covered (16/16)

    • REQ-ASSIST-01: Hands-free voice companion (tap-to-talk in v0.5; wake-word deferred to v0.6 per D-071)
    • REQ-ASSIST-02: Context-aware (path week + scenario tag → ≤150-token prompt)
    • REQ-ASSIST-03: Guardrails (3-layer: prompt + regex filter + audit log; FN 13.3% ≤ 20% pilot threshold)
    • REQ-NFR-ASSIST-01: Latency <600ms target, ≤650ms pilot (D-072)
    • REQ-NFR-ASSIST-02: Tap-to-talk on existing React-Web client
    • REQ-NFR-ASSIST-03: Guardrail enforcement (FP 0%, FN 13.3%, nightly trending)
    • REQ-NFR-ASSIST-04: Shift-bounded sessions, session_type=assist, no mastery update (D-063)
    • REQ-IDEATE-01..09: Guardrail tuning corpus, in-loop processor test, mode-conflict, measurable NFRs, PII policy, tech-debt wave, cost tracking, WebRTC reconnect, incremental audit log

    v0.6 Backlog (4 ideation-derived requirements)

    • REQ-IDEATE-10: LLM-as-judge guardrail evaluation (nightly)
    • REQ-IDEATE-11: Assist-weaning metric (mastery signal)
    • REQ-IDEATE-12: Offline assist degraded mode
    • REQ-IDEATE-13: Voice-only context declaration

    Open Escalation

    ESCALATION-01 (PIPEDA consent-law review): The ambient mic captures the real customer (a third party). Canada PIPEDA + provincial consent law review needed before assist surface go-live. The consent disclosure (D-070) is implemented regardless. Human legal review required.

    Tests

    469 passed, 45 skipped, 0 failed

    Downloads
  • cloudinit-bot released this 2026-08-04 22:11:54 +00:00 | -4 commits to main since this release

    v0.5 Phase 2 — Integration + Tech-Debt + NFR Measurement

    Summary

    • Milestone: v0.5 (Live Assist — on-the-job voice companion)
    • Phase: 2 (Integration + Tech-Debt + NFR Measurement)
    • Type: Feature (assist aggregation + cost tracking + NFR measurement + tech-debt fixes)

    Deliverables

    • server/assist/latency_metrics.py — p95/p50/p99 latency measurement (D-072 pilot tolerance)
    • server/assist/guardrail_metrics.py — FP/FN rates + nightly trending
    • server/assist/budget_check.py — C-3 cost budget check
    • server/assist/learner_cache.py — aggregation cache persistence (P1+ #7)
    • server/cohort/aggregator.py — _aggregate_assist branch (5 assist metrics, no schema change)
    • server/cost.py — derive_assist_turn_cost() extension
    • 60 new tests (469 total passed, 0 failed)

    Requirements Covered (4)

    REQ-NFR-ASSIST-01, REQ-IDEATE-04, REQ-IDEATE-06, REQ-IDEATE-07

    v0.4 P1+ Tech-Debt Wave (8 findings addressed)

    1. Argon2id blocking → asyncio.to_thread()
    2. 429 mock test → mock-based test
    3. Cookie-secret length validation → WARNING if <32
    4. Credential status enum → ValueError on invalid
    5. Revocation audit log → log.info()
    6. Nightly zoneinfo → ZoneInfo('America/Winnipeg')
    7. Cache lost on restart → SQLite cohort_learner_cache
    8. f-string SQL → parameterized queries

    Verification

    APPROVE_WITH_NOTES — 4 layers PASS, 3 P1+ flagged (all LOW, non-blocking)

    Tests

    469 passed, 45 skipped, 0 failed

    Downloads
  • cloudinit-bot released this 2026-08-04 21:19:24 +00:00 | -2 commits to main since this release

    v0.5 Phase 1 — Assist Core + Guardrail

    Summary

    • Milestone: v0.5 (Live Assist — on-the-job voice companion)
    • Phase: 1 (Assist Core + Guardrail)
    • Type: Feature (new assist voice loop + guardrail surface)

    Deliverables

    • server/assist/ — full assist module (session, context, lifecycle, routes, pipeline, webrtc, consent, pii_policy, mode_conflict, guardrail_processor)
    • server/guardrails/live_assist.py — 3-layer LiveAssistGuardrail (prompt + regex filter + audit log)
    • client/src/AssistControl.tsx — tap-to-talk client control
    • db/migrations/0004_assist.sql — assist session schema (session_type, guardrail_verdict)
    • 92 new tests (409 total passed, 0 failed)

    Requirements Covered (12)

    REQ-ASSIST-01, REQ-ASSIST-02, REQ-ASSIST-03, REQ-NFR-ASSIST-02, REQ-NFR-ASSIST-03, REQ-NFR-ASSIST-04, REQ-IDEATE-01, REQ-IDEATE-02, REQ-IDEATE-03, REQ-IDEATE-05, REQ-IDEATE-08, REQ-IDEATE-09

    Grill MUSTs Resolved

    • G-049: In-loop guardrail processor retry validated (Pipecat 1.6.0 supports LLMFullResponseEndFrame + LLMContext.add_message)
    • G-067: Guardrail FN rate 13.3% (≤20% pilot threshold)

    Verification

    APPROVE_WITH_NOTES — 4 layers PASS, 5 P1+ flagged for P2 post-hoc review

    Tests

    409 passed, 36 skipped, 0 failed

    Downloads
  • cloudinit-bot released this 2026-08-04 19:59:30 +00:00 | 0 commits to main since this release

    v0.5 Phase 0 — pre-execution (Live Assist planning artifacts)

    Summary

    • Milestone: v0.5 (Live Assist — on-the-job voice companion)
    • Phase: 0 (pre-execution: SPECIFY → CLARIFY → RESEARCH → IDEATE → PLAN → GRILL)
    • Type: NFR (docs/research/planning only — no code changes)

    Deliverables

    • PROJECT.md (v0.5 scope validated; Live Assist activated)
    • REQUIREMENTS.md (16 active REQs: 3 ASSIST + 4 NFR + 9 IDEATE; 4 v0.6 backlog)
    • ARCHITECTURE.md (v0.5 Live Assist Mode section — assist pipeline, context-binding, guardrail extension, aggregation)
    • PERSONAS.md (voice-engineer REACTIVATED; 5 active, 2 deactivated)
    • RESEARCH-v0.5-live-assist.md (760 lines, 7 domains, 14 risks R-ASSIST-01..14, D-064..D-073)
    • PLAN-v0.5-live-assist.md (1075 lines, 2 execution phases, 12 slices, 6 waves, 33 tasks, 16/16 REQ coverage)
    • GRILL-v0.5.md (627 lines, 40 challenges, 39 binding decisions G-042..G-080, 2 MUSTs, 1 escalation)

    Key Decisions (D-058..D-073)

    • D-071: tap-to-talk only in v0.5 (wake-word deferred to v0.6 — React-Web can't do foreground service)
    • D-072: C-8 pilot tolerance ≤650ms (<600ms hardening in v0.6)
    • D-060/D-068: 3-layer guardrail (prompt + regex filter + audit log)
    • D-063: assist is coaching, not assessment (never updates mastery)

    Grill Verdict

    Proceed-with-conditions (0.70). 2 MUSTs:

    • G-049: in-loop guardrail processor retry validation (Wave 1/2 spike)
    • G-067: R-ASSIST-07 guardrail false-negative acceptance threshold (≤20% pilot)
      1 escalation: PIPEDA consent-law review (human legal review before SHIP)

    Tests

    317 passed, 36 skipped, 0 failed (no code changes in Phase 0)

    Requirements Covered

    REQ-ASSIST-01, REQ-ASSIST-02, REQ-ASSIST-03, REQ-NFR-ASSIST-01..04, REQ-IDEATE-01..09

    Next Phases

    • P1 (Assist Core + Guardrail): 8 slices, 4 waves, 24 tasks → v0.1.11
    • P2 (Integration + Tech-Debt + NFR): 4 slices, 2 waves, 9 tasks → v0.1.12
    • P3 (Final — Review + Ship): v0.1.13 = v0.5 milestone release
    Downloads
  • v0.1.9 f2a12f9fed

    cloudinit-bot released this 2026-08-04 11:58:59 +00:00 | 2 commits to main since this release

    v0.1.9 — v0.4 Milestone Release: Operator Tier (Cohort Dashboard + Auth + Postgres)

    Milestone: v0.4 (Operator tier — cohort dashboard, auth, Postgres)
    Type: Feature milestone
    Previous milestone: v0.3 (Mastery scoring + competency rubrics + verifiable credentials) — v0.1.5
    This release: v0.1.9 (merged to main)

    What's in this milestone

    The v0.4 operator tier — a cohort dashboard for training operators, operator auth, and Postgres backing store — layered on top of the v0.3 mastery layer. The learner-facing surface carries forward unchanged (SQLite, voice loop, mastery gates, VC issuance). v0.4 adds the operator surface: Postgres 16 in the existing LXC CT, operator auth (argon2id + signed cookies), a cohort aggregation pipeline (k-anonymity ≥ 10, 7-day windows), and a React cohort dashboard with 3 k-anonymized views.

    Phases

    Phase Tag Description
    P0 v0.1.6 Pre-execution — 8 activated REQs, research, plan, grill (6 MUST)
    P1 v0.1.7 Operator foundation — Postgres 16, asyncpg, auth, VC migration, bootstrap CLI
    P2 v0.1.8 Cohort dashboard — aggregation pipeline, 3-view dashboard, SPA fallback
    P3 v0.1.9 Final review + audit + milestone ship (= this milestone release)

    Requirements Covered (8/8)

    REQ-ID Requirement Phase
    REQ-MT-01 Operator-tier Postgres store (5 tables, asyncpg pool, PgStore) P1
    REQ-MT-02 Cohort aggregation pipeline (k-anon ≥10, async hook, nightly reconcile) P1+P2
    REQ-AUTH-01 Operator auth (argon2id, signed cookies, rate limit, single role) P1
    REQ-DASH-01 Cohort dashboard (3 views, React, k-anonymized, inline sparklines) P2
    REQ-NFR-AUTH-01 argon2id + httpOnly + secure + SameSite + 5/min rate limit P1
    REQ-NFR-MT-01 Postgres-in-LXC without destabilizing learner service P1
    REQ-NFR-DASH-01 k-anonymity ≥ 10 (write-time suppression, differencing-attack tested) P2
    REQ-NFR-DASH-02 Freshness ≤ 24h (nightly reconcile + on-session-end hook) P2

    Key Decisions (D-050..D-057)

    • D-050: Postgres via asyncpg pool over Docker internal DNS (min 1/max 10)
    • D-051: VC key migration — fresh keypair in Postgres, v0.3 public key archived as superseded
    • D-052: Operator bootstrap via CLI script from env-provided credentials
    • D-053: Dashboard = 3 views (practice, mastery, failure-patterns) k-anon ≥10
    • D-054: Aggregation = async fire-and-forget + nightly 03:00 CT reconcile
    • D-055: Postgres backup = nightly pg_dump to volume, 7-day retention
    • D-056: Auth = signed stateless HMAC cookies, no sessions table
    • D-057: Auth = server-side on every /api/operator/* + React guard for UX

    Grill Binding Decisions (6 MUST, all honored)

    • G-008: backup-restore drill task
    • G-011: verification endpoint two-store fallback explicit
    • G-027: first-boot path (no v0.3 active key) handled
    • G-031: R-AUTH-01 — k-anon defense-in-depth primary, config flag secondary
    • G-038: differencing-attack test (10 vs 9 learners)
    • G-041: SPA fallback via custom StaticFiles subclass (not catch-all route)

    Tests

    • Python: 317 passed, 36 skipped (Postgres-requiring), 0 failed
    • Client (vitest): 17/17 passed
    • Build + typecheck: clean
    • 57 new tests in P1 + 45 new tests in P2

    Review + Audit

    • Multi-persona review: APPROVE_WITH_NOTES (6/6 personas PASS, 0 P0, 8 P1+ carry-forward)
    • Audit: HEALTHY (reconstruction PASS, file/branch/commit discipline PASS, 8/8 REQ, 6/6 grill MUSTs)

    P1+ Carry-Forward (8, non-blocking, for next milestone backlog)

    1. argon2id blocking event loop (R-AUTH-02, pilot-acceptable)
    2. rate-limit 429 mock test gap
    3. cookie secret length not validated
    4. credential status enum validation
    5. credential revocation audit log (operator_id of revoker)
    6. nightly scheduler DST timezone (UTC-5 fixed vs true America/Winnipeg)
    7. aggregation in-memory cache lost on restart
    8. f-string SQL code smell (set_credential_status)

    Next Milestone

    v0.5 (Live Assist on-the-job companion) per ROADMAP.md

    Downloads
  • v0.1.8 ec6fcc64bc

    cloudinit-bot released this 2026-08-04 11:43:39 +00:00 | -2 commits to main since this release

    v0.1.8 — v0.4 Phase 2: Cohort Dashboard + Aggregation

    Milestone: v0.4 (Operator tier — cohort dashboard, auth, Postgres)
    Phase: 2 (cohort dashboard + aggregation — feature)
    Previous: v0.1.7 (phase 1 — operator foundation)

    What's in this release

    Cohort aggregation pipeline + auth-gated operator API + React cohort dashboard with 3 k-anonymized views.

    Requirements Covered (4)

    REQ-ID Requirement
    REQ-DASH-01 Cohort dashboard — 3 views (practice/mastery/failure-patterns), React, k-anon ≥10
    REQ-NFR-DASH-01 k-anonymity ≥ 10 enforced (write-time suppression, display, e2e test)
    REQ-NFR-DASH-02 Freshness ≤ 24h (nightly reconcile + on-session-end hook)
    REQ-MT-02 Cohort aggregation pipeline (hook + nightly + k-anon suppression)

    Key features

    • Aggregation pipeline: async fire-and-forget on-session-end hook (non-blocking, C-8) + nightly reconciliation at 03:00 CT; k-anonymity ≥ 10 write-time suppression (cell_suppressed=TRUE, value=NULL for cells < 10); idempotent upsert; no raw PII in Postgres
    • 4 operator API endpoints (auth-gated): GET /api/operator/cohort (practice volume), /mastery (progression), /failure-patterns, GET+POST /credentials (VC management)
    • React cohort dashboard: BrowserRouter for /operator/*, login form, dashboard shell with auth gate (GET /api/operator/me on mount), 3 k-anonymized view components, inline SVG sparklines (zero-dep), suppressed-cell display ("— (<10 learners)"), freshness indicator
    • SPA fallback: SpaStaticFiles custom subclass (G-041 binding) — NOT a catch-all route; serves index.html for client-side routes; API routes + StaticFiles assets unaffected; voice UI at / unchanged
    • G-038 differencing-attack test: 10 learners in window A, 9 in B → B suppressed, dropped learner not recoverable via subtraction (unit + API e2e)

    Tests

    317 passed, 36 skipped (Postgres-requiring), 0 failed (Python)
    17/17 vitest passed (Dashboard auth gate, login, sparkline, suppressedLabel, formatFreshness, no-PII)
    npm build + typecheck clean

    Grill MUSTs honored (2/2 P2-applicable)

    • G-038: differencing-attack test (unit + API e2e)
    • G-041: SPA fallback via custom StaticFiles subclass (not catch-all route)

    P1+ flagged for P3 review (4)

    • Credential revocation audit log (operator_id of revoker)
    • Nightly scheduler timezone (UTC-5 vs true DST)
    • Aggregation in-memory cache lost on restart
    • set_credential_status f-string interpolation (code smell)

    Next

    v0.1.9 (P3 — final review + audit + milestone ship to main = v0.4 milestone release)

    Downloads
  • v0.1.7 00e39a3f85

    cloudinit-bot released this 2026-08-04 01:41:09 +00:00 | 0 commits to main since this release

    v0.1.7 — v0.4 Phase 1: Operator Foundation

    Milestone: v0.4 (Operator tier — cohort dashboard, auth, Postgres)
    Phase: 1 (operator foundation — feature)
    Previous: v0.1.6 (phase 0 — pre-execution)

    What's in this release

    Operator-tier foundation: Postgres 16 Docker service, operator auth, VC issuer key migration SQLite→Postgres, operator bootstrap CLI, backup infrastructure.

    Requirements Covered (5)

    REQ-ID Requirement
    REQ-MT-01 Operator-tier Postgres store (5 tables, asyncpg pool, PgStore)
    REQ-AUTH-01 Operator auth (argon2id + signed cookies + rate limit)
    REQ-NFR-AUTH-01 Auth NFRs (argon2id, httpOnly+secure+SameSite, 5/min rate limit)
    REQ-NFR-MT-01 Postgres-in-LXC without destabilizing learner service (graceful degradation)
    REQ-MT-02 Cohort aggregation schema foundation (cohort_aggregates table)

    Key features

    • Postgres 16 in Docker-in-LXC: asyncpg pool (min 1/max 10) via lifespan, migration runner, 5-table operator-tier schema, PgStore class
    • Operator auth: argon2id password hashing, Starlette SessionMiddleware signed cookies (HMAC-SHA256), slowapi 5/min rate limit, current_operator server-side dependency
    • VC issuer key migration: archive v0.3 public key as superseded in Postgres BEFORE generating fresh v0.4 keypair (R-VC-MIG-01 mitigation). G-027: first-boot path (no v0.3 key) handled. Two-store verification fallback (G-011).
    • Operator bootstrap CLI: scripts/create-operator.py — idempotent, argon2id hashing, env-provided credentials
    • Backup infrastructure: scripts/backup-pg.sh (nightly pg_dump, 7-day %u rolling retention) + G-008 restore drill test
    • Graceful degradation: server starts without Postgres — learner voice loop unaffected, auth returns 503, VC verify falls back to SQLite

    Grill MUSTs honored (4/4 P1-applicable)

    • G-008: backup-restore drill task
    • G-011: verification endpoint two-store fallback explicit
    • G-027: first-boot path (no v0.3 active key) handled
    • G-031: R-AUTH-01 reframed — k-anon defense-in-depth primary, config flag secondary

    Tests

    272 passed, 33 skipped (23 Postgres-requiring + 10 v0.3 voice-key/interop), 0 failed
    57 new tests (34 run + 23 skip-without-Postgres)

    Next

    v0.1.8 (P2 — cohort dashboard + aggregation pipeline + React UI)

    Downloads
  • v0.1.6 6ab40c6f25

    cloudinit-bot released this 2026-08-04 00:39:56 +00:00 | 2 commits to main since this release

    v0.1.6 — v0.4 Phase 0: Pre-Execution (Operator Tier Planning)

    Milestone: v0.4 (Operator tier — cohort dashboard, auth, Postgres)
    Phase: 0 (pre-execution — NFR/docs only)
    Previous: v0.1.5 (v0.3 milestone release)

    What's in this release

    Phase 0 planning artifacts for the v0.4 operator tier. No code changes — docs only.

    Activated Requirements (8)

    REQ-ID Requirement Phase
    REQ-MT-01 Operator-tier Postgres store (D-040) P1
    REQ-MT-02 Cohort aggregation pipeline (D-045) P1+P2
    REQ-AUTH-01 Operator auth — argon2id + signed cookies (D-041) P1
    REQ-DASH-01 Cohort dashboard — 3 views, k-anon ≥10 (D-044, D-053) P2
    REQ-NFR-AUTH-01 Auth NFRs (argon2id, httpOnly, rate-limited) P1
    REQ-NFR-MT-01 Postgres-in-LXC without destabilizing learner service P1
    REQ-NFR-DASH-01 k-anonymity ≥ 10 enforced P2
    REQ-NFR-DASH-02 Freshness ≤ 24h stale P2

    Research (7 domains, 20 risks)

    • Postgres 16 in Docker-in-LXC (asyncpg pool, named volumes, pg_dump backup)
    • Operator auth (argon2id, Starlette SessionMiddleware, slowapi rate limit, secure-cookie-TLS resolution)
    • Cohort aggregation (k-anon ≥10 write-time suppression, 7-day windows, async hook + nightly reconcile)
    • React dashboard (React Router /operator/*, inline SVG sparklines, SPA fallback)
    • VC issuer key migration (SQLite→Postgres, archive v0.3 public key as superseded)
    • Operator bootstrap (CLI script from env-provided credentials)
    • Persona assessment (6 active — frontend + devops reactivated, security retained)

    Plan (2 execution phases, 10 slices, 52 tasks)

    • P1 (Operator Foundation): 6 slices, 3 waves, 29 tasks — Postgres+asyncpg, auth, VC migration, bootstrap
    • P2 (Cohort Dashboard): 4 slices, 2 waves, 23 tasks — aggregation pipeline, operator API, React dashboard, SPA fallback
    • P3 (Final): review + audit + ship

    Grill (proceed-with-conditions, 6 MUST)

    • G-008: backup-restore drill task added to P1
    • G-011: verification endpoint two-store fallback explicit
    • G-027: first-boot path (no v0.3 active key) handled
    • G-031: R-AUTH-01 reframed — k-anon defense-in-depth primary, config flag secondary
    • G-038: differencing-attack test added (v0.3 grill FIX carried forward)
    • G-041: SPA fallback uses custom StaticFiles subclass (not catch-all route)

    Next

    v0.1.7 (P1 — operator foundation: Postgres + auth + VC migration)

    Downloads
  • v0.1.5 813bd586d6

    cloudinit-bot released this 2026-08-04 00:15:02 +00:00 | 4 commits to main since this release

    v0.3 Milestone Release — Mastery Scoring + Competency Rubrics + Verifiable Credentials

    Phases

    • P0 (pre-execution): SPECIFY -> CLARIFY -> RESEARCH -> PLAN -> GRILL -> SHIP (v0.1.3)
    • P1 (mastery core + VC issuance): 9 slices, 5 waves, 238 tests (v0.1.4)
    • P2 (final review + ship): REVIEW APPROVE_WITH_NOTES, AUDIT HEALTHY (v0.1.5 = milestone release)

    What shipped

    • Competency rubric engine (REQ-MAST-01): YAML rubrics, 4 criteria (empathy/resolution/de-escalation/professionalism), 5-level Dreyfus anchors, deterministic rule-based scorer, LLM evidence extraction with fuzzy-quote matching
    • Mastery Score + gates (REQ-MAST-02): weighted mean + conjunctive floor, path gate (N=3 distinct + >=3.5), formative-tier
    • Verifiable credentials (REQ-MAST-03): W3C VC 2.0, Ed25519, JCS canonicalization, Bitstring Status List revocation, public verification endpoint, formative-tier label
    • IRT dynamic difficulty (REQ-SCEN-02): 1PL/Rasch, Bayesian theta update, cold-start fallback
    • Scenario library (REQ-SCEN-03/04): 6 expert Customer Service scenarios, index.yaml manifest, AI-variation hooks
    • Path engine (REQ-PATH-02): 6-week Customer Service path, mastery gates between weeks

    Decisions

    • D-031..D-049 (19 decisions, all >=0.70 confidence)
    • D-031 (operator tier) deferred to v0.4 per grill Axis 2

    Grill verdict

    • 4 MUST conditions resolved (milestone split, VC interop tests, risk fixes, phase split)
    • 5 FIX conditions tracked (non-blocking)

    Test results

    • 238 passed, 10 skipped (pre-existing live-key gates + 1 staging-gated VC interop)
    • E2E smoke: 3 sessions -> gate opens, theta converges, progress advances
    • 4/4 grill MUST conditions verified in code

    Requirements

    • 13/13 v0.3 REQ-IDs covered (7 functional + 6 NFR)
    • 8 deferred to v0.4 (operator tier: cohort dashboard, auth, Postgres)

    Verification

    • P1 VERIFY: APPROVE_WITH_NOTES (4-layer: structural/behavioral/security/quality)
    • P2 REVIEW: APPROVE_WITH_NOTES (0 P0 fixes, 5 P1 flags for post-hoc)
    • P2 AUDIT: HEALTHY (reconstruction test, file discipline, branch hygiene, commit discipline)

    Next milestone

    • v0.4: operator tier (cohort dashboard + auth + Postgres + k-anonymity aggregation)
    Downloads
  • v0.1.4 4d39596a7d

    cloudinit-bot released this 2026-08-04 00:03:18 +00:00 | 2 commits to milestone/v0.3-mastery-scoring since this release

    v0.3 Phase 1 — Mastery Core + VC Issuance

    Milestone v0.3 feature phase: competency rubrics, mastery scoring, IRT dynamic difficulty, scenario library, 6-week path, verifiable credentials.

    What shipped

    • Rubric engine (REQ-MAST-01): YAML rubrics + Pydantic models + deterministic rule-based scorer + LLM evidence extraction with fuzzy-quote matching
    • Mastery Score (REQ-MAST-02): weighted mean + conjunctive floor + path gate (D-032: N=3 distinct + >=3.5)
    • VC issuer (REQ-MAST-03): W3C VC 2.0, Ed25519, JCS canonicalization, Bitstring Status List, public verification endpoint, formative-tier
    • IRT (REQ-SCEN-02): 1PL/Rasch, Bayesian theta update, cold-start fallback
    • Scenario library (REQ-SCEN-03/04): 6 expert CS scenarios, index.yaml manifest, AI-variation hooks
    • Path engine (REQ-PATH-02): 6-week Customer Service path, mastery gates

    Test results

    • 238 passed, 10 skipped (pre-existing live-key gates + 1 staging-gated interop)
    • E2E smoke: 3 sessions -> gate opens, theta converges
    • Grill 4 MUST conditions satisfied (milestone split, VC interop, risk fixes, phase split)

    Requirements

    • 13/13 REQ-IDs covered (7 functional + 6 NFR)
    • 8 deferred to v0.4 (operator tier)

    Commits

    • feat(P01): SLICE-01..09 (9 slices, 5 waves)
    • docs(P01): verify - APPROVE_WITH_NOTES
    Downloads