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 skills add volodchenkov/claude-sdlc-agents --skill plane-operationsgit clone --depth 1 https://github.com/volodchenkov/claude-sdlc-agentsWrote 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/volodchenkov/claude-sdlc-agents/plane-operations)<a href="https://agentmods.dev/skills/volodchenkov/claude-sdlc-agents/plane-operations"><img src="https://agentmods.dev/badge/skills/volodchenkov/claude-sdlc-agents/plane-operations/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.
<a href="https://agentmods.dev/skills/volodchenkov/claude-sdlc-agents/plane-operations"><img src="https://agentmods.dev/badge/skills/volodchenkov/claude-sdlc-agents/plane-operations.svg" alt="Reviewed on agentmods" width="80" 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.1 | $0.00079 | $0.03836 |
| Opus 5 | $0.00039 | $0.01918 |
| Sonnet 5 | $0.00016 | $0.00767 |
| Haiku 4.5 | $0.00008 | $0.00384 |
Grade A, and why
plane-operations 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 8d 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 — 195 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Plane Operations — Pipeline Protocol
This skill provides the operational vocabulary every agent uses to interact with Plane in the Plane Conductor pipeline. The full protocol — operations with parameter shapes, re-entry algorithm, preconditions per role, commit format — is in the bundled plane-api.md (sibling file in this skill). Agents reference it by §-anchor.
When you load this skill: use the operation names below (e.g. pickup_issue, create_sub_issue) instead of inlining MCP tool calls. The MCP details are abstracted; you focus on intent.
Quick reference — operation names
| Operation | When to use |
|---|---|
| read_project_context | At session start — fetches the Plane project's description field for operational orientation (repo URL, staging, initiator, pipeline notes). Optional: returns None if empty. Wraps mcp__plane-<workspace_slug>__retrieve_project(PROJECT_ID). |
| pickup_issue | At the start of every run. Resolves <PROJECT_IDENTIFIER>-<N> to a UUID. |
| find_artifact_by_label | To locate an upstream artifact (SPEC, Backend CHANGES, etc.) among root sub-issues. |
| list_sub_issues | All children of a root in one call (regardless of label). Used by reviewer's audit pass. See plane-api.md §6.3b. |
| read_artifact | Read a sub-issue's description + a slice of its comments. Returns Markdown by default (description_format='markdown'), with the newest 20 comments and has_more_comments so you can page back via comments_offset. See plane-api.md §6.4. |
| create_sub_issue | First-run only — create your role's sub-issue with proper label and assignee. |
| post_startup_comment | First-run heartbeat. Tool: mcp__plane-tower__request_handoff(sub_uuid, target_role='initiator', message_html='@<nick> picking up. Working on it — this comment will be updated when the agent finishes.'). Save the returned comment_id; you'll edit the same comment at end of run via update_comment. |
| update_sub_issue_description | When the artifact lives in description_html (PLAN, SPEC, Design brief) and needs to be updated. |
| mark_phase_complete | BA / SA — flip [ ] Phase N → [x] Phase N in your sub-issue's description with ordering check. See plane-api.md §6.6b. |
| post_comment | Free-form comment on any sub-issue or root (intermediate notes, ad-hoc updates). Tool: mcp__plane-tower__post_comment(work_item_uuid, comment_html=…). For canonical CHANGES / bug reports / reviews use the dedicated ops below. Mentions in comment_html are rejected by _assert_no_mentions — use request_handoff for routing. |
| post_changes | Coder finals — post_changes(sub_uuid=<spawn issue_uuid>, target='backend', files=…, migrations=…, ready_for_review=True) renders the canonical CHANGES from fields and posts on your sub-issue. See plane-api.md §6.7d. |
| post_bug_report | Testers — post_bug_report(test_sub_uuid=<spawn issue_uuid>, affected_sub_uuid=<discover via find_artifact_by_label>, severity=…, …) writes the ISTQB bug on your test sub-issue and back-links the affected coder's sub-issue. See plane-api.md §6.7e. |
| post_review | Reviewer & architect. Call as post_review(sub_uuid=<the sub-issue being reviewed>, verdict=…, body_html=…, iter_n=<N>). For the architect and coders sub_uuid equals the spawn issue_uuid. For the final reviewer iterating over multiple artifacts, resolve per-artifact sub_uuid via find_artifact_by_label. See plane-api.md §6.7b. |
| mark_spec_approved | Architect — after posting an APPROVED ARCH_REVIEW, call mark_spec_approved(spec_sub_uuid=<spawn issue_uuid>, summary_html=…, next_role=…) to post the SPEC_APPROVED marker. Tower no longer verifies the prior review — you just posted it. See plane-api.md §6.7f. |
| escalate_upstream_gap | When you find a defect upstream (missing FR, ambiguous AC, broken design contract) — comment in your own sub-issue, mention initiator, STOP. Do not patch locally, do not create a "prerequisite" sub-issue. See plane-api.md §6.7c. |
| update_comment | Tool: mcp__plane-tower__update_comment(work_item_uuid, comment_id, comment_html=…). Edits an existing comment in place. At end of run use it to turn the startup heartbeat into the final "done" / "PLAN ready" summary — same comment_id, new body. Mentions in body are rejected; routing goes via request_handoff instead. |
| ask_blocking_question | When stuck. Tool: mcp__plane-tower__request_handoff(sub_uuid, target_role='initiator', message_html='BLOCKING: <question>'). Tower stamps the initiator mention; you cannot embed it yourself. STOP after the call. |
| attach_screenshot | UX Tester only — upload PNG to object storage, link via create_work_item_link. |
| redirect_task | When triggered for a task outside your role. Tool: mcp__plane-tower__request_handoff(sub_uuid, target_role='<correct-role>', message_html='Redirecting to <role>: <one-line reason>'). Tower resolves the role to a member UUID and stamps the mention. STOP after the call. |
What ships with it
1 file 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.
- 8d ago First seen · 195 lines · 79 tokens per session scan A 1ea26eb602d3
plane-operations is a skill published in the GitHub repository volodchenkov/claude-sdlc-agents (2 stars, last pushed 1mo ago), licensed MIT. It adds 79 tokens to every session and 3,836 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
recipe-create-meet-space
Create a Google Meet meeting space and share the join link.
workthreads
SpecStory Workthreads - a weekly work-thread rollup across a team's repos from SpecStory coding histories (any agent - Claude Code, Codex, Cursor, Gemini, and more). It groups the window's sessions into threads of work per project and labels each new / open / recently closed, so a lead sees what shipped, what is still…
atmos-config
Atmos root configuration: atmos.yaml discovery, precedence, deep merging, basepath, imports, minimal bootstrap, and routing to narrower Atmos skills.
story-readiness
Validate that a story file is implementation-ready. Checks for embedded GDD requirements, ADR references, engine notes, clear acceptance criteria, and no open design questions. Produces READY / NEEDS WORK / BLOCKED verdict with specific gaps. Use when user says 'is this story ready', 'can I start on this story', 'is…
autotask-creator
Rules for automation CRUD from the group-chat commander. The commander does not call mutation tools and does not edit cloud/autotasks files directly. It emits one or more top-level ... containers in its final text; the bus parses and applies them after the turn.
projects
List all managed projects with status, branch, open PRs, and open issue counts — portfolio-level view.