T6G W13 Stock Opname — Harness Result (Wave PASS)
| Item |
Value |
| Wave |
W13 / SC-OPS (library stock-opname surface) |
| Contract |
T6G-W13-opname-contract-DRAFT.md (APPROVED via prompt) |
| Harness |
custom_addons_scola/gcgscola/scripts/golden/w13_runtime_certify.py |
| Overlay |
gt-w13-1.0 |
| Executed (UTC) |
2026-08-31 |
| Database |
disposable scola_t6g_opname_audit_* (template scoladev) |
| Base URL |
http://127.0.0.1:8108 |
| Result |
11/11 PASS ×2 — wave PASS (QG-17 bounded) |
Sign-off (product owner via Cursor prompt)
| Field |
Value |
| Authorized by |
product owner via Cursor prompt |
| Authorization date |
2026-08-31 UTC |
| Engineering witness |
agent session |
Cases (bounded V1 harness — P1 SC-OPS via library opname)
| Case |
Matrix ID |
Status |
Notes |
| W13-POS-COUNT-FREEZE-POST |
RT-W13-POS-01 |
PASS |
Counter create→start→scan→review; distinct poster done |
| W13-NEG-VIEWER-SELF-POST |
RT-W13-NEG-01 |
PASS |
Viewer denied; DEC-004 blocks counter self-post |
| W13-SCP-LOCATION-BOUNDARY |
RT-W13-SCP-01 |
PASS |
Location-scoped lines; wrong-location scan + foreign session denied |
| W13-STA-INVALID-TRANSITIONS |
RT-W13-STA-01 |
PASS |
Done before freeze and restart on in_progress denied |
| W13-TEN-CROSS-COMPANY |
RT-W13-TEN-01 |
PASS |
T1 list/lines exclude T2 opname |
| W13-VAL-INVALID-AND-LATE-EDIT |
RT-W13-VAL-01 |
PASS |
Invalid barcode, duplicate session, post-freeze line edit denied |
| W13-IDM-DOUBLE-POST |
RT-W13-IDM-01 |
PASS |
Second done rejected; one session per warehouse |
| W13-REC-CANCEL-RESET-RESUME |
RT-W13-REC-01 |
PASS |
Cancel→reset draft→restart counting on same session |
| W13-XRP-READER-BOUNDARY |
RT-W13-XRP-01 |
PASS |
Counter reads lines; viewer denied |
| W13-XMD-ENTITLEMENT-OFF |
RT-W13-XMD-01 |
PASS |
SC-LIB/SC-OPS off → create denied (valuation bridge deferred) |
| W13-UIA-API-ALIGNMENT |
RT-W13-UIA-01 |
PASS |
Route meta library.circulation.manage + list gate aligned |
Evidence (×2)
Engineering fixes
| Fix |
File |
Reason |
| DEC-004 counter≠poster SoD |
scola_library/models/stock_opname.py |
scola_last_counter_uid blocks self-post after freeze |
| One session per warehouse |
scola_library/models/stock_opname.py |
Active draft/in_progress/review guard on create/start |
| Post-freeze line edit guard |
scola_library/models/stock_opname.py |
Late edit denied after review/done |
| Location + company scan scope |
scola_library/models/stock_opname.py |
Foreign barcode/location rejected during count |
| Company-scoped API access |
scola_library/controllers/library_stockopname_api.py |
_get_opname denies cross-tenant session/line access |
| Stock-opname route registry |
scola_platform_support/api_route_access.py |
Prefix before /api/v1/library/ catch-all |
| Full 11-case harness + GT-OVL |
scripts/golden/w13_runtime_certify.py |
Disposable DB; counter/poster/viewer personas |
Deferred (not claimed)
| Item |
Track |
| SC-FIN valuation bridge on post |
Product/finance bridge follow-up |
| Concurrent counter policy beyond sequential IDM |
Contract deferred |
Full standalone scola_ops inventory surface |
Library opname remains bounded W13 surface |
| V1 CERTIFIED / production / QG-18 human pass |
Out of scope |
Phase 4 closure
Final Phase 4 wave complete — harness tally 5/5 (W07, W09, W13, W14, W20).
Next recommendation
Phase 5 — W12 BOS / W19 Dapodik pilot harness prep (contracts signed), then Phase 7 QG-01–18 rollup.