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
164 lines
4.3 KiB
JSON
164 lines
4.3 KiB
JSON
{
|
|
"fluid_hypothesis": {
|
|
"audit": {
|
|
"decision_refs": [
|
|
"D-2811"
|
|
],
|
|
"immutable_event_refs": [
|
|
"EV-990218"
|
|
]
|
|
},
|
|
"backend_requirements": {
|
|
"required": false,
|
|
"requirement_refs": []
|
|
},
|
|
"candidate_revision_refs": [
|
|
"R-000221"
|
|
],
|
|
"complexity": {
|
|
"expected_delta": {
|
|
"cognitive_load": -0.2,
|
|
"concept_count": 0,
|
|
"operation_count": 1,
|
|
"semantic_overlap": 0.1,
|
|
"surface_area": 1
|
|
},
|
|
"score": 0.18
|
|
},
|
|
"created_at": "2026-09-04T12:00:00Z",
|
|
"created_by": {
|
|
"id": "fluid-daimon/customer-finance-api",
|
|
"type": "daimon"
|
|
},
|
|
"economics": {
|
|
"currency": "EUR",
|
|
"estimated_experiment_cost": 18.0,
|
|
"estimated_implementation_cost": 40.0,
|
|
"expected_value_class": "MEDIUM"
|
|
},
|
|
"expected_outcomes": [
|
|
{
|
|
"baseline": 2.7,
|
|
"cohort": "all",
|
|
"direction": "lower",
|
|
"metric": "requests_per_completed_task",
|
|
"target": 1.2
|
|
},
|
|
{
|
|
"baseline": 1.0,
|
|
"cohort": "all",
|
|
"direction": "lower",
|
|
"metric": "client_side_sort_workarounds",
|
|
"target": 0.2
|
|
}
|
|
],
|
|
"experiment_refs": [
|
|
"E-000093"
|
|
],
|
|
"explanation": {
|
|
"claim": "Consumers treat \"latest invoice\" as a domain-level concept and the existing generic collection interface does not present that concept directly.\n",
|
|
"reach": {
|
|
"explains": [
|
|
"P-1831",
|
|
"P-1834"
|
|
],
|
|
"notes": "Medium reach: explains several related request patterns but not broader financial-context pressure.\n",
|
|
"score": 0.42
|
|
}
|
|
},
|
|
"failure_criteria": {
|
|
"expression": "any hard guardrail violation OR adoption below 5% after 30 days when equally discoverable\n"
|
|
},
|
|
"fitness_dimensions": {
|
|
"expected": {
|
|
"client_utility": 0.7,
|
|
"compatibility": 0.0,
|
|
"correctness": 0.0,
|
|
"discoverability": 0.65,
|
|
"maintainability": -0.05,
|
|
"operational_cost": 0.0,
|
|
"performance": 0.1,
|
|
"reliability": 0.0,
|
|
"security": 0.0,
|
|
"simplicity": -0.15
|
|
}
|
|
},
|
|
"guardrails": [
|
|
{
|
|
"metric": "p95_latency_ms",
|
|
"operator": "<=",
|
|
"threshold": 315
|
|
},
|
|
{
|
|
"metric": "authorization_scope_change",
|
|
"operator": "==",
|
|
"threshold": false
|
|
},
|
|
{
|
|
"metric": "backend_query_count_delta",
|
|
"operator": "<=",
|
|
"threshold": 0
|
|
}
|
|
],
|
|
"id": "H-000184",
|
|
"interface_id": "customer-finance-api",
|
|
"learning_value": {
|
|
"notes": "Useful signal for whether first-class convenience resources improve agent and partner integration behavior.\n",
|
|
"score": 0.56
|
|
},
|
|
"observation": {
|
|
"affected_cohorts": [
|
|
"partner-integrations",
|
|
"coding-agents"
|
|
],
|
|
"evidence_refs": [
|
|
"telemetry:invoice-pattern-2026w36",
|
|
"feedback:F-9821"
|
|
],
|
|
"observation_window": {
|
|
"end": "2026-09-01T00:00:00Z",
|
|
"start": "2026-08-15T00:00:00Z"
|
|
},
|
|
"summary": "A significant consumer cohort retrieves invoice collections, sorts them by issue date, and discards all but the first item.\n"
|
|
},
|
|
"outcome": {
|
|
"evidence_refs": [],
|
|
"status": null,
|
|
"summary": null
|
|
},
|
|
"pressure": {
|
|
"classes": [
|
|
"successful_but_inefficient_usage",
|
|
"repeated_expectation_mismatch"
|
|
],
|
|
"confidence": 0.88,
|
|
"severity": 0.61
|
|
},
|
|
"priority": {
|
|
"decided_by": "optimization-policy-v3",
|
|
"score": 0.71
|
|
},
|
|
"proposed_adaptation": {
|
|
"candidate_contract": {
|
|
"method": "GET",
|
|
"path": "/customers/{id}/invoices/latest"
|
|
},
|
|
"class": "contract",
|
|
"implementation_scope": "interface_only",
|
|
"summary": "Add an explicit latest-invoice retrieval capability.\n"
|
|
},
|
|
"risk": {
|
|
"level": "LOW",
|
|
"reasons": [
|
|
"read-only operation",
|
|
"no authorization expansion"
|
|
]
|
|
},
|
|
"schema_version": "0.1",
|
|
"state": "PRIORITIZED",
|
|
"success_criteria": {
|
|
"expression": "requests_per_completed_task <= 1.2 AND no hard guardrail violation\n"
|
|
},
|
|
"title": "Provide direct latest-invoice capability"
|
|
}
|
|
}
|