@prowi/deskcheck 0.3.0 → 0.4.2

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 (94) hide show
  1. package/README.md +78 -84
  2. package/build/cli.js +345 -40
  3. package/build/cli.js.map +1 -1
  4. package/build/config/loader.d.ts.map +1 -1
  5. package/build/config/loader.js +5 -2
  6. package/build/config/loader.js.map +1 -1
  7. package/build/config/types.d.ts +14 -2
  8. package/build/config/types.d.ts.map +1 -1
  9. package/build/mcp/tools.d.ts.map +1 -1
  10. package/build/mcp/tools.js +26 -50
  11. package/build/mcp/tools.js.map +1 -1
  12. package/build/prompts/ExecutorPrompt.d.ts +4 -2
  13. package/build/prompts/ExecutorPrompt.d.ts.map +1 -1
  14. package/build/prompts/ExecutorPrompt.js +40 -33
  15. package/build/prompts/ExecutorPrompt.js.map +1 -1
  16. package/build/prompts/PartitionerPrompt.d.ts +12 -0
  17. package/build/prompts/PartitionerPrompt.d.ts.map +1 -0
  18. package/build/prompts/PartitionerPrompt.js +54 -0
  19. package/build/prompts/PartitionerPrompt.js.map +1 -0
  20. package/build/prompts/ResolverPrompt.d.ts +11 -0
  21. package/build/prompts/ResolverPrompt.d.ts.map +1 -0
  22. package/build/prompts/ResolverPrompt.js +45 -0
  23. package/build/prompts/ResolverPrompt.js.map +1 -0
  24. package/build/renderers/review/MarkdownRenderer.js +5 -2
  25. package/build/renderers/review/MarkdownRenderer.js.map +1 -1
  26. package/build/renderers/review/TerminalRenderer.js +5 -2
  27. package/build/renderers/review/TerminalRenderer.js.map +1 -1
  28. package/build/renderers/review/WatchRenderer.d.ts.map +1 -1
  29. package/build/renderers/review/WatchRenderer.js +10 -1
  30. package/build/renderers/review/WatchRenderer.js.map +1 -1
  31. package/build/server/controllers/ReviewController.d.ts +12 -3
  32. package/build/server/controllers/ReviewController.d.ts.map +1 -1
  33. package/build/server/controllers/ReviewController.js +50 -6
  34. package/build/server/controllers/ReviewController.js.map +1 -1
  35. package/build/server/server.d.ts.map +1 -1
  36. package/build/server/server.js +22 -1
  37. package/build/server/server.js.map +1 -1
  38. package/build/services/ExecutorService.d.ts +18 -3
  39. package/build/services/ExecutorService.d.ts.map +1 -1
  40. package/build/services/ExecutorService.js +51 -14
  41. package/build/services/ExecutorService.js.map +1 -1
  42. package/build/services/FindingsParserService.d.ts +1 -8
  43. package/build/services/FindingsParserService.d.ts.map +1 -1
  44. package/build/services/FindingsParserService.js +20 -45
  45. package/build/services/FindingsParserService.js.map +1 -1
  46. package/build/services/criteria/module-parser.d.ts +6 -4
  47. package/build/services/criteria/module-parser.d.ts.map +1 -1
  48. package/build/services/criteria/module-parser.js +27 -21
  49. package/build/services/criteria/module-parser.js.map +1 -1
  50. package/build/services/review/CodeSnippetService.d.ts +10 -0
  51. package/build/services/review/CodeSnippetService.d.ts.map +1 -0
  52. package/build/services/review/CodeSnippetService.js +54 -0
  53. package/build/services/review/CodeSnippetService.js.map +1 -0
  54. package/build/services/review/ReviewInputResolverService.d.ts +25 -0
  55. package/build/services/review/ReviewInputResolverService.d.ts.map +1 -0
  56. package/build/services/review/ReviewInputResolverService.js +106 -0
  57. package/build/services/review/ReviewInputResolverService.js.map +1 -0
  58. package/build/services/review/ReviewOrchestratorService.d.ts.map +1 -1
  59. package/build/services/review/ReviewOrchestratorService.js +21 -20
  60. package/build/services/review/ReviewOrchestratorService.js.map +1 -1
  61. package/build/services/review/ReviewPartitionerService.d.ts +46 -0
  62. package/build/services/review/ReviewPartitionerService.d.ts.map +1 -0
  63. package/build/services/review/ReviewPartitionerService.js +208 -0
  64. package/build/services/review/ReviewPartitionerService.js.map +1 -0
  65. package/build/services/review/ReviewPlanBuilderService.d.ts +25 -7
  66. package/build/services/review/ReviewPlanBuilderService.d.ts.map +1 -1
  67. package/build/services/review/ReviewPlanBuilderService.js +88 -30
  68. package/build/services/review/ReviewPlanBuilderService.js.map +1 -1
  69. package/build/services/review/ReviewStorageService.d.ts +34 -10
  70. package/build/services/review/ReviewStorageService.d.ts.map +1 -1
  71. package/build/services/review/ReviewStorageService.js +100 -14
  72. package/build/services/review/ReviewStorageService.js.map +1 -1
  73. package/build/services/testing/TestRunnerService.d.ts +4 -0
  74. package/build/services/testing/TestRunnerService.d.ts.map +1 -1
  75. package/build/services/testing/TestRunnerService.js +14 -10
  76. package/build/services/testing/TestRunnerService.js.map +1 -1
  77. package/build/types/criteria.d.ts +8 -6
  78. package/build/types/criteria.d.ts.map +1 -1
  79. package/build/types/review.d.ts +123 -28
  80. package/build/types/review.d.ts.map +1 -1
  81. package/package.json +3 -1
  82. package/ui/dist/index.html +12 -63
  83. package/build/prompts/PlannerPrompt.d.ts +0 -12
  84. package/build/prompts/PlannerPrompt.d.ts.map +0 -1
  85. package/build/prompts/PlannerPrompt.js +0 -34
  86. package/build/prompts/PlannerPrompt.js.map +0 -1
  87. package/build/services/review/ReviewContextExtractorService.d.ts +0 -17
  88. package/build/services/review/ReviewContextExtractorService.d.ts.map +0 -1
  89. package/build/services/review/ReviewContextExtractorService.js +0 -69
  90. package/build/services/review/ReviewContextExtractorService.js.map +0 -1
  91. package/build/services/review/ReviewPlannerService.d.ts +0 -29
  92. package/build/services/review/ReviewPlannerService.d.ts.map +0 -1
  93. package/build/services/review/ReviewPlannerService.js +0 -122
  94. package/build/services/review/ReviewPlannerService.js.map +0 -1
package/build/cli.js CHANGED
@@ -3,11 +3,12 @@ import fs from "node:fs";
3
3
  import path from "node:path";
4
4
  import { execFileSync } from "node:child_process";
5
5
  import { Command } from "commander";
6
- import { loadConfig, DEFAULT_CONFIG } from "./config/loader.js";
6
+ import { loadConfig } from "./config/loader.js";
7
7
  import { ReviewStorageService } from "./services/review/ReviewStorageService.js";
8
8
  import { discoverModules, filterModules } from "./services/criteria/module-parser.js";
9
9
  import { buildPlanWithTasks } from "./services/review/ReviewPlanBuilderService.js";
10
- import { ReviewPlannerService } from "./services/review/ReviewPlannerService.js";
10
+ import { ReviewInputResolverService } from "./services/review/ReviewInputResolverService.js";
11
+ import { ReviewPartitionerService } from "./services/review/ReviewPartitionerService.js";
11
12
  import { ReviewOrchestratorService } from "./services/review/ReviewOrchestratorService.js";
12
13
  import { renderTerminal } from "./renderers/review/TerminalRenderer.js";
13
14
  import { renderMarkdown } from "./renderers/review/MarkdownRenderer.js";
@@ -32,6 +33,14 @@ const RESET = "\x1b[0m";
32
33
  function resolveProjectRoot() {
33
34
  return process.cwd();
34
35
  }
36
+ /** Build the PlanInvocation snapshot for storage from the current process. */
37
+ function captureInvocation(projectRoot) {
38
+ return {
39
+ command: "deskcheck",
40
+ args: process.argv.slice(2),
41
+ cwd: projectRoot,
42
+ };
43
+ }
35
44
  function formatFindingsSummary(results) {
36
45
  const { critical, warning, info, total } = results.summary;
37
46
  if (total === 0)
@@ -77,10 +86,10 @@ function renderOutput(results, plan, format) {
77
86
  }
78
87
  }
79
88
  /** Print execution progress from orchestrator events. */
80
- async function executeAndPrint(orchestrator, planId) {
89
+ async function executeAndPrint(orchestrator, planId, maxConcurrent) {
81
90
  console.log(`${DIM} Checking...${RESET}`);
82
91
  console.log("");
83
- for await (const event of orchestrator.execute(planId)) {
92
+ for await (const event of orchestrator.execute(planId, { maxConcurrent })) {
84
93
  switch (event.type) {
85
94
  case "task_started":
86
95
  break;
@@ -133,32 +142,203 @@ function initCommand() {
133
142
  const deskchecDir = path.join(projectRoot, ".deskcheck");
134
143
  const configPath = path.join(deskchecDir, "config.json");
135
144
  const modulesDir = path.join(projectRoot, "deskcheck", "criteria");
145
+ const exampleCriterion = path.join(modulesDir, "example.md");
136
146
  let created = false;
137
147
  if (!fs.existsSync(deskchecDir)) {
138
148
  fs.mkdirSync(deskchecDir, { recursive: true });
139
- console.log(`Created ${deskchecDir}/`);
149
+ console.log(` Created ${DIM}.deskcheck/${RESET}`);
140
150
  created = true;
141
151
  }
142
152
  if (!fs.existsSync(configPath)) {
143
- fs.writeFileSync(configPath, JSON.stringify(DEFAULT_CONFIG, null, 2) + "\n");
144
- console.log(`Created ${configPath}`);
153
+ fs.writeFileSync(configPath, ANNOTATED_CONFIG);
154
+ console.log(` Created ${DIM}.deskcheck/config.json${RESET}`);
145
155
  created = true;
146
156
  }
147
157
  else {
148
- console.log(`Config already exists: ${configPath}`);
158
+ console.log(` Config already exists: ${DIM}.deskcheck/config.json${RESET}`);
149
159
  }
150
160
  if (!fs.existsSync(modulesDir)) {
151
161
  fs.mkdirSync(modulesDir, { recursive: true });
152
- console.log(`Created ${modulesDir}/`);
162
+ console.log(` Created ${DIM}deskcheck/criteria/${RESET}`);
153
163
  created = true;
154
164
  }
155
165
  else {
156
- console.log(`Criteria directory already exists: ${modulesDir}/`);
166
+ console.log(` Criteria directory already exists: ${DIM}deskcheck/criteria/${RESET}`);
167
+ }
168
+ if (!fs.existsSync(exampleCriterion)) {
169
+ fs.writeFileSync(exampleCriterion, EXAMPLE_CRITERION);
170
+ console.log(` Created ${DIM}deskcheck/criteria/example.md${RESET}`);
171
+ created = true;
157
172
  }
158
173
  if (!created) {
159
174
  console.log("Already initialized — nothing to do.");
175
+ return;
160
176
  }
177
+ console.log("");
178
+ console.log(`${BOLD} Next steps:${RESET}`);
179
+ console.log(`${DIM} 1. Edit deskcheck/criteria/example.md (or create your own criterion files)${RESET}`);
180
+ console.log(`${DIM} 2. Run: deskcheck diff main${RESET}`);
181
+ console.log(`${DIM} 3. View results: deskcheck serve${RESET}`);
182
+ console.log("");
183
+ console.log(`${DIM} Run ${BOLD}deskcheck init --explain${RESET}${DIM} to see all config options.${RESET}`);
161
184
  }
185
+ /** `deskcheck init --explain` — print a detailed reference of all config options. */
186
+ function explainConfig() {
187
+ console.log(`
188
+ ${BOLD}Deskcheck Configuration Reference${RESET}
189
+ ${DIM}Config file: .deskcheck/config.json${RESET}
190
+
191
+ ${BOLD}Top-level fields:${RESET}
192
+
193
+ ${GREEN}modules_dir${RESET} ${DIM}(string, default: "deskcheck/criteria")${RESET}
194
+ Directory containing criterion markdown files. Scanned recursively.
195
+
196
+ ${GREEN}storage_dir${RESET} ${DIM}(string, default: ".deskcheck/runs")${RESET}
197
+ Where run data (plan.json, results.json, agent logs) is stored.
198
+
199
+ ${GREEN}tests_dir${RESET} ${DIM}(string, default: "deskcheck/tests")${RESET}
200
+ Directory for criterion test fixtures (used by \`deskcheck test\`).
201
+
202
+ ${GREEN}serve_port${RESET} ${DIM}(number, default: 3000)${RESET}
203
+ Port for the web dashboard (\`deskcheck serve\`).
204
+
205
+ ${GREEN}concurrency${RESET} ${DIM}(number, default: 5)${RESET}
206
+ Max concurrent reviewer agents. CLI flag --concurrency overrides this.
207
+
208
+ ${GREEN}defaultModel${RESET} ${DIM}(string, default: "sonnet")${RESET}
209
+ Default Claude model for the pipeline. Used by:
210
+ - Criterion \`model\` when not specified in frontmatter
211
+ - Resolver agent (unless agents.resolver.model overrides)
212
+ - Partitioner agent (unless agents.partitioner.model overrides)
213
+ Values: "haiku", "sonnet", "opus"
214
+
215
+ ${BOLD}shared:${RESET} ${DIM}— configuration shared across all agent roles${RESET}
216
+
217
+ ${GREEN}shared.allowed_tools${RESET} ${DIM}(string[], default: ["Read", "Glob", "Grep"])${RESET}
218
+ Tools available to reviewer agents on top of built-ins.
219
+ Built-in tools (Read, Grep, Glob, Bash) are ALWAYS available
220
+ regardless of this setting. Add extras here like "WebFetch".
221
+
222
+ ${GREEN}shared.mcp_servers${RESET} ${DIM}(object, default: {})${RESET}
223
+ MCP servers available to all reviewer agents.
224
+ Each entry: { "name": { "command": "...", "args": [...], "env": {...} } }
225
+ ${YELLOW}Note: deskcheck never inherits MCP servers from your Claude Code
226
+ config. Only servers listed here (or per-role) are available.${RESET}
227
+
228
+ ${BOLD}agents:${RESET} ${DIM}— per-role agent configuration${RESET}
229
+
230
+ Each role has the same shape: { model?, additional_tools?, additional_mcp_servers? }
231
+
232
+ ${GREEN}agents.resolver${RESET} ${DIM}(default model: from defaultModel)${RESET}
233
+ The natural-language input resolver. Only used by \`deskcheck "<prompt>"\`.
234
+ Resolves the user's request into { scope, files }. Gets built-in tools only.
235
+ Set \`"model"\` to override defaultModel for this role only.
236
+
237
+ ${GREEN}agents.partitioner${RESET} ${DIM}(default model: from defaultModel)${RESET}
238
+ Splits matched files into subtasks per criterion. One agent per criterion.
239
+ Gets built-in tools only. additional_tools/additional_mcp_servers are ignored.
240
+ Set \`"model"\` to override defaultModel for this role only.
241
+
242
+ ${GREEN}agents.reviewer${RESET} ${DIM}(default model: per-criterion frontmatter, falls back to defaultModel)${RESET}
243
+ The reviewer agents. Model comes from the criterion's \`model:\` field.
244
+ If the criterion doesn't specify a model, \`defaultModel\` is used.
245
+ Use this to add tools/MCP servers to all reviewers:
246
+ "reviewer": {
247
+ "additional_tools": ["WebFetch"],
248
+ "additional_mcp_servers": {
249
+ "my-db": { "command": "npx", "args": ["@my/db-mcp"] }
250
+ }
251
+ }
252
+
253
+ ${GREEN}agents.evaluator${RESET} ${DIM}(default model: "haiku")${RESET}
254
+ Used by \`deskcheck test\` to run criteria against fixture files.
255
+
256
+ ${GREEN}agents.judge${RESET} ${DIM}(default model: "opus")${RESET}
257
+ Used by \`deskcheck test\` to score findings against expectations.
258
+
259
+ ${BOLD}Criterion frontmatter fields:${RESET}
260
+
261
+ ${GREEN}description${RESET} ${DIM}(required)${RESET} Human-readable description
262
+ ${GREEN}globs${RESET} ${DIM}(required)${RESET} File patterns to match. Prefix with ! to exclude.
263
+ ${GREEN}partition${RESET} ${DIM}(optional, default: "one task per matched file")${RESET}
264
+ Natural-language instruction for how to split files into subtasks.
265
+ Examples: "one task per file", "one public method per task",
266
+ "group each test with its source file"
267
+ ${GREEN}model${RESET} ${DIM}(optional, default: "haiku")${RESET}
268
+ Claude model for reviewer agents: haiku, sonnet, opus.
269
+ ${YELLOW}Use sonnet if the criterion has "What NOT to check" rules.${RESET}
270
+ ${GREEN}tools${RESET} ${DIM}(optional, default: [])${RESET}
271
+ Extra tools for reviewers running this criterion.
272
+ Layered on top of built-ins + shared + executor tools.
273
+
274
+ ${BOLD}Example config:${RESET}
275
+
276
+ {
277
+ "modules_dir": "deskcheck/criteria",
278
+ "storage_dir": ".deskcheck/runs",
279
+ "serve_port": 3000,
280
+ "concurrency": 5,
281
+ "defaultModel": "sonnet",
282
+ "shared": {
283
+ "allowed_tools": ["Read", "Glob", "Grep"],
284
+ "mcp_servers": {}
285
+ },
286
+ "agents": {
287
+ "resolver": {},
288
+ "partitioner": {},
289
+ "reviewer": {},
290
+ "evaluator": { "model": "haiku" },
291
+ "judge": { "model": "opus" }
292
+ }
293
+ }
294
+ `);
295
+ }
296
+ // =============================================================================
297
+ // Init templates
298
+ // =============================================================================
299
+ const ANNOTATED_CONFIG = `{
300
+ "modules_dir": "deskcheck/criteria",
301
+ "storage_dir": ".deskcheck/runs",
302
+ "tests_dir": "deskcheck/tests",
303
+ "serve_port": 3000,
304
+ "concurrency": 5,
305
+ "defaultModel": "sonnet",
306
+ "shared": {
307
+ "allowed_tools": ["Read", "Glob", "Grep"],
308
+ "mcp_servers": {}
309
+ },
310
+ "agents": {
311
+ "resolver": {},
312
+ "partitioner": {},
313
+ "reviewer": {},
314
+ "evaluator": { "model": "haiku" },
315
+ "judge": { "model": "opus" }
316
+ }
317
+ }
318
+ `;
319
+ const EXAMPLE_CRITERION = `---
320
+ description: Example criterion — checks for TODO/FIXME comments
321
+ globs:
322
+ - "src/**/*.ts"
323
+ - "src/**/*.js"
324
+ - "!src/**/*.test.*"
325
+ partition: one task per file
326
+ model: haiku
327
+ ---
328
+
329
+ Check the assigned files for TODO, FIXME, HACK, or XXX comments.
330
+ (This example uses haiku since it's a simple pattern match — no judgment needed.)
331
+
332
+ For each one found, report:
333
+ - severity: "info"
334
+ - description: what the comment says
335
+ - suggestion: null (these are just informational)
336
+
337
+ If no such comments exist, return an empty array.
338
+
339
+ This is a starter criterion to verify your setup works. Replace it with
340
+ criteria that match your project's review needs.
341
+ `;
162
342
  /** `deskcheck list` */
163
343
  function listCommand() {
164
344
  const projectRoot = resolveProjectRoot();
@@ -219,9 +399,14 @@ async function diffCommand(gitArgs, options) {
219
399
  const config = loadConfig(projectRoot);
220
400
  const storageDir = path.join(projectRoot, config.storage_dir);
221
401
  const storage = new ReviewStorageService(storageDir);
222
- // Get changed files via git diff
223
- // Insert --name-only right after "diff" so it comes before any -- path separators
224
- const gitDiffArgs = ["diff", "--name-only", ...gitArgs];
402
+ // Resolve the diff ref. The first positional (non-flag) arg becomes the ref;
403
+ // with no positional, default to HEAD. This is the same ref the reviewer
404
+ // will use later (`git diff <ref> -- <file>`), so file discovery and the
405
+ // reviewer's per-file diffs see the same baseline. Bare `deskcheck diff`
406
+ // therefore reviews working-tree-vs-HEAD = staged + unstaged combined.
407
+ const ref = gitArgs.find((a) => !a.startsWith("-")) ?? "HEAD";
408
+ const passthrough = gitArgs.filter((a) => a !== ref);
409
+ const gitDiffArgs = ["diff", "--name-only", ref, ...passthrough];
225
410
  let fileOutput;
226
411
  try {
227
412
  fileOutput = execFileSync("git", gitDiffArgs, {
@@ -242,17 +427,28 @@ async function diffCommand(gitArgs, options) {
242
427
  }
243
428
  // Discover modules and optionally filter by --criteria
244
429
  const modulesDir = path.resolve(projectRoot, config.modules_dir);
245
- let modules = discoverModules(modulesDir);
430
+ let modules = discoverModules(modulesDir, config.defaultModel);
246
431
  if (options.criteria) {
247
432
  const patterns = options.criteria.split(",").map((s) => s.trim()).filter((s) => s.length > 0);
248
433
  modules = filterModules(modules, patterns);
249
434
  }
250
- // Build a human-readable name from git args
251
- const diffTarget = gitArgs.filter((a) => !a.startsWith("--")).join(" ") || "working tree";
252
- const planName = `diff: ${diffTarget}`;
253
- const sourceTarget = gitArgs[0] ?? "HEAD";
254
- const source = { type: "diff", target: sourceTarget };
255
- const plan = buildPlanWithTasks(storage, planName, source, files, modules);
435
+ // Build a human-readable plan name and the structured scope.
436
+ const planName = `diff: ${ref}`;
437
+ const scope = { type: "changes", ref };
438
+ const invocation = captureInvocation(projectRoot);
439
+ const partitioner = new ReviewPartitionerService(config, projectRoot);
440
+ const plan = await buildPlanWithTasks(storage, partitioner, planName, scope, invocation, files, modules, {
441
+ onMatchingComplete: (criteriaCount, fileCount) => {
442
+ console.log(`${DIM} Matching: ${criteriaCount} criteria matched ${fileCount} file(s)${RESET}`);
443
+ if (criteriaCount > 0) {
444
+ console.log(`${DIM} Partitioning...${RESET}`);
445
+ }
446
+ },
447
+ onPartitionCompleted: (decision) => {
448
+ const name = decision.review_id.split("/").pop() ?? decision.review_id;
449
+ console.log(`${DIM} ${name}: ${decision.subtasks.length} subtask(s) from ${decision.matched_files.length} file(s)${RESET}`);
450
+ },
451
+ });
256
452
  printPlanSummary(plan);
257
453
  if (options.dryRun) {
258
454
  console.log(`${DIM} Dry run — plan created but not executed.${RESET}`);
@@ -263,32 +459,113 @@ async function diffCommand(gitArgs, options) {
263
459
  console.log(`${DIM} No criteria matched the changed files.${RESET}`);
264
460
  process.exit(0);
265
461
  }
266
- // Execute
462
+ // Execute. CLI --concurrency overrides config.concurrency.
463
+ const maxConcurrent = options.concurrency || config.concurrency;
267
464
  const orchestrator = new ReviewOrchestratorService(config, projectRoot);
268
- await executeAndPrint(orchestrator, plan.plan_id);
465
+ try {
466
+ await executeAndPrint(orchestrator, plan.plan_id, maxConcurrent);
467
+ }
468
+ catch (err) {
469
+ storage.setFailure(plan.plan_id, {
470
+ step: "reviewing",
471
+ review_id: null,
472
+ message: err instanceof Error ? err.message : String(err),
473
+ });
474
+ throw err;
475
+ }
269
476
  // Render results
270
477
  const finalPlan = storage.getPlan(plan.plan_id);
271
478
  const results = storage.getResults(plan.plan_id);
272
479
  console.log(renderOutput(results, finalPlan, options.format));
273
480
  process.exit(checkFailOn(results, options.failOn));
274
481
  }
275
- /** Default command — natural language deskcheck via LLM planner. */
482
+ /**
483
+ * Parse the `--scope` flag value into a structured Scope.
484
+ *
485
+ * Accepted forms:
486
+ * all → { type: "all" }
487
+ * changes → { type: "changes", ref: "HEAD" }
488
+ * changes:<ref> → { type: "changes", ref: "<ref>" }
489
+ */
490
+ function parseScopeFlag(value) {
491
+ const trimmed = value.trim();
492
+ if (trimmed === "all")
493
+ return { type: "all" };
494
+ if (trimmed === "changes")
495
+ return { type: "changes", ref: "HEAD" };
496
+ if (trimmed.startsWith("changes:")) {
497
+ const ref = trimmed.slice("changes:".length).trim();
498
+ if (!ref)
499
+ throw new Error(`--scope changes: requires a ref (e.g. changes:main)`);
500
+ return { type: "changes", ref };
501
+ }
502
+ throw new Error(`Invalid --scope value: "${value}". Expected "all", "changes", or "changes:<ref>".`);
503
+ }
504
+ /** Default command — natural-language deskcheck via the input resolver agent. */
276
505
  async function deskchecCommand(prompt, options) {
277
506
  const projectRoot = resolveProjectRoot();
278
507
  const config = loadConfig(projectRoot);
279
508
  const storageDir = path.join(projectRoot, config.storage_dir);
280
- console.log(`${DIM}Planning...${RESET}`);
509
+ const storage = new ReviewStorageService(storageDir);
510
+ const scopeOverride = options.scope ? parseScopeFlag(options.scope) : undefined;
281
511
  const criteriaFilter = options.criteria
282
512
  ? options.criteria.split(",").map((s) => s.trim()).filter((s) => s.length > 0)
283
513
  : undefined;
284
- const planner = new ReviewPlannerService(config, projectRoot);
285
- const plan = await planner.plan(prompt, criteriaFilter);
514
+ // Step 1: resolve { scope, files } from natural language.
515
+ console.log(`${DIM}Resolving...${RESET}`);
516
+ const resolver = new ReviewInputResolverService(config, projectRoot);
517
+ const { scope, files } = await resolver.resolve(prompt, scopeOverride);
518
+ // Step 2: discover and filter criteria (programmatic, no LLM).
519
+ const modulesDir = path.resolve(projectRoot, config.modules_dir);
520
+ let modules = discoverModules(modulesDir, config.defaultModel);
521
+ if (criteriaFilter) {
522
+ modules = filterModules(modules, criteriaFilter);
523
+ }
524
+ const invocation = captureInvocation(projectRoot);
525
+ // Empty file list → empty plan with a friendly message, exit clean.
526
+ if (files.length === 0) {
527
+ const emptyPlan = storage.createPlan(prompt, scope, invocation);
528
+ storage.setMatchedFiles(emptyPlan.plan_id, [], []);
529
+ storage.finalizePlan(emptyPlan.plan_id);
530
+ console.log("");
531
+ console.log(`${DIM} No files matched the request. Nothing to review.${RESET}`);
532
+ console.log(`${DIM} Plan ID: ${emptyPlan.plan_id}${RESET}`);
533
+ process.exit(0);
534
+ }
535
+ // Step 3: build the plan (glob match → partition → tasks).
536
+ const partitioner = new ReviewPartitionerService(config, projectRoot);
537
+ const plan = await buildPlanWithTasks(storage, partitioner, prompt, scope, invocation, files, modules, {
538
+ onMatchingComplete: (criteriaCount, fileCount) => {
539
+ console.log(`${DIM} Matching: ${criteriaCount} criteria matched ${fileCount} file(s)${RESET}`);
540
+ if (criteriaCount > 0) {
541
+ console.log(`${DIM} Partitioning...${RESET}`);
542
+ }
543
+ },
544
+ onPartitionCompleted: (decision) => {
545
+ const name = decision.review_id.split("/").pop() ?? decision.review_id;
546
+ console.log(`${DIM} ${name}: ${decision.subtasks.length} subtask(s) from ${decision.matched_files.length} file(s)${RESET}`);
547
+ },
548
+ });
286
549
  printPlanSummary(plan);
287
- // Execute
550
+ if (Object.keys(plan.tasks).length === 0) {
551
+ console.log(`${DIM} No criteria matched the resolved files.${RESET}`);
552
+ process.exit(0);
553
+ }
554
+ // Step 4: execute reviewers. If the orchestrator throws, mark the plan
555
+ // as failed at the reviewing step before re-raising.
288
556
  const orchestrator = new ReviewOrchestratorService(config, projectRoot);
289
- await executeAndPrint(orchestrator, plan.plan_id);
290
- // Render results
291
- const storage = new ReviewStorageService(storageDir);
557
+ try {
558
+ await executeAndPrint(orchestrator, plan.plan_id, config.concurrency);
559
+ }
560
+ catch (err) {
561
+ storage.setFailure(plan.plan_id, {
562
+ step: "reviewing",
563
+ review_id: null,
564
+ message: err instanceof Error ? err.message : String(err),
565
+ });
566
+ throw err;
567
+ }
568
+ // Step 5: render.
292
569
  const finalPlan = storage.getPlan(plan.plan_id);
293
570
  const results = storage.getResults(plan.plan_id);
294
571
  console.log(renderTerminal(results, finalPlan));
@@ -371,26 +648,48 @@ async function testCommand(criterionName, options) {
371
648
  console.log("");
372
649
  console.log(`${DIM} Discovered ${testCases.length} test case${testCases.length !== 1 ? "s" : ""} for ${uniqueCriteria.size} criteria${RESET}`);
373
650
  console.log("");
374
- // Run tests with progress callback
651
+ // Run tests with live progress
375
652
  const runner = new TestRunnerService(config, projectRoot);
376
653
  let completed = 0;
654
+ const testTimers = new Map();
377
655
  const run = await runner.run(testCases, storageDir, {
656
+ onTestStep: (criterionId, testName, step) => {
657
+ const key = `${criterionId}/${testName}`;
658
+ if (step === "executing") {
659
+ testTimers.set(key, Date.now());
660
+ process.stdout.write(`${DIM} ◐ ${key} ${RESET}${DIM}reviewing...${RESET}`);
661
+ }
662
+ else if (step === "judging") {
663
+ const startedAt = testTimers.get(key) ?? Date.now();
664
+ const reviewSec = ((Date.now() - startedAt) / 1000).toFixed(0);
665
+ // Clear the "reviewing..." line and show judging
666
+ process.stdout.write(`\r\x1b[K${DIM} ◐ ${key} ${RESET}${DIM}reviewed in ${reviewSec}s, judging...${RESET}`);
667
+ }
668
+ },
378
669
  onTestComplete: (criterionId, testName, result) => {
379
670
  completed++;
671
+ const key = `${criterionId}/${testName}`;
672
+ const startedAt = testTimers.get(key) ?? Date.now();
673
+ const totalSec = ((Date.now() - startedAt) / 1000).toFixed(0);
380
674
  const isComplete = result.status === "complete";
381
675
  const isError = result.status === "error";
676
+ // Clear the in-progress line
677
+ process.stdout.write(`\r\x1b[K`);
382
678
  if (isError) {
383
- console.log(`${RED} \u2717 ${criterionId}/${testName}${RESET} ${DIM}(error)${RESET}`);
679
+ console.log(`${RED} ${key}${RESET} ${DIM}(error, ${totalSec}s)${RESET}`);
384
680
  }
385
681
  else if (isComplete && result.scores) {
386
682
  const passing = result.scores.recall >= 0.8 && result.scores.precision >= 0.8 && result.scores.scope_compliance >= 0.8;
387
- const icon = passing ? `${GREEN}\u2713` : `${YELLOW}\u25B2`;
683
+ const icon = passing ? `${GREEN}✓` : `${YELLOW}▲`;
388
684
  const recall = Math.round(result.scores.recall * 100);
389
685
  const precision = Math.round(result.scores.precision * 100);
390
- console.log(`${icon} ${criterionId}/${testName}${RESET} ${DIM}(recall: ${recall}%, precision: ${precision}%)${RESET}`);
686
+ const costStr = result.executor_usage?.cost_usd != null
687
+ ? ` · $${(result.executor_usage.cost_usd + (result.judge_usage?.cost_usd ?? 0)).toFixed(3)}`
688
+ : "";
689
+ console.log(`${icon} ${key}${RESET} ${DIM}(recall: ${recall}%, precision: ${precision}% · ${totalSec}s${costStr})${RESET}`);
391
690
  }
392
691
  else {
393
- console.log(`${DIM} \u25CB ${criterionId}/${testName} (${result.status})${RESET}`);
692
+ console.log(`${DIM} ${key} (${result.status}, ${totalSec}s)${RESET}`);
394
693
  }
395
694
  },
396
695
  });
@@ -405,12 +704,13 @@ const program = new Command();
405
704
  program
406
705
  .name("deskcheck")
407
706
  .description("Modular code deskcheck tool powered by Claude")
408
- .version("0.1.0");
707
+ .version("0.4.2");
409
708
  // Default command: natural language deskcheck
410
709
  program
411
710
  .argument("[prompt]", "What to check (natural language)")
412
711
  .option("--fail-on <severities>", "Exit non-zero if findings match: critical, warning, info (comma-separated)")
413
712
  .option("--criteria <names>", "Only run specific criteria (comma-separated, e.g. dto-enforcement,controller-conventions)")
713
+ .option("--scope <value>", "Override resolver scope inference: 'all', 'changes', or 'changes:<ref>'")
414
714
  .action(async (prompt, options) => {
415
715
  if (!prompt) {
416
716
  program.help();
@@ -436,10 +736,9 @@ program
436
736
  .option("--criteria <names>", "Only run specific criteria (comma-separated, e.g. dto-enforcement,controller-conventions)")
437
737
  .addHelpText("after", `
438
738
  Examples:
739
+ deskcheck diff Check working tree vs HEAD (staged + unstaged)
439
740
  deskcheck diff develop Check changes vs develop branch
440
- deskcheck diff --staged Check staged changes
441
741
  deskcheck diff HEAD~3 Check last 3 commits
442
- deskcheck diff main -- app/ Check changes in app/ vs main
443
742
  deskcheck diff develop --dry-run Show plan without executing
444
743
  deskcheck diff develop --fail-on=critical Exit non-zero on critical findings
445
744
  deskcheck diff develop --criteria=dto-enforcement Only run one criterion
@@ -461,9 +760,15 @@ Examples:
461
760
  program
462
761
  .command("init")
463
762
  .description("Initialize deskcheck configuration and directories")
464
- .action(() => {
763
+ .option("--explain", "Print a detailed reference of all config and criterion options")
764
+ .action((options) => {
465
765
  try {
466
- initCommand();
766
+ if (options.explain) {
767
+ explainConfig();
768
+ }
769
+ else {
770
+ initCommand();
771
+ }
467
772
  }
468
773
  catch (error) {
469
774
  console.error(`Error: ${error instanceof Error ? error.message : String(error)}`);
package/build/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,iGAAiG;AACjG,eAAO,MAAM,cAAc,EAAE,YAe5B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAkClE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAyB5D"}
1
+ {"version":3,"file":"loader.d.ts","sourceRoot":"","sources":["../../src/config/loader.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,iGAAiG;AACjG,eAAO,MAAM,cAAc,EAAE,YAkB5B,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAkClE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,YAAY,CAyB5D"}