agentic-forge 0.0.0 → 0.7.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 (212) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +64 -24
  3. package/{src/claude → dist/authoring}/.claude/skills/workflow-builder/SKILL.md +2 -2
  4. package/{src/claude → dist/authoring}/.claude/skills/workflow-builder/references/REFERENCE.md +9 -3
  5. package/{src/claude → dist/authoring}/.claude/skills/workflow-builder/references/workflow-example.yaml +15 -8
  6. package/dist/checkpoints/manager.d.ts +5 -0
  7. package/dist/checkpoints/manager.js +87 -0
  8. package/dist/checkpoints/manager.js.map +1 -0
  9. package/{src → dist}/claude/.claude/skills/analyze/SKILL.md +1 -1
  10. package/{src → dist}/claude/.claude/skills/create-checkpoint/SKILL.md +1 -1
  11. package/{src → dist}/claude/.claude/skills/create-log/SKILL.md +1 -1
  12. package/{src → dist}/claude/.claude/skills/fix-analyze/SKILL.md +1 -1
  13. package/{src → dist}/claude/.claude/skills/git-branch/SKILL.md +1 -1
  14. package/{src → dist}/claude/.claude/skills/git-commit/SKILL.md +1 -1
  15. package/{src → dist}/claude/.claude/skills/git-pr/SKILL.md +1 -1
  16. package/{src → dist}/claude/.claude/skills/sdlc-plan/SKILL.md +1 -1
  17. package/{src → dist}/claude/.claude/skills/sdlc-review/SKILL.md +1 -1
  18. package/dist/cli.d.ts +3 -0
  19. package/dist/cli.js +173 -0
  20. package/dist/cli.js.map +1 -0
  21. package/dist/commands/authoring-dir.d.ts +2 -0
  22. package/dist/commands/authoring-dir.js +9 -0
  23. package/dist/commands/authoring-dir.js.map +1 -0
  24. package/dist/commands/config-cmd.d.ts +2 -0
  25. package/dist/commands/config-cmd.js +30 -0
  26. package/dist/commands/config-cmd.js.map +1 -0
  27. package/{src/commands/index.ts → dist/commands/index.d.ts} +2 -10
  28. package/dist/commands/index.js +14 -0
  29. package/dist/commands/index.js.map +1 -0
  30. package/dist/commands/init.d.ts +6 -0
  31. package/dist/commands/init.js +83 -0
  32. package/dist/commands/init.js.map +1 -0
  33. package/dist/commands/release-notes.d.ts +5 -0
  34. package/dist/commands/release-notes.js +68 -0
  35. package/dist/commands/release-notes.js.map +1 -0
  36. package/dist/commands/resume.d.ts +5 -0
  37. package/dist/commands/resume.js +79 -0
  38. package/dist/commands/resume.js.map +1 -0
  39. package/dist/commands/run.d.ts +27 -0
  40. package/dist/commands/run.js +243 -0
  41. package/dist/commands/run.js.map +1 -0
  42. package/dist/commands/shortcuts.d.ts +2 -0
  43. package/dist/commands/shortcuts.js +11 -0
  44. package/dist/commands/shortcuts.js.map +1 -0
  45. package/dist/commands/skills-dir.d.ts +2 -0
  46. package/dist/commands/skills-dir.js +9 -0
  47. package/dist/commands/skills-dir.js.map +1 -0
  48. package/dist/commands/status.d.ts +4 -0
  49. package/dist/commands/status.js +99 -0
  50. package/dist/commands/status.js.map +1 -0
  51. package/dist/commands/update.d.ts +4 -0
  52. package/dist/commands/update.js +65 -0
  53. package/dist/commands/update.js.map +1 -0
  54. package/dist/commands/version.d.ts +3 -0
  55. package/dist/commands/version.js +26 -0
  56. package/dist/commands/version.js.map +1 -0
  57. package/dist/commands/workflows.d.ts +4 -0
  58. package/dist/commands/workflows.js +111 -0
  59. package/dist/commands/workflows.js.map +1 -0
  60. package/dist/config.d.ts +8 -0
  61. package/dist/config.js +110 -0
  62. package/dist/config.js.map +1 -0
  63. package/dist/console.d.ts +103 -0
  64. package/dist/console.js +670 -0
  65. package/dist/console.js.map +1 -0
  66. package/dist/executor.d.ts +27 -0
  67. package/dist/executor.js +236 -0
  68. package/dist/executor.js.map +1 -0
  69. package/dist/git/worktree.d.ts +23 -0
  70. package/dist/git/worktree.js +170 -0
  71. package/dist/git/worktree.js.map +1 -0
  72. package/dist/logging/logger.d.ts +27 -0
  73. package/dist/logging/logger.js +69 -0
  74. package/dist/logging/logger.js.map +1 -0
  75. package/dist/orchestrator.d.ts +44 -0
  76. package/dist/orchestrator.js +587 -0
  77. package/dist/orchestrator.js.map +1 -0
  78. package/dist/parser.d.ts +17 -0
  79. package/dist/parser.js +184 -0
  80. package/dist/parser.js.map +1 -0
  81. package/dist/progress.d.ts +29 -0
  82. package/dist/progress.js +275 -0
  83. package/dist/progress.js.map +1 -0
  84. package/dist/ralph-loop.d.ts +26 -0
  85. package/dist/ralph-loop.js +194 -0
  86. package/dist/ralph-loop.js.map +1 -0
  87. package/dist/renderer.d.ts +15 -0
  88. package/dist/renderer.js +123 -0
  89. package/dist/renderer.js.map +1 -0
  90. package/dist/runner.d.ts +84 -0
  91. package/dist/runner.js +529 -0
  92. package/dist/runner.js.map +1 -0
  93. package/dist/signal-manager.d.ts +16 -0
  94. package/dist/signal-manager.js +50 -0
  95. package/dist/signal-manager.js.map +1 -0
  96. package/dist/steps/base.d.ts +28 -0
  97. package/dist/steps/base.js +23 -0
  98. package/dist/steps/base.js.map +1 -0
  99. package/dist/steps/conditional-step.d.ts +12 -0
  100. package/dist/steps/conditional-step.js +106 -0
  101. package/dist/steps/conditional-step.js.map +1 -0
  102. package/{src/steps/index.ts → dist/steps/index.d.ts} +1 -9
  103. package/dist/steps/index.js +8 -0
  104. package/dist/steps/index.js.map +1 -0
  105. package/dist/steps/parallel-step.d.ts +11 -0
  106. package/dist/steps/parallel-step.js +166 -0
  107. package/dist/steps/parallel-step.js.map +1 -0
  108. package/dist/steps/prompt-step.d.ts +8 -0
  109. package/dist/steps/prompt-step.js +94 -0
  110. package/dist/steps/prompt-step.js.map +1 -0
  111. package/dist/steps/ralph-loop-step.d.ts +8 -0
  112. package/dist/steps/ralph-loop-step.js +132 -0
  113. package/dist/steps/ralph-loop-step.js.map +1 -0
  114. package/dist/steps/serial-step.d.ts +10 -0
  115. package/dist/steps/serial-step.js +57 -0
  116. package/dist/steps/serial-step.js.map +1 -0
  117. package/dist/types.d.ts +118 -0
  118. package/dist/types.js +10 -0
  119. package/dist/types.js.map +1 -0
  120. package/package.json +59 -2
  121. package/.gitattributes +0 -24
  122. package/.github/workflows/ci.yml +0 -70
  123. package/.markdownlint-cli2.jsonc +0 -16
  124. package/.prettierignore +0 -3
  125. package/.prettierrc +0 -6
  126. package/.vscode/agentic-forge.code-workspace +0 -26
  127. package/CHANGELOG.md +0 -100
  128. package/CLAUDE.md +0 -158
  129. package/CONTRIBUTING.md +0 -152
  130. package/biome.json +0 -21
  131. package/scripts/copy-assets.js +0 -21
  132. package/src/checkpoints/manager.ts +0 -119
  133. package/src/cli.ts +0 -182
  134. package/src/commands/config-cmd.ts +0 -28
  135. package/src/commands/init.ts +0 -96
  136. package/src/commands/release-notes.ts +0 -85
  137. package/src/commands/resume.ts +0 -103
  138. package/src/commands/run.ts +0 -234
  139. package/src/commands/shortcuts.ts +0 -11
  140. package/src/commands/skills-dir.ts +0 -11
  141. package/src/commands/status.ts +0 -112
  142. package/src/commands/update.ts +0 -64
  143. package/src/commands/version.ts +0 -27
  144. package/src/commands/workflows.ts +0 -129
  145. package/src/config.ts +0 -129
  146. package/src/console.ts +0 -790
  147. package/src/executor.ts +0 -354
  148. package/src/git/worktree.ts +0 -236
  149. package/src/logging/logger.ts +0 -95
  150. package/src/orchestrator.ts +0 -815
  151. package/src/parser.ts +0 -225
  152. package/src/progress.ts +0 -306
  153. package/src/ralph-loop.ts +0 -260
  154. package/src/renderer.ts +0 -164
  155. package/src/runner.ts +0 -634
  156. package/src/signal-manager.ts +0 -55
  157. package/src/steps/base.ts +0 -71
  158. package/src/steps/conditional-step.ts +0 -144
  159. package/src/steps/parallel-step.ts +0 -213
  160. package/src/steps/prompt-step.ts +0 -121
  161. package/src/steps/ralph-loop-step.ts +0 -186
  162. package/src/steps/serial-step.ts +0 -84
  163. package/src/types.ts +0 -141
  164. package/tests/config.test.ts +0 -219
  165. package/tests/console.test.ts +0 -506
  166. package/tests/executor.test.ts +0 -339
  167. package/tests/init.test.ts +0 -86
  168. package/tests/logger.test.ts +0 -110
  169. package/tests/parser.test.ts +0 -290
  170. package/tests/progress.test.ts +0 -345
  171. package/tests/ralph-loop.test.ts +0 -418
  172. package/tests/renderer.test.ts +0 -350
  173. package/tests/runner.test.ts +0 -497
  174. package/tests/setup.test.ts +0 -7
  175. package/tests/signal-manager.test.ts +0 -26
  176. package/tests/steps.test.ts +0 -412
  177. package/tests/worktree.test.ts +0 -411
  178. package/tsconfig.json +0 -18
  179. package/vitest.config.ts +0 -8
  180. /package/{src → dist}/agents/explorer.md +0 -0
  181. /package/{src → dist}/agents/reviewer.md +0 -0
  182. /package/{src → dist}/claude/.claude/skills/analyze/references/bug.md +0 -0
  183. /package/{src → dist}/claude/.claude/skills/analyze/references/debt.md +0 -0
  184. /package/{src → dist}/claude/.claude/skills/analyze/references/doc.md +0 -0
  185. /package/{src → dist}/claude/.claude/skills/analyze/references/security.md +0 -0
  186. /package/{src → dist}/claude/.claude/skills/analyze/references/style.md +0 -0
  187. /package/{src → dist}/claude/.claude/skills/orchestrate/SKILL.md +0 -0
  188. /package/{src → dist}/claude/.claude/skills/sdlc-plan/references/bug.md +0 -0
  189. /package/{src → dist}/claude/.claude/skills/sdlc-plan/references/chore.md +0 -0
  190. /package/{src → dist}/claude/.claude/skills/sdlc-plan/references/feature.md +0 -0
  191. /package/{src → dist}/prompts/agentic-system.md +0 -0
  192. /package/{src → dist}/templates/analysis/bug.md.j2 +0 -0
  193. /package/{src → dist}/templates/analysis/debt.md.j2 +0 -0
  194. /package/{src → dist}/templates/analysis/doc.md.j2 +0 -0
  195. /package/{src → dist}/templates/analysis/security.md.j2 +0 -0
  196. /package/{src → dist}/templates/analysis/style.md.j2 +0 -0
  197. /package/{src → dist}/templates/analysis-summary.md.j2 +0 -0
  198. /package/{src → dist}/templates/checkpoint.md.j2 +0 -0
  199. /package/{src → dist}/templates/implementation-report.md.j2 +0 -0
  200. /package/{src → dist}/templates/memory.md.j2 +0 -0
  201. /package/{src → dist}/templates/plan-bug.md.j2 +0 -0
  202. /package/{src → dist}/templates/plan-chore.md.j2 +0 -0
  203. /package/{src → dist}/templates/plan-feature.md.j2 +0 -0
  204. /package/{src → dist}/templates/progress.json.j2 +0 -0
  205. /package/{src → dist}/templates/ralph-report.md.j2 +0 -0
  206. /package/{src → dist}/workflows/analyze-codebase-merge.yaml +0 -0
  207. /package/{src → dist}/workflows/analyze-codebase.yaml +0 -0
  208. /package/{src → dist}/workflows/analyze-single.yaml +0 -0
  209. /package/{src → dist}/workflows/demo.yaml +0 -0
  210. /package/{src → dist}/workflows/one-shot.yaml +0 -0
  211. /package/{src → dist}/workflows/plan-build-review.yaml +0 -0
  212. /package/{src → dist}/workflows/ralph-loop.yaml +0 -0
package/LICENSE CHANGED
@@ -1,21 +1,21 @@
1
- MIT License
2
-
3
- Copyright (c) 2025-2026 Étienne St-Pierre
4
-
5
- Permission is hereby granted, free of charge, to any person obtaining a copy
6
- of this software and associated documentation files (the "Software"), to deal
7
- in the Software without restriction, including without limitation the rights
8
- to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
- copies of the Software, and to permit persons to whom the Software is
10
- furnished to do so, subject to the following conditions:
11
-
12
- The above copyright notice and this permission notice shall be included in all
13
- copies or substantial portions of the Software.
14
-
15
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
- IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
- FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
- AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
- LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
- OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
- SOFTWARE.
1
+ MIT License
2
+
3
+ Copyright (c) 2025-2026 Étienne St-Pierre
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -45,24 +45,6 @@ pnpm install && pnpm build
45
45
  npm install -g .
46
46
  ```
47
47
 
48
- ### Using Skills in Interactive Claude Sessions
49
-
50
- Agentic Forge bundles 13 skills that extend Claude Code with slash commands like `/sdlc-plan`, `/analyze`, `/git-commit`, and more. To make them available in interactive sessions:
51
-
52
- **Option 1: Pass `--add-dir` when launching Claude**
53
-
54
- ```bash
55
- claude --add-dir $(agentic-forge skills-dir)
56
- ```
57
-
58
- **Option 2: Add to `~/.claude/settings.json` permanently**
59
-
60
- ```json
61
- {
62
- "additionalDirectories": ["<output of agentic-forge skills-dir>"]
63
- }
64
- ```
65
-
66
48
  ## Workflows
67
49
 
68
50
  ### plan-build-review (Full SDLC)
@@ -100,15 +82,46 @@ agentic-forge run analyze-codebase --var "autofix=true"
100
82
  ### All Commands
101
83
 
102
84
  ```bash
103
- # List available workflows
104
- agentic-forge workflows
105
-
106
85
  # Run a workflow with variables
107
86
  agentic-forge run <workflow> --var "key=value"
108
87
 
109
- # Print path to bundled skills directory
88
+ # Resume a paused or failed workflow
89
+ agentic-forge resume <workflow_id>
90
+
91
+ # Check workflow status
92
+ agentic-forge status <workflow_id>
93
+
94
+ # Cancel a running workflow
95
+ agentic-forge cancel <workflow_id>
96
+
97
+ # List all workflow runs (optionally filter by status)
98
+ agentic-forge list --status running
99
+
100
+ # Provide input to a paused workflow waiting for human response
101
+ agentic-forge input <workflow_id> "response text"
102
+
103
+ # Copy bundled workflow templates to your project
104
+ agentic-forge init
105
+
106
+ # List available workflows with descriptions
107
+ agentic-forge workflows
108
+
109
+ # Get or set configuration
110
+ agentic-forge config get <key>
111
+ agentic-forge config set <key> <value>
112
+
113
+ # Interactive configuration setup
114
+ agentic-forge configure
115
+
116
+ # Print path to bundled workflow skills directory
110
117
  agentic-forge skills-dir
111
118
 
119
+ # Print path to interactive authoring skills directory
120
+ agentic-forge authoring-dir
121
+
122
+ # Show release notes
123
+ agentic-forge release-notes --latest
124
+
112
125
  # Check current version
113
126
  agentic-forge version
114
127
 
@@ -121,8 +134,10 @@ agentic-forge update
121
134
  ```text
122
135
  src/
123
136
  agents/ # Bundled agent definitions (explorer, reviewer)
124
- claude/.claude/ # Skills loaded via --add-dir
125
- skills/ # 13 bundled skills
137
+ authoring/.claude/ # Interactive authoring skills (workflow-builder)
138
+ skills/ # Skills for users to create and manage workflows
139
+ claude/.claude/ # Workflow execution skills loaded via --add-dir
140
+ skills/ # Bundled skills used by workflows
126
141
  commands/ # CLI command implementations
127
142
  prompts/ # System prompt templates
128
143
  steps/ # Workflow step handlers
@@ -131,6 +146,31 @@ src/
131
146
  tests/ # Vitest test suite
132
147
  ```
133
148
 
149
+ ### Skills directories
150
+
151
+ Agentic Forge separates skills into two directories:
152
+
153
+ - **Workflow skills** (`skills-dir`) — Skills used by the workflow engine during execution. Loaded automatically when running workflows.
154
+ - **Authoring skills** (`authoring-dir`) — Interactive skills for users to create and manage workflows. Add them to your Claude Code session manually:
155
+
156
+ ```bash
157
+ claude --add-dir $(agentic-forge authoring-dir)
158
+ ```
159
+
160
+ #### Using the workflow-builder skill
161
+
162
+ Once the authoring skills are loaded, use the `/af-workflow-builder` slash command to create, update, explain, validate, or debug workflows:
163
+
164
+ ```text
165
+ /af-workflow-builder create a workflow that plans and reviews a feature
166
+ /af-workflow-builder validate my-workflow.yaml
167
+ /af-workflow-builder explain how ralph-loop works
168
+ /af-workflow-builder update my-workflow.yaml to add a parallel step
169
+ /af-workflow-builder debug why my conditional always takes the else branch
170
+ ```
171
+
172
+ The skill has full knowledge of the workflow schema, all step types, and bundled skills.
173
+
134
174
  ## Contributing
135
175
 
136
176
  - **Bug reports and suggestions** - [Open an issue](https://github.com/e-stpierre/agentic-forge/issues) on GitHub
@@ -19,7 +19,7 @@ Create, update, explain, validate, and debug agentic-forge YAML workflows. This
19
19
 
20
20
  ### Values
21
21
 
22
- \$ARGUMENTS
22
+ Arguments: $ARGUMENTS
23
23
 
24
24
  ## Additional Resources
25
25
 
@@ -114,7 +114,7 @@ Priority: step `model` > `settings.model` > config default > `sonnet`
114
114
 
115
115
  | Symptom | Likely Cause | Fix |
116
116
  | -------------------------------------- | ---------------------------------------------- | ---------------------------------------------------------------- |
117
- | "Missing required variable" | Variable not passed via `--var` | Add `--var "name=value"` to CLI or set `default` |
117
+ | "Missing required variable" | Variable not passed via CLI | Add `name=value` arg, `--var "name=value"`, or set `default` |
118
118
  | Conditional always takes else | Condition expression evaluates to falsy | Check Jinja2 expression syntax and variable names |
119
119
  | Ralph loop never completes | Completion JSON not output or promise mismatch | Verify `completion-promise` matches the `promise` field in JSON |
120
120
  | Template variable shows as `{{ ... }}` | Undefined variable in lenient mode | Define the variable or enable `strict-mode: true` to catch early |
@@ -57,7 +57,7 @@ settings:
57
57
 
58
58
  ## Variables
59
59
 
60
- Define input parameters for the workflow. Passed via `--var "name=value"` on the CLI.
60
+ Define input parameters for the workflow. Passed as bare `key=value` args or via `--var "name=value"` on the CLI. Missing required variables are prompted interactively when running in a TTY (disable with `--no-interactive`).
61
61
 
62
62
  | Key | Required | Type | Default | Description |
63
63
  | ------------- | -------- | ------ | ---------- | ------------------------------------- |
@@ -398,8 +398,8 @@ outputs:
398
398
  ## CLI Commands
399
399
 
400
400
  ```bash
401
- # Run a workflow
402
- agentic-forge run <workflow-name-or-path> --var "key=value" [--from-step <name>] [--terminal-output base|all]
401
+ # Run a workflow (bare key=value args or --var flag)
402
+ agentic-forge run <workflow> key=value [key=value ...] [--var "key=value"] [--from-step <name>] [--no-interactive] [--terminal-output base|all]
403
403
 
404
404
  # Resume a paused/failed workflow
405
405
  agentic-forge resume <workflow-id>
@@ -422,6 +422,12 @@ agentic-forge workflows [-v]
422
422
  # Copy bundled workflows to local project
423
423
  agentic-forge init [--force] [--list]
424
424
 
425
+ # Print path to bundled workflow skills directory
426
+ agentic-forge skills-dir
427
+
428
+ # Print path to interactive authoring skills directory
429
+ agentic-forge authoring-dir
430
+
425
431
  # Configuration
426
432
  agentic-forge config get <key>
427
433
  agentic-forge config set <key> <value>
@@ -354,24 +354,31 @@ outputs:
354
354
 
355
355
  # ==================== USAGE EXAMPLES ====================
356
356
  #
357
- # Run with required variable:
357
+ # Run with bare key=value args (preferred):
358
+ # agentic-forge run workflow-example.yaml task="Add user authentication"
359
+ #
360
+ # Run with --var flag (equivalent):
358
361
  # agentic-forge run workflow-example.yaml --var "task=Add user authentication"
359
362
  #
360
- # Run with custom variables:
363
+ # Run with multiple variables:
361
364
  # agentic-forge run workflow-example.yaml \
362
- # --var "task=Fix login bug" \
363
- # --var "plan_type=bug" \
364
- # --var "create_pr=true" \
365
- # --var "max_iterations=15"
365
+ # task="Fix login bug" \
366
+ # plan_type=bug \
367
+ # create_pr=true \
368
+ # max_iterations=15
366
369
  #
367
370
  # Run with verbose output:
368
371
  # agentic-forge run workflow-example.yaml \
369
- # --var "task=Implement feature" \
372
+ # task="Implement feature" \
370
373
  # --terminal-output all
371
374
  #
375
+ # Disable interactive prompts (for CI/scripts):
376
+ # agentic-forge run workflow-example.yaml --no-interactive \
377
+ # task="Implement feature"
378
+ #
372
379
  # Resume from specific step:
373
380
  # agentic-forge run workflow-example.yaml \
374
- # --var "task=Implement feature" \
381
+ # task="Implement feature" \
375
382
  # --from-step review-implementation
376
383
  #
377
384
  # Provide human input:
@@ -0,0 +1,5 @@
1
+ /** Checkpoint management for workflow sessions. */
2
+ export declare function getCheckpointPath(workflowId: string, repoRoot?: string): string;
3
+ export declare function createCheckpoint(workflowId: string, step: string, context: string, progress: string, notes?: string, issues?: string, repoRoot?: string): string;
4
+ export declare function readCheckpoints(workflowId: string, repoRoot?: string): Record<string, unknown>[];
5
+ export declare function getLatestCheckpoint(workflowId: string, repoRoot?: string): Record<string, unknown> | null;
@@ -0,0 +1,87 @@
1
+ /** Checkpoint management for workflow sessions. */
2
+ import { appendFileSync, existsSync, mkdirSync, readFileSync } from "node:fs";
3
+ import path from "node:path";
4
+ import yaml from "js-yaml";
5
+ // --- Path helper ---
6
+ export function getCheckpointPath(workflowId, repoRoot) {
7
+ const root = repoRoot ?? process.cwd();
8
+ return path.join(root, "agentic", "outputs", workflowId, "checkpoint.md");
9
+ }
10
+ // --- Create checkpoint ---
11
+ export function createCheckpoint(workflowId, step, context, progress, notes = "", issues = "", repoRoot) {
12
+ const checkpointPath = getCheckpointPath(workflowId, repoRoot);
13
+ const dir = path.dirname(checkpointPath);
14
+ mkdirSync(dir, { recursive: true });
15
+ const existing = readCheckpoints(workflowId, repoRoot);
16
+ const checkpointNum = existing.length + 1;
17
+ const checkpointId = `chk-${String(checkpointNum).padStart(3, "0")}`;
18
+ const timestamp = new Date().toISOString();
19
+ const frontmatter = {
20
+ checkpoint_id: checkpointId,
21
+ step,
22
+ created: timestamp,
23
+ workflow_id: workflowId,
24
+ status: "in_progress",
25
+ };
26
+ const entryLines = [
27
+ "---",
28
+ yaml.dump(frontmatter, { flowLevel: -1 }).trim(),
29
+ "---",
30
+ "",
31
+ "## Context",
32
+ "",
33
+ context,
34
+ "",
35
+ "## Progress",
36
+ "",
37
+ progress,
38
+ "",
39
+ ];
40
+ if (notes) {
41
+ entryLines.push("## Notes for Next Session", "", notes, "");
42
+ }
43
+ if (issues) {
44
+ entryLines.push("## Issues Discovered", "", issues, "");
45
+ }
46
+ entryLines.push("---\n");
47
+ const entry = entryLines.join("\n");
48
+ appendFileSync(checkpointPath, entry, "utf-8");
49
+ return checkpointId;
50
+ }
51
+ // --- Read checkpoints ---
52
+ export function readCheckpoints(workflowId, repoRoot) {
53
+ const checkpointPath = getCheckpointPath(workflowId, repoRoot);
54
+ if (!existsSync(checkpointPath)) {
55
+ return [];
56
+ }
57
+ const content = readFileSync(checkpointPath, "utf-8");
58
+ const checkpoints = [];
59
+ const parts = content.split("---");
60
+ let i = 1;
61
+ while (i < parts.length - 1) {
62
+ const frontmatterStr = parts[i].trim();
63
+ if (!frontmatterStr) {
64
+ i += 1;
65
+ continue;
66
+ }
67
+ const body = i + 1 < parts.length ? parts[i + 1].trim() : "";
68
+ try {
69
+ const frontmatter = yaml.load(frontmatterStr);
70
+ if (frontmatter && "checkpoint_id" in frontmatter) {
71
+ frontmatter.content = body;
72
+ checkpoints.push(frontmatter);
73
+ }
74
+ }
75
+ catch {
76
+ // Invalid YAML, skip
77
+ }
78
+ i += 2;
79
+ }
80
+ return checkpoints;
81
+ }
82
+ // --- Get latest checkpoint ---
83
+ export function getLatestCheckpoint(workflowId, repoRoot) {
84
+ const checkpoints = readCheckpoints(workflowId, repoRoot);
85
+ return checkpoints.length > 0 ? checkpoints[checkpoints.length - 1] : null;
86
+ }
87
+ //# sourceMappingURL=manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manager.js","sourceRoot":"","sources":["../../src/checkpoints/manager.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ Analyze codebase for issues across multiple domains: bugs, technical debt, docum
24
24
 
25
25
  ### Values
26
26
 
27
- \$ARGUMENTS
27
+ Arguments: $ARGUMENTS
28
28
 
29
29
  ## Additional Resources
30
30
 
@@ -21,7 +21,7 @@ Record progress and provide context for future sessions or other agents. Use thi
21
21
 
22
22
  ### Values
23
23
 
24
- \$ARGUMENTS
24
+ Arguments: $ARGUMENTS
25
25
 
26
26
  ## Core Principles
27
27
 
@@ -21,7 +21,7 @@ Add a structured log entry to the workflow's NDJSON log file. Use this skill for
21
21
 
22
22
  ### Values
23
23
 
24
- \$ARGUMENTS
24
+ Arguments: $ARGUMENTS
25
25
 
26
26
  ## Core Principles
27
27
 
@@ -20,7 +20,7 @@ Iteratively fix issues identified in an analysis document. This skill reads the
20
20
 
21
21
  ### Values
22
22
 
23
- \$ARGUMENTS
23
+ Arguments: $ARGUMENTS
24
24
 
25
25
  ## Core Principles
26
26
 
@@ -20,7 +20,7 @@ Create and checkout a new git branch following the naming convention: `<category
20
20
 
21
21
  ### Values
22
22
 
23
- \$ARGUMENTS
23
+ Arguments: $ARGUMENTS
24
24
 
25
25
  ## Core Principles
26
26
 
@@ -20,7 +20,7 @@ Create a well-structured commit with a concise title and optional bullet-point d
20
20
 
21
21
  ### Values
22
22
 
23
- \$ARGUMENTS
23
+ Arguments: $ARGUMENTS
24
24
 
25
25
  ## Core Principles
26
26
 
@@ -21,7 +21,7 @@ Create a pull request using the GitHub CLI with a descriptive title and appropri
21
21
 
22
22
  ### Values
23
23
 
24
- \$ARGUMENTS
24
+ Arguments: $ARGUMENTS
25
25
 
26
26
  ## Core Principles
27
27
 
@@ -22,7 +22,7 @@ Create a structured implementation plan for the given task. This skill analyzes
22
22
 
23
23
  ### Values
24
24
 
25
- \$ARGUMENTS
25
+ Arguments: $ARGUMENTS
26
26
 
27
27
  ## Additional Resources
28
28
 
@@ -21,7 +21,7 @@ Review the implementation against quality standards and optionally against a pla
21
21
 
22
22
  ### Values
23
23
 
24
- \$ARGUMENTS
24
+ Arguments: $ARGUMENTS
25
25
 
26
26
  ## Core Principles
27
27
 
package/dist/cli.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ /** CLI entry point for agentic-forge command. */
3
+ export {};
package/dist/cli.js ADDED
@@ -0,0 +1,173 @@
1
+ #!/usr/bin/env node
2
+ /** CLI entry point for agentic-forge command. */
3
+ import { Command } from "commander";
4
+ function optString(val) {
5
+ return typeof val === "string" ? val : undefined;
6
+ }
7
+ function optBool(val) {
8
+ return typeof val === "boolean" ? val : undefined;
9
+ }
10
+ function optStringArray(val) {
11
+ return Array.isArray(val) && val.every((v) => typeof v === "string") ? val : undefined;
12
+ }
13
+ import { CliExitError, cmdAuthoringDir, cmdCancel, cmdConfig, cmdConfigure, cmdInit, cmdInput, cmdList, cmdReleaseNotes, cmdResume, cmdRun, cmdSkillsDir, cmdStatus, cmdUpdate, cmdVersion, cmdWorkflows, getVersion, } from "./commands/index.js";
14
+ const program = new Command()
15
+ .name("agentic-forge")
16
+ .version(getVersion())
17
+ .description("Agentic workflow orchestration for Claude Code");
18
+ // run command
19
+ program
20
+ .command("run")
21
+ .description("Run a workflow with optional key=value variables (prompts for missing required vars)")
22
+ .argument("[workflow]", "workflow name or path to YAML file")
23
+ .argument("[vars...]", "workflow variables as key=value pairs")
24
+ .option("--list", "list all available workflows")
25
+ .option("--var <key=value...>", "set workflow variable (can be used multiple times)")
26
+ .option("--from-step <step>", "resume from a specific step")
27
+ .option("--no-interactive", "disable interactive prompts for missing variables")
28
+ .option("--terminal-output <mode>", "terminal output granularity (base or all)")
29
+ .action(async (workflow, vars, opts) => {
30
+ await cmdRun({
31
+ workflow,
32
+ listWorkflows: optBool(opts.list),
33
+ vars: optStringArray(opts.var),
34
+ bareVars: optStringArray(vars),
35
+ fromStep: optString(opts.fromStep),
36
+ interactive: opts.interactive !== false,
37
+ terminalOutput: optString(opts.terminalOutput),
38
+ });
39
+ });
40
+ // resume command
41
+ program
42
+ .command("resume")
43
+ .argument("<workflow_id>", "workflow ID to resume")
44
+ .option("--terminal-output <mode>", "terminal output granularity (base or all)")
45
+ .action(async (workflowId, opts) => {
46
+ await cmdResume({
47
+ workflowId,
48
+ terminalOutput: optString(opts.terminalOutput),
49
+ });
50
+ });
51
+ // status command
52
+ program
53
+ .command("status")
54
+ .argument("<workflow_id>", "workflow ID")
55
+ .action((workflowId) => {
56
+ cmdStatus(workflowId);
57
+ });
58
+ // cancel command
59
+ program
60
+ .command("cancel")
61
+ .argument("<workflow_id>", "workflow ID to cancel")
62
+ .action((workflowId) => {
63
+ cmdCancel(workflowId);
64
+ });
65
+ // list command
66
+ program
67
+ .command("list")
68
+ .option("--status <status>", "filter by status (running, completed, failed, paused)")
69
+ .action((opts) => {
70
+ cmdList(optString(opts.status));
71
+ });
72
+ // input command
73
+ program
74
+ .command("input")
75
+ .argument("<workflow_id>", "workflow ID")
76
+ .argument("<response>", "response to provide")
77
+ .action((workflowId, response) => {
78
+ cmdInput(workflowId, response);
79
+ });
80
+ // configure command
81
+ program
82
+ .command("configure")
83
+ .description("Configure plugin settings")
84
+ .action(() => {
85
+ cmdConfigure();
86
+ });
87
+ // init command
88
+ program
89
+ .command("init")
90
+ .description("Copy bundled workflow templates to local project")
91
+ .option("--force", "overwrite existing workflow files")
92
+ .option("--list", "list available bundled workflows without copying")
93
+ .action((opts) => {
94
+ cmdInit({
95
+ force: optBool(opts.force),
96
+ listOnly: optBool(opts.list),
97
+ });
98
+ });
99
+ // config command with subcommands
100
+ const configCmd = program.command("config").description("Get or set configuration");
101
+ configCmd
102
+ .command("get")
103
+ .argument("<key>", "configuration key (dot notation)")
104
+ .action((key) => {
105
+ cmdConfig("get", key);
106
+ });
107
+ configCmd
108
+ .command("set")
109
+ .argument("<key>", "configuration key (dot notation)")
110
+ .argument("<value>", "value to set")
111
+ .action((key, value) => {
112
+ cmdConfig("set", key, value);
113
+ });
114
+ // version command
115
+ program
116
+ .command("version")
117
+ .description("Show version information")
118
+ .action(() => {
119
+ cmdVersion();
120
+ });
121
+ // release-notes command
122
+ program
123
+ .command("release-notes")
124
+ .argument("[version]", "show release notes for a specific version")
125
+ .option("--latest", "show only the most recent version's release notes")
126
+ .action((specificVersion, opts) => {
127
+ cmdReleaseNotes({
128
+ specificVersion,
129
+ latest: optBool(opts.latest),
130
+ });
131
+ });
132
+ // skills-dir command
133
+ program
134
+ .command("skills-dir")
135
+ .description("Print path to bundled skills directory")
136
+ .action(() => {
137
+ cmdSkillsDir();
138
+ });
139
+ // authoring-dir command
140
+ program
141
+ .command("authoring-dir")
142
+ .description("Print path to interactive authoring skills directory")
143
+ .action(() => {
144
+ cmdAuthoringDir();
145
+ });
146
+ // update command
147
+ program
148
+ .command("update")
149
+ .description("Update agentic-forge to the latest version")
150
+ .option("--check", "check for updates without installing")
151
+ .action((opts) => {
152
+ cmdUpdate({
153
+ check: optBool(opts.check),
154
+ });
155
+ });
156
+ // workflows command
157
+ program
158
+ .command("workflows")
159
+ .description("List available workflows with descriptions")
160
+ .option("-v, --verbose", "show workflow variables and full descriptions")
161
+ .action((opts) => {
162
+ cmdWorkflows({
163
+ verbose: optBool(opts.verbose),
164
+ });
165
+ });
166
+ program.parseAsync().catch((err) => {
167
+ if (err instanceof CliExitError) {
168
+ process.stderr.write(`${err.message}\n`);
169
+ process.exit(err.exitCode);
170
+ }
171
+ throw err;
172
+ });
173
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ /** Authoring-dir command handler. */
2
+ export declare function cmdAuthoringDir(): void;
@@ -0,0 +1,9 @@
1
+ /** Authoring-dir command handler. */
2
+ import path from "node:path";
3
+ import { fileURLToPath } from "node:url";
4
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
5
+ export function cmdAuthoringDir() {
6
+ const authoringDir = path.resolve(path.join(__dirname, "..", "authoring"));
7
+ process.stdout.write(`${authoringDir}\n`);
8
+ }
9
+ //# sourceMappingURL=authoring-dir.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authoring-dir.js","sourceRoot":"","sources":["../../src/commands/authoring-dir.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAErC,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAEzC,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;AAE/D,MAAM,UAAU,eAAe;IAC9B,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;IAC3E,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,YAAY,IAAI,CAAC,CAAC;AAC3C,CAAC"}
@@ -0,0 +1,2 @@
1
+ /** Config command handler. */
2
+ export declare function cmdConfig(configCommand: string, key: string, value?: string): void;