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
I1108
The desired integration is a value, and the plan is a diff
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
3- Waiting on
- Holds back
- Behind it in all
14- Evidence
0of3
| In the way | Subject | Detail |
|---|---|---|
| issue | I1106 | I1106 is not DONE |
Moves
plan.transitionWhat it is
- Objective
- Compute what a repository's Majordomus integration should look like as a typed value, diff it against what the repository actually holds, and make the apply the smallest mutation that closes the gap.
- Why
- `init` that writes what it was written to write cannot be run twice, cannot be previewed, and cannot be undone. A desired state that is a value can be compared, shown before it is applied, and reversed.
- Now
- Initialisation writes a skeleton. Nothing computes what is missing, nothing reports what would change, and running it again is not a defined operation.
- Wanted
- One function produces the desired integration from the repository model, one produces the difference, and the apply consumes the difference — so a dry run is the same computation without the last step.
- Done when
- unknown: the record declares no `completion`
- Risk
- A reconciler that computes what a repository should look like will eventually be wrong about one. Everything it would do outside the two namespaces must be visible before it is done.
Acceptance
- The desired integration is derived from the repository model, and a repository that already conforms produces an empty difference
- The difference is a typed value that names every path it would create, modify or remove, and why
- A dry run performs the same computation as an apply and mutates nothing
- The apply performs exactly the difference and nothing else, proved by comparing the tree before and after against the plan
- A mutation the plan did not name is a bug, and a test proves the apply cannot make one
- Validation
majordomus init --dry-runcargo test --workspace --all-features- Evidence required
desired_state_typedplan_is_diffdry_run_mutates_nothing- Evidence present
- unknown: the record carries no `evidence` entries
Scope
- Touches
apps/majordomus-cli/src/commands/init.rsapps/majordomus-cli/src/integration- Not
Applying anything the dry run did not showA desired state that depends on a configuration file rather than on the model- Depends on
- Priority
- p0
- Profile
- deep-work
- 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.