mandrel 1.85.0 → 1.86.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -124,6 +124,30 @@ are operator-input waits, not validators. The two *named* HITL STOP gates the
124
124
  Story tracks (gate #1, gate #2) are the load-bearing pair; these additional
125
125
  waits are auto-proceeded for the same headless reason.
126
126
 
127
+ ## Boot sweep
128
+
129
+ Before anything else — ahead of the first-run preflight — run the **protected
130
+ boot sweep** so `/plan` opens against a tidy local checkout instead of one
131
+ still carrying the merged refs of the last delivered Epic or Story:
132
+
133
+ ```bash
134
+ node .agents/scripts/boot-sweep.js \
135
+ --include 'story-*' --include 'epic/*' \
136
+ --include 'feat/*' --include 'fix/*' --include 'chore/*'
137
+ ```
138
+
139
+ This is the **safe subset** of the `/git-cleanup` phases: it fast-forwards the
140
+ base branch (`main`), prunes stale remote-tracking refs, and reaps every local
141
+ branch whose PR is **merged** and whose HEAD matches the merged `headRefOid`.
142
+ It **never** touches the stash stack, and its `evaluateProtection` partition
143
+ skips (never reaps) any candidate with unpushed work, a dirty worktree, or a
144
+ still-open parent Story ticket — so it is safe to run unattended at the top of
145
+ a planning session. The sweep is **silent on a no-op**: with nothing to reap
146
+ and `main` already current it prints a single summary line
147
+ (`[boot-sweep] reaped 0 local + 0 remote; protected 0.`) and moves on. Its exit
148
+ code is always `0` — a failed sweep is swallowed and reported in the summary,
149
+ never allowed to fail the planning run.
150
+
127
151
  ## First-run preflight
128
152
 
129
153
  Before routing to a path helper, run a **first-run preflight** to catch
@@ -169,18 +193,22 @@ stubbed docs, or an unready doctor verdict).
169
193
  1. **Parse args.** Exactly one of `<epicId>`, `--idea`, `--from-notes`, or
170
194
  `--body` must be present; anything else is a usage error naming the four
171
195
  forms. A `--body` invocation routes to the story path (no triage).
172
- 2. **First-run preflight.** Run the preflight above. Skip when all signals
196
+ 2. **Boot sweep.** Run the protected boot sweep above
197
+ (`node .agents/scripts/boot-sweep.js …`) to fast-forward `main`, prune
198
+ stale remotes, and reap merged-PR branches. Silent on a no-op; never fails
199
+ the run.
200
+ 3. **First-run preflight.** Run the preflight above. Skip when all signals
173
201
  are clear (healthy project).
174
- 3. **Triage (idea path only).** Run the
202
+ 4. **Triage (idea path only).** Run the
175
203
  [`core/scope-triage`](../skills/core/scope-triage/SKILL.md) skill on the
176
204
  seed. Record the verdict in chat (one line).
177
- 4. **Delegate.** Read the selected path helper **in full** and execute it
205
+ 5. **Delegate.** Read the selected path helper **in full** and execute it
178
206
  from its entry phase, forwarding the absorbed flags (including `--yes`).
179
207
  The helper's phase numbering, HITL gates, and scripts are unchanged — this
180
208
  router adds no phase content. When `--yes` is present, the two HITL STOP
181
209
  gates auto-proceed per [Headless / non-interactive mode](#headless--non-interactive-mode---yes)
182
210
  above; every deterministic gate still runs.
183
- 5. **Internal returns.** When a path helper would historically have handed
211
+ 6. **Internal returns.** When a path helper would historically have handed
184
212
  off to the other planning command, switch helpers in-place and continue;
185
213
  surface the switch to the operator as a one-line note.
186
214
 
package/docs/CHANGELOG.md CHANGED
@@ -2,6 +2,18 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## [1.86.0](https://github.com/dsj1984/mandrel/compare/mandrel-v1.85.0...mandrel-v1.86.0) (2026-07-07)
6
+
7
+
8
+ ### Added
9
+
10
+ * Epic [#4372](https://github.com/dsj1984/mandrel/issues/4372) ([#4376](https://github.com/dsj1984/mandrel/issues/4376)) ([98a82a4](https://github.com/dsj1984/mandrel/commit/98a82a4c27e5eafdfa2f1c54cfb42ed537a69a2e))
11
+
12
+
13
+ ### Fixed
14
+
15
+ * **baselines:** repair check-baselines auto-refresh + dedupe FF probes ([#4380](https://github.com/dsj1984/mandrel/issues/4380)) ([20a4ecd](https://github.com/dsj1984/mandrel/commit/20a4ecd97f92cb6a88be474c321b139fed95db56)), closes [#4379](https://github.com/dsj1984/mandrel/issues/4379)
16
+
5
17
  ## [1.85.0](https://github.com/dsj1984/mandrel/compare/mandrel-v1.84.0...mandrel-v1.85.0) (2026-07-06)
6
18
 
7
19
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mandrel",
3
- "version": "1.85.0",
3
+ "version": "1.86.0",
4
4
  "description": "Claude Code-first opinionated workflow framework: instructions, personas, skills, and SDLC workflows that govern AI coding assistants.",
5
5
  "files": [
6
6
  ".agents/",