sequant 1.20.3 → 2.0.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.
Files changed (137) hide show
  1. package/.claude-plugin/marketplace.json +2 -4
  2. package/.claude-plugin/plugin.json +1 -1
  3. package/README.md +29 -9
  4. package/dist/bin/cli.js +25 -2
  5. package/dist/src/commands/doctor.js +42 -9
  6. package/dist/src/commands/init.d.ts +1 -0
  7. package/dist/src/commands/init.js +52 -0
  8. package/dist/src/commands/logs.d.ts +1 -0
  9. package/dist/src/commands/logs.js +18 -2
  10. package/dist/src/commands/run.d.ts +7 -0
  11. package/dist/src/commands/run.js +235 -68
  12. package/dist/src/commands/serve.d.ts +13 -0
  13. package/dist/src/commands/serve.js +131 -0
  14. package/dist/src/commands/stats.d.ts +1 -0
  15. package/dist/src/commands/stats.js +185 -26
  16. package/dist/src/commands/status.d.ts +2 -0
  17. package/dist/src/commands/status.js +99 -50
  18. package/dist/src/index.d.ts +2 -2
  19. package/dist/src/index.js +4 -1
  20. package/dist/src/lib/ac-parser.d.ts +2 -0
  21. package/dist/src/lib/ac-parser.js +12 -2
  22. package/dist/src/lib/assess-comment-parser.d.ts +137 -0
  23. package/dist/src/lib/assess-comment-parser.js +344 -0
  24. package/dist/src/lib/ci/config.d.ts +22 -0
  25. package/dist/src/lib/ci/config.js +134 -0
  26. package/dist/src/lib/ci/index.d.ts +12 -0
  27. package/dist/src/lib/ci/index.js +10 -0
  28. package/dist/src/lib/ci/inputs.d.ts +29 -0
  29. package/dist/src/lib/ci/inputs.js +103 -0
  30. package/dist/src/lib/ci/labels.d.ts +34 -0
  31. package/dist/src/lib/ci/labels.js +101 -0
  32. package/dist/src/lib/ci/outputs.d.ts +25 -0
  33. package/dist/src/lib/ci/outputs.js +84 -0
  34. package/dist/src/lib/ci/triggers.d.ts +9 -0
  35. package/dist/src/lib/ci/triggers.js +86 -0
  36. package/dist/src/lib/ci/types.d.ts +131 -0
  37. package/dist/src/lib/ci/types.js +47 -0
  38. package/dist/src/lib/mcp-config.d.ts +54 -0
  39. package/dist/src/lib/mcp-config.js +172 -0
  40. package/dist/src/lib/merge-check/index.js +6 -12
  41. package/dist/src/lib/merge-check/types.d.ts +20 -7
  42. package/dist/src/lib/merge-check/types.js +11 -0
  43. package/dist/src/lib/phase-signal.d.ts +3 -3
  44. package/dist/src/lib/phase-signal.js +5 -3
  45. package/dist/src/lib/settings.d.ts +52 -0
  46. package/dist/src/lib/settings.js +41 -0
  47. package/dist/src/lib/shutdown.d.ts +16 -5
  48. package/dist/src/lib/shutdown.js +32 -12
  49. package/dist/src/lib/solve-comment-parser.d.ts +9 -102
  50. package/dist/src/lib/solve-comment-parser.js +13 -248
  51. package/dist/src/lib/stacks.d.ts +8 -0
  52. package/dist/src/lib/stacks.js +34 -0
  53. package/dist/src/lib/system.js +3 -7
  54. package/dist/src/lib/test-tautology-detector.d.ts +10 -0
  55. package/dist/src/lib/test-tautology-detector.js +43 -4
  56. package/dist/src/lib/upstream/assessment.js +9 -59
  57. package/dist/src/lib/upstream/issues.js +12 -75
  58. package/dist/src/lib/version-check.d.ts +2 -2
  59. package/dist/src/lib/version-check.js +6 -3
  60. package/dist/src/lib/version.d.ts +4 -0
  61. package/dist/src/lib/version.js +25 -0
  62. package/dist/src/lib/workflow/batch-executor.d.ts +18 -86
  63. package/dist/src/lib/workflow/batch-executor.js +232 -55
  64. package/dist/src/lib/workflow/drivers/agent-driver.d.ts +56 -0
  65. package/dist/src/lib/workflow/drivers/agent-driver.js +8 -0
  66. package/dist/src/lib/workflow/drivers/aider.d.ts +18 -0
  67. package/dist/src/lib/workflow/drivers/aider.js +160 -0
  68. package/dist/src/lib/workflow/drivers/claude-code.d.ts +17 -0
  69. package/dist/src/lib/workflow/drivers/claude-code.js +165 -0
  70. package/dist/src/lib/workflow/drivers/index.d.ts +20 -0
  71. package/dist/src/lib/workflow/drivers/index.js +27 -0
  72. package/dist/src/lib/workflow/error-classifier.d.ts +16 -0
  73. package/dist/src/lib/workflow/error-classifier.js +90 -0
  74. package/dist/src/lib/workflow/log-writer.d.ts +6 -3
  75. package/dist/src/lib/workflow/log-writer.js +57 -27
  76. package/dist/src/lib/workflow/metrics-schema.d.ts +9 -9
  77. package/dist/src/lib/workflow/phase-detection.d.ts +23 -0
  78. package/dist/src/lib/workflow/phase-detection.js +45 -29
  79. package/dist/src/lib/workflow/phase-executor.d.ts +42 -3
  80. package/dist/src/lib/workflow/phase-executor.js +340 -220
  81. package/dist/src/lib/workflow/phase-mapper.d.ts +1 -1
  82. package/dist/src/lib/workflow/phase-mapper.js +7 -7
  83. package/dist/src/lib/workflow/platforms/github.d.ts +157 -0
  84. package/dist/src/lib/workflow/platforms/github.js +466 -0
  85. package/dist/src/lib/workflow/platforms/index.d.ts +17 -0
  86. package/dist/src/lib/workflow/platforms/index.js +25 -0
  87. package/dist/src/lib/workflow/platforms/platform-provider.d.ts +67 -0
  88. package/dist/src/lib/workflow/platforms/platform-provider.js +8 -0
  89. package/dist/src/lib/workflow/pr-status.d.ts +2 -4
  90. package/dist/src/lib/workflow/pr-status.js +3 -16
  91. package/dist/src/lib/workflow/qa-cache.d.ts +58 -0
  92. package/dist/src/lib/workflow/qa-cache.js +88 -0
  93. package/dist/src/lib/workflow/reconcile.d.ts +69 -0
  94. package/dist/src/lib/workflow/reconcile.js +290 -0
  95. package/dist/src/lib/workflow/ring-buffer.d.ts +17 -0
  96. package/dist/src/lib/workflow/ring-buffer.js +37 -0
  97. package/dist/src/lib/workflow/run-log-schema.d.ts +115 -24
  98. package/dist/src/lib/workflow/run-log-schema.js +47 -12
  99. package/dist/src/lib/workflow/run-reflect.js +1 -1
  100. package/dist/src/lib/workflow/state-cleanup.js +21 -0
  101. package/dist/src/lib/workflow/state-manager.d.ts +34 -3
  102. package/dist/src/lib/workflow/state-manager.js +278 -126
  103. package/dist/src/lib/workflow/state-schema.d.ts +34 -30
  104. package/dist/src/lib/workflow/state-schema.js +35 -25
  105. package/dist/src/lib/workflow/state-utils.d.ts +3 -1
  106. package/dist/src/lib/workflow/state-utils.js +1 -0
  107. package/dist/src/lib/workflow/types.d.ts +208 -6
  108. package/dist/src/lib/workflow/types.js +20 -1
  109. package/dist/src/lib/workflow/worktree-discovery.d.ts +1 -1
  110. package/dist/src/lib/workflow/worktree-discovery.js +6 -14
  111. package/dist/src/lib/workflow/worktree-manager.js +33 -51
  112. package/dist/src/mcp/index.d.ts +4 -0
  113. package/dist/src/mcp/index.js +4 -0
  114. package/dist/src/mcp/resources.d.ts +7 -0
  115. package/dist/src/mcp/resources.js +111 -0
  116. package/dist/src/mcp/run-registry.d.ts +34 -0
  117. package/dist/src/mcp/run-registry.js +42 -0
  118. package/dist/src/mcp/server.d.ts +12 -0
  119. package/dist/src/mcp/server.js +50 -0
  120. package/dist/src/mcp/tools/logs.d.ts +7 -0
  121. package/dist/src/mcp/tools/logs.js +149 -0
  122. package/dist/src/mcp/tools/run.d.ts +121 -0
  123. package/dist/src/mcp/tools/run.js +591 -0
  124. package/dist/src/mcp/tools/status.d.ts +7 -0
  125. package/dist/src/mcp/tools/status.js +127 -0
  126. package/package.json +10 -1
  127. package/templates/hooks/post-tool.sh +19 -8
  128. package/templates/hooks/pre-tool.sh +36 -49
  129. package/templates/mcp.json +6 -0
  130. package/templates/skills/assess/SKILL.md +354 -352
  131. package/templates/skills/exec/SKILL.md +64 -1
  132. package/templates/skills/fullsolve/SKILL.md +35 -4
  133. package/templates/skills/qa/SKILL.md +486 -9
  134. package/templates/skills/qa/scripts/quality-checks.sh +1 -1
  135. package/templates/skills/setup/SKILL.md +386 -0
  136. package/templates/skills/solve/SKILL.md +38 -664
  137. package/templates/skills/spec/SKILL.md +90 -31
@@ -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)