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
I1110
The second run changes nothing, and a test says so
Where it stands
devtask.issue- Readiness
- blocked 1 of its dependencies is not DONE
- Status
- BLOCKED
- Can start
- not now
- Milestone
- Milestone status
- ACTIVE
- Wave
5- Waiting on
- Holds back
- Behind it in all
4- Evidence
0of2
| In the way | Subject | Detail |
|---|---|---|
| issue | I1109 | I1109 is not DONE |
Moves
plan.transitionWhat it is
- Objective
- Make reconciliation idempotent: running it against a conforming repository produces no change at all, and prove it with a test rather than with an observation.
- Why
- Idempotence is what separates a reconciler from a script that happens to run twice. It is also the cheapest possible regression test for the whole desired-state machinery: if the second run does something, the first one did something it could not describe.
- Now
- Initialisation is not idempotent and nothing measures whether it is.
- Wanted
- A second reconciliation reports zero changes, the working tree is byte-identical, and a test fails the moment that stops being true.
- Done when
- unknown: the record declares no `completion`
- Risk
- The easy way to pass this test is to make the second run do nothing on principle. The test has to distinguish a reconciler that found nothing to do from one that did not look.
Acceptance
- Reconciling a conforming repository twice leaves the tree byte-identical, including every generated artifact
- The second run reports no change rather than reporting changes it then does not make
- The test covers a repository that was already adopted, one adopted by an older version, and one where a person edited a bridge
- A deliberate divergence makes the test fail, proving it can
- Validation
bash test/run.shmajordomus init --dry-run- Evidence required
second_run_emptynegative_test- Evidence present
- unknown: the record carries no `evidence` entries
Scope
- Touches
test/cases- Not
Achieving stillness by making the second run skip work it should doIgnoring a difference because it is only in a generated file- Depends on
- 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-09-06
- Updated
- 2026-09-06
- 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
Nothing is wrong with these records.