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
I1980
A layer names the tool version it was written for, and doctor tells version skew from defects
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
2- Evidence
0of3
Moves
plan.transitionWhat it is
- Objective
- Record in .ai/manifest.yaml the tool (or layer) version a layer was last migrated with. doctor then classifies findings that a newer tool raises against an older layer as version skew, naming the migration that clears them, instead of failing as defects. A layer written by a newer tool is refused by an older one with a message, not with a cascade.
- Why
- OSCILLA 34f967a (#64): installing 0.12.0 machine-wide turned doctor red with 433 failures: 497 unsealed plan stamps in 181 issues, and 135 use-case steps reclassified as state-mutating. Its pre-commit hook runs doctor, so every commit in that repository, including peers', was refused until the layer was migrated by hand. The migrated layer was then rejected by 0.10, so the launcher had to flip first. Neither doctor nor the docs could say that the cause was the upgrade.
- Now
- At e08aec8651 neither .ai/manifest.yaml (schema ai-repository/v1) nor policy.yaml records a tool version. lib/migrate.sh handles only .majordomus/ to .ai/. docs/INSTALL.md 'Upgrading and reinstalling' says to run the installer again.
- Wanted
- A manifest key (for example `tool: 0.12`) written by init and by migrate. doctor compares it with its own version: older means findings the new version introduced read as skew with `majordomus migrate --layer`; newer means one clear refusal. INSTALL.md says to migrate on a branch before switching the launcher.
- Done when
- unknown: the record declares no `completion`
- Risk
- unknown: the record declares no `risk`
Acceptance
- A fixture layer written for the previous minor version upgraded in place yields doctor output that names version skew and the migrate command, and exits with the skew status the issue defines, not 10 for every finding
- A layer whose manifest names a newer tool is refused by the older tool with one message naming both versions
- init writes the version key and migrate advances it
- Validation
bin/majordomus plan validateMJ_TEST_JOBS=4 bash test/run.sh <the case this issue adds>- Evidence required
version_skew_casenewer_layer_refused_caseinstall_docs_upgrade_step- Evidence present
- unknown: the record carries no `evidence` entries
Scope
- Touches
share/schemasshare/skeleton.ai/manifest.yamllib/doctor.shlib/migrate.shlib/init.shdocs/INSTALL.mdshare/installtest/cases- Not
- unknown: the record declares no `non_scope`
- Depends on
- unknown: the record declares no `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-10-04
- Updated
- 2026-10-04
- 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
| Level | Code | Message | Reproduce |
|---|---|---|---|
| WARN | scope_conflict | shares share/skeleton with I1990; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I1997; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares share/skeleton with I1999; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2059; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2114; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2282; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares share/schemas with I2410; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2411; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares share/skeleton with I2412; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2413; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2653; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares share/schemas with I2670; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2713; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2714; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2716; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2717; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares lib/doctor.sh with I2718; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2720; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2723; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2731; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2734; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2740; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares share/schemas with I2742; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2747; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2760; they may not run concurrently | majordomus plan validate |
| WARN | scope_conflict | shares test/cases with I2786; they may not run concurrently | majordomus plan validate |