본문으로 건너뛰기
cccskills
무료GitHub에 공개

ci-learn

CI/GitHub Actionsの失敗パターンをCLAUDE.mdに蓄積するスキル。`/ci-learn` で直近の失敗runから学び、`/ci-learn #run_id` で指定runを分析。同じCI失敗を繰り返さないコードベースを実現する。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

연동 도구GitHub
설치 방법 보기

포함된 파일(2)

  • SKILL.md9.1 KB
  • README.md4.2 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

CI Learner

CI/GitHub Actionsの失敗パターンをCLAUDE.mdに蓄積するスキル。同じCI失敗を繰り返さないコードベースを実現する。

目的

学習トライアドの第3の柱として、CI/CDパイプラインの失敗から体系的に学ぶ:

  • CI失敗パターンをCLAUDE.mdに自動蓄積
  • 同じビルドエラー・テスト失敗を繰り返すことを防止
  • 「ローカルでは通るがCIで落ちる」問題の知見を共有

学習トライアド

スキル学びの源泉タイミング
/lessons自分で気づいた失敗・修正セッション終了時
/review-learn他者からの指摘PRマージ後
/ci-learnCI/CDの失敗パターンCI失敗発生後

3つを組み合わせることで、個人の気づき+チームの知見+システムのフィードバックが蓄積される。

トリガー

  • /ci-learn — 直近の失敗 CI run から学ぶ
  • /ci-learn #run_id — 指定 run ID から学ぶ
  • /ci-learn --recent — 直近5件の失敗 run を分析
  • 「CIの失敗から学んで」「ビルドエラーをまとめて」等の自然言語

System Instructions

ステップ1: 対象 CI Run の特定

引数がある場合(run ID 指定)

# 指定 run の詳細を取得
gh run view {run_id} --json databaseId,displayTitle,conclusion,headBranch,createdAt,event,url

引数がない場合(直近の失敗 run)

# 直近の失敗 run を取得
gh run list --status failure --limit 5 --json databaseId,displayTitle,conclusion,headBranch,createdAt,event,workflowName

ユーザーに対象 run を確認する:

直近の失敗 CI Run:
1. #12345 - Build and Test (main) — 2時間前
2. #12340 - Deploy Staging (feature/auth) — 1日前
3. #12335 - Lint Check (fix/typo) — 2日前

どの run から学びますか?(番号 or 全て)

--recent フラグの場合

直近5件の失敗 run を全て分析対象にする。

ステップ2: 失敗ログの取得

# 失敗ステップのログのみ取得
gh run view {run_id} --log-failed

# run の詳細(jobs, steps)を取得
gh run view {run_id} --json jobs

取得データの用途:

  • --log-failed: エラーメッセージ・スタックトレースの抽出
  • jobs[].steps[]: どのステップで失敗したかの特定(name, conclusion)
  • headBranch: 失敗したブランチ(PR関連か判別)
  • event: トリガー種別(push, pull_request, workflow_dispatch)

ステップ3: 失敗パターンの分類

失敗ログを以下のカテゴリに分類:

カテゴリ判定基準例
ビルドコンパイルエラー、依存関係解決失敗「Gradle 8.x では kotlin.jvm.target を明示」
テストテスト失敗、タイムアウト「@Test アノテーション忘れ」
リント・フォーマットlint/ktlint/detekt エラー「import の順序ルール」
環境・設定Node/Java バージョン不一致、secrets 不足「JAVA_HOME の設定」
デプロイリリース、アーティファクト関連「artifact actions v4 への移行」
権限・認証token 期限切れ、権限不足「GITHUB_TOKEN のスコープ」
タイムアウトジョブ/ステップのタイムアウト「E2Eテストの timeout 設定」

ステップ4: ルール化可能なパターンの抽出

以下の基準で「ルール化すべきパターン」を抽出:

抽出対象:

  • 繰り返し発生しうるパターン(設定ミス、バージョン不整合)
  • プロジェクト固有の CI 設定知見
  • 「ローカルでは通るが CI で落ちる」系の問題

除外対象:

  • 一時的なインフラ障害(GitHub Actions 側の問題)
  • flaky テスト(再実行で成功するもの)
  • 外部サービスの一時的なダウン
  • 既に修正済みで再発しない問題(ログから明確に判別可能な場合)

ステップ5: 既存ルールとの重複チェック

  1. CLAUDE.md を読み込む
  2. 既存の ## Lessons Learned と ## CI Learnings セクションを確認
  3. 意味的に重複するパターンは除外
  4. 既存ルールを補強・具体化するパターンは更新案として提示

ステップ6: ルール案の生成

以下のフォーマットでルール案を生成:

### {カテゴリ名}
- {具体的なルール}。{理由や背景}
  - 🔧 CI Run #{run_id} ({workflow名}) — {日付}

記述の品質基準(lessons-md-manager と同一):

  • 肯定形で記述(「〜しないこと」より「〜を使うこと」)
  • 具体的なコード例やパターンを含める
  • なぜそうすべきかの理由を添える
  • 元の CI Run をクレジット

良い例:

### ビルド
- Gradle 8.x では `kotlin.jvm.target` を明示的に設定する。未設定だとCIのJDKバージョンとローカルで異なりビルドが失敗する
  - 🔧 CI Run #12345 (Build and Test) — 2026-02-15

### テスト
- CI環境ではテストのタイムアウトをローカルの2倍に設定する。GitHub Actions のランナーはローカルマシンより低速なため
  - 🔧 CI Run #12340 (Unit Tests) — 2026-02-14

ステップ7: ユーザー確認

失敗パターンをカテゴリ別にグループ化して提示:

## CI 失敗パターン分析結果

### 分析対象
- Run #12345: Build and Test (main) — failure

### 蓄積候補

#### ビルド
1. Gradle 8.x で kotlin.jvm.target 未設定 → 明示的に設定する
   - 🔧 CI Run #12345 — 2026-02-15
   → ルール案: 「Gradle 8.x では `kotlin.jvm.target` を明示的に設定する」

#### テスト
1. CI環境でのタイムアウト → タイムアウト値を2倍に設定
   - 🔧 CI Run #12340 — 2026-02-14
   → ルール案: 「CI環境ではテストのタイムアウトをローカルの2倍に設定する」

---
除外したパターン: 一時障害 1件 / flaky 2件

ユーザーの承認を得てからステップ8に進む。

ステップ8: CLAUDE.md への書き込み

追記先: ## CI Learnings セクション

## CI Learnings

このセクションはCI/GitHub Actionsの失敗パターンから自動生成されました。
`/ci-learn` コマンドで更新できます。

### ビルド
- Gradle 8.x では `kotlin.jvm.target` を明示的に設定する。未設定だとCIのJDKバージョンとローカルで異なりビルドが失敗する
  - 🔧 CI Run #12345 (Build and Test) — 2026-02-15

### テスト
- CI環境ではテストのタイムアウトをローカルの2倍に設定する。GitHub Actions のランナーはローカルマシンより低速なため
  - 🔧 CI Run #12340 (Unit Tests) — 2026-02-14

セクションの配置:

  • ## CI Learnings セクションがあればそこに追記
  • なければ ## Lessons Learned の後に作成
  • どちらもなければCLAUDE.md末尾に新規作成

エラーハンドリング

エラー1: GitHubリポジトリではない

  • gitルートを確認し、GitHub remoteがあるかチェック
  • ない場合はエラーメッセージを表示

エラー2: gh CLIが未認証

GitHub CLIが認証されていません。
以下のコマンドで認証してください:
$ gh auth login

エラー3: 失敗した CI run がない

直近に失敗した CI run がありません。
すべてのワークフローが正常に完了しています。

エラー4: ログが取得できない(90日超過)

CI Run #{run_id} のログは保存期間(90日)を超えているため取得できません。
より新しい run を指定してください。

エラー5: GitHub Actions を使用していない

このリポジトリには GitHub Actions ワークフローがありません。
.github/workflows/ ディレクトリにワークフローファイルを追加してください。

重要事項

  • CLAUDE.mdはプロジェクト全体で共有されるファイル。慎重に編集すること
  • 既存の内容は変更しない(追記のみ)
  • CI Run のIDとワークフロー名を必ず残す(追跡可能性)
  • 追記・変更は必ずユーザーの承認を得てから実行する
  • プラットフォーム非依存: あらゆるGitHubリポジトリで使用可能
  • 一時的な障害やflakyテストはルール化しない

バージョン

v1.0 - 初回リリース (2026-02-17)

  • CI失敗ログからパターンを抽出
  • 7カテゴリ自動分類(ビルド/テスト/リント/環境/デプロイ/権限/タイムアウト)
  • 既存ルールとの重複チェック
  • CI Runクレジット付きでCLAUDE.mdに追記
  • 学習トライアド(lessons/review-learn/ci-learn)の完成

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。 「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

xtone/ai_development_tools32026년 10월 16일 업데이트

Androidプロジェクトのアーキテクチャ設計を支援。プロジェクト特性に応じてMVI/MVVM/シンプルComposeから最適なパターンを提案し、パッケージ構造の設計と既存プロジェクトの分析を行う。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

xtone/ai_development_tools32026년 10월 16일 업데이트

Firebase Crashlyticsのスタックトレースを解析し、トリアージ分類→根本原因分析→修正提案を出力するスキル。/crash-analyze コマンド、クラッシュ解析、スタックトレース分析、ANR分析、Crashlytics、クラッシュレポート、またはFirebase crashに関連するリクエストで使用される。クラッシュ対応のワークフローを標準化し、対応品質と速度を向上させる。ANR/Non-fatal/Fatal全タイプ対応。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

xtone/ai_development_tools32026년 10월 16일 업데이트

Android data layer implementation guide. Provides comprehensive patterns for Room Database (Entity, DAO, Migration), DataStore (Preferences), Repository layer design, and common pitfalls. Use when implementing local data storage, cache strategies, or data source integration in Android projects.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

xtone/ai_development_tools32026년 10월 16일 업데이트

重要: ユーザーがAndroidテスト実行をリクエストした場合、常にこのスキルを最初に使用してください。以下の場合に必ず使用: run TestName, execute test, テストを実行, 結果を分析, run all tests, analyze test failures, fix failing tests、または Android unit test, instrumentation test, Gradle test コマンドに関連する任意のリクエスト。./gradlew test や Bash コマンドを直接使用しないでください - 常にこのスキルに委譲してください。Multi-variantプロジェクト、JAVA_HOME セットアップ、一般的なテストパターンに対応しています。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

xtone/ai_development_tools32026년 10월 16일 업데이트

Jetpack ComposeでUIを実装する時に参照するコーディングガイドライン。 「Android UI」「Compose」「Jetpack」「画面実装」「UIコンポーネント」「レイアウト」と言われたら使う。 Android/Kotlin UI実装のベストプラクティス、アンチパターン、実装パターンを提供する。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

xtone/ai_development_tools32026년 10월 16일 업데이트

xtone의 스킬 모두 보기

이 스킬의 문제 신고