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 ×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-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)
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.