symphony-rust: Skill for Claude Code

.agents/skills/symphony-workpad/SKILL.md

symphony-workpad is a skill for Claude Code, Codex from anantjain-xyz/symphony-rust. It costs 66 tokens per session (921 once invoked), scanned A, original, MIT.

A single progress note kept as a comment on a Linear issue. Linear is a tool for tracking development work, and the workpad records the plan, acceptance criteria, checks, and notes.

In plain words
What is it for?
Use it to find or create the workpad, update it in place, and reset it when the issue needs rework.
Why use it?
It keeps the issue's working information in one place and avoids creating duplicate progress comments.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one. Also seen: installed under .agents/ (shared by several agents); mentions Codex.

This is anantjain-xyz/symphony-rust's own configuration. It tells Claude Code and Codex how to work on symphony-rust itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything symphony-rust configures →

Reuse

Borrowing it

Nothing to install: this file belongs to anantjain-xyz/symphony-rust. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/anantjain-xyz/symphony-rust/main/.agents/skills/symphony-workpad/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/anantjain-xyz/symphony-rust

Made for: Claude Code, Codex.

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 symphony-workpad

README.md
[![agentmods](https://agentmods.dev/badge/skills/anantjain-xyz/symphony-rust/symphony-workpad/github.svg)](https://agentmods.dev/skills/anantjain-xyz/symphony-rust/symphony-workpad)
Your own site
<a href="https://agentmods.dev/skills/anantjain-xyz/symphony-rust/symphony-workpad"><img src="https://agentmods.dev/badge/skills/anantjain-xyz/symphony-rust/symphony-workpad/github.svg" alt="Measured on agentmods" height="20"></a>

Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.

agentmods 80×15 button for symphony-workpad

Your own site · 80×15
<a href="https://agentmods.dev/skills/anantjain-xyz/symphony-rust/symphony-workpad"><img src="https://agentmods.dev/badge/skills/anantjain-xyz/symphony-rust/symphony-workpad.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 66 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 921 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. A grade says what 26 rules found in the file — not that it is safe.
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.1 $0.00066 $0.00921
Opus 5.5 $0.00026 $0.00368
Sonnet 5.5 $0.00013 $0.00184
Haiku 4.5 $0.00007 $0.00092

Measured 2mo ago against content hash c2f99ca621b0, method: parsed. Prices are Anthropic first-party input rates as of 2026-10-07, from the pricing page.

Security

Grade A, and why

symphony-workpad scanned grade A with 1 finding 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 2mo 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.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -fsS \
Origin

Copies of this mod

1 near-identical copy found in the catalogue:

.agents/skills/symphony-workpad/SKILL.md · 94 lines

How it starts

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

Workpad

The workpad is the single source of truth for an issue's plan, acceptance criteria, validation, and notes. One ## Symphony Workpad comment per issue, ever — never open a second one, never delete it.

Find or bootstrap

  1. List comments on the issue with the configured Linear MCP comment-listing tool, normally mcp__linear__list_comments in Codex.
  2. Find the comment whose body starts with ## Symphony Workpad. If found: persist its id for in-place updates and reuse it.
  3. If not found, create one with the configured Linear MCP comment-save tool, normally mcp__linear__save_comment in Codex, using the template at the bottom of this skill. Persist the returned id.

Update in place (the trap)

The Linear MCP save_comment tool with a commentId creates a new comment instead of editing the original — this is what produces duplicate workpads. Always update via raw GraphQL:

curl -fsS \
  -H "Authorization: $LINEAR_API_KEY" \
  -H "Content-Type: application/json" \
  https://api.linear.app/graphql \
  -d @- <<'JSON'
{"query":"mutation($id:String!,$body:String!){commentUpdate(id:$id,input:{body:$body}){success}}",
 "variables":{"id":"<comment-id>","body":"<new body>"}}
JSON

If duplicates were already created by a buggy save, edit the canonical (oldest) workpad in place via the GraphQL workaround and replace the duplicate's body with Superseded — see canonical Symphony Workpad above.. Do not delete the duplicate — the workpad comment, even a duplicate one, is never test data.

Reset (Rework)

When the issue moves to Rework, overwrite the existing workpad's body in place with a fresh scaffold via the same commentUpdate mutation. Do not delete the comment. Keep the same comment ID for the lifetime of the issue.

Acceptance criteria & validation

  • Capture every checkbox the workflow requires (env stamp, plan, acceptance, validation, notes).
  • If the issue body has Validation, Test Plan, or Testing sections, copy them verbatim into Acceptance / Validation as required checkboxes — no optional downgrade.
  • For user-facing changes, add a UI walkthrough criterion. Screenshots themselves go in the PR description via the symphony-screenshot skill, not in the workpad.

Read the full file on GitHub · 94 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. 2mo ago First seen · 94 lines · 66 tokens per session scan A c2f99ca621b0

Subscribe to this mod's changes

symphony-workpad is a skill published in the GitHub repository anantjain-xyz/symphony-rust (12 stars, last pushed 16d ago), licensed MIT. It adds 66 tokens to every session and 921 once invoked, about $0.0003 per session on Opus 5.5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.