fluid-core/workplans/FLUID-WP-0005-fluid-insight.md
tegwick 7e0de9e5b7
Some checks failed
ci / build (push) Failing after 3h11m37s
Add telemetry ingest, feedback collector, pressure API and insight CLI
Completes FLUID-WP-0005. Normalization and redaction live on one path,
shared by the in-process emitter and the ingest endpoint: two paths with
two normalizations would eventually disagree, and the disagreement would
surface as a pressure finding that is really a pipeline bug.

Telemetry kind is inferred from event shape rather than defaulting to
"request", since an error filed as a request understates the interface's
failure rate. A malformed event in a batch does not discard the rest.

Feedback is stored as evidence and creates no pressure and no hypothesis
on its own, per API Standards 15, with the consumer recorded as the
actor so their untrusted status stays visible in the audit trail. The
feedback endpoint is the only consumer-reachable part of the control
plane.

The observation endpoints are not served at all when no pseudonymization
salt is configured, rather than served with a generated one: a salt that
changed per run would make the same consumer look new every time and
every cohort count wrong.

Adds an end-to-end test driving real traffic through the gateway and
confirming it becomes a classified pressure record, with no raw consumer
identity reaching the store.

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 03:19:06 +02:00

132 lines
3.1 KiB
Markdown

---
id: FLUID-WP-0005
type: workplan
title: "FLUID Insight - observation plane (Blueprint Phase B)"
domain: infotech
repo: fluid-core
status: done
owner: worsch
topic_slug: fluid-core
created: "2026-09-04"
updated: "2026-09-04"
planning_priority: high
planning_order: 4
depends_on:
- FLUID-WP-0004
state_hub_workstream_id: "06661687-9a1b-5f11-b900-7b086c9c2975"
---
# FLUID-WP-0005 - FLUID Insight
Turn traffic into evidence. Deterministic heuristics only at this stage — no
model inference anywhere in this workplan.
## T01 - Telemetry ingest and normalizer
```task
id: FLUID-WP-0005-T01
status: done
priority: high
state_hub_task_id: "0c074022-031b-5049-832f-1fa8b1ff8b4f"
```
Request, error, sequence, adoption and explicit-feedback events into one
normalized interaction event (Blueprint §6.1).
## T02 - Redaction and privacy filter
```task
id: FLUID-WP-0005-T02
status: done
priority: high
state_hub_task_id: "13086f4a-217c-5999-a039-90f5d84fb53b"
```
Field exclusion, pseudonymization, tenant isolation, retention, cohort minimum
sizes (§6.2). Raw payload capture is off by default and must stay that way —
FLUID learns about the interface, not about people.
## T03 - Cohort engine
```task
id: FLUID-WP-0005-T03
status: done
priority: medium
state_hub_task_id: "815765d4-8d20-5c6f-87ac-e085778cd58c"
```
Coarse, stable, comparable over time (§6.3). Resist granularity: cohorts should
not be more specific than the analysis requires.
## T04 - Interaction topology analyzer
```task
id: FLUID-WP-0005-T04
status: done
priority: high
state_hub_task_id: "27726efa-e054-56c2-a6b8-3cce8f2e85e7"
```
Recurring call-sequence detection (§6.4) — the signal that makes FLUID more than
error counting.
## T05 - Pressure classifier
```task
id: FLUID-WP-0005-T05
status: done
priority: high
state_hub_task_id: "d2e4f2df-809f-5817-9b74-e1533f8f71d9"
```
The ten pressure classes from §6.5. Classification retains evidence references
in every case.
## T06 - Pressure registry
```task
id: FLUID-WP-0005-T06
status: done
priority: high
state_hub_task_id: "50bd30a6-ae29-5e2b-9618-a3efe6a362b3"
```
Deduplication, aggregation, frequency, severity, confidence, and the §9
lifecycle. Pressure may remain unresolved on purpose — not every mismatch
deserves adaptation.
## T07 - Fitness engine
```task
id: FLUID-WP-0005-T07
status: done
priority: high
state_hub_task_id: "ebecef59-2ff8-59c0-8cff-cde53030d0c8"
```
Blueprint §18: primary metrics, guardrails, secondary and learning metrics kept
distinct. Baseline and measurement window are retained, never recomputed.
## T08 - Explicit feedback collector
```task
id: FLUID-WP-0005-T08
status: done
priority: medium
state_hub_task_id: "48f6bbce-2ae8-5b72-8fdc-e962c6ea1f54"
```
API Standards §15. Accepted over the wire, stored as evidence, and never
treated as authority to change anything.
## T09 - CLI and pressure API
```task
id: FLUID-WP-0005-T09
status: done
priority: medium
state_hub_task_id: "ba413808-346b-5026-bfce-aec0eae0c410"
```
Blueprint §44.2 plus `fluid pressure list|show|dismiss`, `fluid cohort list`,
`fluid fitness compare`.