docs/Development/project-structure-understanding.md
Critical Understanding: このプロジェクトとインストール後の環境の関係
Location: ~/github/SuperClaude_Framework/
Role: ソースコード・開発・テスト
SuperClaude_Framework/
├── setup/ # インストーラーロジック
│ ├── components/ # コンポーネント定義(何をインストールするか)
│ ├── data/ # 設定データ(JSON/YAML)
│ ├── cli/ # CLIインターフェース
│ ├── utils/ # ユーティリティ関数
│ └── services/ # サービスロジック
│
├── superclaude/ # ランタイムロジック(実行時の動作)
│ ├── core/ # コア機能
│ ├── modes/ # 行動モード
│ ├── agents/ # エージェント定義
│ ├── mcp/ # MCPサーバー統合
│ └── commands/ # コマンド実装
│
├── tests/ # テストコード
├── docs/ # 開発者向けドキュメント
├── pyproject.toml # Python設定
└── package.json # npm設定
Operations:
Location: ~/.claude/
Role: 実際に動作する設定・コマンド(ユーザー環境)
~/.claude/
├── commands/
│ └── sc/ # スラッシュコマンド(インストール後)
│ ├── pm.md
│ ├── implement.md
│ ├── test.md
│ └── ... (26 commands)
│
├── CLAUDE.md # グローバル設定(インストール後)
├── *.md # モード定義(インストール後)
│ ├── MODE_Brainstorming.md
│ ├── MODE_Orchestration.md
│ └── ...
│
└── .claude.json # Claude Code設定
Operations:
# 1. インストール
pipx install SuperClaude
# または
npm install -g @bifrost_inc/superclaude
# 2. セットアップ実行
SuperClaude install
# setup/components/*.py が実行される
1. ~/.claude/ ディレクトリ作成
2. commands/sc/ にスラッシュコマンド配置
3. CLAUDE.md と各種 *.md 配置
4. .claude.json 更新
5. MCPサーバー設定
~/.claude/ の設定が読み込まれる/sc:pm 実行 → ~/.claude/commands/sc/pm.md が展開される# Git管理外を直接変更
vim ~/.claude/commands/sc/pm.md # ← ダメ!履歴追えない
# 変更テスト
claude # 動作確認
# 変更が ~/.claude/ に残る
# → 元に戻すの忘れる
# → 設定がぐちゃぐちゃになる
# → Gitで追跡できない
cd ~/github/SuperClaude_Framework
# インストールロジック確認
Read setup/components/commands.py # コマンドのインストール方法
Read setup/components/modes.py # モードのインストール方法
Read setup/data/commands.json # コマンド定義データ
# インストール後の状態確認(理解のため)
ls ~/.claude/commands/sc/
cat ~/.claude/commands/sc/pm.md # 現在の仕様確認
# 「なるほど、setup/components/commands.py でこう処理されて、
# ~/.claude/commands/sc/ に配置されるのね」
cd ~/github/SuperClaude_Framework
# Git管理されているこのプロジェクト内で
Write docs/Development/hypothesis-pm-improvement-YYYY-MM-DD.md
# 内容例:
# - 現状の問題
# - 改善案
# - 実装方針
# - 期待される効果
# バックアップ作成(必須!)
cp ~/.claude/commands/sc/pm.md ~/.claude/commands/sc/pm.md.backup
# 実験的変更
vim ~/.claude/commands/sc/pm.md
# Claude起動して検証
claude
# ... 動作確認 ...
# テスト完了後、必ず復元!!
mv ~/.claude/commands/sc/pm.md.backup ~/.claude/commands/sc/pm.md
cd ~/github/SuperClaude_Framework
# ソースコード側で変更
Edit setup/components/commands.py # インストールロジック修正
Edit setup/data/commands/pm.md # コマンド仕様修正
# テスト追加
Write tests/test_pm_command.py
# テスト実行
pytest tests/test_pm_command.py -v
# コミット(Git履歴に残る)
git add setup/ tests/
git commit -m "feat: enhance PM command with autonomous workflow"
# 開発版インストール
cd ~/github/SuperClaude_Framework
pip install -e .
# または
SuperClaude install --dev
# 実際の環境でテスト
claude
/sc:pm "test request"
~/.claude/ は読むだけ# テスト前
cp original backup
# テスト
# ... 実験 ...
# テスト後(必須!)
mv backup original
# 優先度: 高
setup/components/commands.py # コマンドインストール
setup/components/modes.py # モードインストール
setup/components/agents.py # エージェント定義
setup/data/commands/*.md # コマンド仕様(ソース)
setup/data/modes/*.md # モード仕様(ソース)
# これらが ~/.claude/ に配置される
# 優先度: 中
superclaude/__main__.py # CLIエントリーポイント
superclaude/core/ # コア機能実装
superclaude/agents/ # エージェントロジック
# 優先度: 理解のため(変更不可)
~/.claude/commands/sc/pm.md # 実際に動くPM仕様
~/.claude/MODE_*.md # 実際に動くモード仕様
~/.claude/CLAUDE.md # 実際に読み込まれるグローバル設定
# インストール済みコンポーネント確認
SuperClaude install --list-components
# インストール先確認
ls -la ~/.claude/commands/sc/
ls -la ~/.claude/*.md
# Claude起動
claude
# コマンド実行
/sc:pm "test"
# ログ確認(必要に応じて)
tail -f ~/.claude/logs/*.log
# 設定が壊れた場合
SuperClaude install --force # 再インストール
# 開発版に切り替え
cd ~/github/SuperClaude_Framework
pip install -e .
# 本番版に戻す
pip uninstall superclaude
pipx install SuperClaude
# ❌ WRONG
vim ~/.claude/commands/sc/pm.md
git add ~/.claude/ # ← できない!Git管理外
# ❌ WRONG
vim ~/.claude/commands/sc/pm.md
# テスト...
# 元に戻すの忘れる → 設定ぐちゃぐちゃ
# ❌ WRONG
「PMモード直したい」
→ いきなり ~/.claude/ 変更
→ ソースコード理解してない
→ 再インストールで上書きされる
# ✅ CORRECT
1. setup/components/ でロジック理解
2. docs/Development/ に改善案記録
3. setup/ 側で変更・テスト
4. Git コミット
5. SuperClaude install --dev で動作確認
このドキュメント理解後:
setup/components/ 読解
既存仕様の把握
~/.claude/commands/sc/pm.md 確認(読むだけ)改善提案作成
docs/Development/hypothesis-*.md 作成実装・テスト
setup/ 側で変更tests/ でテスト追加これで何百回も同じ説明をしなくて済むようになる。