aegis-architect
アーキタイプベースのスキャフォールドツール - プロジェクトの重さに応じた型を選択
When & Why to Use This Skill
Aegis Architect is an archetype-based scaffolding tool designed to standardize project structures for AI agents. By providing pre-defined templates like Hexagonal Architecture, it ensures that AI-generated code adheres to strict architectural principles, eliminating inconsistencies caused by prompt variability and maintaining long-term project maintainability.
Use Cases
- Standardizing Hexagonal Architecture: Automatically generating Domain, Port, and Adapter layers for complex systems to ensure a clean separation of business logic from external dependencies.
- AI-Driven Development Guardrails: Forcing AI agents to follow specific organizational rules and file structures, preventing 'architectural drift' or messy code placement during autonomous coding tasks.
- Rapid Prototyping: Quickly scaffolding simple CLI tools or PoC projects with a consistent base structure (e.g., main.rs and Cargo.toml) to accelerate the initial development phase.
- Scalable Team Collaboration: Providing a 'source of truth' for project structure that both human developers and AI agents must follow, reducing technical debt and code review overhead.
| name | aegis-architect |
|---|---|
| displayName | 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 に実装を書く
→ 手順を飛ばしたり、構造を無視することが不可能
アーキタイプの追加方法
新しいアーキタイプを追加するには:
archetypes/<name>/ディレクトリを作成manifest.jsonでメタデータと生成ファイルを定義- テンプレートファイル (
.tmpl) を配置
テンプレートでは {{ name }}, {{ pascal_name }}, {{ description }} が使用可能。
今後の拡張
- validate_arch - 既存コードのアーキテクチャ違反検出
- migrate_to_hex - レガシーコードの移行支援
- テスト雛形の自動生成
- CI連携(PRでvalidate_archを自動実行)