hone-ai 0.11.0 → 0.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -10
- package/package.json +1 -1
- package/src/config.test.ts +0 -1
- package/src/config.ts +0 -2
- package/src/index.ts +7 -0
- package/src/prompt.test.ts +2 -8
- package/src/prompt.ts +1 -1
package/README.md
CHANGED
|
@@ -22,14 +22,28 @@ Transform feature ideas into working code through autonomous development with hu
|
|
|
22
22
|
hone init
|
|
23
23
|
```
|
|
24
24
|
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
That's it! You're ready to use hone.
|
|
26
|
+
|
|
27
|
+
## Common Workflow
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
# 1. Generate project documentation (if no AGENTS.md exists)
|
|
31
|
+
hone agents-md
|
|
32
|
+
|
|
33
|
+
# 2. Create a PRD from your feature description
|
|
34
|
+
hone prd "Add user login with email and password"
|
|
31
35
|
|
|
32
|
-
|
|
36
|
+
# 3. Manually review the generated PRD
|
|
37
|
+
# Edit .plans/prd-user-login.md as needed
|
|
38
|
+
|
|
39
|
+
# 4. Generate tasks from the PRD
|
|
40
|
+
hone prd-to-tasks .plans/prd-user-login.md
|
|
41
|
+
|
|
42
|
+
# 5. Implement the feature
|
|
43
|
+
hone run .plans/tasks-user-login.yml -i 10
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
hone will implement the feature, run tests, and commit changes automatically.
|
|
33
47
|
|
|
34
48
|
## Prerequisites
|
|
35
49
|
|
|
@@ -77,14 +91,16 @@ cp hone-macos /usr/local/bin/hone # macOS
|
|
|
77
91
|
cp hone-linux /usr/local/bin/hone # Linux
|
|
78
92
|
```
|
|
79
93
|
|
|
80
|
-
##
|
|
94
|
+
## Commands
|
|
81
95
|
|
|
82
96
|
### Create and implement a feature
|
|
83
97
|
|
|
84
98
|
```bash
|
|
99
|
+
hone agents-md # Generate AGENTS.md (first time only)
|
|
85
100
|
hone prd "Feature description" # Generate requirements
|
|
101
|
+
# Review .plans/prd-<feature>.md manually
|
|
86
102
|
hone prd-to-tasks .plans/prd-feature.md # Generate tasks
|
|
87
|
-
hone run .plans/tasks-feature.yml -i
|
|
103
|
+
hone run .plans/tasks-feature.yml -i 10 # Implement tasks
|
|
88
104
|
```
|
|
89
105
|
|
|
90
106
|
### Reference files and URLs in PRDs
|
|
@@ -124,7 +140,6 @@ defaultAgent: claude
|
|
|
124
140
|
models:
|
|
125
141
|
opencode: claude-sonnet-4-20250514
|
|
126
142
|
claude: claude-sonnet-4-20250514
|
|
127
|
-
feedbackInstructions: 'test: bun test, type check: bun run tsc'
|
|
128
143
|
```
|
|
129
144
|
|
|
130
145
|
**Advanced model configuration:**
|
|
@@ -148,11 +163,13 @@ Each `hone run` executes multiple iterations of this cycle automatically.
|
|
|
148
163
|
When creating PRDs, you can reference files and URLs directly in your feature description:
|
|
149
164
|
|
|
150
165
|
**Local files:**
|
|
166
|
+
|
|
151
167
|
- `./docs/api-spec.md` - Read project documentation
|
|
152
168
|
- `src/components/Button.tsx` - Analyze existing components
|
|
153
169
|
- `./database/schema.sql` - Review database structure
|
|
154
170
|
|
|
155
171
|
**URLs:**
|
|
172
|
+
|
|
156
173
|
- `https://docs.stripe.com/api` - External API documentation
|
|
157
174
|
- `https://www.figma.com/design/123/App` - Design specifications
|
|
158
175
|
- `http://localhost:3000/dashboard` - Reference existing pages
|
package/package.json
CHANGED
package/src/config.test.ts
CHANGED
package/src/config.ts
CHANGED
|
@@ -17,7 +17,6 @@ export interface HoneConfig {
|
|
|
17
17
|
finalize?: string
|
|
18
18
|
agentsMd?: string
|
|
19
19
|
}
|
|
20
|
-
feedbackInstructions?: string
|
|
21
20
|
lintCommand?: string
|
|
22
21
|
}
|
|
23
22
|
|
|
@@ -29,7 +28,6 @@ const DEFAULT_CONFIG: HoneConfig = {
|
|
|
29
28
|
opencode: 'claude-sonnet-4-20250514',
|
|
30
29
|
claude: 'claude-sonnet-4-20250514',
|
|
31
30
|
},
|
|
32
|
-
feedbackInstructions: 'test: bun test',
|
|
33
31
|
lintCommand: undefined,
|
|
34
32
|
}
|
|
35
33
|
|
package/src/index.ts
CHANGED
|
@@ -36,6 +36,13 @@ program
|
|
|
36
36
|
.addHelpText(
|
|
37
37
|
'after',
|
|
38
38
|
`
|
|
39
|
+
Common Workflow:
|
|
40
|
+
hone agents-md # Generate AGENTS.md (if none exists)
|
|
41
|
+
hone prd "your feature description" # Create a PRD
|
|
42
|
+
# Manually review .plans/prd-<feature>.md
|
|
43
|
+
hone prd-to-tasks .plans/prd-<feature>.md # Generate tasks from PRD
|
|
44
|
+
hone run .plans/tasks-<feature>.yml -i 10 # Implement the feature
|
|
45
|
+
|
|
39
46
|
Model Configuration:
|
|
40
47
|
Configure models in .plans/hone.config.yml:
|
|
41
48
|
|
package/src/prompt.test.ts
CHANGED
|
@@ -33,7 +33,6 @@ const mockConfig: HoneConfig = {
|
|
|
33
33
|
opencode: 'claude-sonnet-4-20250514',
|
|
34
34
|
claude: 'claude-sonnet-4-20250514',
|
|
35
35
|
},
|
|
36
|
-
feedbackInstructions: 'test: bun test',
|
|
37
36
|
lintCommand: 'bun run lint',
|
|
38
37
|
}
|
|
39
38
|
|
|
@@ -222,21 +221,16 @@ describe('constructPrompt', () => {
|
|
|
222
221
|
expect(prompt).toContain('# TASK SELECTION')
|
|
223
222
|
})
|
|
224
223
|
|
|
225
|
-
test('uses default feedback instructions
|
|
224
|
+
test('uses default feedback instructions', () => {
|
|
226
225
|
writeFileSync(
|
|
227
226
|
join(TEST_PLANS_DIR, 'tasks-test.yml'),
|
|
228
227
|
'tasks:\n - id: task-001\n status: pending\n'
|
|
229
228
|
)
|
|
230
229
|
|
|
231
|
-
const configWithoutFeedback: HoneConfig = {
|
|
232
|
-
...mockConfig,
|
|
233
|
-
feedbackInstructions: undefined,
|
|
234
|
-
}
|
|
235
|
-
|
|
236
230
|
const prompt = constructPrompt({
|
|
237
231
|
phase: 'implement',
|
|
238
232
|
featureName: 'test',
|
|
239
|
-
config:
|
|
233
|
+
config: mockConfig,
|
|
240
234
|
})
|
|
241
235
|
|
|
242
236
|
expect(prompt).toContain('test: bun test')
|
package/src/prompt.ts
CHANGED
|
@@ -85,7 +85,7 @@ function getPhaseInstructions(
|
|
|
85
85
|
taskId?: string,
|
|
86
86
|
reviewFeedback?: string
|
|
87
87
|
): string {
|
|
88
|
-
const feedbackInstructions =
|
|
88
|
+
const feedbackInstructions = 'test: bun test'
|
|
89
89
|
const lintCommand = config.lintCommand
|
|
90
90
|
|
|
91
91
|
switch (phase) {
|