Skip to content
Cockpit0.29.0
A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live

I1004

Availability and visibility are metadata, not conditions in a template

Where it stands

devtask.issue
Readiness
complete completion is recorded and every required evidence token is present
Status
DONE
Can start
not now
Milestone
Milestone status
ACTIVE
Wave
1
Waiting on
none
Holds back
Behind it in all
24
Evidence
2 of 2
A move writes the repository: it stamps one field of this issue's record and appends one event to the ledger, and a commit will carry both.
The same moves from a terminal

majordomus plan start I1004

majordomus plan verify I1004

majordomus plan done I1004

What it is

Objective
Model where a capability is available — always, only in a static build, only with a running backend, only when authenticated, only at build time — and whether it is public or internal, so that every surface derives its behaviour from that rather than from its own conditionals.
Why
The published site and the running server are genuinely different environments. Without this metadata every template grows its own idea of what works where, and the site ends up offering a link to something no server is behind.
Now
The Cockpit is served by the running process. The site is generated. Nothing states which capability means anything in which environment.
Wanted
Availability and visibility are fields of the model, every projection reads them, and no template decides for itself.
Done when
unknown: the record declares no `completion`
Risk
A default of always-available makes the model useless and the classification invisible. Absence has to be a failure.

Acceptance

  • Availability distinguishes at least what is always true, what requires the running backend, what is a build-time snapshot and what requires authentication
  • Visibility distinguishes public and developer-facing capabilities from ones deliberately marked internal
  • Every existing capability, route and surface is classified, and an unclassified one is a validation failure rather than a default
  • No projection decides availability from anything other than this metadata
Validation
cargo test --workspace --all-featuresmajordomus generate --check
Evidence required
availability_modelledno_template_conditions
Evidence present
availability_modelledno_template_conditions

Scope

Touches
apps/majordomus-cli/src/capability/model.rs
Not
Any decision made from a hostname, a URL or a build-time flag inside a templateAn internal capability being silently invisible without saying it is internal
Depends on
Priority
p0
Profile
implementation
Parallel safe
true
Owner
unknown: the record declares no `owner`

The work so far

Branches
none
Merged
none
Commits
0
Trunk
master
Sessions
none
Created
2026-09-06
Updated
2026-09-06T16:54:53Z
Started
2026-09-06T16:22:51Z
Verified
unknown: the record declares no `verified_at`
Completed
2026-09-06T16:54:53Z

Synchronisation

Adapter
scripts/github-sync
Repository
unknown: the derived plan's header carries no repository
External issue
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it
State there
unknown: a live GitHub state; this executable makes no network call, so only `scripts/github-sync --check` can answer it

Findings

Nothing is wrong with these records.