millhouse 0.3.9 → 1.0.1

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 (71) hide show
  1. package/README.md +88 -161
  2. package/dist/analysis/issue-analyzer.d.ts +6 -1
  3. package/dist/analysis/issue-analyzer.d.ts.map +1 -1
  4. package/dist/analysis/issue-analyzer.js +45 -13
  5. package/dist/analysis/issue-analyzer.js.map +1 -1
  6. package/dist/analysis/plan-parser.d.ts +7 -1
  7. package/dist/analysis/plan-parser.d.ts.map +1 -1
  8. package/dist/analysis/plan-parser.js +81 -22
  9. package/dist/analysis/plan-parser.js.map +1 -1
  10. package/dist/cli/cleanup.d.ts +1 -1
  11. package/dist/cli/cleanup.d.ts.map +1 -1
  12. package/dist/cli/cleanup.js +24 -28
  13. package/dist/cli/cleanup.js.map +1 -1
  14. package/dist/cli/commands/init.d.ts +6 -0
  15. package/dist/cli/commands/init.d.ts.map +1 -0
  16. package/dist/cli/commands/init.js +156 -0
  17. package/dist/cli/commands/init.js.map +1 -0
  18. package/dist/cli/commands/list.d.ts +6 -0
  19. package/dist/cli/commands/list.d.ts.map +1 -0
  20. package/dist/cli/commands/list.js +111 -0
  21. package/dist/cli/commands/list.js.map +1 -0
  22. package/dist/cli/commands/load.d.ts +2 -0
  23. package/dist/cli/commands/load.d.ts.map +1 -0
  24. package/dist/cli/commands/load.js +111 -0
  25. package/dist/cli/commands/load.js.map +1 -0
  26. package/dist/cli/commands/resume.d.ts.map +1 -1
  27. package/dist/cli/commands/resume.js +5 -28
  28. package/dist/cli/commands/resume.js.map +1 -1
  29. package/dist/cli/commands/run.d.ts +2 -3
  30. package/dist/cli/commands/run.d.ts.map +1 -1
  31. package/dist/cli/commands/run.js +44 -237
  32. package/dist/cli/commands/run.js.map +1 -1
  33. package/dist/cli/commands/save.d.ts +2 -0
  34. package/dist/cli/commands/save.d.ts.map +1 -0
  35. package/dist/cli/commands/save.js +220 -0
  36. package/dist/cli/commands/save.js.map +1 -0
  37. package/dist/cli/commands/setup.js +3 -3
  38. package/dist/cli/progress-display.d.ts +7 -14
  39. package/dist/cli/progress-display.d.ts.map +1 -1
  40. package/dist/cli/progress-display.js +94 -102
  41. package/dist/cli/progress-display.js.map +1 -1
  42. package/dist/core/orchestrator.d.ts +11 -12
  43. package/dist/core/orchestrator.d.ts.map +1 -1
  44. package/dist/core/orchestrator.js +150 -113
  45. package/dist/core/orchestrator.js.map +1 -1
  46. package/dist/core/scheduler.d.ts +6 -1
  47. package/dist/core/scheduler.d.ts.map +1 -1
  48. package/dist/core/scheduler.js +48 -9
  49. package/dist/core/scheduler.js.map +1 -1
  50. package/dist/execution/claude-runner.d.ts +2 -2
  51. package/dist/execution/claude-runner.d.ts.map +1 -1
  52. package/dist/execution/claude-runner.js +1 -1
  53. package/dist/execution/claude-runner.js.map +1 -1
  54. package/dist/index.js +30 -29
  55. package/dist/index.js.map +1 -1
  56. package/dist/storage/json-store.d.ts +1 -0
  57. package/dist/storage/json-store.d.ts.map +1 -1
  58. package/dist/storage/json-store.js +36 -0
  59. package/dist/storage/json-store.js.map +1 -1
  60. package/dist/storage/worklist-store.d.ts +19 -0
  61. package/dist/storage/worklist-store.d.ts.map +1 -0
  62. package/dist/storage/worklist-store.js +131 -0
  63. package/dist/storage/worklist-store.js.map +1 -0
  64. package/dist/types.d.ts +38 -70
  65. package/dist/types.d.ts.map +1 -1
  66. package/dist/types.js +3 -24
  67. package/dist/types.js.map +1 -1
  68. package/package.json +3 -5
  69. package/prompts/issue-analysis.prompt.md +56 -22
  70. package/prompts/plan-analysis.prompt.md +48 -10
  71. package/commands/millhouse.md +0 -223
package/README.md CHANGED
@@ -5,97 +5,108 @@
5
5
  <p align="right"><sub><a href="https://www.reddit.com/r/simpsonsshitposting/s/ZB5cDcwnqU">Unedited artwork</a> by <a href="https://www.shlives.net/">shlives</a></sub></p>
6
6
  </div>
7
7
 
8
- Millhouse orchestrates parallel Claude Code instances to automatically implement work items. It supports two modes:
8
+ Millhouse orchestrates Claude instances to implement large plans with hundreds of
9
+ separate work items.
9
10
 
10
- - **GitHub Mode:** Point it at GitHub issues and it discovers related issues, analyzes dependencies, executes and creates a PR with all changes.
11
- - **Plan Mode:** Give it any plan file (markdown, text) and it breaks it into work items automatically, analyzes dependencies and executes.
11
+ It analyzes your plan, automatically works out the dependencies, and runs as much
12
+ as possible in parallel. Each item runs in an isolated git worktree, and in a fresh
13
+ Claude context.
12
14
 
13
- In both modes, Millhouse executes work items in parallel where possible, respecting dependency order.
15
+ This is intended for unattended operation - leave Millhouse running overnight!
14
16
 
15
17
  ## Quick Start
16
18
 
17
- ### Plan Mode
19
+ **1. Create a worklist**:
18
20
 
19
- In Claude Code:
20
- ```
21
- /millhouse plan # Refine your plan for millhouse
22
- ```
23
- ... then exit Claude Code and run at the command line:
24
21
  ```bash
25
- millhouse run # Execute the most recent plan
22
+ millhouse init
26
23
  ```
27
24
 
28
- ### GitHub Issues Mode
25
+ Analyzes the latest Claude plan and creates a worklist (`.millhouse/worklist.json`)
26
+
27
+ **2. Run it:**
29
28
 
30
- In Claude Code:
31
- ```
32
- /millhouse plan # Refine your plan for millhouse
33
- /millhouse issues # Create GitHub issues from your plan
34
- ```
35
- ... then exit Claude Code and run at the command line:
36
29
  ```bash
37
- millhouse run issues # Run all open GitHub issues
38
- millhouse run issues 5 # Run issue #5 and linked issues
30
+ millhouse run [--dangerously-skip-permissions]
39
31
  ```
40
32
 
33
+ That's it. Millhouse builds a dependency graph, runs items in parallel where possible,
34
+ and merges everything back when done.
35
+
41
36
  ## Installation
42
37
 
43
38
  ```bash
44
39
  npm install -g millhouse
45
40
  ```
46
41
 
47
- Then install the `/millhouse` slash command for Claude Code:
42
+ ## Commands
43
+
44
+ ### millhouse init
45
+
46
+ Create a worklist from a Claude Code plan - Millhouse finds the most recent plan
47
+ for the current project.
48
48
 
49
49
  ```bash
50
- millhouse setup --global
50
+ millhouse init
51
51
  ```
52
52
 
53
- ## Slash Commands
54
-
55
- ### /millhouse plan
53
+ ### millhouse list
56
54
 
57
- Refines a rough plan into a millhouse-ready format. Use this before running `/millhouse issues` or `millhouse run`.
55
+ Show items in the current worklist.
58
56
 
57
+ ```bash
58
+ millhouse list [--verbose]
59
59
  ```
60
- /millhouse plan # Refine the current plan
61
- /millhouse plan plan.md # Refine an existing plan file
60
+
61
+ Displays items grouped by status (ready, blocked, completed, failed) with dependency information.
62
+
63
+ ### millhouse run
64
+
65
+ Execute pending worklist items with parallel workers.
66
+
67
+ ```bash
68
+ millhouse run # Run all pending items
69
+ -n 16 # Use 16 parallel workers (default: 8)
70
+ --dry-run # Preview without executing
71
+ --dangerously-skip-permissions # Pass to claude tool for reliable unattended execution
62
72
  ```
63
73
 
64
- This transforms your plan to have:
65
- - **Clearly separated work items** - each runs in a separate context
66
- - **Appropriately-sized tasks** - small enough to complete unattended
67
- - **Self-contained descriptions** - all context included, nothing assumed
68
- - **Acceptance criteria** - how to verify each task is complete
69
- - **Testing instructions** - specific commands and expected results
70
- - **Explicit dependencies** - what must complete before each task
74
+ Note: Use `--dangerously-skip-permissions` with care!
71
75
 
72
- ### /millhouse issues
76
+ ### millhouse save
73
77
 
74
- Creates GitHub issues from a plan. Remember to first run `/millhouse plan` to get the plan optimized for running with millhouse.
78
+ Create GitHub issues from the worklist.
75
79
 
80
+ ```bash
81
+ millhouse save
76
82
  ```
77
- /millhouse issues # Create issues from the current plan
78
- /millhouse issues plan.md # Create issues from a plan file
83
+
84
+ Creates issues in dependency order, updates the worklist with issue numbers, and creates an index issue linking all items.
85
+
86
+ ### millhouse load
87
+
88
+ Load GitHub issues into the worklist.
89
+
90
+ ```bash
91
+ millhouse load # Load all open issues
92
+ millhouse load 5 # Load issue #5 and linked issues
93
+ millhouse load 5,6,7 # Load issues 5, 6, 7 and all linked issues
79
94
  ```
80
95
 
81
- ## How It Works
96
+ Uses Claude to analyze dependencies and expand sparse issues with testing instructions and acceptance criteria.
82
97
 
83
- ### Project Scanning
98
+ ### Other Commands
84
99
 
85
- Before workers start, Millhouse scans your project with Claude to generate a comprehensive summary including:
86
- - Project structure and architecture
87
- - Key files and what they do
88
- - Coding conventions and patterns
89
- - Build system and dependencies
100
+ ```bash
101
+ millhouse status # Show all runs
102
+ millhouse clean # Clean up leftover state
103
+ ```
90
104
 
91
- This summary is passed to each worker, giving them essential context even if your project lacks documentation. Use `--no-scan` to skip this step for projects with comprehensive docs.
105
+ ## How It Works
92
106
 
93
107
  ### Dependency Analysis
94
108
 
95
- When you run millhouse, it sends your work items to Claude to analyze dependencies. It understands:
96
- - Explicit markers: "Depends on #1", "Blocked by #2", "After #3"
97
- - Logical dependencies: If task B imports from a file that task A creates
98
- - Semantic relationships: Claude infers dependencies automatically
109
+ Claude analyzes semantic relationships between plan items to determine dependencies.
99
110
 
100
111
  ### Parallel Execution
101
112
 
@@ -108,91 +119,38 @@ Work items are organized into a dependency graph. The scheduler:
108
119
 
109
120
  Each work item runs in complete isolation:
110
121
  - Creates a branch: `millhouse/run-{runId}-issue-{N}`
111
- - Creates a git worktree in `.millhouse/worktrees/run-{runId}-issue-{N}`
122
+ - Creates a git worktree in `.millhouse/worktrees/`
112
123
  - Claude Code runs in that worktree with full autonomy
113
- - Changes are committed to the item's branch
114
124
  - On completion, branches are merged back to the run branch
125
+ - Run branch is merged into your current branch when done
115
126
 
116
- ### GitHub Mode vs Plan Mode
127
+ ### Working Directory Requirements
117
128
 
118
- | | GitHub Mode | Plan Mode |
119
- |---|--------------------------------------------|---------------------------------|
120
- | Input | GitHub issues | Any text/markdown file |
121
- | Setup | `/millhouse plan` then `/millhouse issues` | `/millhouse plan` |
122
- | Run | `millhouse run issues [id]` | `millhouse run [file.md]` |
123
- | Output | Pull request | Changes on local branch |
124
- | Labels | Auto-managed | N/A |
129
+ Before starting a run, Millhouse checks that your working directory is clean to prevent merge conflicts:
125
130
 
126
- ## CLI Reference
131
+ - **Gitignored files are allowed** - `.millhouse/` is automatically added to `.gitignore` on first use
132
+ - **CLAUDE.md auto-commit** - If `CLAUDE.md` is the only untracked file, it's automatically committed
133
+ - **Other changes must be committed** - Any other uncommitted changes or untracked files will block the run
127
134
 
128
- ### Running
135
+ This ensures the final merge back to your branch won't fail due to conflicts with local changes.
129
136
 
130
- ```bash
131
- # Plan mode (default)
132
- millhouse run # Run most recent plan from ~/.claude/plans/
133
- millhouse run plan.md # Run a specific plan file
134
-
135
- # GitHub issues mode (always discovers linked issues)
136
- millhouse run issues # Run all open issues
137
- millhouse run issues 5 # Run issue #5 and linked issues
138
- millhouse run issues 1,2,3 # Run these issues and linked issues
139
-
140
- # Options (work with both modes)
141
- --dry-run # Preview without executing
142
- --no-scan # Skip project scanning (see below)
143
- -n 16 # Set parallel workers (default: 8)
144
- -d detailed # Start in detailed view (default: compact)
145
- --dangerously-skip-permissions # Unattended execution
146
- ```
137
+ ## Creating Plans
147
138
 
148
- ### Other Commands
139
+ Plans are created interactively using Claude Code's plan mode:
149
140
 
150
141
  ```bash
151
- millhouse status # Show all runs
152
- millhouse status --run-id X # Show specific run
153
- millhouse resume <run-id> # Resume interrupted run
154
- millhouse clean # Clean up leftover state
155
- ```
156
-
157
- ## Writing Good Plans
158
-
159
- For best results, use `/millhouse plan` to refine your plan. Or write plans that include:
160
-
161
- **Clear task separation:**
162
- ```markdown
163
- ## 1. Create Math Utilities
164
- Create `src/math.ts` with add, subtract, multiply, divide functions.
165
-
166
- ## 2. Create Calculator Class
167
- Create `src/calculator.ts` that uses the math utilities.
168
- **Depends on task 1.**
169
- ```
170
-
171
- **Specific implementation details:**
172
- ```markdown
173
- Create `src/math.ts` with:
174
- - `add(a: number, b: number): number`
175
- - `subtract(a: number, b: number): number`
142
+ claude
143
+ > /plan Add user authentication with JWT
176
144
  ```
177
145
 
178
- **Testing instructions:**
179
- ```markdown
180
- ## Testing
181
- Run `npm test` - all tests should pass.
182
- Run `npm run build` - should compile without errors.
183
- ```
184
-
185
- **Acceptance criteria:**
186
- ```markdown
187
- ## Acceptance Criteria
188
- - [ ] All four math functions exported
189
- - [ ] Tests cover edge cases (division by zero)
190
- - [ ] TypeScript compiles with strict mode
191
- ```
146
+ Claude will create a structured plan with numbered tasks and dependencies. The plan is saved to `~/.claude/plans/` and can then be loaded with `millhouse init`.
192
147
 
193
- ### Development Install
148
+ For best results, when discussing your plan with Claude:
149
+ - Be specific about implementation details
150
+ - Mention testing requirements
151
+ - Clarify dependencies between tasks
194
152
 
195
- If you want to contribute or modify millhouse:
153
+ ## Development Install
196
154
 
197
155
  ```bash
198
156
  git clone https://github.com/dave/millhouse.git
@@ -206,47 +164,16 @@ npm link
206
164
 
207
165
  - Node.js 20+
208
166
  - Claude Code installed and authenticated
209
- - GitHub CLI (`gh`) authenticated (GitHub mode only)
210
-
211
- ## Configuration
212
-
213
- Create `.millhouserc.json` in your project root:
214
-
215
- ```json
216
- {
217
- "execution": {
218
- "concurrency": 8,
219
- "baseBranch": "main",
220
- "continueOnError": true
221
- },
222
- "pullRequests": {
223
- "createAsDraft": true,
224
- "mergeStrategy": "squash"
225
- }
226
- }
227
- ```
228
-
229
- | Option | Description | Default |
230
- |---|---|---|
231
- | `concurrency` | Max parallel Claude instances | 8 |
232
- | `baseBranch` | Branch to base work on | main |
233
- | `continueOnError` | Keep going if one item fails | true |
234
- | `createAsDraft` | Create PR as draft | true |
235
- | `mergeStrategy` | PR merge strategy | squash |
236
-
237
- ## GitHub Labels (GitHub Mode Only)
167
+ - GitHub CLI (`gh`) authenticated (for GitHub commands)
238
168
 
239
- Millhouse automatically manages labels to show progress:
169
+ ## Troubleshooting
240
170
 
241
- | Label | Meaning |
242
- |---|---|
243
- | `millhouse:queued` | Waiting in queue |
244
- | `millhouse:in-progress` | Claude is actively working |
245
- | `millhouse:blocked` | Waiting for dependency |
246
- | `millhouse:failed` | Execution failed |
247
- | `millhouse:done` | Completed successfully |
171
+ **"Working directory is not clean" error?**
248
172
 
249
- ## Troubleshooting
173
+ Millhouse requires a clean git state before runs. Options:
174
+ - Commit your changes: `git add -A && git commit -m "WIP"`
175
+ - Stash your changes: `git stash`
176
+ - If only `CLAUDE.md` is untracked, it will be auto-committed
250
177
 
251
178
  **Worktree errors after interrupted run?**
252
179
  ```bash
@@ -254,7 +181,7 @@ millhouse clean
254
181
  ```
255
182
 
256
183
  **To see what Claude is doing:**
257
- The CLI shows real-time activity for each work item. Use `-d detailed` to start in detailed view, or press `v` to toggle during execution.
184
+ Use `-d detailed` to start in detailed view, or press `v` to toggle during execution.
258
185
 
259
186
  ## License
260
187
 
@@ -1,9 +1,14 @@
1
1
  import type { GitHubIssue, AnalyzedIssue } from '../types.js';
2
+ export interface IssueAnalysisResult {
3
+ title: string;
4
+ description: string;
5
+ issues: AnalyzedIssue[];
6
+ }
2
7
  export declare class IssueAnalyzer {
3
8
  /**
4
9
  * Analyze all issues in a single Claude call to determine dependencies.
5
10
  */
6
- analyzeIssues(issues: GitHubIssue[]): Promise<AnalyzedIssue[]>;
11
+ analyzeIssues(issues: GitHubIssue[]): Promise<IssueAnalysisResult>;
7
12
  /**
8
13
  * Fallback to pattern matching if Claude analysis fails.
9
14
  */
@@ -1 +1 @@
1
- {"version":3,"file":"issue-analyzer.d.ts","sourceRoot":"","sources":["../../src/analysis/issue-analyzer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG9D,qBAAa,aAAa;IACxB;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAuGpE;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAmBxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAa7B"}
1
+ {"version":3,"file":"issue-analyzer.d.ts","sourceRoot":"","sources":["../../src/analysis/issue-analyzer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG9D,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,aAAa,EAAE,CAAC;CACzB;AAED,qBAAa,aAAa;IACxB;;OAEG;IACG,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAyIxE;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAyBxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8B3B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAa7B"}
@@ -6,19 +6,24 @@ export class IssueAnalyzer {
6
6
  * Analyze all issues in a single Claude call to determine dependencies.
7
7
  */
8
8
  async analyzeIssues(issues) {
9
- if (issues.length === 0)
10
- return [];
9
+ if (issues.length === 0) {
10
+ return { title: 'No Issues', description: 'No issues to analyze.', issues: [] };
11
+ }
11
12
  const allIssueNumbers = issues.map(i => i.number);
12
13
  // Build the issues list for the prompt
13
14
  const issuesList = issues.map(issue => `### Issue #${issue.number}: ${issue.title}\n${issue.body || '(No description)'}`).join('\n\n');
14
15
  const template = await loadTemplate('issue-analysis.prompt.md');
15
16
  const prompt = template.replace('{{issuesList}}', issuesList);
16
- console.log(chalk.gray(` Analyzing ${issues.length} issues...`));
17
+ const startTime = Date.now();
18
+ console.log(chalk.blue('\nAnalyzing issues with Claude...\n'));
17
19
  try {
18
20
  const iterator = query({
19
21
  prompt,
20
22
  options: {
21
- maxTurns: 10,
23
+ cwd: process.cwd(),
24
+ maxTurns: 20,
25
+ // Allow read-only tools for exploring the codebase
26
+ allowedTools: ['Read', 'Glob', 'Grep', 'Bash(git log*)', 'Bash(git show*)', 'Bash(ls*)'],
22
27
  },
23
28
  });
24
29
  let responseText = '';
@@ -55,33 +60,55 @@ export class IssueAnalyzer {
55
60
  }
56
61
  }
57
62
  }
58
- // Parse JSON array from response
59
- const jsonMatch = responseText.match(/\[[\s\S]*\]/);
60
- if (!jsonMatch) {
61
- throw new Error('No JSON array found in response');
63
+ // Parse JSON from response - try object format first, then array
64
+ let parsedObj;
65
+ // Try to find JSON object first (new format)
66
+ const objMatch = responseText.match(/\{[\s\S]*"issues"[\s\S]*\}/);
67
+ if (objMatch) {
68
+ parsedObj = JSON.parse(objMatch[0]);
62
69
  }
63
- const parsed = JSON.parse(jsonMatch[0]);
70
+ else {
71
+ // Fall back to array format (legacy)
72
+ const jsonMatch = responseText.match(/\[[\s\S]*\]/);
73
+ if (!jsonMatch) {
74
+ throw new Error('No JSON found in response');
75
+ }
76
+ parsedObj = {
77
+ title: 'GitHub Issues',
78
+ description: 'Issues loaded from GitHub.',
79
+ issues: JSON.parse(jsonMatch[0]),
80
+ };
81
+ }
82
+ const elapsed = Math.floor((Date.now() - startTime) / 1000);
83
+ console.log(chalk.green(`\n✓ Issues analyzed (${elapsed}s)\n`));
64
84
  // Create a map for quick lookup
65
- const analysisMap = new Map(parsed.map(p => [p.issueNumber, p]));
85
+ const analysisMap = new Map(parsedObj.issues.map(p => [p.issueNumber, p]));
66
86
  // Build analyzed issues
67
87
  const results = issues.map(issue => {
68
88
  const analysis = analysisMap.get(issue.number);
69
89
  // Filter dependencies to only include valid issues
70
90
  const validDeps = (analysis?.dependencies || []).filter(d => allIssueNumbers.includes(d) && d !== issue.number);
91
+ const noWorkNeeded = analysis?.noWorkNeeded || false;
71
92
  const analyzed = {
72
93
  ...issue,
73
94
  affectedPaths: analysis?.affectedPaths || [],
74
95
  dependencies: validDeps,
75
96
  analyzedAt: new Date().toISOString(),
97
+ noWorkNeeded,
76
98
  };
77
99
  // Log each issue's analysis
78
100
  const depsStr = validDeps.length > 0
79
101
  ? `depends on ${validDeps.map(d => `#${d}`).join(', ')}`
80
102
  : 'no dependencies';
81
- console.log(chalk.gray(` #${issue.number}: ${depsStr}`));
103
+ const noWorkStr = noWorkNeeded ? ' (no work needed)' : '';
104
+ console.log(chalk.gray(` #${issue.number}: ${depsStr}${noWorkStr}`));
82
105
  return analyzed;
83
106
  });
84
- return results;
107
+ return {
108
+ title: parsedObj.title || 'GitHub Issues',
109
+ description: parsedObj.description || 'Issues loaded from GitHub.',
110
+ issues: results,
111
+ };
85
112
  }
86
113
  catch (error) {
87
114
  console.log(chalk.yellow(` Claude analysis failed, falling back to pattern matching: ${error}`));
@@ -92,7 +119,7 @@ export class IssueAnalyzer {
92
119
  * Fallback to pattern matching if Claude analysis fails.
93
120
  */
94
121
  fallbackAnalysis(issues, allIssueNumbers) {
95
- return issues.map(issue => {
122
+ const analyzedIssues = issues.map(issue => {
96
123
  const deps = this.extractDependencies(issue, allIssueNumbers);
97
124
  const paths = this.extractAffectedPaths(issue);
98
125
  const depsStr = deps.length > 0
@@ -106,6 +133,11 @@ export class IssueAnalyzer {
106
133
  analyzedAt: new Date().toISOString(),
107
134
  };
108
135
  });
136
+ return {
137
+ title: 'GitHub Issues',
138
+ description: 'Issues loaded from GitHub.',
139
+ issues: analyzedIssues,
140
+ };
109
141
  }
110
142
  /**
111
143
  * Extract dependencies using pattern matching.
@@ -1 +1 @@
1
- {"version":3,"file":"issue-analyzer.js","sourceRoot":"","sources":["../../src/analysis/issue-analyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issue-analyzer.js","sourceRoot":"","sources":["../../src/analysis/issue-analyzer.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,14 @@
1
1
  import type { AnalyzedIssue } from '../types.js';
2
+ export interface PlanParseResult {
3
+ title: string;
4
+ description: string;
5
+ items: AnalyzedIssue[];
6
+ }
2
7
  export declare class PlanParser {
3
8
  /**
4
9
  * Parse a plan into discrete work items with dependencies.
10
+ * Claude has access to the codebase to understand existing patterns.
5
11
  */
6
- parse(planContent: string): Promise<AnalyzedIssue[]>;
12
+ parse(planContent: string): Promise<PlanParseResult>;
7
13
  }
8
14
  //# sourceMappingURL=plan-parser.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"plan-parser.d.ts","sourceRoot":"","sources":["../../src/analysis/plan-parser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,qBAAa,UAAU;IACrB;;OAEG;IACG,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;CAmH3D"}
1
+ {"version":3,"file":"plan-parser.d.ts","sourceRoot":"","sources":["../../src/analysis/plan-parser.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,aAAa,EAAE,CAAC;CACxB;AAED,qBAAa,UAAU;IACrB;;;OAGG;IACG,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CA8K3D"}