https://github.com/hirokisakabe/issuekit
Agent Skills for issue-driven development.
https://github.com/hirokisakabe/issuekit
agent-skills claude-code claude-code-skills issue-driven-development skills-sh
Last synced: 9 days ago
JSON representation
Agent Skills for issue-driven development.
- Host: GitHub
- URL: https://github.com/hirokisakabe/issuekit
- Owner: hirokisakabe
- License: mit
- Created: 2026-05-07T11:08:15.000Z (about 1 month ago)
- Default Branch: main
- Last Pushed: 2026-05-07T12:42:30.000Z (about 1 month ago)
- Last Synced: 2026-05-07T13:30:55.017Z (about 1 month ago)
- Topics: agent-skills, claude-code, claude-code-skills, issue-driven-development, skills-sh
- Homepage:
- Size: 49.8 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# π§· issuekit
### _Issue-driven development for AI coding agents._
A Claude Code skill bundle that treats each GitHub issue as the canonical "rich plan" for a unit of work β so volatile specs stay out of your repository and only durable code gets versioned.
[](./LICENSE)
[](https://skills.sh)
[](https://docs.claude.com/en/docs/claude-code)
---
> [!NOTE]
> **Japanese-oriented plugin.** Skill bodies, descriptions, and this README are written in English, but the skills read Japanese section headers (e.g. `## εγε
₯γζ‘δ»Ά`) hardcoded into issue bodies. Issue contents themselves are expected to remain in Japanese. To use issuekit with English-only issues, you will currently need to fork and adjust the hardcoded keywords.
> [!IMPORTANT]
> **Casual OSS.** No SLA, no response guarantees. Distributed as-is for users who share the underlying philosophy. PRs and issues are welcome but may be closed without action if they conflict with the maintainer's solo-dev workflow.
## Table of Contents
- [π¦ Install](#-install)
- [π οΈ Dependencies](#-dependencies)
- [π§© Skills](#-skills)
- [π Workflow](#-workflow)
- [π‘ Philosophy](#-philosophy)
- [π Comparison with related frameworks](#-comparison-with-related-frameworks)
- [π License](#-license)
---
## π¦ Install
### via `gh skill` (recommended β supports version pinning)
```bash
# Install a skill interactively (choose from the list)
gh skill install hirokisakabe/issuekit
# Install a specific skill (e.g. issue-implement)
gh skill install hirokisakabe/issuekit issue-implement
# Pin to a specific version
gh skill install hirokisakabe/issuekit issue-implement@v1.0.0
# Or use the --pin flag
gh skill install hirokisakabe/issuekit issue-implement --pin v1.0.0
# Install for Claude Code at user scope explicitly
gh skill install hirokisakabe/issuekit issue-implement --agent claude-code --scope user
```
The install location depends on `--agent` and `--scope`; for Claude Code at user scope, skills land in `~/.claude/skills/`. Version tags follow [GitHub Releases](https://github.com/hirokisakabe/issuekit/releases).
### via `npx skills` (Claude Code, Codex CLI, Cursor, Gemini, β¦)
```bash
# Install all seven skills (always installs HEAD β version pinning not yet supported)
npx skills add hirokisakabe/issuekit
# Or install a specific skill only
npx skills add hirokisakabe/issuekit --skill issue-implement
```
This installs the skills under your agent's skill directory (e.g. `~/.claude/skills/` for Claude Code). See [skills.sh](https://skills.sh) for the list of supported agents (Claude Code, Codex CLI, Cursor, Gemini, ...).
---
## π οΈ Dependencies
issuekit assumes the following tools are available on the host:
- **An [Agent Skills](https://docs.claude.com/en/docs/agents-and-tools/agent-skills/overview)-compatible agent runtime** (e.g. [Claude Code](https://docs.claude.com/en/docs/claude-code), Codex CLI, Cursor) that loads the skills.
- **[`gh` CLI](https://cli.github.com/)** β used for all GitHub interactions (issue read/write, PR creation, CI status).
- **At least one cross-review backend CLI** β required by `cross-review`. Pick whichever pairs with the agent driving the implementation:
- **[Codex CLI](https://github.com/openai/codex)** (`brew install --cask codex`) for the `codex` backend.
- **[Claude CLI](https://docs.claude.com/en/docs/claude-code)** (`npm install -g @anthropic-ai/claude-code`) for the `claude-self` backend (uses `claude --bare -p` headless mode).
- **Claude Code v2.1.49 or newer** β required by `worktree-start` only (it uses the `EnterWorktree` tool added in 2.1.49). The other six skills run on any Agent Skills-compatible runtime.
`gh` must be authenticated against the repository you want to operate on. The `cross-review` backend is selected via the `CROSS_REVIEW_BACKEND` environment variable (`codex` / `claude-self`); if it is unset, the skill auto-detects whichever CLI is on `PATH`. If neither backend CLI is available, `cross-review` fails explicitly rather than silently skipping the review.
---
## π§© Skills
issuekit ships seven Claude Code skills under `skills/`:
| Skill | Role | Description |
| -------------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `issue-create` | Entry point | Open a new GitHub issue using issuekit's standard format (`Status: Ready` / `Status: Draft` header, intent, plan, acceptance criteria, out-of-scope). |
| `issue-refine` | Entry point | Re-shape an existing issue (title-only or partially formatted) into the standard format. |
| `issue-pick` | Entry point | Read-only triage: from a set of open issues, suggest the next one to take on, with rationale. |
| `worktree-start` | Entry point | **Claude Code only.** Switch the running session into a freshly named git worktree via the `EnterWorktree` tool. Accepts a task description **or** an issue URL/number β when the input is a `Status: Ready` issue, it chains into `issue-implement` after the worktree switch (otherwise it stops at the switch). |
| `issue-implement` | Orchestrator| Drive the full cycle from an issue number: status check β worktree start β implementation / commits β acceptance check β cross-review β PR β CI. |
| `acceptance-check` | Verifier | Read-only verifier that extracts `## εγε
₯γζ‘δ»Ά` from an issue body and reports each item as `β / β / ?`. Called by `issue-implement` after implementation/commits, before `cross-review`. |
| `cross-review` | Verifier | Delegate a second-opinion code review to a different AI backend (Codex CLI or Claude CLI headless, selectable via `CROSS_REVIEW_BACKEND`) before PR creation. Called by `issue-implement` after `acceptance-check` passes; review fixes land as additional commits. |
`issue-implement` is the orchestrator; the other skills are either entry points or verifiers it calls. `worktree-start` is the only entry point that is Claude Code-specific (`EnterWorktree` is a Claude Code primitive β Codex CLI has no equivalent), so it has no fallback under other agent runtimes. It is also the only entry point that conditionally chains into the orchestrator: when invoked with an issue URL/number whose body has `Status: Ready`, it hands off to `issue-implement` after the worktree switch.
---
## π Workflow
The skills compose into a single issue-driven cycle. Entry points feed an issue into the orchestrator, which calls the verifiers before producing a commit and a PR.
```mermaid
flowchart LR
A[issue-create] --> I[(GitHub issue
Status: Ready)]
R[issue-refine] --> I
P[issue-pick] -. suggests .-> I
I --> W[worktree-start]
W --> IMPL[issue-implement
implementation + commits]
IMPL --> AC[acceptance-check]
AC --> CR[cross-review]
CR --> C[PR + CI]
classDef entry fill:#e8f4ff,stroke:#3b82f6,color:#1e3a8a
classDef orch fill:#fef3c7,stroke:#d97706,color:#78350f
classDef ver fill:#ecfdf5,stroke:#10b981,color:#065f46
classDef out fill:#f3f4f6,stroke:#6b7280,color:#1f2937
class A,R,P,W entry
class IMPL orch
class CR,AC ver
class I,C out
```
---
## π‘ Philosophy
Most "spec-driven" or "plan-driven" frameworks for AI coding agents store the spec **in the repository** as markdown files (`spec.md`, `plan.md`, etc.) checked in alongside the code. issuekit takes a different position:
- **Specs and plans are volatile.** They describe a single unit of intent. Once the work is merged, the plan is dead β what survives is the code, the test, and (if anything) a one-line commit message.
- **Versioning volatile artifacts in git is friction.** A merged plan rots in the repo, gets stale, and pollutes diffs and search.
- **GitHub issues are already a versioned, queryable, time-bounded plan store.** They have state (`open` / `closed`), threading, references, and a natural lifecycle that matches the work itself.
So issuekit treats the **GitHub issue as the rich plan** for the work, and the repository contains only the durable artifacts (code, tests, configs). When the issue is closed, the plan disappears from the active surface area β exactly as intended.
This is opinionated. issuekit will not be a good fit if you want plans to live next to the code, or if your team's workflow expects spec markdown checked in.
---
## π Comparison with related frameworks
issuekit shares one core idea with Spec Kit, cc-spex, and superpowers: **make the "what" an explicit contract that an AI agent can read, follow, and be checked against.** Where they differ is _where_ that contract lives, and how compliance is verified.
| Framework | Contract location | Verification model | Fit |
| -------------------------------------------------- | ----------------------------------------------------------- | ----------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
| [Spec Kit](https://github.com/github/spec-kit) | Spec markdown checked into the repo | Agent re-reads the spec | Teams that want specs versioned alongside code |
| [cc-spex](https://github.com/rhuss/cc-spex) | Spec markdown checked into the repo | Agent re-reads the spec | Solo / small team, lighter than Spec Kit |
| [superpowers](https://github.com/obra/superpowers) | Skill bundle of general-purpose engineering workflows | Skill conventions + agent judgment | Broad augmentation of Claude Code; not spec-centric |
| **issuekit** | GitHub issue body (`## εγε
₯γζ‘δ»Ά`, `## γΉγ³γΌγε€`, ...) | `acceptance-check` skill mechanically verifies each acceptance criterion as `β / β / ?` before PR creation | Solo dev who already runs an issue-first workflow |
The differentiator that matters most to issuekit's design is the **verification model**. Detailed specs help agents stay on-rails, but spec compliance is itself a problem: the longer the spec, the more places the agent can drift. issuekit's response is structural rather than prescriptive β instead of writing more spec, write fewer but **mechanically verifiable** acceptance criteria, and have a dedicated skill (`acceptance-check`) check them before PR creation. The spec stays small; the verification stays honest.
---
## π License
[MIT](./LICENSE)