@zalom/plastic 1.1.0 → 1.1.2
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 +12 -9
- package/README.md +3 -3
- package/agents/plastic-enforcer.md +8 -4
- package/agents/plastic-executor.md +5 -5
- package/agents/plastic-future-intent-researcher.md +1 -1
- package/agents/plastic-planner.md +15 -11
- 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 +180 -5
- package/scripts/hook-continue +3 -3
- package/scripts/install.rb +2 -1
- package/scripts/lib/bridge.rb +114 -11
- package/scripts/lib/dashboard_banner.rb +8 -9
- package/scripts/lib/installer_core.rb +12 -3
- 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/skill_lint.rb +304 -0
- package/scripts/lib/worktree.rb +21 -0
- package/scripts/new-intent +1 -0
- package/scripts/read-config +3 -3
- package/scripts/roadmap-next +44 -0
- package/scripts/roadmap-savepoint +64 -0
- package/scripts/skill-lint +50 -0
- package/skills/auto/SKILL.md +32 -11
- package/skills/auto/references/tiers.md +4 -3
- package/skills/continuing/SKILL.md +34 -0
- package/skills/continuing/evals/evals.json +91 -0
- package/skills/dashboard/SKILL.md +17 -14
- 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 +1 -1
- package/skills/install/SKILL.md +10 -10
- package/skills/intent-continuing/SKILL.md +26 -68
- package/skills/intent-continuing/evals/evals.json +26 -26
- package/skills/intent-continuing/references/context-management.md +15 -19
- package/skills/intent-planning/SKILL.md +11 -11
- package/skills/intent-planning/evals/evals.json +20 -5
- package/skills/intent-planning/references/plan-format.md +9 -5
- package/skills/intent-savepoint/SKILL.md +12 -0
- package/skills/intent-starting/evals/evals.json +1 -1
- 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/releasing/SKILL.md +48 -0
- 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/skill-evaluating/evals/evals.json +1 -1
- package/skills/tutorial/references/track-1-guided.md +5 -4
- package/skills/tutorial/references/track-2-auto.md +1 -1
- package/skills/uninstall/SKILL.md +2 -2
- package/skills/update/SKILL.md +2 -2
- package/templates/config.yml +2 -1
- package/templates/index.md +4 -1
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
# Liveness Ranking (read time, no new field)
|
|
2
|
+
|
|
3
|
+
Depth reference for "Find the mid-flight roadmap" in `SKILL.md`. This is the full algorithm the
|
|
4
|
+
body summarizes. Since intent 148, this algorithm is IMPLEMENTED in
|
|
5
|
+
`scripts/lib/roadmap_queue.rb` behind the `scripts/roadmap-next` CLI; it is no longer a by-eye
|
|
6
|
+
procedure. This page documents what that reader does, and is the specification the reader
|
|
7
|
+
satisfies.
|
|
8
|
+
|
|
9
|
+
## Why read-time, not a stored field
|
|
10
|
+
|
|
11
|
+
INDEX.md stays the sole writer of intent status; the roadmap file mirrors it (see
|
|
12
|
+
`plastic-roadmap`'s `references/file-format.md`). Adding a "mid-flight" flag to the roadmap
|
|
13
|
+
file or to INDEX.md would create a second thing to keep in sync for a question that is cheap to
|
|
14
|
+
answer by reading what is already there. So liveness is computed fresh, every call, from the
|
|
15
|
+
tier's live `roadmaps/*.md` files (excluding `roadmaps/archived/`), by `RoadmapQueue` (intent
|
|
16
|
+
148) rather than by eye.
|
|
17
|
+
|
|
18
|
+
## The algorithm
|
|
19
|
+
|
|
20
|
+
1. **Enumerate.** List every `roadmaps/*.md` at the tier (project or global), skipping
|
|
21
|
+
`roadmaps/archived/`.
|
|
22
|
+
2. **Delivering/blocked wins outright.** If any candidate roadmap has at least one `## Waves`
|
|
23
|
+
entry whose mirrored status token is `delivering` or `blocked`, it is in flight right now.
|
|
24
|
+
That candidate wins the ranking immediately; skip the rest of the ranking for it.
|
|
25
|
+
3. **Otherwise, newest `## Log` entry wins.** Among the remaining candidates (none have a
|
|
26
|
+
`delivering`/`blocked` entry), read each file's last `## Log` line (append-only, newest at
|
|
27
|
+
the bottom) and rank by that line's `YYYY-MM-DD HH:MM UTC` timestamp. The most recent wins.
|
|
28
|
+
When a candidate's paired `roadmaps/<slug>.savepoint.md` (intent 134) is present, its last
|
|
29
|
+
line is a cheaper, machine-timestamped read of the same fact (the ledger is derived from `##
|
|
30
|
+
Log`, so the two should already agree); reading it first is an optimization, not a second
|
|
31
|
+
source of truth, so a missing or stale ledger never blocks falling back to `## Log` itself.
|
|
32
|
+
4. **Genuine tie -> present, do not silently pick.** If two or more candidates are equally live
|
|
33
|
+
(for example two roadmaps both idle with `## Log` entries on the same timestamp, or two both
|
|
34
|
+
showing `delivering` entries with no other signal to separate them), do not choose for the
|
|
35
|
+
user. Present both/all tied candidates' state side by side, then let the single "auto or
|
|
36
|
+
guided?" ask (asked once regardless of how many candidates were presented) double as the
|
|
37
|
+
resolution: the user's answer implicitly picks by naming which roadmap to continue, or the
|
|
38
|
+
agent asks a short one-line disambiguation immediately before that same single ask, never a
|
|
39
|
+
second separate prompt.
|
|
40
|
+
|
|
41
|
+
## What this closes
|
|
42
|
+
|
|
43
|
+
Before this skill existed, nothing resumed a mid-flight roadmap automatically. The `171`
|
|
44
|
+
(consistency-dividend) roadmap handoff had to be resumed by hand: a free-prose "SESSION
|
|
45
|
+
HANDOFF" note written into `171`'s own `## Insights`, because nothing read `## Waves` +
|
|
46
|
+
`## Log` and reconstructed where the batch stood. This ranking, now a deterministic reader
|
|
47
|
+
rather than a by-eye judgment, is the mechanism that replaces that hand-carried note.
|
|
48
|
+
|
|
49
|
+
## Grammar pointer (do not duplicate)
|
|
50
|
+
|
|
51
|
+
The roadmap file's four sections, entry line shape, and status vocabulary
|
|
52
|
+
(`queued|delivering|delivered|abandoned|blocked`) are owned by `plastic-roadmap`:
|
|
53
|
+
`skills/roadmap/references/file-format.md` for the shape, and
|
|
54
|
+
`skills/roadmap/references/operations.md#read--consume` for how a reader (human or
|
|
55
|
+
coordinator) is meant to walk `## Waves` and `## Log`. This page assumes that grammar and adds
|
|
56
|
+
only the liveness-ranking judgment on top of it.
|
|
@@ -71,10 +71,11 @@ an answer given in station 3.
|
|
|
71
71
|
|
|
72
72
|
Type `/plastic-intent-planning`.
|
|
73
73
|
|
|
74
|
-
Artifact: `plan.md
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
74
|
+
Artifact: `plan.md`, `checklist.md`, and at least one real `actions/ACTION_N.md`. At the S
|
|
75
|
+
tier used here, the planner consolidates the whole delivery into a single
|
|
76
|
+
`actions/ACTION_1.md` (the ordered steps plus the exact changes); the L tier (many
|
|
77
|
+
independent tasks, dispatched in parallel) instead gets one `actions/ACTION_N.md` file per
|
|
78
|
+
task. `checklist.md` follows a fixed form: tasks start under `## In Progress`, move to
|
|
78
79
|
`## Completed` as they land, and a `## Session Log` table records what happened each session.
|
|
79
80
|
A task that depends on an owner decision landing first (a destructive step, a structural
|
|
80
81
|
ruling) gets an `[ORCHESTRATOR]` prefix and blocks every other item until that decision is
|
|
@@ -72,7 +72,7 @@ line.
|
|
|
72
72
|
|
|
73
73
|
### 5. Continue and where-was-I after time away
|
|
74
74
|
|
|
75
|
-
Type `/plastic-
|
|
75
|
+
Type `/plastic-continuing`.
|
|
76
76
|
|
|
77
77
|
Artifact: the current state, presented and then the session stops. If a specific intent is
|
|
78
78
|
named, the agent reads its stage and savepoint and resumes exactly there, rather than
|
|
@@ -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
|
|
@@ -40,7 +40,7 @@ confirmed. To roll **back** to a previously-installed version, use `plastic-roll
|
|
|
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/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)
|