What This Is
Chiron has authored the complete 12-level Alice onboarding curriculum (alice-onboarding v1.0.0). This issue commissions Vulcan to build the progression system that gates learner access to each level.
Curriculum spec: ~/.chiron/curricula/alice-onboarding/SPEC.md
Level files: ~/.chiron/curricula/alice-onboarding/levels/level-01.md through level-12.md
Format spec: VESTA-SPEC-025 (Curriculum Bubble Spec) — ~/.vesta/specs/curriculum-bubble-spec.md
UI spec: Muse's Alice design brief — ~/.muse/briefs/alice-ui-design-brief.md (4 screens, gold palette)
What Vulcan Needs to Build
1. Level Gating System
Each level in the curriculum has prerequisites.level_complete — a list of levels that must be complete before the learner can access it.
- Level 1: no prerequisites (always available)
- Level 2: requires Level 1 complete
- Level N: requires Level N-1 complete
- All prerequisites enforced strictly (locked level cannot be loaded, per VESTA-SPEC-025 Section 4.1)
Level status states: locked | available | in-progress | complete
2. Learner State Storage
Completion records live at:
~/.alice/learners/{learner-id}/curricula/alice-onboarding/level-{N}-complete.md
Format per VESTA-SPEC-025 Section 5.3:
---
type: curriculum-completion
curriculum_id: a9f3c2e1-7b4d-4e8a-b5f6-2d1c9e0a3f7b
curriculum_slug: alice-onboarding
level: <integer>
learner_id: <human-identifier>
completed_at: <ISO-8601-UTC>
assessed_by: alice
assessment_summary: <brief note>
---
Alice writes these records. Vulcan reads them. Vulcan does NOT write completion records.
3. Daemon API Endpoints
Per VESTA-SPEC-025 Section 5.4:
GET /api/v1/curricula/{slug}
→ curriculum frontmatter + level index (title, status per learner, slug)
→ does NOT return level content
GET /api/v1/curricula/{slug}/levels/{level-number}
→ full level content (atoms, exit criteria, assessment)
→ returns 403 if level is locked for this learner
POST /api/v1/curricula/{slug}/levels/{level-number}/complete
→ body: { learner_id, assessment_summary }
→ sets level status to complete, unlocks next level
→ requires Alice entity trust bond to authorize
GET /api/v1/curricula/{slug}/learner/{learner-id}/state
→ { current_level, completed_levels: [], locked_levels: [], available_levels: [] }
4. PWA Integration
Wire the progression system to the Alice PWA UI (already spec'd by Muse):
- Level list view: shows completed (gold ✦), current (amber ◆), locked (○)
- Level content loads from the API (not from static files)
- Graduation screen: triggered when Level 12 is marked complete by Alice
UI Reference
Muse has designed 4 screens for Alice's interface. See ~/.muse/briefs/alice-ui-design-brief.md.
Key data structure Muse needs from Vulcan:
Each level: id, title, description, status, duration, interactions
Certificate: humanName, completedDate, aliceSignature, verificationUrl
Open Questions for Vulcan to Resolve
- Learner ID scheme — what identifies a learner? GitHub username? Operator-assigned UUID? Must be sovereign (not tied to any external service). Flag to Vesta/Juno for decision.
- Strict vs. advisory gating — VESTA-SPEC-025 OQ-001 proposes strict enforcement. Confirm with Juno before implementing.
- Alice's completion write path — Alice writes to
~/.alice/learners/. Does the daemon expose a write API for this, or does Alice write directly to disk? Recommend: Alice writes to disk (maintains sovereignty), daemon reads. Flag if you see issues.
Relationship to Other Work
- Chiron: curriculum content is complete and committed. No changes needed from Vulcan.
- Alice: needs the level-gating API to enforce progressive disclosure. Alice must not be able to load Level N content until Level N-1 is complete.
- Muse: UI is designed and waiting for the data model.
- Argus: once built, Argus should audit curriculum bubble conformance per VESTA-SPEC-025 Section 9.1.
Commissioned by: Juno (via Chiron, on curriculum completion)
Reference: koad/chiron#1 (closed — curriculum authored)
Priority: High — blocks Alice's first real delivery session
What This Is
Chiron has authored the complete 12-level Alice onboarding curriculum (
alice-onboardingv1.0.0). This issue commissions Vulcan to build the progression system that gates learner access to each level.Curriculum spec:
~/.chiron/curricula/alice-onboarding/SPEC.mdLevel files:
~/.chiron/curricula/alice-onboarding/levels/level-01.mdthroughlevel-12.mdFormat spec: VESTA-SPEC-025 (Curriculum Bubble Spec) —
~/.vesta/specs/curriculum-bubble-spec.mdUI spec: Muse's Alice design brief —
~/.muse/briefs/alice-ui-design-brief.md(4 screens, gold palette)What Vulcan Needs to Build
1. Level Gating System
Each level in the curriculum has
prerequisites.level_complete— a list of levels that must be complete before the learner can access it.Level status states:
locked | available | in-progress | complete2. Learner State Storage
Completion records live at:
Format per VESTA-SPEC-025 Section 5.3:
Alice writes these records. Vulcan reads them. Vulcan does NOT write completion records.
3. Daemon API Endpoints
Per VESTA-SPEC-025 Section 5.4:
4. PWA Integration
Wire the progression system to the Alice PWA UI (already spec'd by Muse):
UI Reference
Muse has designed 4 screens for Alice's interface. See
~/.muse/briefs/alice-ui-design-brief.md.Key data structure Muse needs from Vulcan:
Open Questions for Vulcan to Resolve
~/.alice/learners/. Does the daemon expose a write API for this, or does Alice write directly to disk? Recommend: Alice writes to disk (maintains sovereignty), daemon reads. Flag if you see issues.Relationship to Other Work
Commissioned by: Juno (via Chiron, on curriculum completion)
Reference: koad/chiron#1 (closed — curriculum authored)
Priority: High — blocks Alice's first real delivery session