sequant 1.16.0 â 1.16.1
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.
package/README.md
CHANGED
|
@@ -128,6 +128,7 @@ npx sequant run 123 # Single issue
|
|
|
128
128
|
npx sequant run 1 2 3 # Batch (parallel)
|
|
129
129
|
npx sequant run 123 --quality-loop
|
|
130
130
|
npx sequant run 123 --base feature/dashboard # Custom base branch
|
|
131
|
+
npx sequant merge --check # Verify batch before merging
|
|
131
132
|
```
|
|
132
133
|
|
|
133
134
|
---
|
|
@@ -155,6 +156,7 @@ npx sequant run 123 --base feature/dashboard # Custom base branch
|
|
|
155
156
|
|
|
156
157
|
| Command | Purpose |
|
|
157
158
|
|---------|---------|
|
|
159
|
+
| `/merger` | Multi-issue merge coordination |
|
|
158
160
|
| `/testgen` | Generate test stubs from spec |
|
|
159
161
|
| `/verify` | CLI/script execution verification |
|
|
160
162
|
| `/setup` | Initialize Sequant in a project |
|
|
@@ -180,12 +182,13 @@ npx sequant update # Update skill templates
|
|
|
180
182
|
npx sequant doctor # Check installation
|
|
181
183
|
npx sequant status # Show version and config
|
|
182
184
|
npx sequant run <issues...> # Execute workflow
|
|
185
|
+
npx sequant merge <issues...> # Batch integration QA before merging
|
|
183
186
|
npx sequant state <cmd> # Manage workflow state (init/rebuild/clean)
|
|
184
187
|
npx sequant stats # View local workflow analytics
|
|
185
188
|
npx sequant dashboard # Launch real-time workflow dashboard
|
|
186
189
|
```
|
|
187
190
|
|
|
188
|
-
See [Run Command Options](docs/reference/run-command.md), [State Command](docs/reference/state-command.md), and [Analytics](docs/reference/analytics.md) for details.
|
|
191
|
+
See [Run Command Options](docs/reference/run-command.md), [Merge Command](docs/reference/merge-command.md), [State Command](docs/reference/state-command.md), and [Analytics](docs/reference/analytics.md) for details.
|
|
189
192
|
|
|
190
193
|
---
|
|
191
194
|
|
package/dist/src/commands/run.js
CHANGED
|
@@ -2105,6 +2105,12 @@ export async function runCommand(issues, options) {
|
|
|
2105
2105
|
console.log(colors.muted(` đ Log: ${logPath}`));
|
|
2106
2106
|
console.log("");
|
|
2107
2107
|
}
|
|
2108
|
+
// Suggest merge checks for multi-issue batches
|
|
2109
|
+
if (results.length > 1 && passed > 0 && !config.dryRun) {
|
|
2110
|
+
console.log(colors.muted(" đĄ Verify batch integration before merging:"));
|
|
2111
|
+
console.log(colors.muted(" sequant merge --check"));
|
|
2112
|
+
console.log("");
|
|
2113
|
+
}
|
|
2108
2114
|
if (config.dryRun) {
|
|
2109
2115
|
console.log(colors.warning(" âšī¸ This was a dry run. Use without --dry-run to execute."));
|
|
2110
2116
|
console.log("");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sequant",
|
|
3
|
-
"version": "1.16.
|
|
3
|
+
"version": "1.16.1",
|
|
4
4
|
"description": "Quantize your development workflow - Sequential AI phases with quality gates",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -62,9 +62,9 @@
|
|
|
62
62
|
"chokidar": "^5.0.0",
|
|
63
63
|
"cli-table3": "^0.6.5",
|
|
64
64
|
"commander": "^12.1.0",
|
|
65
|
-
"diff": "^
|
|
65
|
+
"diff": "^8.0.3",
|
|
66
66
|
"gradient-string": "^3.0.0",
|
|
67
|
-
"hono": "^4.
|
|
67
|
+
"hono": "^4.12.1",
|
|
68
68
|
"inquirer": "^12.3.2",
|
|
69
69
|
"open": "^11.0.0",
|
|
70
70
|
"ora": "^8.2.0",
|
|
@@ -73,7 +73,6 @@
|
|
|
73
73
|
},
|
|
74
74
|
"devDependencies": {
|
|
75
75
|
"@eslint/js": "^9.39.2",
|
|
76
|
-
"@types/diff": "^7.0.0",
|
|
77
76
|
"@types/gradient-string": "^1.1.6",
|
|
78
77
|
"@types/inquirer": "^9.0.7",
|
|
79
78
|
"@types/node": "^22.10.5",
|
|
@@ -636,6 +636,20 @@ For multiple issues, run `/fullsolve` on each sequentially:
|
|
|
636
636
|
|
|
637
637
|
Each issue gets its own worktree, PR, and quality validation.
|
|
638
638
|
|
|
639
|
+
### Post-Batch: Merge Verification
|
|
640
|
+
|
|
641
|
+
After processing a batch, run `sequant merge` to catch cross-issue integration gaps before merging:
|
|
642
|
+
|
|
643
|
+
```bash
|
|
644
|
+
/fullsolve 218
|
|
645
|
+
/fullsolve 219
|
|
646
|
+
/fullsolve 220
|
|
647
|
+
sequant merge --check # Verify no cross-issue conflicts
|
|
648
|
+
/merger 218 219 220 # Merge all issues
|
|
649
|
+
```
|
|
650
|
+
|
|
651
|
+
`sequant merge --check` detects merge conflicts, template mirroring gaps, and file overlaps at zero AI cost. See `docs/reference/merge-command.md`.
|
|
652
|
+
|
|
639
653
|
---
|
|
640
654
|
|
|
641
655
|
## Output Verification
|
|
@@ -477,6 +477,28 @@ npx sequant run 152 --quality-loop --max-iterations 5
|
|
|
477
477
|
npx sequant run 152 --dry-run
|
|
478
478
|
```
|
|
479
479
|
|
|
480
|
+
### Post-Run: Merge Verification
|
|
481
|
+
|
|
482
|
+
After batch execution, run merge checks before merging:
|
|
483
|
+
|
|
484
|
+
```bash
|
|
485
|
+
# Verify feature branches are safe to merge (auto-detects issues from last run)
|
|
486
|
+
npx sequant merge --check
|
|
487
|
+
|
|
488
|
+
# Full scan including residual pattern detection
|
|
489
|
+
npx sequant merge --scan
|
|
490
|
+
|
|
491
|
+
# Post results to each PR
|
|
492
|
+
npx sequant merge --check --post
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
**Recommended workflow:**
|
|
496
|
+
```bash
|
|
497
|
+
npx sequant run 152 153 154 # implement
|
|
498
|
+
npx sequant merge --check # verify cross-issue integration
|
|
499
|
+
/merger 152 153 154 # merge
|
|
500
|
+
```
|
|
501
|
+
|
|
480
502
|
### Custom Base Branch
|
|
481
503
|
|
|
482
504
|
The `--base` flag specifies which branch to create worktrees from:
|
|
@@ -91,8 +91,8 @@ When called like `/spec <freeform description>`:
|
|
|
91
91
|
```bash
|
|
92
92
|
# Extract AC from issue body and store in state
|
|
93
93
|
npx tsx -e "
|
|
94
|
-
import { extractAcceptanceCriteria } from './src/lib/ac-parser.
|
|
95
|
-
import { StateManager } from './src/lib/workflow/state-manager.
|
|
94
|
+
import { extractAcceptanceCriteria } from './src/lib/ac-parser.ts';
|
|
95
|
+
import { StateManager } from './src/lib/workflow/state-manager.ts';
|
|
96
96
|
|
|
97
97
|
const issueBody = \`<ISSUE_BODY_HERE>\`;
|
|
98
98
|
const issueNumber = <ISSUE_NUMBER>;
|
|
@@ -103,13 +103,14 @@ console.log('Extracted AC:', JSON.stringify(ac, null, 2));
|
|
|
103
103
|
|
|
104
104
|
if (ac.items.length > 0) {
|
|
105
105
|
const manager = new StateManager();
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
106
|
+
(async () => {
|
|
107
|
+
const existing = await manager.getIssueState(issueNumber);
|
|
108
|
+
if (!existing) {
|
|
109
|
+
await manager.initializeIssue(issueNumber, issueTitle);
|
|
110
|
+
}
|
|
111
|
+
await manager.updateAcceptanceCriteria(issueNumber, ac);
|
|
112
|
+
console.log('AC stored in state for issue #' + issueNumber);
|
|
113
|
+
})();
|
|
113
114
|
}
|
|
114
115
|
"
|
|
115
116
|
```
|
|
@@ -136,8 +137,8 @@ The parser supports multiple formats:
|
|
|
136
137
|
```bash
|
|
137
138
|
# Lint AC for quality issues (skip if --skip-ac-lint flag is set)
|
|
138
139
|
npx tsx -e "
|
|
139
|
-
import { parseAcceptanceCriteria } from './src/lib/ac-parser.
|
|
140
|
-
import { lintAcceptanceCriteria, formatACLintResults } from './src/lib/ac-linter.
|
|
140
|
+
import { parseAcceptanceCriteria } from './src/lib/ac-parser.ts';
|
|
141
|
+
import { lintAcceptanceCriteria, formatACLintResults } from './src/lib/ac-linter.ts';
|
|
141
142
|
|
|
142
143
|
const issueBody = \`<ISSUE_BODY_HERE>\`;
|
|
143
144
|
|