Generate contract types, pin fixtures to spec, add build and ADRs
Some checks failed
ci / build (push) Failing after 1m6s
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
This commit is contained in:
parent
fbbf56df7a
commit
76912adef8
44 changed files with 4010 additions and 7 deletions
150
conformance/fixtures/json/revision.json
Normal file
150
conformance/fixtures/json/revision.json
Normal file
|
|
@ -0,0 +1,150 @@
|
|||
{
|
||||
"fluid_revision": {
|
||||
"adaptation_classes": [
|
||||
"contract"
|
||||
],
|
||||
"adoption": {
|
||||
"active_consumers": 119,
|
||||
"adoption_rate": 0.289,
|
||||
"eligible_consumers": 412,
|
||||
"retained_adoption_rate": null
|
||||
},
|
||||
"audit": {
|
||||
"immutable_event_refs": [
|
||||
"EV-990221",
|
||||
"EV-990244",
|
||||
"EV-990281"
|
||||
]
|
||||
},
|
||||
"backend_requirements": [],
|
||||
"compatibility": {
|
||||
"breaking_changes": [],
|
||||
"class": "BACKWARD_COMPATIBLE",
|
||||
"compatibility_evidence_refs": [
|
||||
"test:compat-suite-775"
|
||||
],
|
||||
"deprecations": [],
|
||||
"supersedes": []
|
||||
},
|
||||
"complexity": {
|
||||
"after": {
|
||||
"operation_count": 40,
|
||||
"surface_area": 42
|
||||
},
|
||||
"before": {
|
||||
"operation_count": 39,
|
||||
"surface_area": 41
|
||||
},
|
||||
"budget_status": "WITHIN_BUDGET",
|
||||
"delta_score": 0.18
|
||||
},
|
||||
"contract": {
|
||||
"artifact_ref": "artifact:openapi/customer-finance-api/r22",
|
||||
"digest": "sha256:3b1f9c2e7a4d8b6051e2c9f0a7d4b83e15c6f2a9d0b7e4c1836a5f2d9c0b7e41",
|
||||
"type": "openapi",
|
||||
"version": "3.1"
|
||||
},
|
||||
"created_at": "2026-09-04T13:10:00Z",
|
||||
"created_by": {
|
||||
"id": "fluid-daimon/customer-finance-api",
|
||||
"type": "daimon"
|
||||
},
|
||||
"deployment": {
|
||||
"current_exposure": {
|
||||
"cohorts": [
|
||||
"partner-integrations",
|
||||
"coding-agents"
|
||||
],
|
||||
"traffic_share": 0.28
|
||||
},
|
||||
"environments": [
|
||||
{
|
||||
"name": "production",
|
||||
"routing_policy_ref": "route-policy:rp-118",
|
||||
"started_at": "2026-09-05T08:00:00Z"
|
||||
}
|
||||
]
|
||||
},
|
||||
"economics": {
|
||||
"build_cost": 38.2,
|
||||
"currency": "EUR",
|
||||
"experiment_cost_to_date": 12.4
|
||||
},
|
||||
"fitness": {
|
||||
"baseline_revision": "R-000220",
|
||||
"measurement_window": {
|
||||
"end": null,
|
||||
"start": "2026-09-05T08:00:00Z"
|
||||
},
|
||||
"metrics": {
|
||||
"error_rate": {
|
||||
"baseline": 0.008,
|
||||
"current": 0.007
|
||||
},
|
||||
"p95_latency_ms": {
|
||||
"baseline": 300,
|
||||
"current": 302,
|
||||
"guardrail": 315
|
||||
},
|
||||
"requests_per_completed_task": {
|
||||
"baseline": 2.7,
|
||||
"current": 1.15,
|
||||
"target": 1.2
|
||||
}
|
||||
}
|
||||
},
|
||||
"id": "R-000221",
|
||||
"implementation": {
|
||||
"artifact_ref": "artifact:adapter/customer-finance-api/r22",
|
||||
"build_ref": "build:8871",
|
||||
"digest": "sha256:3b1f9c2e7a4d8b6051e2c9f0a7d4b83e15c6f2a9d0b7e4c1836a5f2d9c0b7e41",
|
||||
"source_ref": "git:9f4c2ab"
|
||||
},
|
||||
"interface_evolution_intent": {
|
||||
"artifact_ref": "artifact:intent/customer-finance-api/IEI-7",
|
||||
"version": "IEI-7"
|
||||
},
|
||||
"interface_id": "customer-finance-api",
|
||||
"originating_hypotheses": [
|
||||
"H-000184"
|
||||
],
|
||||
"parent_revision": "R-000220",
|
||||
"promotion": {
|
||||
"authorized_at": null,
|
||||
"authorized_by": null,
|
||||
"eligible": true,
|
||||
"recommendation_reason": "Target fitness reached with no guardrail violations.\n",
|
||||
"recommended_state": "STABLE"
|
||||
},
|
||||
"provenance": {
|
||||
"decision_refs": [
|
||||
"D-2811"
|
||||
],
|
||||
"experiment_refs": [
|
||||
"E-000093"
|
||||
],
|
||||
"telemetry_refs": [
|
||||
"telemetry:invoice-pattern-2026w36"
|
||||
]
|
||||
},
|
||||
"revision_number": 22,
|
||||
"rollback": {
|
||||
"procedure_ref": "runbook:rollback-r22",
|
||||
"supported": true,
|
||||
"target_revision": "R-000220"
|
||||
},
|
||||
"schema_version": "0.1",
|
||||
"state": "CANDIDATE",
|
||||
"verification": {
|
||||
"policy_check": "PASSED",
|
||||
"security_check": "PASSED",
|
||||
"status": "PASSED",
|
||||
"test_refs": [
|
||||
"test:unit-12081",
|
||||
"test:contract-8821",
|
||||
"test:security-610",
|
||||
"test:compat-suite-775"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue