issue-authoring

issue-authoring is a skill for Claude Code from kurone-kito/idd-skill. It costs 71 tokens per session (6,653 once invoked), scanned A, original, MIT.

A guide for turning broad or unclear development requests into reviewable GitHub issues, roadmap items, and smaller linked tasks.

In plain words
What is it for?
Use it to plan large changes, split work into smaller tasks, reuse suitable existing issues, and prepare implementation-ready tickets.
Why use it?
It clarifies the work and its dependencies before implementation begins, reducing vague issues and poorly defined changes.

Skill for Claude Code

Written for Claude Code: installed under .claude/. Also seen: reads .claude/ paths; mentions Claude Code.

Good fit Use it to plan large changes, split work into smaller tasks, reuse suitable existing issues, and prepare implementation-ready tickets.

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/kurone-kito/idd-skill/issue-authoring
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.

Any agent
npx skills add kurone-kito/idd-skill --skill issue-authoring
Clone the repo
git clone --depth 1 https://github.com/kurone-kito/idd-skill

Made for: Claude Code.

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 issue-authoring

README.md
[![agentmods](https://agentmods.dev/badge/skills/kurone-kito/idd-skill/issue-authoring/github.svg)](https://agentmods.dev/skills/kurone-kito/idd-skill/issue-authoring)
Your own site
<a href="https://agentmods.dev/skills/kurone-kito/idd-skill/issue-authoring"><img src="https://agentmods.dev/badge/skills/kurone-kito/idd-skill/issue-authoring/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 issue-authoring

Your own site · 80×15
<a href="https://agentmods.dev/skills/kurone-kito/idd-skill/issue-authoring"><img src="https://agentmods.dev/badge/skills/kurone-kito/idd-skill/issue-authoring.svg" alt="Reviewed on agentmods" width="80" height="20"></a>
Per session 71 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,653 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe. Third-party audits
  • NVIDIA SkillSpector warn 7 Sept 2026
SkillSpector: 2 findings, up to high

These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →

  • high Prompt Injection · line 62
    Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
    Fix: Audit all comments and invisible characters. Remove any instructions that direct the agent to perform unauthorized actions. Use plain, reviewable content.
  • high Prompt Injection · line 147
    Hidden instructions were detected in comments or invisible text. These could contain malicious directives. Manual review is recommended.
    Fix: Audit all comments and invisible characters. Remove any instructions that direct the agent to perform unauthorized actions. Use plain, reviewable content.
How audits are shown
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.00071 $0.06653
Opus 5.5 $0.00028 $0.02661
Sonnet 5.5 $0.00014 $0.01331
Haiku 4.5 $0.00007 $0.00665

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

Security

Grade A, and why

issue-authoring 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.

.claude/skills/issue-authoring/SKILL.md · 472 lines

How it starts

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

Issue Authoring

Use this skill to prepare issue-ready work before execution starts. Keep the skill concise and treat the repository docs as the canonical source for the full contract and schema. The canonical source bundle lives in this repository; install copies in the agent-specific skill directory your runtime reads.

Stable Phases

Use two stable phases:

  1. Intake and Clarification — inspect relevant context, identify ambiguity, run a secondary critique or explicit self-critique, and ask only the questions that block safe issue drafting; for an interactive choice, the question blocks publishing, so it is asked (see Human-dependency isolation). Keep clarification bounded; use the repository-local issueAuthoring.maxClarificationRounds value when available, otherwise default to 3 rounds. Under-clarification stop rule: if, after bounded clarification, you still cannot name the concrete surface to edit or an objective verification for a candidate task, route it to needs-decision, or for an interactive choice ask first under Human-dependency isolation — do not publish a confidently-vague ready issue. Reliability over speed.
  2. Decompose and Draft — restate the request in implementation terms, split it into atomic tasks, classify readiness, reuse existing issues when safe, and draft the smallest issue shape that preserves dependencies and reviewability.

Preserve low-readiness work in stable buckets: ready, deferred, needs-decision, blocked-by-human, and out-of-scope.

Workflow

  1. Read the bundled contract in references/contract.md.
  2. Reuse or extend an existing issue before creating a new one — but never edit the body of an actively-claimed or open-PR issue (its claimed agent will not pick the change up); cover it with a follow-up issue instead. See the contract's claim-state precondition.
  3. Choose the smallest safe output shape:
    • orphan issue for one ready autonomous task only when the target repository discovers orphans (issue-scope: roadmap-first, the default, via the orphan fallback, or orphan-first) and any configured orphan-first-policy approval step can be completed after drafting
    • roadmap plus sub-issues for multi-task or multi-session work
    • stable non-ready buckets for deferred, needs-decision, blocked-by-human, or out-of-scope work
  4. Prefix-first: resolve the target repository's marker prefix before emitting any authoring marker — roadmap-id, blocked-by, autopilot-suitability, or effort. Use the prefix documented by the target repository's onboarding or IDD docs, and ask the user instead of guessing when the prefix is not discoverable. Never default to this source repository's idd-skill prefix in an installed bundle.
  5. Keep dependencies machine-readable and minimal:
    • roadmap identity via <!-- <marker-prefix>-roadmap-id: ... -->
    • active child issues via roadmap task-list links
    • issue-to-issue dependencies via Blocked by #NNN
    • sequential roadmap dependencies via <!-- <marker-prefix>-blocked-by: ... --> only when a separate roadmap must close first
    • keep independent sibling work in roadmap task lists unless a true correctness, availability, or ordering constraint requires a dependency edge
    • for every hard edge, name the producer output, the blocked operation or criterion, and its evidence; check the counterfactual with other valid prerequisites retained, then verify the set keeps independent siblings and natural cohesion. See the contract for the unchanged packet fields and worked examples.
  6. Before the completed-draft adversarial review, verify material factual claims that justify the draft's scope or design against current sources: repository behavior against current code and docs; issue or pull-request status and prior decisions against live GitHub records; and runtime observations under the existing artifact-citation rule. Correct, qualify, or remove any such unsupported claim, and put support in the review packet's existing evidence array. Route a materially unresolved claim through the existing uncertainty and human-dependency rules: needs-decision for unresolved product, policy, or design choices, and blocked-by-human when verification waits on a person, credential, asset, or outside system. The packet schema stays unchanged. This check responds to the factual-history error reported in issue #4566, which concerns issue #3838 and issue #1019. Then run the completed-draft adversarial review on each completed roadmap, child, or orphan draft. This is not the Intake critique above. The packet, checklist, mode table, failure stop, wait ceiling, and no-mutation boundary are normative in Completed-draft adversarial review. Send only the exact title and body plus that bounded packet. Resolve idd-issue-authoring-delegate when a helper runtime can run it; the helper does not invoke the command. If the resolver cannot be run, or usable is false, use the agent-native reviewer or a structured self-critique. That is not a failed review. When usable is true, the mode is fallback (default), combined, on-success, or never; union findings when both mechanisms run. A missing command, non-zero exit, timeout, cancellation, or unreadable findings is a failure only after usable: true. A readable empty list is clean. If no mechanism that ran returns a readable list, do not publish the target: do not create it, update its body, change its label, or append a marker for it. An existing held issue keeps its label and previous body. The drafts go into a carrier marked Review: not reviewed (step 8), unless they already sit in one or one of step 8's two exceptions applies. The reviewer returns findings only. Prefer a non-context-inheriting reviewer; issue #3448 records why a context-inheriting no-mutation dispatch can still publish. Bound the wait with issueAuthoring.adversarialReview.waitCeiling (default PT20M) using the caller's own wait and cleanup, and do not wrap the command in a timeout utility. Dispose of every finding. Keep a findings ledger in the session scratchpad, never in the repository, and send each rejected finding that has evidence as a previously rejected: string in the packet's evidence array (carry-forward rule). Review the revised draft again before the linter whenever that revision changes more than wording, including acceptance criteria, candidate files, dependency edges, roadmap task-list or relationship wiring, scope or the proposed change, or the readiness bucket (Disposition). Wording-only edits do not start another review. Audit every revised body before publication. A roadmap shell may be reviewed and published with an empty ## Tracks list. Review each child before publishing it. Review the parent again when real child numbers are written into ## Tracks, then audit that edit before saving it.
  7. Before publishing a ready orphan, roadmap, or child body, or a draft carrier (--shape carrier), run the audit-authored-issue linter against it as the mechanical pre-publish gate — see Mechanical pre-publish gate in the bundled contract, including the manual fallback for instructions-only installs with no helper runtime. Resolve every reported failure before treating the issue as ready; a carrier is never published without that check, and it has no manual fallback (step 8's second exception applies). Before newly publishing a body into the needs-decision or blocked-by-human bucket instead, also run the linter, passing --expect-bucket <needs-decision|blocked-by-human> (choose the one matching value) — the same gate section's --expect-bucket flag requires the matching authoring-bucket marker for that publish, closing the gap where a non-ready body would otherwise never be audited at all. For every needs-decision lint — initial publication, held-body re-lint, and Stage 2 — pass --expect-bucket needs-decision and both configured labels.
  8. Publish each ready, needs-decision, or blocked-by-human body directly under the authoring hold once the completed-draft review (step 6) and then the mechanical gate (step 7) have passed. The Intake critique stays the pre-draft pass above and does not replace step 6. No separate publish approval is needed. A reviewed draft does not end in local files only. When its final shape cannot be published under the hold now (the command cannot create it yet, such as a child whose set anchor is not published and held, or the final form waits on something else), publish a draft carrier with publish-authoring-hold --shape carrier (run it with --apply; the default is a dry run), as Draft carrier defines. A preview request also publishes a carrier, and the drafts are shown in the reply too. When authoring stops before the review completes on a planned stop (context pressure, or the user's instruction to stop), or when the review fails or cannot finish, the target is not published; its drafts go into a carrier marked Review: not reviewed (drafts already in a carrier stay there). Two exceptions keep the drafts local: the user explicitly says not to publish (an instruction not to create any issue, not a request to see the drafts first; the final message says that the drafts are not durable and gives their local paths), or the carrier cannot be published either (no helper runtime, issueAuthoring.journalIssue unset, or a failure before the create; the final message says the same and asks the user where to keep the drafts). A choice that the interactive rule in Human-dependency isolation holds unpublished is a pending question, not a reviewed draft. Manage the authoring label for each created or updated issue:
    • resolve issueAuthoring.authoringLabelName, defaulting to status:authoring
    • create the label with gh label create before first use when the target repository does not already have it
    • treat label creation or application failure as a publishing blocker
    • apply the label before updating an existing issue
    • for a review-needs-decision follow-up, see the narrow auto-release exception in the contract for its extra label and release rules
    • acquire per-target ownership before editing an existing issue or roadmap; the shared label is a claim-suppression lock, not an owner token. Follow the append-only owner-marker and re-read protocol in references/workflow-boundary.md and stop without editing when ownership or the target snapshot conflicts
    • for a new Stage 1 set, generate one opaque set ID and reuse it in every owner marker for that set; when resuming an interrupted set, recover and verify its persisted set ID from the exact trusted owner markers and reuse it instead of generating a replacement; never infer set membership from the label alone
    • when a set includes a parent roadmap, publish a valid roadmap shell under the authoring hold before any child; acquire and verify that roadmap as the set anchor, leaving its ## Tracks list empty only until child issue numbers exist. Without a parent roadmap, use the designated lead target as the anchor
    • acquire and verify the set anchor before publishing or acquiring any child; do not acquire children independently, and stop all edits if any target cannot join that anchor's verified set
    • before each child acquisition or resume, append and verify a same-owner anchor heartbeat (or reuse one — see the heartbeat-coalescing rule below), re-fetch the anchor's paginated log, then append the child marker and immediately re-fetch both anchor and child. Stop with the label in place if anchor ownership changed between those reads
    • Heartbeat coalescing (issueAuthoring.heartbeatCoalesceWindow, default PT2M): before appending a heartbeat, replay the target's paginated log; reuse the latest trusted marker instead of appending when it is the same owner/set/session, its mode is acquire/bootstrap/resume/heartbeat, it is younger than the window, and its body-sha256 matches the just-fetched body — re-fetch and verify the reused marker exactly as a fresh one. This window never applies to acquire, bootstrap, resume, release, release-guard, or release-complete appends themselves — only a heartbeat append may be skipped
    • persist the anchor's canonical repository/issue identity in every owner marker for the set; the anchor marker points to itself, and a resume must stop if the interrupted set's anchor cannot be proven
    • immediately before every Stage 1 body or relationship edit, re-fetch both the edited target and the set anchor; require each target's expected owner token independently, plus the same set, anchor, and owning session, and require an unchanged expected target snapshot before editing
    • immediately before that edit, renew both generations with a trusted same-owner-per-target heartbeat marker (one marker when target and anchor coincide; reuse applies here too), re-fetch and verify both, and stop if renewal or ownership verification fails
    • create new issues only through a capability-checked publication command that applies the authoring label atomically and carries an exact hidden publication token for target, anchor, set, and session; if that operation is unavailable, stop before creating the issue (a carrier cannot be created either, so the second exception above applies) — never intentionally create an unlabeled issue. That command is idd-publish-authoring-hold (node scripts/publish-authoring-hold.mjs in this source repository). It publishes one issue per call: an orphan (the default), a draft carrier (--shape carrier), a roadmap shell (--shape roadmap), or a child (--shape child with --anchor naming the set anchor's <owner>/<repo>#<number>); see its --help and the contract's "New-issue ownership" section
    • the hidden publication token is this exact HTML-first body line. anchor reuses the opaque target value only when this new issue is itself the set anchor (self-reference); for a non-anchor child, anchor is instead the set anchor's already-resolved real <owner>/<repo>#<number> reference, not an opaque id (full rule: references/contract.md's "New-issue ownership" section):

Read the full file on GitHub · 472 lines

Files

What ships with it

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

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 Changed · +15 lines 05d6cdc58b96
  2. 5d ago Changed · +15 lines e13b4bc09888
  3. 10d ago Changed · +40 lines e41ac173a905
  4. 11d ago Changed · +10 lines 3bdb36b7c59e
  5. 12d ago Changed · +12 lines 231604423185
  6. 17d ago Changed · +7 lines dd3951533445
  7. 20d ago Changed · +7 lines 58e69565fc74
  8. 25d ago Changed · +39 lines 620d13aba8bb
  9. 1mo ago Changed · +10 lines 902b008fc967
  10. 1mo ago First seen · 317 lines · 71 tokens per session scan A f4bb9a480968

Subscribe to this mod's changes

issue-authoring is a skill published in the GitHub repository kurone-kito/idd-skill (11 stars, last pushed today), licensed MIT. It adds 71 tokens to every session and 6,653 once invoked, about $0.0003 per session on Opus 5.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.

Related

Other skills, from other repositories

ledger-tasks-yylo

Retrieve any YYLO Ledger Record by ID, discover PDRs and artifacts, and manage tasks and dependencies. Use for unknown record types, universal get/search, task operations, and source-of-truth boundaries.

Dianel555/DSkills · 49 tokens

grill-me

Grill the user about a requirement, decision, or idea before implementation, then produce an actionable planning report without writing code. Use when the user wants to clarify requirements, stress-test an idea, compare approaches, or plan before coding.

Dianel555/DSkills · 51 tokens

triage

Apply a formal state machine to issues — assign category (bug/enhancement/question/spike) and state (needs-triage → needs-info → ready-for-agent → ready-for-human → wontfix). Issues marked ready-for-agent become inputs to supergraph:plan. Use when processing a backlog, reviewing new issues, or preparing work for…

datit309/supergraph · 73 tokens

murmur-review-loop

Use when the user says 'send this to my client', 'get feedback on this page', 'send a review link', 'what did the client say', or 'work through the review notes'. Sends a Murmur review link, reads the notes reviewers pin to the page, replies, applies each change on a duplicate, and resolves every note with the…

respira-press/agent-skills-wordpress · 82 tokens

plan-ledger-tasks-yylo

Create a concise Product Development Requirement and one or more implementation-sized YYLO Ledger tasks when the user explicitly asks to plan or register work.

Dianel555/DSkills · 36 tokens

kelly-support

Personal App-in-Skill customer-support desk (help desk) that triages incoming support tickets from email, WhatsApp, web chat, contact forms, and WeChat, drafts KB-grounded replies, and proposes actions, then holds every send behind a human approval queue with a pre-send quality gate (support-qa) that outputs…

mr-kelly/skills · 214 tokens