@zalom/plastic 2.0.0-alpha.21 → 2.0.0-alpha.23
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/PLASTIC.md +20 -18
- package/agents/plastic-enforcer.md +6 -3
- package/agents/plastic-executor.md +4 -0
- package/agents/plastic-node-research.md +28 -0
- package/agents/plastic-node-verify.md +27 -0
- package/agents/plastic-node-work.md +32 -0
- package/bin/lib/context_budget.rb +1 -1
- package/hooks/hooks.json +12 -0
- package/hooks/statusline +28 -0
- package/hooks/stop +5 -0
- package/package.json +1 -1
- package/scripts/doctor.rb +159 -10
- package/scripts/end-intent +3 -3
- package/scripts/graph-measure +249 -0
- package/scripts/hook-capture +1 -0
- package/scripts/hook-savepoint +24 -2
- package/scripts/hook-session-start +333 -321
- package/scripts/hook-stop +57 -0
- package/scripts/insight-append +18 -4
- package/scripts/lib/active_delivery.rb +61 -0
- package/scripts/lib/agent_models.rb +10 -1
- package/scripts/lib/codex_adapter.rb +197 -0
- package/scripts/lib/doctor_core.rb +8 -3
- package/scripts/lib/engine_permissions.rb +88 -0
- package/scripts/lib/graph_edges.rb +4 -4
- package/scripts/lib/graph_file.rb +4 -4
- package/scripts/lib/graph_measure.rb +645 -0
- package/scripts/lib/graph_measure_budget.rb +408 -0
- package/scripts/lib/graph_measure_cohorts.rb +487 -0
- package/scripts/lib/graph_measure_models.rb +411 -0
- package/scripts/lib/graph_measure_report.rb +532 -0
- package/scripts/lib/graph_tree.rb +2 -2
- package/scripts/lib/handoff.rb +36 -5
- package/scripts/lib/harness_adapter.rb +184 -0
- package/scripts/lib/hook_registry.rb +13 -1
- package/scripts/lib/hook_replay.rb +23 -5
- package/scripts/lib/index_projection.rb +1 -1
- package/scripts/lib/installer_core.rb +112 -6
- package/scripts/lib/intent_screen.rb +1 -1
- package/scripts/lib/intent_validator.rb +2 -2
- package/scripts/lib/meter_watch.rb +15 -9
- package/scripts/lib/node_file.rb +3 -3
- package/scripts/lib/node_ledger.rb +8 -1
- package/scripts/lib/node_progress.rb +153 -0
- package/scripts/lib/outcome_report.rb +1 -1
- package/scripts/lib/report_screen.rb +10 -6
- package/scripts/lib/roadmap_graph.rb +1 -1
- package/scripts/lib/roadmap_queue.rb +1 -1
- package/scripts/lib/roadmap_render.rb +1 -1
- package/scripts/lib/runner_absorb.rb +31 -5
- package/scripts/lib/runner_dispatch.rb +26 -11
- package/scripts/lib/runner_until_empty.rb +252 -0
- package/scripts/lib/runner_watch.rb +389 -0
- package/scripts/lib/savepoint.rb +3 -3
- package/scripts/lib/session_git.rb +2 -2
- package/scripts/lib/stop_gate.rb +95 -0
- package/scripts/lib/verify_intent.rb +2 -2
- package/scripts/lib/work_graph_validator.rb +6 -6
- package/scripts/new-intent +1 -1
- package/scripts/node-run +224 -0
- package/scripts/read-config +6 -0
- package/scripts/runner +203 -19
- package/scripts/skill-lint +115 -6
- package/scripts/verify-intent +1 -1
- package/skills/auto/SKILL.md +54 -56
- package/skills/auto/references/agent-architecture.md +10 -8
- package/skills/auto/references/human-report-contract.md +1 -1
- package/skills/conventions/references/completion-and-done.md +7 -7
- package/skills/conventions/references/knowledge-graph.md +9 -0
- package/skills/conventions/references/locks-and-worktrees.md +3 -3
- package/skills/conventions/references/maintenance-and-revisions.md +1 -1
- package/skills/doctor/SKILL.md +3 -3
- package/skills/doctor/report.md +1 -1
- package/skills/intent-continuing/references/boarding-matrix.md +2 -2
- package/skills/intent-creating/SKILL.md +58 -133
- package/skills/intent-creating/evals/evals.json +1 -1
- package/skills/intent-ending/SKILL.md +48 -56
- package/skills/intent-ending/evals/evals.json +1 -1
- package/skills/intent-executing/SKILL.md +43 -136
- package/skills/intent-speccing/SKILL.md +3 -0
- package/skills/releasing/SKILL.md +1 -1
- package/skills/releasing/references/release-lines.md +1 -1
- package/skills/tutorial/SKILL.md +2 -1
- package/skills/tutorial/references/track-1-guided.md +21 -40
- package/skills/tutorial/references/track-2-auto.md +3 -3
- package/templates/agents.md +2 -2
|
@@ -1,116 +1,67 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-intent-executing
|
|
3
|
-
description: Use when you have a
|
|
3
|
+
description: Use when you have a graph or a plan to execute. A graph delivery runs on
|
|
4
|
+
`scripts/runner`'s three verbs, `step`, `status`, and `answer`; older, non-graph work
|
|
5
|
+
dispatches the `plastic-executor` agent for one consolidated action.
|
|
4
6
|
user-invocable: true
|
|
5
7
|
---
|
|
6
8
|
|
|
7
9
|
# Executing a Plan
|
|
8
10
|
|
|
9
|
-
## Overview
|
|
10
|
-
|
|
11
|
-
Load plan from the active intent's `plan.md`, execute all tasks, review as below, report when complete.
|
|
12
|
-
|
|
13
11
|
## Step 0: Sync Worktree First
|
|
14
12
|
|
|
15
|
-
Before
|
|
16
|
-
|
|
13
|
+
Before touching any file the graph or the plan names, sync the code worktree with main so no
|
|
14
|
+
edit lands on a path a merged rename or delete already removed:
|
|
17
15
|
|
|
18
16
|
```
|
|
19
17
|
git -C <worktree> fetch origin && git -C <worktree> merge --ff-only origin/main
|
|
20
18
|
```
|
|
21
19
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
Read `../plastic-conventions/references/locks-and-worktrees.md` for delivery isolation: the
|
|
27
|
-
single-owner lock, claims, worktrees, solo mode, and the station ledger, before touching the
|
|
28
|
-
worktree above. This path resolves relative to this skill's own installed directory.
|
|
29
|
-
|
|
30
|
-
## Mode Selection
|
|
31
|
-
|
|
32
|
-
### Check for superpowers first
|
|
33
|
-
If `superpowers:subagent-driven-development` is available as a skill, delegate to it. If only `superpowers:executing-plans` is available, delegate to that. If neither is available, use Plastic's own execution engine below.
|
|
20
|
+
If a named file or directory is missing (renamed or removed upstream), stop and report it
|
|
21
|
+
rather than editing a stale path. Read
|
|
22
|
+
`../plastic-conventions/references/locks-and-worktrees.md` for delivery isolation before
|
|
23
|
+
touching the worktree above.
|
|
34
24
|
|
|
35
|
-
|
|
36
|
-
- Tell the skill that the plan is at `~/.plastic/store/ID--slug/plan.md` (not `docs/superpowers/plans/`)
|
|
37
|
-
- Tell the skill that specs live at `~/.plastic/store/ID--slug/spec.md` (not `docs/superpowers/specs/`)
|
|
38
|
-
- All meta-artifacts must stay inside `~/.plastic/store/ID--slug/`
|
|
39
|
-
- Code files go in the project tree as normal
|
|
40
|
-
- Superpowers skills respect "user preferences for plan/spec location"; Plastic IS that preference
|
|
25
|
+
## step
|
|
41
26
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
The
|
|
27
|
+
`ruby scripts/runner step <intent_dir>` computes which nodes in `graph.md`/`nodes/*.md` are
|
|
28
|
+
ready, applies dispatch policy (model, call cap), and prints a spawn block per dispatched node
|
|
29
|
+
- agent, model, packet path, the one test command, the call cap - fenced in its own stdout.
|
|
30
|
+
The runner itself never spawns an agent (327 D42). Call `step` again after each dispatched
|
|
31
|
+
node returns.
|
|
46
32
|
|
|
47
33
|
### Graph dispatch: the paste
|
|
48
34
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
### Inline (Fallback)
|
|
52
|
-
Executes tasks sequentially in the current session. Use when subagents aren't available or user explicitly requests inline mode.
|
|
53
|
-
|
|
54
|
-
To select: user says "inline", "execute inline", or "no subagents".
|
|
55
|
-
|
|
56
|
-
## Subagent-Driven Workflow
|
|
57
|
-
|
|
58
|
-
### Step 1: Load Plan
|
|
59
|
-
Run Step 0 (Sync Worktree First) before this step.
|
|
60
|
-
1. Read the active intent's `plan.md`
|
|
61
|
-
2. Extract ALL tasks with their full text, store in memory. Never make subagents read the plan file.
|
|
62
|
-
3. Create a task list to track progress
|
|
63
|
-
|
|
64
|
-
### Step 2: Execute Each Task
|
|
65
|
-
|
|
66
|
-
Dispatch ONE executor subagent and give it the whole delivery: every task's full text from `plan.md` (pasted in, never a file reference), every action file with its failure-mode matrix, the checklist items it must tick, the project context from CLAUDE.md, the active intent context from `{ID}--{slug}.md`, and the worktree path. In auto mode this is the `plastic-executor` agent; elsewhere use the `implementer-prompt.md` template. The executor writes the matrix's tests and commits them red, implements the consolidated action in order, ticks each item as it lands (see `## Tick-as-you-land`), and drives the test suite green.
|
|
67
|
-
|
|
68
|
-
After each commit lands (the red commit and every commit after it), append a `Commit` line to the savepoint ledger: `ruby ~/.plastic/scripts/savepoint-note <intent_dir> --kind Commit --text "<sha> <what it proves>"` (intent 317, D17). This is what feeds `report-screen delay`; a commit with no line is a gap the delay report cannot explain.
|
|
69
|
-
|
|
70
|
-
Print `ruby ~/.plastic/scripts/report-screen state <intent_dir> --changed "<what just landed>"` as the first characters of the reply, nothing before it, no fence, right after the red commit and again once the suite goes green (intent 331f).
|
|
71
|
-
|
|
72
|
-
Read its response by code:
|
|
73
|
-
- DONE or DONE_WITH_CONCERNS → proceed to Step 3.
|
|
74
|
-
- NEEDS_CONTEXT → provide the missing context, re-dispatch the executor.
|
|
75
|
-
- BLOCKED → stop, report to the user, wait for resolution.
|
|
76
|
-
|
|
77
|
-
### Step 3: Review by Risk
|
|
78
|
-
Apply the auto skill's risk rule to the executor's return and the diff: a matrix row no test could prove, a diff touching a hook, the lock, the worktree code, the installer, or a release file, a DONE_WITH_CONCERNS or a deviation from the matrix, or an owner-facing surface no test pins. When a rule fires, dispatch the post-execution reviewer with `code-quality-reviewer-prompt.md` (a separate agent with fresh context, never the maker); if it returns changes, re-dispatch the executor to fix them, then run the suite once more. When no rule fires, the green suite is the review.
|
|
79
|
-
|
|
80
|
-
Whenever a review verdict returns - the plan review before code, or the post-execution review above - the lead appends a `Review` line: `ruby ~/.plastic/scripts/savepoint-note <intent_dir> --kind Review --text "<verdict, what changed>"` (intent 317, D17). This is the other half of what `report-screen delay` reads.
|
|
35
|
+
The dispatch step is the paste, not a lead's hand-typed brief: copy each spawn block into the
|
|
36
|
+
Agent tool as its own dispatch, verbatim.
|
|
81
37
|
|
|
82
|
-
|
|
38
|
+
On Claude Code, the session spawns each dispatched node as a background subagent of its
|
|
39
|
+
per-kind agent (`plastic-node-work`, `plastic-node-verify`, `plastic-node-research`) named in
|
|
40
|
+
the spawn block. On Codex, one node runs over `codex exec` in a sandbox scoped to its kind and
|
|
41
|
+
writes only a return file, which the next `step` absorbs the same way it absorbs a Claude Code
|
|
42
|
+
return.
|
|
83
43
|
|
|
84
|
-
|
|
85
|
-
Capture observations in `## Insights`. When ALL checklist items are checked:
|
|
44
|
+
## status
|
|
86
45
|
|
|
87
|
-
|
|
88
|
-
|
|
46
|
+
`ruby scripts/runner status <intent_dir>` renders the graph's ledger state: which nodes are
|
|
47
|
+
running, done, blocked, or waiting on a decision. Safe to poll constantly; read node status
|
|
48
|
+
through `NodeLedger.status` before dispatching anything, never re-derive it by eye.
|
|
89
49
|
|
|
90
|
-
|
|
50
|
+
## answer
|
|
91
51
|
|
|
92
|
-
|
|
52
|
+
`ruby scripts/runner answer <intent_dir> --node <id> --decision "<text>"` closes a
|
|
53
|
+
`needs_decision` node with the owner's ruling, recorded to the ledger, so `step` can resume
|
|
54
|
+
the graph past it.
|
|
93
55
|
|
|
94
|
-
|
|
95
|
-
Run Step 0 (Sync Worktree First) before this step.
|
|
96
|
-
1. Read plan file from active intent
|
|
97
|
-
2. Review critically, raise concerns before starting
|
|
98
|
-
3. Create task list to track progress
|
|
56
|
+
## Non-graph work
|
|
99
57
|
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
### Step 3: Update Intent and Complete
|
|
108
|
-
Capture observations in `## Insights`. When ALL checklist items are checked:
|
|
109
|
-
|
|
110
|
-
1. Update the intent's cluster entries in `INDEX.md` to show `_(completed)_`. Do this first, so the store auto-commit in the next step picks it up. `plastic-intent-ending` does not cover cluster maintenance (`store-indexing` and `store-curating` own it), so doing it here keeps the step from being lost.
|
|
111
|
-
2. Hand the mechanical close to `plastic-intent-ending`. It owns `outcome.md`, the intent file's `## Outcome` stamp, the INDEX terminal move, the savepoint `Done` line, the store auto-commit, disarm, the QMD reindex, and the EM-to-CTO owner report, as ONE delegation. Author the outcome.md content when that skill asks for it; do not restate the mechanical steps here.
|
|
112
|
-
|
|
113
|
-
**This is NOT optional.** Complete the intent immediately when work is done.
|
|
58
|
+
When the intent has no `graph.md`, dispatch ONE `plastic-executor` subagent with the whole
|
|
59
|
+
consolidated action pasted in (never a file reference): every task's full text, every action
|
|
60
|
+
file with its failure-mode matrix, the checklist items it must tick, the project context, and
|
|
61
|
+
the worktree path. It writes the matrix's tests and commits them red, implements the
|
|
62
|
+
consolidated action in order, ticks each item as it lands (see `## Tick-as-you-land`), and
|
|
63
|
+
drives the test suite green. Read its response by code: DONE or DONE_WITH_CONCERNS proceeds;
|
|
64
|
+
NEEDS_CONTEXT provides the missing context and re-dispatches; BLOCKED stops and reports.
|
|
114
65
|
|
|
115
66
|
## Tick-as-you-land
|
|
116
67
|
|
|
@@ -124,57 +75,13 @@ progress. Do not batch several tasks' worth of checklist updates into one
|
|
|
124
75
|
later edit; tick the moment the task is verified, before moving to the next
|
|
125
76
|
task.
|
|
126
77
|
|
|
127
|
-
## Verify before every owner review
|
|
128
|
-
|
|
129
|
-
Hard rule: before presenting any completed work to the owner, independently
|
|
130
|
-
verify it. Grep or run the artifact the work just produced (the test suite,
|
|
131
|
-
the changed file, the installed output) rather than restating the intended
|
|
132
|
-
change. Never present an unverified claim to the owner. If verification
|
|
133
|
-
fails, fix it before the review, not after.
|
|
134
|
-
|
|
135
|
-
## Methods report (audits and sweeps)
|
|
136
|
-
|
|
137
|
-
When the work is an audit or a sweep (checking many files or many instances of
|
|
138
|
-
something rather than building one artifact), deposit a methods report to
|
|
139
|
-
`{intent_dir}/resources/` before the review: what was checked, how it was
|
|
140
|
-
checked, and what was found. This lets the owner review the method, not just
|
|
141
|
-
the conclusion.
|
|
142
|
-
|
|
143
|
-
## Reroute vs dispatch
|
|
144
|
-
|
|
145
|
-
A human-facing instruction like "run /plastic-intent-speccing" means the user
|
|
146
|
-
types that slash command themselves; it is never handed to a
|
|
147
|
-
subagent. Agent-facing dispatch text is a prompt passed to the Agent tool for
|
|
148
|
-
a subagent to execute. Keep the two separate: do not address a slash command
|
|
149
|
-
to a subagent, and do not paste a dispatch prompt at the user.
|
|
150
|
-
|
|
151
|
-
## Owner decisions during Exec
|
|
152
|
-
|
|
153
|
-
When presenting a batch of Exec decisions for the owner to rule, read
|
|
154
|
-
`~/.plastic/_decision-tables.md` and follow the numbered-table procedure,
|
|
155
|
-
persisting each ruling with `--stage Exec`.
|
|
156
|
-
|
|
157
78
|
## Position in the cycle
|
|
158
79
|
|
|
159
|
-
- **Before:** `
|
|
160
|
-
|
|
161
|
-
- **
|
|
80
|
+
- **Before:** the graph (`graph.md`, `nodes/*.md`), or `plan.md`/`checklist.md`, exists; the
|
|
81
|
+
worktree is armed.
|
|
82
|
+
- **Produces:** code changes and a ticked checklist.
|
|
83
|
+
- **Next:** `plastic-intent-ending` owns `outcome.md`, generated through
|
|
84
|
+
`scripts/outcome-report`, and the rest of the mechanical close.
|
|
162
85
|
|
|
163
86
|
Read `../plastic-conventions/references/lifecycle-and-savepoints.md` for the subagent
|
|
164
87
|
report-home contract this handoff relies on.
|
|
165
|
-
|
|
166
|
-
## Model Selection for Subagents
|
|
167
|
-
|
|
168
|
-
Match model to task complexity:
|
|
169
|
-
- **Mechanical tasks** (config files, boilerplate): cheapest available
|
|
170
|
-
- **Standard implementation**: default model
|
|
171
|
-
- **Architecture, integration, review**: most capable model
|
|
172
|
-
|
|
173
|
-
## Prompt Templates
|
|
174
|
-
|
|
175
|
-
Subagent prompts are in this skill's directory:
|
|
176
|
-
- `implementer-prompt.md`: template for implementer subagents
|
|
177
|
-
- `spec-reviewer-prompt.md`: template for spec compliance reviewers
|
|
178
|
-
- `code-quality-reviewer-prompt.md`: template for code quality reviewers
|
|
179
|
-
|
|
180
|
-
Read the appropriate template when dispatching each subagent type.
|
|
@@ -14,6 +14,9 @@ user-invocable: true
|
|
|
14
14
|
|
|
15
15
|
# Intent Speccing: thinking mode
|
|
16
16
|
|
|
17
|
+
Speccing is optional: a ruled or small-enough intent skips straight to How/Exec, and this
|
|
18
|
+
skill runs only when the request genuinely needs a design conversation first.
|
|
19
|
+
|
|
17
20
|
One skill for the whole thinking conversation on an intent. It asks one question at a time,
|
|
18
21
|
records every owner ruling the moment it lands, grills when asked, deposits research in
|
|
19
22
|
`resources/`, and ends by writing the action files the work runs from and consolidating the
|
|
@@ -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
|
|
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
|
|
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.
|
package/skills/tutorial/SKILL.md
CHANGED
|
@@ -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**:
|
|
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.
|
|
61
|
+
### 4. How, write the graph
|
|
62
62
|
|
|
63
|
-
|
|
63
|
+
Ask the same conversation (`/plastic-intent-speccing`) to turn the rulings into the graph.
|
|
64
64
|
|
|
65
|
-
Artifact: `
|
|
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:
|
|
68
|
-
station 3.
|
|
69
|
+
Checkpoint: open `graph.md` and point at the one node this worked example needs.
|
|
69
70
|
|
|
70
|
-
### 5.
|
|
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
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
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
|
|
101
|
-
`
|
|
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:
|
|
104
|
-
|
|
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
|
-
###
|
|
88
|
+
### 6. End
|
|
108
89
|
|
|
109
90
|
Type `/plastic-intent-ending`.
|
|
110
91
|
|
|
111
|
-
Artifact: a real `outcome.md` (Summary, Delivered, Verification, Follow-ups)
|
|
112
|
-
|
|
113
|
-
`savepoint.
|
|
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,
|
|
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 (
|
|
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,11 +63,11 @@ 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
|
|
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
|
|
70
|
-
gets one briefing, at How,
|
|
70
|
+
gets one briefing, at How, merging in what the earlier stages would have said.
|
|
71
71
|
|
|
72
72
|
Checkpoint: in the most recent report, point at the State line, the Risk line, and the Call
|
|
73
73
|
line.
|
package/templates/agents.md
CHANGED
|
@@ -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
|
-
|
|
|
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
|
|
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.
|