@open-tomato/rafa 0.24.1 → 0.28.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 +52 -1
- package/dist/bundled/skills/dev-planner/SKILL.md +11 -0
- package/dist/cli.js +7101 -2568
- package/dist/{describe-66gth329.js → describe-vbwqxj1f.js} +3 -3
- package/dist/effort/store/index.js +4 -4
- package/dist/{index-4fwgqveh.js → index-4j1e3h26.js} +1 -1
- package/dist/{index-7qgng1rf.js → index-4rwvr6t4.js} +1481 -228
- package/dist/{index-h369efkh.js → index-6jkj0dcx.js} +4457 -2562
- package/dist/{index-amyd4dse.js → index-em1vd7kd.js} +2346 -1113
- package/dist/{index-21qkxk63.js → index-p1265xgj.js} +4 -33
- package/dist/{index-twbp38kz.js → index-rv7y8y1j.js} +36 -2
- package/dist/{index-pmkgvtfe.js → index-sf2brh4w.js} +7 -1
- package/dist/{index-w1dnwja1.js → index-xwr54rzt.js} +2 -2
- package/dist/index.js +16 -16
- package/dist/plan/index.js +3 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -175,11 +175,12 @@ the next one, so you rarely have to remember it.
|
|
|
175
175
|
### Tracking effort and learning from skills
|
|
176
176
|
|
|
177
177
|
Each run records what it cost in time, tokens and work, and which skills
|
|
178
|
-
were offered, invoked and worked.
|
|
178
|
+
were offered, invoked and worked. Key commands for the effort record:
|
|
179
179
|
|
|
180
180
|
```bash
|
|
181
181
|
rafa effort collect # gather and store session logs
|
|
182
182
|
rafa effort report # per-plan summary: sessions, tasks, costs
|
|
183
|
+
rafa effort merge <file> # join another device's store into this one
|
|
183
184
|
```
|
|
184
185
|
|
|
185
186
|
`rafa effort report` shows the per-plan tables (sessions by status and
|
|
@@ -210,6 +211,26 @@ The report opens with a fixed line explaining that it shows co-occurrence,
|
|
|
210
211
|
not causation: a skill can be invoked and its failure recur for reasons the
|
|
211
212
|
skill does not cover.
|
|
212
213
|
|
|
214
|
+
### Starting a second device
|
|
215
|
+
|
|
216
|
+
To run rafa on a second device for the same project, bring the effort
|
|
217
|
+
store over consistently:
|
|
218
|
+
|
|
219
|
+
1. On the new device, check for an existing `.rafa/effort/` store and set
|
|
220
|
+
it aside (rename or back up).
|
|
221
|
+
2. From the primary device, make a consistent copy:
|
|
222
|
+
```bash
|
|
223
|
+
rafa effort copy --to=<path>
|
|
224
|
+
```
|
|
225
|
+
Or use `sqlite3 .rafa/effort/effort.sqlite ".backup <path>"`, but never
|
|
226
|
+
a plain file copy during a write.
|
|
227
|
+
3. Transfer the copied store and `.rafa/config.yaml` to the new device's
|
|
228
|
+
`.rafa/` directory.
|
|
229
|
+
4. After both devices have recorded effort, bring them back together with:
|
|
230
|
+
```bash
|
|
231
|
+
rafa effort merge <copied-store-file>
|
|
232
|
+
```
|
|
233
|
+
|
|
213
234
|
### Which agents and skills are involved
|
|
214
235
|
|
|
215
236
|
A task line may end with a declaration, for example
|
|
@@ -279,6 +300,23 @@ project's file outranks the same one in yours. `rafa init` writes both
|
|
|
279
300
|
with every setting commented out at its default, so uncomment a line,
|
|
280
301
|
with its section line, to change it.
|
|
281
302
|
|
|
303
|
+
### `effort`
|
|
304
|
+
|
|
305
|
+
One setting says how long a command waits for another rafa process that
|
|
306
|
+
is writing the effort store before it gives up with `SQLITE_BUSY`.
|
|
307
|
+
|
|
308
|
+
| Key | Default | What it sets |
|
|
309
|
+
|---|---|---|
|
|
310
|
+
| `effort.busyTimeoutMs` | `5000` | the wait in milliseconds, a whole number from 1 to 60000 |
|
|
311
|
+
|
|
312
|
+
There is no unlimited wait, since a lock wait with no end can hang a
|
|
313
|
+
loop; `0`, a fraction and a quoted `"5000"` are refused.
|
|
314
|
+
|
|
315
|
+
```yaml
|
|
316
|
+
effort:
|
|
317
|
+
busyTimeoutMs: 10000
|
|
318
|
+
```
|
|
319
|
+
|
|
282
320
|
### `cleanup`
|
|
283
321
|
|
|
284
322
|
Three settings shape what `rafa cleanup` lists.
|
|
@@ -359,6 +397,19 @@ from GitHub Issues:
|
|
|
359
397
|
file `.rafa/position.json` holds your current place, where you were, and
|
|
360
398
|
where you came from — the same two-slot pattern as `cd -` and
|
|
361
399
|
`git checkout -`, plus a home anchor.
|
|
400
|
+
- **Hopping between epics with `rafa next --roadmap`.** When your epic's
|
|
401
|
+
work is blocked by an issue in another epic, `rafa next --roadmap`
|
|
402
|
+
reaches for that blocker, works it, and comes home. You hold two slots:
|
|
403
|
+
home (your anchor) and current (the work in hand). Reaching for a third
|
|
404
|
+
would mean letting go of home, so rafa halts if a blocker is itself
|
|
405
|
+
blocked. The pattern keeps unattended work safe: a hop into another
|
|
406
|
+
team's epic asks for that team's review before it changes their code.
|
|
407
|
+
Solo projects see a dry hop — the useful part without the permission
|
|
408
|
+
check. One team hops between its own epics. Several teams open a pull
|
|
409
|
+
request when a hop crosses to another board, and `rafa status` says
|
|
410
|
+
`waiting on #C (owner review)` until the team reviews and approves. The
|
|
411
|
+
hop record (`.rafa/hop.json`) tracks where home is and what rafa works.
|
|
412
|
+
When `rafa next` finishes, it deletes the record and returns home.
|
|
362
413
|
- **Other trackers.** GitHub Issues is what works today. Linear support
|
|
363
414
|
is being ported from the project rafa grew out of, as an optional
|
|
364
415
|
add-on in a later version. For anything else, open or upvote a request
|
|
@@ -503,6 +503,17 @@ The report rules in this skill restate `src/report/parse.ts`, which is the autho
|
|
|
503
503
|
|
|
504
504
|
---
|
|
505
505
|
|
|
506
|
+
## Plans that change the effort store
|
|
507
|
+
|
|
508
|
+
When the spec adds or changes anything in `.rafa/effort/`:
|
|
509
|
+
|
|
510
|
+
- Give each migration its own task, naming its id and whether it is additive or which side it breaks. Never write a schema version number or an array position.
|
|
511
|
+
- A task that runs the branch's store code over real data first runs `bun src/rafa.ts effort copy --to=.rafa/scratch/<stub>-effort`, and runs each command with `RAFA_EFFORT_DIR=<absolute path of that dir>` on the same line. The close-out task removes the copy.
|
|
512
|
+
- Work that must land in the live store goes under "Operator steps after the plan merges [human]": `rafa self-update`, then the command.
|
|
513
|
+
- PREREQUISITES carries `- [ ] The installed rafa can read and write the live store: \`rafa effort schema --check\`` under an `[auto]` heading.
|
|
514
|
+
|
|
515
|
+
---
|
|
516
|
+
|
|
506
517
|
## Command-development rule: Claude session declaration
|
|
507
518
|
|
|
508
519
|
When planning work on rafa commands: every command that can start a Claude
|