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

I1512

Gate state is something the runtime can answer

Where it stands

devtask.issue
Readiness
ready no dependency and no gate holds it; nobody has started it
Status
READY
Can start
startable
Milestone
Milestone status
ACTIVE
Wave
0
Waiting on
none
Holds back
none
Behind it in all
0
Evidence
0 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 I1512

majordomus plan verify I1512

majordomus plan done I1512

What it is

Objective
Give the runtime a capability that answers what the repository's gates are and how the last run of each one went, so that CI status stops being the one observability subject with no reader on any surface.
Why
The gap matrix records CI status as absent, and it is absent in a specific and avoidable way: the gates and their plan are canonical — .ai/repo/ci/gates.yaml declares them and scripts/ci-plan --check holds the workflow to them — and nothing reads run state on any surface. Quality gates are recorded as canonical, implemented and verified and yet carry the note that there is no capability and no view of gate state. This repository has repeatedly mistaken a gate that never reported for a gate that passed; master carried three branch-breaking defects it never reported, and no required check exists at the merge, so a verdict that never arrives is the normal case rather than the exception. A surface that shows gate state is how that becomes visible.
Now
Gates are declared and planned. Their run state is read by a person on GitHub and by nothing in this repository. No capability, no route, no page.
Wanted
The runtime answers the gate set and the standing of each gate's last run, including the case where no run has reported, which is the case that matters most and the one an absent reader hides.
Done when
unknown: the record declares no `completion`
Risk
Medium. The failure to avoid is a reader that renders a missing verdict as a green one; this repository has already paid for that mistake twice.

Acceptance

  • A capability answers the declared gate set and the last known standing of each
  • A gate that has never reported is distinguished from a gate that passed
  • The capability answers without network access, saying what it could not reach
Validation
bin/majordomus-cli capabilities validatebash test/run.sh
Evidence required
gate_state_is_answerablenever_reported_is_distinct_from_passed
Evidence present
unknown: the record carries no `evidence` entries

Scope

Touches
apps/majordomus-cli/src/capability/builtinscripts/cidocs/COCKPIT.mdtest/cases
Not
Editing .ai/repo/ci/gates.yaml or docs/CI.md. The gate declaration is canonical and this issue reads it.Running gates from the runtime. Reading state is not executing it.A GitHub token requirement for the local read. A capability that cannot answer offline must say so rather than fail.
Depends on
none
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-09-11
Updated
2026-09-11
Started
unknown: the record declares no `started_at`
Verified
unknown: the record declares no `verified_at`
Completed
unknown: the record declares no `completed_at`

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

LevelCodeMessageReproduce
WARNscope_conflictshares apps/majordomus-cli/src/capability/builtin with I1800; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli/src/capability/builtin with I1900; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I1980; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I1990; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli/src/capability/builtin with I1997; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli/src/capability/builtin with I1999; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2059; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli/src/capability/builtin with I2114; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli/src/capability/builtin with I2140; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2282; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2410; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2411; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2412; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2413; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli/src/capability/builtin with I2414; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli/src/capability/builtin with I2415; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares scripts/ci with I2653; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli/src/capability/builtin with I2694; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2713; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2714; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2716; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares scripts/ci with I2717; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2718; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli/src/capability/builtin with I2720; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2723; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2731; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2734; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares apps/majordomus-cli/src/capability/builtin with I2740; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2742; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares scripts/ci with I2747; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2760; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares docs/COCKPIT.md with I2770; they may not run concurrentlymajordomus plan validate
WARNscope_conflictshares test/cases with I2786; they may not run concurrentlymajordomus plan validate