Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。 「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。
The English summary is being prepared. Showing the original description.
CLAUDE.mdを分割ルールファイル(.claude/rules/)で管理するスキル。学習トライアドの書き込み先を分割ファイルにリダイレクトし、CLAUDE.mdには目次だけを生成する(本文は .claude/rules/ を Claude Code が自動で読み込む)。
/rules-init, /rules-merge, /rules-add, /rules-status コマンドを提供。CLAUDE.mdが肥大化している場合や、学習トライアドの蓄積を分割管理したい場合に使用。
The English summary is being prepared. Showing the original description.
See how to installReview the instructions the agent will receive before you install.
CLAUDE.mdを分割ルールファイル(.claude/rules/)で管理するスキル。学習トライアドの書き込み先を分割ファイルにリダイレクトし、CLAUDE.md には目次だけを生成する。
前提: Claude Code は .claude/rules/*.md を番号に関係なく全部自動で読み込む。 CLAUDE.md に本文を連結すると、同じ内容が毎セッション二重に context に入る。そのため CLAUDE.md は本文を持たず、どのファイルに何があるかの目次にする。
CLAUDE.mdが学習トライアド(/lessons, /review-learn, /ci-learn)の蓄積により肥大化する問題を解決する:
/rules-init — 既存CLAUDE.mdを分割ファイルに移行/rules-merge — 分割ファイルからCLAUDE.mdの目次を再生成/rules-add [topic] — 新規ルールファイルを作成(01-89番台)/rules-status — 分割ファイルの一覧・行数・健全性を表示ベーストライアド(/lessons, /review-learn, /ci-learn)と同時にロードされる条件付き振る舞いモディファイア。ベーストライアドのSystem Instructionsは変更しない。
.claude/rules/ ディレクトリが存在する場合:
/lessons → .claude/rules/90-lessons-learned.md に書き込み
/review-learn → .claude/rules/91-review-learnings.md に書き込み
/ci-learn → .claude/rules/92-ci-learnings.md に書き込み
書き込み後 → CLAUDE.md の目次を再生成(本文は連結しない)
.claude/rules/ ディレクトリが存在しない場合:
従来通り CLAUDE.md に直接書き込み(介入なし)
重複チェックは対象の分割ファイルを直接読む。CLAUDE.md は目次だけで本文を持たないので、CLAUDE.md を読んでも重複は判定できない。
トライアドスキルがCLAUDE.mdに書き込もうとする場面(各スキルの「CLAUDE.mdへの書き込み」ステップ)で、以下の手順に従う:
.claude/rules/ ディレクトリが存在するか確認## Lessons Learned セクション → .claude/rules/90-lessons-learned.md## Review Learnings セクション → .claude/rules/91-review-learnings.md## CI Learnings セクション → .claude/rules/92-ci-learnings.md/rules-merge と同じ手順)01-89: 手書きルール(人間管理)
90: /lessons → lessons-learned
91: /review-learn → review-learnings
92: /ci-learn → ci-learnings
93-99: 将来の学習スキル用に予約
CLAUDE.md を読み込むCLAUDE.md が見つかりません。先に CLAUDE.md を作成してください。
## ヘッダーでセクション分割する## Lessons Learned → 90-lessons-learned.md## Review Learnings → 91-review-learnings.md## CI Learnings → 92-ci-learnings.mdユーザーに分割案を提示し、確認を求める:
分割案:
01-overview.md: プロジェクト概要 + アーキテクチャ概要
02-commands.md: 必須コマンド
03-coding-rules.md: 開発ガイドライン
04-session-rules.md: Session Rules
90-lessons-learned.md: Lessons Learned(自動蓄積)
91-review-learnings.md: Review Learnings(自動蓄積)
92-ci-learnings.md: CI Learnings(自動蓄積)
この分割案で進めますか?(修正があれば指示してください)
.claude/rules/ ディレクトリを作成する## セクションが、いずれかの分割ファイルに入っていることを確認する(取りこぼしがゼロであること。確認は見出しの突き合わせで行う)/rules-merge を参照)に従って CLAUDE.md を再生成する実行前のCLAUDE.md:
# CLAUDE.md
## Project Overview
dmenu-newsはAndroidアプリです。
## 必須コマンド
- `./gradlew assembleDebug`
## Session Rules
- セッション終了前に `/lessons` の実行を提案すること
## Lessons Learned
### テスト
- `@JvmInline value class` はMockKでモック不可
## Review Learnings
### 命名規則
- Repository層のメソッドは `getXxx` を使う
実行後のディレクトリ構造:
.claude/rules/
├── 01-overview.md # Project Overview
├── 02-commands.md # 必須コマンド
├── 03-session-rules.md # Session Rules
├── 90-lessons-learned.md # Lessons Learned(自動蓄積)
└── 91-review-learnings.md # Review Learnings(自動蓄積)
再生成されたCLAUDE.md(目次だけ。本文は .claude/rules/ から自動で読み込まれる):
<!-- このファイルは .claude/rules/ から自動生成された目次です。直接編集しないでください。 -->
<!-- 本文は .claude/rules/*.md にあり、Claude Code が自動で読み込みます。ここに本文を連結すると二重に読み込まれます。 -->
# ルール目次
## 常に読み込まれる
- 01-overview.md — Project Overview
- 02-commands.md — 必須コマンド
- 03-session-rules.md — Session Rules
- 90-lessons-learned.md — Lessons Learned
- 91-review-learnings.md — Review Learnings
frontmatter に paths: を持つファイルがある場合は、次の節を足す(glob を添える):
## 条件付き(該当するファイルを触ったときだけ読み込まれる)
- 10-api-guidelines.md — API Guidelines(src/api/**)
.claude/rules/ ディレクトリが存在するか確認.claude/rules/ ディレクトリが見つかりません。
先に /rules-init で分割ファイルを作成してください。
.claude/rules/*.md をファイル名でソートする.claude/rules/*.md を番号に関係なく全部自動で読み込むので、CLAUDE.md に本文を入れると同じ内容が二重に context に入る(v1.2 までは 01-89 番台を連結していたが、90 番台を外した理由と同じ理屈が 01-89 番台にも当てはまる)## 見出しを 1 行にするpaths: を持つファイルは、該当するファイルを触ったときだけ読み込まれる。「条件付き」の見出しの下に分けて列挙し、glob も添える<!-- このファイルは .claude/rules/ から自動生成された目次です。直接編集しないでください。 -->
<!-- 本文は .claude/rules/*.md にあり、Claude Code が自動で読み込みます。ここに本文を連結すると二重に読み込まれます。 -->
出力例:
目次を再生成:
常に読み込まれる: 7個
条件付き(paths:): 1個
CLAUDE.md: 14行(目次のみ)
前回からの変化:
05-testing.md: 追加
.claude/rules/ ディレクトリが存在するか確認.claude/rules/ ディレクトリが見つかりません。
先に /rules-init で分割ファイルを作成してください。
.claude/rules/ 内の既存ファイルをスキャンする/rules-add testing → 05-testing.md(既存が01-04の場合)新規ルールファイルを作成します:
.claude/rules/05-testing.md
よろしいですか?
## {Topic名}
<!-- ルールをここに記述してください -->
.claude/rules/ ディレクトリが存在するか確認.claude/rules/ ディレクトリが見つかりません。
先に /rules-init で分割ファイルを作成してください。
.claude/rules/*.md をファイル名でソートして取得する以下のフォーマットでファイル一覧を表示する:
.claude/rules/ ステータス:
[常に読み込まれる]
01-overview.md 7行
02-commands.md 32行
03-architecture.md 27行
04-guidelines.md 35行
05-session-rules.md 3行
90-lessons-learned.md 16行
91-review-learnings.md 28行
─────────────────────────
小計: 7ファイル / 148行
[条件付き: paths: あり]
(なし)
CLAUDE.md: 14行(目次のみ)
以下の項目をチェックし、結果を表示する:
すべてOKの場合:
健全性: OK
問題がある場合は具体的な内容を表示する:
健全性: 要確認
⚠ 番号の重複: 03-architecture.md, 03-coding-rules.md
⚠ 空ファイル: 05-session-rules.md
| ケース | 対応 |
|---|---|
| CLAUDE.md がマージ後に手動編集された | 次回マージで上書き(ヘッダーコメントで警告済み) |
| 分割ファイルが全て空 | 空のCLAUDE.md + ユーザーに警告表示 |
| トライアドセクションがまだない | 空の90/91/92は作らない。初回書き込み時に自動作成 |
.claude/rules/ に .md 以外のファイルがある | 無視する(.md のみ対象) |
| ファイル番号が重複 | エラーを表示し、ユーザーに修正を促す |
| v1.2 以前の連結形式の CLAUDE.md が残っている | 本文が rules と一致しているかを確かめてから目次に置き換える(一致しない行があれば、先にどの分割ファイルへ移すかをユーザーに確認) |
| Claude Code 以外に CLAUDE.md の本文だけを読むツールがある | CLAUDE.md に本文を戻すと Claude Code で二重に読み込まれる。そのツール向けのファイルを別に用意するかをユーザーに確認する |
/lessons, /review-learn, /ci-learn)を変更しない.claude/rules/ が存在するプロジェクトでのみ振る舞いを変更する条件付きモディファイア/rules-merge: 本文の連結をやめ、ファイル名と見出しの目次だけを生成する。Claude Code は .claude/rules/*.md を番号に関係なく全部自動で読み込むため、v1.2 の 01-89 番台の連結は毎セッション二重に読み込まれていた(toryu-web で実測: 01〜07 の約 1.4 万字が二重。paths: を付けても CLAUDE.md 側に全文が残るので条件付き読み込みが効かなかった)paths: 付きのファイル(条件付き読み込み)を分けて示す/rules-init: 元の CLAUDE.md の全セクションが分割ファイルに入ったことを確認してから目次に置き換える/rules-status: 二重読み込み(本文が連結された CLAUDE.md)を健全性チェックに追加/rules-merge: 90番台以降をスキップし、01-89番台のみCLAUDE.mdに連結。末尾に90番台の参照注記を付与/rules-status: マージ対象(01-89番台)と自動ロード(90番台)を区別して表示/rules-status: 分割ファイルの一覧・行数・健全性チェック(番号重複、番号帯混在、空ファイル検出)/rules-merge: ステップ3に前回CLAUDE.mdとの差分サマリー表示を追加/rules-init: 既存CLAUDE.mdの分割移行/rules-merge: 分割ファイルからCLAUDE.mdの再生成/rules-add: 新規ルールファイル作成(01-89番台の自動採番)/lessons, /review-learn, /ci-learn の書き込み先リダイレクトNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Retrofit + OkHttpを使用したAPIクライアント実装のベストプラクティスを提供する。 「API実装」「APIクライアント」「Retrofit」「OkHttp」「ネットワーク」と言われたら使う。
The English summary is being prepared. Showing the original description.
Androidプロジェクトのアーキテクチャ設計を支援。プロジェクト特性に応じてMVI/MVVM/シンプルComposeから最適なパターンを提案し、パッケージ構造の設計と既存プロジェクトの分析を行う。
The English summary is being prepared. Showing the original description.
Firebase Crashlyticsのスタックトレースを解析し、トリアージ分類→根本原因分析→修正提案を出力するスキル。/crash-analyze コマンド、クラッシュ解析、スタックトレース分析、ANR分析、Crashlytics、クラッシュレポート、またはFirebase crashに関連するリクエストで使用される。クラッシュ対応のワークフローを標準化し、対応品質と速度を向上させる。ANR/Non-fatal/Fatal全タイプ対応。
The English summary is being prepared. Showing the original description.
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.
The English summary is being prepared. Showing the original description.
重要: ユーザーが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 セットアップ、一般的なテストパターンに対応しています。
The English summary is being prepared. Showing the original description.
Jetpack ComposeでUIを実装する時に参照するコーディングガイドライン。 「Android UI」「Compose」「Jetpack」「画面実装」「UIコンポーネント」「レイアウト」と言われたら使う。 Android/Kotlin UI実装のベストプラクティス、アンチパターン、実装パターンを提供する。
The English summary is being prepared. Showing the original description.