sequant 1.2.7 → 1.4.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.
- package/README.md +3 -0
- package/dist/bin/cli.js +1 -0
- package/dist/bin/cli.js.map +1 -1
- package/dist/src/commands/init.d.ts +1 -0
- package/dist/src/commands/init.d.ts.map +1 -1
- package/dist/src/commands/init.js +50 -13
- package/dist/src/commands/init.js.map +1 -1
- package/dist/src/commands/init.test.js +37 -11
- package/dist/src/commands/init.test.js.map +1 -1
- package/dist/src/commands/run.d.ts +20 -0
- package/dist/src/commands/run.d.ts.map +1 -1
- package/dist/src/commands/run.js +33 -3
- package/dist/src/commands/run.js.map +1 -1
- package/dist/src/commands/run.test.js +166 -1
- package/dist/src/commands/run.test.js.map +1 -1
- package/dist/src/commands/update.d.ts.map +1 -1
- package/dist/src/commands/update.js +15 -3
- package/dist/src/commands/update.js.map +1 -1
- package/dist/src/lib/system.d.ts.map +1 -1
- package/dist/src/lib/system.js +9 -0
- package/dist/src/lib/system.js.map +1 -1
- package/dist/src/lib/system.test.js +27 -0
- package/dist/src/lib/system.test.js.map +1 -1
- package/dist/src/lib/tty.d.ts +2 -0
- package/dist/src/lib/tty.d.ts.map +1 -1
- package/dist/src/lib/tty.js +11 -6
- package/dist/src/lib/tty.js.map +1 -1
- package/dist/src/lib/tty.test.js +44 -2
- package/dist/src/lib/tty.test.js.map +1 -1
- package/dist/src/lib/wizard.d.ts +64 -0
- package/dist/src/lib/wizard.d.ts.map +1 -0
- package/dist/src/lib/wizard.js +255 -0
- package/dist/src/lib/wizard.js.map +1 -0
- package/dist/src/lib/wizard.test.d.ts +2 -0
- package/dist/src/lib/wizard.test.d.ts.map +1 -0
- package/dist/src/lib/wizard.test.js +268 -0
- package/dist/src/lib/wizard.test.js.map +1 -0
- package/dist/src/lib/workflow/run-log-schema.d.ts +10 -4
- package/dist/src/lib/workflow/run-log-schema.d.ts.map +1 -1
- package/dist/src/lib/workflow/run-log-schema.js +1 -0
- package/dist/src/lib/workflow/run-log-schema.js.map +1 -1
- package/dist/src/lib/workflow/types.d.ts +1 -1
- package/dist/src/lib/workflow/types.d.ts.map +1 -1
- package/dist/src/lib/workflow/types.js.map +1 -1
- package/package.json +2 -1
- package/templates/skills/fullsolve/SKILL.md +17 -0
- package/templates/skills/spec/references/recommended-workflow.md +92 -0
- package/templates/skills/test/SKILL.md +73 -6
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
import { describe, it, expect, vi, beforeEach, afterEach } from "vitest";
|
|
2
|
+
// Mock system functions
|
|
3
|
+
vi.mock("./system.js", () => ({
|
|
4
|
+
commandExists: vi.fn(),
|
|
5
|
+
isGhAuthenticated: vi.fn(),
|
|
6
|
+
getInstallHint: vi.fn((pkg) => {
|
|
7
|
+
if (pkg === "gh")
|
|
8
|
+
return "brew install gh";
|
|
9
|
+
if (pkg === "claude")
|
|
10
|
+
return "npm install -g @anthropic-ai/claude-code";
|
|
11
|
+
if (pkg === "jq")
|
|
12
|
+
return "brew install jq";
|
|
13
|
+
return `Install ${pkg}`;
|
|
14
|
+
}),
|
|
15
|
+
}));
|
|
16
|
+
// Mock tty functions
|
|
17
|
+
vi.mock("./tty.js", () => ({
|
|
18
|
+
isCI: vi.fn(),
|
|
19
|
+
}));
|
|
20
|
+
// Mock inquirer
|
|
21
|
+
vi.mock("inquirer", () => ({
|
|
22
|
+
default: {
|
|
23
|
+
prompt: vi.fn(),
|
|
24
|
+
},
|
|
25
|
+
}));
|
|
26
|
+
import { checkAllDependencies, displayDependencyStatus, getInstallInstructions, runSetupWizard, shouldRunSetupWizard, } from "./wizard.js";
|
|
27
|
+
import { commandExists, isGhAuthenticated } from "./system.js";
|
|
28
|
+
import { isCI } from "./tty.js";
|
|
29
|
+
import inquirer from "inquirer";
|
|
30
|
+
const mockCommandExists = vi.mocked(commandExists);
|
|
31
|
+
const mockIsGhAuthenticated = vi.mocked(isGhAuthenticated);
|
|
32
|
+
const mockIsCI = vi.mocked(isCI);
|
|
33
|
+
const mockInquirerPrompt = vi.mocked(inquirer.prompt);
|
|
34
|
+
describe("wizard", () => {
|
|
35
|
+
let consoleLogSpy;
|
|
36
|
+
beforeEach(() => {
|
|
37
|
+
vi.resetAllMocks();
|
|
38
|
+
consoleLogSpy = vi.spyOn(console, "log").mockImplementation(() => { });
|
|
39
|
+
mockIsCI.mockReturnValue(false);
|
|
40
|
+
});
|
|
41
|
+
afterEach(() => {
|
|
42
|
+
consoleLogSpy.mockRestore();
|
|
43
|
+
});
|
|
44
|
+
describe("checkAllDependencies", () => {
|
|
45
|
+
it("detects all dependencies installed and authenticated", () => {
|
|
46
|
+
mockCommandExists.mockReturnValue(true);
|
|
47
|
+
mockIsGhAuthenticated.mockReturnValue(true);
|
|
48
|
+
const result = checkAllDependencies();
|
|
49
|
+
expect(result.allRequiredMet).toBe(true);
|
|
50
|
+
expect(result.hasMissing).toBe(false);
|
|
51
|
+
expect(result.dependencies).toHaveLength(3);
|
|
52
|
+
const ghDep = result.dependencies.find((d) => d.name === "gh");
|
|
53
|
+
expect(ghDep?.installed).toBe(true);
|
|
54
|
+
expect(ghDep?.authenticated).toBe(true);
|
|
55
|
+
const claudeDep = result.dependencies.find((d) => d.name === "claude");
|
|
56
|
+
expect(claudeDep?.installed).toBe(true);
|
|
57
|
+
});
|
|
58
|
+
it("detects missing gh CLI", () => {
|
|
59
|
+
mockCommandExists.mockImplementation((cmd) => cmd !== "gh");
|
|
60
|
+
mockIsGhAuthenticated.mockReturnValue(false);
|
|
61
|
+
const result = checkAllDependencies();
|
|
62
|
+
expect(result.allRequiredMet).toBe(false);
|
|
63
|
+
expect(result.hasMissing).toBe(true);
|
|
64
|
+
const ghDep = result.dependencies.find((d) => d.name === "gh");
|
|
65
|
+
expect(ghDep?.installed).toBe(false);
|
|
66
|
+
});
|
|
67
|
+
it("detects gh installed but not authenticated", () => {
|
|
68
|
+
mockCommandExists.mockReturnValue(true);
|
|
69
|
+
mockIsGhAuthenticated.mockReturnValue(false);
|
|
70
|
+
const result = checkAllDependencies();
|
|
71
|
+
expect(result.allRequiredMet).toBe(false);
|
|
72
|
+
expect(result.hasMissing).toBe(true);
|
|
73
|
+
const ghDep = result.dependencies.find((d) => d.name === "gh");
|
|
74
|
+
expect(ghDep?.installed).toBe(true);
|
|
75
|
+
expect(ghDep?.authenticated).toBe(false);
|
|
76
|
+
});
|
|
77
|
+
it("detects missing claude CLI", () => {
|
|
78
|
+
mockCommandExists.mockImplementation((cmd) => cmd !== "claude");
|
|
79
|
+
mockIsGhAuthenticated.mockReturnValue(true);
|
|
80
|
+
const result = checkAllDependencies();
|
|
81
|
+
expect(result.allRequiredMet).toBe(false);
|
|
82
|
+
expect(result.hasMissing).toBe(true);
|
|
83
|
+
const claudeDep = result.dependencies.find((d) => d.name === "claude");
|
|
84
|
+
expect(claudeDep?.installed).toBe(false);
|
|
85
|
+
});
|
|
86
|
+
it("jq missing does not fail allRequiredMet (optional)", () => {
|
|
87
|
+
mockCommandExists.mockImplementation((cmd) => cmd !== "jq");
|
|
88
|
+
mockIsGhAuthenticated.mockReturnValue(true);
|
|
89
|
+
const result = checkAllDependencies();
|
|
90
|
+
// jq is optional, so all required should still be met
|
|
91
|
+
expect(result.allRequiredMet).toBe(true);
|
|
92
|
+
// But hasMissing only tracks required deps
|
|
93
|
+
expect(result.hasMissing).toBe(false);
|
|
94
|
+
const jqDep = result.dependencies.find((d) => d.name === "jq");
|
|
95
|
+
expect(jqDep?.installed).toBe(false);
|
|
96
|
+
expect(jqDep?.required).toBe(false);
|
|
97
|
+
});
|
|
98
|
+
});
|
|
99
|
+
describe("displayDependencyStatus", () => {
|
|
100
|
+
it("displays installed dependencies with checkmarks", () => {
|
|
101
|
+
mockCommandExists.mockReturnValue(true);
|
|
102
|
+
mockIsGhAuthenticated.mockReturnValue(true);
|
|
103
|
+
const result = checkAllDependencies();
|
|
104
|
+
displayDependencyStatus(result);
|
|
105
|
+
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
106
|
+
expect(output).toContain("Checking dependencies");
|
|
107
|
+
expect(output).toContain("GitHub CLI (gh)");
|
|
108
|
+
expect(output).toContain("installed");
|
|
109
|
+
});
|
|
110
|
+
it("displays missing required dependencies with X mark", () => {
|
|
111
|
+
mockCommandExists.mockReturnValue(false);
|
|
112
|
+
mockIsGhAuthenticated.mockReturnValue(false);
|
|
113
|
+
const result = checkAllDependencies();
|
|
114
|
+
displayDependencyStatus(result);
|
|
115
|
+
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
116
|
+
expect(output).toContain("not installed (required)");
|
|
117
|
+
});
|
|
118
|
+
it("displays unauthenticated gh with warning", () => {
|
|
119
|
+
mockCommandExists.mockReturnValue(true);
|
|
120
|
+
mockIsGhAuthenticated.mockReturnValue(false);
|
|
121
|
+
const result = checkAllDependencies();
|
|
122
|
+
displayDependencyStatus(result);
|
|
123
|
+
const output = consoleLogSpy.mock.calls.map((c) => c[0]).join("\n");
|
|
124
|
+
expect(output).toContain("installed but not authenticated");
|
|
125
|
+
});
|
|
126
|
+
});
|
|
127
|
+
describe("getInstallInstructions", () => {
|
|
128
|
+
it("returns install instructions for gh", () => {
|
|
129
|
+
const instructions = getInstallInstructions("gh");
|
|
130
|
+
expect(instructions.length).toBeGreaterThan(0);
|
|
131
|
+
expect(instructions.some((i) => i.includes("brew install gh"))).toBe(true);
|
|
132
|
+
expect(instructions.some((i) => i.includes("gh auth login"))).toBe(true);
|
|
133
|
+
});
|
|
134
|
+
it("returns install instructions for claude", () => {
|
|
135
|
+
const instructions = getInstallInstructions("claude");
|
|
136
|
+
expect(instructions.length).toBeGreaterThan(0);
|
|
137
|
+
expect(instructions.some((i) => i.includes("@anthropic-ai/claude-code"))).toBe(true);
|
|
138
|
+
});
|
|
139
|
+
it("returns install instructions for jq", () => {
|
|
140
|
+
const instructions = getInstallInstructions("jq");
|
|
141
|
+
expect(instructions.length).toBeGreaterThan(0);
|
|
142
|
+
expect(instructions.some((i) => i.includes("brew install jq"))).toBe(true);
|
|
143
|
+
});
|
|
144
|
+
it("returns generic instruction for unknown package", () => {
|
|
145
|
+
const instructions = getInstallInstructions("unknown-pkg");
|
|
146
|
+
expect(instructions.length).toBe(1);
|
|
147
|
+
expect(instructions[0]).toContain("Install unknown-pkg");
|
|
148
|
+
});
|
|
149
|
+
});
|
|
150
|
+
describe("runSetupWizard", () => {
|
|
151
|
+
it("returns completed when all dependencies are met", async () => {
|
|
152
|
+
mockCommandExists.mockReturnValue(true);
|
|
153
|
+
mockIsGhAuthenticated.mockReturnValue(true);
|
|
154
|
+
const depResult = checkAllDependencies();
|
|
155
|
+
const wizardResult = await runSetupWizard(depResult);
|
|
156
|
+
expect(wizardResult.skipped).toBe(false);
|
|
157
|
+
expect(wizardResult.completed).toBe(true);
|
|
158
|
+
expect(wizardResult.remainingIssues).toHaveLength(0);
|
|
159
|
+
});
|
|
160
|
+
it("returns skipped with issues when skipPrompts is true", async () => {
|
|
161
|
+
mockCommandExists.mockImplementation((cmd) => cmd !== "claude");
|
|
162
|
+
mockIsGhAuthenticated.mockReturnValue(true);
|
|
163
|
+
const depResult = checkAllDependencies();
|
|
164
|
+
const wizardResult = await runSetupWizard(depResult, {
|
|
165
|
+
skipPrompts: true,
|
|
166
|
+
});
|
|
167
|
+
expect(wizardResult.skipped).toBe(true);
|
|
168
|
+
expect(wizardResult.completed).toBe(false);
|
|
169
|
+
expect(wizardResult.remainingIssues).toContain("Claude Code CLI not installed");
|
|
170
|
+
});
|
|
171
|
+
it("returns skipped when user declines setup", async () => {
|
|
172
|
+
mockCommandExists.mockImplementation((cmd) => cmd !== "claude");
|
|
173
|
+
mockIsGhAuthenticated.mockReturnValue(true);
|
|
174
|
+
mockInquirerPrompt.mockResolvedValueOnce({ setupDeps: false });
|
|
175
|
+
const depResult = checkAllDependencies();
|
|
176
|
+
const wizardResult = await runSetupWizard(depResult);
|
|
177
|
+
expect(wizardResult.skipped).toBe(true);
|
|
178
|
+
expect(wizardResult.completed).toBe(false);
|
|
179
|
+
expect(wizardResult.remainingIssues.length).toBeGreaterThan(0);
|
|
180
|
+
});
|
|
181
|
+
it("verifies installation when user confirms", async () => {
|
|
182
|
+
// First check: claude is missing
|
|
183
|
+
mockCommandExists.mockImplementation((cmd) => cmd !== "claude");
|
|
184
|
+
mockIsGhAuthenticated.mockReturnValue(true);
|
|
185
|
+
const depResult = checkAllDependencies();
|
|
186
|
+
// User accepts wizard and verifies installation
|
|
187
|
+
mockInquirerPrompt
|
|
188
|
+
.mockResolvedValueOnce({ setupDeps: true })
|
|
189
|
+
.mockResolvedValueOnce({ action: "verify" });
|
|
190
|
+
// After verification, claude is now installed
|
|
191
|
+
mockCommandExists.mockReturnValue(true);
|
|
192
|
+
const wizardResult = await runSetupWizard(depResult);
|
|
193
|
+
expect(wizardResult.completed).toBe(true);
|
|
194
|
+
expect(wizardResult.remainingIssues).toHaveLength(0);
|
|
195
|
+
});
|
|
196
|
+
it("records remaining issues when user skips individual deps", async () => {
|
|
197
|
+
mockCommandExists.mockImplementation((cmd) => cmd !== "claude");
|
|
198
|
+
mockIsGhAuthenticated.mockReturnValue(true);
|
|
199
|
+
const depResult = checkAllDependencies();
|
|
200
|
+
// User accepts wizard but skips claude
|
|
201
|
+
mockInquirerPrompt
|
|
202
|
+
.mockResolvedValueOnce({ setupDeps: true })
|
|
203
|
+
.mockResolvedValueOnce({ action: "skip" });
|
|
204
|
+
const wizardResult = await runSetupWizard(depResult);
|
|
205
|
+
expect(wizardResult.completed).toBe(false);
|
|
206
|
+
expect(wizardResult.remainingIssues).toContain("Claude Code CLI not installed");
|
|
207
|
+
});
|
|
208
|
+
it("handles gh authentication issue specifically", async () => {
|
|
209
|
+
mockCommandExists.mockReturnValue(true);
|
|
210
|
+
mockIsGhAuthenticated.mockReturnValue(false);
|
|
211
|
+
const depResult = checkAllDependencies();
|
|
212
|
+
const wizardResult = await runSetupWizard(depResult, {
|
|
213
|
+
skipPrompts: true,
|
|
214
|
+
});
|
|
215
|
+
expect(wizardResult.remainingIssues).toContain("GitHub CLI (gh) not authenticated");
|
|
216
|
+
});
|
|
217
|
+
it("handles multiple missing dependencies in sequence", async () => {
|
|
218
|
+
// Both gh and claude are missing
|
|
219
|
+
mockCommandExists.mockReturnValue(false);
|
|
220
|
+
mockIsGhAuthenticated.mockReturnValue(false);
|
|
221
|
+
const depResult = checkAllDependencies();
|
|
222
|
+
// User accepts wizard, verifies gh (success), skips claude
|
|
223
|
+
mockInquirerPrompt
|
|
224
|
+
.mockResolvedValueOnce({ setupDeps: true })
|
|
225
|
+
.mockResolvedValueOnce({ action: "verify" }) // gh
|
|
226
|
+
.mockResolvedValueOnce({ action: "skip" }); // claude
|
|
227
|
+
// After first verify, gh is now installed and authenticated
|
|
228
|
+
mockCommandExists.mockImplementation((cmd) => cmd === "gh");
|
|
229
|
+
mockIsGhAuthenticated.mockReturnValue(true);
|
|
230
|
+
const wizardResult = await runSetupWizard(depResult);
|
|
231
|
+
expect(wizardResult.completed).toBe(false);
|
|
232
|
+
expect(wizardResult.remainingIssues).toContain("Claude Code CLI not installed");
|
|
233
|
+
expect(wizardResult.remainingIssues).not.toContain("GitHub CLI");
|
|
234
|
+
});
|
|
235
|
+
it("records issue when verification fails after user claims installation", async () => {
|
|
236
|
+
mockCommandExists.mockImplementation((cmd) => cmd !== "claude");
|
|
237
|
+
mockIsGhAuthenticated.mockReturnValue(true);
|
|
238
|
+
const depResult = checkAllDependencies();
|
|
239
|
+
// User accepts and tries to verify, but it's still not installed
|
|
240
|
+
mockInquirerPrompt
|
|
241
|
+
.mockResolvedValueOnce({ setupDeps: true })
|
|
242
|
+
.mockResolvedValueOnce({ action: "verify" });
|
|
243
|
+
// claude still not installed after "verification"
|
|
244
|
+
// (mockCommandExists already returns false for claude)
|
|
245
|
+
const wizardResult = await runSetupWizard(depResult);
|
|
246
|
+
expect(wizardResult.completed).toBe(false);
|
|
247
|
+
expect(wizardResult.remainingIssues).toContain("Claude Code CLI not installed");
|
|
248
|
+
});
|
|
249
|
+
});
|
|
250
|
+
describe("shouldRunSetupWizard", () => {
|
|
251
|
+
it("returns false when skipSetup is true", () => {
|
|
252
|
+
expect(shouldRunSetupWizard({ skipSetup: true })).toBe(false);
|
|
253
|
+
});
|
|
254
|
+
it("returns false in CI environment", () => {
|
|
255
|
+
mockIsCI.mockReturnValue(true);
|
|
256
|
+
expect(shouldRunSetupWizard({})).toBe(false);
|
|
257
|
+
});
|
|
258
|
+
it("returns true in normal terminal environment", () => {
|
|
259
|
+
mockIsCI.mockReturnValue(false);
|
|
260
|
+
expect(shouldRunSetupWizard({})).toBe(true);
|
|
261
|
+
});
|
|
262
|
+
it("returns true even with yes flag (wizard still runs)", () => {
|
|
263
|
+
mockIsCI.mockReturnValue(false);
|
|
264
|
+
expect(shouldRunSetupWizard({ yes: true })).toBe(true);
|
|
265
|
+
});
|
|
266
|
+
});
|
|
267
|
+
});
|
|
268
|
+
//# sourceMappingURL=wizard.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"wizard.test.js","sourceRoot":"","sources":["../../../src/lib/wizard.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,6 +24,7 @@ export declare const PhaseSchema: z.ZodEnum<{
|
|
|
24
24
|
spec: "spec";
|
|
25
25
|
exec: "exec";
|
|
26
26
|
qa: "qa";
|
|
27
|
+
"security-review": "security-review";
|
|
27
28
|
testgen: "testgen";
|
|
28
29
|
test: "test";
|
|
29
30
|
}>;
|
|
@@ -32,10 +33,10 @@ export type Phase = z.infer<typeof PhaseSchema>;
|
|
|
32
33
|
* Phase execution status
|
|
33
34
|
*/
|
|
34
35
|
export declare const PhaseStatusSchema: z.ZodEnum<{
|
|
36
|
+
skipped: "skipped";
|
|
35
37
|
timeout: "timeout";
|
|
36
38
|
success: "success";
|
|
37
39
|
failure: "failure";
|
|
38
|
-
skipped: "skipped";
|
|
39
40
|
}>;
|
|
40
41
|
export type PhaseStatus = z.infer<typeof PhaseStatusSchema>;
|
|
41
42
|
/**
|
|
@@ -56,6 +57,7 @@ export declare const PhaseLogSchema: z.ZodObject<{
|
|
|
56
57
|
spec: "spec";
|
|
57
58
|
exec: "exec";
|
|
58
59
|
qa: "qa";
|
|
60
|
+
"security-review": "security-review";
|
|
59
61
|
testgen: "testgen";
|
|
60
62
|
test: "test";
|
|
61
63
|
}>;
|
|
@@ -64,10 +66,10 @@ export declare const PhaseLogSchema: z.ZodObject<{
|
|
|
64
66
|
endTime: z.ZodString;
|
|
65
67
|
durationSeconds: z.ZodNumber;
|
|
66
68
|
status: z.ZodEnum<{
|
|
69
|
+
skipped: "skipped";
|
|
67
70
|
timeout: "timeout";
|
|
68
71
|
success: "success";
|
|
69
72
|
failure: "failure";
|
|
70
|
-
skipped: "skipped";
|
|
71
73
|
}>;
|
|
72
74
|
error: z.ZodOptional<z.ZodString>;
|
|
73
75
|
iterations: z.ZodOptional<z.ZodNumber>;
|
|
@@ -94,6 +96,7 @@ export declare const IssueLogSchema: z.ZodObject<{
|
|
|
94
96
|
spec: "spec";
|
|
95
97
|
exec: "exec";
|
|
96
98
|
qa: "qa";
|
|
99
|
+
"security-review": "security-review";
|
|
97
100
|
testgen: "testgen";
|
|
98
101
|
test: "test";
|
|
99
102
|
}>;
|
|
@@ -102,10 +105,10 @@ export declare const IssueLogSchema: z.ZodObject<{
|
|
|
102
105
|
endTime: z.ZodString;
|
|
103
106
|
durationSeconds: z.ZodNumber;
|
|
104
107
|
status: z.ZodEnum<{
|
|
108
|
+
skipped: "skipped";
|
|
105
109
|
timeout: "timeout";
|
|
106
110
|
success: "success";
|
|
107
111
|
failure: "failure";
|
|
108
|
-
skipped: "skipped";
|
|
109
112
|
}>;
|
|
110
113
|
error: z.ZodOptional<z.ZodString>;
|
|
111
114
|
iterations: z.ZodOptional<z.ZodNumber>;
|
|
@@ -125,6 +128,7 @@ export declare const RunConfigSchema: z.ZodObject<{
|
|
|
125
128
|
spec: "spec";
|
|
126
129
|
exec: "exec";
|
|
127
130
|
qa: "qa";
|
|
131
|
+
"security-review": "security-review";
|
|
128
132
|
testgen: "testgen";
|
|
129
133
|
test: "test";
|
|
130
134
|
}>>;
|
|
@@ -159,6 +163,7 @@ export declare const RunLogSchema: z.ZodObject<{
|
|
|
159
163
|
spec: "spec";
|
|
160
164
|
exec: "exec";
|
|
161
165
|
qa: "qa";
|
|
166
|
+
"security-review": "security-review";
|
|
162
167
|
testgen: "testgen";
|
|
163
168
|
test: "test";
|
|
164
169
|
}>>;
|
|
@@ -181,6 +186,7 @@ export declare const RunLogSchema: z.ZodObject<{
|
|
|
181
186
|
spec: "spec";
|
|
182
187
|
exec: "exec";
|
|
183
188
|
qa: "qa";
|
|
189
|
+
"security-review": "security-review";
|
|
184
190
|
testgen: "testgen";
|
|
185
191
|
test: "test";
|
|
186
192
|
}>;
|
|
@@ -189,10 +195,10 @@ export declare const RunLogSchema: z.ZodObject<{
|
|
|
189
195
|
endTime: z.ZodString;
|
|
190
196
|
durationSeconds: z.ZodNumber;
|
|
191
197
|
status: z.ZodEnum<{
|
|
198
|
+
skipped: "skipped";
|
|
192
199
|
timeout: "timeout";
|
|
193
200
|
success: "success";
|
|
194
201
|
failure: "failure";
|
|
195
|
-
skipped: "skipped";
|
|
196
202
|
}>;
|
|
197
203
|
error: z.ZodOptional<z.ZodString>;
|
|
198
204
|
iterations: z.ZodOptional<z.ZodNumber>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-log-schema.d.ts","sourceRoot":"","sources":["../../../../src/lib/workflow/run-log-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,WAAW
|
|
1
|
+
{"version":3,"file":"run-log-schema.d.ts","sourceRoot":"","sources":["../../../../src/lib/workflow/run-log-schema.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB;;GAEG;AACH,eAAO,MAAM,WAAW;;;;;;;;EAQtB,CAAC;AAEH,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEhD;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;EAK5B,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;EAA4C,CAAC;AAE3E,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AAE5D;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;iBAuBzB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAazB,CAAC;AAEH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AAEtD;;GAEG;AACH,eAAO,MAAM,eAAe;;;;;;;;;;;;;iBAS1B,CAAC;AAEH,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,eAAe,CAAC,CAAC;AAExD;;GAEG;AACH,eAAO,MAAM,gBAAgB;;;;;iBAS3B,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAE1D;;;;GAIG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAevB,CAAC;AAEH,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD;;GAEG;AACH,eAAO,MAAM,SAAS;IACpB,sBAAsB;;IAEtB,yBAAyB;;CAEjB,CAAC;AAEX;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,GAAG,MAAM,CAG1E;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAiB5E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAC5B,KAAK,EAAE,KAAK,EACZ,WAAW,EAAE,MAAM,GAClB,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,iBAAiB,GAAG,QAAQ,CAAC,CAM1D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,SAAS,GAAG,iBAAiB,GAAG,QAAQ,CAAC,EAClE,MAAM,EAAE,WAAW,EACnB,OAAO,CAAC,EAAE,OAAO,CACf,IAAI,CACF,QAAQ,EACR,OAAO,GAAG,YAAY,GAAG,eAAe,GAAG,UAAU,GAAG,aAAa,CACtE,CACF,GACA,QAAQ,CAYV;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,MAAM,CAsBtE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"run-log-schema.js","sourceRoot":"","sources":["../../../../src/lib/workflow/run-log-schema.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"run-log-schema.js","sourceRoot":"","sources":["../../../../src/lib/workflow/run-log-schema.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/workflow/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/lib/workflow/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,MAAM,KAAK,GACb,MAAM,GACN,iBAAiB,GACjB,SAAS,GACT,MAAM,GACN,MAAM,GACN,IAAI,GACJ,MAAM,CAAC;AAEX;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,KAAK,EAA2B,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,wBAAwB;IACxB,MAAM,EAAE,KAAK,EAAE,CAAC;IAChB,mCAAmC;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,WAAW,EAAE,OAAO,CAAC;IACrB,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,gBAAgB,EAAE,OAAO,CAAC;IAC1B,8BAA8B;IAC9B,UAAU,EAAE,OAAO,CAAC;IACpB,4CAA4C;IAC5C,aAAa,EAAE,OAAO,CAAC;IACvB,qBAAqB;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,mCAAmC;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,4CAA4C;IAC5C,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,eAW5B,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,KAAK,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,WAAW,EAAE,CAAC;IAC5B,OAAO,EAAE,OAAO,CAAC;CAClB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/lib/workflow/types.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/lib/workflow/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;AA4B9D;;GAEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAoB;IAC7C,MAAM,EAAE,cAAc;IACtB,YAAY,EAAE,IAAI;IAClB,WAAW,EAAE,KAAK;IAClB,aAAa,EAAE,CAAC;IAChB,gBAAgB,EAAE,KAAK;IACvB,UAAU,EAAE,KAAK;IACjB,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK;IACd,YAAY,EAAE,KAAK;IACnB,MAAM,EAAE,KAAK;CACd,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sequant",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "Quantize your development workflow - Sequential AI phases with quality gates",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"dev": "tsx bin/cli.ts",
|
|
25
25
|
"test": "vitest run",
|
|
26
26
|
"lint": "echo \"No linter configured yet\" && exit 0",
|
|
27
|
+
"sync:skills": "cp -r templates/skills/* .claude/skills/",
|
|
27
28
|
"validate:skills": "for skill in templates/skills/*/; do npx skills-ref validate \"$skill\"; done",
|
|
28
29
|
"prepublishOnly": "npm run build"
|
|
29
30
|
},
|
|
@@ -330,6 +330,23 @@ gh pr merge <N> --squash --delete-branch
|
|
|
330
330
|
|
|
331
331
|
**Why this order matters:** The cleanup script checks if the PR is merged before proceeding. The `--delete-branch` flag will fail to delete the local branch (worktree conflict) but successfully deletes the remote branch. The cleanup script then handles the local branch removal.
|
|
332
332
|
|
|
333
|
+
### 5.4 Post-Merge Verification
|
|
334
|
+
|
|
335
|
+
**Recommended:** After merge, verify the build and CLI still work:
|
|
336
|
+
|
|
337
|
+
```bash
|
|
338
|
+
# Pull latest main
|
|
339
|
+
git pull origin main
|
|
340
|
+
|
|
341
|
+
# Rebuild and verify
|
|
342
|
+
npm run build
|
|
343
|
+
|
|
344
|
+
# Smoke test - verify CLI runs without errors
|
|
345
|
+
npx sequant doctor
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
If any command fails, fix immediately on main before continuing. This catches issues like ESM compatibility bugs that unit tests may miss.
|
|
349
|
+
|
|
333
350
|
## Iteration Tracking
|
|
334
351
|
|
|
335
352
|
Track iterations to prevent infinite loops:
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# Recommended Workflow Format
|
|
2
|
+
|
|
3
|
+
This document shows the expected output format for the `## Recommended Workflow` section in `/spec` output. The `parseRecommendedWorkflow()` function parses this format to determine which phases to execute.
|
|
4
|
+
|
|
5
|
+
## Format
|
|
6
|
+
|
|
7
|
+
```markdown
|
|
8
|
+
## Recommended Workflow
|
|
9
|
+
|
|
10
|
+
**Phases:** spec → exec → qa
|
|
11
|
+
**Quality Loop:** disabled
|
|
12
|
+
**Reasoning:** Brief explanation of why this workflow was chosen.
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## Examples
|
|
16
|
+
|
|
17
|
+
### Simple Bug Fix
|
|
18
|
+
|
|
19
|
+
```markdown
|
|
20
|
+
## Recommended Workflow
|
|
21
|
+
|
|
22
|
+
**Phases:** exec → qa
|
|
23
|
+
**Quality Loop:** disabled
|
|
24
|
+
**Reasoning:** Straightforward bug fix with clear root cause. No planning needed.
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
### Standard Feature
|
|
28
|
+
|
|
29
|
+
```markdown
|
|
30
|
+
## Recommended Workflow
|
|
31
|
+
|
|
32
|
+
**Phases:** spec → exec → qa
|
|
33
|
+
**Quality Loop:** disabled
|
|
34
|
+
**Reasoning:** New feature with defined scope. Standard workflow applies.
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
### UI Feature
|
|
38
|
+
|
|
39
|
+
```markdown
|
|
40
|
+
## Recommended Workflow
|
|
41
|
+
|
|
42
|
+
**Phases:** spec → exec → test → qa
|
|
43
|
+
**Quality Loop:** enabled
|
|
44
|
+
**Reasoning:** UI feature requires browser testing and may need iteration.
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
### Security-Sensitive Feature
|
|
48
|
+
|
|
49
|
+
```markdown
|
|
50
|
+
## Recommended Workflow
|
|
51
|
+
|
|
52
|
+
**Phases:** spec → security-review → exec → qa
|
|
53
|
+
**Quality Loop:** disabled
|
|
54
|
+
**Reasoning:** Auth-related changes require security analysis before implementation.
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
### Complex Refactor
|
|
58
|
+
|
|
59
|
+
```markdown
|
|
60
|
+
## Recommended Workflow
|
|
61
|
+
|
|
62
|
+
**Phases:** spec → exec → test → qa
|
|
63
|
+
**Quality Loop:** enabled
|
|
64
|
+
**Reasoning:** Complex refactor with UI components requires browser testing and iteration.
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Phase Separators
|
|
68
|
+
|
|
69
|
+
The parser supports multiple separator formats:
|
|
70
|
+
|
|
71
|
+
- Arrow: `spec → exec → qa`
|
|
72
|
+
- ASCII arrow: `spec -> exec -> qa`
|
|
73
|
+
- Comma: `spec, exec, qa`
|
|
74
|
+
|
|
75
|
+
## Quality Loop Values
|
|
76
|
+
|
|
77
|
+
The parser accepts these values for the Quality Loop setting:
|
|
78
|
+
|
|
79
|
+
- Enabled: `enabled`, `true`, `yes`
|
|
80
|
+
- Disabled: `disabled`, `false`, `no`
|
|
81
|
+
|
|
82
|
+
## Available Phases
|
|
83
|
+
|
|
84
|
+
| Phase | Description |
|
|
85
|
+
|-------|-------------|
|
|
86
|
+
| `spec` | Plan review and verification criteria generation |
|
|
87
|
+
| `security-review` | Deep security analysis for sensitive features |
|
|
88
|
+
| `testgen` | Generate test stubs from specification |
|
|
89
|
+
| `exec` | Implementation of the feature |
|
|
90
|
+
| `test` | Browser-based testing for UI features |
|
|
91
|
+
| `qa` | Code review against acceptance criteria |
|
|
92
|
+
| `loop` | Quality iteration loop for fixing issues |
|