Skip to content

Commit d22e9ca

Browse files
authored
feat(redmine): チケット更新・削除・コメント記入スキルを追加 (#14)
* feat(redmine): チケット更新・削除・コメント記入スキルを追加 redmine-cli の update-issue / delete-issue コマンドを活用した 対話的なチケット更新・削除・コメント記入スキルを追加。 名称→ID解決、現在状態の表示、削除時の再確認フローを含む。 Refs #13 * docs(redmine): update スキル追加に伴う README・バージョン更新 - プラグインバージョンを 2.1.1 → 2.2.0 に更新 - redmine/README.md に update スキルの使い方・機能一覧を追記 - ルート README.md に update スキルの説明を追記 - 制約事項を「更新・削除は未対応」から「カスタムフィールド操作は未対応」に変更
1 parent e126e4f commit d22e9ca

4 files changed

Lines changed: 144 additions & 5 deletions

File tree

README.md

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Claude Code 用のプラグイン集
3333
| プラグイン | 説明 |
3434
|------------|------|
3535
| [law-study](./law-study/) | e-Gov法令APIを活用した法令勉強支援。キーワード検索・要約・質問応答 |
36-
| [redmine](./redmine/) | redmine-cli を活用したチケット検索・閲覧・分析・作成・関連付け支援。複数サーバー横断操作対応 |
36+
| [redmine](./redmine/) | redmine-cli を活用したチケット検索・閲覧・分析・作成・更新・削除・関連付け支援。複数サーバー横断操作対応 |
3737

3838
## 使い方
3939

@@ -58,7 +58,7 @@ e-Gov法令APIを使った法令勉強支援。
5858

5959
### redmine
6060

61-
redmine-cli を使ったチケット検索・閲覧・分析・作成・関連付け支援。
61+
redmine-cli を使ったチケット検索・閲覧・分析・作成・更新・削除・関連付け支援。
6262

6363
```text
6464
# プロファイル設定
@@ -70,6 +70,9 @@ redmine:search ログイン機能のバグ
7070
# チケット作成
7171
redmine:create
7272
73+
# チケット更新・削除・コメント
74+
redmine:update
75+
7376
# チケット関連付け
7477
redmine:relation
7578
@@ -82,6 +85,7 @@ redmine:analyze
8285
- チケット検索(キーワード、プロジェクト、ステータス、担当者等)
8386
- チケット詳細・コメント履歴の表示
8487
- チケット作成(対話的にプロジェクト選択・名称→ID解決)
88+
- チケット更新・削除・コメント記入(確認フロー付き)
8589
- チケット関連付け(6種のリレーションタイプ対応)
8690
- チケット分析(ステータス別集計、担当者負荷、期限切れ警告)
8791

redmine/.claude-plugin/plugin.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "redmine",
3-
"version": "2.1.1",
4-
"description": "redmine-cli を活用したチケット検索・閲覧・分析・作成・関連付け支援プラグイン。プロファイル管理で複数の Redmine サーバーを横断操作。",
3+
"version": "2.2.0",
4+
"description": "redmine-cli を活用したチケット検索・閲覧・分析・作成・更新・削除・関連付け支援プラグイン。プロファイル管理で複数の Redmine サーバーを横断操作。",
55
"author": {
66
"name": "chippy-ao"
77
},

redmine/README.md

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,20 @@ redmine:relation
9393

9494
チケット間のリレーション(関連・ブロック・先行/後続等)を対話的に追加・削除できる。
9595

96+
### チケット更新・削除・コメント
97+
98+
```text
99+
redmine:update
100+
```
101+
102+
または具体的に:
103+
104+
```text
105+
redmine:update チケット#123のステータスを完了にして
106+
redmine:update チケット#456にコメントを追加
107+
redmine:update チケット#789を削除
108+
```
109+
96110
### プロジェクト状況分析
97111

98112
```text
@@ -113,6 +127,7 @@ redmine:config
113127
| `redmine:search` | キーワード・プロジェクト・ステータス・担当者等でチケット検索、詳細表示 |
114128
| `redmine:create` | 対話的にチケットを作成(プロジェクト選択・名称→ID解決付き) |
115129
| `redmine:relation` | チケット間のリレーション追加・削除(6種の関連タイプ対応) |
130+
| `redmine:update` | チケットの更新・削除・コメント記入(名称→ID解決・確認フロー付き) |
116131
| `redmine:analyze` | ステータス別集計、担当者負荷、期限切れ警告、優先度分布 |
117132

118133
## 複数の Redmine サーバーを使う
@@ -130,7 +145,7 @@ redmine-cli config set-default work
130145

131146
## 制約
132147

133-
- チケットの更新・削除は未対応(作成・関連付けは対応済み)
148+
- チケットのカスタムフィールド操作は未対応
134149
- 1リクエストあたり最大 100 件の取得制限
135150

136151
## ライセンス

redmine/skills/update/SKILL.md

Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
---
2+
description: Redmineチケット更新・削除・コメント記入スキル。redmine-cli を使ってチケットの更新・削除・コメント記入を対話的に行う。「redmine:update」「チケットを更新」「ステータス変更」「コメントして」「チケット削除」で起動。
3+
---
4+
5+
# Redmine チケット更新・削除・コメント
6+
7+
redmine-cli を使って、チケットの更新・削除・コメント記入を対話的に支援する。
8+
9+
## 利用する CLI コマンド
10+
11+
すべてのコマンドは JSON を stdout に出力する。Bash ツールで実行し、出力をパースして整形表示する。
12+
13+
- `redmine-cli update-issue <id> [flags]` — チケット更新(フィールド変更・コメント記入)
14+
- `redmine-cli delete-issue <id>` — チケット削除
15+
- `redmine-cli get-issue <id>` — チケット詳細取得(更新前の現在状態確認用)
16+
- `redmine-cli search` — 対象チケットの特定
17+
- `redmine-cli trackers` — トラッカー一覧取得(名称→ID解決)
18+
- `redmine-cli statuses` — ステータス一覧取得(名称→ID解決)
19+
- `redmine-cli priorities` — 優先度一覧取得(名称→ID解決)
20+
- `redmine-cli members --project <id>` — メンバー一覧取得(担当者の名称→ID解決)
21+
- `redmine-cli categories --project <id>` — カテゴリ一覧取得
22+
- `redmine-cli versions --project <id>` — バージョン一覧取得
23+
- `redmine-cli config list` — プロファイル一覧取得
24+
25+
すべてのコマンドに `--profile <name>` を付与してプロファイルを指定する(デフォルトプロファイル使用時は省略可)。
26+
27+
## 大前提
28+
29+
- **確認必須**: 更新・削除の実行前に必ずユーザーに確認プロンプトを表示する
30+
- **削除は特に慎重に**: 削除操作は取り消せないため、対象チケットの内容を表示した上で再確認する
31+
- チケット情報は参考であり、最新の状態は Redmine 本体で確認するよう補足する
32+
33+
## フロー
34+
35+
### -1. 前提チェック
36+
37+
1. `which redmine-cli` で CLI がインストールされているか確認する
38+
2. **未インストールの場合**、以下を案内して終了する:
39+
- macOS: `brew install chippy-ao/tap/redmine-cli`
40+
- Windows: GitHub Releases (https://github.com/chippy-ao/redmine-cli/releases) から ZIP をダウンロードし、展開して `redmine-cli.exe` を取得。PATH に追加すると便利
41+
- その他: `go install github.com/chippy-ao/redmine-cli@latest`
42+
43+
### 0. プロファイル選択
44+
45+
`redmine-cli config list` を実行してプロファイルを確認する。
46+
47+
- **0件**: 「プロファイルが未設定です。今から設定しましょう」と伝え、AskUserQuestion でプロファイル名・URL・API キーを順に聞いて `redmine-cli config add` を実行する
48+
- **1件**: そのプロファイルを使用する旨を伝え、次のステップに進む
49+
- **複数**: AskUserQuestion で使用するプロファイルを選択
50+
51+
### 1. 対象チケットの特定
52+
53+
ユーザーの入力からチケット ID を特定する。
54+
55+
- **ID が明示されている場合**: そのまま使用
56+
- **ID が不明な場合**: AskUserQuestion でチケット番号を確認、または `redmine-cli search` で検索して候補を表示
57+
58+
### 2. 現在の状態を確認
59+
60+
`redmine-cli get-issue <id> --profile <p>` で対象チケットの現在の状態を取得し、表示する。
61+
62+
### 3. 操作の判定
63+
64+
ユーザーの入力から操作を判定する:
65+
66+
- **更新**: フィールド変更(ステータス、担当者、優先度など)
67+
- **コメント**: notes によるコメント記入
68+
- **更新 + コメント**: フィールド変更とコメントの同時実行
69+
- **削除**: チケットの削除
70+
71+
### 4a. 更新・コメントの場合
72+
73+
ユーザーの入力から変更内容を読み取り、不足分のみ質問する。
74+
75+
名称→ID解決が必要なフィールド:
76+
- **ステータス**: `redmine-cli statuses --profile <p>` で一覧取得
77+
- **トラッカー**: `redmine-cli trackers --profile <p>` で一覧取得
78+
- **優先度**: `redmine-cli priorities --profile <p>` で一覧取得
79+
- **担当者**: `redmine-cli members --project <proj> --profile <p>` で一覧取得
80+
- **カテゴリ**: `redmine-cli categories --project <proj> --profile <p>` で一覧取得
81+
- **バージョン**: `redmine-cli versions --project <proj> --profile <p>` で一覧取得
82+
83+
変更内容を一覧表示し、AskUserQuestion で「実行する / 修正する / キャンセル」を確認。
84+
85+
「実行する」が選ばれたら:
86+
87+
```bash
88+
redmine-cli update-issue <id> --profile <p> [--status-id N] [--assigned-to-id N] [--tracker-id N] [--priority-id N] [--subject "題名"] [--description "説明"] [--category-id N] [--version-id N] [--notes "コメント"] [--private-notes]
89+
```
90+
91+
### 4b. 削除の場合
92+
93+
対象チケットの情報(ID・件名・ステータス・担当者)を表示し、AskUserQuestion で「本当に削除しますか?この操作は取り消せません」と確認。
94+
95+
「削除する」が選ばれたら:
96+
97+
```bash
98+
redmine-cli delete-issue <id> --profile <p>
99+
```
100+
101+
### 5. 結果表示と次のアクション
102+
103+
操作結果を表示し、次のアクションを**平易な言葉**で提案する:
104+
105+
- **更新後**: 更新されたことを伝え、必要に応じて `get-issue` で最新状態を表示
106+
- **削除後**: 削除されたことを伝える
107+
108+
提案する次のアクション:
109+
- **別のチケットを更新する**: 同じスキルで継続
110+
- **チケットを検索する**: `redmine:search` スキルへ案内
111+
- **チケットを作成する**: `redmine:create` スキルへ案内
112+
113+
## エラーハンドリング
114+
115+
- **CLI 未インストール**: `which redmine-cli` で検出。OS に応じたインストール方法を案内
116+
- **プロファイル未設定**: `redmine-cli config list` で空を検出。インラインで config add フローを実行
117+
- **認証エラー・接続エラー**: 「Redmine への接続でエラーが発生しました。以下を確認してください: (1) プロファイルの URL が正しいか (2) API キーが有効か (3) Redmine サーバーが稼働しているか」と案内
118+
- **チケット未発見 (404)**: 「指定されたチケットが見つかりません。チケット番号を確認してください」と案内
119+
- **権限エラー (403)**: 「このチケットの更新/削除権限がありません。Redmine の管理者に権限を確認してください」と案内
120+
- **バリデーションエラー (422)**: Redmine からのエラーメッセージをそのまま表示し、修正を促す

0 commit comments

Comments
 (0)