@zalom/plastic 1.0.3 → 1.1.1
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-reference.md +11 -11
- package/PLASTIC.md +11 -9
- package/README.md +48 -1
- package/agents/plastic-enforcer.md +8 -5
- package/agents/plastic-future-intent-researcher.md +1 -1
- package/agents/plastic-intent-curator.md +9 -10
- package/agents/plastic-spec-specialist.md +9 -6
- package/bin/plastic.js +2 -2
- package/hooks/check-update +1 -1
- package/hooks/continue +1 -1
- package/package.json +1 -1
- package/scripts/dashboard.rb +29 -24
- package/scripts/doctor.rb +188 -9
- package/scripts/end-intent +330 -0
- package/scripts/hook-code-gate +1 -1
- package/scripts/hook-continue +2 -2
- package/scripts/hook-create-gate +2 -2
- package/scripts/hook-session-start +1 -1
- package/scripts/install.rb +2 -1
- package/scripts/lib/bridge.rb +116 -3
- package/scripts/lib/dashboard_banner.rb +8 -9
- package/scripts/lib/installer_core.rb +17 -8
- package/scripts/lib/legacy_bookend_amnesty.rb +35 -0
- package/scripts/lib/release_guard.rb +62 -0
- package/scripts/lib/roadmap_queue.rb +285 -0
- package/scripts/lib/roadmap_savepoint.rb +213 -0
- package/scripts/lib/store_provisioning.rb +1 -1
- package/scripts/lib/worktree.rb +21 -0
- package/scripts/new-intent +2 -1
- package/scripts/read-config +3 -3
- package/scripts/roadmap-next +44 -0
- package/scripts/roadmap-savepoint +64 -0
- package/scripts/{versions.rb → rollback.rb} +33 -41
- package/scripts/update.rb +1 -1
- package/skills/_active-intent-gate.md +1 -1
- package/skills/_decision-tables.md +50 -0
- package/skills/auto/SKILL.md +69 -68
- package/skills/auto/evals/evals.json +4 -4
- package/skills/auto/references/agent-architecture.md +2 -2
- package/skills/continuing/SKILL.md +23 -130
- package/skills/continuing/evals/evals.json +26 -80
- package/skills/dashboard/SKILL.md +18 -15
- package/skills/dashboard/references/classification.md +3 -3
- package/skills/dashboard/templates/dashboard-global.md +8 -23
- package/skills/dashboard/templates/dashboard-project.md +7 -26
- package/skills/doctor/SKILL.md +3 -3
- package/skills/install/SKILL.md +10 -10
- package/skills/{brainstorming → intent-brainstorming}/SKILL.md +43 -45
- package/skills/intent-brainstorming/evals/evals.json +67 -0
- package/skills/{brainstorming → intent-brainstorming}/references/design-principles.md +12 -17
- package/skills/intent-continuing/SKILL.md +99 -0
- package/skills/intent-continuing/evals/evals.json +145 -0
- package/skills/intent-continuing/references/context-management.md +28 -0
- package/skills/{creating-intent → intent-creating}/SKILL.md +3 -3
- package/skills/{creating-intent → intent-creating}/evals/evals.json +1 -1
- package/skills/{intent-discovery → intent-discovering}/SKILL.md +1 -1
- package/skills/intent-ending/SKILL.md +151 -0
- package/skills/intent-ending/evals/evals.json +74 -0
- package/skills/{executing-plan → intent-executing}/SKILL.md +75 -15
- package/skills/intent-executing/evals/evals.json +66 -0
- package/skills/{brainstorming-grill-me → intent-grilling}/SKILL.md +4 -4
- package/skills/{linking-intents → intent-linking}/SKILL.md +1 -1
- package/skills/{linking-intents → intent-linking}/evals/evals.json +1 -1
- package/skills/{lock → intent-locking}/SKILL.md +1 -1
- package/skills/{writing-plans → intent-planning}/SKILL.md +48 -20
- package/skills/intent-planning/evals/evals.json +66 -0
- package/skills/{writing-plans → intent-planning}/references/plan-format.md +31 -7
- package/skills/{research → intent-researching}/SKILL.md +2 -2
- package/skills/{research → intent-researching}/evals/evals.json +1 -1
- package/skills/{savepoint → intent-savepoint}/SKILL.md +13 -1
- package/skills/intent-speccing/SKILL.md +69 -0
- package/skills/intent-speccing/evals/evals.json +126 -0
- package/skills/intent-speccing/references/per-section-fill-rules.md +92 -0
- package/skills/intent-speccing/references/self-verify-checklist.md +38 -0
- package/skills/intent-starting/SKILL.md +2 -2
- package/skills/intent-starting/evals/evals.json +2 -2
- package/skills/project-continuing/SKILL.md +104 -0
- package/skills/project-continuing/evals/evals.json +100 -0
- package/skills/project-continuing/references/board-fill.md +33 -0
- package/skills/{creating-project → project-creating}/SKILL.md +2 -2
- package/skills/releasing/SKILL.md +66 -14
- package/skills/releasing/references/release-lines.md +105 -0
- package/skills/roadmap/SKILL.md +7 -1
- package/skills/roadmap/references/file-format.md +30 -1
- package/skills/roadmap/references/operations.md +26 -6
- package/skills/roadmap-continuing/SKILL.md +85 -0
- package/skills/roadmap-continuing/evals/evals.json +82 -0
- package/skills/roadmap-continuing/references/liveness-ranking.md +56 -0
- package/skills/{versions → rollback}/SKILL.md +30 -20
- package/skills/{creating-skills → skill-creating}/SKILL.md +2 -2
- package/skills/{creating-skills → skill-creating}/evals/evals.json +5 -5
- package/skills/{creating-skills → skill-creating}/references/progressive-disclosure.md +2 -2
- package/skills/{evaluating-skills → skill-evaluating}/SKILL.md +1 -1
- package/skills/{evaluating-skills → skill-evaluating}/evals/evals.json +3 -3
- package/skills/{intent-curator → store-curating}/SKILL.md +6 -7
- package/skills/{intent-curator → store-curating}/evals/evals.json +1 -1
- package/skills/{managing-index → store-indexing}/SKILL.md +6 -7
- package/skills/{managing-index → store-indexing}/evals/evals.json +1 -1
- package/skills/{add-project-store → store-provisioning}/SKILL.md +2 -2
- package/skills/tutorial/SKILL.md +65 -0
- package/skills/tutorial/evals/evals.json +186 -0
- package/skills/tutorial/references/track-1-guided.md +123 -0
- package/skills/tutorial/references/track-2-auto.md +95 -0
- package/skills/tutorial/references/track-3-projects-and-roadmaps.md +110 -0
- package/skills/uninstall/SKILL.md +2 -2
- package/skills/update/SKILL.md +3 -3
- package/templates/agents.md +7 -7
- package/templates/config.yml +2 -1
- package/templates/index.md +4 -1
- package/skills/brainstorming/evals/evals.json +0 -22
- package/skills/savepoint/references/context-management.md +0 -32
- /package/skills/{creating-intent → intent-creating}/references/lifecycle.md +0 -0
- /package/skills/{creating-intent → intent-creating}/references/wikilinks.md +0 -0
- /package/skills/{executing-plan → intent-executing}/code-quality-reviewer-prompt.md +0 -0
- /package/skills/{executing-plan → intent-executing}/implementer-prompt.md +0 -0
- /package/skills/{executing-plan → intent-executing}/spec-reviewer-prompt.md +0 -0
- /package/skills/{linking-intents → intent-linking}/references/zettelkasten.md +0 -0
- /package/skills/{continuing → intent-savepoint}/references/context-management.md +0 -0
- /package/skills/{creating-project → project-creating}/references/hubs-projects.md +0 -0
- /package/skills/{creating-project → project-creating}/references/project-scaffolding.md +0 -0
- /package/skills/{creating-skills → skill-creating}/references/agents.md +0 -0
- /package/skills/{creating-skills → skill-creating}/references/evals.md +0 -0
- /package/skills/{creating-skills → skill-creating}/references/hooks.md +0 -0
- /package/skills/{creating-skills → skill-creating}/references/scripts.md +0 -0
- /package/skills/{creating-skills → skill-creating}/references/skills.md +0 -0
- /package/skills/{creating-skills → skill-creating}/scripts/scaffold.rb +0 -0
- /package/skills/{evaluating-skills → skill-evaluating}/assets/eval-template.json +0 -0
- /package/skills/{evaluating-skills → skill-evaluating}/references/convention-checks.md +0 -0
- /package/skills/{evaluating-skills → skill-evaluating}/references/eval-methodology.md +0 -0
- /package/skills/{managing-index → store-indexing}/references/zettelkasten-linking.md +0 -0
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
# Track 1: Guided, your first intent
|
|
2
|
+
|
|
3
|
+
## Who it is for and what you will have done
|
|
4
|
+
|
|
5
|
+
For a new user who wants to feel the whole cycle once, one stage at a time, approving each
|
|
6
|
+
step before the next one starts. After this track, one small, real change will be delivered
|
|
7
|
+
end to end: a piece of work moved through What, Why, How, and Exec, with a finished
|
|
8
|
+
`outcome.md` to show for it.
|
|
9
|
+
|
|
10
|
+
## Before you start
|
|
11
|
+
|
|
12
|
+
Run `/plastic-update` first, so the commands below match what is actually installed.
|
|
13
|
+
|
|
14
|
+
Work in a sandbox: this track always creates a global-store intent; the throwaway repo below
|
|
15
|
+
is never registered as a Plastic project. Pick a throwaway git repository if you have one
|
|
16
|
+
handy, since the worked example edits its README: station 6's deliverable is that file edit.
|
|
17
|
+
No repo handy? Station 6's deliverable becomes a short written note saved in the intent's own
|
|
18
|
+
directory instead (see station 6). Either way, nothing in this track touches a real project.
|
|
19
|
+
|
|
20
|
+
## Stations
|
|
21
|
+
|
|
22
|
+
### 1. Create the intent
|
|
23
|
+
|
|
24
|
+
Type `/plastic-intent-creating` and describe the work in plain words, for example "add a
|
|
25
|
+
short Usage section to this project's README."
|
|
26
|
+
|
|
27
|
+
Artifact: a new intent directory, `{id}--slug.md`, plus the sentinel placeholder lifecycle
|
|
28
|
+
files (`spec.md`, `plan.md`, `checklist.md`, `outcome.md`) and empty `actions/` and
|
|
29
|
+
`resources/` folders.
|
|
30
|
+
|
|
31
|
+
Checkpoint: open the new file. It already has a real id and a one-line description; nothing
|
|
32
|
+
was hand-typed into it directly. That is the point: intents are always scaffolded by the
|
|
33
|
+
tool, never written by hand.
|
|
34
|
+
|
|
35
|
+
### 2. Board the intent
|
|
36
|
+
|
|
37
|
+
Type `/plastic-intent-starting`.
|
|
38
|
+
|
|
39
|
+
Artifact: a delivery lock (a `delivery.lock` file in the intent directory) naming this
|
|
40
|
+
session as the one owner, and a line in `savepoint.md` recording the stage. The agent then
|
|
41
|
+
asks exactly one question: "auto or guided?"
|
|
42
|
+
|
|
43
|
+
Checkpoint: answer "guided." Explain in one sentence why the lock matters: it stops two
|
|
44
|
+
sessions from editing the same intent at the same time.
|
|
45
|
+
|
|
46
|
+
### 3. Why, rulings one at a time
|
|
47
|
+
|
|
48
|
+
Type `/plastic-intent-brainstorming` (or `/plastic-intent-grilling` for a harder,
|
|
49
|
+
interview-style pass over the same ground). It asks conversational prose questions, one at a
|
|
50
|
+
time, never a multiple-choice menu, and answers them one at a time in return.
|
|
51
|
+
|
|
52
|
+
Artifact: `## Context` and `### Decisions` in the intent file fill in as each answer lands, and
|
|
53
|
+
each ruling also lands as its own `## Insights` entry the moment it is made, never batched for
|
|
54
|
+
later. This station's product is the enriched Why; it hands off to `/plastic-intent-speccing`
|
|
55
|
+
next, it does not write `spec.md` itself.
|
|
56
|
+
|
|
57
|
+
Checkpoint: after two or three answers, look at the intent file. Every ruling given out loud
|
|
58
|
+
is already sitting in `### Decisions` and in `## Insights`, in writing.
|
|
59
|
+
|
|
60
|
+
### 4. Consolidate the spec
|
|
61
|
+
|
|
62
|
+
Type `/plastic-intent-speccing`.
|
|
63
|
+
|
|
64
|
+
Artifact: `spec.md`, stamped with a tier (`S`, for this small worked example) and its eight
|
|
65
|
+
sections filled from the rulings recorded in station 3.
|
|
66
|
+
|
|
67
|
+
Checkpoint: name the stamped tier and point at one sentence in `spec.md` that traces back to
|
|
68
|
+
an answer given in station 3.
|
|
69
|
+
|
|
70
|
+
### 5. Plan
|
|
71
|
+
|
|
72
|
+
Type `/plastic-intent-planning`.
|
|
73
|
+
|
|
74
|
+
Artifact: `plan.md` and `checklist.md`. At the S tier used here, `actions/` stays empty and
|
|
75
|
+
the task rationale lives inline in `plan.md` instead of separate action files; only the L
|
|
76
|
+
tier (many independent tasks, dispatched in parallel) gets one `actions/ACTION_N.md` file
|
|
77
|
+
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 the gate
|
|
88
|
+
|
|
89
|
+
Type `/plastic-intent-executing`.
|
|
90
|
+
|
|
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.
|
|
98
|
+
|
|
99
|
+
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`.
|
|
102
|
+
|
|
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.
|
|
106
|
+
|
|
107
|
+
### 7. Done
|
|
108
|
+
|
|
109
|
+
Type `/plastic-intent-ending`.
|
|
110
|
+
|
|
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`.
|
|
114
|
+
|
|
115
|
+
Checkpoint: open `outcome.md` and read its Summary. It should describe, in a sentence or
|
|
116
|
+
two, exactly the README section (or note) just delivered.
|
|
117
|
+
|
|
118
|
+
## Wrap and where to go next
|
|
119
|
+
|
|
120
|
+
That is the full cycle once: create, board, decide, spec, plan, build, done. Read
|
|
121
|
+
`docs/guides/your-first-intent-in-10-minutes.md` for the same path condensed to a single
|
|
122
|
+
read, and `docs/guides/what-the-gates-are-telling-you.md` for what to do if a station denies
|
|
123
|
+
an action instead of completing it.
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
# Track 2: Auto, hand delivery to the agent
|
|
2
|
+
|
|
3
|
+
## Who it is for and what you will have done
|
|
4
|
+
|
|
5
|
+
For someone who has seen the stages once (track 1) and now wants to hand the work to the
|
|
6
|
+
agent, watch it move through the gates and reports on its own, and learn how to check in on
|
|
7
|
+
it and step back in later. After this track, one small intent will have been delivered by the
|
|
8
|
+
agent end to end, and pausing and resuming that delivery will feel familiar.
|
|
9
|
+
|
|
10
|
+
## Before you start
|
|
11
|
+
|
|
12
|
+
Run `/plastic-update` first, so the commands below match what is actually installed.
|
|
13
|
+
|
|
14
|
+
Work in a sandbox: a throwaway git repository, or a global-store intent. Nothing in this
|
|
15
|
+
track touches a real project.
|
|
16
|
+
|
|
17
|
+
## Stations
|
|
18
|
+
|
|
19
|
+
### 1. Board a small intent and choose auto
|
|
20
|
+
|
|
21
|
+
Start from an active intent (create one first with `/plastic-intent-creating` if none
|
|
22
|
+
exists, the same way as track 1 station 1). Type `/plastic-auto`.
|
|
23
|
+
|
|
24
|
+
Artifact: the delivery lock arms, and the agent announces it is taking over the intent for
|
|
25
|
+
autonomous delivery.
|
|
26
|
+
|
|
27
|
+
Checkpoint: name the one precondition auto needs before it will start: an active intent must
|
|
28
|
+
already exist for the intent you name. (Say "auto" with nothing named, and it can pick a
|
|
29
|
+
queued intent from the dashboard's queue itself.)
|
|
30
|
+
|
|
31
|
+
### 2. What auto does, and what stays with the user
|
|
32
|
+
|
|
33
|
+
No new command at this station. Watch how the work splits.
|
|
34
|
+
|
|
35
|
+
Auto owns How (the plan, the checklist, the action files) and Exec (the code, the tests, the
|
|
36
|
+
mechanical close) from here on. Inside Exec it follows a few fixed habits: it syncs its
|
|
37
|
+
working copy with the main line before touching anything, ticks each task the moment it
|
|
38
|
+
lands rather than batching several into one later edit, and independently verifies its own
|
|
39
|
+
work (running the test suite, or checking the changed file) before presenting anything back
|
|
40
|
+
to you. For a task shaped like an audit or a sweep, checking many files rather than building
|
|
41
|
+
one artifact, it also drops a short methods report into `resources/` before the gate, so you
|
|
42
|
+
can review how it checked, not just what it found.
|
|
43
|
+
|
|
44
|
+
The user keeps two things: the rulings made along the way, and the review points, moments
|
|
45
|
+
auto is built to pause for, such as confirming a project path or stopping before a
|
|
46
|
+
destructive action with no safe way back. When auto tells you to run a command yourself
|
|
47
|
+
("run /plastic-intent-speccing"), that is an instruction for you to type; it is a different
|
|
48
|
+
thing from the prompts auto hands to its own dispatched subagents, and the two are never
|
|
49
|
+
mixed up in what it tells you.
|
|
50
|
+
|
|
51
|
+
Checkpoint: name one thing auto will always stop and ask about, rather than decide alone.
|
|
52
|
+
|
|
53
|
+
### 3. Walking the gates
|
|
54
|
+
|
|
55
|
+
No new command. Auto still honors every hard gate a guided session would hit: the delivery
|
|
56
|
+
lock (one owner at a time), the code gate (shut until `plan.md` and `checklist.md` exist),
|
|
57
|
+
and the create gate (intents only come from the tool that makes them, never hand-authored).
|
|
58
|
+
One gate, retrieval, is advisory only and never blocks anything; it just adds a note.
|
|
59
|
+
|
|
60
|
+
Checkpoint: read one gate message from the run so far and say whether it is one of the hard
|
|
61
|
+
gates or the one advisory note.
|
|
62
|
+
|
|
63
|
+
### 4. Reading the per-stage reports
|
|
64
|
+
|
|
65
|
+
No new command. At each stage boundary (What, Why, How, Exec, Done) the agent briefs in a
|
|
66
|
+
fixed three-line shape: State (what happened and why it matters), Risk (the one thing that
|
|
67
|
+
could bite, or "nothing flagged"), and Call (the decision left to the user, or the call the
|
|
68
|
+
agent is taking on its own).
|
|
69
|
+
|
|
70
|
+
Checkpoint: in the most recent report, point at the State line, the Risk line, and the Call
|
|
71
|
+
line.
|
|
72
|
+
|
|
73
|
+
### 5. Continue and where-was-I after time away
|
|
74
|
+
|
|
75
|
+
Type `/plastic-continuing`.
|
|
76
|
+
|
|
77
|
+
Artifact: the current state, presented and then the session stops. If a specific intent is
|
|
78
|
+
named, the agent reads its stage and savepoint and resumes exactly there, rather than
|
|
79
|
+
starting over.
|
|
80
|
+
|
|
81
|
+
Checkpoint: after stepping away and running this command, name the stage the intent resumed
|
|
82
|
+
at and how that matched what was actually on disk.
|
|
83
|
+
|
|
84
|
+
## Wrap and where to go next
|
|
85
|
+
|
|
86
|
+
Auto keeps the same stages and the same gates as guided; the only difference is who steers.
|
|
87
|
+
Read `docs/guides/pick-your-mode.md` for the honest trade-off between guided and auto, and
|
|
88
|
+
`docs/guides/using-plastic-with-claude-code.md` for how that choice feels day to day and how
|
|
89
|
+
it connects to roadmap-driven delivery. For denial messages met along the way, read
|
|
90
|
+
`docs/guides/what-the-gates-are-telling-you.md`.
|
|
91
|
+
|
|
92
|
+
Note on terms: "guided" means the user starts each stage with a command and the agent
|
|
93
|
+
narrows the thinking inside it, the same shape track 1 walked. "Manual", editing project
|
|
94
|
+
files outside the lifecycle entirely, is not a third mode; it is the anti-pattern both guided
|
|
95
|
+
and auto exist to avoid.
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
# Track 3: Projects and roadmaps
|
|
2
|
+
|
|
3
|
+
## Who it is for and what you will have done
|
|
4
|
+
|
|
5
|
+
For someone ready to see a founding idea grow past a single intent: into a small real
|
|
6
|
+
project, a handful of related intents, and a roadmap that plans and tracks them as one
|
|
7
|
+
batch. After this track, a small project (a personal todo app, in the walkthrough below)
|
|
8
|
+
will exist with more than one intent inside it and a roadmap file describing the batch.
|
|
9
|
+
|
|
10
|
+
## Before you start
|
|
11
|
+
|
|
12
|
+
Run `/plastic-update` first, so the commands below match what is actually installed.
|
|
13
|
+
|
|
14
|
+
Work in a sandbox: this whole track is a walked example. It creates a real project directory
|
|
15
|
+
and a real roadmap file on disk, but the project is a throwaway one made for learning, not
|
|
16
|
+
one this tutorial keeps or ships.
|
|
17
|
+
|
|
18
|
+
## Stations
|
|
19
|
+
|
|
20
|
+
### 1. Start from a founding implementation intent
|
|
21
|
+
|
|
22
|
+
Create and board an intent the same way as track 1, stations 1 and 2: `/plastic-intent-creating`,
|
|
23
|
+
then `/plastic-intent-starting`. Describe something meant to grow into a small real project,
|
|
24
|
+
for example "build a personal todo app."
|
|
25
|
+
|
|
26
|
+
Then type `/plastic-intent-brainstorming` and record a couple of real rulings on this founding
|
|
27
|
+
intent, for example the language or how tasks get stored. Keep it short: this intent only
|
|
28
|
+
needs enough decisions for the new project to inherit, not a full design.
|
|
29
|
+
|
|
30
|
+
Checkpoint: explain why this intent is "founding": its decisions are about to carry forward
|
|
31
|
+
into a whole new project.
|
|
32
|
+
|
|
33
|
+
### 2. Grow it into a project
|
|
34
|
+
|
|
35
|
+
Type `/plastic-project-creating`.
|
|
36
|
+
|
|
37
|
+
Artifact: a new project directory, an `AGENTS.md` file carrying the founding intent's
|
|
38
|
+
decisions, the project's own intent store, and a new entry in `projects.yml` registering it.
|
|
39
|
+
|
|
40
|
+
Checkpoint: open `AGENTS.md` and find at least one line that traces back to a decision
|
|
41
|
+
recorded in the founding intent back in station 1.
|
|
42
|
+
|
|
43
|
+
### 3. Add more intents inside the project
|
|
44
|
+
|
|
45
|
+
Type `/plastic-intent-creating` at least twice, from inside the project, describing two
|
|
46
|
+
pieces of real work, for example "add a task list model" and "add a due date field."
|
|
47
|
+
|
|
48
|
+
Artifact: two or more intent directories inside the project's own store, separate from the
|
|
49
|
+
global store the founding intent came from.
|
|
50
|
+
|
|
51
|
+
Checkpoint: point at the project's store path and confirm both new intents live there, not
|
|
52
|
+
in the global store.
|
|
53
|
+
|
|
54
|
+
### 4. Plan a delivery batch
|
|
55
|
+
|
|
56
|
+
Type `/plastic-roadmap`.
|
|
57
|
+
|
|
58
|
+
Teach the roadmap file shape exactly: a title and short meta header, a `## Goal` section in
|
|
59
|
+
prose describing what "done" looks like for the whole batch, a `## Waves` section (an
|
|
60
|
+
ordered list of groups of intents; intents inside one wave are safe to run in parallel,
|
|
61
|
+
waves themselves run one after another), and an append-only, dated `## Log`. `INDEX.md`
|
|
62
|
+
stays the single source of truth for each intent's status; the roadmap only mirrors it.
|
|
63
|
+
|
|
64
|
+
Artifact: a new `roadmaps/<slug>.md` file, sitting next to the project's `INDEX.md`, listing
|
|
65
|
+
the two or more intents from station 3 across one or more waves.
|
|
66
|
+
|
|
67
|
+
Checkpoint: name which of the two intents from station 3 share a wave (so they run in
|
|
68
|
+
parallel) and which one, if any, sits in a later wave (so it waits).
|
|
69
|
+
|
|
70
|
+
### 5. Drive delivery with /goal
|
|
71
|
+
|
|
72
|
+
`/goal` is a Claude Code harness command, not a Plastic skill. It sets a completion condition
|
|
73
|
+
and Claude keeps working, turn after turn, until a fast checker model confirms from what
|
|
74
|
+
Claude has actually reported that the condition holds; `/goal` never reads files on its own,
|
|
75
|
+
so the condition has to name a check Claude's own output can prove.
|
|
76
|
+
|
|
77
|
+
Turn the roadmap's `## Goal` and current `## Waves` into that condition, for example:
|
|
78
|
+
|
|
79
|
+
`/goal every intent in wave 1 of roadmaps/<slug>.md shows Completed in INDEX.md, and the test
|
|
80
|
+
suite is green`
|
|
81
|
+
|
|
82
|
+
Claude then works through the wave itself, one intent at a time, and stops on its own once the
|
|
83
|
+
checker agrees the condition holds. Run `/goal` with no argument at any point to see how long
|
|
84
|
+
it has run and how many turns it has spent; run `/goal clear` to stop it before that.
|
|
85
|
+
|
|
86
|
+
On a harness without `/goal`, just tell the agent to deliver the roadmap in auto mode instead.
|
|
87
|
+
|
|
88
|
+
Checkpoint: point at the exact file (`roadmaps/<slug>.md`) whose `## Goal` and `## Waves`
|
|
89
|
+
sections you turned into the condition above.
|
|
90
|
+
|
|
91
|
+
### 6. Merge discipline and releases
|
|
92
|
+
|
|
93
|
+
No command run here; describe the step instead. Each delivered intent's code merges to main
|
|
94
|
+
as it lands. When the batch (or a meaningful slice of it) is ready to ship, cutting a release
|
|
95
|
+
runs through `/plastic-releasing`, which merges, bumps the version, tags, and completes the
|
|
96
|
+
intents it collects.
|
|
97
|
+
|
|
98
|
+
Releases and any npm publish step are described here, not run: this walkthrough stays in a
|
|
99
|
+
sandbox and never touches a real package registry.
|
|
100
|
+
|
|
101
|
+
Checkpoint: explain why a release completes the intents it collects, rather than an intent
|
|
102
|
+
waiting on a release to exist first.
|
|
103
|
+
|
|
104
|
+
## Wrap and where to go next
|
|
105
|
+
|
|
106
|
+
This is the same What, Why, How, Exec cycle from tracks 1 and 2, repeated across a project
|
|
107
|
+
and gathered by a roadmap. Read
|
|
108
|
+
`docs/guides/using-plastic-with-claude-code.md` for roadmap-driven delivery in more depth,
|
|
109
|
+
including a real worked roadmap. For the exact roadmap file format beyond what this
|
|
110
|
+
walkthrough covers, the `plastic-roadmap` skill itself is the reference.
|
|
@@ -14,7 +14,7 @@ underlying uninstaller and adds reporting + verification.
|
|
|
14
14
|
|
|
15
15
|
If Plastic is installed, derive `<channel>` from `~/.plastic/VERSION`: a version containing
|
|
16
16
|
`-alpha` means `@alpha`, `-beta` means `@beta`, otherwise `@latest`. If not installed,
|
|
17
|
-
default to `@
|
|
17
|
+
default to `@latest`. The user can always override with `--alpha` / `--beta` / `--latest`.
|
|
18
18
|
|
|
19
19
|
## Procedure
|
|
20
20
|
|
|
@@ -74,5 +74,5 @@ Delete it too?
|
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
- **Keep:** "Your data is at ~/.plastic/. Re-install anytime with
|
|
77
|
-
`npx -y @zalom/plastic@
|
|
77
|
+
`npx -y @zalom/plastic@latest install --claude` (or your channel)."
|
|
78
78
|
- **Delete:** run `rm -rf ~/.plastic/` and confirm.
|
package/skills/update/SKILL.md
CHANGED
|
@@ -22,7 +22,7 @@ clean no-op. You do not compute the target yourself, the script does.
|
|
|
22
22
|
|
|
23
23
|
If Plastic is installed, derive `<channel>` from `~/.plastic/VERSION`: a version containing
|
|
24
24
|
`-alpha` means `@alpha`, `-beta` means `@beta`, otherwise `@latest`. If not installed
|
|
25
|
-
(first install), default to `@
|
|
25
|
+
(first install), default to `@latest`. The user can always override with
|
|
26
26
|
`--alpha` / `--beta` / `--latest`.
|
|
27
27
|
|
|
28
28
|
## Flags
|
|
@@ -35,12 +35,12 @@ If Plastic is installed, derive `<channel>` from `~/.plastic/VERSION`: a version
|
|
|
35
35
|
| `--alpha` | Switch to / advance the **alpha** channel (bleeding edge, confirmed if moving down in stability) |
|
|
36
36
|
|
|
37
37
|
Switching toward a more stable channel is frictionless; switching toward bleeding edge is
|
|
38
|
-
confirmed. To roll **back** to a previously-installed version, use `plastic-
|
|
38
|
+
confirmed. To roll **back** to a previously-installed version, use `plastic-rollback`.
|
|
39
39
|
|
|
40
40
|
## Prerequisites
|
|
41
41
|
|
|
42
42
|
Plastic must be installed (`~/.plastic/VERSION` present). If not, run `plastic-install`
|
|
43
|
-
first (or `npx -y @zalom/plastic@
|
|
43
|
+
first (or `npx -y @zalom/plastic@latest install --claude` directly).
|
|
44
44
|
|
|
45
45
|
## Procedure
|
|
46
46
|
|
package/templates/agents.md
CHANGED
|
@@ -47,13 +47,13 @@ Plastic has its own lifecycle skills. When a Plastic skill exists for the curren
|
|
|
47
47
|
|
|
48
48
|
| Phase | Skill | Produces |
|
|
49
49
|
|-------|-------|----------|
|
|
50
|
-
| What | `plastic-creating
|
|
51
|
-
| Why | `plastic-brainstorming` | `spec.md` |
|
|
52
|
-
| Why | `plastic-
|
|
53
|
-
| Why | `plastic-
|
|
54
|
-
| How | `plastic-
|
|
55
|
-
| Exec | `plastic-executing
|
|
56
|
-
| Done | `plastic-
|
|
50
|
+
| What | `plastic-intent-creating` | Intent file |
|
|
51
|
+
| Why | `plastic-intent-brainstorming` | `spec.md` |
|
|
52
|
+
| Why | `plastic-intent-researching` | `resources/*.md` |
|
|
53
|
+
| Why | `plastic-intent-grilling` | Deep interrogation |
|
|
54
|
+
| How | `plastic-intent-planning` | `plan.md`, `checklist.md`, `actions/` |
|
|
55
|
+
| Exec | `plastic-intent-executing` | Code + `outcome.md` |
|
|
56
|
+
| Done | `plastic-store-curating` | Lifecycle transition |
|
|
57
57
|
|
|
58
58
|
**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/`.
|
|
59
59
|
|
package/templates/config.yml
CHANGED
|
@@ -14,7 +14,8 @@ architect:
|
|
|
14
14
|
|
|
15
15
|
# Per-agent model override (intent 116). Uncomment and set to a Claude Code
|
|
16
16
|
# alias (opus, sonnet, haiku) to override the shipped tier for one agent. With
|
|
17
|
-
# no entry, the shipped default applies
|
|
17
|
+
# no entry, the shipped default applies and never resolves to Fable; naming
|
|
18
|
+
# Fable here is an explicit, sanctioned override, honored as written.
|
|
18
19
|
# agents:
|
|
19
20
|
# models:
|
|
20
21
|
# plastic-executor: sonnet
|
package/templates/index.md
CHANGED
|
@@ -1,13 +1,16 @@
|
|
|
1
1
|
# Index
|
|
2
2
|
|
|
3
3
|
## Active
|
|
4
|
+
<!-- Line shape: `- [ID — Title](path)`. The em-dash (U+2014, not a plain hyphen)
|
|
5
|
+
between id and title is load-bearing: Bridge.intent_active? matches only that
|
|
6
|
+
shape, and a plain hyphen there fails the lock gate open (see docs/internals.md). -->
|
|
4
7
|
(no active intents)
|
|
5
8
|
|
|
6
9
|
## Future
|
|
7
10
|
(no future intents)
|
|
8
11
|
|
|
9
12
|
## Clusters
|
|
10
|
-
(clusters emerge as intents accumulate
|
|
13
|
+
(clusters emerge as intents accumulate; add headings when 3+ intents share a topic)
|
|
11
14
|
|
|
12
15
|
## Completed
|
|
13
16
|
(links preserved, never deleted)
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"skill_name": "plastic-brainstorming",
|
|
3
|
-
"notes": "Intent 66a. Spec for the QMD-first step in the Why/explore-context phase (surface prior decisions/specs/outcomes before grep/Read). Runner is intent 76; spec only.",
|
|
4
|
-
"evals": [
|
|
5
|
-
{
|
|
6
|
-
"id": 1,
|
|
7
|
-
"scope": "behavior",
|
|
8
|
-
"set": "validation",
|
|
9
|
-
"prompt": "QMD is present. Brainstorming the active intent during the Why phase, the agent needs prior decisions and specs on caching.",
|
|
10
|
-
"expected_output": "In the explore-project-context (Why) step, before scanning the store with grep/Read, runs `ruby ~/.plastic/scripts/qmd-sync search \"caching decisions\"` to surface prior decisions, specs, or outcomes, then opens the authoritative intent file for any hit it acts on. No-op fallback to INDEX.md / file scan when QMD is absent.",
|
|
11
|
-
"files": [],
|
|
12
|
-
"assertions": [
|
|
13
|
-
{
|
|
14
|
-
"type": "human",
|
|
15
|
-
"check": "qmd-sync search is run during Why before grep/Read; authoritative file opened for any hit",
|
|
16
|
-
"observed": "SKILL.md (or agent file) carries the QMD-first step: run qmd-sync search before grep/Read, then open the authoritative file; no-op fallback when QMD is absent",
|
|
17
|
-
"result": "pass"
|
|
18
|
-
}
|
|
19
|
-
]
|
|
20
|
-
}
|
|
21
|
-
]
|
|
22
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
# Context Management (Start-Save-Continue)
|
|
2
|
-
|
|
3
|
-
## Save Point
|
|
4
|
-
Triggered by PreCompact hook or manually:
|
|
5
|
-
1. Find active intent(s) from `~/.plastic/INDEX.md`
|
|
6
|
-
2. Update active intent's `checklist.md` (check off completed items)
|
|
7
|
-
3. Update active intent's `savepoint.md` (in-progress, next steps, blockers, discoveries)
|
|
8
|
-
4. Add observations to `## Insights`
|
|
9
|
-
5. Update INDEX.md
|
|
10
|
-
6. Commit: `cd ~/.plastic && git add . && git commit -m "chore: savepoint — [intent name]"`
|
|
11
|
-
7. Notify user to `/clear`
|
|
12
|
-
|
|
13
|
-
## Continue
|
|
14
|
-
Triggered by UserPromptSubmit hook when user says "continue". Priority order:
|
|
15
|
-
|
|
16
|
-
**1. Active intents first (resume work):**
|
|
17
|
-
1. Read INDEX.md → find active intent(s)
|
|
18
|
-
2. Read active intent's `intent.md` → what and why
|
|
19
|
-
3. Read active intent's `savepoint.md` → where we left off
|
|
20
|
-
4. Read active intent's `checklist.md` → what's next
|
|
21
|
-
5. Announce: intent name, current state, next step, blockers
|
|
22
|
-
6. Resume
|
|
23
|
-
|
|
24
|
-
**2. No active intents → offer future intents:**
|
|
25
|
-
1. List all future intents from INDEX.md
|
|
26
|
-
2. Present them as options
|
|
27
|
-
3. When user picks one, move to Active in INDEX.md
|
|
28
|
-
|
|
29
|
-
**3. Stale future intents (untouched 3+ days) → triage:**
|
|
30
|
-
- **activate** — start working on it now
|
|
31
|
-
- **abandon** — mark as abandoned
|
|
32
|
-
- **defer to agent** — implement, research, or ideate
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|