Practitionist / Practitionist/elluminar_web
Live defense engine — AI-assisted project defense (AVNI-style)
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 1
- Forks
- 0
- Avg merge
- 17h 2m
- Merged PRs (30d)
- 18
Description
Why / Context
The teardown's STEAL list validates this as buildable now: Euron's AVNI ships AI-conducted, recorded, evaluated interviews as a paid feature. Our version is the mandatory live defense on Capstone/Flagship (PRD §6.2): the learner defends design decisions to a mentor with AI-assisted follow-up questioning. This is the anti-AI-shortcut integrity signal competitors can't claim ("we verify you can defend your own work") and a headline trust differentiator per teardown §5.3.
Schema already in place — NO migration required
DefenseSession(scheduling,aiQuestionPlan Json,transcriptAssetId,recordingVideoAssetId, status/verdict) — verdict of record lives onProjectReview(kind=DEFENSE).decisionLiveSession(purpose: DEFENSE)+ Fermion provider fields; recording lands asVideoAssetProjectInstance.status=DEFENSE_PENDINGIntegrityFlag(subjectType: DEFENSE)for suspicious sessionsAiUsageEvent(feature: DEFENSE_QA)for metering- FeatureFlag
defense-engine(seeded, off)
Implementation plan
- Scheduling UX: when the final milestone is APPROVED on a
defenseRequiredproject, instance →DEFENSE_PENDING; learner picks a slot from mentor availability (MentorProfile.availability), creatingDefenseSession+LiveSession(purpose: DEFENSE)viasrc/lib/fermion. - AI question plan generator (
src/lib/ai/defense.ts): analyze the learner's milestone submissions + repo diff summary → produce 8–12 probing questions targeting their specific design decisions; store inaiQuestionPlan. Use the Claude API — check current model ids/pricing via the claude-api skill at build time; meter viaAiUsageEvent(feature: DEFENSE_QA). - Mentor defense console: side-by-side question plan + live session embed + rubric quick-score; mentor can mark questions asked/answered.
- Recording pipeline: Fermion recording webhook →
VideoAsset→ linkDefenseSession.recordingVideoAssetId; optional transcription (Fermion AI transcription, $0.30/hr) →transcriptAssetId. - Verdict flow: mentor completes
ProjectReview(kind: DEFENSE)with decision PASS/FAIL; RETRY path schedules a newDefenseSession(status RESCHEDULED lineage preserved). - Post-defense AI summary: draft defense summary from transcript for the mentor to edit (feeds issue #5 patterns).
- Integrity hooks: no-show handling, impersonation suspicion →
IntegrityFlag(subjectType: DEFENSE). - Gate
ProjectInstance.PASSEDon defense PASS whendefenseRequired; flipdefense-engineflag per tier rollout.
Acceptance criteria
- Capstone with
defenseRequiredcannot reach PASSED without a DEFENSE review decision=PASS - AI question plan generated from actual submission content (not generic), stored and visible to mentor only
- Defense recorded; recording playable from the instance timeline; transcript attached when enabled
- RETRY verdict schedules a fresh session and preserves the failed attempt's record
- AiUsageEvents logged with token counts for every plan generation
Dependencies / sequencing
- MVP M10 (project engine) + M4 (Fermion live) required
- Feeds issue #2 (Flagship gate) and issue #20 (integrity suite)
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the existing DefenseSession, LiveSession, ProjectReview, VideoAsset, IntegrityFlag, and AiUsageEvent schema paths, then inspect src/lib/fermion and src/lib/ai/defense.ts plus the defense-engine flag. Trace the M10 project engine and M4 Fermion dependencies before splitting the scheduling, console, recording, verdict, and integrity flows. Done means all listed acceptance criteria pass, including the defense gate, recorded session, retry lineage, mentor-only questions, and usage metering.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- ai, backend-api-design, full-stack
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 25/100