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

I1998

A health command in an unsupervised repository does not exit 0

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
0
Waiting on
none
Holds back
none
Behind it in all
0
Evidence
1 of 1
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 I1998

majordomus plan verify I1998

majordomus plan done I1998

What it is

Objective
Make `majordomus doctor`, `session list` and the other read-only commands exit with the missing-artifact code when the repository has no .ai/manifest.yaml, so a caller can tell a healthy repository from one the tool is not installed in.
Why
Run by majordomus 0.14.0 on prismatic-platform's main branch on 2026-10-08, which has no layer, `majordomus doctor` and `majordomus session list` each printed only 'no .ai/manifest.yaml ... (run: majordomus init)' and exited 0. A script or an agent that runs doctor as its health check reads that as healthy. The Rust executable already answers the same state with exit 12 and the start directory named; the shell tool disagrees with it.
Now
The shell tool's read-only commands print the missing-manifest line and exit 0 outside a supervised repository.
Wanted
Outside a supervised repository every command that reports on the layer exits 12 with the line it prints today. Commands whose purpose is to work there — init, version, help — are unchanged.
Done when
unknown: the record declares no `completion`
Risk
unknown: the record declares no `risk`

Acceptance

  • doctor and session list in a git repository with no .ai/manifest.yaml exit 12 and name the missing file
  • init, version and help in the same repository exit 0
  • The shell tool and the Rust executable exit with the same code for the same missing layer
Validation
bin/majordomus plan validateMJ_TEST_JOBS=4 bash test/run.sh <the case this issue adds>
Evidence required
unsupervised_exit_code_case
Evidence present
unsupervised_exit_code_case

Scope

Touches
bin/majordomuslibdocs/CLI.mdtest/cases
Not
unknown: the record declares no `non_scope`
Depends on
unknown: the record declares no `depends_on`
Priority
p2
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-10-08
Updated
2026-10-14T11:15:00Z
Started
2026-10-14T11:14:53Z
Verified
unknown: the record declares no `verified_at`
Completed
2026-10-14T11:15:00Z

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.