← Back to list

issues
by horatjp
⭐ 0🍴 0📅 Jan 13, 2026
SKILL.md
name: issues description: 個人タスクとプロジェクトISSUEを一元管理するスキル。ユーザーが「ISSUEを作って」「タスクを確認」などと指示した時、またはコード内のTODOコメントを発見した時に使用。
Issues
個人タスクとプロジェクトISSUEを一元管理するスキルです。ISSUEは .claude/skills/issues/issues/ に保存されます。
使用タイミング
ユーザーからの指示
- 「ISSUEを作って」「タスクを作って」
- 「やることリストを見せて」「未完了のISSUEは?」
- 「このバグをISSUEにして」
- 「優先度が高いタスクは?」
プロアクティブ(積極的な使用)
以下の場合は、ユーザーにISSUE作成を提案してください:
- 複雑な作業を開始する前(複数ステップ必要)
- 重要なバグや問題を発見した時
- 将来の作業が必要と判明した時
- 依存関係やブロッカーを発見した時
- コード内にTODOコメントを発見した時
ディレクトリ構造
issues/
├── 001-setup-dev-environment.md
├── 002-fix-login-bug.md
├── 003-implement-dark-mode.md
└── .archive/ # 完了ISSUEのアーカイブ(月別)
└── 2025-01/
└── 000-completed-issue.md
ポイント:
- フラットな構造(すべてのISSUEを
issues/ディレクトリに配置) projectフィールドやtagsで分類- 連番付きのkebab-case命名
ISSUEの作成
1. 連番を決定
LAST_NUM=$(find issues -name "*.md" -type f 2>/dev/null | \
sed 's/.*\/\([0-9]\+\)-.*/\1/' | sort -n | tail -1)
NEXT_NUM=$(printf "%03d" $((10#${LAST_NUM:-0} + 1)))
2. ファイル作成
必須front matterを含むファイルを作成:
---
title: "ISSUEのタイトル"
created: 2025-01-09
status: todo
---
# ISSUEのタイトル
## 説明
詳細な説明をここに...
## タスク
- [ ] ステップ1
- [ ] ステップ2
オプションのfront matterフィールド
type: task/bug/feature/question/enhancement/chorepriority: low/medium/high/urgentdue: 期限(YYYY-MM-DD)updated: 最終更新日tags: 検索用タグの配列project: プロジェクト識別(personal, dotfiles, web-app など)related: 関連ファイル・リンクの配列blocked_by: ブロック関係estimate: 見積もり時間
3. ファイル例
個人タスク例
---
title: "Neovimのプラグイン設定を整理"
created: 2025-01-09
status: in-progress
type: chore
priority: medium
tags: [neovim, dotfiles, setup]
project: personal
estimate: 3h
---
# Neovimのプラグイン設定を整理
## 背景
プラグインが増えすぎて管理が煩雑になっている。lazy.nvimへの移行を検討。
## タスク
- [ ] 現在のプラグイン一覧を棚卸し
- [ ] 不要なプラグインを削除
- [ ] lazy.nvimのドキュメントを読む
- [ ] 段階的に移行
## メモ
- packer.nvimから移行予定
- 参考: https://github.com/folke/lazy.nvim
プロジェクトISSUE例
---
title: "ユーザー認証のセッション切れ時にリダイレクトしない"
created: 2025-01-09
status: todo
type: bug
priority: high
project: web-app
tags: [auth, frontend, bug]
related:
- src/middleware/auth.ts
- src/components/LoginForm.tsx
due: 2025-01-15
---
# セッション切れ時のリダイレクト不具合
## 症状
ユーザーのセッションが切れた際、ログイン画面にリダイレクトされず、エラー画面が表示される。
## 再現手順
1. ログイン
2. 1時間待機(セッションタイムアウト)
3. 任意のページにアクセス
4. エラー画面が表示される(期待: ログイン画面へリダイレクト)
## 調査メモ
- auth.tsのmiddlewareでエラーハンドリングが不足
- 401エラーをキャッチしていない
## 解決策候補
- axios interceptorで401エラーをグローバルに処理
- リダイレクトロジックをauth middlewareに追加
ISSUEの検索・一覧(Summary-First アプローチ)
1. すべてのISSUE一覧
rg --no-ignore --hidden '^title:' issues/
--no-ignore --hidden フラグは必須(issues ディレクトリは .gitignore 対象のため)
2. ステータスでフィルタリング
# TODO状態のISSUE
rg --no-ignore --hidden '^status: todo$' issues/ -l | \
xargs rg --no-ignore --hidden '^title:'
# 作業中のISSUE
rg --no-ignore --hidden '^status: in-progress$' issues/ -l | \
xargs rg --no-ignore --hidden '^title:'
# 完了したISSUE
rg --no-ignore --hidden '^status: done$' issues/ -l | \
xargs rg --no-ignore --hidden '^title:'
3. 優先度でフィルタリング
# 高優先度ISSUE
rg --no-ignore --hidden '^priority: high$' issues/ -l | \
xargs rg --no-ignore --hidden '^title:'
# 緊急ISSUE
rg --no-ignore --hidden '^priority: urgent$' issues/ -l | \
xargs rg --no-ignore --hidden '^title:'
4. プロジェクトでフィルタリング
# 特定プロジェクトのISSUE
rg --no-ignore --hidden '^project: dotfiles$' issues/ -l | \
xargs rg --no-ignore --hidden '^(title|status|priority):'
# 個人タスク
rg --no-ignore --hidden '^project: personal$' issues/ -l | \
xargs rg --no-ignore --hidden '^title:'
5. タグで検索
rg --no-ignore --hidden '^tags:.*\[.*react.*\]' issues/ -i -l | \
xargs rg --no-ignore --hidden '^title:'
6. 期限が近いISSUE
# 今日から7日以内
TODAY=$(date +%Y-%m-%d)
rg --no-ignore --hidden "^due: " issues/ | \
awk -v today="$TODAY" '$2 >= today && $2 <= today+7'
7. 全文検索(必要な場合のみ)
rg --no-ignore --hidden '<キーワード>' issues/ -i
8. ファイルを読み込み
タイトルから該当ファイルを特定したら、Read toolで内容を確認。
ISSUEの更新
ステータス変更
- ファイルを読み込み
- Editツールでstatusフィールドを変更
- updatedフィールドを追加・更新
完了とアーカイブ
# アーカイブディレクトリを作成
mkdir -p issues/.archive/$(date +%Y-%m)
# 完了ISSUEを移動
mv issues/001-issue.md issues/.archive/2025-01/
コード内TODOコメントの処理
1. TODOコメントを検出
rg 'TODO|FIXME|XXX|HACK' --type-add 'code:*.{ts,tsx,js,jsx,py,go,rs}' \
--type code -n -C 1
2. ユーザーに提案
「コード内にN件のTODOコメントを発見しました。ISSUEとして記録しますか?」
3. ISSUE作成
issues/ディレクトリに作成type: choreまたはtype: bugrelatedにファイルパスと行番号を記録projectフィールドで該当プロジェクトを指定
ベストプラクティス
ISSUEの粒度
- 適切な粒度: 1-3時間で完了できる単位
- 大きすぎる場合: サブタスクに分割(チェックリスト使用)
- 小さすぎる場合: 関連ISSUEをまとめる
優先度の付け方
urgent: 今すぐ対応が必要(本番障害など)high: 重要で早めに対応medium: 通常の優先度(デフォルト)low: 時間がある時に
タグの使い方
- 技術スタック:
[react, typescript, nodejs] - 機能領域:
[auth, api, frontend] - 作業種別:
[refactoring, testing, documentation]
projectフィールドの使い方
- 個人タスク:
personal - プロジェクト別: プロジェクト名(
dotfiles,web-app,blogなど) - これにより、プロジェクトごとにISSUEをフィルタリング可能
ブロック関係の記録
依存関係がある場合はblocked_byに記録:
blocked_by:
- "003-setup-database.md"
- "#external-api-access"
保存する内容
✅ 個人の学習タスク・設定作業 ✅ プロジェクトのバグ・機能開発 ✅ 調査・質問事項 ✅ 将来の改善アイデア ✅ コード内TODOの正式記録
保存しない内容
❌ すでにGitHub ISSUEで管理されている内容(重複) ❌ 5分以内で終わるような些細なタスク ❌ 機密情報(パスワード、APIキーなど)
注意事項
issues/ディレクトリは.gitignoreで除外される(個人用のため)- ファイル名は連番付きkebab-case形式
- ripgrep検索時は必ず
--no-ignore --hiddenフラグを使用 - Summary-Firstアプローチで効率的に検索
- 完了ISSUEは定期的にアーカイブ
status値の定義
todo: 未着手(デフォルト)in-progress: 作業中done: 完了blocked: ブロック中(依存関係待ちなど)cancelled: キャンセル(不要になった)
type値の定義
task: 一般的なタスク(デフォルト)bug: バグ修正feature: 新機能開発enhancement: 既存機能の改善question: 調査・質問chore: 雑務(設定変更、依存更新など)
Score
Total Score
50/100
Based on repository quality metrics
✓SKILL.md
SKILL.mdファイルが含まれている
+20
○LICENSE
ライセンスが設定されている
0/10
○説明文
100文字以上の説明がある
0/10
○人気
GitHub Stars 100以上
0/15
○最近の活動
3ヶ月以内に更新がある
0/10
○フォーク
10回以上フォークされている
0/5
✓Issue管理
オープンIssueが50未満
+5
✓言語
プログラミング言語が設定されている
+5
○タグ
1つ以上のタグが設定されている
0/5
Reviews
💬
Reviews coming soon