Lewati ke isi

T6F W09 Payroll — Harness Result (Wave PASS)

Item Value
Wave W09 / SC-PEOPLE
Contract T6F-W09-payroll-contract-DRAFT.md (APPROVED via prompt)
Harness custom_addons_scola/gcgscola/scripts/golden/w09_runtime_certify.py
Overlay gt-w09-1.0
Executed (UTC) 2026-08-31
Database disposable scola_t6f_payroll_audit_* (template scoladev)
Base URL http://127.0.0.1:8107
Result 11/11 PASS ×2wave 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-PEOPLE standalone)

Case Matrix ID Status Notes
W09-POS-COMPUTE-TO-CONFIRM RT-W09-POS-01 PASS Operator save+compute; distinct approver confirm; employee sees one done payslip
W09-NEG-UNAUTHORIZED-MUTATION RT-W09-NEG-01 PASS Viewer/employee denied; operator maker-checker blocks self-confirm
W09-VAL-MISSING-CONTRACT RT-W09-VAL-01 PASS Save without contract rejected
W09-STA-RECONFIRM-DENIED RT-W09-STA-01 PASS Re-confirm on done denied
W09-IDM-DUPLICATE-PERIOD RT-W09-IDM-01 PASS Second same-period create rejected
W09-REC-CANCEL-DRAFT-RESUME RT-W09-REC-01 PASS Cancel→draft→compute→approver confirm restores done
W09-SCP-SELF-AND-PEER-BOUNDARY RT-W09-SCP-01 PASS Employee reads own; peer denied; operator detail allowed
W09-TEN-CROSS-COMPANY RT-W09-TEN-01 PASS T1 list excludes T2 payslip
W09-XRP-EMPLOYEE-VISIBILITY RT-W09-XRP-01 PASS Draft hidden; done visible to employee
W09-XMD-ENTITLEMENT-OFF RT-W09-XMD-01 PASS SC-PEOPLE/payroll off → feature_disabled (attendance bridge deferred)
W09-UIA-API-ALIGNMENT RT-W09-UIA-01 PASS Route meta + state-counts gate aligned

Evidence (×2)

Run Artifact
1 T6F-evidence/T6F-W09-20260831T131228Z-runtime-matrix.json
2 T6F-evidence/T6F-W09-20260831T131430Z-runtime-matrix.json

Engineering fixes

Fix File Reason
DEC-004 maker-checker on confirm scola_payroll/models/hr_payslip.py scola_last_operator_uid blocks operator self-confirm
Duplicate period guard on create scola_payroll/models/hr_payslip.py, payslip_admin_api.py IDM: one payslip per employee/period
Employee self-scope done-only scola_payroll/controllers/payroll_api.py Draft payslips hidden from /api/payroll/my/payslips
Full 11-case harness + GT-OVL-SC-PEOPLE seed scripts/golden/w09_runtime_certify.py Disposable DB; operator≠approver personas

Deferred (not claimed)

Item Track
STAB-010 full viewer/operator/approver projection split Product/ACL follow-up
Batch confirm harness Contract deferred
Attendance/accounting journal bridge (om_hr_payroll_account) Separate finance bridge
V1 CERTIFIED / production / QG-18 human pass Out of scope

Next wave recommendation

W13 opname — contract signed; harness pending.