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
100 lines
5.5 KiB
Go
100 lines
5.5 KiB
Go
// Code generated by tools/schemagen. DO NOT EDIT.
|
|
// Source: schemas/. Regenerate with `make generate`.
|
|
|
|
package contract
|
|
|
|
type FluidBackendRequirementCapability struct {
|
|
Description string `json:"description" yaml:"description"`
|
|
Title string `json:"title" yaml:"title"`
|
|
}
|
|
|
|
type FluidBackendRequirementDispositionState string
|
|
|
|
const (
|
|
FluidBackendRequirementDispositionStateOPEN FluidBackendRequirementDispositionState = "OPEN"
|
|
FluidBackendRequirementDispositionStateACCEPTED FluidBackendRequirementDispositionState = "ACCEPTED"
|
|
FluidBackendRequirementDispositionStatePLANNED FluidBackendRequirementDispositionState = "PLANNED"
|
|
FluidBackendRequirementDispositionStateAVAILABLE FluidBackendRequirementDispositionState = "AVAILABLE"
|
|
FluidBackendRequirementDispositionStatePARTIALLYAVAILABLE FluidBackendRequirementDispositionState = "PARTIALLY_AVAILABLE"
|
|
FluidBackendRequirementDispositionStateOUTOFSCOPE FluidBackendRequirementDispositionState = "OUT_OF_SCOPE"
|
|
FluidBackendRequirementDispositionStateREJECTED FluidBackendRequirementDispositionState = "REJECTED"
|
|
FluidBackendRequirementDispositionStateSUPERSEDED FluidBackendRequirementDispositionState = "SUPERSEDED"
|
|
)
|
|
|
|
// Valid reports whether v is a defined FluidBackendRequirementDispositionState.
|
|
func (v FluidBackendRequirementDispositionState) Valid() bool {
|
|
switch v {
|
|
case FluidBackendRequirementDispositionStateOPEN, FluidBackendRequirementDispositionStateACCEPTED, FluidBackendRequirementDispositionStatePLANNED, FluidBackendRequirementDispositionStateAVAILABLE, FluidBackendRequirementDispositionStatePARTIALLYAVAILABLE, FluidBackendRequirementDispositionStateOUTOFSCOPE, FluidBackendRequirementDispositionStateREJECTED, FluidBackendRequirementDispositionStateSUPERSEDED:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
// The backend decides. Repeated OUT_OF_SCOPE feeds boundary learning
|
|
// (ArchitectureBlueprint.md section 22).
|
|
type FluidBackendRequirementDisposition struct {
|
|
Reason *string `json:"reason,omitempty" yaml:"reason,omitempty"`
|
|
State FluidBackendRequirementDispositionState `json:"state" yaml:"state"`
|
|
TargetRef *string `json:"target_ref,omitempty" yaml:"target_ref,omitempty"`
|
|
}
|
|
|
|
type FluidBackendRequirementExpectedUsage struct {
|
|
RequestsPerDay *int64 `json:"requests_per_day,omitempty" yaml:"requests_per_day,omitempty"`
|
|
}
|
|
|
|
type FluidBackendRequirementQuality struct {
|
|
Availability *UnitInterval `json:"availability,omitempty" yaml:"availability,omitempty"`
|
|
P95LatencyMS *float64 `json:"p95_latency_ms,omitempty" yaml:"p95_latency_ms,omitempty"`
|
|
}
|
|
|
|
type FluidBackendRequirementSecurity struct {
|
|
AuthorizationScope string `json:"authorization_scope,omitempty" yaml:"authorization_scope,omitempty"`
|
|
TenantIsolation string `json:"tenant_isolation,omitempty" yaml:"tenant_isolation,omitempty"`
|
|
}
|
|
|
|
type FluidBackendRequirementSemantics struct {
|
|
Consistency string `json:"consistency,omitempty" yaml:"consistency,omitempty"`
|
|
RequiredFields []string `json:"required_fields,omitempty" yaml:"required_fields,omitempty"`
|
|
}
|
|
|
|
type FluidBackendRequirementUrgency string
|
|
|
|
const (
|
|
FluidBackendRequirementUrgencyLOW FluidBackendRequirementUrgency = "LOW"
|
|
FluidBackendRequirementUrgencyMEDIUM FluidBackendRequirementUrgency = "MEDIUM"
|
|
FluidBackendRequirementUrgencyHIGH FluidBackendRequirementUrgency = "HIGH"
|
|
)
|
|
|
|
// Valid reports whether v is a defined FluidBackendRequirementUrgency.
|
|
func (v FluidBackendRequirementUrgency) Valid() bool {
|
|
switch v {
|
|
case FluidBackendRequirementUrgencyLOW, FluidBackendRequirementUrgencyMEDIUM, FluidBackendRequirementUrgencyHIGH:
|
|
return true
|
|
}
|
|
return false
|
|
}
|
|
|
|
type FluidBackendRequirement struct {
|
|
BackendService string `json:"backend_service" yaml:"backend_service"`
|
|
Capability FluidBackendRequirementCapability `json:"capability" yaml:"capability"`
|
|
|
|
// The backend decides. Repeated OUT_OF_SCOPE feeds boundary learning
|
|
// (ArchitectureBlueprint.md section 22).
|
|
Disposition FluidBackendRequirementDisposition `json:"disposition" yaml:"disposition"`
|
|
ExpectedUsage *FluidBackendRequirementExpectedUsage `json:"expected_usage,omitempty" yaml:"expected_usage,omitempty"`
|
|
ID BackendRequirementID `json:"id" yaml:"id"`
|
|
OriginatingHypothesis *HypothesisID `json:"originating_hypothesis,omitempty" yaml:"originating_hypothesis,omitempty"`
|
|
OriginatingInterface InterfaceID `json:"originating_interface" yaml:"originating_interface"`
|
|
OriginatingRevision *RevisionID `json:"originating_revision,omitempty" yaml:"originating_revision,omitempty"`
|
|
Quality *FluidBackendRequirementQuality `json:"quality,omitempty" yaml:"quality,omitempty"`
|
|
SchemaVersion SchemaVersion `json:"schema_version" yaml:"schema_version"`
|
|
Security *FluidBackendRequirementSecurity `json:"security,omitempty" yaml:"security,omitempty"`
|
|
Semantics *FluidBackendRequirementSemantics `json:"semantics,omitempty" yaml:"semantics,omitempty"`
|
|
Urgency *FluidBackendRequirementUrgency `json:"urgency,omitempty" yaml:"urgency,omitempty"`
|
|
}
|
|
|
|
// Capability the interface needs but has no authority to build. FLUID escalates
|
|
// rather than crossing the boundary (FluidAPIStandards.md section 30).
|
|
type BackendRequirementDocument struct {
|
|
FluidBackendRequirement FluidBackendRequirement `json:"fluid_backend_requirement" yaml:"fluid_backend_requirement"`
|
|
}
|