--- id: FLUID-WP-0004 type: workplan title: "Revision publication pipeline and control APIs" domain: infotech repo: fluid-core status: active owner: worsch topic_slug: fluid-core created: "2026-09-04" updated: "2026-09-04" planning_priority: high planning_order: 3 depends_on: - FLUID-WP-0003 state_hub_workstream_id: "2221f88d-ffc5-5e22-80c2-d67a1b17f8ba" --- # FLUID-WP-0004 - Publication and control APIs Nothing reaches the router unsigned. The deterministic policy gate is built now, before anything can generate candidates, so a future Daimon has nowhere to bypass. ## T01 - Publication pipeline ```task id: FLUID-WP-0004-T01 status: todo priority: high state_hub_task_id: "74bf29c7-b8a6-5a18-bfc7-94641d12564b" ``` Blueprint §35: SOURCE, BUILD, CONTRACT CHECK, TEST, SECURITY CHECK, POLICY CHECK, SIGN, PUBLISH, ROUTE. Each stage emits an audit event. ## T02 - Descriptor signing and verification ```task id: FLUID-WP-0004-T02 status: todo priority: high state_hub_task_id: "9449aa0b-3c73-56d5-8768-df94b26f0282" ``` The router accepts only signed or otherwise authenticated published revision descriptors (§35). An unsigned descriptor must be refused, and that refusal tested. ## T03 - Revision API ```task id: FLUID-WP-0004-T03 status: todo priority: high state_hub_task_id: "ba302369-3243-57ac-a34a-9a0a29002ac5" ``` Blueprint §44.1: create, verify, publish, set state, query lineage. ## T04 - Intent API ```task id: FLUID-WP-0004-T04 status: todo priority: medium state_hub_task_id: "27c597da-4f58-5a0d-b70e-8ba0749d9002" ``` Blueprint §44.5: read active intent, read historical intent, validate a candidate against intent, propose an amendment. Amendment stays separately governed — the API records a proposal, it does not enact one. ## T05 - Deterministic policy gate ```task id: FLUID-WP-0004-T05 status: todo priority: high state_hub_task_id: "b2f96c6c-2c37-5892-bafd-ab9eb2c3f8c2" ``` Blueprint §28.2. Allowed adaptation class, permitted operational mode, complexity threshold, security status, test status, compatibility status, traffic-allocation maximum, budget, approval requirement. This gate is the architectural boundary that stops agentic reasoning from becoming security policy. ## T06 - Trust model in the type system ```task id: FLUID-WP-0004-T06 status: todo priority: medium state_hub_task_id: "70cc234b-9570-5c51-8620-1a7d32b9a25c" ``` Blueprint §47 made mechanical: generated artifacts are an untrusted candidate type until verification produces a signed revision. The compiler should make the unsafe path awkward to write.