reffy-cli 1.8.0 → 1.9.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 +10 -1
- package/dist/cli.js +6 -0
- package/dist/plan.js +4 -0
- package/dist/skills.js +30 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -136,7 +136,7 @@ managed: true
|
|
|
136
136
|
- `commands` declares the CLI commands the skill wraps, which `reffy doctor` cross-checks against the installed CLI.
|
|
137
137
|
- `managed: true` marks skills Reffy owns. `reffy init` scaffolds and refreshes managed skills in place and never touches unmanaged ones.
|
|
138
138
|
|
|
139
|
-
`reffy init` ships
|
|
139
|
+
`reffy init` ships seven managed skills covering the core workflows: `create-artifact`, `create-change`, `archive-change`, `supersede-change`, `inspect-specs`, `sync-remote`, and `diagnose`. Author your own with `reffy skill create <name>`.
|
|
140
140
|
|
|
141
141
|
```bash
|
|
142
142
|
reffy skill list # name + description + managed flag
|
|
@@ -370,6 +370,15 @@ Useful side commands during the arc:
|
|
|
370
370
|
|
|
371
371
|
Pivots, deprecations, and wind-downs are not a separate concept in ReffySpec — they are ordinary changes whose delta is mostly REMOVED or MODIFIED requirements instead of ADDED ones. Because every change's `specs/<capability>/spec.md` is already a delta against the canonical spec, a course correction reuses the same machinery as a feature addition: scaffold a change, author a delta that removes or rewrites the relevant requirements, pair it with code-removal tasks, and archive it when shipped. The history of pivots stays legible as a series of deltas under `changes/archive/`, rather than getting buried in code commits.
|
|
372
372
|
|
|
373
|
+
There is no pivot command and no per-requirement "deprecated" flag: signaling a change of direction just requires another change. The archive is append-only — you never edit or delete an archived change to reverse it; you land a new change on top, and canonical `specs/` always reflects current truth. When a change reverses or replaces a prior one, name the prior change-id(s) in an optional `## Supersedes` section of `proposal.md`:
|
|
374
|
+
|
|
375
|
+
```md
|
|
376
|
+
## Supersedes
|
|
377
|
+
- add-old-direction
|
|
378
|
+
```
|
|
379
|
+
|
|
380
|
+
This is a navigational pointer that keeps the lineage explicit; the spec delta remains the authoritative record of what actually changed. `reffy plan create` scaffolds the `## Supersedes` section (defaulting to `None`) so the convention is there when you need it.
|
|
381
|
+
|
|
373
382
|
### Reference implementation in this repo
|
|
374
383
|
|
|
375
384
|
- `AGENTS.md`: contains both managed instruction blocks and encodes sequencing.
|
package/dist/cli.js
CHANGED
|
@@ -195,6 +195,12 @@ These instructions are for AI assistants working in this project.
|
|
|
195
195
|
- Delta specs must use \`## ADDED|MODIFIED|REMOVED|RENAMED Requirements\`.
|
|
196
196
|
- Each requirement must include at least one \`#### Scenario:\`.
|
|
197
197
|
|
|
198
|
+
## Representing Pivots
|
|
199
|
+
|
|
200
|
+
- A pivot, deprecation, or wind-down is not a special object — it is an ordinary change whose delta is mostly \`REMOVED\`/\`MODIFIED\` requirements.
|
|
201
|
+
- Never edit or delete an archived change to reverse direction; land a new change on top. The archive is an append-only ledger and canonical \`specs/\` always reflects current truth.
|
|
202
|
+
- When a change reverses or replaces the direction of a prior one, name the prior change-id(s) in a \`## Supersedes\` section of \`proposal.md\`. This is a navigational pointer; the spec delta remains the authoritative record of what changed.
|
|
203
|
+
|
|
198
204
|
## Reffy Relationship
|
|
199
205
|
|
|
200
206
|
- Reffy owns the runtime and artifact workflow.
|
package/dist/plan.js
CHANGED
|
@@ -156,6 +156,10 @@ ${changeBullets}
|
|
|
156
156
|
|
|
157
157
|
${buildImpactText(capabilityId, signals)}
|
|
158
158
|
|
|
159
|
+
## Supersedes
|
|
160
|
+
_Optional. If this change reverses or replaces the direction of a prior change (a pivot, deprecation, or wind-down), name the prior change-id(s) here, e.g. \`- add-old-direction\`. Leave as "None" otherwise. The spec delta remains the authoritative record of what changed; this is a navigational pointer._
|
|
161
|
+
None
|
|
162
|
+
|
|
159
163
|
## Reffy References
|
|
160
164
|
${references}
|
|
161
165
|
`;
|
package/dist/skills.js
CHANGED
|
@@ -341,6 +341,36 @@ Use this once a change is implemented and verified and you want to fold its spec
|
|
|
341
341
|
|
|
342
342
|
## Failure modes
|
|
343
343
|
- If archive reports unmerged or conflicting requirements, inspect the delta against the canonical spec before retrying.`,
|
|
344
|
+
},
|
|
345
|
+
{
|
|
346
|
+
name: "supersede-change",
|
|
347
|
+
description: "Represent a pivot, deprecation, or reversal as a new change that supersedes a prior one.",
|
|
348
|
+
triggers: [
|
|
349
|
+
"pivot",
|
|
350
|
+
"change direction",
|
|
351
|
+
"deprecate",
|
|
352
|
+
"wind down",
|
|
353
|
+
"reverse the decision",
|
|
354
|
+
"supersede",
|
|
355
|
+
"replace the approach",
|
|
356
|
+
"abandon",
|
|
357
|
+
],
|
|
358
|
+
commands: ["reffy plan list", "reffy plan create", "reffy plan validate", "reffy plan archive"],
|
|
359
|
+
body: `## When to use this skill
|
|
360
|
+
Use this when a request changes direction rather than adding to it: a pivot, deprecation, wind-down, or reversal of a prior decision. A pivot is not a special object — it is an ordinary change that supersedes another. Never edit or delete an archived change to reverse it; land a new change on top. Canonical \`specs/\` always reflects current truth and the archive stays append-only.
|
|
361
|
+
|
|
362
|
+
## Steps
|
|
363
|
+
1. Run \`reffy plan list\` to identify the prior change-id(s) whose direction this reverses or replaces.
|
|
364
|
+
2. Run \`reffy plan create --change-id <kebab-id> --title "<title>"\` for the new change.
|
|
365
|
+
3. Author the spec delta with \`REMOVED\`/\`MODIFIED\` requirements (not \`ADDED\`) that retire or rewrite the superseded behavior. The delta is the authoritative record of what changed.
|
|
366
|
+
4. In \`proposal.md\`, fill the \`## Supersedes\` section with the prior change-id(s) — a navigational pointer that keeps the lineage explicit.
|
|
367
|
+
5. Pair the change with code-removal / migration tasks in \`tasks.md\`.
|
|
368
|
+
6. Run \`reffy plan validate <change-id>\`, then \`reffy plan archive <change-id>\` once shipped.
|
|
369
|
+
|
|
370
|
+
## Failure modes
|
|
371
|
+
- If you find yourself wanting to edit an archived change, stop: model the reversal as a new superseding change instead.
|
|
372
|
+
- Leaving \`## Supersedes\` as "None" on a genuine pivot loses the lineage; name the prior change-id.
|
|
373
|
+
- A pivot whose delta only \`ADDED\`s requirements is probably not actually retiring the old direction — check the canonical spec for what should be \`REMOVED\`/\`MODIFIED\`.`,
|
|
344
374
|
},
|
|
345
375
|
{
|
|
346
376
|
name: "inspect-specs",
|