Skip to content

Commit 977ff6e

Browse files
authored
Merge pull request #6 from chippy-ao/feat/redmine-create-skill
feat(redmine): redmine:create スキルを追加
2 parents 82b1bc3 + dda34cc commit 977ff6e

1 file changed

Lines changed: 96 additions & 0 deletions

File tree

redmine/skills/create/SKILL.md

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

0 commit comments

Comments
 (0)