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 ¶
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.
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. |
Click to show internal directories.
Click to hide internal directories.