sequant 2.1.0 → 2.1.2

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.
@@ -110,18 +110,20 @@ Surface red flags. Only track signals that change the recommendation.
110
110
 
111
111
  **Phase selection from labels:**
112
112
 
113
- | Labels | Workflow |
114
- |--------|----------|
115
- | bug, fix, hotfix, patch | `exec → qa` |
116
- | docs, documentation, readme | `exec → qa` |
117
- | ui, frontend, admin, web, browser | `spec → exec → test qa` |
118
- | security, auth, authentication, permissions | `spec → security-review → exec → qa` |
119
- | complex, refactor, breaking, major | `spec exec → qa` + `-q` |
120
- | enhancement, feature (default) | `spec exec → qa` |
113
+ | Labels | Category | Workflow |
114
+ |--------|----------|----------|
115
+ | security, auth, authentication, permissions | Domain | `spec → security-review → exec → qa` |
116
+ | ui, frontend, admin, web, browser | Domain | `spec → exec → test → qa` |
117
+ | complex, refactor, breaking, major | Modifier | `spec → exec → qa` + `-q` |
118
+ | enhancement, feature (default) | Generic | `spec → exec → qa` |
119
+ | bug, fix, hotfix, patch | Generic | `exec → qa` |
120
+ | docs, documentation, readme | Generic | `exec → qa` |
121
+
122
+ **Label priority:** Domain labels take precedence over generic labels. When an issue has both a domain label and a generic label (e.g., `bug` + `auth`), use the domain-specific workflow. Example: an issue labeled `bug` + `auth` gets `spec → security-review → exec → qa`, not `exec → qa`. Similarly, `bug` + `ui` gets `spec → exec → test → qa`.
121
123
 
122
124
  **Valid phases (from `PhaseSchema` in `src/lib/workflow/types.ts`):** `spec`, `security-review`, `exec`, `testgen`, `test`, `verify`, `qa`, `loop`, `merger`
123
125
 
124
- **Skip spec when:** bug/docs label, OR spec comment already exists on issue.
126
+ **Skip spec when:** (bug/docs label AND no domain labels like security/auth/ui/frontend), OR spec comment already exists on issue.
125
127
 
126
128
  **Resume detection:** Branch exists with commits ahead of main → mark as resume (`◂`).
127
129
 
@@ -150,6 +152,8 @@ For each active worktree, check `git diff --name-only main...HEAD` for file over
150
152
 
151
153
  **Design principle:** Dashboard first. Copy-pasteable commands. Silence means healthy.
152
154
 
155
+ **Table column rules:** The "Reason" column must not be truncated mid-word. If a row's reason text would exceed the column width, prefer abbreviating the reason to a shorter synonym rather than cutting a word in half. Column widths should adapt to content — do not force a fixed table width.
156
+
153
157
  ```
154
158
  # Action Reason Run
155
159
  <N> <ACTION> <short reason> <workflow or symbol>
@@ -157,10 +161,8 @@ For each active worktree, check `git diff --name-only main...HEAD` for file over
157
161
  ...
158
162
  ────────────────────────────────────────────────────────────────
159
163
 
160
- ╭──────────────────────────────────────────────────────────────╮
161
- npx sequant run <N1> <N2> <flags> │
162
- │ npx sequant run <N3> <flags> # resume │
163
- ╰──────────────────────────────────────────────────────────────╯
164
+ npx sequant run <N1> <N2> <flags>
165
+ npx sequant run <N3> <flags> # resume
164
166
 
165
167
  ────────────────────────────────────────────────────────────────
166
168
  Order: <N> → <N> (<shared file>) · <N> → <N> (<dependency>)
@@ -201,6 +203,7 @@ Cleanup:
201
203
  4. Rewrite issues get `# restart` comment
202
204
  5. Chain mode issues use `--chain` flag
203
205
  6. If ALL issues share the same workflow, emit a single command
206
+ 7. **Line splitting:** When a single command would contain more than 6 issue numbers, split into multiple commands of at most 6 issues each, grouped by compatible workflow. Example: 11 issues → two commands (6 + 5)
204
207
 
205
208
  #### Annotation Rules
206
209
 
@@ -210,7 +213,7 @@ Cleanup:
210
213
  - **Omit entire section** (including its separator) when no annotations of that type exist.
211
214
  - **"All clear" is silence** — no annotation means no issues.
212
215
 
213
- #### Batch Example (mixed states)
216
+ #### Batch Example (mixed states, with label priority)
214
217
 
215
218
  ```
216
219
  # Action Reason Run
@@ -220,22 +223,23 @@ Cleanup:
220
223
  458 PROCEED Parallel UX + race condition spec → exec → qa
221
224
  447 CLOSE PR #457 merged —
222
225
  443 PROCEED Consolidate gh calls spec → exec → qa
223
- 412 PROCEED Auth token refresh ◂ exec → qa
226
+ 412 PROCEED Auth bug (domain: auth overrides bug) spec → security-review → exec → qa
227
+ 411 PROCEED Config path normalization ◂ exec → qa
224
228
  405 REWRITE PR #380 200+ commits behind ⟳ spec → exec → qa
225
229
  ────────────────────────────────────────────────────────────────
226
230
 
227
- ╭──────────────────────────────────────────────────────────────╮
228
- npx sequant run 461 460 -q --phases exec,qa │
229
- npx sequant run 458 443 -q │
230
- npx sequant run 412 -q --phases exec,qa # resume
231
- npx sequant run 405 -q # restart
232
- ╰──────────────────────────────────────────────────────────────╯
231
+ npx sequant run 461 460 -q --phases exec,qa
232
+ npx sequant run 458 443 -q
233
+ npx sequant run 412 -q --phases spec,security-review,exec,qa
234
+ npx sequant run 411 -q --phases exec,qa # resume
235
+ npx sequant run 405 -q # restart
233
236
 
234
237
  ────────────────────────────────────────────────────────────────
235
238
  Order: 460 → 461 (batch-executor.ts)
236
239
 
237
240
  ⚠ #458 Dual concern (UX + race) across 4 files
238
241
  ⚠ #405 Stale 30+ days, ACs still valid
242
+ ⚠ #412 bug + auth labels — domain label (auth) takes priority over bug
239
243
  ────────────────────────────────────────────────────────────────
240
244
  Cleanup:
241
245
  git worktree remove .../447-... # merged, stale worktree
@@ -249,7 +253,8 @@ Cleanup:
249
253
  <!-- #458 assess:action=PROCEED assess:phases=spec,exec,qa assess:quality-loop=true -->
250
254
  <!-- #447 assess:action=CLOSE -->
251
255
  <!-- #443 assess:action=PROCEED assess:phases=spec,exec,qa assess:quality-loop=true -->
252
- <!-- #412 assess:action=PROCEED assess:phases=exec,qa assess:quality-loop=true -->
256
+ <!-- #412 assess:action=PROCEED assess:phases=spec,security-review,exec,qa assess:quality-loop=true -->
257
+ <!-- #411 assess:action=PROCEED assess:phases=exec,qa assess:quality-loop=true -->
253
258
  <!-- #405 assess:action=REWRITE assess:phases=spec,exec,qa assess:quality-loop=true -->
254
259
  ```
255
260
 
@@ -264,10 +269,8 @@ When every issue is PROCEED with no warnings, the output is minimal:
264
269
  443 PROCEED Consolidate gh calls spec → exec → qa
265
270
  ────────────────────────────────────────────────────────────────
266
271
 
267
- ╭──────────────────────────────────────────────────────────────╮
268
- npx sequant run 461 460 -q --phases exec,qa │
269
- │ npx sequant run 443 -q │
270
- ╰──────────────────────────────────────────────────────────────╯
272
+ npx sequant run 461 460 -q --phases exec,qa
273
+ npx sequant run 443 -q
271
274
 
272
275
  ────────────────────────────────────────────────────────────────
273
276
 
@@ -276,6 +279,58 @@ When every issue is PROCEED with no warnings, the output is minimal:
276
279
  <!-- #443 assess:action=PROCEED assess:phases=spec,exec,qa assess:quality-loop=true -->
277
280
  ```
278
281
 
282
+ #### Batch Example (large batch, 13 issues with Rule 7 split)
283
+
284
+ When assessing 9+ issues, commands are split per Rule 7 (max 6 issue numbers per line), and the table adapts to content width:
285
+
286
+ ```
287
+ # Action Reason Run
288
+ 503 PROCEED Fix typo in error output exec → qa
289
+ 502 PROCEED Update deprecated API call exec → qa
290
+ 501 PROCEED Add retry logic to API client exec → qa
291
+ 500 PROCEED Fix token refresh race condition spec → security-review → exec → qa
292
+ 499 PROCEED Dashboard chart rendering bug spec → exec → test → qa
293
+ 498 PROCEED Update error messages exec → qa
294
+ 497 PROCEED Refactor batch executor spec → exec → qa
295
+ 496 PARK Blocked on #490 schema migration ‖
296
+ 495 PROCEED CLI help text improvements exec → qa
297
+ 494 PROCEED Assess batch formatting fix exec → qa
298
+ 493 CLOSE Duplicate of #491 —
299
+ 492 PROCEED Add export command spec → exec → qa
300
+ 491 PROCEED Normalize config paths exec → qa
301
+ ────────────────────────────────────────────────────────────────
302
+
303
+ npx sequant run 503 502 501 498 495 494 -q --phases exec,qa
304
+ npx sequant run 491 -q --phases exec,qa
305
+ npx sequant run 499 -q --phases spec,exec,test,qa
306
+ npx sequant run 500 -q --phases spec,security-review,exec,qa
307
+ npx sequant run 497 492 -q
308
+
309
+ ────────────────────────────────────────────────────────────────
310
+ Order: 497 → 492 (batch-executor.ts)
311
+
312
+ ⚠ #500 bug + auth labels — domain label takes priority
313
+ ⚠ #499 bug + ui labels — domain label triggers test phase
314
+ ────────────────────────────────────────────────────────────────
315
+ Cleanup:
316
+ gh issue close 493 # duplicate of #491
317
+ ────────────────────────────────────────────────────────────────
318
+
319
+ <!-- #503 assess:action=PROCEED assess:phases=exec,qa assess:quality-loop=true -->
320
+ <!-- #502 assess:action=PROCEED assess:phases=exec,qa assess:quality-loop=true -->
321
+ <!-- #501 assess:action=PROCEED assess:phases=exec,qa assess:quality-loop=true -->
322
+ <!-- #500 assess:action=PROCEED assess:phases=spec,security-review,exec,qa assess:quality-loop=true -->
323
+ <!-- #499 assess:action=PROCEED assess:phases=spec,exec,test,qa assess:quality-loop=true -->
324
+ <!-- #498 assess:action=PROCEED assess:phases=exec,qa assess:quality-loop=true -->
325
+ <!-- #497 assess:action=PROCEED assess:phases=spec,exec,qa assess:quality-loop=true -->
326
+ <!-- #496 assess:action=PARK -->
327
+ <!-- #495 assess:action=PROCEED assess:phases=exec,qa assess:quality-loop=true -->
328
+ <!-- #494 assess:action=PROCEED assess:phases=exec,qa assess:quality-loop=true -->
329
+ <!-- #493 assess:action=CLOSE -->
330
+ <!-- #492 assess:action=PROCEED assess:phases=spec,exec,qa assess:quality-loop=true -->
331
+ <!-- #491 assess:action=PROCEED assess:phases=exec,qa assess:quality-loop=true -->
332
+ ```
333
+
279
334
  ---
280
335
 
281
336
  ### Single Mode (1 issue)
@@ -291,9 +346,7 @@ More context since you're focused on one issue. Separators between every section
291
346
 
292
347
  → PROCEED — <one-line reason>
293
348
 
294
- ╭──────────────────────────────────────────────────────────────╮
295
- │ npx sequant run <N> <flags> │
296
- ╰──────────────────────────────────────────────────────────────╯
349
+ npx sequant run <N> <flags>
297
350
 
298
351
  <phases> · <N> ACs · <flag reasoning>
299
352
  ────────────────────────────────────────────────────────────────
@@ -315,9 +368,7 @@ Open · bug, enhancement, cli
315
368
 
316
369
  → PROCEED — Both root causes confirmed in codebase
317
370
 
318
- ╭──────────────────────────────────────────────────────────────╮
319
- │ npx sequant run 458 -q │
320
- ╰──────────────────────────────────────────────────────────────╯
371
+ npx sequant run 458 -q
321
372
 
322
373
  spec → exec → qa · 8 ACs · -q (dual concern)
323
374
  ────────────────────────────────────────────────────────────────
@@ -397,9 +448,7 @@ Need: <specific information required>
397
448
 
398
449
  → REWRITE — <reason>
399
450
 
400
- ╭──────────────────────────────────────────────────────────────╮
401
- │ npx sequant run <N> <flags> # fresh start │
402
- ╰──────────────────────────────────────────────────────────────╯
451
+ npx sequant run <N> <flags> # fresh start
403
452
 
404
453
  <phases> · <N> ACs
405
454
  ────────────────────────────────────────────────────────────────
@@ -1837,40 +1837,20 @@ When in doubt, choose:
1837
1837
 
1838
1838
  The goal is to satisfy AC with the smallest, safest change possible.
1839
1839
 
1840
- ### 5. Adversarial Self-Evaluation (REQUIRED)
1840
+ ### 5. Pre-PR Confidence Check (REQUIRED)
1841
1841
 
1842
- **Before outputting your final summary**, you MUST complete this adversarial self-evaluation to catch issues that automated checks miss.
1843
-
1844
- **Why this matters:** Sessions show that honest self-questioning consistently catches real issues:
1845
- - Tests that pass but don't cover the actual changes
1846
- - Features that build but don't work as expected
1847
- - AC items marked "done" but with weak implementation
1848
-
1849
- **Answer these questions honestly:**
1850
- 1. "Did anything not work as expected during implementation?"
1851
- 2. "If this feature broke tomorrow, would the current tests catch it?"
1852
- 3. "What's the weakest part of this implementation?"
1853
- 4. "Am I reporting success metrics without honest self-evaluation?"
1854
- 5. "For each changed source file, does a corresponding test file exist? If not, why is that acceptable?"
1855
- 6. "Did I run `npm run lint` and fix all errors, or am I hoping CI will pass?"
1842
+ **Before creating a PR**, state your confidence in 2-3 sentences.
1856
1843
 
1857
1844
  **Include this section in your output:**
1858
1845
 
1859
1846
  ```markdown
1860
- ### Self-Evaluation
1847
+ ### Pre-PR Confidence Check
1861
1848
 
1862
- - **Worked as expected:** [Yes/No - if No, explain what didn't work]
1863
- - **Test coverage confidence:** [High/Medium/Low - explain why]
1864
- - **Weakest part:** [Identify the weakest aspect of the implementation]
1865
- - **Honest assessment:** [Any concerns or caveats?]
1849
+ - **Weakest part:** [What's the most fragile aspect of this implementation?]
1850
+ - **Coverage gaps:** [Which changed files lack corresponding tests, and why is that acceptable?]
1866
1851
  ```
1867
1852
 
1868
- **If any answer reveals concerns:**
1869
- - Address the issues before proceeding
1870
- - Re-run relevant checks (`npm test`, `npm run build`)
1871
- - Update the self-evaluation after fixes
1872
-
1873
- **Do NOT skip this self-evaluation.** Honest reflection catches issues that automated checks miss.
1853
+ **If either field reveals concerns**, address them before creating the PR. Re-run `npm test` and `npm run build` after fixes.
1874
1854
 
1875
1855
  ---
1876
1856
 
@@ -1979,7 +1959,7 @@ npx tsx scripts/state/update.ts fail <issue-number> exec "Error description"
1979
1959
 
1980
1960
  **Before responding, verify your output includes ALL of these:**
1981
1961
 
1982
- - [ ] **Self-Evaluation Completed** - Adversarial self-evaluation section included in output
1962
+ - [ ] **Pre-PR Confidence Check** - Weakest part and coverage gaps stated
1983
1963
  - [ ] **AC Progress Summary** - Which AC items are satisfied, partially met, or blocked
1984
1964
  - [ ] **Files Changed** - List of key files modified
1985
1965
  - [ ] **Test/Build/Lint Results** - Output from `npm run build`, `npm run lint`, and `npm test`