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

I1406

The plan's derivations are capabilities, so every surface reads the readiness the terminal reads

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
VERIFY
Wave
0
Waiting on
none
Holds back
Behind it in all
1
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 I1406

majordomus plan verify I1406

majordomus plan done I1406

What it is

Objective
Make status, ready, blocked, waves, next and roadmap answerable through the capability registry, so that MCP, HTTP, OpenAPI and the Cockpit read the derived plan rather than only the raw documents.
Why
Issues and milestones are already served as objects: `majordomus://issue/I0001` returns the record. What is not served is everything that makes the model worth having. The derivations live in lib/plan.sh and lib/project.awk, the Rust executable opens `.ai/repo/project/issues/` only to read filenames, and an agent asking the server what to work on next cannot be told.
Now
lib/plan.sh, 520 lines, computes the derived states. apps/majordomus-cli/src/worktree/state.rs line 190 is the only place the executable touches the project directory, and it reads the directory listing. There is no plan capability and therefore no plan tool, route or Cockpit page.
Wanted
The derivations are declared where every other capability is declared and projected by the same generator. The shell keeps its command surface by calling the executable, or the two agree by construction and a test proves they agree.
Done when
unknown: the record declares no `completion`
Risk
Two implementations of one derivation is the failure this repository exists to prevent; the equality test is the acceptance criterion, not a nicety.

Acceptance

  • The derivations are declared once and projected to MCP, HTTP and OpenAPI with no transport registry edited by hand
  • The executable and the shell answer identically for every record in this repository, proved by a test that compares them
  • majordomus generate --check is clean after the declaration is added
  • The Cockpit shows the derived plan and its drift
Validation
cargo test --workspace --all-featuresmajordomus generate --checkbash test/run.sh
Evidence required
derivations_projectedshell_and_executable_agree
Evidence present
derivations_projectedshell_and_executable_agree

Scope

Touches
apps/majordomus-cli/src/capability/builtinapps/majordomus-cli/srclib/plan.shdocs/CAPABILITIES.mdtest/cases
Not
Changing what the derivations meanA second plan implementation that may disagree with the first
Depends on
none
Priority
p1
Profile
implementation
Parallel safe
false
Owner
unknown: the record declares no `owner`

The work so far

Branches
none
Merged
none
Commits
0
Trunk
master
Sessions
none
Created
2026-09-09
Updated
2026-09-09T22:00:36Z
Started
2026-09-09T22:00:16Z
Verified
2026-09-09T22:00:30Z
Completed
2026-09-09T22:00:36Z

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.