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