RC1 Independent Re-Audit Readiness¶
Outcome: READY FOR INDEPENDENT RE-AUDIT
This packet does not claim CORE RC1 CERTIFIED. It does not authorize demo or production promotion. It only binds a clean Golden freeze after remediating the blocked independent audit (RC1-C).
| Item | Value |
|---|---|
| Mode | Server development |
| Workspace | /home/scola/odoo |
| Date | 2026-08-14 |
| Docs read | AGENTS.md, AI_AGENT_MASTER_GUIDE.md, development-guide.md, workspace-governance.md, architecture-api.md, skill scola-release-promotion, T5 result, blocked RC1 independent verdict |
| Isolation | environment_isolation_check.py --live PASS (script extracted from unrelated stash; not restored into the freeze trees) |
1. Exact identity to audit¶
Frontend (scola-fe-v2 / develop)¶
| Field | Value |
|---|---|
| HEAD / served SHA | bd37c5170991aacc8ac0e0bc7b3a12c2cbf29401 |
| Application commit (DEC-014 + fail-close) | 1ffc7160a6521f7d97f4d5731ff43223846d0e11 |
| Application tree hash | eb10f68ee33086e2df0c5b93ddfc668bc4d04233ac7eed23c15a43c7b9faf31a |
Served dist/version.json |
bd37c5170991+mssoejhl · fe-build-bd37c5170991-mssoejhl |
| Serve | http://127.0.0.1:5181 (serve_golden_fe.py) |
A later docs-only evidence tip may move HEAD. Independent audit must use --allow-docs-tip only if the application tree hash above still matches and served version.json still equals bd37c517….
Backend (gcgscola / main)¶
| Field | Value |
|---|---|
| HEAD / runtime SHA | 3d7a213d2c97bb660316b65ccbd74dbe5541e46d |
| Application tree hash | 69bd9993e08d37224c3a49ff717816320caebfc0c969608cfb4689764020b2e9 |
| Runtime env | SCOLA_BACKEND_GIT_COMMIT_SHA via start_golden_with_identity.sh |
| HTTP | http://127.0.0.1:8090 |
Golden¶
| Field | Value |
|---|---|
| DB / UUID | scola_golden / 2bf5fd27-9390-11f1-9617-28e8d4be73f5 |
| Fixture | gt-core-b1.1 |
| Overlays | gt-w01-1.0, gt-w02-1.0, gt-w05-1.0 |
| Optional entitlements | LMS/CBT/Report/Fees/Admissions/ATTEND+/smart/HR OFF; scola_news=true |
| News schema upgrade | not applied (-u scola_news not run). Authoring is fail-closed, not certified. |
2. What changed since RC1-C BLOCKED¶
| Finding | Remediation | Gate |
|---|---|---|
| RC1F-001 DEC-014 caller-chosen admin reset | Server generates temp secret, must_change, one-time reveal; caller-chosen rejected |
E1.2 DEC014-ADMIN-RESET-OK-01 PASS: caller_password_denied, admin_provided_applied=false, server_generated_applied=true |
| RC1F-002 / 003 / 005 15 false-Core leaves + News authoring visible | Fail-closed productStatus + route prefixes; CORE_SUPPORTED 45 |
T1 nav-graph / parity / nav-ux PASS; inventory probe PASS |
| RC1F-004 dirty trees + W01 without identity | App/harness committed; W01 embeds backend_sha/frontend_sha |
E1.2 validator PASS on clean trees before this docs tip |
| RC1F-007 attendance unit fixture | student_ids on create fixtures |
32/32 unit (pre-freeze) |
RC1F-006 demo/prod FE 3b7e… ≠ Golden |
Unchanged on purpose. Do not promote this candidate to demo/prod | residual |
News create HTTP 500 remains if the hidden authoring API is called on Golden. That is a deployment prerequisite, not a certified Core workflow.
3. Required gates (this freeze)¶
| Gate | Result | Evidence |
|---|---|---|
Isolation --live |
PASS | extracted checker; production not modified |
| E1.2 matrix | 29/29 PASS new DEC-014 contract | execution/T0-E1.2-evidence/T0-E1.2-20260814T082252Z-security-matrix.json |
| E1.2 validator | PASS (clean trees, then docs-tip after this packet) | T0-E1.2-20260814T082252Z-runtime-manifest.json |
check:nav-graph |
PASS · 45 CORE_SUPPORTED |
execution/T1-A-surface-inventory.json |
check:core-parity |
PASS hard_count: 0 |
execution/T1-B-evidence/T1-B-core-parity-check.json |
check:core-nav-ux |
PASS hard 0 warn 0 | execution/T1-C-evidence/T1-C-core-nav-ux-check.json |
| W01 | 64/64 SHA-bound | execution/T2.1-W01-evidence/T2.1-W01-20260814T082605Z-runtime-matrix.json |
| W02 | 33/33 SHA-bound | execution/T3-W02-evidence/T3-W02-20260814T083027Z-runtime-matrix.json |
| W05 per-lesson | 16/16 SHA-bound | execution/T4-W05-evidence/T4-W05-20260814T083303Z-runtime-matrix.json |
| False-Core leaves | 15/15 fail-closed | audit/RC1-reaudit-evidence/RC1-reaudit-surface-inventory-probe.json |
4. Certification boundary (unchanged)¶
Still not certified: daily / RFID / smart / HR attendance, ATTEND+, LMS, CBT, Report Card, promotion, Fees, Finance, Admissions, analytics, complaints, messaging/notifications, News authoring, independent Calendar CRUD.
Positively in-scope for re-audit of the previous bounded claim: T0 enforcement (including corrected DEC-014), T1 surface (now 45 Core leaves), W01, W02, W05 per-lesson only.
5. Residuals the auditor must not treat as silent¶
- Unrelated isolation/promotion work remains stashed (FE
stash@{1}, BEstash@{0}) so freeze trees stay docs-tip-clean. Do not pop those stashes into the audited worktrees. - FE leftover T4 rollout
.errlogs: FEstash@{0}. - Demo/production still serve a different FE candidate (
RC1F-006). This Golden freeze is not a promotion candidate. - Direct News authoring API on Golden can still 500 (
foundation_broadcastmissing). The menu/route is fail-closed. - This document is engineering readiness, not an independent verdict.
6. Suggested independent-audit command¶
python3 custom_addons_scola/gcgscola/scripts/golden/e12_evidence_identity_validator.py \
--manifest scola-fe-v2/docs/release-readiness/execution/T0-E1.2-evidence/T0-E1.2-20260814T082252Z-runtime-manifest.json \
--results scola-fe-v2/docs/release-readiness/execution/T0-E1.2-evidence/T0-E1.2-20260814T082252Z-security-matrix.json \
--fe-root scola-fe-v2 \
--be-root custom_addons_scola/gcgscola \
--dist scola-fe-v2/dist \
--allow-docs-tip
Re-probe live identity at POST http://127.0.0.1:8090/api/public/certification-identity and GET http://127.0.0.1:5181/version.json before trusting this file.
Final engineering statement¶
RC1 remediations are frozen on Golden and ready for independent re-audit.
Not CORE RC1 CERTIFIED. Not approved for demo/production promotion.