Skip to content

原文(日本語に翻訳)

プリントモード(claude -p)で条件付き .claude/rules/*.md ファイル(paths: フロントマター付き)とネストされた CLAUDE.md ファイルが読み込まれない問題を修正

原文(英語)

Fixed conditional .claude/rules/*.md files (with paths: frontmatter) and nested CLAUDE.md files not loading in print mode (claude -p)

概要

claude -p(プリントモード)で実行する際、paths: フロントマターを持つ条件付きルールファイルやサブディレクトリのネストされた CLAUDE.md ファイルが読み込まれないバグがありました。この修正により、プリントモードでも通常の対話モードと同じようにすべてのルールとコンテキストが正しく適用されます。

基本的な使い方

.claude/rules/ ディレクトリに条件付きルールを配置した場合、プリントモードでも正しく動作します。

bash
# プリントモードで実行(修正後は条件付きルールも適用される)
claude -p "このコードをレビューしてください"

実践例

paths: フロントマターを持つ条件付きルール

markdown
<!-- .claude/rules/typescript-rules.md -->
---
paths:
  - "**/*.ts"
  - "**/*.tsx"
---

TypeScriptファイルを編集する際は必ず型注釈を追加してください。
bash
# 修正前: -p モードではこのルールが無視されていた
# 修正後: TypeScriptファイルに対してルールが正しく適用される
claude -p "src/components/Button.tsx を改善してください"

ネストされた CLAUDE.md の読み込み

project/
├── CLAUDE.md              # プロジェクトルートのルール
├── src/
│   ├── CLAUDE.md          # srcディレクトリのルール(修正前は-pで無視)
│   └── components/
│       └── CLAUDE.md      # さらにネストされたルール(修正前は-pで無視)
└── tests/
    └── CLAUDE.md          # テストディレクトリのルール
bash
# 修正後: -p モードでもすべての階層のCLAUDE.mdが読み込まれる
claude -p "src/components/Button.tsx にユニットテストを追加してください"

CI/CDパイプラインでの利用

bash
# CI環境でのコードレビュー自動化
# 修正後は適切なルールが全て適用された状態でレビューされる
claude -p "このPRの変更内容をレビューして問題点を報告してください" \
  --input-file changes.diff

注意点

  • この修正はプリントモード(-p)専用の問題でした。通常の対話モードでは以前から正しく動作していました
  • paths: フロントマターを持つルールは、指定されたパターンに一致するファイルに対してのみ適用されます
  • ネストされた CLAUDE.md はファイルの場所に応じて階層的に適用されます

関連情報