@reforma/agentflow 0.0.1 → 1.0.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 CHANGED
@@ -44,7 +44,7 @@ Reusable agent skills are published from `skills/`:
44
44
 
45
45
  ---
46
46
 
47
- ## The Loop
47
+ ## 🔄 The Loop
48
48
 
49
49
  Research helps when the agent does not know the area, and most larger tasks also need a plan. But almost every task goes through Grill. Small, obvious changes can go straight from Grill to implementation.
50
50
 
@@ -58,7 +58,7 @@ Research helps when the agent does not know the area, and most larger tasks also
58
58
 
59
59
  Repeat steps 4–7 until every PR in the plan is complete.
60
60
 
61
- ### Step 1. Learn how it works (optional)
61
+ ### Step 1. 🔍 Learn how it works (optional)
62
62
 
63
63
  Research does not require a skill. Even a simple prompt like "Find out how
64
64
  authentication works in this project" can make the implementation much easier.
@@ -73,7 +73,7 @@ context compaction or in a new chat.
73
73
 
74
74
  Even if you skip this step, Grill will fill in any gaps.
75
75
 
76
- ### Step 2. Sharpen the idea with Grill
76
+ ### Step 2. 🔥 Sharpen the idea with Grill
77
77
 
78
78
  Grill is the core of AgentFlow and the one step used for the most tasks.
79
79
 
@@ -87,7 +87,7 @@ until nothing important is left unclear.
87
87
  This gives the implementation an agreed starting point instead of leaving the
88
88
  agent to fill in gaps on its own.
89
89
 
90
- ### Step 3. Plan and slice the work into PRs
90
+ ### Step 3. 🗂️ Plan and slice the work into PRs
91
91
 
92
92
  For a larger task, planning usually follows Grill in the same chat. If you asked
93
93
  Grill to plan next, it loads `/plan` automatically. You can also run `/plan`
@@ -113,10 +113,7 @@ that first uses them instead of becoming placeholder PRs.
113
113
 
114
114
  Keep the plan updated as the work changes.
115
115
 
116
- **Done when:** someone can open the plan, find the next PR, and see how to
117
- verify it.
118
-
119
- ### Step 4. Implement one PR
116
+ ### Step 4. 🛠️ Implement one PR
120
117
 
121
118
  Implement the first unchecked PR and nothing beyond it. Without a plan, keep the
122
119
  change small enough to review. You can stay in the current chat, start a fresh
@@ -126,34 +123,28 @@ to another chat. Use `/tdd` for test-first work.
126
123
  Load any relevant skills named in `AGENTS.md`. If work spills into a later PR,
127
124
  update the plan instead of silently expanding the current one.
128
125
 
129
- **Done when:** the PR does what the plan promised, and the plan matches the work.
126
+ Before review, update `plan.md`: check the completed PR only after its
127
+ done-when and verification pass, then apply any scope changes to later rows.
130
128
 
131
- ### Step 5. Agent review
129
+ ### Step 5. 🤖 Agent review
132
130
 
133
131
  Run `/code-review` on the completed PR. It looks for code to reuse, unnecessary
134
132
  wrappers, and avoidable complexity. It fixes small local problems and returns a
135
133
  verdict: keep, shrink, or burn.
136
134
 
137
- **Done when:** the review has run and its local fixes are applied.
138
-
139
- ### Step 6. Your review, then commit
135
+ ### Step 6. Your review, then commit
140
136
 
141
137
  Read the diff yourself, then commit it using the project's normal workflow.
142
138
 
143
- **Done when:** the PR is reviewed and committed.
144
-
145
- ### Step 7. Refresh the context when needed
139
+ ### Step 7. 🔄 Refresh the context when needed
146
140
 
147
141
  Keep the current chat if it still has useful context. When it gets noisy,
148
142
  summarize it or start a fresh one. Run `/handoff` to save what shipped, what
149
143
  changed, and which PR comes next.
150
144
 
151
- Attach the plan and handoff to a fresh chat when they exist.
145
+ Attach the plan and handoff to a fresh chat when they exist, then return to step 4.
152
146
 
153
- **Done when:** you can start the next PR without reconstructing the previous
154
- work. Return to step 4.
155
-
156
- ## Install
147
+ ## 📦 Install
157
148
 
158
149
  Install the complete workflow in a project:
159
150
 
@@ -185,7 +176,7 @@ npx skills update plan
185
176
 
186
177
  ---
187
178
 
188
- ## Why AgentFlow?
179
+ ## 💡 Why AgentFlow?
189
180
 
190
181
  Coding agents can handle large changes, but chat history is a poor place to
191
182
  keep requirements, scope, and decisions. AgentFlow moves that information into
@@ -202,7 +193,7 @@ small files and gives each PR a clear boundary.
202
193
  fixed, while the documentation is limited to one plan and one current
203
194
  handoff.
204
195
 
205
- ### How we compare
196
+ ### ⚖️ How we compare
206
197
 
207
198
  OpenSpec and Spec Kit try to cover most of spec-driven development with their
208
199
  own commands, templates, and artifacts. AgentFlow does not try to be an
@@ -225,7 +216,7 @@ fix. On larger changes, AgentFlow keeps decisions out of transient history,
225
216
  limits scope to one reviewable slice, and gives the next session a reliable
226
217
  starting point.
227
218
 
228
- ## Releasing
219
+ ## 🚀 Releasing
229
220
 
230
221
  Add a changeset with every publishable change:
231
222
 
@@ -238,9 +229,6 @@ updates its version and changelog, publishes it to npm through trusted
238
229
  publishing, and commits the release files back to `main`. A separate job then
239
230
  publishes the matching versioned Agent Skills release on GitHub.
240
231
 
241
- The npm trusted publisher for `@reforma/agentflow` must point at
242
- `reforma-dev/agentflow/.github/workflows/publish_npm.yml`.
243
-
244
232
  Validate a release locally without publishing:
245
233
 
246
234
  ```bash
@@ -249,4 +237,12 @@ bun run test
249
237
  bun publish --dry-run
250
238
  ```
251
239
 
240
+ ## 📖 License
241
+
252
242
  AgentFlow is available under the [MIT License](LICENSE).
243
+
244
+ ## 👤 Maintainer
245
+
246
+ <img src="https://github.com/kachurun.png" width="100" height="100" alt="@kachurun's avatar" style="border-radius: 50%;">
247
+
248
+ Maintained with ❤️ by [@kachurun](https://github.com/kachurun)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reforma/agentflow",
3
- "version": "0.0.1",
3
+ "version": "1.0.0",
4
4
  "description": "An opinionated workflow for shipping production-ready changes with coding agents.",
5
5
  "author": "Reforma, Inc. <dev@reforma.ai>",
6
6
  "type": "module",
@@ -14,6 +14,7 @@
14
14
  "LICENSE"
15
15
  ],
16
16
  "scripts": {
17
+ "prepare": "node -e \"if (process.env.CI === 'true' || process.env.SKIP_GIT_HOOKS === '1') process.exit(0); require('child_process').execSync('bunx simple-git-hooks', {stdio:'inherit'})\"",
17
18
  "build": "bun build src/bin.ts --target=node --outfile=bin/agentflow.js --external skills",
18
19
  "typecheck": "tsc --noEmit",
19
20
  "changeset": "bunx @changesets/cli",
@@ -23,6 +24,9 @@
23
24
  "validate:skills": "gh skill publish --dry-run",
24
25
  "prepublishOnly": "bun run typecheck && bun run test && bun run build"
25
26
  },
27
+ "simple-git-hooks": {
28
+ "commit-msg": "bunx --no-install commitlint --edit \"$1\""
29
+ },
26
30
  "repository": {
27
31
  "type": "git",
28
32
  "url": "git+https://github.com/reforma-dev/agentflow.git"
@@ -48,8 +52,64 @@
48
52
  },
49
53
  "devDependencies": {
50
54
  "@changesets/cli": "3.0.1",
55
+ "@commitlint/cli": "21.2.2",
56
+ "@commitlint/config-conventional": "21.2.2",
51
57
  "@types/bun": "1.4.0",
52
58
  "@types/node": "26.4.0",
59
+ "simple-git-hooks": "2.14.0",
53
60
  "typescript": "7.0.2"
61
+ },
62
+ "commitlint": {
63
+ "extends": [
64
+ "@commitlint/config-conventional"
65
+ ],
66
+ "rules": {
67
+ "type-enum": [
68
+ 2,
69
+ "always",
70
+ [
71
+ "feat",
72
+ "fix",
73
+ "chore",
74
+ "refactor",
75
+ "docs",
76
+ "test",
77
+ "ci",
78
+ "perf",
79
+ "revert"
80
+ ]
81
+ ],
82
+ "type-case": [
83
+ 2,
84
+ "always",
85
+ "lower-case"
86
+ ],
87
+ "type-empty": [
88
+ 2,
89
+ "never"
90
+ ],
91
+ "subject-empty": [
92
+ 2,
93
+ "never"
94
+ ],
95
+ "subject-min-length": [
96
+ 1,
97
+ "always",
98
+ 4
99
+ ],
100
+ "body-max-line-length": [
101
+ 1,
102
+ "always",
103
+ 250
104
+ ],
105
+ "subject-case": [
106
+ 2,
107
+ "never",
108
+ [
109
+ "pascal-case",
110
+ "upper-case"
111
+ ]
112
+ ]
113
+ }
54
114
  }
55
115
  }
@@ -26,6 +26,10 @@ plan.
26
26
  ```markdown
27
27
  # <Feature>
28
28
 
29
+ > Keep this plan current during implementation.
30
+ > Check a PR only after its done-when and verification pass.
31
+ > Record scope changes before leaving the PR.
32
+
29
33
  **Goal:** one sentence
30
34
  **Approach:** 2–3 sentences — the chosen reading
31
35
  **Reuse:** existing APIs this plan calls (`path`)