@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
@@ -1,23 +1,44 @@
1
- import type { AgentModel, ModuleSeverity } from "./criteria.js";
1
+ import type { AgentModel } from "./criteria.js";
2
2
  /** Severity level assigned to an individual finding. */
3
3
  export type FindingSeverity = "critical" | "warning" | "info";
4
- /** How the source content is provided to executors. */
5
- export type ContextType = "diff" | "file" | "symbol";
6
4
  /** Lifecycle status of a deskcheck plan. */
7
- export type PlanStatus = "planning" | "ready" | "executing" | "complete";
5
+ export type PlanStatus = "planning" | "ready" | "executing" | "complete" | "failed";
8
6
  /** Lifecycle status of an individual deskcheck task. */
9
7
  export type TaskStatus = "pending" | "in_progress" | "complete" | "error";
10
8
  /** Whether results cover all tasks or only a subset. */
11
9
  export type ResultsStatus = "partial" | "complete";
12
- /** What is being reviewed — a diff, file, or symbol. */
13
- export interface ReviewSource {
14
- /** The kind of content being reviewed. */
15
- type: ContextType;
16
- /** Target identifier: branch name (diff), file path (file), or symbol name (symbol). */
17
- target: string;
18
- /** Only for symbol mode — the file containing the symbol. */
19
- file?: string;
10
+ /**
11
+ * Pipeline step the plan is currently in. Distinct from `PlanStatus` because
12
+ * `planning` covers both matching and partitioning, which the UI needs to
13
+ * distinguish. Updated by the plan-builder as it progresses.
14
+ */
15
+ export type PipelineStep = "matching" | "partitioning" | "reviewing" | "complete" | "failed";
16
+ /**
17
+ * If a run failed, what failed and where. Persisted on the plan so the UI
18
+ * can render which step turned red and which criterion (if any) was the
19
+ * culprit.
20
+ */
21
+ export interface PlanFailure {
22
+ /** Which step the run was in when it failed. */
23
+ step: PipelineStep;
24
+ /** Criterion id, if the failure was scoped to one (e.g. partitioner crash). Null for run-wide failures. */
25
+ review_id: string | null;
26
+ /** Human-readable error message. */
27
+ message: string;
20
28
  }
29
+ /**
30
+ * What the reviewer should look at, resolved at invocation time.
31
+ *
32
+ * - `all` — review the assigned files in their entirety.
33
+ * - `changes` — review only what changed against the given git ref. The reviewer
34
+ * produces its own context by running `git diff <ref> -- <file>`.
35
+ */
36
+ export type Scope = {
37
+ type: "all";
38
+ } | {
39
+ type: "changes";
40
+ ref: string;
41
+ };
21
42
  /** A single review task assigned to an executor agent. */
22
43
  export interface ReviewTask {
23
44
  /** Unique task identifier, e.g. "architecture--dto-enforcement-001". */
@@ -28,10 +49,24 @@ export interface ReviewTask {
28
49
  review_file: string;
29
50
  /** Files assigned to this task. */
30
51
  files: string[];
31
- /** Optional planner hint describing scope or focus area. */
52
+ /** Scope for this task copied from the plan. */
53
+ scope: Scope;
54
+ /**
55
+ * Optional sub-file narrowing set by the partitioner — e.g. a method name
56
+ * when one criterion is partitioned "one method per task". The reviewer
57
+ * still gets the full files list, but only reports issues within `focus`.
58
+ */
59
+ focus: string | null;
60
+ /** Optional partitioner hint explaining why these files were grouped. */
32
61
  hint: string | null;
33
62
  /** Claude model tier for the executor agent. */
34
63
  model: AgentModel;
64
+ /**
65
+ * Extra tool names this reviewer should have access to, copied from the
66
+ * criterion's frontmatter at addTask time. Layered on top of the built-in
67
+ * reviewer tools and config-level tools by ExecutorService.
68
+ */
69
+ tools: string[];
35
70
  /** Current lifecycle status. */
36
71
  status: TaskStatus;
37
72
  /** ISO 8601 timestamp when this task was created. */
@@ -40,12 +75,11 @@ export interface ReviewTask {
40
75
  started_at: string | null;
41
76
  /** ISO 8601 timestamp when execution completed. */
42
77
  completed_at: string | null;
43
- /** How context was provided to the executor (diff, file content, or symbol). */
44
- context_type: ContextType;
45
- /** The actual context content (pruneable after completion). */
46
- context: string | null;
47
- /** Only for symbol mode — the symbol being reviewed. */
48
- symbol: string | null;
78
+ /**
79
+ * Error message if `status === "error"`. Null otherwise. Persisted so the
80
+ * UI can show what went wrong on a per-subtask basis after the run.
81
+ */
82
+ error: string | null;
49
83
  /** The detective prompt from the criterion (pruneable after completion). */
50
84
  prompt: string | null;
51
85
  }
@@ -55,25 +89,46 @@ export interface ModuleSummary {
55
89
  review_id: string;
56
90
  /** Human-readable description from frontmatter. */
57
91
  description: string;
58
- /** Criterion severity level. */
59
- severity: ModuleSeverity;
60
92
  /** Claude model tier from frontmatter. */
61
93
  model: AgentModel;
94
+ /** Natural-language partition instruction from frontmatter, copied here so the UI can display it without re-reading the criterion file. */
95
+ partition: string;
62
96
  /** Number of tasks created for this criterion. */
63
97
  task_count: number;
64
98
  /** Files that matched this module's globs. */
65
99
  matched_files: string[];
66
100
  }
101
+ /**
102
+ * How the user invoked deskcheck for this run. Persisted on the plan so
103
+ * runs are reproducible from inspection alone.
104
+ */
105
+ export interface PlanInvocation {
106
+ /** The argv[0]-equivalent program name (always "deskcheck"). */
107
+ command: string;
108
+ /** The remaining argv passed to deskcheck (subcommand + flags + positionals). */
109
+ args: string[];
110
+ /** Working directory at invocation time. */
111
+ cwd: string;
112
+ }
67
113
  /** The complete deskcheck plan written to plan.json. */
68
114
  export interface ReviewPlan {
69
115
  /** Unique plan identifier, e.g. "2026-03-19_143022". */
70
116
  plan_id: string;
71
117
  /** Human-readable name, e.g. "feature/order-rework vs develop". */
72
118
  name: string;
73
- /** What is being reviewed. */
74
- source: ReviewSource;
119
+ /** How the user invoked deskcheck for this run. */
120
+ invocation: PlanInvocation;
121
+ /** What the reviewers should look at. */
122
+ scope: Scope;
75
123
  /** Current lifecycle status. */
76
124
  status: PlanStatus;
125
+ /**
126
+ * Pipeline step the plan-builder/orchestrator are currently in. More
127
+ * granular than `status` because `planning` covers matching+partitioning.
128
+ */
129
+ step: PipelineStep;
130
+ /** If the run failed, what went wrong. Null on success and in-progress runs. */
131
+ failure: PlanFailure | null;
77
132
  /** ISO 8601 timestamp when the plan was created. */
78
133
  created_at: string;
79
134
  /** ISO 8601 timestamp when planning was finalized. */
@@ -90,6 +145,41 @@ export interface ReviewPlan {
90
145
  tasks: Record<string, ReviewTask>;
91
146
  /** Per-module summaries keyed by review_id. */
92
147
  modules: Record<string, ModuleSummary>;
148
+ /** Partitioner output per criterion, keyed by review_id. */
149
+ partition_decisions: Record<string, PartitionDecision>;
150
+ }
151
+ /**
152
+ * Output of one partitioner agent run for one criterion.
153
+ *
154
+ * Captures the partitioner's overall reasoning and a snapshot of the
155
+ * subtasks it produced, so a stored plan is fully inspectable. The actual
156
+ * tasks live in `ReviewPlan.tasks`; this is the audit trail of how they
157
+ * came to be.
158
+ */
159
+ export interface PartitionDecision {
160
+ /** The criterion this decision applies to. */
161
+ review_id: string;
162
+ /** Files the partitioner was given (the glob match output). */
163
+ matched_files: string[];
164
+ /** The partitioner agent's overall reasoning for the grouping. */
165
+ reasoning: string;
166
+ /** The subtasks the partitioner emitted (also reflected in plan.tasks). */
167
+ subtasks: PartitionedSubtask[];
168
+ /** ISO 8601 timestamp when this partition completed. */
169
+ completed_at: string;
170
+ /** Claude model tier used for the partitioner agent. */
171
+ model: AgentModel;
172
+ /** Token usage and timing for the partitioner agent run. */
173
+ usage: TaskUsage | null;
174
+ }
175
+ /** A subtask emitted by the partitioner for a single criterion. */
176
+ export interface PartitionedSubtask {
177
+ /** Files assigned to this subtask. May overlap with other subtasks if `focus` differs. */
178
+ files: string[];
179
+ /** Sub-file narrowing — e.g. a method name when partitioning "one method per task". */
180
+ focus: string | null;
181
+ /** Short explanation of why these files were grouped together. */
182
+ hint: string | null;
93
183
  }
94
184
  /** Token usage and timing data from an executor agent run. */
95
185
  export interface TaskUsage {
@@ -120,9 +210,16 @@ export interface Reference {
120
210
  file: string;
121
211
  /** Semantic symbol anchor, e.g. "ClassName::method". Stable across refactors. */
122
212
  symbol: string | null;
123
- /** Line number for navigation, not the primary identifier. */
124
- line: number | null;
125
- /** The current code at this location (for self-contained review). */
213
+ /** Start line of the flagged range (inclusive). */
214
+ startLine: number;
215
+ /** End line of the flagged range (inclusive). */
216
+ endLine: number;
217
+ /** How many lines of surrounding context to include in the code snippet. */
218
+ contextLines: number;
219
+ /**
220
+ * The actual code at this location, extracted from disk by post-processing.
221
+ * Null at parse time — populated by CodeSnippetService before writing results.
222
+ */
126
223
  code: string | null;
127
224
  /** Suggested replacement code (optional fix). */
128
225
  suggestedCode: string | null;
@@ -183,8 +280,6 @@ export interface ModuleIssues {
183
280
  review_id: string;
184
281
  /** Human-readable description. */
185
282
  description: string;
186
- /** Criterion severity level. */
187
- severity: ModuleSeverity;
188
283
  /** Total number of tasks for this criterion. */
189
284
  task_count: number;
190
285
  /** Number of completed tasks. */
@@ -1 +1 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/types/review.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/types/review.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prowi/deskcheck",
3
- "version": "0.3.0",
3
+ "version": "0.4.2",
4
4
  "description": "Modular code review tool powered by Claude Agent SDK — define review criteria as markdown, run them against your codebase, get structured findings with a web dashboard.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -23,6 +23,7 @@
23
23
  "dev": "tsc --watch",
24
24
  "test": "vitest run",
25
25
  "test:watch": "vitest",
26
+ "seed": "tsx scripts/seed-fixtures.ts",
26
27
  "prepublishOnly": "npm run build && cd ui && npm ci && npx vite build"
27
28
  },
28
29
  "dependencies": {
@@ -35,6 +36,7 @@
35
36
  },
36
37
  "devDependencies": {
37
38
  "@types/node": "^22.0.0",
39
+ "tsx": "^4.21.0",
38
40
  "typescript": "^5.8.0",
39
41
  "vitest": "^3.0.0"
40
42
  }