@open-tomato/rafa 0.21.0 → 0.22.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 +14 -4
- package/dist/bundled/skills/dev-planner/SKILL.md +20 -0
- package/dist/cli.js +2986 -1656
- package/dist/effort/store/index.js +1 -1
- package/dist/{index-am92b8qp.js → index-ae290g0m.js} +2 -1
- package/dist/{index-pzpk59ma.js → index-e30zazs6.js} +1247 -567
- package/dist/{index-kv51t295.js → index-gzr2gtmh.js} +3153 -2559
- package/dist/index.js +2 -2
- package/dist/plan-prompt.md +7 -1
- package/dist/templates/epic-guard.yml +50 -0
- package/dist/templates/spec.md +4 -0
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -327,24 +327,34 @@ from GitHub Issues:
|
|
|
327
327
|
`rafa plan create --next` takes the first line that is neither done
|
|
328
328
|
nor already being worked on, and stops rather than skipping ahead when
|
|
329
329
|
that issue is not ready. `rafa plan create --issue=<n>` plans from one
|
|
330
|
-
issue directly.
|
|
330
|
+
issue directly. Epic lines on the roadmap are descended into when they
|
|
331
|
+
are open, `horizon:now` and not done, making their specs the walk's
|
|
332
|
+
focus; `rafa epics` shows one epic's specs as a table.
|
|
333
|
+
- **Epics group specs into features.** An epic is a bigger issue with an
|
|
334
|
+
acceptance criteria, an estimate and an ordered checklist of its specs.
|
|
335
|
+
Specs carry the epic's label to join it, and rafa never plans across
|
|
336
|
+
two epics. Projects with no epics work exactly as before; an epic is
|
|
337
|
+
purely optional.
|
|
331
338
|
- **A few labels carry the state**: `type:spec`, `spec:ready` (a person
|
|
332
339
|
says a plan may be made from it), `spec:needs-work` (details pending,
|
|
333
|
-
or the planner's review found gaps and listed them),
|
|
334
|
-
with `needs-triage` for what a run files on its own
|
|
340
|
+
or the planner's review found gaps and listed them), `type:bug`
|
|
341
|
+
with `needs-triage` for what a run files on its own, `type:epic` and
|
|
342
|
+
`epic:<slug>` (the epic and its member specs).
|
|
335
343
|
- **Safety, in short.** An issue's text ends up in an agent's prompt, so
|
|
336
344
|
rafa plans only from an issue whose author can write to the
|
|
337
345
|
repository, that a maintainer has labelled `spec:ready`, that is
|
|
338
346
|
complete, and that holds no local path or token. Comments are never
|
|
339
347
|
read into a plan, rafa never applies `spec:ready` by itself, and
|
|
340
348
|
machine-specific failures a run meets stay off your public tracker.
|
|
349
|
+
Specs in an epic may not carry two `epic:` labels; `rafa issue ready`
|
|
350
|
+
refuses the second one.
|
|
341
351
|
- **Other trackers.** GitHub Issues is what works today. Linear support
|
|
342
352
|
is being ported from the project rafa grew out of, as an optional
|
|
343
353
|
add-on in a later version. For anything else, open or upvote a request
|
|
344
354
|
in [the issues](https://github.com/open-tomato/rafa/issues).
|
|
345
355
|
|
|
346
356
|
The full guide, with the spec template explained, a prompt for drafting
|
|
347
|
-
a spec and every gate in order, is
|
|
357
|
+
a spec, epics and every gate in order, is
|
|
348
358
|
[docs/specs-and-roadmap.md](docs/specs-and-roadmap.md).
|
|
349
359
|
|
|
350
360
|
## From a checkout
|
|
@@ -205,6 +205,26 @@ Prose that the loop injects into the context of **only the tasks of one stage**:
|
|
|
205
205
|
|
|
206
206
|
One `rafa:stage-context` block per stage (optional). The block binds to the nearest `# Stage:` heading above it whether it sits before that stage's tasks or after them, so place it straight after the heading, where a reader looks for it. When one stage holds two, the first is read and each later one is reported as `duplicate-block`. A block above every `# Stage:` heading belongs to no stage: the parser reports it as `orphan-stage-context` and does not read it.
|
|
207
207
|
|
|
208
|
+
#### The documentation writer's section
|
|
209
|
+
|
|
210
|
+
A spec may end with `## For the documentation writer`: the use cases,
|
|
211
|
+
edge cases, config examples, analogies and rejected alternatives from its
|
|
212
|
+
design session. Carry it into the plan as context for documentation tasks
|
|
213
|
+
only, so it shapes the examples those tasks write: which situations they
|
|
214
|
+
show and in what order, which config examples they give, lightest first,
|
|
215
|
+
and which analogies they keep.
|
|
216
|
+
|
|
217
|
+
* Put it in the `rafa:stage-context` of the stage holding the plan's
|
|
218
|
+
documentation tasks, the ones declared `{agent=doc-updater}`, trimmed
|
|
219
|
+
to what those tasks document. Never put it in `rafa:context`, which
|
|
220
|
+
reaches every task.
|
|
221
|
+
* It never becomes tasks of its own. The plan's tasks come from the
|
|
222
|
+
spec's "Tasks the plan must carry"; a use case or example listed in the
|
|
223
|
+
section is material for a documentation task, not a deliverable.
|
|
224
|
+
* When no stage holds such a task, because every documentation edit
|
|
225
|
+
folds into the task whose change it documents, the section stays out
|
|
226
|
+
of the plan. The spec keeps it for whoever documents the change later.
|
|
227
|
+
|
|
208
228
|
### `rafa:report` (agent output only)
|
|
209
229
|
|
|
210
230
|
Agents return a structured report block at the end of their output. The loop parses this to record findings, blockers, and other metadata.
|