Documentation
¶
Overview ¶
Package readiness computes living-Saga delivery projections from an already validated graph. It deliberately has no filesystem or transport dependency.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Blocker ¶
type Blocker struct {
Code string `json:"code"`
Resource string `json:"resource,omitempty"`
Detail string `json:"detail,omitempty"`
Path []string `json:"path,omitempty"`
}
Blocker describes one fact preventing a current delivery path.
type BlockerPath ¶
BlockerPath retains the dependency chain from a criterion's work item to an unsatisfied prerequisite. Callers can explain a transitive result without reimplementing graph traversal.
type Criterion ¶
type Criterion struct {
URN string
Designed bool
Planned bool
Evidence []string
DirectBlockers []Blocker
UpstreamPaths []BlockerPath
}
Criterion is the current accepted criterion input to the projection.
type CriterionResult ¶
type CriterionResult struct {
Criterion string `json:"criterion"`
Designed bool `json:"designed"`
Planned bool `json:"planned"`
Delivered bool `json:"delivered"`
Evidence []string `json:"evidence"`
Blockers []Blocker `json:"blockers"`
TransitivePaths []BlockerPath `json:"transitive_blocker_paths"`
}
type Projection ¶
type Projection struct {
PeerReviewReady bool `json:"peer_review_ready"`
RequirementCoverage Axis `json:"requirement_coverage"`
PlanCoverage Axis `json:"plan_coverage"`
DeliveryCoverage Axis `json:"delivery_coverage"`
Criteria []CriterionResult `json:"criteria"`
}
func Evaluate ¶
func Evaluate(criteria []Criterion) Projection
Evaluate keeps the three coverage axes independent. In particular, a work item's authored progress state is never an evidence input and therefore can never make Delivered true.