package work import "time" type DevelopmentStage string const ( DevelopmentEvidenceCollected DevelopmentStage = "EVIDENCE_COLLECTED" DevelopmentProposalCreated DevelopmentStage = "PROPOSAL_CREATED" DevelopmentTaskAdmitted DevelopmentStage = "TASK_ADMITTED" DevelopmentIsolated DevelopmentStage = "ISOLATED" DevelopmentVerified DevelopmentStage = "VERIFIED" DevelopmentCanary DevelopmentStage = "CANARY" DevelopmentPromoted DevelopmentStage = "PROMOTED" DevelopmentRolledBack DevelopmentStage = "ROLLED_BACK" ) type DevelopmentGate struct { ID string Revision int64 UpdatedAtUnixMillis int64 Stage DevelopmentStage EvidenceRefs []string ProposalRef string TaskPacketRef string WorktreeRef string ProducerRunRefs []AgentRunID VerifierRunRefs []AgentRunID VerificationEvidence string CanaryEvidence string PromotionRef string RollbackRef string } // ExtensionProposalStage is deliberately proposal-only in this contract. A // proposal does not authorize source changes, provider calls, deployment or // promotion; those stages require the existing governed development gate. type ExtensionProposalStage string const ExtensionProposalProposed ExtensionProposalStage = "PROPOSED" // ExtensionEvidence is an immutable reference to an observation that points // at a repeated or corroborated improvement signal. The payload is owned by // its source module; Work stores only the typed reference and stable signal // key. type ExtensionEvidence struct { Ref string SignalKey string } // ExtensionProposalRequest contains the operator/governance information // needed to decide whether an evidence pattern is worth reviewing. Empty // fields are rejected by the proposal generator rather than inferred. type ExtensionProposalRequest struct { ID string DesiredOutcome string SmallestChangeLayer string AffectedOwners []string AffectedContracts []string RiskTier string EvaluationPlan []string Alternatives []string RollbackPlan string Assumptions []string CreatedAt time.Time } // ExtensionProposal is a bounded, evidence-bearing candidate for governed // development. It intentionally contains no executable command, credential, // authority grant, implementation body or promotion decision. type ExtensionProposal struct { ID string RequestedByPrincipalID string Stage ExtensionProposalStage EvidenceRefs []string DeduplicatedSignalKeys []string DesiredOutcome string SmallestChangeLayer string AffectedOwners []string AffectedContracts []string RiskTier string EvaluationPlan []string Alternatives []string RollbackPlan string Assumptions []string CreatedAtUnixMillis int64 } type DevelopmentScaffoldStage string const DevelopmentScaffoldSandboxed DevelopmentScaffoldStage = "SANDBOXED" // DevelopmentScaffoldRequest describes the boundary a later control plane // would use to create an isolated worktree. This value object itself performs // no checkout or filesystem operation. type DevelopmentScaffoldRequest struct { ID string ProposalRef string BaseRepoRevision string WorktreeRef string TaskIntent string Modules []string AllowedPaths []string ForbiddenPaths []string ProtectedPaths []string RequiredTests []string ArtifactLineageRefs []string ProtectedMainAccess string ProductionAccess string SecretAccess string CreatedAt time.Time } // DevelopmentScaffold is a provenance-linked task-packet candidate. It has // no executable instruction, credential, checkout handle or authority grant. type DevelopmentScaffold struct { ID string RequestedByPrincipalID string Stage DevelopmentScaffoldStage ProposalRef string BaseRepoRevision string WorktreeRef string TaskIntent string Modules []string AllowedPaths []string ForbiddenPaths []string RequiredTests []string ArtifactLineageRefs []string ProtectedMainAccess string ProductionAccess string SecretAccess string CreatedAtUnixMillis int64 }