plan-issues

A planning skill turns a written plan into a GitHub milestone and separate GitHub issues. GitHub is a service for hosting code and tracking work; a milestone groups related issues.

In plain words
What is it for?
It is for reading plan.md, previewing the issues that would be created, and—when applied—creating the milestone and issues, with optional branch links.
Why use it?
It removes the need to copy planned tasks into GitHub by hand and keeps each issue traceable to the plan.

Skill for Claude CodeCodex

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 skills/stefan-jansen/coding-agent-toolkit/plan-issues
Any agent
npx skills add stefan-jansen/coding-agent-toolkit --skill plan-issues
Clone the repo
git clone --depth 1 https://github.com/stefan-jansen/coding-agent-toolkit

Made for: Claude Code, Codex.

Per session 96 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 1,992 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.00096 $0.01992
Opus 5 $0.00048 $0.00996
Sonnet 5 $0.00019 $0.00398
Haiku 4.5 $0.00010 $0.00199

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

Security

Grade A, and why

plan-issues 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 2d 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.

skills/plan-issues/SKILL.md · 214 lines

How it starts

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

plan-issues — project the plan onto GitHub

You are running the PLAN-ISSUES step of the workflow. Your job is to turn the durable plan.md (produced by the headless plan step) into a GitHub milestone + one issue per planned issue, so that subsequent /next work units can be traced 1:1 to a closed issue.

This step is host-neutral: same contract on Claude and Codex. The verb is gh. The agent (you) parses the markdown and shells gh.

Arguments

Parse these from the user's invocation (any order):

Arg Required Default Meaning
--repo <owner/name> yes Target GitHub repo
--plan <path> no active work unit's plan.md Plan file to parse
--milestone <title> no the milestone heading in plan.md Override the milestone title
--apply no false (dry-run) Actually create. Without it, only print what would happen
--branch <name> no none If set, ensure the branch exists locally before opening issues (so gh issue develop is wired). Optional.

If --plan is omitted, locate the active work unit:

  1. Look at the user's current working directory and walk up to a .workspace/work/ dir.
  2. Inside it, the active unit is the most recently modified subdirectory that contains a plan.md.
  3. If ambiguous, ask the user which work unit, and offer the candidates.

If --repo is omitted, stop and ask. Never guess the repo.

What "Issue N" looks like in plan.md

The convention (see align's sibling plan step) produces headings of the form:

### Milestone: `<version> — <title>`

**Issue 1 — <issue title>**

<one or more paragraphs of body — files, tests, acceptance>

**Issue 2 — <issue title>**

<body>

Parsing rules:

  • The milestone is the first ### Milestone: \X — Y` line. The full backticked string (X — Y`) is the milestone title.
  • An issue heading matches ^\*\*Issue\s+(\d+)\s+—\s+(.+?)\*\*\s*$ — capture the number and the title. (Both em-dash and ASCII -- accepted.)
  • An issue's body is every line after its heading up to (but not including) the next **Issue N —, the next top-level heading ## , or EOF. Trim leading/trailing blank lines.

Read the full file on GitHub · 214 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. 2d ago First seen · 214 lines · 96 tokens per session scan A 8affd4a71188

Subscribe to this mod's changes

plan-issues is a skill published in the GitHub repository stefan-jansen/coding-agent-toolkit (22 stars, last pushed 16d ago), licensed MIT. It adds 96 tokens to every session and 1,992 once invoked, about $0.0005 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-30.