Scores a new issue against the open backlog and flags likely duplicates before one more copy lands.
Used by: /issue-creator
Eight terminal commands that structure, analyze, triage, resolve, and review your GitHub issues — so any developer or AI agent can pick up an issue and ship a tested PR. Zero config.
idd-lint — spec conformance in CI, no LLM
GitHub issues were designed for humans to read, not for agents to execute. The gap between "someone describes a problem" and "someone ships a fix" is where projects bleed time.
Someone files "the login is broken on mobile." A developer — human or AI — burns half an hour figuring out which files to even open before writing a single line of code.
Without typed context and acceptance criteria, an AI agent confidently produces changes to the wrong files — because the issue never told it where to look or when it's done.
47 open issues sit untriaged: no dependency awareness, no execution order, no idea which ones are already fixed or which two could ship in parallel.
Six months later your git log reads "fix stuff", "update", "WIP"
— and nobody can trace why a change was ever made.
issuedev turns each GitHub issue into something typed, structured, and enriched with acceptance criteria — then resolves it, with commit messages and PR titles that link every line of code back to the intention that created it.
Describe a bug or feature in plain text. issuedev classifies the type, estimates effort (XS–XL), generates acceptance criteria, and files a clean issue — preserving your original words in a Reporter Context block without guessing implementation details.
⚡ Model: Each issue gets an advisory Suggested model with thinking level (e.g. GPT-5.5 High · Opus 4.8 Medium) keyed off effort, using CursorBench benchmarks — so you pick a capable tier for hard work and a cheaper tier for trivial fixes instead of running everything on max.
A 6-step pipeline runs end to end: preflight, research, plan, implement, QA, deliver. Out comes an atomic PR with Closes #N — branch named, commits conventional, tests written.
Dependency graph, priority suggestions, parallelizable work, stale-issue warnings, and already-fixed detection by scanning commits and PRs. One command produces a suggested execution order.
Triage → resolve → review → merge, looped across the backlog. In the default balanced mode clean PRs merge and partial ones stay open with a follow-up issue; conservative holds every merge, aggressive opts into partial merges. A dependency-aware merge gate keeps order sane.
When you create or normalize an issue, /issue-creator maps estimated effort to a model + thinking tier from CursorBench data. The preview shows ⚡ Model:; the issue body stores an advisory Suggested model: line with the benchmark date.
Use it to route XS typo fixes to low-cost modes and reserve extra-high thinking for large features — without blocking creation if the cache is offline (bundled seed + graceful fallback).
| Effort | OpenAI | Anthropic |
|---|---|---|
| XS | GPT-5.5 Low | Opus 4.7 Low |
| S | GPT-5.5 Medium | Opus 4.8 Low |
| M | GPT-5.5 High | Opus 4.8 Medium |
| L | GPT-5.5 Extra High | Opus 4.7 Extra High |
| XL | GPT-5.5 Extra High | Fable 5 Max |
Toggle with model_suggestion.enabled in .gitissue.yml · refresh CursorBench into .gitissue/model-data.json
No new platform to learn. The structured issue format is plain GitHub markdown, and every step is a command you run in the terminal you already live in.
Type the problem in plain English. /issue-creator classifies it, estimates effort, suggests model + thinking level, and structures a typed issue with acceptance criteria.
/issue-triage maps dependencies across the backlog, flags stale and already-fixed issues, and proposes an order.
/issue-resolver N researches, plans, implements, and QAs — then opens an atomic PR that closes the issue.
/issue-pr-review verifies each acceptance criterion, scores five dimensions, fixes, and merges when green.
Confidence scores, step progress, and exactly what's happening at each phase — straight from your terminal. Every symbol carries meaning.
Each is a self-contained skill — drop it into Claude Code, Codex CLI, or any SKILL.md-compatible harness. Mix and match; nothing depends on the rest. Need exact inputs? See the full docs.
Classify type, estimate effort, suggest model + thinking level (CursorBench), preserve reporter context, and file structured acceptance criteria.
Root cause, git history, implementation options, complexity and risk — saved to .gitissue/.
6-step pipeline: preflight → research → plan → implement → QA → deliver a PR with Closes #N.
Dependency graph, stale detection, already-fixed scanning, priority and execution order.
Lint/format/test pre-pass, per-criterion AC verification, five-dimension scoring, and fix cycles. Auto-merge only with --auto.
Triage → resolve → review → merge loop with balanced-by-default merge modes (conservative/balanced/aggressive).
Auto-detect language, framework, and test runner; generate a tuned .gitissue.yml.
Read-only health check for your IDD repository invariants. (maintainer tooling)
idd-lint — enforce the spec in CIscripts/idd-lint.py validates IDD Spec conformance from plain data — no LLM, no network, no dependencies beyond the Python standard library. Lint issues, PRs, commit messages, branches, or a whole repo; every check is tagged with the spec section it enforces and mapped to L1–L3 levels.
The stats mode goes further: an evidence report with trace completeness, Decision-Record coverage, and resolution outcomes by issue quality — rendered with verdict meters. Exit code 0/1 makes it CI-native; /idd-doctor stays the deep, agent-powered check.
Runs on any repo, gitissue skills or not · --level L2 skips L3 Decision-Record checks · --json for machines, --no-github for offline
Skills orchestrate the pipeline; sub-agents do the deep work. Each prompt in src/shared/agents/ is a single-responsibility specialist — research, synthesis, implementation, review, fixes — with its model tier and thinking level tuned to the task, so every stage stays focused instead of generic.
Scores a new issue against the open backlog and flags likely duplicates before one more copy lands.
Used by: /issue-creator
Maps the files, dependencies, and git history an issue touches — and researches how similar problems were solved.
Used by: /issue-resolver · /issue-analysis · /auto-pilot
Turns research into weighed options with trade-offs and a recommended approach — plus an overall complexity read.
Used by: /issue-analysis · /issue-resolver
Ships the change and its tests to match project conventions — data structures first, red-capable verification before bug fixes.
Used by: /issue-resolver
Evidence-based review that reports only high-confidence findings, grouped under Spec and Standards axes — no nitpick noise.
Used by: /issue-pr-review · /issue-resolver · /auto-pilot
Applies scoped fixes for review, test, CI, and acceptance-criteria failures — cycling until the PR turns green.
Used by: /issue-pr-review · /issue-resolver
Finds file-level dependencies between issues, work that can run in parallel, and issues already fixed by a commit or PR.
Used by: /issue-triage
Auto-detects UI changes and reviews accessibility, responsive layout, and honest UI against the screenshots in the PR.
Used by: /issue-pr-review · /issue-resolver
Issue-Driven Development is a written contract: an issue tracker and git history become executable project memory. SPEC.md (v1.1) defines the issue format, dependency and Part of #N hierarchy markers, naming grammar, and L1–L3 conformance levels — with RFC-2119 MUST/SHOULD language. It needs no specific AI agent, editor, or host. issuedev is the reference implementation for Claude Code + GitHub; a human with a text editor can conform too.
Turning a vague report — "login is broken on mobile" — into a structured work order with acceptance criteria, current-code analysis at execution time, and a clear definition of done. That's the gap between describing a problem and shipping a fix, and IDD closes it.
Every change ends as a PR linked to its issue, so the commit that resolves it carries the why forward. Decision Records bind durable memory to the work. Your git history becomes a knowledge base you can retrieve from — not noise.
IDD is a methodology, not a platform. The structured issue format is plain GitHub markdown — anything that reads issues can consume it. issuedev adds structure; everything else keeps working exactly as before.
Needs gh 2.0+, Git 2.30+, and Claude Code (or any SKILL.md agent). Zero config to start.
> Reporter Context blockquote and posts a backup comment before changing anything. Inferred fields are tagged with confidence markers — (high confidence), (needs review) — so you can see exactly what was guessed versus what was certain.balanced by default: clean PRs are merged, but a PR with unresolved review issues gets a follow-up issue and stays open — partial merges never happen unless you explicitly opt into aggressive mode with merge_partial: true. Prefer to review everything yourself? conservative mode holds every merge. A dependency-aware merge gate respects Depends on #N / Blocked by #N, and you can pass an explicit issue list for targeted runs./init-gitissue to generate a project-specific .gitissue.yml — but it's entirely optional.gh) 2.0+ authenticated via gh auth login, Git 2.30+, and Claude Code or any SKILL.md-compatible agent. Every gh call uses explicit JSON field selection — no fragile text parsing.scripts/idd-lint.py checks IDD Spec conformance from plain data — no LLM, no network, no dependencies beyond the Python standard library. Lint issues, PRs, commits, branches, or a whole repo (--level L2 to skip L3 Decision-Record checks), and get an exit code 0/1 that drops straight into CI. Its stats mode prints an evidence report — trace completeness, Decision-Record coverage, and outcomes by issue quality. Any repo can run it, gitissue skills or not; /idd-doctor remains the deeper, agent-powered health check./issue-creator estimates issue effort (XS–XL) and adds an advisory Suggested model with a thinking level (e.g. GPT-5.5 High · Opus 4.8 Medium), grounded in CursorBench benchmarks. It appears in the create preview as ⚡ Model: and in the issue metadata so humans and agents can match spend to scope — use a low tier for trivial fixes and higher thinking only when the issue warrants it. Disable via model_suggestion.enabled: false in .gitissue.yml.Turn vague reports into agent-ready work orders — and turn your git history back into the knowledge base it was meant to be.