@zalom/plastic 1.0.2 → 1.0.3
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 +30 -0
- package/agents/plastic-intent-discovery.md +1 -0
- package/package.json +1 -1
- package/scripts/dashboard.rb +1 -1
- package/scripts/doctor.rb +3 -3
- package/scripts/lib/bridge.rb +11 -10
- package/scripts/lib/dashboard_banner.rb +1 -1
- package/scripts/lib/lock.rb +3 -3
- package/skills/add-project-store/SKILL.md +1 -0
- package/skills/auto/SKILL.md +1 -0
- package/skills/auto/references/agent-report-contract.md +3 -0
- package/skills/brainstorming/SKILL.md +1 -0
- package/skills/brainstorming-grill-me/SKILL.md +1 -0
- package/skills/continuing/SKILL.md +1 -0
- package/skills/creating-intent/SKILL.md +1 -0
- package/skills/creating-project/SKILL.md +1 -0
- package/skills/creating-skills/SKILL.md +1 -0
- package/skills/creating-skills/references/skills.md +1 -0
- package/skills/dashboard/SKILL.md +1 -0
- package/skills/doctor/SKILL.md +1 -0
- package/skills/evaluating-skills/SKILL.md +1 -0
- package/skills/executing-plan/SKILL.md +1 -0
- package/skills/humanizer/SKILL.md +1 -0
- package/skills/install/SKILL.md +1 -0
- package/skills/intent-curator/SKILL.md +1 -0
- package/skills/intent-discovery/SKILL.md +2 -0
- package/skills/intent-starting/SKILL.md +1 -0
- package/skills/linking-intents/SKILL.md +1 -0
- package/skills/lock/SKILL.md +2 -1
- package/skills/managing-index/SKILL.md +1 -0
- package/skills/releasing/SKILL.md +1 -0
- package/skills/research/SKILL.md +3 -0
- package/skills/roadmap/SKILL.md +1 -0
- package/skills/savepoint/SKILL.md +1 -0
- package/skills/uninstall/SKILL.md +1 -0
- package/skills/update/SKILL.md +1 -0
- package/skills/versions/SKILL.md +1 -0
- package/skills/writing-plans/SKILL.md +1 -0
package/PLASTIC.md
CHANGED
|
@@ -370,6 +370,36 @@ cache) over re-reading them from disk, which only widens context. QMD is for OTH
|
|
|
370
370
|
intents, not for re-reading what you just wrote. Pairs with `/clear` plus savepoint-resume
|
|
371
371
|
hygiene after each intent. Advisory self-check, not hard-verifiable.
|
|
372
372
|
|
|
373
|
+
## Tabular-First Reporting (intent 160)
|
|
374
|
+
|
|
375
|
+
**Default.** Tabular layout is the default shape for three surfaces: What-stage discovery
|
|
376
|
+
deposits, all research reports, and all agent reporting or presentation surfaces.
|
|
377
|
+
|
|
378
|
+
**Calibration.** Tables are REQUIRED for any listing or discussion of intents, and for
|
|
379
|
+
explaining complex data, comparisons, or multi-factor reasoning. This is NOT a blanket
|
|
380
|
+
tables-everywhere rule: simple data stays prose, and tables must not be overused.
|
|
381
|
+
|
|
382
|
+
**Bullets-limit.** Use bullets only when a table genuinely does not fit the content, and
|
|
383
|
+
never more than 3-5 items.
|
|
384
|
+
|
|
385
|
+
**Why tables.**
|
|
386
|
+
|
|
387
|
+
| # | Reason |
|
|
388
|
+
|---|--------|
|
|
389
|
+
| 1 | Parallel structure makes comparison a row-vs-row scan, not a re-read. |
|
|
390
|
+
| 2 | Coverage is provable: N items means N rows, an empty cell exposes a gap while a missing bullet hides it. |
|
|
391
|
+
| 3 | Schema stated once in the headers, no repeated labels, higher density. |
|
|
392
|
+
| 4 | A column reads vertically to show every value at once. |
|
|
393
|
+
| 5 | Cells force terseness where bullets sprawl and nest. |
|
|
394
|
+
| 6 | A ruling or decision column turns the report into the decision worksheet. |
|
|
395
|
+
| 7 | Rows stay machine-readable for downstream tooling. |
|
|
396
|
+
| 8 | Uniform granularity: every item answers the same questions. |
|
|
397
|
+
| 9 | Line-scoped git diffs. |
|
|
398
|
+
|
|
399
|
+
**Exception.** The EM-to-CTO human briefing (`skills/auto/references/human-report-contract.md`)
|
|
400
|
+
keeps its deliberate prose shape (fixed State/Risk/Call, single item, nothing to tabulate) and
|
|
401
|
+
is exempt from this rule.
|
|
402
|
+
|
|
373
403
|
## Retrieval Gate
|
|
374
404
|
|
|
375
405
|
Advisory. Hard gates guard writes, locks, and structure, never reads or searches. Read,
|
|
@@ -24,6 +24,7 @@ for the Why stage to consume.
|
|
|
24
24
|
the intent file, spec.md, or any lifecycle deliverable: the lock-owner-only
|
|
25
25
|
write rule stays intact, and the Why-stage `plastic-brainstorming` agent is
|
|
26
26
|
the one that reads your deposit and enriches `## Context`.
|
|
27
|
+
Shape the deposit tabular-first per `PLASTIC.md` (## Tabular-First Reporting, intent 160).
|
|
27
28
|
|
|
28
29
|
## Constraints
|
|
29
30
|
- Read-only with respect to the intent: your single output is
|
package/package.json
CHANGED
package/scripts/dashboard.rb
CHANGED
|
@@ -466,7 +466,7 @@ def render_continue(records)
|
|
|
466
466
|
out.concat(matrix(open, scope_tag: true))
|
|
467
467
|
out << ""
|
|
468
468
|
out << LEGEND
|
|
469
|
-
out << "
|
|
469
|
+
out << "ask for the <slug> project board · plastic-auto (works the dispatchable queue)"
|
|
470
470
|
out.join("\n") + "\n"
|
|
471
471
|
end
|
|
472
472
|
|
package/scripts/doctor.rb
CHANGED
|
@@ -676,9 +676,9 @@ class Doctor
|
|
|
676
676
|
message: "#{stalled.size} stalled completion#{stalled.size == 1 ? "" : "s"} " \
|
|
677
677
|
"(terminal in INDEX but the End tail did not finish)",
|
|
678
678
|
details: stalled, fixable: true,
|
|
679
|
-
fix_hint: "Finish the End tail via stale-lock reclaim:
|
|
680
|
-
"tail (Worktree.release -> Lock.release -> purge -> QMD reindex
|
|
681
|
-
"completion; it is NOT a reactivation of a done intent."
|
|
679
|
+
fix_hint: "Finish the End tail via stale-lock reclaim: run /plastic-doctor reclaim the lock, " \
|
|
680
|
+
"then complete the tail (Worktree.release -> Lock.release -> purge -> QMD reindex " \
|
|
681
|
+
"last). This FINISHES a completion; it is NOT a reactivation of a done intent."
|
|
682
682
|
)
|
|
683
683
|
end
|
|
684
684
|
|
package/scripts/lib/bridge.rb
CHANGED
|
@@ -741,17 +741,18 @@ module Bridge
|
|
|
741
741
|
data["lock"] = lock_cache(lock_data)
|
|
742
742
|
when :held
|
|
743
743
|
raise LockHeldError, "delivery lock for intent #{intent_id} is held by " \
|
|
744
|
-
"session #{lock_data && lock_data['owner_session']}; run /plastic-
|
|
744
|
+
"session #{lock_data && lock_data['owner_session']}; run /plastic-doctor " \
|
|
745
|
+
"check the lock status"
|
|
745
746
|
when :stale
|
|
746
747
|
raise LockHeldError, "delivery lock for intent #{intent_id} is stale " \
|
|
747
|
-
"(owner #{lock_data && lock_data['owner_session']}); run /plastic-
|
|
748
|
-
"reclaim to take it over with an audit"
|
|
748
|
+
"(owner #{lock_data && lock_data['owner_session']}); run /plastic-doctor " \
|
|
749
|
+
"reclaim the lock to take it over with an audit"
|
|
749
750
|
when :excluded
|
|
750
751
|
raise LockHeldError, "a #{lock_data && lock_data['type']} lock is active on " \
|
|
751
|
-
"intent #{intent_id}; run /plastic-lock status"
|
|
752
|
+
"intent #{intent_id}; run /plastic-doctor check the lock status"
|
|
752
753
|
when :corrupt
|
|
753
754
|
raise LockHeldError, "delivery.lock for intent #{intent_id} is unreadable; " \
|
|
754
|
-
"run /plastic-
|
|
755
|
+
"run /plastic-doctor fix the lock"
|
|
755
756
|
end
|
|
756
757
|
|
|
757
758
|
# Provision the per-intent worktrees (mandatory code worktree for project
|
|
@@ -861,7 +862,7 @@ module Bridge
|
|
|
861
862
|
end
|
|
862
863
|
return { "status" => "stale", "owner" => lock["owner_session"],
|
|
863
864
|
"actions" => actions, "session" => key,
|
|
864
|
-
"hint" => "run /plastic-
|
|
865
|
+
"hint" => "run /plastic-doctor reclaim the lock to take over with an audit" }
|
|
865
866
|
end
|
|
866
867
|
|
|
867
868
|
if lock
|
|
@@ -1002,16 +1003,16 @@ module Bridge
|
|
|
1002
1003
|
"#{lock['owner_session']}. Back off; if you are the owner's " \
|
|
1003
1004
|
"subagent, the owner must run: plastic-lock delegate " \
|
|
1004
1005
|
"--intent-dir #{target_dir} --session <your-session-id>. " \
|
|
1005
|
-
"Inspect with /plastic-lock status"
|
|
1006
|
+
"Inspect with /plastic-doctor check the lock status"
|
|
1006
1007
|
end
|
|
1007
1008
|
return solo_allow(id, "stale delivery lock") if solo
|
|
1008
1009
|
return "intent #{id} has a stale delivery lock (owner " \
|
|
1009
|
-
"#{lock['owner_session']}); run /plastic-
|
|
1010
|
-
"it over, or /plastic-
|
|
1010
|
+
"#{lock['owner_session']}); run /plastic-doctor reclaim the lock to " \
|
|
1011
|
+
"take it over, or /plastic-doctor fix the lock"
|
|
1011
1012
|
end
|
|
1012
1013
|
if Lock.corrupt?(target_dir)
|
|
1013
1014
|
return solo_allow(id, "unreadable delivery.lock") if solo
|
|
1014
|
-
return "delivery.lock for intent #{id} is unreadable; run /plastic-
|
|
1015
|
+
return "delivery.lock for intent #{id} is unreadable; run /plastic-doctor fix the lock"
|
|
1015
1016
|
end
|
|
1016
1017
|
return solo_allow(id, "no delivery lock") if solo
|
|
1017
1018
|
"no delivery lock held for intent #{id}; run /plastic-intent-starting " \
|
|
@@ -20,7 +20,7 @@ module DashboardBanner
|
|
|
20
20
|
return nil unless counts.is_a?(Hash)
|
|
21
21
|
active = counts["active"].to_i
|
|
22
22
|
future = counts["future"].to_i
|
|
23
|
-
line = "Plastic: #{active} active · #{future} next ·
|
|
23
|
+
line = "Plastic: #{active} active · #{future} next · say \"show the dashboard\" to see the board"
|
|
24
24
|
nbt = next_big_thing_id(payload)
|
|
25
25
|
line += " · next big thing: #{nbt}" if nbt
|
|
26
26
|
line
|
package/scripts/lib/lock.rb
CHANGED
|
@@ -368,8 +368,8 @@ module Claim
|
|
|
368
368
|
holder = data && data["owner_session"]
|
|
369
369
|
since = data && data["acquired_at"]
|
|
370
370
|
"artifact #{artifact} is claimed by #{holder} since #{since}; another writer holds " \
|
|
371
|
-
"it. Back off or run /plastic-lock status. If you are a distinct
|
|
372
|
-
"owner must register you: plastic-lock delegate --intent-dir
|
|
373
|
-
"--session <your-session-id>"
|
|
371
|
+
"it. Back off or run /plastic-doctor check the lock status. If you are a distinct " \
|
|
372
|
+
"delegate, the owner must register you: plastic-lock delegate --intent-dir " \
|
|
373
|
+
"#{intent_dir} --session <your-session-id>"
|
|
374
374
|
end
|
|
375
375
|
end
|
package/skills/auto/SKILL.md
CHANGED
|
@@ -4,6 +4,7 @@ description: >-
|
|
|
4
4
|
Autonomous intent delivery — agent takes over How and Exec. Use when user says
|
|
5
5
|
"auto", "take it from here", "deliver this", or when brainstorming-grill-me concludes
|
|
6
6
|
and user confirms autonomous execution. Requires an active intent in INDEX.md.
|
|
7
|
+
user-invocable: true
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# Auto — Autonomous Intent Delivery
|
|
@@ -47,6 +47,9 @@ Every role report, whatever the stage, carries these fields:
|
|
|
47
47
|
|
|
48
48
|
## Per-role payload
|
|
49
49
|
|
|
50
|
+
Multi-item payload fields (ordered actions, insights, checklist deltas) default to tables per
|
|
51
|
+
`PLASTIC.md` (## Tabular-First Reporting, intent 160); single fields stay prose.
|
|
52
|
+
|
|
50
53
|
Each role appends a payload that fulfils its place in the What, Why, How, Exec cycle (decision
|
|
51
54
|
D2). The payload is what makes the report useful to the orchestrator beyond the envelope.
|
|
52
55
|
|
|
@@ -4,6 +4,7 @@ description: >-
|
|
|
4
4
|
Deep brainstorming that interviews the user relentlessly about a plan or design until reaching shared understanding.
|
|
5
5
|
Use when user wants to stress-test a plan, get grilled on their design, or mentions "grill me".
|
|
6
6
|
Pair with plastic-brainstorming for quick ideation and use grill-me for thorough interrogation. If superpowers:brainstorming is installed it complements this skill, but it is not required.
|
|
7
|
+
user-invocable: true
|
|
7
8
|
---
|
|
8
9
|
|
|
9
10
|
# Grill Me — Deep Brainstorming
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-continuing
|
|
3
3
|
description: Use when the user says "continue", "resume", or "pick up where we left off", or when starting a new session. Continues work with the latest project context: lands on the right dashboard, then presents choices. Boot (health check, core context, version, statusline) is owned by the SessionStart hook, not this skill. Does not drive work autonomously (that is plastic-auto).
|
|
4
|
+
user-invocable: true
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Continuing
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-creating-intent
|
|
3
3
|
description: Use when new work begins, the user expresses a new goal, says "new intent", or no active intent exists for the current task. Creates intents in the global store (~/.plastic/store/) or in a project's store (~/.plastic/projects/{slug}/store/) depending on context.
|
|
4
|
+
user-invocable: true
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Creating an Intent
|
|
@@ -5,6 +5,7 @@ description: >-
|
|
|
5
5
|
git init, AGENTS.md with founding intent decisions, plastic-install --local,
|
|
6
6
|
tactical mirror, projects.yml registration, and framework scaffolding.
|
|
7
7
|
Use when an implementation intent spawns a project, or manually by user.
|
|
8
|
+
user-invocable: true
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
# Creating a Project
|
|
@@ -102,6 +102,7 @@ Use only the documented optionals below. Add nothing beyond them [A6].
|
|
|
102
102
|
| `allowed-tools` | Space-separated tool list (experimental) |
|
|
103
103
|
| `model` | Claude Code extension: pin the model for this skill |
|
|
104
104
|
| `disable-model-invocation` | Claude Code extension: only the user may fire the skill |
|
|
105
|
+
| `user-invocable` | Claude Code extension: set false to hide the skill from the user's / slash menu while leaving it agent-invocable; default true |
|
|
105
106
|
| `context: fork` | Claude Code extension: run the body as a forked task |
|
|
106
107
|
| `paths` | Claude Code extension: scope the skill to matching paths |
|
|
107
108
|
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-dashboard
|
|
3
3
|
description: Use when the user wants an overview of intents, asks "where are we", "what's next", "what should I work on", "show the dashboard", or invokes /plastic-dashboard. Renders a deterministic Value×Effort work cockpit as Markdown across the global store and all projects, and emits a machine-readable queue that auto mode consumes.
|
|
4
|
+
user-invocable: false
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Dashboard — Plastic Work Cockpit
|
package/skills/doctor/SKILL.md
CHANGED
|
@@ -8,6 +8,7 @@ description: >
|
|
|
8
8
|
skill, checking if a description triggers correctly, or assessing
|
|
9
9
|
whether a skill is still needed. Also use when the user says "evaluate",
|
|
10
10
|
"test the skill", "run evals", "check conventions", or "write evals".
|
|
11
|
+
user-invocable: true
|
|
11
12
|
---
|
|
12
13
|
|
|
13
14
|
# Evaluating Skills
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-executing-plan
|
|
3
3
|
description: Use when you have a written implementation plan to execute. Default mode is subagent-driven (dispatches fresh subagent per task with two-stage review). Fallback mode is inline execution for environments without subagent support. If superpowers:subagent-driven-development or superpowers:executing-plans are available, delegates to them.
|
|
4
|
+
user-invocable: true
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Executing a Plan
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-humanizer
|
|
3
3
|
description: Use to clean authored prose so it reads human and clutter-free. Removes AI tells and slop from a document, spec, outcome, README, report, or release note. Use when the user says "humanize", "de-slop", "remove the AI tells", or "clean up the wording". For documents, not for every chat reply, and not for code.
|
|
4
|
+
user-invocable: true
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Humanizer
|
package/skills/install/SKILL.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-install
|
|
3
3
|
description: Use when initializing Plastic globally (~/.plastic/) or locally in a project, or to re-install/repair a broken installation. Accepts channel flags (--alpha, --beta, --latest) to select release channel. First install defaults to --beta; reinstalls match the already-installed channel. Global install is recommended: it creates the global intent store as a git-backed repository. Local install creates .plastic/ in the current project for testing.
|
|
4
|
+
user-invocable: true
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Install Plastic
|
|
@@ -11,6 +11,7 @@ description: |
|
|
|
11
11
|
user: "Organize the intents"
|
|
12
12
|
assistant: "I'll use the intent-curator to review clusters, flag orphans, and suggest connections"
|
|
13
13
|
<commentary>Periodic maintenance of the Zettelkasten structure.</commentary></example>
|
|
14
|
+
user-invocable: false
|
|
14
15
|
---
|
|
15
16
|
|
|
16
17
|
# Intent Curator
|
|
@@ -6,6 +6,7 @@ description: >-
|
|
|
6
6
|
resources/discovery--<slug>.md for the Why stage to consume. Use when an intent
|
|
7
7
|
is activated (moved from Future to Active), after the lock is armed, under it,
|
|
8
8
|
and before Why begins. Never writes the intent file itself.
|
|
9
|
+
user-invocable: false
|
|
9
10
|
---
|
|
10
11
|
|
|
11
12
|
# Intent Discovery — What-stage context deposit
|
|
@@ -33,6 +34,7 @@ lock. Dispatched as the `plastic-intent-discovery` background agent.
|
|
|
33
34
|
the intent file, spec.md, or any lifecycle deliverable. The lock-owner-only
|
|
34
35
|
write rule stays intact; the Why-stage `plastic-brainstorming` agent reads the
|
|
35
36
|
deposit and enriches `## Context`.
|
|
37
|
+
Shape the deposit tabular-first per `PLASTIC.md` (## Tabular-First Reporting, intent 160).
|
|
36
38
|
|
|
37
39
|
## Stage coverage
|
|
38
40
|
This is the What-stage agent in the one-agent-per-stage table (What:
|
|
@@ -5,6 +5,7 @@ description: >-
|
|
|
5
5
|
guided ONCE, then resume at the latest delivered station and run the cycle to Done. Use on
|
|
6
6
|
`continuing --intent {id}`, when a new intent is registered and the user asks to work it,
|
|
7
7
|
or when the user picks an intent to work. Requires the intent in INDEX `## Active`.
|
|
8
|
+
user-invocable: true
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
# Intent Starting — board a session onto an intent
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-linking-intents
|
|
3
3
|
description: Use when creating connections between intents, the user says "link" or "connect", or when discovering that two intents are related. Manages sources, chain, and cross-reference links.
|
|
4
|
+
user-invocable: false
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Linking Intents
|
package/skills/lock/SKILL.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: lock
|
|
2
|
+
name: plastic-lock
|
|
3
3
|
description: Inspect, repair, release, or reclaim an intent's delivery lock. Use when a lock-gate deny names /plastic-lock, when resuming interrupted work after a crash, reboot, or /tmp wipe, when a lock reads held or stale, or when the user says "fix the lock", "who holds the lock", or "reclaim the lock".
|
|
4
|
+
user-invocable: false
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Plastic Lock
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-managing-index
|
|
3
3
|
description: Use after creating, completing, or abandoning intents, when the user says "index" or "organize", or when INDEX.md needs maintenance. Curates the INDEX.md structure note.
|
|
4
|
+
user-invocable: false
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Managing the Index
|
package/skills/research/SKILL.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-research
|
|
3
3
|
description: "Research a topic for the active intent. Agent decides shallow vs deep based on scope. Produces reports in the intent's resources/ directory."
|
|
4
|
+
user-invocable: true
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Research
|
|
@@ -81,6 +82,8 @@ Examples:
|
|
|
81
82
|
|
|
82
83
|
### Report Structure
|
|
83
84
|
|
|
85
|
+
Default to tabular-first per `PLASTIC.md` (## Tabular-First Reporting, intent 160): tables for findings and comparisons, prose for simple summaries.
|
|
86
|
+
|
|
84
87
|
```markdown
|
|
85
88
|
# {Type}: {Topic}
|
|
86
89
|
|
package/skills/roadmap/SKILL.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-roadmap
|
|
3
3
|
description: Use when the user wants to plan a delivery batch, order waves of intents, ship a batch of tickets in one go, track a named collection of intents toward a goal, or asks for a "roadmap". Creates and maintains a roadmap file, a delivery-side collection of intents (the counterpart to a release), separate from INDEX.md status tracking.
|
|
4
|
+
user-invocable: true
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Roadmap
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-savepoint
|
|
3
3
|
description: Use when verifying or repairing an intent's savepoint ledger, when the user says "save" or "savepoint", or when a PreCompact hook fires. The ledger is written automatically by the gate hook at each lifecycle boundary; this skill only reads, verifies, and rebuilds it.
|
|
4
|
+
user-invocable: false
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Savepoint
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-uninstall
|
|
3
3
|
description: Use when the user wants to remove Plastic from an agent. Runs the manifest-driven uninstaller (removes skills, hooks, statusline, and any legacy plugin layout), reports exactly what was removed and what was left behind, then gives verification steps. Optionally deletes the intent store.
|
|
4
|
+
user-invocable: true
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Uninstall Plastic
|
package/skills/update/SKILL.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-update
|
|
3
3
|
description: Use when updating Plastic. Runs the `update` verb, which reads the installed VERSION, derives its channel, queries npm dist-tags, and advances to the next version on that channel (or switches channel with a flag).
|
|
4
|
+
user-invocable: true
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Update Plastic
|
package/skills/versions/SKILL.md
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: plastic-versions
|
|
3
3
|
description: Use when the user wants to see their Plastic version history or roll back to a previously-installed version after a bad release. Manages the local, append-only versions.json ledger and steps between versions the user has actually run. For moving to a brand-new release, use plastic-update instead.
|
|
4
|
+
user-invocable: true
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
# Plastic Versions: local version time-machine
|