--- id: APPROVAL-WP-0005 type: workplan title: "Approval fact contract and reusable Go data adapter" domain: infotech repo: approval-engine status: active flavor: implementation owner: codex topic_slug: netkingdom created: "2026-10-16" updated: "2026-10-23" depends_on: [] state_hub_workstream_id: "777b17de-2c1e-5ce5-aa82-c99e5137e956" --- CUST-WP-0080 explicitly selects the necessary Approval-WP-0002-T01/T05 source contract subset for the Access service HTTP B2 join. Initial scope is owner review and producer fixtures; subsequent explicit CUST-WP-0080 demand selects T03's pure reusable data adapter, agreed with Access before implementation. No broad residual activation, credential transport runtime, trust admission, policy eligibility or live action is included. ## Review authoritative claim guarantees and publish thin consumer vectors ```task id: APPROVAL-WP-0005-T01 status: done priority: high state_hub_task_id: "24bf384a-fdd0-566d-a1d3-5e89023a7521" ``` INTENT basis: factual exact-bound approval claims supplied to Access, never a second PDP. Source contract documents verified human-control semantics and their issuer admission limit, both original/subsequent observation bounds, exact native/PDP correspondence and immutable original submitted context. Producer vectors cover current lifecycle and canonical types. The superseded proposal's request-refresh design requires change; fresh facts are verified out-of-band. ## Independently integrate owner contract and coordinate Access reader conformance ```task id: APPROVAL-WP-0005-T02 status: wait blocked_on: message-from:access-engine priority: high state_hub_task_id: "3275354d-d781-53cf-aec6-975c0d4a601a" ``` Coordinator reviews/integrates these source records. Access owns the thin Go reader/normalization and conformance implementation under FLEX-WP-0024-T06; Secrets owns strict immutable handoff and Platform owns provider origin/custody and final client pin. Native issuer/profile and served-PEP obligations remain live under APPROVAL-WP-0002-T01/T05, with audit under T04. No new native residual is created, promoted or marked complete by these source-only fixtures. ## Supply producer-owned reusable Go claim and native binding data adapter ```task id: APPROVAL-WP-0005-T03 status: done priority: high state_hub_task_id: "362bfe75-1cd7-5081-971b-b55ce483c802" ``` Explicit bounded implementation demand after Access confirmed the exact module and raw-JSON API: adapters/go/approvalfact contains the existing Python-native five-field canonicalization port and strict human/PDP-path typed claim validation plus original/fresh fact matching. It is pure data code, not a source transport, credential runtime, policy evaluator or consume service. Fact means validated shape/correspondence, never authenticated provider origin. Fourteen pinned native vectors and 24 claim cases pass in Go, with strict duplicate/Unicode/type/expiry defenses and detached original bytes. A 14,114-case deterministic differential corpus matches actual Python producer canonical bytes and digests; Go race tests pass. This is source sample evidence, not exhaustive proof or native acceptance. An initial module toolchain selection failure and shared cache sandbox refusal are retained in preparation evidence; final module uses Access's existing Go1.26.7 and completed tests. Access explicitly retains the expected-native-raw-source correspondence gate: its current decoded float64 maps cannot recover Python float/int identity. The current pilot's raw resource may be used only with proof of no active target registry override plus exact existing tenant normalization. Other enrichment needs authoritative raw source/compiler representation. No numeric restriction, digest substitution, foreign review, runtime enable or live proof is invented. T02 still owns independent source integration/handoff; existing T01/T05 native residual obligations and actual Access conformance/integration remain unchanged. 2026-10-23 handoff: Access still owns the thin reader and conformance under FLEX-WP-0024-T06. Owner contract remains `docs/access-claim-fact-reader.md`. The 2026-10-16 review `docs/reviews/2026-10-16-access-claim-fact-reader-owner-review.json` requested changes and did not accept a native join. No signed claim is added. T02 stays `wait` until Access returns conformance evidence. The work-record index matches that status.