readiness

package
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 4, 2026 License: MIT Imports: 1 Imported by: 0

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 Axis

type Axis struct {
	Total   int `json:"total"`
	Covered int `json:"covered"`
	Missing int `json:"missing"`
}

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

type BlockerPath struct {
	Path    []string `json:"path"`
	Blocker Blocker  `json:"blocker"`
}

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL