Lewati ke isi

T4 — Post-SCORE Track Charter: W16 Canonical News

Mode: Server /home/scola/odoo
Approval: APPROVED_BY_REQUESTING_USER_CONVERSATION (2026-08-29) — W16-1 DEC signed; W16-2 engineering in progress
Track ID: POST-SCORE-W16
Tip baseline (post SC-CORE): FE 1d7a9038… / BE 6033c21… (rebind binds exact current-tip SHA at W16-4 closure)

1. Scope

In scope

Workstream Suite Denominator Primary harness
W16 CORE-W16 11 matrix rows (§5.3) w16_runtime_certify.py — scaffold BE 84b46c7 (11 cases: 5 executable probe, 6 SKIP pending DEC freeze)

Contract under test: scola.news is the sole canonical writable source. Legacy announcement must be read-only/migrated/removed, never a second writer (EV-W16, STAB-033, IA-010).

Matrix rows in denominator (§5.3):

Row Current status Phase W16-1 target
RT-W16-POS-01 NOT RUN PASS after harness
RT-W16-NEG-01 NOT RUN Unblocked — DEC-003/004 signed 2026-08-29
RT-W16-SCP-01 NOT RUN PASS after harness
RT-W16-TEN-01 NOT RUN PASS after harness
RT-W16-VAL-01 NOT RUN PASS after harness
RT-W16-STA-01 NOT RUN Unblocked — DEC-007 signed 2026-08-29
RT-W16-IDM-01 NOT RUN PASS after harness
RT-W16-REC-01 NOT RUN Unblocked — DEC-010 signed 2026-08-29
RT-W16-XRP-01 NOT RUN Unblocked — DEC-010 signed 2026-08-29
RT-W16-XMD-01 NOT RUN Unblocked — DEC-011/STAB-033; legacy guard W16-2
RT-W16-UIA-01 NOT RUN Unblocked — STAB-033; FE canonical routes verified in audit

E1.2 regression smoke (29/29) runs after W16 rebind to guard cross-module integrity.

Out of scope (explicit defer)

Item Reason When
UAT PROMOTE_UAT Gelombang terpisah W16+; isolation mismatch expected Post W16 engineering + explicit UAT wave
Production promotion Requires immutable CERTIFIED manifest Not authorized
Demo candidate refresh Optional after W16-4 green Phase optional
Profile matrix (RT-PROFILE-*) Track terpisah — T4-PROFILE-DEC013-track-charter.md Parallel, not W16 denominator
W02 async import IDM/REC Track terpisah — T4-DEC-W02-async-import-freeze.md Parallel, not W16 denominator
W03 admissions Track T6A terpisah Post SC-CORE

2. Actors

Actor Responsibility
Engineering (server-first) Execute phases W16-0..4; produce evidence JSON bound to exact FE/BE SHA
Product (conversational sign-off) Approve bounded freezes in T4-DEC-W16-bounded-freezes.md
Human auditor Independent spot-check optional; historical SC-CORE verdicts not rewritten

3. Phase order (mandatory)

Phase W16-0 — Charter (this doc)
Phase W16-1 — DEC bounded freezes (approval matrix, reversal, notification, legacy migration)
Phase W16-2 — Code: FE canonical routes/menu (IA-010); BE scola_news lifecycle, legacy guard, audience/outbox idempotency
Phase W16-3 — Harness: w16_runtime_certify.py on Golden :8090 (scaffold done; full PASS after W16-1 freeze + W16-2 code)
Phase W16-4 — Rebind: update §5.3 matrix + V1-W16-rebind-<stamp>.json; QC + E1.2 regression smoke

SHA rule: All W16 code changes complete first → single final W16 harness rebind → one evidence bundle per track.

Precondition: W16-1 product freezes wajib sebelum W16-2 coding dan W16-3 harness — BLOCKED rows tidak boleh di-claim PASS tanpa signed bounded options.

4. Non-claims

  • UAT promotion (PROMOTE_UAT) = out of track — meskipun W16 selesai, UAT tetap gelombang terpisah.
  • Production promotion = not authorized from this track alone.
  • Profile jenjang/timezone positive matrix = not part of W16 denominator — see Profile track.
  • Async import certification = not part of W16 denominator — see Async track.
  • Legacy announcement write path = must be absent or read-only after STAB-033; no dual-writer claim.

5. Matrix rows target (W16-4 closure)

Row Target Primary evidence
POS-01 PASS Authorized publish lifecycle + audit
NEG-01 PASS Capability/approval matrix per DEC-003/004 freeze
SCP-01 PASS Author ownership + audience scope
TEN-01 PASS Cross-tenant denial
VAL-01 PASS Invalid window/target/file rejected atomically
STA-01 PASS State machine per DEC-007 freeze
IDM-01 PASS Duplicate publish/cron/outbox idempotent
REC-01 PASS Notification failure recovery per DEC-010 freeze
XRP-01 PASS Publish/correction/archive propagation per DEC-010
XMD-01 PASS Legacy read-only/migrated per DEC-011/STAB-033
UIA-01 PASS (bounded) One canonical create/publish route; legacy write absent

6. Exit gate (track complete)

  • [x] W16 harness 11/11 PASS on Golden BE b85212d / FE 5bebc1b4T5-W16-20260829T030129Z-runtime-matrix.json
  • [x] V1-W16-rebind-20260829T030500Z.json in V1-current-tip-evidence/
  • [x] §5.3 matrix rows updated; README current-tip pointer if applicable
  • [x] Full QC green (FE lint:diff + type-check + nav-graph + build; BE py_compile + unit + modular checks)
  • [x] E1.2 29/29 regression smoke PASS — T0-E1.2-20260829T030309Z-security-matrix.json
  • [x] Bounded freezes signed: T4-DEC-W16-bounded-freezes.md — 2026-08-29
  • [x] W16-4 rebind complete — track engineering exit; UAT/production remain out of scope

7. References

Artifact Path
Closure decision T4-W16-closure-decision.md
Program SSOT V1-PLAN-POST-SCORE-W16-PROFILE-ASYNC.md
Bounded product freezes T4-DEC-W16-bounded-freezes.md
Runtime matrix SSOT 07-release-test-matrix.md §5.3
SC-CORE closure T4-SCORE-closure-decision.md
STAB-033 08-stabilization-backlog.md
W16 roadmap unit 10-implementation-roadmap.md §8 T5-U02
Canonical news model custom_addons_scola/gcgscola/scola_news/models/scola_news.py
Legacy announcement custom_addons_scola/gcgscola/scola_portal/models/announcement.py