@zalom/plastic 1.3.0 → 1.4.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/PLASTIC-reference.md +8 -6
- package/PLASTIC.md +24 -3
- package/hooks/hooks.json +5 -0
- package/hooks/links-gate +3 -0
- package/package.json +1 -1
- package/scripts/doctor.rb +164 -58
- package/scripts/end-intent +347 -43
- package/scripts/hook-links-gate +74 -0
- package/scripts/lib/bridge.rb +29 -1
- package/scripts/lib/config_asks.rb +110 -0
- package/scripts/lib/graph_rebuild.rb +30 -6
- package/scripts/lib/hook_registry.rb +2 -1
- package/scripts/lib/installer_core.rb +30 -7
- package/scripts/lib/intent_validator.rb +38 -10
- package/scripts/lib/links_gate.rb +140 -0
- package/scripts/lib/links_projection.rb +71 -12
- package/scripts/lib/power_tools.rb +57 -14
- package/scripts/lib/project_validator.rb +113 -0
- package/scripts/lib/qmd_hook.rb +12 -8
- package/scripts/lib/restore_intent_v1.rb +154 -0
- package/scripts/lib/roadmap_queue.rb +1 -1
- package/scripts/lib/roadmap_savepoint.rb +38 -10
- package/scripts/lib/store_discovery.rb +77 -0
- package/scripts/lib/store_provisioning.rb +21 -12
- package/scripts/new-intent +10 -12
- package/scripts/project-links +132 -35
- package/scripts/provision-project-store +18 -5
- package/scripts/read-config +1 -0
- package/scripts/rebuild-graph +42 -17
- package/scripts/restore-intent-v1 +288 -0
- package/scripts/roadmap-next +9 -2
- package/scripts/roadmap-savepoint +9 -1
- package/scripts/update.rb +50 -1
- package/scripts/validate-intent +3 -1
- package/scripts/validate-project +53 -0
- package/scripts/write-config +105 -0
- package/skills/auto/SKILL.md +16 -10
- package/skills/auto/references/end-tail.md +27 -13
- package/skills/install/SKILL.md +4 -4
- package/skills/intent-creating/SKILL.md +5 -0
- package/skills/intent-ending/SKILL.md +49 -36
- package/skills/project-creating/SKILL.md +29 -1
- package/skills/releasing/SKILL.md +37 -19
- package/skills/roadmap/SKILL.md +9 -7
- package/skills/roadmap/references/file-format.md +14 -10
- package/skills/roadmap/references/operations.md +22 -18
- package/skills/roadmap-continuing/SKILL.md +5 -5
- package/skills/roadmap-continuing/evals/evals.json +3 -3
- package/skills/roadmap-continuing/references/liveness-ranking.md +6 -5
- package/skills/tutorial/references/track-3-projects-and-roadmaps.md +10 -10
- package/skills/update/SKILL.md +30 -17
- package/templates/roadmap.md +8 -8
|
@@ -56,16 +56,16 @@ in the global store.
|
|
|
56
56
|
Type `/plastic-roadmap`.
|
|
57
57
|
|
|
58
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 `##
|
|
60
|
-
ordered list of groups of intents; intents inside one
|
|
61
|
-
|
|
59
|
+
prose describing what "done" looks like for the whole batch, a `## Batches` section (an
|
|
60
|
+
ordered list of groups of intents; intents inside one batch are safe to run in parallel,
|
|
61
|
+
batches themselves run one after another), and an append-only, dated `## Log`. `INDEX.md`
|
|
62
62
|
stays the single source of truth for each intent's status; the roadmap only mirrors it.
|
|
63
63
|
|
|
64
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
|
|
65
|
+
the two or more intents from station 3 across one or more batches.
|
|
66
66
|
|
|
67
|
-
Checkpoint: name which of the two intents from station 3 share a
|
|
68
|
-
parallel) and which one, if any, sits in a later
|
|
67
|
+
Checkpoint: name which of the two intents from station 3 share a batch (so they run in
|
|
68
|
+
parallel) and which one, if any, sits in a later batch (so it waits).
|
|
69
69
|
|
|
70
70
|
### 5. Drive delivery with /goal
|
|
71
71
|
|
|
@@ -74,18 +74,18 @@ and Claude keeps working, turn after turn, until a fast checker model confirms f
|
|
|
74
74
|
Claude has actually reported that the condition holds; `/goal` never reads files on its own,
|
|
75
75
|
so the condition has to name a check Claude's own output can prove.
|
|
76
76
|
|
|
77
|
-
Turn the roadmap's `## Goal` and current `##
|
|
77
|
+
Turn the roadmap's `## Goal` and current `## Batches` into that condition, for example:
|
|
78
78
|
|
|
79
|
-
`/goal every intent in
|
|
79
|
+
`/goal every intent in batch 1 of roadmaps/<slug>.md shows Completed in INDEX.md, and the test
|
|
80
80
|
suite is green`
|
|
81
81
|
|
|
82
|
-
Claude then works through the
|
|
82
|
+
Claude then works through the batch itself, one intent at a time, and stops on its own once the
|
|
83
83
|
checker agrees the condition holds. Run `/goal` with no argument at any point to see how long
|
|
84
84
|
it has run and how many turns it has spent; run `/goal clear` to stop it before that.
|
|
85
85
|
|
|
86
86
|
On a harness without `/goal`, just tell the agent to deliver the roadmap in auto mode instead.
|
|
87
87
|
|
|
88
|
-
Checkpoint: point at the exact file (`roadmaps/<slug>.md`) whose `## Goal` and `##
|
|
88
|
+
Checkpoint: point at the exact file (`roadmaps/<slug>.md`) whose `## Goal` and `## Batches`
|
|
89
89
|
sections you turned into the condition above.
|
|
90
90
|
|
|
91
91
|
### 6. Merge discipline and releases
|
package/skills/update/SKILL.md
CHANGED
|
@@ -57,22 +57,35 @@ unavailable. The command prints the transition (`vX -> vY`) or "already up to da
|
|
|
57
57
|
a post-update doctor summary, and records the move in the append-only
|
|
58
58
|
`~/.plastic/versions.json` ledger.
|
|
59
59
|
|
|
60
|
-
### Step 2:
|
|
61
|
-
|
|
62
|
-
If
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
60
|
+
### Step 2: Relay any pending config question(s) the update printed
|
|
61
|
+
|
|
62
|
+
If `update`'s own output (Step 1) printed a "Config question(s) introduced by
|
|
63
|
+
this update" block, relay each question to the user exactly as printed
|
|
64
|
+
(question, options, and the `write-config` command for each option). Do not
|
|
65
|
+
invent or hardcode a specific question here: it comes from the CLI's fresh
|
|
66
|
+
output (`config_asks.yml`, read by code that just synced from the new version),
|
|
67
|
+
never from this skill file, which is always one release behind and cannot know
|
|
68
|
+
what a future release will ask.
|
|
69
|
+
|
|
70
|
+
Once the user picks an option, run the printed `write-config` command for that
|
|
71
|
+
option, for example:
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
ruby ~/.plastic/scripts/write-config advisor.claude.default plastic-faux-advisor
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
If they say "not now" / want to keep the default, run the printed dismissal
|
|
78
|
+
command instead, for example:
|
|
79
|
+
|
|
80
|
+
```
|
|
81
|
+
ruby ~/.plastic/scripts/write-config config_asks_dismissed --push advisor-default
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
If `update` printed nothing under that heading, skip this step silently - there
|
|
85
|
+
is nothing pending. A question already answered or dismissed is never re-asked
|
|
86
|
+
(both the CLI print and the doctor check verify this before showing anything),
|
|
87
|
+
and a pending question missed here still shows up as a `config_asks` warn on
|
|
88
|
+
the next `/plastic-doctor` run, so nothing is silently lost.
|
|
76
89
|
|
|
77
90
|
### Step 3: Relay the result, announce convention changes
|
|
78
91
|
|
|
@@ -98,6 +111,6 @@ report and offer to fix. If it already reads clean, do not re-run doctor.
|
|
|
98
111
|
### Step 5: Commit + clear update cache
|
|
99
112
|
|
|
100
113
|
```bash
|
|
101
|
-
cd ~/.plastic && git add PLASTIC.md scripts/ AGENTS.md VERSION versions.json 2>/dev/null && git commit -m "chore: update Plastic to $(cat ~/.plastic/VERSION)" --allow-empty
|
|
114
|
+
cd ~/.plastic && git add PLASTIC.md scripts/ AGENTS.md VERSION versions.json deprecations.yml config_asks.yml 2>/dev/null && git commit -m "chore: update Plastic to $(cat ~/.plastic/VERSION)" --allow-empty
|
|
102
115
|
rm -f ~/.plastic/.cache/update-check.json
|
|
103
116
|
```
|
package/templates/roadmap.md
CHANGED
|
@@ -9,17 +9,17 @@ roadmap's goal is reached, move this file from `roadmaps/{slug}.md` to
|
|
|
9
9
|
(a checkable prose condition — one or a few sentences a human or coordinator reads to decide the
|
|
10
10
|
roadmap is done. Not an executable checker.)
|
|
11
11
|
|
|
12
|
-
##
|
|
13
|
-
Entries in a
|
|
14
|
-
is delivered, unchecked otherwise; the trailing token after the em-dash is the precise
|
|
15
|
-
status (queued | delivering | delivered | abandoned | blocked) from INDEX.md. INDEX
|
|
16
|
-
any conflict between the checkbox/token here and INDEX's real status.
|
|
12
|
+
## Batches
|
|
13
|
+
Entries in a batch are parallel-safe; batches run top to bottom. The checkbox is checked once an
|
|
14
|
+
entry is delivered, unchecked otherwise; the trailing token after the em-dash is the precise
|
|
15
|
+
mirrored status (queued | delivering | delivered | abandoned | blocked) from INDEX.md. INDEX
|
|
16
|
+
always wins on any conflict between the checkbox/token here and INDEX's real status.
|
|
17
17
|
|
|
18
|
-
###
|
|
18
|
+
### Batch 1
|
|
19
19
|
- [ ] <intent-id> <title> — queued
|
|
20
20
|
- [ ] <intent-id> <title> — queued
|
|
21
21
|
|
|
22
|
-
###
|
|
22
|
+
### Batch 2
|
|
23
23
|
- [x] <intent-id> <title> — delivered
|
|
24
24
|
|
|
25
25
|
## Log
|
|
@@ -27,4 +27,4 @@ any conflict between the checkbox/token here and INDEX's real status.
|
|
|
27
27
|
what shipped and its impact for a non-expert reader, no jargon or internal codenames, ending with a
|
|
28
28
|
link to that entry-intent's `outcome.md`. Never restate outcome detail here; link to it instead.
|
|
29
29
|
Newest at the bottom.)
|
|
30
|
-
- 2026-01-01 00:00 UTC Shipped the first
|
|
30
|
+
- 2026-01-01 00:00 UTC Shipped the first batch of this roadmap; see store/<intent-id>--<slug>/outcome.md.
|