Skip to content

Spec Phase by Default

Since #533, Sequant runs the spec phase for every issue by default — including bug fixes and documentation issues that previously short-circuited to exec → qa. Use this page to understand the new default and how to opt out for individual runs.

  1. Sequant installednpx sequant --version (must be a build that includes #533)
  2. autoDetectPhases enabled in .sequant/settings.jsonjq '.run.autoDetectPhases' .sequant/settings.json should print true
Issue LabelsBefore #533After #533
bug, fix, hotfix, patchexec → qaspec → exec → qa
docs, documentation, readmeexec → qaspec → exec → qa
enhancement, feature, nonespec → exec → qaspec → exec → qa (unchanged)
ui, frontend, admin, web, browserspec → exec → test → qaspec → exec → test → qa (unchanged)
bug + authspec → security-review → exec → qaspec → security-review → exec → qa (unchanged — bug no longer adds a competing rule)

The change applies at two layers:

  • /assess skill recommendation — the recommendation table and example output now show spec → exec → qa for bug/docs issues.
  • sequant run --auto-detect runtimephase-mapper.detectPhasesFromLabels and batch-executor’s auto-detect branch always include spec unless explicitly overridden.

Spec is only skipped automatically when a prior spec phase marker already exists on the issue (resume case).

Real-world batch assessments showed that bug- and docs-labeled issues frequently contain meaningful design decisions — scope boundaries, edge cases, test-strategy shifts — that the spec pass exists to catch. Earlier compression of the /spec skill (#515) made the per-phase cost small enough that universal inclusion is the better default.

Terminal window
sequant run 123

If issue #123 has a bug or docs label, Sequant now runs spec → exec → qa instead of going straight to exec.

Pass explicit --phases to bypass auto-detection entirely:

Terminal window
sequant run 123 --phases exec,qa

/assess will recommend spec → exec → qa by default. If you want to override before running, edit the Commands: block it produces:

Terminal window
# Default (assess recommends):
npx sequant run 123 -Q
# Override:
npx sequant run 123 -Q --phases exec,qa

Spec is skipped only when a prior spec phase marker already exists in the issue’s GitHub comments (i.e., spec ran in a previous session). The marker looks like:

<!-- SEQUANT_PHASE: {"phase":"spec","status":"completed",...} -->

This preserves the resume-friendly ◂ exec → qa behavior in /assess output.

  • Bug/docs runs are slower by approximately one spec cycle (~30–90s depending on issue complexity).
  • Spec output is now posted to the issue for bug/docs issues that previously had no spec comment.
  • Docs issues still get the lighter QA pipeline — see Lighter QA Pipeline for Documentation Issues. Only the QA phase is lighter; the workflow itself is the same as other issues.
  • /assess batch output reflects the new default — bug/docs rows in the Run column now show spec → exec → qa. Resume cases (◂ exec → qa) still appear when a prior spec marker exists.
SettingTypeDefaultDescription
run.autoDetectPhasesbooleantrueWhen true, label-based phase detection runs. Set to false to require explicit --phases on every invocation.
CLI flag --phases <list>comma-separated(auto-detect)Bypasses auto-detection for one run. Example: --phases exec,qa.
Detection functionLocationReturns
detectPhasesFromLabels(labels)src/lib/workflow/phase-mapper.ts{ phases: Phase[], qualityLoop: boolean } — always includes spec unless UI workflow applies
Auto-detect branchsrc/lib/workflow/batch-executor.tsRuns spec first, then uses spec output to determine remaining phases

My bug fix was instant before; now it pauses for spec

Section titled “My bug fix was instant before; now it pauses for spec”

This is the expected new default. Bypass for a single run:

Terminal window
sequant run <issue> --phases exec,qa

If you want to make this permanent for a class of issues, the override needs to be passed each time — there is no bug → skip-spec setting since #533. Consider adding a hook or shell alias if you frequently run trivial fixes.

/assess recommends spec → exec → qa but I want exec → qa

Section titled “/assess recommends spec → exec → qa but I want exec → qa”

Edit the Commands: line in the /assess output before running, or invoke sequant run directly with --phases exec,qa. /assess is read-only; nothing is committed by its recommendation.

I see ◂ exec → qa in /assess output for a bug issue

Section titled “I see ◂ exec → qa in /assess output for a bug issue”

This means a prior spec phase marker exists on the issue (resume case). Spec runs once per issue lifetime when autoDetectPhases is on; subsequent runs reuse the prior spec via the resume symbol.


Generated for Issue #533 on 2026-04-25