diff --git a/00-META/process/07-feature-branches.md b/00-META/process/07-feature-branches.md index cdc22723..442d6498 100644 --- a/00-META/process/07-feature-branches.md +++ b/00-META/process/07-feature-branches.md @@ -57,6 +57,13 @@ opened once and delivered once. It is never cut into steps for its size or for t merge check, an Approve and a delivery plan of waiting, so the fewest cuts is the fastest. Milestones are cut by release order when the design is broken up (playbook [04](04-build-handoff.md)); a release-order dependency found inside a milestone is a fault of that cut, said to the operator, never a silent extra step. +A milestone is one piece of functionality, possibly spanning several modules, repositories and dependencies such as +an SDK change (the operator, 2026-10-21). Its pull requests in every repository share the milestone's branch name, +so they are one delivery group (ADR 0482, which holds that a change across repositories is one group, one plan and +one Approve, and that its developer orders no release). Nothing of the milestone merges until every issue of it is +built, reviewed and checked; then the one Approve and one tiered delivery plan release it all, the plan's tiers +keeping a dependency such as the SDK before its dependents. A small fix found during the milestone rides in this +group, as playbook [08](08-small-fixes.md) says. **One design is built at a time** (the operator, 2026-10-17). While the milestones of one design are being built, no milestone of another design starts: its issues stay `open`, and nobody moves them to `diagnosing` or diff --git a/00-META/process/08-small-fixes.md b/00-META/process/08-small-fixes.md index 92d94a15..11f887fb 100644 --- a/00-META/process/08-small-fixes.md +++ b/00-META/process/08-small-fixes.md @@ -16,6 +16,14 @@ hour is a feature. **Who runs it.** Anyone who writes code, engineers and agents alike. +**A fix found during a milestone rides in that milestone's group** (the operator, 2026-10-21, after a day with ten +mesh-sdk merges, each rebuilding about forty dependent modules, and eight mesh-controller merges, each sending a +delivery to every node). Playbook [07](07-feature-branches.md) makes a milestone one piece of functionality +released once as one delivery group (ADR 0482). A small fix in a repository the running milestone touches, mesh-sdk +and mesh-controller above all, is built as below but on the milestone's branch, so its pull request joins the group +and merges with it. The exception is a fault that is broken for the operator now (something they see failing at +this moment): it goes alone as a small fix, and the lead's report says why. + ## The aim A small fix spends its time on the fix, and runs the long part once: **one try before the review, one review, one check run, @@ -117,5 +125,8 @@ reading itself and uses one subagent only for the review. (`git grep -n '/AC'`); one without is step 1 skipped. - An issue in `fixing` with nobody on it shows in `issue-tracker.list` with `flag: abandoned`; a stopped fix moves it back to `open` with its note. +- A fix found during a milestone is named in the lead's report with the group it rides in, or with the reason it + went alone. `mesh-delivery.deliveries` shows the milestone's members in one group and one delivery plan per + milestone; a merge of mesh-sdk or mesh-controller outside the group, with no reported reason, is this rule skipped. - The repository's own clone says `main` (`git -C branch --show-current`); another branch there is a fix built outside a worktree (issue 1010). diff --git a/00-META/process/playbooks.html b/00-META/process/playbooks.html index c2c8494a..7a84f58b 100644 --- a/00-META/process/playbooks.html +++ b/00-META/process/playbooks.html @@ -473,11 +473,11 @@ const P = [ {n:"08",name:"Small fixes",kind:"build",c:"--build", trig:"One issue in one repository, about an hour of work.", who:"The session, with one reviewer on the larger model.", - steps:["Read the issue and the code; settle any open question.","Write the acceptance criteria.","Move the issue to fixing.","Build on fix/- in its own worktree.","A test that fails today first, on behaviour. (new)","Push and try before the review. (new)","One review of the commit and its try.","Push the reviewed head; open the pull request.","The operator's Approve; the merge; the delivery plan.","Prove the fix live and resolve the same hour."], + steps:["Read the issue and the code; settle any open question.","Write the acceptance criteria.","Move the issue to fixing.","Build on fix/- in its own worktree.","A test that fails today first, on behaviour. (new)","Push and try before the review. (new)","One review of the commit and its try.","Push the reviewed head; open the pull request.","The operator's Approve; the merge; the delivery plan.","Prove the fix live and resolve the same hour.","During a milestone: ride in its delivery group, unless broken for the operator now. (new)"], prod:"One pull request, one delivery, a resolved issue.", next:"—",bounds:"About an hour · one try before the review, one review, one check", - prev:["A fix reviewed after its pull request opened","A long part run twice","A fix waiting on someone else's delivery"], - check:"The forge's checks; the review record; the tracker's move."}, + prev:["A fix reviewed after its pull request opened","A long part run twice","A fix waiting on someone else's delivery","Ten SDK merges and eight controller merges in a day, one per fix"], + check:"The forge's checks; the review record; the tracker's move; one delivery group and one delivery plan per milestone."}, {n:"09",name:"Cleanup",kind:"side",c:"--side", trig:"The operator asks, or merged branches, stale pull requests and old worktrees pile up.", who:"A session on the operator's word; the operator decides every deletion.",