KAI-VORAL-RRA-001 — Release Readiness Assessment
Template ID: TPL-08-01 | Stage: 08-Release-and-Deploy | Version: 0.3
Status: Project record created from the controlled template.
Purpose: Check, in one place, that the release candidate is complete, verified, risk-reviewed and deployable before asking for approval.
Required inputs: Verification report; RTM; risk register; SBOM; change log; rollback plan.
Document control
| Field |
Required entry |
| Document ID |
KAI-VORAL-RRA-001 |
| Template used |
TPL-08-01 Release Readiness Assessment v0.3 |
| Product / project / software version or commit SHA |
VORAL (Visionary Oral) / PRJ-001 / a6b4429e3165 (branch app_dev of AI-Dental-Project/Visionary_Oral) |
| Record status and version |
Draft v0.1 |
| Author / technical reviewer / quality reviewer |
Claude Code (drafted with Claude Code for KrinosAI) / Tech Lead (name to be assigned) / Security & Privacy Officer (name to be assigned) |
| Created / updated / approved dates |
2026-10-28 / 2026-10-28 / Pending |
| Applicable SOP and revision |
SOP-LC-08 v0.3 |
| Related issue, commit, requirement and evidence links |
KAI-VORAL-VER-001; KAI-VORAL-SBOM-001; KAI-VORAL-CHG-001 |
| Approver and decision record |
Pending |
Applicability and evidence baseline
Product / system boundary: Web app and API (dentalapp/), doctor/admin mobile app (mobile/), on-device models (mobile/assets/models/), PDF Lambda (dentalapp/pdf-lambda/) at a6b4429e3165, and the external services they call.
Related approved requirements, risks and change records: None approved. Related drafts are listed in document control.
Retrospective record? Yes — follows the Retrospective Documentation Protocol (KrinosAI lifecycle pack, 05-References/). Items are labelled Observed (code or Git at a6b4429), Measured (dated run), Stated (named person, dated) or Not recorded. No controlled release has been recorded (OPEN-046). These records describe the release mechanism found in the code (mobile/eas.json, mobile/app.json), the builds measured in this documentation work, and the plan for the first controlled release.
Acceptable evidence: an implementation reference (file:line at a commit SHA), a dated test record, a signed decision, a vendor agreement, or another independently verifiable artifact. Never invent approvals, clinical results, measurements or performance data.
1. Tagged version and inventory
| Artifact |
Version |
Digest |
| Web app and API |
0.1.0 at a6b4429e3165 |
No build digest recorded (OPEN-046) |
| Android app |
1.0.0; build number set by EAS (appVersionSource: remote, mobile/eas.json) |
Not recorded |
| On-device models |
Bundle 0.1.0-poc |
SHA256 per manifest — Measured match 2026-10-28 |
| PDF Lambda |
dentalapp/pdf-lambda/ at a6b4429 |
Not recorded |
2. Requirements verification and validation status
| Item |
Status |
| Verification |
Not passed — KAI-VORAL-VER-001 |
| Clinical validation |
Not started — OPEN-011 |
| UAT |
Not held — OPEN-045 |
3. Risk cybersecurity and privacy review
| Item |
Status |
| Threat model |
Open critical items — OPEN-026, OPEN-033, OPEN-017 |
| DPIA |
Not approved — OPEN-009 |
| Dependencies |
5 critical advisories — OPEN-037 |
| Secrets in Git |
Not resolved — OPEN-007, OPEN-008 |
4. Outstanding defects and deviations
| ID |
Severity |
Disposition |
| BUG-001 (BUG) |
Critical |
Must fix before release |
| BUG-002 (BUG) |
Critical |
Must fix before release |
| BUG-003 (BUG) |
Critical |
Must fix before release |
5. Deployment staging and rollback readiness
| Item |
Result |
| Staging |
None — OPEN-040 |
| Deployment plan |
KAI-VORAL-DPL-001 (draft) |
| Rollback plan |
KAI-VORAL-RBP-001 (draft); no backups to restore from — OPEN-048 |
6. Approver go/no-go decision
| Recommendation |
By |
Date |
| No-go (Claude Code assessment; the decision belongs to the release approver) |
Claude Code |
2026-10-28 |
Open issues and decisions
| ID |
Specific gap or decision |
Responsible owner |
Due date |
Blocks gate? |
Evidence required |
Status |
| OPEN-001 |
Tracker project ID, named requester and sponsor, and named reviewers are not recorded |
Product Owner |
2026-11-10 (proposed) |
Yes |
Tracker entry; names with roles |
Open |
| OPEN-007 |
Credential files committed to Git: dentalapp/google-credentials.json, dentalapp/mongoDb_usernamePassword (contents not opened) |
Security & Privacy Officer |
2026-10-31 (proposed) |
Yes |
Credentials rotated; files removed and purged from history; confirmation |
Open |
| OPEN-008 |
Database backups with personal data committed to Git: 9 files under dentalapp/backups/ (commit 92a4b77; contents not opened) |
Security & Privacy Officer |
2026-10-31 (proposed) |
Yes |
Files purged from history; breach/incident assessment recorded |
Open |
| OPEN-009 |
No DPIA |
Security & Privacy Officer |
2026-11-30 (proposed) |
Yes |
DPIA |
Open |
| OPEN-011 |
No clinical validation |
Clinical advisor with ML Lead |
2026-12-15 (proposed) |
Yes |
Validation study |
Open |
| OPEN-017 |
Admin session signing uses a hard-coded fallback secret when JWT_SECRET is unset (dentalapp/src/lib/admin/session.js:4) |
Backend Lead |
2026-11-10 (proposed) |
Yes |
Code fix; secret confirmed set |
Open |
| OPEN-026 |
Critical: 20 API routes have no authentication check, incl. /api/admin/patient-sample (patient emails) and /api/admin/api-usage (doctor names and emails), support tickets/messages, and paid AI routes (/api/detect-gemini, /api/speech-to-text, /api/validate-scan) — see docs/lifecycle/_evidence/api-inventory-a6b4429.md |
Backend Lead |
2026-10-31 (proposed) |
Yes |
Auth added to each route; re-run of the inventory shows none unprotected |
Open |
| OPEN-033 |
Critical: deprecated POST /api/admin/signup is public and creates admin profiles with a password for anyone (dentalapp/src/app/api/admin/signup/route.js:14-60); POST /api/admin/auth issues admin sessions signed with a fallback secret (OPEN-017). Full privilege path not verified |
Backend Lead |
2026-10-31 (proposed) |
Yes |
Routes removed or locked down; check that no password-based admin can sign in |
Open |
| OPEN-037 |
Known vulnerable dependencies (npm audit 2026-10-27 16:50 UTC): web 4 critical (incl. next, @clerk/nextjs), 23 high; mobile 1 critical, 4 high (incl. expo) — fixes available for all |
Tech Lead |
2026-11-15 (proposed) |
Yes |
Upgraded lock files; clean re-run of npm audit |
Open |
| OPEN-040 |
No staging environment or documented environment separation; which data each environment may hold is not recorded |
Tech Lead |
2026-11-30 (proposed) |
No |
Environment record with staging and data-class rules |
Open |
| OPEN-045 |
No user acceptance testing with clinic users has been recorded |
Product Owner |
2026-12-15 (proposed) |
Yes |
UAT record with named participants, results and decision |
Open |
| OPEN-046 |
No release process: no Git tags, release approvals, deployment records or post-deployment checks; mobile builds are manual eas build runs and the web deployment is not recorded |
Tech Lead |
2026-11-30 (proposed) |
Yes |
Tagged release with approval, deployment record and verification |
Open |
| OPEN-048 |
No backup schedule, RPO/RTO or restore test for MongoDB, Cloudflare R2 and AWS S3 |
Backend Lead |
2026-11-30 (proposed) |
Yes |
Dated restore test meeting the agreed RPO/RTO |
Open |
Review and approval
| Review role |
Named individual |
Decision |
Date |
Signed / controlled record |
| Author |
Claude Code (drafted with Claude Code) |
Draft |
2026-10-28 |
This file at the commit that adds it |
| Technical reviewer |
Tech Lead (name to be assigned) |
Pending |
Pending |
Pending |
| Quality / regulatory reviewer (if applicable) |
Qualified regulatory reviewer (name to be assigned) |
Pending |
Pending |
Pending |
| Authorized approver |
Product Owner (name to be assigned) |
Pending |
Pending |
Pending |