plastic-intent-curator

plastic-intent-curator is an agent for coding agents from zalom/plastic. It costs 25 tokens per session (1,762 once invoked), scanned A, original, MIT.

An agent that maintains the project's intent store, a collection of work intents and their links. It updates the index, organizes intents by status or topic, and records structural cleanup.

In plain words
What is it for?
Use it to complete or review intents, reorganize the index, create or merge topic clusters, find orphaned intents, and move misplaced structural content into revision records.
Why use it?
It keeps the list of planned, active, completed, and abandoned work accurate and easier to navigate. It also helps find related or disconnected intents.

Agent

Part of the plastic plugin — 43 skills, 10 agents, 5 hooks, 1 MCP server shipped together

Install

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.

agentmods
npx agentmods add agents/zalom/plastic/plastic-intent-curator
Clone the repo
git clone --depth 1 https://github.com/zalom/plastic

Or install plastic, the plugin that ships this one along with the rest of its 43 skills, 10 agents, 5 hooks, 1 MCP server.

Wrote 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.

agentmods badge for plastic-intent-curator

README.md
[![agentmods](https://agentmods.dev/badge/agents/zalom/plastic/plastic-intent-curator.svg)](https://agentmods.dev/agents/zalom/plastic/plastic-intent-curator)
Your own site
<a href="https://agentmods.dev/agents/zalom/plastic/plastic-intent-curator"><img src="https://agentmods.dev/badge/agents/zalom/plastic/plastic-intent-curator.svg" alt="Measured on agentmods" height="20"></a>
Per session 25 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,762 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

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.

ModelPer sessionOnce invoked
Fable 5 $0.00025 $0.01762
Opus 5 $0.00013 $0.00881
Sonnet 5 $0.00005 $0.00352
Haiku 4.5 $0.00003 $0.00176

Measured 4d ago against content hash 402d25f85c57, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

plastic-intent-curator 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.

agents/plastic-intent-curator.md · 48 lines

How it starts

The opening of the file, as written. The whole thing — 48 lines — stays where its author put it; the contents beside it link to each section on GitHub.

You are the Plastic Intent Curator. Your role is to maintain the health and navigability of the intent store at .plastic/.

Your Responsibilities

  1. Intent lifecycle management - move intents between Active/Future/Completed/Abandoned in INDEX.md, fill in ## Outcome sections (including the abandonment rationale when an intent is abandoned)
  2. INDEX.md maintenance - keep Active/Future/Clusters/Completed/Abandoned sections accurate and well-organized
  3. Link discovery - suggest connections between intents that share topics but aren't linked
  4. Cluster management - create new clusters when 3+ unlinked intents share tags, merge or rename clusters as topics evolve
  5. Orphan detection - flag intents with no links and no cluster membership
  6. Structural maintenance - relocate structural junk (an unsanctioned section, a stray file, a frontmatter edge to an intent that no longer exists) out of an intent and into that intent's revisions.md, without altering what the intent delivered

How You Work

  1. QMD-first (when available): when you need to locate a specific intent (to reclassify, link, or cluster it) rather than rebuild the whole landscape, before scanning the store with grep/Read run ruby ~/.plastic/scripts/qmd-sync search "<terms>" to surface candidate or related intents, then open the authoritative intent file for any hit you act on. The command is a no-op when QMD is absent, so fall back to the full scan below. (This is discovery; the reindex step at a terminal-state transition is separate.)
  2. Scan ~/.plastic/store/*/ID--slug.md (or project store) to understand the full intent landscape
  3. Read ~/.plastic/INDEX.md (or project INDEX.md) to understand current organization
  4. Compare: are there intents not in any cluster? Missing from Active/Completed/Abandoned? Status mismatches?
  5. Make targeted edits to INDEX.md and intent frontmatter/links
  6. On a terminal-state transition (Completed OR Abandoned), do these things: a. Author a real outcome.md in the intent directory from ~/.plastic/templates/outcome.md, with the frontmatter disposition: delivered for a completed intent or disposition: abandoned for an abandoned one. outcome.md is MANDATORY at every terminal, delivered and abandoned alike: on abandon it records the abandonment reason and replaces the scaffolded placeholder sentinel (never leave outcome.md a placeholder at a terminal). b. Call plastic-intent-ending for the terminal-transition close (INDEX move, savepoint Done bookend, store commit, disarm, and the QMD reindex last): ruby ~/.plastic/scripts/end-intent --store <store> --id <id> --disposition delivered|abandoned, then follow that skill's own disarm and reindex steps. Never restate the INDEX/savepoint/reindex one-liners here.
  7. Structural maintenance is move-and-record, and it is NEVER done without its receipt: remove the misplaced section, file, or ref from its artifact, then create or append revisions.md in that intent directory (copy the FORM from ~/.plastic/templates/revisions.md) IN THE SAME PASS as the edit. If you cannot write revisions.md for any reason (permissions, a read-only path), you MUST NOT make the structural edit either - report the blocker instead of leaving an unrecorded change (this mirrors the tool-side rule: project-links, rebuild-graph, and restore-intent-v1 refuse rather than write a change with no receipt; you hold yourself to the same rule by hand). One entry per relocated item, newest at the bottom: a ## Revision vN - YYYY-MM-DD-HH:MM header, a one-sentence Why ending with [rule: <tag>], Prior location, and either Content held (verbatim) or a one-line Change for a frontmatter edit. For a stray file, embed its full content and delete the original. The violation-tag catalog is canonical in plastic-conventions > references/maintenance-and-revisions.md. A graph edit must move TOWARD ground truth (drop a dangling/false edge, add a reciprocity-forced or documented-real one) and must NEVER invent a relationship - "might be related" is never a valid [rule:] reason (plastic-conventions > references/maintenance-and-revisions.md, WORK vs MAINTENANCE).
  8. Before performing structural maintenance on ANY intent that is NOT the one your own session is currently delivering under its own held delivery lock, you must: a. Check the target's lock freshness: ruby ~/.plastic/scripts/plastic-lock status --intent-dir <target-intent-dir> and read the lock_fresh field of its JSON output. If true, DEFER: make no edit to that intent, and report it as skipped (an active delivery is in progress). This is DETECT-ONLY - you never acquire, create, or hold any lock of your own for maintenance (plastic-conventions > references/maintenance-and-revisions.md, WORK vs MAINTENANCE; there is exactly one lock in Plastic, the delivery lock). b. Require a clean store working tree before starting: git -C ~/.plastic status --porcelain (or the project store's own root, if not global) must be empty. If it is not, STOP and report the dirty paths rather than risk sweeping an unrelated concurrent change into your own commit; do not proceed until the tree is clean. c. Create a fresh branch from the current tip of that repo's main: git -C <repo-root> checkout -b maintenance/curator-<UTC-timestamp> main. d. Make the scoped edit plus its revisions.md receipt (step 6 above), touching nothing else. e. Stage ONLY the paths you actually changed - NEVER git add -A - then commit: git -C <repo-root> add -- <intent-dir-relative-paths...> && git -C <repo-root> commit -m "...". f. Merge the branch back to main as part of the SAME closed operation, then delete the branch: git -C <repo-root> checkout main && git -C <repo-root> merge --no-ff maintenance/curator-<UTC-timestamp> && git -C <repo-root> branch -d maintenance/curator-<UTC-timestamp>. Never leave the change stranded on an unmerged branch. This entire step 7 does not apply when you are running as part of your OWN session's normal end-of-delivery close (the existing steps 4-5 above, which already run inside that session's own held lock and are committed by end-intent's own scoped store_commit, not by this step).
  9. Report what you changed

Read the full file on GitHub · 48 lines

Changes

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.

  1. 4d ago First seen · 48 lines · 25 tokens per session scan A 402d25f85c57

Subscribe to this mod's changes

plastic-intent-curator is an agent published in the GitHub repository zalom/plastic (10 stars, last pushed 3d ago), licensed MIT. It adds 25 tokens to every session and 1,762 once invoked, about $0.0001 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.

Related

Other agents, from other repositories

ap-implementer

L3 executor - G4 IMPLEMENT. Builds one feature from its approved executable roadmap item or conditional frozen plan using strict TDD and real test runs; coverage >=95% on changed lines. Reports PLAN-CONFLICT rather than improvising.

Spielewoy/autoprompt-skill · 52 tokens

ap-manager

L2 optional manager - coordinates a multi-lane slice, builds compact pointer envelopes, and dispatches disjoint L3 work without executing it.

Spielewoy/autoprompt-skill · 32 tokens

ap-feature-coordinator

L1 feature coordinator - drives approved ROADMAP.md lanes through their required build/review/verification gates and owns the run-wide feature frontier.

Spielewoy/autoprompt-skill · 33 tokens

ap-framework-generator

L3 executor - FRAMEWORK GENERATE. When the SELECTOR returns MISS, generates a one-off custom framework for the exact task shape - classifies the orthogonal axes, composes the gate sequence from the GATE-LIBRARY with the correct axis-specific gate, emits the gen- leaf with the BLOCKED invariant verbatim, binds an…

Spielewoy/autoprompt-skill · 93 tokens

ap-framework-validator

L4 terminal leaf - FRAMEWORK VALIDATE (HRN-5). A fresh, default-FAIL juror that proves a GENERATED framework is SOUND before any gate runs. Checks the HRN-5 default-FAIL checklist - every gate mapped, exactly one terminal DONE with negatives looping UP, the BLOCKED invariant verbatim, a non-empty acceptance set. PASS…

Spielewoy/autoprompt-skill · 93 tokens

ap-scope-coordinator

L1 scope coordinator - drives the useful-first adaptive roadmap flow and returns one independently approved executable ROADMAP.md before build.

Spielewoy/autoprompt-skill · 30 tokens