fluid-core/workplans/FLUID-WP-0002-foundations-and-wire-contract.md
tegwick 82becd0fda Register with State Hub and align workplan IDs to FLUID-WP prefix
Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014KmVxhJ35tCo7rE7UnLwWu

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1116572@bnt-lap001
Assistant-Session: 8ba9bb93-a72a-4883-b189-2499cce5c400
2026-09-04 01:50:34 +02:00

2.7 KiB

id type title domain repo status owner topic_slug created updated planning_priority planning_order related_repos
FLUID-WP-0002 workplan FLUID foundations and the wire contract infotech fluid-core active worsch fluid-core 2026-09-04 2026-09-04 high 1
fluid-telegram
fluid-x
fluid-substack

FLUID-WP-0002 - Foundations and the wire contract

Establish the boundary before any code depends on it. fluid-core integrates out of process, so its contract is a set of on-the-wire artifacts, not a Go API. Everything downstream assumes these schemas are stable.

Reference: spec/FluidHypothesisRevisionSchema.md, spec/ArchitectureBlueprint.md §36 (revision descriptor), §17 (routing policy), §44 (control APIs).

T01 - Repository scaffold and INTENT

id: FLUID-WP-0002-T01
status: done
priority: high

Go module, directory tree per the plan, INTENT.md declaring the wire-contract boundary and the four invariants this repo defends hardest.

T02 - Record schemas

id: FLUID-WP-0002-T02
status: todo
priority: high

JSON Schema for fluid_pressure, fluid_hypothesis, fluid_revision, fluid_experiment, fluid_event, fluid_backend_requirement and the feedback record. Transcribe field names faithfully from the schema document — they are the interop surface, per its §1.

T03 - Descriptor and policy schemas

id: FLUID-WP-0002-T03
status: todo
priority: high

JSON Schema for the revision descriptor (Blueprint §36) and the routing policy (Blueprint §17). These two are what the gateway consumes at runtime and must be readable without any fluid-core code.

T04 - Type generation

id: FLUID-WP-0002-T04
status: todo
priority: high

Generate Go types into internal/contract/ from schemas/. Hand-written record types are prohibited — drift between spec and implementation must fail CI.

T05 - Spec examples as fixtures

id: FLUID-WP-0002-T05
status: todo
priority: high

Extract the YAML examples embedded in the spec documents and validate them against the schemas in CI. If the spec changes and the schema does not, the build breaks.

T06 - Build, CI and identifier conventions

id: FLUID-WP-0002-T06
status: todo
priority: medium

Makefile, GitHub Actions (build, vet, test, schema validation), and the identifier prefix helpers from schema doc §16: H- R- E- P- BR- D- EV- F- C-.

T07 - Architecture decision records

id: FLUID-WP-0002-T07
status: todo
priority: medium

ADRs for: Go as the implementation language; out-of-process attachment; the wire contract as boundary; SQLite to Postgres evidence store; and the revision identity scheme, which Blueprint §54 leaves deliberately open.