Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -39,13 +39,13 @@ Skills mechanically parse Japanese section headers from issue bodies:
- `Status: Ready` / `Status: Draft` (must be at the **top** of the body)
- `Depends on: #N, #M`
- `親: #N`
- `## 概要` / `## 背景 / モチベーション` / `## 受け入れ条件` / `## スコープ外` / `## 参考` / `## 実装方針` / `## 再現手順` / `## 期待する挙動` / `## 実際の挙動` / `## 調査メモ`
- `## 概要` / `## 背景 / モチベーション` / `## 受け入れ条件` / `## Ready にするための未決事項` / `## スコープ外` / `## 参考` / `## 実装方針` / `## 再現手順` / `## 期待する挙動` / `## 実際の挙動` / `## 調査メモ`

These strings are not localizable in the current implementation. Forking is required to use English issues (per README).

## Status semantics (single source of truth: `issue-create`)

`Status` is judged on **acceptance-criteria certainty only**, not implementation-plan certainty. A bug issue with a prioritized list of fix candidates and verifiable acceptance criteria is `Ready`. Acceptance criteria containing 「仮」/「要検討」 or that are too vague to self-verify → `Draft`. `issue-refine` and `issue-implement` defer to `issue-create` for this rule — do not duplicate the definition; update `issue-create` and reference it.
`Status` is judged on **acceptance-criteria certainty only**, not implementation-plan certainty. A bug issue with a prioritized list of fix candidates and verifiable acceptance criteria is `Ready`. Acceptance criteria containing 「仮」/「要検討」 or that are too vague to self-verify → `Draft`. Draft issues must include `## Ready にするための未決事項`, listing only the concrete decisions needed to finalize acceptance criteria. `issue-refine` and `issue-implement` defer to `issue-create` for this rule — do not duplicate the definition; update `issue-create` and reference it.

## Depends on / parent semantics

Expand Down
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,6 +100,8 @@ issuekit ships seven skills under `skills/`:

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

`Status: Draft` is reserved for issues whose acceptance criteria are not yet certain. Draft issues include a `## Ready にするための未決事項` checklist containing the concrete decisions needed to finalize those criteria; implementation-plan choices alone do not make an issue Draft.

---

## 🔁 Workflow
Expand Down
25 changes: 24 additions & 1 deletion skills/issue-create/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: issue-create
description: "Invoke for any request to create, file, open, or record a new GitHub issue. Trigger on:\n- Direct creation: 「issue 作って」「起票して」「issue 立て(といて)」「issue 化して」「issue 作れる?」\n- Record intent: 「issue に残したい/残しておいてほしい」「issue として残しておきたい」\n- Issue types: bug reports (with repro steps), feature requests, refactoring tasks, doc fixes, code-review findings to track later\n\nDo NOT trigger for viewing, listing, searching, or implementing existing issues."
version: 1.0.3
version: 1.1.0
---

# Issue Create Skill
Expand Down Expand Up @@ -32,6 +32,19 @@ Status の判定軸は **受け入れ条件の確定度** 一本である。言

上記に該当しない場合は `Status: Ready` とする。

`Status: Draft` の場合は、本文に `## Ready にするための未決事項` セクションを必ず設ける。ここには Draft であるという状態説明ではなく、**何を決めれば受け入れ条件を確定できるか**を具体的な問いのチェックリストとして記載する。

```md
## Ready にするための未決事項

- [ ] 対応対象に Linux を含めるか
- [ ] エラー時の期待結果を A / B のどちらにするか
```

- 受け入れ条件の確定を妨げている事項だけを書く。実装方法の選択肢や、着手後に調査可能な技術的詳細は含めない。
- 未決事項が解消したら、その決定を `## 受け入れ条件` へ反映し、未決事項セクションを削除して `Status: Ready` に変更する。
- 未決事項が 1 件でも残っている間は `Status: Draft` を維持する。

実装方針の確定度は Status に絡めない。バグ issue では「方針 A を試して直らなかったら B」というプロセス自体が正しい進め方であり、方針の事前確定を強制すると実態とミスマッチする。受け入れ条件が確定していて `acceptance-check` skill で検証可能であれば、「方針 A を採用したのにバグが直っていないまま close される」事故は防げる。

そのため **実装方針が複数案あっても、優先順位付き(または順序付き)で列挙されていれば `Status: Ready`** でよい。
Expand Down Expand Up @@ -80,6 +93,16 @@ Depends on: #123, #124 # 依存がある場合のみ。無ければ行ごと省

### 追加セクション(必要時のみ)

- **Ready にするための未決事項** — `Status: Draft` の場合に追加

受け入れ条件を確定するために必要な判断を、具体的な問いのチェックリストとして記載する。`Status: Ready` の場合はこのセクションを記載しない。

```md
## Ready にするための未決事項

- [ ] <受け入れ条件を確定するために決めること>
```

- **実装方針** — 方針案を記載する場合に追加

単一の方針が確定しているケースだけでなく、**解消候補を優先順位付き(または試行順)で列挙する書き方も許容する**。バグ issue で「上から順に試す」プロセスが想定される場合は、後者の形式が自然。
Expand Down
7 changes: 6 additions & 1 deletion skills/issue-refine/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
name: issue-refine
description: 既存の GitHub issue を `issue-create` skill のフォーマットに沿って整理する。タイトルのみで起票された issue や、フォーマット不完全な issue を後から rich plan に仕上げ直したい場合に使用する。
version: 1.0.3
version: 1.1.0
---

# Issue Refine Skill
Expand Down Expand Up @@ -35,13 +35,16 @@ gh issue view "$ISSUE_NUMBER"

- 必須セクションの欠落
- `Status:` 表記の有無
- `Status: Draft` の場合、`## Ready にするための未決事項` があり、受け入れ条件を確定するための具体的な問いが列挙されているか
- 親 issue がある場合の親リンクと「実装前に親 issue を必ず読むこと」明記
- 追加セクション(実装方針 / 再現手順 / 調査メモ等)の必要性

### 3. 対話で不足を埋める

ユーザーに対し、欠けているセクションごとに必要な情報を確認する。一度にまとめて聞かず、優先度の高いもの(概要・受け入れ条件・実装方針)から順に確認するのが望ましい。

`Status: Draft` の場合は、Draft であるという説明だけで終わらせず、受け入れ条件を確定するために必要な判断を `## Ready にするための未決事項` に具体的な問いのチェックリストとして整理する。実装方法の選択肢や、着手後に調査可能な技術的詳細は含めない。

既存の本文は **可能な限り尊重する**。表現を勝手に書き換えず、追記・補完を中心に進める。意図が不明な記述があればユーザーに確認してから整える。

### 4. Status の再評価
Expand All @@ -53,6 +56,8 @@ gh issue view "$ISSUE_NUMBER"

実装方針の確定度では判定しない。複数案を優先順位付きで列挙していれば `Status: Ready` でよい。

`Status: Draft` の間は `## Ready にするための未決事項` を維持する。すべて解消した場合は、決定内容を `## 受け入れ条件` に反映し、未決事項セクションを削除して `Status: Ready` に変更する。

整理前後で Status が変わる場合(例: Draft → Ready)は、その旨をユーザーに伝える。

### 5. issue 更新
Expand Down
Loading