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
33
internal/contract/feedback_gen.go
Normal file
33
internal/contract/feedback_gen.go
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
// Code generated by tools/schemagen. DO NOT EDIT.
|
||||
// Source: schemas/. Regenerate with `make generate`.
|
||||
|
||||
package contract
|
||||
|
||||
type FluidFeedbackImpact struct {
|
||||
Calls *int64 `json:"calls,omitempty" yaml:"calls,omitempty"`
|
||||
Description string `json:"description,omitempty" yaml:"description,omitempty"`
|
||||
LatencyMS *float64 `json:"latency_ms,omitempty" yaml:"latency_ms,omitempty"`
|
||||
}
|
||||
|
||||
type FluidFeedback struct {
|
||||
Attempt string `json:"attempt,omitempty" yaml:"attempt,omitempty"`
|
||||
AttemptedOperations []string `json:"attempted_operations,omitempty" yaml:"attempted_operations,omitempty"`
|
||||
Cohort *CohortID `json:"cohort,omitempty" yaml:"cohort,omitempty"`
|
||||
Confidence *UnitInterval `json:"confidence,omitempty" yaml:"confidence,omitempty"`
|
||||
Goal string `json:"goal" yaml:"goal"`
|
||||
ID FeedbackID `json:"id" yaml:"id"`
|
||||
Impact *FluidFeedbackImpact `json:"impact,omitempty" yaml:"impact,omitempty"`
|
||||
InterfaceID InterfaceID `json:"interface_id" yaml:"interface_id"`
|
||||
MissingCapability string `json:"missing_capability,omitempty" yaml:"missing_capability,omitempty"`
|
||||
Outcome string `json:"outcome,omitempty" yaml:"outcome,omitempty"`
|
||||
ReceivedAt Timestamp `json:"received_at" yaml:"received_at"`
|
||||
Revision *RevisionID `json:"revision,omitempty" yaml:"revision,omitempty"`
|
||||
SchemaVersion SchemaVersion `json:"schema_version" yaml:"schema_version"`
|
||||
Workaround any `json:"workaround,omitempty" yaml:"workaround,omitempty"`
|
||||
}
|
||||
|
||||
// Structured feedback from a consumer. Treated as evidence and never as authority
|
||||
// to change anything (FluidAPIStandards.md section 15).
|
||||
type FeedbackDocument struct {
|
||||
FluidFeedback FluidFeedback `json:"fluid_feedback" yaml:"fluid_feedback"`
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue