2026-09-04 01:49:12 +02:00
|
|
|
---
|
2026-09-04 01:50:34 +02:00
|
|
|
id: FLUID-WP-0007
|
2026-09-04 01:49:12 +02:00
|
|
|
type: workplan
|
|
|
|
|
title: "Conformance suite and self-validation"
|
|
|
|
|
domain: infotech
|
|
|
|
|
repo: fluid-core
|
Add the conformance suite, echo fixture and integration guide
Completes FLUID-WP-0007. The seven minimal-conformance requirements and
the mechanically checkable architectural invariants are asserted as
tests rather than claimed in a README, because a conformance claim
nobody re-checks is one that quietly stops being true. Only the
checkable subset of the invariants is asserted; pretending a test can
settle the rest would be worse than leaving them to review.
TestFirstVerticalSlice runs all eleven steps of Blueprint 50 with no
human steps: two revisions, explicit routing, telemetry, a cohort
dimension, detected pressure, a hypothesis, a candidate, a 90/10
experiment, fitness comparison, promotion, and a complete audit trail.
Requests per completed task fall from 5.65 to 1.00 against a 1.20
target. A companion test runs the loop twice and requires the same
verdict, since a loop whose conclusion depended on run order would be
measuring the harness rather than the interface.
The failure-containment matrix covers Blueprint 34 directly: the data
plane keeps serving with the evidence store closed, with telemetry
wedged against a sink that never returns, after a failed build, after an
experiment rollback, and with the adaptive concurrency limit saturated.
Fixes a real bug the suite exposed. Drain closed the emitter outright,
so every request after the first flush emitted into a dead emitter and
was silently lost -- the kind of fault that makes a later measurement
quietly wrong rather than loudly broken. Emitter.Flush now waits for
delivery without stopping it.
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 08:21:49 +02:00
|
|
|
status: done
|
2026-09-04 01:49:12 +02:00
|
|
|
owner: worsch
|
2026-09-04 01:50:34 +02:00
|
|
|
topic_slug: fluid-core
|
2026-09-04 01:49:12 +02:00
|
|
|
created: "2026-09-04"
|
|
|
|
|
updated: "2026-09-04"
|
|
|
|
|
planning_priority: high
|
|
|
|
|
planning_order: 6
|
|
|
|
|
depends_on:
|
2026-09-04 01:50:34 +02:00
|
|
|
- FLUID-WP-0006
|
2026-09-04 01:52:06 +02:00
|
|
|
state_hub_workstream_id: "124d88bf-5573-5f58-8883-1efd5f6a603b"
|
2026-09-04 01:49:12 +02:00
|
|
|
---
|
|
|
|
|
|
2026-09-04 01:50:34 +02:00
|
|
|
# FLUID-WP-0007 - Conformance and self-validation
|
2026-09-04 01:49:12 +02:00
|
|
|
|
|
|
|
|
Prove the loop mechanically before a real workload depends on it. Everything
|
|
|
|
|
here runs in CI with no human steps and no external services.
|
|
|
|
|
|
|
|
|
|
## T01 - Echo interface fixture
|
|
|
|
|
|
|
|
|
|
```task
|
2026-09-04 01:50:34 +02:00
|
|
|
id: FLUID-WP-0007-T01
|
Add the conformance suite, echo fixture and integration guide
Completes FLUID-WP-0007. The seven minimal-conformance requirements and
the mechanically checkable architectural invariants are asserted as
tests rather than claimed in a README, because a conformance claim
nobody re-checks is one that quietly stops being true. Only the
checkable subset of the invariants is asserted; pretending a test can
settle the rest would be worse than leaving them to review.
TestFirstVerticalSlice runs all eleven steps of Blueprint 50 with no
human steps: two revisions, explicit routing, telemetry, a cohort
dimension, detected pressure, a hypothesis, a candidate, a 90/10
experiment, fitness comparison, promotion, and a complete audit trail.
Requests per completed task fall from 5.65 to 1.00 against a 1.20
target. A companion test runs the loop twice and requires the same
verdict, since a loop whose conclusion depended on run order would be
measuring the harness rather than the interface.
The failure-containment matrix covers Blueprint 34 directly: the data
plane keeps serving with the evidence store closed, with telemetry
wedged against a sink that never returns, after a failed build, after an
experiment rollback, and with the adaptive concurrency limit saturated.
Fixes a real bug the suite exposed. Drain closed the emitter outright,
so every request after the first flush emitted into a dead emitter and
was silently lost -- the kind of fault that makes a later measurement
quietly wrong rather than loudly broken. Emitter.Flush now waits for
delivery without stopping it.
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 08:21:49 +02:00
|
|
|
status: done
|
2026-09-04 01:49:12 +02:00
|
|
|
priority: high
|
2026-09-04 01:52:06 +02:00
|
|
|
state_hub_task_id: "95b8d512-698c-5201-8f8d-18ff0a658f2c"
|
2026-09-04 01:49:12 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
`examples/echo-interface` — two revisions, R-1 deliberately inefficient
|
|
|
|
|
(list then filter), R-2 the convenience form. This is the smallest honest
|
|
|
|
|
reproduction of the Blueprint §33 worked example.
|
|
|
|
|
|
|
|
|
|
## T02 - Minimal conformance assertions
|
|
|
|
|
|
|
|
|
|
```task
|
2026-09-04 01:50:34 +02:00
|
|
|
id: FLUID-WP-0007-T02
|
Add the conformance suite, echo fixture and integration guide
Completes FLUID-WP-0007. The seven minimal-conformance requirements and
the mechanically checkable architectural invariants are asserted as
tests rather than claimed in a README, because a conformance claim
nobody re-checks is one that quietly stops being true. Only the
checkable subset of the invariants is asserted; pretending a test can
settle the rest would be worse than leaving them to review.
TestFirstVerticalSlice runs all eleven steps of Blueprint 50 with no
human steps: two revisions, explicit routing, telemetry, a cohort
dimension, detected pressure, a hypothesis, a candidate, a 90/10
experiment, fitness comparison, promotion, and a complete audit trail.
Requests per completed task fall from 5.65 to 1.00 against a 1.20
target. A companion test runs the loop twice and requires the same
verdict, since a loop whose conclusion depended on run order would be
measuring the harness rather than the interface.
The failure-containment matrix covers Blueprint 34 directly: the data
plane keeps serving with the evidence store closed, with telemetry
wedged against a sink that never returns, after a failed build, after an
experiment rollback, and with the adaptive concurrency limit saturated.
Fixes a real bug the suite exposed. Drain closed the emitter outright,
so every request after the first flush emitted into a dead emitter and
was silently lost -- the kind of fault that makes a later measurement
quietly wrong rather than loudly broken. Emitter.Flush now waits for
delivery without stopping it.
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 08:21:49 +02:00
|
|
|
status: done
|
2026-09-04 01:49:12 +02:00
|
|
|
priority: high
|
2026-09-04 01:52:06 +02:00
|
|
|
state_hub_task_id: "71724683-78be-568c-bcd4-12df97e53941"
|
2026-09-04 01:49:12 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The seven requirements of API Standards §36, asserted as tests rather than
|
|
|
|
|
claimed in a README.
|
|
|
|
|
|
|
|
|
|
## T03 - Architectural invariant checks
|
|
|
|
|
|
|
|
|
|
```task
|
2026-09-04 01:50:34 +02:00
|
|
|
id: FLUID-WP-0007-T03
|
Add the conformance suite, echo fixture and integration guide
Completes FLUID-WP-0007. The seven minimal-conformance requirements and
the mechanically checkable architectural invariants are asserted as
tests rather than claimed in a README, because a conformance claim
nobody re-checks is one that quietly stops being true. Only the
checkable subset of the invariants is asserted; pretending a test can
settle the rest would be worse than leaving them to review.
TestFirstVerticalSlice runs all eleven steps of Blueprint 50 with no
human steps: two revisions, explicit routing, telemetry, a cohort
dimension, detected pressure, a hypothesis, a candidate, a 90/10
experiment, fitness comparison, promotion, and a complete audit trail.
Requests per completed task fall from 5.65 to 1.00 against a 1.20
target. A companion test runs the loop twice and requires the same
verdict, since a loop whose conclusion depended on run order would be
measuring the harness rather than the interface.
The failure-containment matrix covers Blueprint 34 directly: the data
plane keeps serving with the evidence store closed, with telemetry
wedged against a sink that never returns, after a failed build, after an
experiment rollback, and with the adaptive concurrency limit saturated.
Fixes a real bug the suite exposed. Drain closed the emitter outright,
so every request after the first flush emitted into a dead emitter and
was silently lost -- the kind of fault that makes a later measurement
quietly wrong rather than loudly broken. Emitter.Flush now waits for
delivery without stopping it.
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 08:21:49 +02:00
|
|
|
status: done
|
2026-09-04 01:49:12 +02:00
|
|
|
priority: high
|
2026-09-04 01:52:06 +02:00
|
|
|
state_hub_task_id: "0ac5c378-038c-5c76-b082-d4868f9bb12b"
|
2026-09-04 01:49:12 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The mechanically checkable subset of Blueprint §55. Invariant 2 (evolution can
|
|
|
|
|
stop without stopping the API) and invariant 9 (AI-generated artifacts untrusted
|
|
|
|
|
until verified) matter most and get dedicated tests.
|
|
|
|
|
|
|
|
|
|
## T04 - Failure containment matrix
|
|
|
|
|
|
|
|
|
|
```task
|
2026-09-04 01:50:34 +02:00
|
|
|
id: FLUID-WP-0007-T04
|
Add the conformance suite, echo fixture and integration guide
Completes FLUID-WP-0007. The seven minimal-conformance requirements and
the mechanically checkable architectural invariants are asserted as
tests rather than claimed in a README, because a conformance claim
nobody re-checks is one that quietly stops being true. Only the
checkable subset of the invariants is asserted; pretending a test can
settle the rest would be worse than leaving them to review.
TestFirstVerticalSlice runs all eleven steps of Blueprint 50 with no
human steps: two revisions, explicit routing, telemetry, a cohort
dimension, detected pressure, a hypothesis, a candidate, a 90/10
experiment, fitness comparison, promotion, and a complete audit trail.
Requests per completed task fall from 5.65 to 1.00 against a 1.20
target. A companion test runs the loop twice and requires the same
verdict, since a loop whose conclusion depended on run order would be
measuring the harness rather than the interface.
The failure-containment matrix covers Blueprint 34 directly: the data
plane keeps serving with the evidence store closed, with telemetry
wedged against a sink that never returns, after a failed build, after an
experiment rollback, and with the adaptive concurrency limit saturated.
Fixes a real bug the suite exposed. Drain closed the emitter outright,
so every request after the first flush emitted into a dead emitter and
was silently lost -- the kind of fault that makes a later measurement
quietly wrong rather than loudly broken. Emitter.Flush now waits for
delivery without stopping it.
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 08:21:49 +02:00
|
|
|
status: done
|
2026-09-04 01:49:12 +02:00
|
|
|
priority: high
|
2026-09-04 01:52:06 +02:00
|
|
|
state_hub_task_id: "7af0c88f-a00e-5cad-9fb6-2a297ecfd8b3"
|
2026-09-04 01:49:12 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Blueprint §34. Kill the control plane, the evidence store and the telemetry
|
|
|
|
|
pipeline in turn; assert the data plane keeps serving from cached published
|
|
|
|
|
configuration each time.
|
|
|
|
|
|
|
|
|
|
## T05 - End-to-end loop in CI
|
|
|
|
|
|
|
|
|
|
```task
|
2026-09-04 01:50:34 +02:00
|
|
|
id: FLUID-WP-0007-T05
|
Add the conformance suite, echo fixture and integration guide
Completes FLUID-WP-0007. The seven minimal-conformance requirements and
the mechanically checkable architectural invariants are asserted as
tests rather than claimed in a README, because a conformance claim
nobody re-checks is one that quietly stops being true. Only the
checkable subset of the invariants is asserted; pretending a test can
settle the rest would be worse than leaving them to review.
TestFirstVerticalSlice runs all eleven steps of Blueprint 50 with no
human steps: two revisions, explicit routing, telemetry, a cohort
dimension, detected pressure, a hypothesis, a candidate, a 90/10
experiment, fitness comparison, promotion, and a complete audit trail.
Requests per completed task fall from 5.65 to 1.00 against a 1.20
target. A companion test runs the loop twice and requires the same
verdict, since a loop whose conclusion depended on run order would be
measuring the harness rather than the interface.
The failure-containment matrix covers Blueprint 34 directly: the data
plane keeps serving with the evidence store closed, with telemetry
wedged against a sink that never returns, after a failed build, after an
experiment rollback, and with the adaptive concurrency limit saturated.
Fixes a real bug the suite exposed. Drain closed the emitter outright,
so every request after the first flush emitted into a dead emitter and
was silently lost -- the kind of fault that makes a later measurement
quietly wrong rather than loudly broken. Emitter.Flush now waits for
delivery without stopping it.
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 08:21:49 +02:00
|
|
|
status: done
|
2026-09-04 01:49:12 +02:00
|
|
|
priority: high
|
2026-09-04 01:52:06 +02:00
|
|
|
state_hub_task_id: "45f70116-04f4-5150-9275-2c8023389dc9"
|
2026-09-04 01:49:12 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
The full §50 vertical slice automated: two revisions, a 90/10 experiment,
|
|
|
|
|
fitness comparison, promotion, complete audit trail.
|
|
|
|
|
|
|
|
|
|
## T06 - Integration guide
|
|
|
|
|
|
|
|
|
|
```task
|
2026-09-04 01:50:34 +02:00
|
|
|
id: FLUID-WP-0007-T06
|
Add the conformance suite, echo fixture and integration guide
Completes FLUID-WP-0007. The seven minimal-conformance requirements and
the mechanically checkable architectural invariants are asserted as
tests rather than claimed in a README, because a conformance claim
nobody re-checks is one that quietly stops being true. Only the
checkable subset of the invariants is asserted; pretending a test can
settle the rest would be worse than leaving them to review.
TestFirstVerticalSlice runs all eleven steps of Blueprint 50 with no
human steps: two revisions, explicit routing, telemetry, a cohort
dimension, detected pressure, a hypothesis, a candidate, a 90/10
experiment, fitness comparison, promotion, and a complete audit trail.
Requests per completed task fall from 5.65 to 1.00 against a 1.20
target. A companion test runs the loop twice and requires the same
verdict, since a loop whose conclusion depended on run order would be
measuring the harness rather than the interface.
The failure-containment matrix covers Blueprint 34 directly: the data
plane keeps serving with the evidence store closed, with telemetry
wedged against a sink that never returns, after a failed build, after an
experiment rollback, and with the adaptive concurrency limit saturated.
Fixes a real bug the suite exposed. Drain closed the emitter outright,
so every request after the first flush emitted into a dead emitter and
was silently lost -- the kind of fault that makes a later measurement
quietly wrong rather than loudly broken. Emitter.Flush now waits for
delivery without stopping it.
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 08:21:49 +02:00
|
|
|
status: done
|
2026-09-04 01:49:12 +02:00
|
|
|
priority: medium
|
2026-09-04 01:52:06 +02:00
|
|
|
state_hub_task_id: "29ce43f9-17e5-5798-a3f3-051af97224ce"
|
2026-09-04 01:49:12 +02:00
|
|
|
```
|
|
|
|
|
|
|
|
|
|
`docs/integration-guide.md` — how to put an existing API of any stack behind
|
|
|
|
|
fluid-core without modifying it.
|