From plastic
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).
How this skill is triggered — by the user, by Claude, or both
Slash command
/plastic:continuingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
`plastic-continuing` continues work. It presents the latest state via the dashboard and offers
plastic-continuing continues work. It presents the latest state via the dashboard and offers
choices, then stops. It does NOT execute work autonomously (that is plastic-auto) and does
NOT render the dashboard itself (it only invokes it).
Boot is not this skill's job. The hook-session-start hook already runs by construction on
every session start: it runs the core health check (doctor --core), primes PLASTIC.md +
store/project state, and prints the Plastic Core loaded — v{version} banner. The
plastic-statusline hook sets the statusline. So by the time this skill runs, core is loaded
and healthy (or the banner already warned otherwise). This skill picks up from there and
continues work. This is the seam future continue-flags build on (see [[39]]).
~/.plastic/INDEX.md exists → global mode.~/.plastic/projects/{slug}/ whose registered
path (in ~/.plastic/projects.yml) matches the current working directory → project mode.
The SessionStart hook already detects this; here you only need the slug to scope the
dashboard.Land on the Markdown board via the plastic-dashboard skill. Rendering belongs there, not
here — run the data payload and fill + present the matching template:
ruby ~/.plastic/scripts/dashboard.rb project <slug> --dataruby ~/.plastic/scripts/dashboard.rb continue --dataFill the matching template from this skill's templates/ and present the filled Markdown
in your reply (every time). See plastic-dashboard for the fill rules and entry flow.
The board load runs the scoped store check on every load (doctor --store <scope>): the
global board runs --store global and a project board runs --store <slug>. The result
arrives in the payload as store_health; surface it as a one-line store-health note. It is
non-fatal (a warn or fail is shown as data, it does not block continuing).
Present "here is the state, what next?" and wait. Offer active intents first, then future intents. Do not start executing work. The branches below are the only follow-ups:
plastic-auto.Fires ONLY when the user explicitly asks to continue a SPECIFIC intent, or an agent is instructed to continue one. It is not part of every boot.
QMD-first (when available): when the user names the intent by description rather than id, before
scanning the store with grep/Read run ruby ~/.plastic/scripts/qmd-sync search "<terms>" to
surface the candidate intent, then open the authoritative intent file for the hit you resume. The
command is a no-op when QMD is absent, so fall back to the existing INDEX.md / file scan.
For that intent's directory:
Read savepoint.md FIRST (intent 81). It is a deterministic, append-only ledger
(one line per event, newest at the bottom): {utc-iso8601} {Stage} {milestone}. Classify
the state from the last line alone, then verify ONLY that line's artifact. The bookends
are fixed: first line What created, last line either a cycle position or
Done delivered|abandoned.
| Last line | State | Verify only |
|---|---|---|
What {id}--{slug}.md | born / parked | intent file exists |
Why started | Why entered, no spec yet | spec.md not yet real; continue Why |
Why spec.md created | Why done | spec.md present; continue to How |
How started / How plan.md created | How in progress | plan.md; continue How |
How checklist.md created / Exec started | ready for / in Exec | plan.md + checklist.md present; continue Exec |
Exec outcome.md created | Exec done | outcome.md present; ready to complete |
Done delivered / Done abandoned | terminal | do NOT cycle-resume; INDEX is authoritative |
Verify the stage file. Confirm only the last line's artifact exists and is non-empty
(ledger How plan.md created → plan.md must be present and non-empty). Do not re-probe
every lifecycle file.
Drift handling. If the ledger's last line disagrees with files-on-disk, rebuild the
ledger from filesystem state and note the correction. A rebuilt ledger is the file-landing
skeleton (no started/Done lines), which still pins cycle position:
ruby -r ~/.plastic/scripts/lib/bridge -e 'Bridge.rebuild_savepoint("<intent_dir>")'
Derive the next step:
checklist.md if it exists, else## Insights entry supplies human-readable context (Insights are
append-only, newest at the bottom).Announce and stop:
Resuming intent [ID] — [name]
Store: [global | project:<slug> | local]
Stage: [from ledger last line]
Next step: [first unchecked checklist item | advance to <stage>]
Context: [newest ## Insights entry]
Drift: [none | ledger rebuilt from filesystem]
Then proceed with the next step. Autonomy is plastic-auto's job — if the intent's
## Insights contains (autonomous) entries, it was being delivered autonomously; hand
to plastic-auto to continue from the current stage.
If a future intent's created date is older than the configured stale_threshold_days
(default 3), surface it for triage without taking action:
Stale future intents (no action taken):
- [ID — name] (X days old)
a) Activate — start working on it now
b) Abandon — mark as abandoned
c) Defer to agent: implement | research | ideate
d) Auto — go fully autonomous (invokes plastic-auto)
When the user activates a future intent, move it to ## Active in INDEX.md and auto-commit.
references/context-management.md for the full save/continue protocol and for
debugging the resume flow.npx claudepluginhub zalom/plastic --plugin plasticProvides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.