dotfiles/claude/skills/ba2-ticket-knowledge-logger/SKILL.md
チケット番号(BAX-XXXX)とカテゴリ(調査/実装/その他)を指定して、会話ログとまとめファイルを記録し、JIRAチケットにもコメントとしてナレッジを投稿するスキル。「BAX-10325の調査を記録」「実装にチケット作成」「会話ログを保存」などのリクエストで使用。
npx skillsauth add octkp/dotfiles ba2-ticket-knowledge-loggerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
チケット調査・実装の会話ログとナレッジをドキュメント化するスキル。
mcp__claude_ai_Atlassian_Rovo__*)への接続が必要。未接続でも、ローカル記録(LOG/README/PLAN 作成)と git push までは完了し、JIRA投稿だけが失敗扱いになる。git rev-parse --show-toplevel で REPO_ROOT を解決する)。出力先はスキルを実施しているユーザーごとに変わる。固定パスではなく、実行時に以下の手順でユーザー名と REPO_ROOT・BASE_PATH を解決する。
# whoami の出力から末尾の _◯(最後の _ 以降)を除いた苗字をフォルダ名にする
# 例: takano_y -> takano / ushiroyama_k -> ushiroyama / _ を含まない場合はそのまま
USER_NAME=$(whoami | sed 's/_[^_]*$//')
[ -z "$USER_NAME" ] && USER_NAME=$(whoami) # フォールバック: sed の結果が空ならそのまま whoami を使う
スキルとナレッジが同じ ba2-workspace リポに同居しているため、現在の作業ディレクトリの git ルートをそのまま REPO_ROOT として使う。
REPO_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
if [ -z "$REPO_ROOT" ]; then
echo "ERROR: ba2-workspace リポ内で実行してください" >&2
exit 1
fi
BASE_PATH="$REPO_ROOT/docs/$USER_NAME"
{ユーザー名} と書かれている箇所は、この USER_NAME に置き換える。{ベースパス} と書かれている箇所は、この BASE_PATH に置き換える。| カテゴリ | 用途 | パス |
|---------|------|------|
| 調査 | バグ調査、原因特定、コード解析 | {base}/調査/BAX-XXXX_{チケット名}/ |
| 実装 | 機能実装、コード変更、リファクタリング | {base}/実装/BAX-XXXX_{チケット名}/ |
| その他 | その他の作業、ドキュメント作成など | {base}/その他/BAX-XXXX_{チケット名}/ |
各チケットディレクトリに以下のファイルを作成:
LOG.md - 会話ログ(時系列の詳細記録)README.md - まとめ(結論・要点のサマリー)PLAN.md - プラン計画書(プランモード使用時に生成。タスク分解・実装方針・影響範囲などを記録)ユーザーから以下の情報を受け取る:
調査 / 実装 / その他BAX-XXXX 形式チケット番号からJIRAのチケットページにアクセスし、チケット名(Summary)を取得する。
https://kokopelli-inc.atlassian.net/browse/{チケット番号}BAX-10325_年払い対応)/, \, :, *, ?, ", <, >, |)はアンダースコア _ に置換するmkdir -p "{ベースパス}/{カテゴリ}/{チケット番号}_{チケット名}"
({ベースパス} は「出力先ディレクトリ」セクションで解決した $BASE_PATH。例: $REPO_ROOT/docs/takano/調査/BAX-XXXX_チケット名)
会話ログファイルを作成:
重要: 日時は必ず YYYY-MM-DD HH:MM 形式で、時刻(HH:MM)を省略せずに記録すること。現在時刻は date "+%Y-%m-%d %H:%M" コマンドで取得できる。
# {チケット番号} 会話ログ
## 基本情報
- **チケット**: {チケット番号}
- **カテゴリ**: {カテゴリ}
- **作成日時**: {YYYY-MM-DD HH:MM} ← 例: 2026-02-05 14:30
---
## 会話ログ
### {YYYY-MM-DD HH:MM} - セッション1 ← 例: 2026-02-05 14:30 - セッション1
#### 質問/タスク
{ユーザーからの質問やタスクの内容}
#### 調査/作業内容
{調査した内容、読んだファイル、実行したコマンドなど}
#### 結果/発見
{発見した事項、結論、解決策など}
---
### {YYYY-MM-DD HH:MM} - セッション2 ← 例: 2026-02-05 15:45 - セッション2
...
まとめファイルを作成:
# {チケット番号}
## 概要
{チケットの目的・背景を1-2文で}
## 結論/解決策
{最終的な結論、解決策、または実装内容}
## 関連ファイル
- `path/to/file.php:123` - {説明}
## 参考情報
- {参考にしたドキュメント、URL}
- {関連するチケット番号}
## プラン
計画書は [PLAN.md](./PLAN.md) を参照。
## ログ
詳細は [LOG.md](./LOG.md) を参照。
プランモード(EnterPlanMode)でタスクの計画を立てた場合、その計画書を PLAN.md として保存する。
タイミング: プランモードで計画を策定した直後、または記録時にプランモードの出力が会話に存在する場合。
# {チケット番号} プラン計画書
## 基本情報
- **チケット**: {チケット番号}
- **作成日時**: {YYYY-MM-DD HH:MM}
- **最終更新**: {YYYY-MM-DD HH:MM}
---
## 目的・ゴール
{チケットで達成すべきことを明確に記述}
## 現状分析
{現在のコードの状態、問題点の整理}
## 実装方針
{どのようなアプローチで解決するかの方針}
## タスク分解
- [ ] タスク1: {内容}
- [ ] タスク2: {内容}
- [ ] タスク3: {内容}
## 影響範囲
- {変更が影響するファイル・機能の一覧}
## リスク・懸念事項
- {想定されるリスクや注意点}
## 備考
{その他の補足情報}
更新ルール:
PLAN.md へのリンクを追加するLOG.md / README.md / PLAN.md を作成・更新したら、ユーザーへの確認を取らずに自動でコミット&プッシュする。これにより次のJIRAコメントで必ずGitHubリンクを付けられる。
cd "$REPO_ROOT" && \
git add "docs/{ユーザー名}/{カテゴリ}/{チケット番号}_{チケット名}/" && \
git commit -m "{チケット番号}: ナレッジ記録({カテゴリ})
Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>" && \
git push origin main
git add する(無関係な変更を巻き込まない)。main 直コミット運用。コミットメッセージ末尾に Co-Authored-By 行を付ける。nothing to commit)はスキップしてよい。ログやREADMEを作成・更新した際、JIRAチケットにもナレッジコメントを投稿する。
mcp__claude_ai_Atlassian_Rovo__addCommentToJiraIssue を使用する。事前に mcp__claude_ai_Atlassian_Rovo__getAccessibleAtlassianResources を 1 回呼んで cloudId(UUID 形式)を解決しておく(同一セッション内ではキャッシュしてよい)。
getAccessibleAtlassianResources で取得した UUID(kokopelli-inc.atlassian.net に対応するもの)。ドメイン文字列をそのまま渡すと API が受け付けないので注意。{チケット番号}(例: BAX-10325)コメント投稿前に、LOG.mdとREADME.mdがリモートにプッシュ済みかを確認する。
確認方法:
cd "$REPO_ROOT" && \
git log --oneline origin/main -- "docs/{ユーザー名}/{カテゴリ}/{チケット番号}_{チケット名}/LOG.md" | head -1 && \
git log --oneline origin/main -- "docs/{ユーザー名}/{カテゴリ}/{チケット番号}_{チケット名}/README.md" | head -1
GitHubリンクのURL形式:
https://github.com/kokopelli-inc/ba2-workspace/blob/main/docs/{ユーザー名}/{カテゴリ}/{チケット番号}_{チケット名}/README.md
https://github.com/kokopelli-inc/ba2-workspace/blob/main/docs/{ユーザー名}/{カテゴリ}/{チケット番号}_{チケット名}/LOG.md
注意: URLに日本語が含まれる場合はそのまま記載する(GitHubがURLエンコードを処理する)。
## 📝 ナレッジ記録({カテゴリ})
### 概要
{チケットの目的・背景を1-2文で}
### 結論/解決策
{最終的な結論、解決策、または実装内容}
### 関連ファイル
- `path/to/file.php:123` - {説明}
### 参考情報
- {参考にしたドキュメント、URL}
### 詳細ドキュメント
<!-- リモートにプッシュ済みの場合のみこのセクションを追加 -->
- [README.md](https://github.com/kokopelli-inc/ba2-workspace/blob/main/docs/{ユーザー名}/{カテゴリ}/{チケット番号}_{チケット名}/README.md)
- [LOG.md](https://github.com/kokopelli-inc/ba2-workspace/blob/main/docs/{ユーザー名}/{カテゴリ}/{チケット番号}_{チケット名}/LOG.md)
---
*このコメントはClaude Codeのba2-ticket-knowledge-loggerスキルにより自動投稿されました*
*詳細ログ: `ba2-workspace/docs/{ユーザー名}/{カテゴリ}/{チケット番号}_{チケット名}/`*
リモート未プッシュ時のフォーマット(「詳細ドキュメント」セクションなし):
## 📝 ナレッジ記録({カテゴリ})
### 概要
{チケットの目的・背景を1-2文で}
### 結論/解決策
{最終的な結論、解決策、または実装内容}
### 関連ファイル
- `path/to/file.php:123` - {説明}
### 参考情報
- {参考にしたドキュメント、URL}
---
*このコメントはClaude Codeのba2-ticket-knowledge-loggerスキルにより自動投稿されました*
*詳細ログ: `ba2-workspace/docs/{ユーザー名}/{カテゴリ}/{チケット番号}_{チケット名}/`*
ユーザー: 「BAX-10325の調査を記録して」
実行:
https://kokopelli-inc.atlassian.net/browse/BAX-10325 にアクセスしてチケット名を取得調査/BAX-10325_{チケット名}/ ディレクトリ作成LOG.md テンプレート作成README.md テンプレート作成ユーザー: 「今の会話をBAX-10325に追記して」
実行:
ユーザー: 「BAX-10325のプランを記録して」または、プランモード終了後に記録スキルを実行
実行:
PLAN.md を作成または上書き更新ユーザー: 「BAX-10325のREADMEを更新して」
実行:
| キーワード | カテゴリ | |-----------|---------| | 調査、バグ、原因、なぜ、エラー | 調査 | | 実装、修正、追加、変更、リファクタ | 実装 | | ドキュメント、メモ、その他 | その他 |
2026-02-05 14:30、2026-02-05 だけはNG)documentation
base リポジトリ(~/base)の主要ディレクトリ(dotfiles / home / local / scripts / docs)の README.md と、リポジトリ直下の README.md を、実際のファイル構成に合わせて更新・新規作成するスキル。各ディレクトリの中身を実際に走査して内容を導出するので、設定追加・ディレクトリ移動のあとに走らせると README が現状と一致する。「READMEを更新して」「READMEを作り直して」「base のドキュメントを整える」「/base-readme」などのリクエストで使用。
development
旧 badev-knowledge-base リポの docs/{苗字}/ 配下を、許可リストの現役メンバー 4 人 (takano / tokita / yukioka / ushiroyama) に絞って ba2-workspace/docs/ に同期するスキル。旧リポを source of truth として、衝突時は新リポ側を旧リポで上書きする。コミット・プッシュは行わず、git add までで停止する。「badev-knowledge-base から同期して」「旧リポのナレッジを取り込んで」「badev-knowledge-sync を走らせて」「旧 docs を同期」などのリクエストでトリガー。
documentation
チケット番号(BAX-XXXX)を伝えるだけで、ba2-ticket-knowledge-logger が記録したナレッジドキュメント(README.md / LOG.md / PLAN.md)を全ユーザー・全カテゴリ横断で自動検索して読み込み、要約して提示するスキル。別セッションで過去の調査・実装内容を読み直したいときに使う。「BAX-10987」「BAX-10325のナレッジ読んで」「前に調べたBAX-XXXXの記録」「BAX-XXXXの続きをやりたい」「BAX-XXXX読み直して」などのリクエストでトリガー。
tools
skills/ 配下にあるスキル群を一覧する README.md を自動生成・更新するスキル。各スキルディレクトリの SKILL.md からフロントマター(name / description)と本文の見出し・概要を読み取り、skills/README.md にスキル一覧表と各スキルの説明セクションを書き出す。新しいスキルを追加・更新したあとに「ba2 skills の README を更新して」「ba2-skills-readme を走らせて」と頼んだとき、または .claude/settings.json の PostToolUse hook が SKILL.md の Write/Edit を検知して発火させたときに使う。