a-second-adopter-is-served — A second adopter is served: what a foreign repository met on its first day is fixed in the tool
Each finding is fixed generically, with no test of whether the repository is this one: by a declaration, a derivation or a default that an adopter can state. Each fix carries a case that fails without it, its derived files regenerated and its page of the documentation corrected.
VERIFY 4 of 4 issues done
- ready
- 0
- blocked
- 0
- active
- 0
- verify
- 0
- done
- 4
- cancelled
- 0
Problem
Majordomus 0.21.0 and 0.22.0 were adopted on 2026-10-13 in a repository that shares nothing with this one: pnpm and TypeScript, vitest, pull requests into an integration branch, Docker Compose on two machines, no tags. Twenty-four findings were recorded (docs/ADOPTION_SECOND_RUN.md). Twenty-two are still present on master e506c041a4; most are a constant, a path or a vocabulary of this repository read as if it were every repository's.
Outcome
Each finding is fixed generically, with no test of whether the repository is this one: by a declaration, a derivation or a default that an adopter can state. Each fix carries a case that fails without it, its derived files regenerated and its page of the documentation corrected.
Scope
- lib
- apps/majordomus-cli/src
- share
- docs
- test/cases
Out of scope
- The adopting repository itself: it is the evidence, read only
- I1982 and I1996 of adopter-upgrades, which I2597 and I2587 widen rather than replace
- Accepting any ADR these issues propose; acceptance is the owner's act
Acceptance criteria
- Every issue of this milestone is DONE or CANCELLED with its reason
- No fix decides by the identity of the repository it runs in
Validation
- bin/majordomus plan validate
- scripts/derive-check
Evidence required
- findings_recorded
Issues
Each one is an execution contract with its own acceptance criteria, validation command and required evidence. The wave column is the layer of the dependency graph it sits in.
| issue | status | wave | depends on | title |
|---|---|---|---|---|
| I2601 | DONE | 0 | — | majordomus evidence reaches record, stamp and show |
| I2987 | DONE | 0 | — | server.status and peers.list ask every checkout at once, a bounded number at a time |
| I2993 | DONE | 0 | — | doctor counts the work no remote holds in one walk, whatever the number of branches |
| I2995 | DONE | 0 | — | doctor does no work whose answer cannot change a finding: the roadmap lookups and the board's wide status |
The graph
flowchart LR
I2601["I2601<br/>majordomus evidence reaches record, stamp and show"]:::done
I2987["I2987<br/>server.status and peers.list ask every checkout at once, a bounded number at a time"]:::done
I2993["I2993<br/>doctor counts the work no remote holds in one walk, whatever the number of branches"]:::done
I2995["I2995<br/>doctor does no work whose answer cannot change a finding: the roadmap lookups and the board's wide status"]:::done
classDef done stroke:#16a34a,fill:#dcfce7,color:#14532d,stroke-width:2px
classDef active stroke:#2563eb,fill:#eff6ff,color:#1e3a8a,stroke-width:2px
classDef verify stroke:#7c3aed,fill:#f5f3ff,color:#4c1d95,stroke-width:2px
classDef ready stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef planned stroke:#0891b2,fill:#ecfeff,color:#164e63,stroke-width:2px
classDef blocked stroke:#b45309,fill:#fffbeb,color:#78350f,stroke-width:2px
classDef cancelled stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2px
classDef superseded stroke:#6b7280,fill:#f9fafb,color:#374151,stroke-width:2pxLinked from this diagram (4)
- I2601 majordomus evidence reaches record, stamp and show
- I2987 server.status and peers.list ask every checkout at once, a bounded number at a time
- I2993 doctor counts the work no remote holds in one walk, whatever the number of branches
- I2995 doctor does no work whose answer cannot change a finding: the roadmap lookups and the board's wide status
Canonical record: .ai/repo/project/milestones/a-second-adopter-is-served.yaml. Read it back with majordomus plan show a-second-adopter-is-served.