Lewati ke isi

T6G W12 BOS/RKAS Procurement Product Contract — APPROVED (Pilot Prep)

Field Value
Status APPROVED (product owner via Cursor prompt) — Phase 5 pilot
Wave W12 / SC-BOS Controlled Pilot
SKU PILOT-BOS-W12 — composite SC-FIN + SC-OPS + SC-BOS
STAB STAB-012 (idempotency, SoD, attachment ownership)
Harness (planned) w12_runtime_certify.py
Prerequisite SC-FIN W11 PASS; SC-OPS not yet certified
Owner sign-off SIGNED via prompt

Sign-off (product owner via Cursor prompt)

Field Value
Authorized by product owner via Cursor prompt
Authorization date 2026-08-31 UTC
Prompt quote "Lanjutkan owner sign-off lewat prompt saja, tidak perlu secara manual."
Engineering witness agent session

Bounded pilot V1: requester≠approver (STAB-012); tenant allowlist required before harness. Deferred: production-wide BOS rollout.

1. Scope

In scope Out of scope
Purchase request create → approve → PO → receipt (pilot path) General inventory without BOS entitlement
Budget line commitment against RKAS Full foundation analytics (SC-FOUND)
Pilot allowlist per tenant/role Production-wide BOS rollout
Attachment ownership on PR/PO Non-pilot company procurement

Bound decisions: DEC-003, DEC-004, DEC-006, DEC-007, DEC-008, DEC-009, DEC-010, DEC-012.


2. Actors

Actor Capabilities (draft) Notes
Requester (maker) Create/submit PR within assigned cost center [OWNER: confirm capability codes]
Approver (checker) Approve/reject PR; distinct from requester DEC-004 SoD — STAB-012
Procurement operator PO create/receive post-approval Cannot approve own request
Finance viewer Read commitment/PO status No mutate
Inventory receiver Confirm receipt only Scope to assigned location
Pilot admin Allowlist config only [OWNER: who configures pilot]

3. State machine outline

stateDiagram-v2
    [*] --> draft
    draft --> submitted: requester submit
    submitted --> approved: approver approve
    submitted --> rejected: approver reject
    approved --> po_created: procurement create PO
    po_created --> received: inventory receipt
    received --> realized: finance realization
    rejected --> [*]
Transition Maker Checker [OWNER: rule]
draft → submitted Requester Budget line required?
submitted → approved Approver Maker ≠ approver (STAB-012)
approved → po_created Operator Idempotent on PR ID
po_created → received Receiver One receipt per PO line?

4. Blocking RT-* / control IDs

ID Category Blocker
STAB-012 Defect Idempotency, SoD, attachment ownership
RT-W12-POS-01 POS Harness implemented
RT-W12-NEG-01 NEG DEC-004 bounded in model
RT-W12-STA-01 STA State guards in model
RT-W12-XMD-01 XMD SC-BOS entitlement gate
RT-W12-UIA-01 UIA Route meta aligned
All RT-W12-* All PASS bounded harness 2026-08-31

Engineering modules: scola_bos_rkas_procurement (procurement_admin_api.py, purchase_request.py).


5. Harness plan

Step Command / artifact
1 Owner signs this contract + pilot allowlist manifest
2 Close or accept STAB-012 with owner
3 Implement scripts/golden/w12_runtime_certify.py
4 Seed overlay: GT-OVL-SC-BOS on entitled pilot tenant
5 Run ×2 on disposable DB; evidence → execution/T6G-W12-evidence/
6 Closure decision doc; matrix §3 row update

Phase 5 gate: Do not start harness until Phase 4 owner path is clear and W11 remains PASS @ tip.


6. Owner sign-off

# Decision Owner Date Checkbox
1 Pilot tenant allowlist (named schools) [OWNER]
2 Maker-checker matrix (DEC-004 domain: BOS) [OWNER]
3 Budget commitment vs PO vs receipt authority [OWNER]
4 Attachment type/size/retention policy [OWNER]
5 Kill switch + pilot expiry/review date [OWNER]
6 Approve engineering harness start Product owner 2026-08-31

Product owner signature: prompt-signed (Cursor) Date: 2026-08-31