Expand description
The product model: what this repository’s product does for a person, as the features under the layer’s features section declare it, with every fact a surface may say about a feature derived from the registries that own those facts.
Nothing here discovers or parses a file. A feature is an ordinary declarative object of
the layer — kind feature in share/kinds.yaml, discovered by the source class in the
repository’s sources.yaml, validated against its JSON Schema by the time the index
holds it. This module projects that validated metadata into typed records, resolves
every reference the records make against the registry that owns it, and derives what
nobody authored: which interfaces expose a feature, the tools, routes and command-line
paths behind it, how many objects of its kinds the layer holds, which operational
moments it answers, and what is guaranteed about it.
Built once, when a crate::capability::Context is composed, and shared by every
projection: the command line, the HTTP routes, the MCP tools, the derived graph and the
site’s dataset are readers of this one value.
Two directions are kept apart on purpose, exactly as the Why catalogue keeps them.
Authored is what a file says: the headline, the summary, the order, whether the
homepage features it, and the typed references to what the feature is made of.
Derived is everything else, and none of it may be written into a source file: the
schema refuses a surfaces or a route key, and this module is where those come from.
Structs§
- AdrRef
- One architecture decision the feature names.
- Capability
Ref - One capability of a module the feature names, with the projections the registry declares for it.
- Claim
Ref - One claim the feature names, with the status the matrix gives it.
- Cockpit
Area Ref - One area of the Cockpit the feature names.
- Command
Ref - One public command of the shell tool the feature names, as
share/commands.yamldeclares it. - DocRef
- One document the feature names.
- Domain
- One product domain, as its file declares it plus where it came from and where it is
published. A domain never lists its features;
ResolvedDomainderives them. - Domain
Counts - How much stands behind a domain: sums and distinct counts over its stable features.
- Domain
Member - One stable feature of a domain, as a card shows it.
- Domain
Ref - A domain as a feature points at it: enough for a breadcrumb.
- Feature
- One product feature, as its file declares it plus the facts the file cannot hold: where it came from and where it is published.
- Feature
Counts - How much stands behind a feature, every number derived.
- Feature
Evidence - What is guaranteed about a feature, counted from the claims it names: never a word a person wrote about the feature’s maturity.
- KindRef
- One object kind the feature names, with how many objects of it the layer holds.
- Module
Ref - One capability module the feature names.
- Moment
Ref - One operational moment the feature answers: derived from the moments that name any of the feature’s commands, capabilities, claims or rules.
- Product
Coverage - One thing of the product — a module, a public command, a kind — and the features that name it. Empty means the product page says nothing about it, which is a gap the validation reports and the matrix shows rather than hides.
- Product
Finding - One thing wrong with the product model, named where it is, with the nearest candidate when there is one.
- Product
Model - The validated product model and every index derived from it. Immutable: built once from an index and a registry, read many times.
- Product
Provider - One provider the tool has an adapter for, discovered from the templates the distribution ships and decorated with what this repository does with it.
- Provider
Bootstrap - One bootstrap a provider renders.
- Resolved
Domain - One domain, resolved: the record as its file declares it, and everything derived from the stable features that name it.
- Resolved
Refs - One feature, resolved: the record as its file declares it, and everything derived.
- RuleRef
- One rule the feature names.
- Surface
Ref - One web surface of the topology the feature names.
- Surfaces
- The interfaces a feature is exposed through, decided from what its references project
and from nothing a file says. Each is a fact with a reason a reader can check:
cliis true when a module of the feature has a capability with a command-line path or the feature names a shell command;apiwhen a module has an HTTP route;mcpwhen a module has an MCP tool or resource, or the feature names a kind, since every object of the layer is an MCP resource;cockpitwhen the feature names a Cockpit area or a module, since every capability has a Cockpit page;docswhen it names a document. - UseCase
Ref - One use case the feature names.
Constants§
- DOMAIN
- The kind of a product domain: one of the few things the product controls, under which every feature is filed exactly once (ADR 0104).
- DOMAIN_
ROUTE - The section the domains are published under.
- FEATURE
- The kind of a product feature.
- RESERVED
- The identities the section’s own routes use; a feature called one of these would claim a route the section already owns.
- ROUTE
- The section the features are published under.
- STABLE
- A feature that is complete and public.
- SURFACES
- The vocabulary of surfaces a feature can be exposed through: id, title, and the route on the website where that surface is documented. Five, because the executable has five ways to be reached, and nothing else is a surface.