@zalom/plastic 2.0.0-alpha.21 → 2.0.0-alpha.22

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.
@@ -312,7 +312,7 @@ A release IS a delivery. The active intent that drove this work must be complete
312
312
  2. For each active intent being delivered:
313
313
  a. Write a real `outcome.md` (never leave the scaffold placeholder), `disposition: delivered`, referencing the release tag.
314
314
  b. Update `## Insights` with final observations.
315
- c. Run the mechanical close (`scripts/end-intent`'s steps 1-5): this stamps the intent file's `## Outcome` summary, moves the INDEX.md line to `## Completed` (dated today, with a rich entry description via `--index-note`), appends the savepoint `Done` bookend, commits the store, and disarms (releases the worktree - already gone from step 8 above - and clears `delivery.lock`), all in one call:
315
+ c. Run the mechanical close (`scripts/end-intent`'s steps 1-5): this stamps the intent file's `## Outcome` summary, moves the INDEX.md line to `## Completed` (dated today, with a rich entry description via `--index-note`), appends the terminal savepoint line, commits the store, and disarms (releases the worktree - already gone from step 8 above - and clears `delivery.lock`), all in one call:
316
316
  ```bash
317
317
  ruby ~/.plastic/scripts/end-intent --store <store_path> --id <ID> --disposition delivered \
318
318
  --session "$CLAUDE_CODE_SESSION_ID" \
@@ -81,7 +81,7 @@ this playbook describes what happens next, not a pending action.
81
81
  **Preconditions**, both required before any publish of `1.2.0-beta.1`:
82
82
 
83
83
  - (a) One documentation pass over beta-line skills and docs for the hybrid savepoint contract:
84
- on beta, only the terminal Done bookend still writes a live `savepoint.md`; every other
84
+ on beta, only the terminal savepoint line still writes a live `savepoint.md`; every other
85
85
  milestone lives in `savepoint_events` plus a committed JSONL export. Beta-line prose that
86
86
  still assumes an always-live ledger needs updating first, so a beta-line reader does not
87
87
  mistake an empty ledger for a broken one.
@@ -21,7 +21,8 @@ reference. Every checkpoint inside a track is prose, never another menu.
21
21
 
22
22
  1. **Guided**: deliver a first intent, stage by stage, approving each step yourself. Routes to
23
23
  `references/track-1-guided.md`.
24
- 2. **Auto**: hand delivery to the agent and watch the record and reports as it works. Routes to
24
+ 2. **Auto**: create the intent, write its `graph.md`, then hand it to `scripts/runner step` to
25
+ drive every node to the end, watching the record and reports as it works. Routes to
25
26
  `references/track-2-auto.md`.
26
27
  3. **Projects and roadmaps**: grow a founding intent into a small real project, add more
27
28
  intents, and plan a delivery batch with a roadmap. Routes to
@@ -58,66 +58,47 @@ next, it does not write `spec.md` itself.
58
58
  Checkpoint: after two or three answers, look at the intent file. Every ruling given out loud
59
59
  is already sitting in `### Decisions` and in `## Insights`, in writing.
60
60
 
61
- ### 4. Consolidate the spec
61
+ ### 4. How, write the graph
62
62
 
63
- Type `/plastic-intent-speccing`.
63
+ Ask the same conversation (`/plastic-intent-speccing`) to turn the rulings into the graph.
64
64
 
65
- Artifact: `spec.md`, its eight sections filled from the rulings recorded in station 3.
65
+ Artifact: `graph.md` (nodes, edges, dispatch policy) and one `nodes/N.md` file per node this
66
+ small delivery needs. A delivery this size is one node; many independent tasks instead get
67
+ one node each, dispatched in parallel by the runner.
66
68
 
67
- Checkpoint: point at one sentence in `spec.md` that traces back to an answer given in
68
- station 3.
69
+ Checkpoint: open `graph.md` and point at the one node this worked example needs.
69
70
 
70
- ### 5. Plan
71
-
72
- Ask the same conversation to write the action files and the plan.
73
-
74
- Artifact: `plan.md`, `checklist.md`, and at least one real `actions/ACTION_N.md`. A small
75
- delivery like this one consolidates the whole delivery into a single `actions/ACTION_1.md`
76
- (the ordered steps plus the exact changes); many independent tasks, dispatched in parallel,
77
- instead get one `actions/ACTION_N.md` file per task. `checklist.md` follows a fixed form: tasks start under `## In Progress`, move to
78
- `## Completed` as they land, and a `## Session Log` table records what happened each session.
79
- A task that depends on an owner decision landing first (a destructive step, a structural
80
- ruling) gets an `[ORCHESTRATOR]` prefix and blocks every other item until that decision is
81
- made; this worked example has none.
82
-
83
- Checkpoint: open `checklist.md`. Every task in `plan.md` has a matching checkbox under
84
- `## In Progress`; that checklist, not `plan.md` itself, is what gets ticked off and moved to
85
- `## Completed` during Exec.
86
-
87
- ### 6. Exec, verify before you report
71
+ ### 5. Exec, drive the runner loop
88
72
 
89
73
  Type `/plastic-intent-executing`.
90
74
 
91
- Teach the order: first the agent syncs its working copy with the main line, so no edit lands
92
- on a path a merged change upstream has already touched or removed. Then it makes the change,
93
- runs whatever verifies it (a test suite, or a manual check for a docs change like this one),
94
- and only then ticks the checklist box, moving the task from `## In Progress` to
95
- `## Completed` and adding a `## Session Log` row, before moving to the next task. Verifying
96
- always comes before checking a box, never after, and each task is ticked the moment it lands,
97
- never batched for later.
75
+ Teach the loop: `ruby scripts/runner step <intent_dir>` computes which nodes are ready and
76
+ prints a spawn block to dispatch, `ruby scripts/runner status <intent_dir>` reads the
77
+ ledger (running, done, blocked, or waiting on a decision), and `ruby scripts/runner answer`
78
+ closes a node that needs an owner's ruling. Call `step` again after each dispatched node
79
+ returns, until the graph is empty.
98
80
 
99
81
  Artifact: the actual change on disk (the new README Usage section, or, in the global-store
100
- fallback, a short written note saved as the intent's deliverable) and a fully ticked
101
- `checklist.md`.
82
+ fallback, a short written note saved as the intent's deliverable) and every node in
83
+ `graph.md` at a terminal status.
102
84
 
103
- Checkpoint: find the new Usage section in the README (or the written note) and confirm every
104
- box in `checklist.md` is checked and moved to `## Completed`, with a `## Session Log` row for
105
- this session, before moving to station 7.
85
+ Checkpoint: run `runner status` and confirm no node is left running or blocked, before
86
+ moving to station 6.
106
87
 
107
- ### 7. Done
88
+ ### 6. End
108
89
 
109
90
  Type `/plastic-intent-ending`.
110
91
 
111
- Artifact: a real `outcome.md` (Summary, Delivered, Verification, Follow-ups), the intent
112
- moved from `## Active` to `## Completed` in `INDEX.md`, and a closing `Done` line in
113
- `savepoint.md`.
92
+ Artifact: a real `outcome.md` (Summary, Delivered, Verification, Follow-ups) generated by
93
+ `scripts/outcome-report` from `graph.md` and the ledger, the intent moved from `## Active`
94
+ to `## Completed` in `INDEX.md`, and the terminal savepoint line.
114
95
 
115
96
  Checkpoint: open `outcome.md` and read its Summary. It should describe, in a sentence or
116
97
  two, exactly the README section (or note) just delivered.
117
98
 
118
99
  ## Wrap and where to go next
119
100
 
120
- That is the full cycle once: create, board, decide, spec, plan, build, done. Read
101
+ That is the full cycle once: create, graph, runner step, end. Read
121
102
  [`your-first-intent-in-10-minutes.md`](https://github.com/zalom/plastic/blob/main/docs/guides/your-first-intent-in-10-minutes.md) for the same path condensed to a single
122
103
  read, and [`reading-the-ledgers.md`](https://github.com/zalom/plastic/blob/main/docs/guides/reading-the-ledgers.md) for where each station wrote its
123
104
  work down.
@@ -33,7 +33,7 @@ queued intent from the dashboard's queue itself.)
33
33
 
34
34
  No new command at this station. Watch how the work splits.
35
35
 
36
- Auto owns How (the plan, the checklist, the action files) and Exec (the code, the tests, the
36
+ Auto owns How (`graph.md`, `nodes/`) and Exec (the code, the tests, the
37
37
  mechanical close) from here on. Inside Exec it follows a few fixed habits: it syncs its
38
38
  working copy with the main line before touching anything, ticks each task the moment it
39
39
  lands rather than batching several into one later edit, and independently verifies its own
@@ -63,7 +63,7 @@ Checkpoint: open the intent's `savepoint.md` and name the stage its last line re
63
63
 
64
64
  ### 4. Reading the per-stage reports
65
65
 
66
- No new command. At each stage boundary (What, Why, How, Exec, Done) the agent briefs in a
66
+ No new command. At each stage boundary (What, Why, How, Exec) the agent briefs in a
67
67
  fixed three-line shape: State (what happened and why it matters), Risk (the one thing that
68
68
  could bite, or "nothing flagged"), and Call (the decision left to the user, or the call the
69
69
  agent is taking on its own). That is the depth for a medium or large intent. A small intent
@@ -58,10 +58,10 @@ Plastic has its own lifecycle skills. When a Plastic skill exists for the curren
58
58
  | Why | `plastic-intent-speccing` | Rulings as insights, `resources/*.md`, `spec.md` |
59
59
  | How | `plastic-intent-speccing` | `actions/`, `plan.md`, `checklist.md` |
60
60
  | Exec | `plastic-intent-executing` | Code + `outcome.md` |
61
- | Done | `plastic-intent-ending` | Lifecycle transition |
61
+ | End | `plastic-intent-ending` | Lifecycle transition |
62
62
 
63
63
  **Artifact convention:** ALL lifecycle artifacts go to the active intent directory (`store/{id}--{slug}/`). Never write specs to `docs/superpowers/specs/` or plans to `docs/superpowers/plans/`.
64
64
 
65
- ## When You're Done
65
+ ## When the Project Wraps
66
66
 
67
67
  When this project satisfies the governing intent's goal, report back. The orchestrator will complete the strategic intent.