Skip to content

Remaining Work (7 October 2026)

As of: 2026-09-22 · Release gate: AC01–AC21 (re-baselined), zero critical/high defects, blended cost ≤ $0.15/paid minute, Kevin sign-off.


Executive summary

DimensionEstimate
MVP scopeAuth, positions, candidates, day-window scheduling, credits/Stripe, live AI interview, proctoring, reports, retention, ops
Built~30–40% — core API/web, ledger, settlement, report generation; not launch-ready
Remaining~40–50 dev-days open tickets + ~15–25 dev-days FR19, load/capacity, qualification harnesses
Capacity (§18.6)270 build-hours; 120 QA-hours final week
Calendar~15 days to 7 Oct; feature freeze 29 Sep at risk

Working today: Auth through schedule/reserve, candidate lobby/live (Daily), settlement + report Lambda consumers, Stripe credits; no production email, sweepers, report UI/PDF, or FR19. Identity: Firebase in code vs Cognito in spec (T-002).


Priority 1: Critical Path

Feature / work itemWhat it doesCurrent stateDependenciesKey files / modulesRisk
Email + ICS invitation systemCandidate day-window invite + .ics; team invite emails🔴 Not started (dev logger only)SMTP/SES, WEB_BASE_URL, brandingapps/api/src/modules/interviews/invitations/*, T-017High
Notification system (async email)Report-ready/failed, funding alerts, completion, retention warnings🔴 Not startedT-017 queue + consumerinfra/queues.ts, T-017High
Interview expiry sweeperExpire scheduled past expiresAt; release credits; notify🔴 Not startedCredit release, T-017interview.model.ts, T-018High
Credit lot expiry sweeperForfeit unreserved credits on expired lots🟡 Partial (expireLot; no scheduler)T-009credit.service.ts, T-018High
Short-session deterministic result<60s or <2 substantive answers → insufficient evidence🟢 ImplementedBot transcript/substantiveAnswersreport-generation.service.tsLow
Abuse controls (short-session blocking)Block wallet gaming on ultra-short sessions🔴 Not startedSettlement + thresholds§15Medium
Proctoring + credibility pipeline (FR19)Detectors + AI-likeness → credibility score🔴 Not started (schema only)G0b; bot + PATCH proctoringcleverhire-bot, bot-interview.service.tsHigh
PDF + evidence exportRecruiter PDF; evidence bundle with expiring URLs🔴 Not startedReport data, S3T-015High
Report viewing UISkills, transcript, integrity, recording, export🔴 Not startedT-014apps/web, T-015High
Recording managementLifecycle, playback URLs, purge🟡 Partial (Daily enabled; no bucket/lifecycle)Daily, retention sweeperdaily.service.ts, infra/storage.tsHigh
Data retention purge pipelinePurge at retentionExpiresAt; warnings🔴 Not startedT-018 + T-017data-lifecycle.mdHigh
Reconciliation job (cache vs ledger)Daily compare; alarm on drift🔴 Not startedT-009T-018High
Capacity scaling (3 → 10 concurrent bots)Platform 10, 3/workspace; soak + 100-session qual🔴 Not met (default 3)Bot max_concurrent_botscleverhire-bot/server/services/bot_manager.pyHigh
Bot E2E production pathSophia adapter + stable BOT_BASE_URL🟡 Partialcleverhire-bot tenant routerbot-interview.service.tsHigh
QA contract re-baselineAlign AC/WP with day-window + ICS🔴 OpenSpec lock v0.5PRODUCT_CONTEXT.md Q13High
Wallet qualification (WAL01–WAL24)≥1k sequences + fault injection🔴 Not startedSettlement + sweepers§15.1High
Proctoring qualification (PRO + held-out set)Detector metrics, 10× concurrent🔴 Not startedFR19§15.2High
CloudWatch alarms + DLQ opsDLQ depth, reconciliation drift, stall ≤60s🔴 Not startedInfra + runbooksinfra/, monitoring.mdMedium
Internal contract docs + adapter testsVersioned events/API for ATS🟡 Partial (Zod only)Stable bot/APIFR18, C14Medium
ClusterTickets / workEst.
Notifications + ICST-0174d
Sweepers + reconciliationT-0183d
Report UI + exportT-0154d
FR19 proctoring (engineering + qual)WP25 / not ticketized10–20d
Capacity 3→10 + soak + 100-sessionLoad qual5–8d
WAL + fault injection harnessQA engineering5–8d
Bot adapter E2E hardeningT-012 remainder3–5d

Priority 2: Should Have

Feature / work itemWhat it doesCurrent stateDependenciesKey files / modulesRisk
Operator consoleDLQ replay, org lookup, credit adjustments🔴 Not startedAuth/RBACFR17Medium
Cost monitoring / alertingBlended $/minute toward $0.15 gate🔴 Not measuredBot costMetricsnfr-and-quality-gates.mdHigh
Interview reminder emails24h before window expiry🔴 Not startedT-017FR15Medium
WAL01–WAL24 automated coverageDeterministic wallet tests🔴 Not startedP1 settlement/sweepers§15.1High
Chargeback / funding deficitChargeback → deficit; block commits🔴 Not startedStripe webhookscredit.service.tsMedium
Credit restoration flowWAL13 remedies🔴 Not startedOperator + ledger§8Medium
Resume validation (scanned-only rejection)Block unreadable résumé at schedule🟡 PartialUX + validationinterview.service.tsLow
Error analyticsStructured error rates, SLOs🟡 Partial (Pino only)CloudWatchobservability.tsMedium
Settings + org branding (T-016)Admin settings + email branding🔴 Not startedT-017T-016Medium
Disconnect → abandoned sweeperdisconnected >3 min → abandoned + settle🔴 Not startedT-018T-018Medium
Workspace concurrent cap (3)Per-org live limit🔴 Not startedBot/APIFR17Medium
Provider evidence cleanup (72h)Deletion attestation🔴 Not startedRunbooks§22.4Medium
On-call + runbooksDLQ, report retry, rollback🔴 Not startedOperator consoledocumentation-gaps.mdMedium
Identity spec alignmentCognito vs Firebase🟡 DriftADRT-002, T-003Medium

Priority 3: Can Ship Without

Feature / work itemWhat it doesCurrent stateDependenciesKey files / modulesRisk
Public product / pricing / help / policy pagesMarketing-lite (C03)🔴 Not startedStatic pages§3.1 item 14Low
Sample reportDemo without live credits🔴 Not startedT-015Low
Enhanced PDF stylingPolished export🔴 Not startedT-015Low
Bulk CSV/XLSX scheduling100-row import🔵 OPENQ14C10/FR06Medium if promised
In-product notification bellFR15 in-app🔴 Out of v1Low

Phase 2 (Post-Launch)

ItemNotes
Dual camera / phone QR companionG6 / Phase 2
Enterprise SSO (SAML/Okta/Entra)Excluded Phase 1
ATS integrations + production CleverHire adapterG5
Apple / Microsoft sign-inDeferred from C09
Custom domains / white labellingOut of scope Phase 1
Enhanced pricing tiersPhase 2
Template libraryDropped
Google / Microsoft calendarDropped

Dependencies Graph

flowchart TB
  subgraph foundation [Foundation - largely done]
    AUTH[Auth + workspace]
    MODELS[Models + contracts]
    POS[Positions]
    CAND[Candidates + resume]
    CRED[Credits + Stripe]
    SCHED[Interview schedule + reserve]
  end

  subgraph p1_core [P1 critical path]
    EMAIL[T-017 Email + ICS + alerts]
    SWP[T-018 Sweepers + reconciliation]
    BOT[Bot E2E + capacity 10]
    PROC[FR19 Proctoring + credibility]
    RPTGEN[Report generation - done]
    RPTUI[T-015 Report UI + PDF/evidence export]
    RET[Retention purge + recording lifecycle]
    QA[QA re-baseline + WAL/PRO qual]
  end

  subgraph p2 [P2 should have]
    OPS[Operator console + runbooks]
    MON[Cost monitoring + alarms]
    SET[T-016 Settings/branding]
    CB[Chargeback + restoration]
  end

  AUTH --> SCHED
  POS --> SCHED
  CAND --> SCHED
  CRED --> SCHED

  SCHED --> EMAIL
  SCHED --> SWP
  SCHED --> BOT

  BOT --> PROC
  BOT --> RPTGEN
  CRED --> SWP
  SWP --> EMAIL

  RPTGEN --> RPTUI
  PROC --> RPTUI
  SWP --> RET
  RET --> EMAIL

  RPTUI --> QA
  SWP --> QA
  PROC --> QA
  BOT --> QA

  EMAIL --> SET
  SWP --> OPS
  CRED --> CB
  MON --> QA

Critical path: Schedule → Bot E2E → Proctoring → Report UI/export → WAL/PRO qual → Release.


Risks & Blockers

#RiskImpactMitigation status
1Detector feasibility (FR19)Release blocker🔴 G0b; hybrid design not implemented
2Capacity 3 → 10AC load gates fail🔴 max_concurrent_bots=3
3Cost gate ≤ $0.15/paid minuteCommercial blocker🔴 Not measured
4FR18 extraction risksData/billing bugs🟡 Settlement idempotent; rest partial
5Bot couplingDual-product outage🟡 No versioned adapter
6Spec / QA driftFalse “done”🔴 Re-baseline OPEN (Q13)
7Cross-tenant leakSeverity-1🟡 No AC03 suite
8Cache vs ledger driftBilling corruption🔴 Reconciler not running
9Stripe / entity / taxCannot sell🟡 External; code exists
10Report quality / integrity over-claimTrust/legal🟡 Qual not run
11PRODUCT_CONTEXT §25 stalePlanning error🟡 Use generated docs + this file

Schedule: Feature freeze 29 Sep / G3 6 Oct assume §18.1 complete; ~60–65% work remains — re-baseline milestones (Kevin/Salman).


Tickets Reference

TicketTitlePriorityStatus (2026-09-22)Remaining work
T-001Database models + contractsP0🟢 Mostly donev2 fields, proctoring tuning
T-002Auth infrastructureP0🟡 Done (Firebase)Cognito ADR
T-003Signup + workspaceP0🟢 DoneTrial credits config
T-004Login + recoveryP0🟢 Done
T-005Team invitesP0🟡 PartialInvite email (T-017)
T-006PositionsP0🟢 Done
T-007Candidates + resumeP0🟢 DoneScanned-only gate
T-008NotesP1🟢 Done
T-009Credits + StripeP0🟡 Mostly doneChargeback; lot sweeper
T-010Scheduling + reserveP0🟡 Mostly doneProduction invitation
T-011Candidate journeyP0🟡 Mostly doneFR19 gates; browser QA
T-012Bot + runtimeP0🟡 PartialProduction router; proctoring
T-013Settlement consumerP0🟢 DoneWAL fault tests
T-014Report generationP0🟢 Done
T-015Report UI + exportP0🔴 Not startedFull scope
T-016Settings + brandingP1🔴 Not startedAPI + /settings
T-017NotificationsP1🔴 Not startedP1 launch
T-018SweepersP1🔴 Not startedP1 launch
T-019App shellP1🟢 DoneSettings when T-016
T-020Interviews CRUDP0🟢 DoneSwap ports as needed

Focus order: T-017 → T-018 → Bot E2E + capacity → FR19 MVP → T-015 → WAL/PRO + QA re-baseline → T-016 + monitoring.

Sophia AI Interview Platform — Internal Documentation