@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 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), and `type:bug`
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.