kinds

package
v2.11.0 Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2026 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Overview

Package kinds is the registry of every manifest kind: its schema file and its rules function, if it has one beyond schema and generic reference validation. Adding a kind means adding one entry here and one schema file; the engine itself never changes.

Index

Constants

This section is empty.

Variables

View Source
var All = []Spec{
	{Name: "Team", SchemaFile: "team.schema.json", Rules: team.Rules},
	{Name: "ReportingCycle", SchemaFile: "reportingcycle.schema.json", Rules: reportingcycle.Rules},
	{Name: "DataSource", SchemaFile: "datasource.schema.json"},
	{Name: "BeneficiaryGroup", SchemaFile: "beneficiarygroup.schema.json"},
	{Name: "Resource", SchemaFile: "resource.schema.json"},
	{Name: "FundingSource", SchemaFile: "fundingsource.schema.json"},
	{Name: "Segment", SchemaFile: "segment.schema.json", Rules: segment.Rules},
	{Name: "Gap", SchemaFile: "gap.schema.json"},
	{Name: "Assumption", SchemaFile: "assumption.schema.json"},
	{Name: "Purpose", SchemaFile: "purpose.schema.json", Rules: purpose.Rules},
	{Name: "Goal", SchemaFile: "goal.schema.json", Rules: goal.Rules},
	{Name: "Unit", SchemaFile: "unit.schema.json"},
	{Name: "KPI", SchemaFile: "kpi.schema.json"},
	{Name: "KPIReadings", SchemaFile: "kpireadings.schema.json", Rules: kpireadings.Rules},
	{Name: "Portfolio", SchemaFile: "portfolio.schema.json", Rules: portfolio.Rules},
	{Name: "Programme", SchemaFile: "programme.schema.json", Rules: programme.Rules},
	{Name: "Operation", SchemaFile: "operation.schema.json", Rules: operation.Rules},
	{Name: "Project", SchemaFile: "project.schema.json", Rules: project.Rules},
	{Name: "StakeholderMap", SchemaFile: "stakeholdermap.schema.json", Rules: stakeholdermap.Rules},
	{Name: "PortfolioDecisions", SchemaFile: "portfoliodecisions.schema.json", Rules: portfoliodecisions.Rules},

	{Name: "Allocation", SchemaFile: "allocation.schema.json"},
	{Name: "Settings", SchemaFile: "settings.schema.json", Rules: settings.Rules},
}

All is every registered kind, in the fixed order used for listing.

Functions

func Names

func Names() []string

Names returns every registered kind name, in registry order.

Types

type Spec

type Spec struct {
	// Name is the kind as it appears in a manifest's `kind` field, for
	// example "Project".
	Name string
	// SchemaFile is the file name under contract/schemas.
	SchemaFile string
	// Rules validates the kind's document beyond its JSON Schema and
	// generic reference checks. Nil means there are none.
	Rules kit.RulesFunc
}

Spec describes one kind.

func ByName

func ByName(name string) (Spec, bool)

ByName finds a kind by its exact name, or reports found=false.

Directories

Path Synopsis
Package goal implements the Goal kind's rules beyond its JSON Schema: parent presence by level (a goal has no parent; an objective requires a goal as parent; an outcome requires an objective goal as parent), unique key result ids within the goal, the key result unit-by-kind rule, and the objective must-be-qualitative rule.
Package goal implements the Goal kind's rules beyond its JSON Schema: parent presence by level (a goal has no parent; an objective requires a goal as parent; an outcome requires an objective goal as parent), unique key result ids within the goal, the key result unit-by-kind rule, and the objective must-be-qualitative rule.
Package kit holds the small, dependency-free types that both the engine and the per-kind rule packages need.
Package kit holds the small, dependency-free types that both the engine and the per-kind rule packages need.
Package kpireadings validates a KPI's series beyond its JSON Schema.
Package kpireadings validates a KPI's series beyond its JSON Schema.
Package operation implements the Operation kind's rules beyond its JSON Schema: a service's recurring funding lines (TAXONOMY.md D39) and its mandate's issuer (D43).
Package operation implements the Operation kind's rules beyond its JSON Schema: a service's recurring funding lines (TAXONOMY.md D39) and its mandate's issuer (D43).
Package portfolio implements the Portfolio kind's rules beyond its JSON Schema (TAXONOMY.md D32).
Package portfolio implements the Portfolio kind's rules beyond its JSON Schema (TAXONOMY.md D32).
Package portfoliodecisions implements the PortfolioDecisions kind's rules beyond its JSON Schema (TAXONOMY.md D32).
Package portfoliodecisions implements the PortfolioDecisions kind's rules beyond its JSON Schema (TAXONOMY.md D32).
Package programme implements the Programme kind's rules beyond its JSON Schema: the risk list a project and a programme share, checked here without phases, because a programme holds no timeline, and the gap citations they also share.
Package programme implements the Programme kind's rules beyond its JSON Schema: the risk list a project and a programme share, checked here without phases, because a programme holds no timeline, and the gap citations they also share.
Package project implements the Project kind's rules beyond its JSON Schema: unique key result ids within each objective, the key result unit-by-kind rule, the objective must-be-qualitative rule, unique deliverable ids, unique success criteria ids, a success criterion's derivedFrom must name exactly one key result or deliverable that actually exists in this project, at most one funding line per currency, and a risk's escalate.reason is required when escalate.flag is true; every local reference resolves to an item this project actually has; and a dependency edge belongs to the dependency type and lands by a phase the timeline actually has.
Package project implements the Project kind's rules beyond its JSON Schema: unique key result ids within each objective, the key result unit-by-kind rule, the objective must-be-qualitative rule, unique deliverable ids, unique success criteria ids, a success criterion's derivedFrom must name exactly one key result or deliverable that actually exists in this project, at most one funding line per currency, and a risk's escalate.reason is required when escalate.flag is true; every local reference resolves to an item this project actually has; and a dependency edge belongs to the dependency type and lands by a phase the timeline actually has.
Package purpose implements the Purpose kind's one rule beyond its JSON Schema: a workspace states one purpose, so its metadata.id is always "default".
Package purpose implements the Purpose kind's one rule beyond its JSON Schema: a workspace states one purpose, so its metadata.id is always "default".
Package reportingcycle holds the ReportingCycle kind's rules and the one derivation every reader of a cycle must agree on: which periods it has.
Package reportingcycle holds the ReportingCycle kind's rules and the one derivation every reader of a cycle must agree on: which periods it has.
Package segment validates the slice tree beyond its JSON Schema.
Package segment validates the slice tree beyond its JSON Schema.
Package settings implements the Settings kind's one rule beyond its JSON Schema: it is the only singleton kind, so its metadata.id must always be "default".
Package settings implements the Settings kind's one rule beyond its JSON Schema: it is the only singleton kind, so its metadata.id must always be "default".
Package stakeholdermap implements the StakeholderMap kind's rules beyond its JSON Schema: a map is scoped to a piece of work rather than to any manifest at all, and it scores each resource once.
Package stakeholdermap implements the StakeholderMap kind's rules beyond its JSON Schema: a map is scoped to a piece of work rather than to any manifest at all, and it scores each resource once.
Package team holds the Team kind's rules.
Package team holds the Team kind's rules.

Jump to

Keyboard shortcuts

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