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
I1405
A pull request names the issue it realises, and the edge is derived rather than remembered
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
1- Waiting on
- none
- Holds back
- Behind it in all
1- Evidence
1of1
Moves
plan.transitionWhat it is
- Objective
- Derive the relation between an issue and the pull requests, branches and commits that realised it, from git and from GitHub, and make it traversable in both directions.
- Why
- The model reaches as far as a branch: `worktree/state.rs` reads an issue id out of a branch name and the topology gate enforces it. Above the branch there is nothing. A merged pull request does not lead back to the acceptance criteria it satisfied, and an outcome does not lead forward to the code that reached it, which is the question the whole model exists to answer.
- Now
- Evidence carries an optional `commit` string written by hand. No canonical record names a pull request, a check run or a branch. `issue_of()` in apps/majordomus-cli/src/worktree/state.rs infers the issue from a branch path component and is the only edge that exists.
- Wanted
- Given an issue, the branches, commits and pull requests that realised it are derivable. Given a merged commit or a pull request, the issue and the outcome it served are derivable. Nothing is stored that git or GitHub already knows.
- Done when
- unknown: the record declares no `completion`
- Risk
- A commit-to-issue edge inferred from a branch name is only as good as the branch discipline; unattributed must be a reported state, not an assumption.
Acceptance
- Given an issue id, the branches, commits and pull requests that realised it are listed, derived from git and GitHub
- Given a commit or a pull request, the issue and the milestone it served are named, or it is reported as unattributed
- Work with no execution contract is reported as unattributed rather than silently omitted
- The derivation reads no stored edge that git or GitHub already holds
- Validation
cargo test --workspace --all-featuresbash test/run.sh- Evidence required
traceability_both_ways- Evidence present
traceability_both_ways
Scope
- Touches
apps/majordomus-cli/src/worktreeapps/majordomus-cli/src/gitapps/majordomus-cli/src/graph.rsscripts/github-synctest/casesdocs- Not
Requiring a branch to encode an issue id where doctrine does not already require itStoring a commit list in a canonical record; git owns commits- Depends on
- 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-09T18:55:36Z
- Started
- 2026-09-09T18:55:15Z
- Verified
- 2026-09-09T18:55:34Z
- Completed
- 2026-09-09T18:55: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.