Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/zalom/plastic/intent-startingnpx skills add zalom/plastic --skill intent-startinggit clone --depth 1 https://github.com/zalom/plasticWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/zalom/plastic/intent-starting)<a href="https://agentmods.dev/skills/zalom/plastic/intent-starting"><img src="https://agentmods.dev/badge/skills/zalom/plastic/intent-starting.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00087 | $0.02410 |
| Opus 5 | $0.00044 | $0.01205 |
| Sonnet 5 | $0.00017 | $0.00482 |
| Haiku 4.5 | $0.00009 | $0.00241 |
Grade A, and why
plastic-intent-starting scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 152 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Intent Starting — board a session onto an intent
plastic-intent-starting is the Start procedure. It boards a session onto one intent: take
the lock FIRST, confirm the delivery state, ask auto or guided ONCE, board at the latest
delivered station, then run the cycle to Done. The What → Why → How → Exec stations are the
train track; Start boards the train, the ending procedure (~93) exits it.
Precondition + trigger
Fires when the user picks an intent to work, when an agent is told to continue a SPECIFIC
intent, or on continuing --intent {id} (the continuing → starting router is 106's job;
this skill is invokable standalone now).
If the intent is terminal (Done / Abandoned in INDEX): report only. Take NO lock, run NO resume, do NOT reopen it. Summarize the outcome and ask what is next. Stop here.
Lock FIRST (the spine)
The lock is non-negotiable and comes before any mutating work. The ACTION-3 lock-gate enforces it: without a held lock, mutating writes to this active intent's dir are denied with "run /plastic-intent-starting to lock and begin".
Read ../plastic-conventions/references/locks-and-worktrees.md for delivery isolation: the
single-owner lock, claims, worktrees, solo mode, and the station ledger behind everything below.
This path resolves relative to this skill's own installed directory.
- Ensure the intent is in INDEX
## Active. If it sits in## Future, activate it (move it to## Active, auto-commit) before arming. Creation precedes activation, so a brand-new What intent is activated here, then locked. - Self-heal the lock state first. Run:
ruby ~/.plastic/scripts/plastic-lock fix --intent-dir <STORE>/<dir>This is the one repair function (same one /plastic-lock exposes): it removes corrupt or legacy lock state and rebuilds the lock and bridge from disk for this session. If it reportsheld, another session owns the intent: STOP and tell the user who holds it. If it reportsstale, ask the user before runningplastic-lock reclaim(takeover is audited). - Arm the bridge. Which arm is chosen by the mode answer (below), but the lock itself is
taken first. Reuse the arm one-liner shape from
plastic-auto:
Replace# guided (lock only): ruby -r ~/.plastic/scripts/lib/bridge -e \ 'codex=ENV["CODEX_THREAD_ID"].to_s.strip; claude=ENV["CLAUDE_CODE_SESSION_ID"].to_s.strip; harness=!codex.empty? ? "codex" : (!claude.empty? ? "claude" : nil); session=!codex.empty? ? codex : (!claude.empty? ? claude : nil); Bridge.arm_guided(session, intent_id: "<ID>", intent_dir: "<STORE>/<dir>", store: "<STORE>", name: "<name>", harness: harness, agent: "plastic-enforcer", thread: (!codex.empty? ? codex : nil))' # auto (lock + auto), then hand to plastic-auto: ruby -r ~/.plastic/scripts/lib/bridge -e \ 'codex=ENV["CODEX_THREAD_ID"].to_s.strip; claude=ENV["CLAUDE_CODE_SESSION_ID"].to_s.strip; harness=!codex.empty? ? "codex" : (!claude.empty? ? "claude" : nil); session=!codex.empty? ? codex : (!claude.empty? ? claude : nil); Bridge.arm_auto(session, intent_id: "<ID>", intent_dir: "<STORE>/<dir>", store: "<STORE>", name: "<name>", harness: harness, agent: "plastic-enforcer", thread: (!codex.empty? ? codex : nil))'<ID>,<STORE>(~/.plastic/projects/<slug>/storeor~/.plastic/store),<dir>(theID--slugdirectory), and<name>. - Dispatch What-stage discovery (under the lock). Right after arming, when the intent
was just activated in step 1 (on a resume that already has
resources/discovery--<slug>.md, skip: discovery runs once per intent, at activation only), dispatch theplastic-intent-discoveryagent (see theplastic-intent-discoveringskill), now that this session owns the lock, deposit authorized as the owner session. Resolve its model explicitly and pass it at dispatch time (belt-and-braces):read-config agents.models.plastic-intent-discovery --project <repo>. The agent runs QMD discovery over the intent'schain/sourcesand deposits findings toresources/discovery--<slug>.mdonly; it never writes the intent file, so the lock-owner-only rule is untouched. This is advisory context for Why, not a gate: if discovery yields nothing, proceed to Why normally.
What ships with it
2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 152 lines · 87 tokens per session scan A 6dbc68845f9e
plastic-intent-starting is a skill published in the GitHub repository zalom/plastic (10 stars, last pushed 2d ago), licensed MIT. It adds 87 tokens to every session and 2,410 once invoked, about $0.0004 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other skills, from other repositories
autoprompt
Explicit-only useful-first orchestration. Invoke only when the user names autoprompt - typed as /autoprompt or in plain language such as "act in autoprompt mode" - to turn a mission into one executable roadmap, build dependency-safe lanes, and verify the result with independent reviewers. Do not infer invocation from…
autoprompt
Explicit-only useful-first orchestration. Invoke /autoprompt to turn a mission into one executable roadmap, build dependency-safe lanes, and verify the result with independent reviewers. Never infer invocation from ordinary requests. Never resume from leftover artifacts without an explicit resume instruction.
autoprompt
Explicit-only useful-first orchestration. Invoke /autoprompt to turn a mission into one executable roadmap, build dependency-safe lanes, and verify the result with independent reviewers. Never infer invocation from ordinary requests. Never resume from leftover artifacts without an explicit resume instruction.
agent-spec-tool-first
CRITICAL: Use for agent-spec CLI tool workflow. Triggers on: agent-spec, contract, lifecycle, guard, verify, explain, stamp, checkpoint, plan, requirements, work-units, knowledge requirements, KLL, docs vs knowledge, spec verification, task contract, spec quality, lint spec, run log, "how to verify", "how to use…
agent-spec-authoring
CRITICAL: Use for writing and editing agent-spec .spec/.spec.md files. Triggers on: write spec, create spec, edit spec, new spec, spec authoring, task contract, .spec file, .spec.md file, BDD scenario, acceptance criteria, completion criteria, test selector, boundary, constraint, intent, decision, out of scope, "how…
agent-spec-intent-compiler
Use when converting PRD or issue prose into KLL requirements, running the intent compiler plan, or reverse-interviewing a human to resolve requirement ambiguity before task spec generation.