Agent Skills: Aegis Architect

アーキタイプベースのスキャフォールドツール - プロジェクトの重さに応じた型を選択

UncategorizedID: Shin0205go/Aegis-skills/aegis-architect

Skill Files

Browse the full folder contents for aegis-architect.

Download Skill

Loading file tree…

skills/aegis-architect/SKILL.md

Skill Metadata

Name
aegis-architect
Description
アーキタイプベースのスキャフォールドツール - プロジェクトの重さに応じた型を選択

Aegis Architect

AIをコーダーからオペレーターへ変える

このスキルは「たい焼きの型」です。どんなAIが使っても、選んだアーキタイプに従った正しい構造が生成されます。

コンセプト

Before (プロンプト依存):
  AI: 「ファイル作ります...あれ、どこに置こう?まあここでいいか」
  → 結果: 構造が崩れる

After (Aegis Architect):
  AI: 「aegis-architect scaffold --name stock_price」を実行
  Aegis: (ガシャン!) 3ファイルを強制生成
  → 結果: 誰がやっても100%正しい構造

アーキタイプ(型の選択)

プロジェクトの「重さ」に応じて適切な型を選択します。

| アーキタイプ | 用途 | 生成ファイル | |-------------|------|-------------| | rust_hexagonal | 堅牢なコアシステム | Domain/Port/Adapter (3ファイル) | | rust_cli_simple | 小さなCLIツール | main.rs + Cargo.toml |

選び方

「長期運用?外部依存の差し替え?チーム開発?」
  → YES: rust_hexagonal

「単機能のCLIツール?学習目的?PoC?」
  → YES: rust_cli_simple

使い方

ビルド

cd aegis-architect-rs
cargo build --release

アーキタイプ一覧を確認

aegis-architect list

Hexagonal構造で生成(デフォルト)

aegis-architect scaffold \
  --name market_analysis \
  --description "株価を分析する機能" \
  --target ./aegis-core

シンプルなCLIツールとして生成

aegis-architect scaffold \
  --name my_tool \
  --description "便利ツール" \
  --archetype rust_cli_simple

アーキタイプディレクトリを指定

aegis-architect --archetypes-dir /path/to/archetypes scaffold ...

生成されるファイル構造(rust_hexagonal)

target/
├── src/domain/market_analysis.rs      # 聖域:純粋なドメインモデル
├── src/ports/market_analysis_port.rs  # インターフェース定義
└── src/adapters/market_analysis_adapter.rs  # 実装の雛形

設計原則(rust_hexagonal)

┌─────────────────────────────────────────┐
│              Domain (Core)              │
│  - 外部依存ゼロ                         │
│  - 純粋な構造体とビジネスロジック       │
│  - ここが「聖域」                       │
└─────────────────────────────────────────┘
                    ▲
                    │ 依存の方向
                    │
┌─────────────────────────────────────────┐
│              Ports (Traits)             │
│  - Domainの型を使うインターフェース     │
│  - 外部との境界を定義                   │
└─────────────────────────────────────────┘
                    ▲
                    │
┌─────────────────────────────────────────┐
│           Adapters (実装)               │
│  - Portを実装                           │
│  - 外部API/DB/ファイルシステムへ接続    │
│  - ここだけが「汚れてよい」             │
└─────────────────────────────────────────┘

なぜツールで強制するのか

| アプローチ | 問題点 | |-----------|--------| | 設計書を書く | 読まれない、守られない | | プロンプトで指示 | AIは忘れる、解釈がブレる | | コードレビュー | 事後対応、手戻りが発生 | | ツールで強制 | 物理的に正しい構造しか作れない |

使用例

ユーザー: 「株価取得機能を追加して」

AI(Aegis Architect使用):
1. プロジェクトの規模を判断 → AEGIS本体なのでrust_hexagonalを選択
2. aegis-architect scaffold --name stock_price を実行
3. 生成された domain/stock_price.rs にドメインモデルを定義
4. ports/stock_price_port.rs にトレイトメソッドを追加
5. adapters/stock_price_adapter.rs に実装を書く

→ 手順を飛ばしたり、構造を無視することが不可能

アーキタイプの追加方法

新しいアーキタイプを追加するには:

  1. archetypes/<name>/ ディレクトリを作成
  2. manifest.json でメタデータと生成ファイルを定義
  3. テンプレートファイル (.tmpl) を配置

テンプレートでは {{ name }}, {{ pascal_name }}, {{ description }} が使用可能。

今後の拡張

  • [ ] validate_arch - 既存コードのアーキテクチャ違反検出
  • [ ] migrate_to_hex - レガシーコードの移行支援
  • [ ] テスト雛形の自動生成
  • [ ] CI連携(PRでvalidate_archを自動実行)