Skip to content

実装記録の保存ルール策定: ae-framework改善のための分析データ収集 #2

@ootakazuhiko

Description

@ootakazuhiko

背景

ae-frameworkを使用した実際の開発セッションの記録を体系的に保存し、フレームワーク改善のための分析データとして活用したい。

提案する保存構造

ae-examples/
└── implementations/
    └── YYYYMMDD-ApplicationName/
        ├── README.md                 # 開発セッションの概要
        ├── ANALYSIS.md              # 問題点と改善提案
        ├── metrics.json             # 開発メトリクス
        ├── phases/                  # フェーズ毎の成果物
        │   ├── 1-intent/
        │   │   ├── requirements.md
        │   │   └── prompts/
        │   ├── 2-formal/
        │   │   ├── specifications/
        │   │   └── tla+/
        │   ├── 3-tests/
        │   │   ├── bdd/
        │   │   ├── unit/
        │   │   └── property/
        │   ├── 4-code/
        │   │   ├── src/
        │   │   └── config/
        │   ├── 5-verify/
        │   │   ├── test-results/
        │   │   └── coverage/
        │   └── 6-operate/
        │       ├── docker/
        │       └── ci-cd/
        ├── prompts/                 # 全プロンプト履歴
        │   ├── session-1.md
        │   ├── session-2.md
        │   └── claude-project.json
        └── violations/              # TDD違反等の記録
            ├── violation-log.md
            └── screenshots/

保存対象(MUST HAVE)

1. ソースコード

  • src/ - アプリケーションコード
  • tests/ - テストコード
  • specs/ - 仕様書(BDD, TLA+等)
  • migrations/ - データベーススキーマ
  • policies/ - セキュリティポリシー

2. 設定ファイル

  • package.json
  • tsconfig.json
  • docker-compose.yml
  • Dockerfile
  • .env.example
  • Makefile

3. ドキュメント

  • README.md - プロジェクト説明
  • docs/ - 設計ドキュメント
  • ✅ 要件定義書
  • ✅ トレーサビリティマトリクス

4. プロンプト履歴

  • ~/.claude/projects/ の内容
  • ✅ ユーザーとAIの全対話履歴
  • ✅ 使用したツール呼び出しログ

5. 分析データ

  • ANALYSIS.md - 以下を含む:
    • TDD違反の詳細
    • フェーズスキップの記録
    • 改善提案
    • 学習事項

6. メトリクス(metrics.json)

{
  "session": {
    "start_time": "2024-01-10T09:00:00Z",
    "end_time": "2024-01-10T18:00:00Z",
    "total_duration_hours": 9,
    "ai_model": "claude-3-opus"
  },
  "code": {
    "total_lines": 5000,
    "files_created": 45,
    "languages": ["TypeScript", "SQL", "YAML"]
  },
  "tests": {
    "total_tests": 120,
    "test_coverage": 75,
    "tests_written_first": false
  },
  "violations": {
    "tdd_violations": 15,
    "phase_skips": 3
  },
  "phases_completed": {
    "intent": true,
    "formal": false,
    "tests": true,
    "code": true,
    "verify": false,
    "operate": true
  }
}

除外対象(MUST NOT HAVE)

1. ビルド成果物

  • dist/
  • build/
  • *.js (TypeScriptプロジェクトの場合)
  • *.js.map
  • *.d.ts (自動生成分)

2. 依存関係

  • node_modules/
  • vendor/
  • .pnp.* (Yarn PnP)

3. 実行時ファイル

  • *.log (アプリケーションログ)
  • *.pid
  • *.seed
  • *.sqlite (データベースファイル)

4. キャッシュ

  • .cache/
  • .parcel-cache/
  • .next/
  • .nuxt/

5. テスト成果物

  • coverage/ の生データ(サマリーのみ保存)
  • .nyc_output/
  • *.lcov

6. IDE設定

  • .idea/
  • .vscode/ (プロジェクト固有設定は保存可)
  • *.swp
  • *.swo

7. 機密情報

  • .env (.env.exampleは保存)
  • *.pem
  • *.key
  • secrets/

保存時のチェックリスト

## 保存前チェックリスト

- [ ] 機密情報の除去確認
- [ ] ビルド成果物の除去確認
- [ ] README.md作成(開発概要記載)
- [ ] ANALYSIS.md作成(問題点・改善案記載)
- [ ] metrics.json生成
- [ ] プロンプト履歴の収集
- [ ] テスト結果サマリーの作成
- [ ] .gitignoreの適切な設定

命名規則

フォルダ名

YYYYMMDD-ApplicationName
例: 20240110-EncryptedChatApp

複数セッションの場合

YYYYMMDD-ApplicationName-session-N
例: 20240110-EncryptedChatApp-session-2

自動化スクリプト案

#\!/bin/bash
# save-implementation.sh

DATE=$(date +%Y%m%d)
APP_NAME=$1
DEST="implementations/${DATE}-${APP_NAME}"

mkdir -p "$DEST/phases"

# Copy source files
cp -r src/ specs/ tests/ migrations/ policies/ "$DEST/phases/4-code/"

# Copy configs
cp package.json tsconfig.json docker-compose.yml Dockerfile .env.example Makefile "$DEST/"

# Copy docs
cp -r docs/ README.md "$DEST/"

# Generate metrics
generate-metrics.js > "$DEST/metrics.json"

# Clean build artifacts
find "$DEST" -name "node_modules" -type d -prune -exec rm -rf {} +
find "$DEST" -name "dist" -type d -prune -exec rm -rf {} +
find "$DEST" -name "*.log" -type f -delete

echo "Implementation saved to $DEST"

利用目的

  1. フレームワーク改善

    • TDD違反パターンの分析
    • よくあるフェーズスキップの特定
    • ツール連携の改善点発見
  2. ベストプラクティス抽出

    • 成功パターンの文書化
    • アンチパターンの収集
    • 学習教材の作成
  3. メトリクス分析

    • 開発速度の測定
    • テストカバレッジの傾向
    • フェーズ毎の時間配分

実装例

最初の保存対象:

  • 20240110-EncryptedChatApp/ - E2E暗号化チャットアプリケーション

次のステップ

  1. このルールをREADMEとしてimplementations/に配置
  2. 自動化スクリプトの作成
  3. 既存プロジェクトの移行
  4. CI/CDへの統合

このルールにより、ae-frameworkの実使用データを体系的に収集・分析し、継続的な改善につなげることができます。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions