sequant 2.0.0 → 2.1.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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.md +7 -6
- package/dist/bin/cli.js +2 -1
- package/dist/marketplace/external_plugins/sequant/.claude-plugin/plugin.json +1 -1
- package/dist/marketplace/external_plugins/sequant/.mcp.json +6 -0
- package/dist/marketplace/external_plugins/sequant/README.md +58 -8
- package/dist/marketplace/external_plugins/sequant/hooks/post-tool.sh +19 -8
- package/dist/marketplace/external_plugins/sequant/hooks/pre-tool.sh +36 -49
- package/dist/marketplace/external_plugins/sequant/skills/_shared/references/subagent-types.md +158 -48
- package/dist/marketplace/external_plugins/sequant/skills/assess/SKILL.md +354 -352
- package/dist/marketplace/external_plugins/sequant/skills/exec/SKILL.md +1155 -33
- package/dist/marketplace/external_plugins/sequant/skills/fullsolve/SKILL.md +35 -4
- package/dist/marketplace/external_plugins/sequant/skills/qa/SKILL.md +2157 -104
- package/dist/marketplace/external_plugins/sequant/skills/qa/scripts/quality-checks.sh +1 -1
- package/dist/marketplace/external_plugins/sequant/skills/setup/SKILL.md +386 -0
- package/dist/marketplace/external_plugins/sequant/skills/solve/SKILL.md +38 -664
- package/dist/marketplace/external_plugins/sequant/skills/spec/SKILL.md +505 -120
- package/dist/marketplace/external_plugins/sequant/skills/test/SKILL.md +246 -1
- package/dist/marketplace/external_plugins/sequant/skills/testgen/SKILL.md +138 -1
- package/dist/src/commands/dashboard.js +1 -1
- package/dist/src/commands/doctor.js +1 -1
- package/dist/src/commands/init.js +10 -10
- package/dist/src/commands/logs.js +1 -1
- package/dist/src/commands/run.js +49 -39
- package/dist/src/commands/state.js +3 -3
- package/dist/src/commands/status.js +5 -5
- package/dist/src/commands/sync.js +8 -8
- package/dist/src/commands/update.js +16 -16
- package/dist/src/lib/cli-ui.js +20 -19
- package/dist/src/lib/merge-check/index.js +2 -2
- package/dist/src/lib/settings.d.ts +8 -0
- package/dist/src/lib/settings.js +1 -0
- package/dist/src/lib/shutdown.js +1 -1
- package/dist/src/lib/templates.js +2 -0
- package/dist/src/lib/wizard.js +6 -4
- package/dist/src/lib/workflow/batch-executor.d.ts +9 -1
- package/dist/src/lib/workflow/batch-executor.js +39 -2
- package/dist/src/lib/workflow/log-writer.js +6 -6
- package/dist/src/lib/workflow/metrics-writer.js +5 -3
- package/dist/src/lib/workflow/phase-executor.d.ts +1 -1
- package/dist/src/lib/workflow/phase-executor.js +52 -22
- package/dist/src/lib/workflow/platforms/github.js +5 -1
- package/dist/src/lib/workflow/state-cleanup.js +1 -1
- package/dist/src/lib/workflow/state-manager.js +15 -13
- package/dist/src/lib/workflow/state-rebuild.js +2 -2
- package/dist/src/lib/workflow/types.d.ts +27 -0
- package/dist/src/lib/workflow/worktree-manager.js +40 -41
- package/dist/src/lib/worktree-isolation.d.ts +130 -0
- package/dist/src/lib/worktree-isolation.js +310 -0
- package/package.json +24 -14
- package/templates/agents/sequant-explorer.md +23 -0
- package/templates/agents/sequant-implementer.md +18 -0
- package/templates/agents/sequant-qa-checker.md +24 -0
- package/templates/agents/sequant-testgen.md +25 -0
- package/templates/scripts/cleanup-worktree.sh +18 -0
- package/templates/skills/_shared/references/subagent-types.md +158 -48
- package/templates/skills/exec/SKILL.md +72 -6
- package/templates/skills/qa/SKILL.md +8 -217
- package/templates/skills/spec/SKILL.md +446 -120
- package/templates/skills/testgen/SKILL.md +138 -1
|
@@ -369,7 +369,7 @@ if [[ -n "$shell_scripts" ]]; then
|
|
|
369
369
|
unused_count=0
|
|
370
370
|
for func in $funcs; do
|
|
371
371
|
# Count calls (excluding the definition line)
|
|
372
|
-
call_count=$(grep -c "\b${func}\b" "$script" 2>/dev/null ||
|
|
372
|
+
call_count=$(grep -c "\b${func}\b" "$script" 2>/dev/null || true)
|
|
373
373
|
if [[ $call_count -lt 2 ]]; then # Only definition, no calls
|
|
374
374
|
echo " ⚠️ Function '$func' defined but possibly not called"
|
|
375
375
|
unused_count=$((unused_count + 1))
|
|
@@ -0,0 +1,386 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: setup
|
|
3
|
+
description: "Initialize Sequant in your project - prerequisites, config, worktrees, and constitution"
|
|
4
|
+
license: MIT
|
|
5
|
+
metadata:
|
|
6
|
+
author: sequant
|
|
7
|
+
version: "2.0"
|
|
8
|
+
allowed-tools:
|
|
9
|
+
- Read
|
|
10
|
+
- Write
|
|
11
|
+
- Bash(mkdir:*)
|
|
12
|
+
- Bash(cp:*)
|
|
13
|
+
- Bash(ls:*)
|
|
14
|
+
- Bash(cat:*)
|
|
15
|
+
- Bash(sed:*)
|
|
16
|
+
- Bash(git --version)
|
|
17
|
+
- Bash(git remote:*)
|
|
18
|
+
- Bash(gh auth status:*)
|
|
19
|
+
- Bash(gh --version:*)
|
|
20
|
+
- Bash(basename:*)
|
|
21
|
+
- Bash(jq:*)
|
|
22
|
+
- Bash(grep:*)
|
|
23
|
+
- Bash(head:*)
|
|
24
|
+
- Bash(node --version:*)
|
|
25
|
+
- Bash(node -e:*)
|
|
26
|
+
- Bash(npm --version:*)
|
|
27
|
+
- Bash(which:*)
|
|
28
|
+
- Bash(yarn --version:*)
|
|
29
|
+
- Bash(pnpm --version:*)
|
|
30
|
+
- Bash(curl:*)
|
|
31
|
+
---
|
|
32
|
+
|
|
33
|
+
# Sequant Setup
|
|
34
|
+
|
|
35
|
+
Initialize Sequant workflow system in your current project.
|
|
36
|
+
|
|
37
|
+
## Purpose
|
|
38
|
+
|
|
39
|
+
When invoked as `/sequant:setup` or `/setup`, this skill configures everything a plugin user needs — the equivalent of `sequant init` for npm users.
|
|
40
|
+
|
|
41
|
+
## Usage
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
/sequant:setup
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## What It Does
|
|
48
|
+
|
|
49
|
+
### 1. Check Prerequisites
|
|
50
|
+
|
|
51
|
+
Verify all required tools are installed and authenticated.
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
echo "=== Sequant Prerequisites Check ==="
|
|
55
|
+
|
|
56
|
+
# 1. Git
|
|
57
|
+
if git --version >/dev/null 2>&1; then
|
|
58
|
+
echo "✅ git: $(git --version | head -1)"
|
|
59
|
+
else
|
|
60
|
+
echo "❌ git: not found — install from https://git-scm.com"
|
|
61
|
+
PREREQ_FAIL=true
|
|
62
|
+
fi
|
|
63
|
+
|
|
64
|
+
# 2. GitHub CLI
|
|
65
|
+
if gh --version >/dev/null 2>&1; then
|
|
66
|
+
echo "✅ gh: $(gh --version | head -1)"
|
|
67
|
+
if gh auth status >/dev/null 2>&1; then
|
|
68
|
+
echo "✅ gh auth: authenticated"
|
|
69
|
+
else
|
|
70
|
+
echo "❌ gh auth: not authenticated — run 'gh auth login'"
|
|
71
|
+
PREREQ_FAIL=true
|
|
72
|
+
fi
|
|
73
|
+
else
|
|
74
|
+
echo "❌ gh: not found — install from https://cli.github.com"
|
|
75
|
+
PREREQ_FAIL=true
|
|
76
|
+
fi
|
|
77
|
+
|
|
78
|
+
# 3. Node.js 20+ (for MCP server via npx)
|
|
79
|
+
if node --version >/dev/null 2>&1; then
|
|
80
|
+
NODE_VER=$(node --version | sed 's/v//' | cut -d. -f1)
|
|
81
|
+
if [ "$NODE_VER" -ge 20 ] 2>/dev/null; then
|
|
82
|
+
echo "✅ node: $(node --version) (>= 20)"
|
|
83
|
+
else
|
|
84
|
+
echo "⚠️ node: $(node --version) — MCP server requires Node.js 20+. Upgrade recommended."
|
|
85
|
+
fi
|
|
86
|
+
else
|
|
87
|
+
echo "⚠️ node: not found — MCP server (npx sequant serve) requires Node.js 20+"
|
|
88
|
+
fi
|
|
89
|
+
|
|
90
|
+
if [ "$PREREQ_FAIL" = "true" ]; then
|
|
91
|
+
echo ""
|
|
92
|
+
echo "Fix the issues above, then re-run /sequant:setup"
|
|
93
|
+
fi
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
If any critical prerequisite fails (git or gh), stop and report. Node.js is a warning (needed for MCP server but not skills).
|
|
97
|
+
|
|
98
|
+
### 2. Create Worktrees Directory
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
mkdir -p ../worktrees/feature
|
|
102
|
+
echo "✅ Created ../worktrees/feature/"
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
### 3. Detect Project Name
|
|
106
|
+
|
|
107
|
+
The skill automatically detects your project name from available sources in priority order:
|
|
108
|
+
|
|
109
|
+
1. **package.json** - Node.js projects (`name` field)
|
|
110
|
+
2. **Cargo.toml** - Rust projects (`[package] name`)
|
|
111
|
+
3. **pyproject.toml** - Python projects (`[project] name` or `[tool.poetry] name`)
|
|
112
|
+
4. **go.mod** - Go projects (module path, last segment)
|
|
113
|
+
5. **Git remote** - Extract repo name from origin URL
|
|
114
|
+
6. **Directory name** - Fallback to current directory name
|
|
115
|
+
|
|
116
|
+
```bash
|
|
117
|
+
# Detection script (run each step until a name is found)
|
|
118
|
+
|
|
119
|
+
# 1. Try package.json
|
|
120
|
+
if [ -f "package.json" ]; then
|
|
121
|
+
PROJECT_NAME=$(cat package.json | jq -r '.name // empty' 2>/dev/null)
|
|
122
|
+
fi
|
|
123
|
+
|
|
124
|
+
# 2. Try Cargo.toml
|
|
125
|
+
if [ -z "$PROJECT_NAME" ] && [ -f "Cargo.toml" ]; then
|
|
126
|
+
PROJECT_NAME=$(grep -A5 '^\[package\]' Cargo.toml | grep '^name' | head -1 | sed 's/.*=\s*["'\'']\([^"'\'']*\)["'\''].*/\1/' || true)
|
|
127
|
+
fi
|
|
128
|
+
|
|
129
|
+
# 3. Try pyproject.toml
|
|
130
|
+
if [ -z "$PROJECT_NAME" ] && [ -f "pyproject.toml" ]; then
|
|
131
|
+
# Try [project] section first (PEP 621)
|
|
132
|
+
PROJECT_NAME=$(grep -A5 '^\[project\]' pyproject.toml | grep '^name' | head -1 | sed 's/.*=\s*["'\'']\([^"'\'']*\)["'\''].*/\1/' || true)
|
|
133
|
+
# Fallback to [tool.poetry] section
|
|
134
|
+
if [ -z "$PROJECT_NAME" ]; then
|
|
135
|
+
PROJECT_NAME=$(grep -A5 '^\[tool\.poetry\]' pyproject.toml | grep '^name' | head -1 | sed 's/.*=\s*["'\'']\([^"'\'']*\)["'\''].*/\1/' || true)
|
|
136
|
+
fi
|
|
137
|
+
fi
|
|
138
|
+
|
|
139
|
+
# 4. Try go.mod
|
|
140
|
+
if [ -z "$PROJECT_NAME" ] && [ -f "go.mod" ]; then
|
|
141
|
+
MODULE_PATH=$(grep '^module ' go.mod | head -1 | awk '{print $2}' || true)
|
|
142
|
+
PROJECT_NAME=$(basename "$MODULE_PATH")
|
|
143
|
+
fi
|
|
144
|
+
|
|
145
|
+
# 5. Try git remote
|
|
146
|
+
if [ -z "$PROJECT_NAME" ]; then
|
|
147
|
+
REMOTE_URL=$(git remote get-url origin 2>/dev/null)
|
|
148
|
+
if [ -n "$REMOTE_URL" ]; then
|
|
149
|
+
# Handle both SSH and HTTPS formats
|
|
150
|
+
PROJECT_NAME=$(echo "$REMOTE_URL" | sed 's/.*[:/]\([^/]*\)\.git$/\1/' | sed 's/.*\/\([^/]*\)$/\1/')
|
|
151
|
+
fi
|
|
152
|
+
fi
|
|
153
|
+
|
|
154
|
+
# 6. Fallback to directory name
|
|
155
|
+
if [ -z "$PROJECT_NAME" ]; then
|
|
156
|
+
PROJECT_NAME=$(basename "$(pwd)")
|
|
157
|
+
fi
|
|
158
|
+
|
|
159
|
+
echo "Detected project name: $PROJECT_NAME"
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
### 4. Create .sequant/ Configuration
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
mkdir -p .sequant
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
Create `.sequant/settings.json` with sensible defaults:
|
|
169
|
+
|
|
170
|
+
```json
|
|
171
|
+
{
|
|
172
|
+
"version": "1.0",
|
|
173
|
+
"run": {
|
|
174
|
+
"logJson": true,
|
|
175
|
+
"logPath": ".sequant/logs",
|
|
176
|
+
"autoDetectPhases": true,
|
|
177
|
+
"timeout": 1800,
|
|
178
|
+
"sequential": false,
|
|
179
|
+
"qualityLoop": false,
|
|
180
|
+
"maxIterations": 3,
|
|
181
|
+
"smartTests": true,
|
|
182
|
+
"mcp": true,
|
|
183
|
+
"retry": true,
|
|
184
|
+
"staleBranchThreshold": 5
|
|
185
|
+
},
|
|
186
|
+
"agents": {
|
|
187
|
+
"parallel": false,
|
|
188
|
+
"model": "haiku"
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Use the Write tool to create `.sequant/settings.json` with the above content.
|
|
194
|
+
|
|
195
|
+
### 5. Detect Package Manager
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
# Detect package manager
|
|
199
|
+
PM_RUN="npm run"
|
|
200
|
+
if [ -f "pnpm-lock.yaml" ]; then
|
|
201
|
+
PM_RUN="pnpm run"
|
|
202
|
+
echo "✅ Detected package manager: pnpm"
|
|
203
|
+
elif [ -f "yarn.lock" ]; then
|
|
204
|
+
PM_RUN="yarn"
|
|
205
|
+
echo "✅ Detected package manager: yarn"
|
|
206
|
+
elif [ -f "bun.lockb" ]; then
|
|
207
|
+
PM_RUN="bun run"
|
|
208
|
+
echo "✅ Detected package manager: bun"
|
|
209
|
+
elif [ -f "package-lock.json" ]; then
|
|
210
|
+
PM_RUN="npm run"
|
|
211
|
+
echo "✅ Detected package manager: npm"
|
|
212
|
+
else
|
|
213
|
+
echo "ℹ️ No lock file found — defaulting to npm"
|
|
214
|
+
fi
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Store `PM_RUN` in settings for use by `/exec` and `/spec`:
|
|
218
|
+
|
|
219
|
+
After detecting PM_RUN, use the Edit tool to add it to `.sequant/settings.json` under the `run` section:
|
|
220
|
+
```json
|
|
221
|
+
{
|
|
222
|
+
"run": {
|
|
223
|
+
"pmRun": "<detected PM_RUN value>"
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
### 6. Detect Dev Server URL
|
|
229
|
+
|
|
230
|
+
```bash
|
|
231
|
+
# Detect dev server URL from common patterns
|
|
232
|
+
DEV_URL=""
|
|
233
|
+
|
|
234
|
+
if [ -f "package.json" ]; then
|
|
235
|
+
# Check for common dev scripts
|
|
236
|
+
DEV_SCRIPT=$(cat package.json | jq -r '.scripts.dev // empty' 2>/dev/null)
|
|
237
|
+
|
|
238
|
+
if echo "$DEV_SCRIPT" | grep -q "next"; then
|
|
239
|
+
DEV_URL="http://localhost:3000"
|
|
240
|
+
echo "✅ Detected Next.js dev server: $DEV_URL"
|
|
241
|
+
elif echo "$DEV_SCRIPT" | grep -q "vite"; then
|
|
242
|
+
DEV_URL="http://localhost:5173"
|
|
243
|
+
echo "✅ Detected Vite dev server: $DEV_URL"
|
|
244
|
+
elif echo "$DEV_SCRIPT" | grep -q "nuxt"; then
|
|
245
|
+
DEV_URL="http://localhost:3000"
|
|
246
|
+
echo "✅ Detected Nuxt dev server: $DEV_URL"
|
|
247
|
+
elif echo "$DEV_SCRIPT" | grep -q "remix"; then
|
|
248
|
+
DEV_URL="http://localhost:3000"
|
|
249
|
+
echo "✅ Detected Remix dev server: $DEV_URL"
|
|
250
|
+
elif [ -n "$DEV_SCRIPT" ]; then
|
|
251
|
+
DEV_URL="http://localhost:3000"
|
|
252
|
+
echo "ℹ️ Dev script found but server URL unclear — defaulting to $DEV_URL"
|
|
253
|
+
echo " Update .sequant/settings.json if your dev server uses a different port."
|
|
254
|
+
fi
|
|
255
|
+
fi
|
|
256
|
+
|
|
257
|
+
if [ -z "$DEV_URL" ]; then
|
|
258
|
+
echo "ℹ️ No dev server detected (not needed for CLI/backend projects)"
|
|
259
|
+
fi
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
Store `DEV_URL` in settings if detected. Use the Edit tool to add:
|
|
263
|
+
```json
|
|
264
|
+
{
|
|
265
|
+
"run": {
|
|
266
|
+
"devUrl": "<detected DEV_URL value>"
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
### 7. Create .sequant-manifest.json
|
|
272
|
+
|
|
273
|
+
Create a manifest with version and stack info for diagnostics:
|
|
274
|
+
|
|
275
|
+
```bash
|
|
276
|
+
# Detect stack
|
|
277
|
+
STACK="unknown"
|
|
278
|
+
if [ -f "next.config.js" ] || [ -f "next.config.ts" ] || [ -f "next.config.mjs" ]; then
|
|
279
|
+
STACK="nextjs"
|
|
280
|
+
elif [ -f "vite.config.ts" ] || [ -f "vite.config.js" ]; then
|
|
281
|
+
STACK="vite"
|
|
282
|
+
elif [ -f "nuxt.config.ts" ]; then
|
|
283
|
+
STACK="nuxt"
|
|
284
|
+
elif [ -f "Cargo.toml" ]; then
|
|
285
|
+
STACK="rust"
|
|
286
|
+
elif [ -f "go.mod" ]; then
|
|
287
|
+
STACK="go"
|
|
288
|
+
elif [ -f "pyproject.toml" ]; then
|
|
289
|
+
STACK="python"
|
|
290
|
+
elif [ -f "package.json" ]; then
|
|
291
|
+
STACK="node"
|
|
292
|
+
fi
|
|
293
|
+
```
|
|
294
|
+
|
|
295
|
+
Use the Write tool to create `.sequant-manifest.json`:
|
|
296
|
+
```json
|
|
297
|
+
{
|
|
298
|
+
"version": "latest",
|
|
299
|
+
"installedVia": "plugin",
|
|
300
|
+
"stack": "<detected stack>",
|
|
301
|
+
"pmRun": "<detected PM_RUN>",
|
|
302
|
+
"createdAt": "<ISO-8601 timestamp>"
|
|
303
|
+
}
|
|
304
|
+
```
|
|
305
|
+
|
|
306
|
+
### 8. Copy Constitution Template
|
|
307
|
+
|
|
308
|
+
```bash
|
|
309
|
+
mkdir -p .claude/memory
|
|
310
|
+
CONST_SRC="${CLAUDE_PLUGIN_ROOT:-./templates}/memory/constitution.md"
|
|
311
|
+
cp "$CONST_SRC" .claude/memory/constitution.md
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
### 9. Replace Project Name Placeholder
|
|
315
|
+
|
|
316
|
+
```bash
|
|
317
|
+
# Replace {{PROJECT_NAME}} with detected project name
|
|
318
|
+
sed -i.bak "s/{{PROJECT_NAME}}/$PROJECT_NAME/g" .claude/memory/constitution.md
|
|
319
|
+
rm -f .claude/memory/constitution.md.bak
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
### 10. Print Summary
|
|
323
|
+
|
|
324
|
+
After setup completes, print a summary:
|
|
325
|
+
|
|
326
|
+
```markdown
|
|
327
|
+
## Sequant Setup Complete
|
|
328
|
+
|
|
329
|
+
### What was configured
|
|
330
|
+
|
|
331
|
+
| Item | Status |
|
|
332
|
+
|------|--------|
|
|
333
|
+
| Prerequisites | ✅ git, gh, node checked |
|
|
334
|
+
| Worktrees | ✅ ../worktrees/feature/ created |
|
|
335
|
+
| Project name | ✅ <PROJECT_NAME> |
|
|
336
|
+
| Config | ✅ .sequant/settings.json |
|
|
337
|
+
| Package manager | ✅ <PM_RUN> |
|
|
338
|
+
| Dev server | ✅ <DEV_URL> (or ℹ️ not detected) |
|
|
339
|
+
| Manifest | ✅ .sequant-manifest.json |
|
|
340
|
+
| Constitution | ✅ .claude/memory/constitution.md |
|
|
341
|
+
|
|
342
|
+
### MCP Tools Available
|
|
343
|
+
|
|
344
|
+
The plugin includes an MCP server that provides these tools automatically:
|
|
345
|
+
|
|
346
|
+
| Tool | Purpose |
|
|
347
|
+
|------|---------|
|
|
348
|
+
| `sequant_status` | Check issue progress and workflow state |
|
|
349
|
+
| `sequant_run` | Execute workflow phases (spec, exec, qa) |
|
|
350
|
+
| `sequant_logs` | Review past run results and debug failures |
|
|
351
|
+
|
|
352
|
+
### What's Next
|
|
353
|
+
|
|
354
|
+
You're all set — run `/assess <issue>` to start working on a GitHub issue.
|
|
355
|
+
|
|
356
|
+
**Common commands:**
|
|
357
|
+
- `/assess 123` — Analyze issue, get recommended workflow
|
|
358
|
+
- `/fullsolve 123` — End-to-end: spec → exec → qa → PR
|
|
359
|
+
- `/spec 123` — Plan implementation only
|
|
360
|
+
- `/exec 123` — Implement only
|
|
361
|
+
```
|
|
362
|
+
|
|
363
|
+
## Post-Setup
|
|
364
|
+
|
|
365
|
+
1. Review `.claude/memory/constitution.md` - project name should be filled in
|
|
366
|
+
2. Add any project-specific guidelines to the constitution
|
|
367
|
+
3. Optionally edit `.sequant/settings.json` to customize:
|
|
368
|
+
- `devUrl` — if auto-detection picked the wrong port
|
|
369
|
+
- `pmRun` — if using a non-standard package manager command
|
|
370
|
+
- `agents.parallel` — set to `true` for faster but more token-expensive runs
|
|
371
|
+
4. Run `/assess <issue>` to start working
|
|
372
|
+
|
|
373
|
+
## Troubleshooting
|
|
374
|
+
|
|
375
|
+
**Project name shows as directory name instead of package name:**
|
|
376
|
+
- Ensure your `package.json`, `Cargo.toml`, `pyproject.toml`, or `go.mod` has a valid `name` field
|
|
377
|
+
- Check that the file is valid JSON/TOML
|
|
378
|
+
|
|
379
|
+
**MCP tools not available:**
|
|
380
|
+
- Ensure Node.js 20+ is installed (`node --version`)
|
|
381
|
+
- The MCP server starts automatically via `npx sequant@latest serve`
|
|
382
|
+
- Check Claude Code settings if tools don't appear
|
|
383
|
+
|
|
384
|
+
**Settings not being picked up:**
|
|
385
|
+
- Verify `.sequant/settings.json` is valid JSON
|
|
386
|
+
- Check that `.sequant/` is not gitignored in your project (it should be — these are local settings)
|