mirror of
https://github.com/SuperClaude-Org/SuperClaude_Framework.git
synced 2025-12-29 16:16:08 +00:00
## Migration Summary
- Moved from flat `superclaude/` to `src/superclaude/` (PEP 517/518)
- Deleted old structure (119 files removed)
- Added new structure with clean architecture layers
## Project Structure Changes
- OLD: `superclaude/{agents,commands,modes,framework}/`
- NEW: `src/superclaude/{cli,execution,pm_agent}/`
## Build System Updates
- Switched: setuptools → hatchling (modern, PEP 517)
- Updated: pyproject.toml with proper entry points
- Added: pytest plugin auto-discovery
- Version: 4.1.6 → 0.4.0 (clean slate)
## Makefile Enhancements
- Removed: `superclaude install` calls (deprecated)
- Added: `make verify` - Phase 1 installation verification
- Added: `make test-plugin` - pytest plugin loading test
- Added: `make doctor` - health check command
## Documentation Added
- docs/architecture/ - 7 architecture docs
- docs/research/python_src_layout_research_20251021.md
- docs/PR_STRATEGY.md
## Migration Phases
- Phase 1: Core installation ✅ (this commit)
- Phase 2: Lazy loading + Skills system (next)
- Phase 3: PM Agent meta-layer (future)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
530 lines
12 KiB
Markdown
530 lines
12 KiB
Markdown
# PM Agent: Upstream vs Clean Architecture Comparison
|
||
|
||
**Date**: 2025-10-21
|
||
**Purpose**: 本家(Upstream)と今回のクリーンアーキテクチャでのPM Agent実装の違い
|
||
|
||
---
|
||
|
||
## 🎯 概要
|
||
|
||
### Upstream (本家) - Skills型PM Agent
|
||
|
||
**場所**: `~/.claude/skills/pm/` にインストール
|
||
**形式**: Markdown skill + Python init hooks
|
||
**読み込み**: Claude Codeが起動時に全Skills読み込み
|
||
|
||
### This PR - Core型PM Agent
|
||
|
||
**場所**: `src/superclaude/pm_agent/` Pythonパッケージ
|
||
**形式**: Pure Python modules
|
||
**読み込み**: pytest実行時のみ、import必要分だけ
|
||
|
||
---
|
||
|
||
## 📂 ディレクトリ構造比較
|
||
|
||
### Upstream (本家)
|
||
|
||
```
|
||
~/.claude/
|
||
└── skills/
|
||
└── pm/ # PM Agent Skill
|
||
├── implementation.md # ~25KB - 全ワークフロー
|
||
├── modules/
|
||
│ ├── git-status.md # ~5KB - Git状態フォーマット
|
||
│ ├── token-counter.md # ~8KB - トークンカウント
|
||
│ └── pm-formatter.md # ~10KB - ステータス出力
|
||
└── workflows/
|
||
└── task-management.md # ~15KB - タスク管理
|
||
|
||
superclaude/
|
||
├── agents/
|
||
│ └── pm-agent.md # ~50KB - Agent定義
|
||
├── commands/
|
||
│ └── pm.md # ~5KB - /sc:pm command
|
||
└── core/
|
||
└── pm_init/ # Python init hooks
|
||
├── __init__.py
|
||
├── context_contract.py # ~10KB - Context管理
|
||
├── init_hook.py # ~10KB - Session start
|
||
└── reflexion_memory.py # ~12KB - Reflexion
|
||
|
||
Total: ~150KB ≈ 35K-40K tokens
|
||
```
|
||
|
||
**特徴**:
|
||
- ✅ Skills系: Markdown中心、人間可読
|
||
- ✅ Auto-activation: セッション開始時に自動実行
|
||
- ✅ PDCA Cycle: docs/pdca/ にドキュメント蓄積
|
||
- ❌ Token heavy: 全Markdown読み込み
|
||
- ❌ Claude Code依存: Skillsシステム前提
|
||
|
||
---
|
||
|
||
### This PR (Clean Architecture)
|
||
|
||
```
|
||
src/superclaude/
|
||
└── pm_agent/ # Python package
|
||
├── __init__.py # Package exports
|
||
├── confidence.py # ~8KB - Pre-execution
|
||
├── self_check.py # ~15KB - Post-validation
|
||
├── reflexion.py # ~12KB - Error learning
|
||
└── token_budget.py # ~10KB - Budget management
|
||
|
||
tests/pm_agent/
|
||
├── test_confidence_check.py # 18 tests
|
||
├── test_self_check_protocol.py # 16 tests
|
||
├── test_reflexion_pattern.py # 16 tests
|
||
└── test_token_budget.py # 29 tests
|
||
|
||
Total: ~45KB ≈ 10K-12K tokens (import時のみ)
|
||
```
|
||
|
||
**特徴**:
|
||
- ✅ Python-first: コードとして実装
|
||
- ✅ Lazy loading: 使う機能のみimport
|
||
- ✅ Test coverage: 79 tests完備
|
||
- ✅ Pytest integration: Fixtureで簡単利用
|
||
- ❌ Auto-activation: なし(手動or pytest)
|
||
- ❌ PDCA docs: 自動生成なし
|
||
|
||
---
|
||
|
||
## 🔄 機能比較
|
||
|
||
### 1. Session Start Protocol
|
||
|
||
#### Upstream (本家)
|
||
```yaml
|
||
Trigger: EVERY session start (自動)
|
||
Method: pm_init/init_hook.py
|
||
|
||
Actions:
|
||
1. PARALLEL Read:
|
||
- docs/memory/pm_context.md
|
||
- docs/memory/last_session.md
|
||
- docs/memory/next_actions.md
|
||
- docs/memory/current_plan.json
|
||
2. Confidence Check (200 tokens)
|
||
3. Output: 🟢 [branch] | [n]M [n]D | [token]%
|
||
|
||
Token Cost: ~8K (memory files) + 200 (confidence)
|
||
```
|
||
|
||
#### This PR
|
||
```python
|
||
# 自動実行なし - 手動で呼び出し
|
||
from superclaude.pm_agent.confidence import ConfidenceChecker
|
||
|
||
checker = ConfidenceChecker()
|
||
confidence = checker.assess(context)
|
||
|
||
Token Cost: ~2K (confidence moduleのみ)
|
||
```
|
||
|
||
**差分**:
|
||
- ❌ 自動実行なし
|
||
- ✅ トークン消費 8.2K → 2K (75%削減)
|
||
- ✅ オンデマンド実行
|
||
|
||
---
|
||
|
||
### 2. Pre-Execution Confidence Check
|
||
|
||
#### Upstream (本家)
|
||
```markdown
|
||
# superclaude/agents/pm-agent.md より
|
||
|
||
Confidence Check (200 tokens):
|
||
❓ "全ファイル読めた?"
|
||
❓ "コンテキストに矛盾ない?"
|
||
❓ "次のアクション実行に十分な情報?"
|
||
|
||
Output: Markdown形式
|
||
Location: Agent definition内
|
||
```
|
||
|
||
#### This PR
|
||
```python
|
||
# src/superclaude/pm_agent/confidence.py
|
||
|
||
class ConfidenceChecker:
|
||
def assess(self, context: Dict[str, Any]) -> float:
|
||
"""
|
||
Assess confidence (0.0-1.0)
|
||
|
||
Checks:
|
||
1. Documentation verified? (40%)
|
||
2. Patterns identified? (30%)
|
||
3. Implementation clear? (30%)
|
||
|
||
Budget: 100-200 tokens
|
||
"""
|
||
# Python実装
|
||
return confidence_score
|
||
```
|
||
|
||
**差分**:
|
||
- ✅ Python関数として実装
|
||
- ✅ テスト可能(18 tests)
|
||
- ✅ Pytest fixture利用可能
|
||
- ✅ 型安全
|
||
- ❌ Markdown定義なし
|
||
|
||
---
|
||
|
||
### 3. Post-Implementation Self-Check
|
||
|
||
#### Upstream (本家)
|
||
```yaml
|
||
# agents/pm-agent.md より
|
||
|
||
Self-Evaluation Checklist:
|
||
- [ ] Did I follow architecture patterns?
|
||
- [ ] Did I read documentation first?
|
||
- [ ] Did I check existing implementations?
|
||
- [ ] Are all tasks complete?
|
||
- [ ] What mistakes did I make?
|
||
- [ ] What did I learn?
|
||
|
||
Token Budget:
|
||
Simple: 200 tokens
|
||
Medium: 1,000 tokens
|
||
Complex: 2,500 tokens
|
||
|
||
Output: docs/pdca/[feature]/check.md
|
||
```
|
||
|
||
#### This PR
|
||
```python
|
||
# src/superclaude/pm_agent/self_check.py
|
||
|
||
class SelfCheckProtocol:
|
||
def validate(self, implementation: Dict[str, Any])
|
||
-> Tuple[bool, List[str]]:
|
||
"""
|
||
Four Questions Protocol:
|
||
1. All tests pass?
|
||
2. Requirements met?
|
||
3. Assumptions verified?
|
||
4. Evidence exists?
|
||
|
||
7 Hallucination Red Flags detection
|
||
|
||
Returns: (passed, issues)
|
||
"""
|
||
# Python実装
|
||
```
|
||
|
||
**差分**:
|
||
- ✅ プログラマティックに実行可能
|
||
- ✅ 16 tests完備
|
||
- ✅ Hallucination detection実装
|
||
- ❌ PDCA docs自動生成なし
|
||
|
||
---
|
||
|
||
### 4. Reflexion (Error Learning)
|
||
|
||
#### Upstream (本家)
|
||
```python
|
||
# superclaude/core/pm_init/reflexion_memory.py
|
||
|
||
class ReflexionMemory:
|
||
"""
|
||
Error learning with dual storage:
|
||
1. Local JSONL: docs/memory/solutions_learned.jsonl
|
||
2. Mindbase: Semantic search (if available)
|
||
|
||
Lookup: mindbase → grep fallback
|
||
"""
|
||
```
|
||
|
||
#### This PR
|
||
```python
|
||
# src/superclaude/pm_agent/reflexion.py
|
||
|
||
class ReflexionPattern:
|
||
"""
|
||
Same dual storage strategy:
|
||
1. Local JSONL: docs/memory/solutions_learned.jsonl
|
||
2. Mindbase: Semantic search (optional)
|
||
|
||
Methods:
|
||
- get_solution(error_info) → past solution lookup
|
||
- record_error(error_info) → save to memory
|
||
- get_statistics() → recurrence rate
|
||
"""
|
||
```
|
||
|
||
**差分**:
|
||
- ✅ 同じアルゴリズム
|
||
- ✅ 16 tests追加
|
||
- ✅ Mindbase optional化
|
||
- ✅ Statistics追加
|
||
|
||
---
|
||
|
||
### 5. Token Budget Management
|
||
|
||
#### Upstream (本家)
|
||
```yaml
|
||
# agents/pm-agent.md より
|
||
|
||
Token Budget (Complexity-Based):
|
||
Simple Task (typo): 200 tokens
|
||
Medium Task (bug): 1,000 tokens
|
||
Complex Task (feature): 2,500 tokens
|
||
|
||
Implementation: Markdown定義のみ
|
||
Enforcement: 手動
|
||
```
|
||
|
||
#### This PR
|
||
```python
|
||
# src/superclaude/pm_agent/token_budget.py
|
||
|
||
class TokenBudgetManager:
|
||
BUDGETS = {
|
||
"simple": 200,
|
||
"medium": 1000,
|
||
"complex": 2500,
|
||
}
|
||
|
||
def use(self, tokens: int) -> bool:
|
||
"""Track usage"""
|
||
|
||
@property
|
||
def remaining(self) -> int:
|
||
"""Get remaining budget"""
|
||
|
||
def get_recommendation(self) -> str:
|
||
"""Suggest optimization"""
|
||
```
|
||
|
||
**差分**:
|
||
- ✅ プログラム的に強制可能
|
||
- ✅ 使用量トラッキング
|
||
- ✅ 29 tests完備
|
||
- ✅ pytest fixture化
|
||
|
||
---
|
||
|
||
## 📊 トークン消費比較
|
||
|
||
### シナリオ: PM Agent利用時
|
||
|
||
| フェーズ | Upstream | This PR | 削減 |
|
||
|---------|----------|---------|------|
|
||
| **Session Start** | 8.2K tokens (auto) | 0K (manual) | -8.2K |
|
||
| **Confidence Check** | 0.2K (included) | 2K (on-demand) | +1.8K |
|
||
| **Self-Check** | 1-2.5K (depends) | 1-2.5K (same) | 0K |
|
||
| **Reflexion** | 3K (full MD) | 3K (Python) | 0K |
|
||
| **Token Budget** | 0K (manual) | 0.5K (tracking) | +0.5K |
|
||
| **Total (typical)** | **12.4K tokens** | **6K tokens** | **-6.4K (52%)** |
|
||
|
||
**Key Point**: Session start自動実行がない分、大幅削減
|
||
|
||
---
|
||
|
||
## ✅ 維持される機能
|
||
|
||
| 機能 | Upstream | This PR | Status |
|
||
|------|----------|---------|--------|
|
||
| Pre-execution confidence | ✅ | ✅ | **維持** |
|
||
| Post-implementation validation | ✅ | ✅ | **維持** |
|
||
| Error learning (Reflexion) | ✅ | ✅ | **維持** |
|
||
| Token budget allocation | ✅ | ✅ | **維持** |
|
||
| Dual storage (JSONL + Mindbase) | ✅ | ✅ | **維持** |
|
||
| Hallucination detection | ✅ | ✅ | **維持** |
|
||
| Test coverage | Partial | 79 tests | **改善** |
|
||
|
||
---
|
||
|
||
## ⚠️ 削除される機能
|
||
|
||
### 1. Auto-Activation (Session Start)
|
||
|
||
**Upstream**:
|
||
```yaml
|
||
EVERY session start:
|
||
- Auto-read memory files
|
||
- Auto-restore context
|
||
- Auto-output status
|
||
```
|
||
|
||
**This PR**:
|
||
```python
|
||
# Manual activation required
|
||
from superclaude.pm_agent.confidence import ConfidenceChecker
|
||
checker = ConfidenceChecker()
|
||
```
|
||
|
||
**影響**: ユーザーが明示的に呼び出す必要あり
|
||
**代替案**: Skillsシステムで実装可能
|
||
|
||
---
|
||
|
||
### 2. PDCA Cycle Documentation
|
||
|
||
**Upstream**:
|
||
```yaml
|
||
Auto-generate:
|
||
- docs/pdca/[feature]/plan.md
|
||
- docs/pdca/[feature]/do.md
|
||
- docs/pdca/[feature]/check.md
|
||
- docs/pdca/[feature]/act.md
|
||
```
|
||
|
||
**This PR**:
|
||
```python
|
||
# なし - ユーザーが手動で記録
|
||
```
|
||
|
||
**影響**: 自動ドキュメント生成なし
|
||
**代替案**: Skillsとして実装可能
|
||
|
||
---
|
||
|
||
### 3. Task Management Workflow
|
||
|
||
**Upstream**:
|
||
```yaml
|
||
# workflows/task-management.md
|
||
- TodoWrite auto-tracking
|
||
- Progress checkpoints
|
||
- Session continuity
|
||
```
|
||
|
||
**This PR**:
|
||
```python
|
||
# TodoWriteはClaude Codeネイティブツールとして利用可能
|
||
# PM Agent特有のワークフローなし
|
||
```
|
||
|
||
**影響**: PM Agent統合ワークフローなし
|
||
**代替案**: pytest + TodoWriteで実現可能
|
||
|
||
---
|
||
|
||
## 🎯 移行パス
|
||
|
||
### ユーザーが本家PM Agentの機能を使いたい場合
|
||
|
||
**Option 1: Skillsとして併用**
|
||
```bash
|
||
# Core PM Agent (This PR) - always installed
|
||
pip install -e .
|
||
|
||
# Skills PM Agent (Upstream) - optional
|
||
superclaude install-skill pm-agent
|
||
```
|
||
|
||
**Result**:
|
||
- Pytest fixtures: `src/superclaude/pm_agent/`
|
||
- Auto-activation: `~/.claude/skills/pm/`
|
||
- **両方利用可能**
|
||
|
||
---
|
||
|
||
**Option 2: Skills完全移行**
|
||
```bash
|
||
# 本家Skills版のみ使用
|
||
superclaude install-skill pm-agent
|
||
|
||
# Pytest fixturesは使わない
|
||
```
|
||
|
||
**Result**:
|
||
- Upstream互換100%
|
||
- トークン消費は本家と同じ
|
||
|
||
---
|
||
|
||
**Option 3: Coreのみ(推奨)**
|
||
```bash
|
||
# This PRのみ
|
||
pip install -e .
|
||
|
||
# Skillsなし
|
||
```
|
||
|
||
**Result**:
|
||
- 最小トークン消費
|
||
- Pytest integration最適化
|
||
- Auto-activation なし
|
||
|
||
---
|
||
|
||
## 💡 推奨アプローチ
|
||
|
||
### プロジェクト用途別
|
||
|
||
**1. ライブラリ開発者 (pytest重視)**
|
||
→ **Option 3: Core のみ**
|
||
- Pytest fixtures活用
|
||
- テスト駆動開発
|
||
- トークン最小化
|
||
|
||
**2. Claude Code パワーユーザー (自動化重視)**
|
||
→ **Option 1: 併用**
|
||
- Auto-activation活用
|
||
- PDCA docs自動生成
|
||
- Pytest fixturesも利用
|
||
|
||
**3. 本家互換性重視**
|
||
→ **Option 2: Skills のみ**
|
||
- 100% Upstream互換
|
||
- 既存ワークフロー維持
|
||
|
||
---
|
||
|
||
## 📋 まとめ
|
||
|
||
### 主な違い
|
||
|
||
| 項目 | Upstream | This PR |
|
||
|------|----------|---------|
|
||
| **実装** | Markdown + Python hooks | Pure Python |
|
||
| **配置** | ~/.claude/skills/ | site-packages/ |
|
||
| **読み込み** | Auto (session start) | On-demand (import) |
|
||
| **トークン** | 12.4K | 6K (-52%) |
|
||
| **テスト** | Partial | 79 tests |
|
||
| **Auto-activation** | ✅ | ❌ |
|
||
| **PDCA docs** | ✅ Auto | ❌ Manual |
|
||
| **Pytest fixtures** | ❌ | ✅ |
|
||
|
||
### 互換性
|
||
|
||
**機能レベル**: 95%互換
|
||
- Core機能すべて維持
|
||
- Auto-activationとPDCA docsのみ削除
|
||
|
||
**移行難易度**: Low
|
||
- Skills併用で100%互換可能
|
||
- コード変更不要(import pathのみ)
|
||
|
||
### 推奨
|
||
|
||
**このPRを採用すべき理由**:
|
||
1. ✅ 52%トークン削減
|
||
2. ✅ 標準Python packaging
|
||
3. ✅ テストカバレッジ完備
|
||
4. ✅ 必要ならSkills併用可能
|
||
|
||
**本家Upstream維持すべき理由**:
|
||
1. ✅ Auto-activation便利
|
||
2. ✅ PDCA docs自動生成
|
||
3. ✅ Claude Code統合最適化
|
||
|
||
**ベストプラクティス**: **併用** (Option 1)
|
||
- Core (This PR): Pytest開発用
|
||
- Skills (Upstream): 日常使用のAuto-activation
|
||
- 両方のメリット享受
|
||
|
||
---
|
||
|
||
**作成日**: 2025-10-21
|
||
**ステータス**: Phase 2完了時点の比較
|