Some checks failed
ci / build (push) Failing after 1m6s
Completes FLUID-WP-0002. The record types in internal/contract are generated from schemas/ by a dependency-free generator; fixtures transcribed from the spec's worked examples validate against those schemas and round-trip through the generated types with DisallowUnknownFields, so a spec change that misses the schemas fails CI rather than drifting silently. Adds identifier prefix helpers, Makefile, GitHub Actions, and five ADRs recording the Go choice, out-of-process attachment, the wire contract as boundary, the evidence store, and revision identity. 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
156 lines
3.5 KiB
YAML
156 lines
3.5 KiB
YAML
fluid_hypothesis:
|
|
schema_version: "0.1"
|
|
|
|
id: "H-000184"
|
|
interface_id: "customer-finance-api"
|
|
|
|
state: "PRIORITIZED"
|
|
|
|
created_at: "2026-09-04T12:00:00Z"
|
|
created_by:
|
|
type: "daimon"
|
|
id: "fluid-daimon/customer-finance-api"
|
|
|
|
title: "Provide direct latest-invoice capability"
|
|
|
|
observation:
|
|
summary: >
|
|
A significant consumer cohort retrieves invoice collections,
|
|
sorts them by issue date, and discards all but the first item.
|
|
evidence_refs:
|
|
- "telemetry:invoice-pattern-2026w36"
|
|
- "feedback:F-9821"
|
|
affected_cohorts:
|
|
- "partner-integrations"
|
|
- "coding-agents"
|
|
observation_window:
|
|
start: "2026-08-15T00:00:00Z"
|
|
end: "2026-09-01T00:00:00Z"
|
|
|
|
pressure:
|
|
classes:
|
|
- "successful_but_inefficient_usage"
|
|
- "repeated_expectation_mismatch"
|
|
severity: 0.61
|
|
confidence: 0.88
|
|
|
|
explanation:
|
|
claim: >
|
|
Consumers treat "latest invoice" as a domain-level concept
|
|
and the existing generic collection interface does not present
|
|
that concept directly.
|
|
reach:
|
|
score: 0.42
|
|
explains:
|
|
- "P-1831"
|
|
- "P-1834"
|
|
notes: >
|
|
Medium reach: explains several related request patterns
|
|
but not broader financial-context pressure.
|
|
|
|
proposed_adaptation:
|
|
class: "contract"
|
|
summary: >
|
|
Add an explicit latest-invoice retrieval capability.
|
|
candidate_contract:
|
|
method: "GET"
|
|
path: "/customers/{id}/invoices/latest"
|
|
implementation_scope: "interface_only"
|
|
|
|
backend_requirements:
|
|
required: false
|
|
requirement_refs: []
|
|
|
|
expected_outcomes:
|
|
- metric: "requests_per_completed_task"
|
|
cohort: "all"
|
|
baseline: 2.7
|
|
target: 1.2
|
|
direction: "lower"
|
|
- metric: "client_side_sort_workarounds"
|
|
cohort: "all"
|
|
baseline: 1.0
|
|
target: 0.2
|
|
direction: "lower"
|
|
|
|
guardrails:
|
|
- metric: "p95_latency_ms"
|
|
operator: "<="
|
|
threshold: 315
|
|
- metric: "authorization_scope_change"
|
|
operator: "=="
|
|
threshold: false
|
|
- metric: "backend_query_count_delta"
|
|
operator: "<="
|
|
threshold: 0
|
|
|
|
fitness_dimensions:
|
|
expected:
|
|
client_utility: 0.70
|
|
correctness: 0.00
|
|
reliability: 0.00
|
|
performance: 0.10
|
|
discoverability: 0.65
|
|
simplicity: -0.15
|
|
compatibility: 0.00
|
|
security: 0.00
|
|
maintainability: -0.05
|
|
operational_cost: 0.00
|
|
|
|
complexity:
|
|
expected_delta:
|
|
surface_area: 1
|
|
concept_count: 0
|
|
operation_count: 1
|
|
semantic_overlap: 0.1
|
|
cognitive_load: -0.2
|
|
score: 0.18
|
|
|
|
risk:
|
|
level: "LOW"
|
|
reasons:
|
|
- "read-only operation"
|
|
- "no authorization expansion"
|
|
|
|
economics:
|
|
estimated_experiment_cost: 18.00
|
|
estimated_implementation_cost: 40.00
|
|
currency: "EUR"
|
|
expected_value_class: "MEDIUM"
|
|
|
|
learning_value:
|
|
score: 0.56
|
|
notes: >
|
|
Useful signal for whether first-class convenience resources
|
|
improve agent and partner integration behavior.
|
|
|
|
priority:
|
|
score: 0.71
|
|
decided_by: "optimization-policy-v3"
|
|
|
|
success_criteria:
|
|
expression: >
|
|
requests_per_completed_task <= 1.2
|
|
AND no hard guardrail violation
|
|
|
|
failure_criteria:
|
|
expression: >
|
|
any hard guardrail violation
|
|
OR adoption below 5% after 30 days when equally discoverable
|
|
|
|
candidate_revision_refs:
|
|
- "R-000221"
|
|
|
|
experiment_refs:
|
|
- "E-000093"
|
|
|
|
outcome:
|
|
status: null
|
|
summary: null
|
|
evidence_refs: []
|
|
|
|
audit:
|
|
decision_refs:
|
|
- "D-2811"
|
|
immutable_event_refs:
|
|
- "EV-990218"
|