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

I2740

An issue's delivery is inferred from branches, pull requests, merges, tags and the published site

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
Behind it in all
4
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 I2740

majordomus plan verify I2740

majordomus plan done I2740

What it is

Objective
Add the capability plan.delivery (CLI majordomus plan delivery [--json] [<id>], HTTP and MCP from the one capability declaration) that answers, for every issue, the furthest stage of none, branch, pr_open, merged, released, deployed, each with the object that proved it and when it was observed, and expose it in the site data the plan pages read.
Why
ADR 0166. Status is derived from stamps only (lib/project.awk:156-170, plan.rs derive); trace.issue, delivery.report and github-sync each read a part of the truth and nothing joins them. I2653 was merged whole by #1097 and still reads READY.
Now
trace.issue (capability/builtin/trace.rs, worktree/trace.rs) gives an issue's branches and merged commits; the served forge cache holds pull requests and releases; nothing answers a stage per issue.
Wanted
plan.delivery reuses trace.issue for branches and merges, the issue edge of I1405 for pull requests named by title, branch or trailer, the served forge cache for open pull requests (unread forge reported as unread, never as none), git tag --contains for the first v* tag, and the published latest.json for deployed; scripts/generate-site-data writes site/data/generated/delivery.json from it.
Done when
unknown: the record declares no `completion`
Risk
unknown: the record declares no `risk`

Acceptance

  • An issue named by a merged pull request in a fixture repository reads merged with the merge commit, and released once a v* tag contains it
  • An issue with only an open pull request reads pr_open with its number; with an unread forge the answer says unread
  • The capability is declared once and reaches CLI, HTTP and MCP through majordomus generate
  • site/data/generated/delivery.json is produced by the executable and checked by generate-site-data --check
Validation
cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test plan_deliverybash test/run.sh 3100_an_issue_delivery_is_inferred
Evidence required
delivery_stage_casemutations_fail_the_case
Evidence present
unknown: the record carries no `evidence` entries

Scope

Touches
apps/majordomus-cli/src/capability/builtin/plan.rsapps/majordomus-cli/src/planapps/majordomus-cli/src/plan.rsapps/majordomus-cli/tests/plan_delivery.rsscripts/generate-site-datasite/data/generated/delivery.jsondocs/PLANNING.mddocs/generatedtest/cases/3100_an_issue_delivery_is_inferred.sh
Not
unknown: the record declares no `non_scope`
Depends on
none
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-10-16
Updated
2026-10-16
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/plan.rs with I2742; they may not run concurrentlymajordomus plan validate