@ghostwater/soulforge 0.1.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 (55) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +115 -0
  3. package/dist/cli/cli.d.ts +2 -0
  4. package/dist/cli/cli.js +483 -0
  5. package/dist/cli/cli.js.map +1 -0
  6. package/dist/daemon/daemon-entry.d.ts +2 -0
  7. package/dist/daemon/daemon-entry.js +8 -0
  8. package/dist/daemon/daemon-entry.js.map +1 -0
  9. package/dist/daemon/daemon.d.ts +9 -0
  10. package/dist/daemon/daemon.js +88 -0
  11. package/dist/daemon/daemon.js.map +1 -0
  12. package/dist/daemon/runner.d.ts +3 -0
  13. package/dist/daemon/runner.js +310 -0
  14. package/dist/daemon/runner.js.map +1 -0
  15. package/dist/db/database.d.ts +95 -0
  16. package/dist/db/database.js +277 -0
  17. package/dist/db/database.js.map +1 -0
  18. package/dist/executors/claude-code.d.ts +9 -0
  19. package/dist/executors/claude-code.js +86 -0
  20. package/dist/executors/claude-code.js.map +1 -0
  21. package/dist/executors/codex.d.ts +9 -0
  22. package/dist/executors/codex.js +66 -0
  23. package/dist/executors/codex.js.map +1 -0
  24. package/dist/executors/openclaw.d.ts +10 -0
  25. package/dist/executors/openclaw.js +19 -0
  26. package/dist/executors/openclaw.js.map +1 -0
  27. package/dist/executors/registry.d.ts +4 -0
  28. package/dist/executors/registry.js +20 -0
  29. package/dist/executors/registry.js.map +1 -0
  30. package/dist/executors/self.d.ts +10 -0
  31. package/dist/executors/self.js +25 -0
  32. package/dist/executors/self.js.map +1 -0
  33. package/dist/executors/types.d.ts +41 -0
  34. package/dist/executors/types.js +2 -0
  35. package/dist/executors/types.js.map +1 -0
  36. package/dist/index.d.ts +6 -0
  37. package/dist/index.js +7 -0
  38. package/dist/index.js.map +1 -0
  39. package/dist/lib/logger.d.ts +7 -0
  40. package/dist/lib/logger.js +56 -0
  41. package/dist/lib/logger.js.map +1 -0
  42. package/dist/lib/worktree.d.ts +30 -0
  43. package/dist/lib/worktree.js +131 -0
  44. package/dist/lib/worktree.js.map +1 -0
  45. package/dist/workflow/parser.d.ts +2 -0
  46. package/dist/workflow/parser.js +95 -0
  47. package/dist/workflow/parser.js.map +1 -0
  48. package/dist/workflow/template.d.ts +14 -0
  49. package/dist/workflow/template.js +71 -0
  50. package/dist/workflow/template.js.map +1 -0
  51. package/dist/workflow/types.d.ts +65 -0
  52. package/dist/workflow/types.js +2 -0
  53. package/dist/workflow/types.js.map +1 -0
  54. package/package.json +46 -0
  55. package/workflows/feature-dev/workflow.yml +169 -0
@@ -0,0 +1,169 @@
1
+ # Soulforge Feature Development Workflow
2
+ # Uses Claude Code for implementation, with orchestrator review checkpoints.
3
+ id: feature-dev
4
+ name: Feature Development
5
+ version: 1
6
+ description: |
7
+ Story-based development pipeline with pluggable executors.
8
+ Planner decomposes tasks → orchestrator reviews → Claude Code implements →
9
+ verifier checks → integration testing → PR → final review.
10
+
11
+ defaults:
12
+ executor: claude-code
13
+ model: opus
14
+ timeout: 600
15
+ max_retries: 2
16
+
17
+ steps:
18
+ - id: plan
19
+ executor: claude-code
20
+ model: opus
21
+ workdir: "{{workdir}}"
22
+ input: |
23
+ You are working in {{workdir}}. A git branch has already been created for you.
24
+
25
+ Decompose the following task into ordered user stories for autonomous execution.
26
+
27
+ TASK:
28
+ {{task}}
29
+
30
+ Instructions:
31
+ 1. Explore the codebase to understand the stack, conventions, and patterns
32
+ 2. Break the task into small user stories (max 20)
33
+ 3. Order by dependency: schema/DB first, backend, frontend, integration
34
+ 4. Each story must fit in one developer session (one context window)
35
+ 5. Every acceptance criterion must be mechanically verifiable
36
+ 6. Always include "Typecheck passes" as the last criterion in every story
37
+ 7. Every story MUST include test criteria
38
+
39
+ Reply with:
40
+ STATUS: done
41
+ STORIES_JSON: [ ... array of story objects ... ]
42
+ expects: "STATUS: done"
43
+
44
+ - id: review-plan
45
+ executor: self
46
+ input: |
47
+ Review the planned stories before execution begins.
48
+ STORIES: {{stories_json}}
49
+
50
+ - id: implement
51
+ executor: claude-code
52
+ model: opus
53
+ workdir: "{{workdir}}"
54
+ type: loop
55
+ loop:
56
+ over: stories
57
+ completion: all_done
58
+ fresh_session: true
59
+ verify_each: true
60
+ verify_step: verify
61
+ input: |
62
+ Implement the following user story.
63
+
64
+ TASK (overall): {{task}}
65
+ WORKDIR: {{workdir}}
66
+ BUILD_CMD: {{build_cmd}}
67
+ TEST_CMD: {{test_cmd}}
68
+
69
+ CURRENT STORY:
70
+ {{current_story}}
71
+
72
+ COMPLETED STORIES:
73
+ {{completed_stories}}
74
+
75
+ STORIES REMAINING: {{stories_remaining}}
76
+
77
+ VERIFY FEEDBACK (if retrying):
78
+ {{verify_feedback}}
79
+
80
+ Instructions:
81
+ 1. Pull latest on the branch
82
+ 2. Implement this story only
83
+ 3. Write tests for this story
84
+ 4. Run typecheck / build
85
+ 5. Run tests
86
+ 6. Commit: feat: {{current_story_id}} - {{current_story_title}}
87
+
88
+ Reply with:
89
+ STATUS: done
90
+ CHANGES: what you implemented
91
+ TESTS: what tests you wrote
92
+ expects: "STATUS: done"
93
+
94
+ - id: verify
95
+ executor: claude-code
96
+ model: opus
97
+ workdir: "{{workdir}}"
98
+ input: |
99
+ Verify the developer's work on this story.
100
+
101
+ WORKDIR: {{workdir}}
102
+ CHANGES: {{changes}}
103
+ TEST_CMD: {{test_cmd}}
104
+
105
+ CURRENT STORY:
106
+ {{current_story}}
107
+
108
+ Check:
109
+ 1. Code exists (not just TODOs or placeholders)
110
+ 2. Each acceptance criterion is met
111
+ 3. Tests were written
112
+ 4. Tests pass (run {{test_cmd}})
113
+ 5. Typecheck passes
114
+
115
+ Reply with:
116
+ STATUS: done
117
+ VERIFIED: What you confirmed
118
+
119
+ Or if incomplete:
120
+ STATUS: retry
121
+ ISSUES:
122
+ - What's missing
123
+ expects: "STATUS: done"
124
+
125
+ - id: test
126
+ executor: claude-code
127
+ model: opus
128
+ workdir: "{{workdir}}"
129
+ input: |
130
+ Run integration and E2E tests.
131
+
132
+ TASK: {{task}}
133
+ WORKDIR: {{workdir}}
134
+ TEST_CMD: {{test_cmd}}
135
+
136
+ 1. Run the full test suite
137
+ 2. Look for integration issues between stories
138
+ 3. Check error handling and edge cases
139
+
140
+ Reply with:
141
+ STATUS: done
142
+ RESULTS: What you tested and outcomes
143
+ expects: "STATUS: done"
144
+
145
+ - id: pr
146
+ executor: claude-code
147
+ model: opus
148
+ workdir: "{{workdir}}"
149
+ input: |
150
+ Create a pull request.
151
+
152
+ TASK: {{task}}
153
+ WORKDIR: {{workdir}}
154
+ CHANGES: {{changes}}
155
+
156
+ Create a PR with gh pr create.
157
+
158
+ Reply with:
159
+ STATUS: done
160
+ PR: URL to the pull request
161
+ expects: "STATUS: done"
162
+
163
+ - id: final-review
164
+ executor: self
165
+ input: |
166
+ Final review before merge.
167
+ PR: {{pr}}
168
+ TASK: {{task}}
169
+ CHANGES: {{changes}}