Documentation
¶
Overview ¶
Package store defines the storage interface for PRISM Control. The in-memory fake in this package enables unit testing of all domain logic without a running Dolt instance; the doltstore subpackage provides the Ent-backed production implementation.
Index ¶
- type Assignment
- type AssignmentStore
- type CapabilityModel
- type ContextSpec
- type DeliveryEvidence
- type Dimension
- type DimensionScore
- type EvidenceStore
- type Handoff
- type Initiative
- type InitiativeDependency
- type InitiativeStore
- type JudgeResult
- type JudgeRubric
- type JudgeStore
- type Level
- type MaturityAssessment
- type MaturityStore
- type MemStore
- func (m *MemStore) CreateAssignment(_ context.Context, a *Assignment) error
- func (m *MemStore) CreateCapabilityModel(_ context.Context, model *CapabilityModel) error
- func (m *MemStore) CreateDependency(_ context.Context, dep *RMIDependency) error
- func (m *MemStore) CreateEvidence(_ context.Context, ev *DeliveryEvidence) error
- func (m *MemStore) CreateInitiative(_ context.Context, init *Initiative) error
- func (m *MemStore) CreateInitiativeDependency(_ context.Context, dep *InitiativeDependency) error
- func (m *MemStore) CreateJudgeResult(_ context.Context, result *JudgeResult) error
- func (m *MemStore) CreateJudgeRubric(_ context.Context, rubric *JudgeRubric) error
- func (m *MemStore) CreateMaturityAssessment(_ context.Context, assessment *MaturityAssessment) error
- func (m *MemStore) CreatePhase(_ context.Context, phase *Phase) error
- func (m *MemStore) CreateProgram(_ context.Context, prog *Program) error
- func (m *MemStore) CreateRMI(_ context.Context, rmi *RoadmapItem) error
- func (m *MemStore) CreateRepoDependency(_ context.Context, dep *RepositoryDependency) error
- func (m *MemStore) CreateRepository(_ context.Context, repo *Repository) error
- func (m *MemStore) CreateSpecWorkflow(_ context.Context, wf *SpecWorkflow) error
- func (m *MemStore) DeletePhase(_ context.Context, id string) error
- func (m *MemStore) GetActiveAssignment(_ context.Context, rmiID string) (*Assignment, error)
- func (m *MemStore) GetAssignment(_ context.Context, id string) (*Assignment, error)
- func (m *MemStore) GetCapabilityModel(_ context.Context, id string) (*CapabilityModel, error)
- func (m *MemStore) GetInitiative(_ context.Context, id string) (*Initiative, error)
- func (m *MemStore) GetJudgeRubric(_ context.Context, id string) (*JudgeRubric, error)
- func (m *MemStore) GetMaturityAssessment(_ context.Context, id string) (*MaturityAssessment, error)
- func (m *MemStore) GetProgram(_ context.Context, id string) (*Program, error)
- func (m *MemStore) GetRMI(_ context.Context, id string) (*RoadmapItem, error)
- func (m *MemStore) GetRepository(_ context.Context, id string) (*Repository, error)
- func (m *MemStore) GetSpecWorkflow(_ context.Context, id string) (*SpecWorkflow, error)
- func (m *MemStore) ListActiveAssignments(_ context.Context) ([]*Assignment, error)
- func (m *MemStore) ListAllAssignments(_ context.Context) ([]*Assignment, error)
- func (m *MemStore) ListAllDependencies(_ context.Context) ([]*RMIDependency, error)
- func (m *MemStore) ListAllEvidence(_ context.Context) ([]*DeliveryEvidence, error)
- func (m *MemStore) ListAllInitiativeDependencies(_ context.Context) ([]*InitiativeDependency, error)
- func (m *MemStore) ListAllRMIs(_ context.Context) ([]*RoadmapItem, error)
- func (m *MemStore) ListAllRepoDependencies(_ context.Context) ([]*RepositoryDependency, error)
- func (m *MemStore) ListCapabilityModels(_ context.Context) ([]*CapabilityModel, error)
- func (m *MemStore) ListDependencies(_ context.Context, rmiID string) ([]*RMIDependency, error)
- func (m *MemStore) ListEvidenceByInitiative(ctx context.Context, initiativeID string) ([]*DeliveryEvidence, error)
- func (m *MemStore) ListEvidenceByRMI(_ context.Context, rmiID string) ([]*DeliveryEvidence, error)
- func (m *MemStore) ListInitiativeDependencies(_ context.Context, initiativeID string) ([]*InitiativeDependency, error)
- func (m *MemStore) ListInitiatives(_ context.Context) ([]*Initiative, error)
- func (m *MemStore) ListJudgeResults(_ context.Context, initiativeID string) ([]*JudgeResult, error)
- func (m *MemStore) ListJudgeRubrics(_ context.Context, workflowID string) ([]*JudgeRubric, error)
- func (m *MemStore) ListMaturityAssessments(_ context.Context, initiativeID string) ([]*MaturityAssessment, error)
- func (m *MemStore) ListMaturityAssessmentsByOrg(_ context.Context, org string) ([]*MaturityAssessment, error)
- func (m *MemStore) ListPhases(_ context.Context, initiativeID string) ([]*Phase, error)
- func (m *MemStore) ListPrograms(_ context.Context) ([]*Program, error)
- func (m *MemStore) ListRMIs(_ context.Context, initiativeID string) ([]*RoadmapItem, error)
- func (m *MemStore) ListRMIsByRepo(_ context.Context, repoID string) ([]*RoadmapItem, error)
- func (m *MemStore) ListRMIsByStatus(_ context.Context, status string) ([]*RoadmapItem, error)
- func (m *MemStore) ListRepoDependencies(_ context.Context, repoID string) ([]*RepositoryDependency, error)
- func (m *MemStore) ListRepositories(_ context.Context) ([]*Repository, error)
- func (m *MemStore) ListRepositoriesByOrg(_ context.Context, org string) ([]*Repository, error)
- func (m *MemStore) ListSpecWorkflows(_ context.Context) ([]*SpecWorkflow, error)
- func (m *MemStore) UpdateAssignment(_ context.Context, a *Assignment) error
- func (m *MemStore) UpdateCapabilityModel(_ context.Context, model *CapabilityModel) error
- func (m *MemStore) UpdateInitiative(_ context.Context, init *Initiative) error
- func (m *MemStore) UpdateProgram(_ context.Context, prog *Program) error
- func (m *MemStore) UpdateRMI(_ context.Context, rmi *RoadmapItem) error
- func (m *MemStore) UpdateRepository(_ context.Context, repo *Repository) error
- func (m *MemStore) UpdateSpecWorkflow(_ context.Context, wf *SpecWorkflow) error
- type MemUnitOfWork
- type Phase
- type PhaseStore
- type Program
- type ProgramStore
- type RMIDependency
- type RMIStore
- type Repository
- type RepositoryDependency
- type RepositoryStore
- type RoadmapItem
- type SpecWorkflow
- type SpecWorkflowStore
- type Store
- type UnitOfWork
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Assignment ¶
type Assignment struct {
ID string `json:"id"`
RMIID string `json:"rmi_id"`
Worker string `json:"worker,omitempty"` // session ID; matches omnidevx claudecode collector
Status string `json:"status"`
LeaseExpiresAt time.Time `json:"lease_expires_at"`
Workspace string `json:"workspace,omitempty"`
Handoff *Handoff `json:"handoff,omitempty"`
CreatedAt time.Time `json:"created_at"`
CompletedAt *time.Time `json:"completed_at,omitempty"`
UpdatedAt time.Time `json:"updated_at"`
}
Assignment is a lease-based work claim by an agent session.
type AssignmentStore ¶
type AssignmentStore interface {
CreateAssignment(ctx context.Context, a *Assignment) error
GetAssignment(ctx context.Context, id string) (*Assignment, error)
GetActiveAssignment(ctx context.Context, rmiID string) (*Assignment, error)
ListActiveAssignments(ctx context.Context) ([]*Assignment, error)
ListAllAssignments(ctx context.Context) ([]*Assignment, error)
UpdateAssignment(ctx context.Context, a *Assignment) error
}
AssignmentStore defines persistence for lease-based work claims.
type CapabilityModel ¶
type CapabilityModel struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Dimensions []Dimension `json:"dimensions,omitempty"`
MaxLevel int `json:"max_level"`
}
CapabilityModel defines a capability maturity framework.
type ContextSpec ¶
type ContextSpec struct {
// ExtraRepos lists additional repository IDs to include in the context.
// These are added to the derived repo set with role "explicit".
ExtraRepos []string `json:"extra_repos,omitempty"`
// IncludeSpecs lists spec file paths to explicitly include.
// Paths are relative to the RMI's repository root.
IncludeSpecs []string `json:"include_specs,omitempty"`
// ExcludeSpecs lists spec file paths to exclude from the context.
// Takes precedence over initiative-level specs and IncludeSpecs.
ExcludeSpecs []string `json:"exclude_specs,omitempty"`
}
ContextSpec contains explicit overrides for context assembly. When present, these settings augment or filter the derived context.
type DeliveryEvidence ¶
type DeliveryEvidence struct {
ID string `json:"id"`
RMIID string `json:"rmi_id"`
EvidenceType string `json:"evidence_type"` // commit|pr|release|changelog|test
Reference string `json:"reference"`
CommitType string `json:"commit_type,omitempty"` // conventional commit type (commits only)
CommitScope string `json:"commit_scope,omitempty"`
OccurredAt *time.Time `json:"occurred_at,omitempty"`
CreatedAt time.Time `json:"created_at"`
}
DeliveryEvidence links a commit, PR, release, or changelog entry to an RMI.
type Dimension ¶
type Dimension struct {
Key string `json:"key"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
Levels []Level `json:"levels,omitempty"`
Sources []string `json:"sources,omitempty"`
}
Dimension is a capability area within a maturity model.
type DimensionScore ¶
type DimensionScore struct {
Level int `json:"level"`
Rationale string `json:"rationale,omitempty"`
Evidence string `json:"evidence,omitempty"`
}
DimensionScore captures the assessment for a single dimension.
type EvidenceStore ¶
type EvidenceStore interface {
CreateEvidence(ctx context.Context, ev *DeliveryEvidence) error
ListEvidenceByRMI(ctx context.Context, rmiID string) ([]*DeliveryEvidence, error)
ListEvidenceByInitiative(ctx context.Context, initiativeID string) ([]*DeliveryEvidence, error)
ListAllEvidence(ctx context.Context) ([]*DeliveryEvidence, error)
}
EvidenceStore defines persistence for delivery evidence.
type Handoff ¶
type Handoff struct {
Completed []string `json:"completed"`
Remaining []string `json:"remaining"`
Decisions []string `json:"decisions"`
NextAction string `json:"next_action"`
}
Handoff carries compact state for session continuity.
type Initiative ¶
type Initiative struct {
ID string `json:"id"`
Organization string `json:"organization"`
Title string `json:"title"`
Description string `json:"description,omitempty"`
Status string `json:"status"`
InitType string `json:"init_type,omitempty"` // feature, maintenance, migration, compliance, refactor
WorkflowID string `json:"workflow_id,omitempty"` // SpecWorkflow override; empty means use the type's default
Priority string `json:"priority,omitempty"`
HomeRepo string `json:"home_repo,omitempty"`
Workspace string `json:"workspace,omitempty"`
ProgramID string `json:"program_id,omitempty"`
Specs map[string]string `json:"specs,omitempty"`
CreatedAt time.Time `json:"created_at"`
PlannedAt *time.Time `json:"planned_at,omitempty"`
ExecutingAt *time.Time `json:"executing_at,omitempty"`
DeliveryCompleteAt *time.Time `json:"delivery_complete_at,omitempty"`
ReleasedAt *time.Time `json:"released_at,omitempty"`
ClosedAt *time.Time `json:"closed_at,omitempty"`
UpdatedAt time.Time `json:"updated_at"`
}
Initiative represents a cross-repository initiative.
type InitiativeDependency ¶
type InitiativeDependency struct {
SourceInitiativeID string `json:"source_initiative_id"`
TargetInitiativeID string `json:"target_initiative_id"`
Relationship string `json:"relationship"` // "requires" or "relates"
}
InitiativeDependency is a directed edge between two initiatives.
type InitiativeStore ¶
type InitiativeStore interface {
CreateInitiative(ctx context.Context, init *Initiative) error
GetInitiative(ctx context.Context, id string) (*Initiative, error)
ListInitiatives(ctx context.Context) ([]*Initiative, error)
UpdateInitiative(ctx context.Context, init *Initiative) error
CreateInitiativeDependency(ctx context.Context, dep *InitiativeDependency) error
ListInitiativeDependencies(ctx context.Context, initiativeID string) ([]*InitiativeDependency, error)
ListAllInitiativeDependencies(ctx context.Context) ([]*InitiativeDependency, error)
}
InitiativeStore defines persistence for initiatives.
type JudgeResult ¶
type JudgeResult struct {
ID string `json:"id"`
InitiativeID string `json:"initiative_id"`
SpecPath string `json:"spec_path"`
RubricID string `json:"rubric_id"`
Score float64 `json:"score"`
Rationale string `json:"rationale,omitempty"`
Model string `json:"model,omitempty"`
EvaluatedAt time.Time `json:"evaluated_at"`
}
JudgeResult stores an LLM-as-a-Judge evaluation result.
type JudgeRubric ¶
type JudgeRubric struct {
ID string `json:"id"`
WorkflowID string `json:"workflow_id"`
SpecType string `json:"spec_type"` // e.g. "PRD.md"
Criteria map[string]any `json:"criteria,omitempty"` // scoring dimensions
PromptTemplate string `json:"prompt_template,omitempty"` // LLM prompt for evaluation
}
JudgeRubric defines scoring criteria for evaluating a spec type.
type JudgeStore ¶
type JudgeStore interface {
CreateJudgeRubric(ctx context.Context, rubric *JudgeRubric) error
GetJudgeRubric(ctx context.Context, id string) (*JudgeRubric, error)
ListJudgeRubrics(ctx context.Context, workflowID string) ([]*JudgeRubric, error)
CreateJudgeResult(ctx context.Context, result *JudgeResult) error
ListJudgeResults(ctx context.Context, initiativeID string) ([]*JudgeResult, error)
}
JudgeStore defines persistence for judge rubrics and results.
type Level ¶
type Level struct {
Level int `json:"level"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
}
Level describes a maturity level within a dimension.
type MaturityAssessment ¶
type MaturityAssessment struct {
ID string `json:"id"`
ModelID string `json:"model_id"`
InitiativeID string `json:"initiative_id,omitempty"`
Organization string `json:"organization,omitempty"`
Scores map[string]DimensionScore `json:"scores,omitempty"`
OverallScore *float64 `json:"overall_score,omitempty"`
Summary string `json:"summary,omitempty"`
AssessedBy string `json:"assessed_by,omitempty"`
Model string `json:"model,omitempty"` // LLM model used
AssessedAt time.Time `json:"assessed_at"`
}
MaturityAssessment captures a point-in-time capability assessment.
type MaturityStore ¶
type MaturityStore interface {
CreateCapabilityModel(ctx context.Context, model *CapabilityModel) error
GetCapabilityModel(ctx context.Context, id string) (*CapabilityModel, error)
ListCapabilityModels(ctx context.Context) ([]*CapabilityModel, error)
UpdateCapabilityModel(ctx context.Context, model *CapabilityModel) error
CreateMaturityAssessment(ctx context.Context, assessment *MaturityAssessment) error
GetMaturityAssessment(ctx context.Context, id string) (*MaturityAssessment, error)
ListMaturityAssessments(ctx context.Context, initiativeID string) ([]*MaturityAssessment, error)
ListMaturityAssessmentsByOrg(ctx context.Context, org string) ([]*MaturityAssessment, error)
}
MaturityStore defines persistence for capability models and assessments.
type MemStore ¶
type MemStore struct {
// contains filtered or unexported fields
}
MemStore is an in-memory Store implementation for unit testing. It is safe for concurrent use.
func (*MemStore) CreateAssignment ¶
func (m *MemStore) CreateAssignment(_ context.Context, a *Assignment) error
func (*MemStore) CreateCapabilityModel ¶
func (m *MemStore) CreateCapabilityModel(_ context.Context, model *CapabilityModel) error
func (*MemStore) CreateDependency ¶
func (m *MemStore) CreateDependency(_ context.Context, dep *RMIDependency) error
func (*MemStore) CreateEvidence ¶
func (m *MemStore) CreateEvidence(_ context.Context, ev *DeliveryEvidence) error
func (*MemStore) CreateInitiative ¶
func (m *MemStore) CreateInitiative(_ context.Context, init *Initiative) error
func (*MemStore) CreateInitiativeDependency ¶
func (m *MemStore) CreateInitiativeDependency(_ context.Context, dep *InitiativeDependency) error
func (*MemStore) CreateJudgeResult ¶
func (m *MemStore) CreateJudgeResult(_ context.Context, result *JudgeResult) error
func (*MemStore) CreateJudgeRubric ¶
func (m *MemStore) CreateJudgeRubric(_ context.Context, rubric *JudgeRubric) error
func (*MemStore) CreateMaturityAssessment ¶
func (m *MemStore) CreateMaturityAssessment(_ context.Context, assessment *MaturityAssessment) error
func (*MemStore) CreatePhase ¶
func (*MemStore) CreateProgram ¶
func (*MemStore) CreateRMI ¶
func (m *MemStore) CreateRMI(_ context.Context, rmi *RoadmapItem) error
func (*MemStore) CreateRepoDependency ¶
func (m *MemStore) CreateRepoDependency(_ context.Context, dep *RepositoryDependency) error
func (*MemStore) CreateRepository ¶
func (m *MemStore) CreateRepository(_ context.Context, repo *Repository) error
func (*MemStore) CreateSpecWorkflow ¶
func (m *MemStore) CreateSpecWorkflow(_ context.Context, wf *SpecWorkflow) error
func (*MemStore) GetActiveAssignment ¶
func (*MemStore) GetAssignment ¶
func (*MemStore) GetCapabilityModel ¶
func (*MemStore) GetInitiative ¶
func (*MemStore) GetJudgeRubric ¶
func (*MemStore) GetMaturityAssessment ¶
func (*MemStore) GetProgram ¶
func (*MemStore) GetRepository ¶
func (*MemStore) GetSpecWorkflow ¶
func (*MemStore) ListActiveAssignments ¶
func (m *MemStore) ListActiveAssignments(_ context.Context) ([]*Assignment, error)
func (*MemStore) ListAllAssignments ¶
func (m *MemStore) ListAllAssignments(_ context.Context) ([]*Assignment, error)
func (*MemStore) ListAllDependencies ¶
func (m *MemStore) ListAllDependencies(_ context.Context) ([]*RMIDependency, error)
func (*MemStore) ListAllEvidence ¶
func (m *MemStore) ListAllEvidence(_ context.Context) ([]*DeliveryEvidence, error)
func (*MemStore) ListAllInitiativeDependencies ¶
func (m *MemStore) ListAllInitiativeDependencies(_ context.Context) ([]*InitiativeDependency, error)
func (*MemStore) ListAllRMIs ¶
func (m *MemStore) ListAllRMIs(_ context.Context) ([]*RoadmapItem, error)
func (*MemStore) ListAllRepoDependencies ¶
func (m *MemStore) ListAllRepoDependencies(_ context.Context) ([]*RepositoryDependency, error)
func (*MemStore) ListCapabilityModels ¶
func (m *MemStore) ListCapabilityModels(_ context.Context) ([]*CapabilityModel, error)
func (*MemStore) ListDependencies ¶
func (*MemStore) ListEvidenceByInitiative ¶
func (*MemStore) ListEvidenceByRMI ¶
func (*MemStore) ListInitiativeDependencies ¶
func (*MemStore) ListInitiatives ¶
func (m *MemStore) ListInitiatives(_ context.Context) ([]*Initiative, error)
func (*MemStore) ListJudgeResults ¶
func (*MemStore) ListJudgeRubrics ¶
func (*MemStore) ListMaturityAssessments ¶
func (*MemStore) ListMaturityAssessmentsByOrg ¶
func (*MemStore) ListPhases ¶
func (*MemStore) ListPrograms ¶
func (*MemStore) ListRMIsByRepo ¶
func (*MemStore) ListRMIsByStatus ¶
func (*MemStore) ListRepoDependencies ¶
func (*MemStore) ListRepositories ¶
func (m *MemStore) ListRepositories(_ context.Context) ([]*Repository, error)
func (*MemStore) ListRepositoriesByOrg ¶
func (*MemStore) ListSpecWorkflows ¶
func (m *MemStore) ListSpecWorkflows(_ context.Context) ([]*SpecWorkflow, error)
func (*MemStore) UpdateAssignment ¶
func (m *MemStore) UpdateAssignment(_ context.Context, a *Assignment) error
func (*MemStore) UpdateCapabilityModel ¶
func (m *MemStore) UpdateCapabilityModel(_ context.Context, model *CapabilityModel) error
func (*MemStore) UpdateInitiative ¶
func (m *MemStore) UpdateInitiative(_ context.Context, init *Initiative) error
func (*MemStore) UpdateProgram ¶
func (*MemStore) UpdateRMI ¶
func (m *MemStore) UpdateRMI(_ context.Context, rmi *RoadmapItem) error
func (*MemStore) UpdateRepository ¶
func (m *MemStore) UpdateRepository(_ context.Context, repo *Repository) error
func (*MemStore) UpdateSpecWorkflow ¶
func (m *MemStore) UpdateSpecWorkflow(_ context.Context, wf *SpecWorkflow) error
type MemUnitOfWork ¶
type MemUnitOfWork struct {
Store *MemStore
}
MemUnitOfWork is a no-op UnitOfWork for the in-memory store.
type Phase ¶
type Phase struct {
ID string `json:"id"`
InitiativeID string `json:"initiative_id"`
SequenceNumber int `json:"sequence_number"`
Title string `json:"title"`
Theme string `json:"theme,omitempty"`
}
Phase is a themed grouping of RMIs within an initiative. Phase status is always derived from member RMIs — never stored.
type PhaseStore ¶
type PhaseStore interface {
CreatePhase(ctx context.Context, phase *Phase) error
ListPhases(ctx context.Context, initiativeID string) ([]*Phase, error)
DeletePhase(ctx context.Context, id string) error
}
PhaseStore defines persistence for phases.
type Program ¶
type Program struct {
ID string `json:"id"`
Name string `json:"name"`
Organization string `json:"organization"`
Description string `json:"description,omitempty"`
Hidden bool `json:"hidden,omitempty"` // when true, omitted from the dashboard homepage by default
CreatedAt time.Time `json:"created_at"`
UpdatedAt time.Time `json:"updated_at"`
}
Program is an organizational grouping of related initiatives.
type ProgramStore ¶
type ProgramStore interface {
CreateProgram(ctx context.Context, prog *Program) error
GetProgram(ctx context.Context, id string) (*Program, error)
ListPrograms(ctx context.Context) ([]*Program, error)
UpdateProgram(ctx context.Context, prog *Program) error
}
ProgramStore defines persistence for programs.
type RMIDependency ¶
type RMIDependency struct {
SourceRMIID string `json:"source_rmi_id"`
TargetRMIID string `json:"target_rmi_id"`
Relationship string `json:"relationship"` // "requires" or "relates"
}
RMIDependency is a directed edge between two RMIs.
type RMIStore ¶
type RMIStore interface {
CreateRMI(ctx context.Context, rmi *RoadmapItem) error
GetRMI(ctx context.Context, id string) (*RoadmapItem, error)
ListRMIs(ctx context.Context, initiativeID string) ([]*RoadmapItem, error)
ListAllRMIs(ctx context.Context) ([]*RoadmapItem, error)
ListRMIsByRepo(ctx context.Context, repoID string) ([]*RoadmapItem, error)
ListRMIsByStatus(ctx context.Context, status string) ([]*RoadmapItem, error)
UpdateRMI(ctx context.Context, rmi *RoadmapItem) error
CreateDependency(ctx context.Context, dep *RMIDependency) error
ListDependencies(ctx context.Context, rmiID string) ([]*RMIDependency, error)
ListAllDependencies(ctx context.Context) ([]*RMIDependency, error)
}
RMIStore defines persistence for roadmap items and dependencies.
type Repository ¶
type Repository struct {
ID string `json:"id"`
Organization string `json:"organization"`
RepositoryName string `json:"repository_name"`
DefaultBranch string `json:"default_branch,omitempty"`
LocalPath string `json:"local_path,omitempty"` // absolute path on disk (for ingest/scan)
GoModule string `json:"go_module,omitempty"` // go.mod module path (from gitscan)
Domain string `json:"domain,omitempty"`
Status string `json:"status"`
IngestHighWater string `json:"ingest_high_water,omitempty"` // last scanned commit SHA
}
Repository is a catalog entry for a participating repository.
type RepositoryDependency ¶
type RepositoryDependency struct {
SourceRepositoryID string `json:"source_repository_id"`
TargetRepositoryID string `json:"target_repository_id"`
DependencyType string `json:"dependency_type"` // "go_module"
}
RepositoryDependency is a directed edge between two repositories derived from go.mod dependency analysis.
type RepositoryStore ¶
type RepositoryStore interface {
CreateRepository(ctx context.Context, repo *Repository) error
GetRepository(ctx context.Context, id string) (*Repository, error)
ListRepositories(ctx context.Context) ([]*Repository, error)
ListRepositoriesByOrg(ctx context.Context, org string) ([]*Repository, error)
UpdateRepository(ctx context.Context, repo *Repository) error
CreateRepoDependency(ctx context.Context, dep *RepositoryDependency) error
ListRepoDependencies(ctx context.Context, repoID string) ([]*RepositoryDependency, error)
ListAllRepoDependencies(ctx context.Context) ([]*RepositoryDependency, error)
}
RepositoryStore defines persistence for the repository catalog.
type RoadmapItem ¶
type RoadmapItem struct {
ID string `json:"id"`
RepositoryID string `json:"repository_id"`
InitiativeID string `json:"initiative_id,omitempty"`
PhaseID string `json:"phase_id,omitempty"`
Title string `json:"title"`
Description string `json:"description,omitempty"`
ItemType string `json:"item_type"`
Status string `json:"status"`
Priority string `json:"priority,omitempty"`
Required bool `json:"required"`
SequenceNumber int `json:"sequence_number"`
AcceptanceCriteria []string `json:"acceptance_criteria,omitempty"`
ContextSpec *ContextSpec `json:"context_spec,omitempty"`
CreatedAt time.Time `json:"created_at"`
CompletedAt *time.Time `json:"completed_at,omitempty"`
UpdatedAt time.Time `json:"updated_at"`
}
RoadmapItem (RMI) is a deliverable within a single repository.
type SpecWorkflow ¶
type SpecWorkflow struct {
ID string `json:"id"`
Name string `json:"name"`
Description string `json:"description,omitempty"`
SpecsRequired []string `json:"specs_required,omitempty"` // e.g. ["PLAN.md", "ROADMAP.md"]
SpecsOptional []string `json:"specs_optional,omitempty"` // e.g. ["PRD.md", "TRD.md"]
InitTypes []string `json:"init_types,omitempty"` // initiative types this workflow applies to
}
SpecWorkflow defines a specification workflow template.
type SpecWorkflowStore ¶
type SpecWorkflowStore interface {
CreateSpecWorkflow(ctx context.Context, wf *SpecWorkflow) error
GetSpecWorkflow(ctx context.Context, id string) (*SpecWorkflow, error)
ListSpecWorkflows(ctx context.Context) ([]*SpecWorkflow, error)
UpdateSpecWorkflow(ctx context.Context, wf *SpecWorkflow) error
}
SpecWorkflowStore defines persistence for spec workflows.
type Store ¶
type Store interface {
InitiativeStore
ProgramStore
PhaseStore
RMIStore
AssignmentStore
EvidenceStore
RepositoryStore
SpecWorkflowStore
JudgeStore
MaturityStore
}
Store is the persistence interface shared by all service-layer operations. Every mutating method runs inside a UnitOfWork; reads may be called directly.
type UnitOfWork ¶
type UnitOfWork interface {
// Execute runs fn inside a transaction. If fn returns nil the
// transaction and Dolt commit are applied; otherwise both roll back.
Execute(ctx context.Context, fn func(ctx context.Context, s Store) error) error
}
UnitOfWork groups a SQL transaction with a subsequent Dolt commit. The production implementation wraps an Ent transaction and issues CALL DOLT_COMMIT on success; the in-memory fake is a no-op.