プログラミング
Show HN: pi.dev上に構築されたSDLCファクトリ: intent→DDD→architecture→tested code
Show HN: Sdlc factory built on pi.dev:intent->DDD->architecture->tested code (github.com)
要約
Guardianは、ビジネスインテントから本番コードまで、一貫した開発ライフサイクルオーケストレーターです。AI支援開発のために設計されており、ビジネス要件を定義し、アーキテクチャを強制し、テスト済みのコードを生成します。すべてのアーティファクトは単一の.pi/ディレクトリから生成され、手書きの重複や設計からの逸脱を防ぎます。
全文翻訳
ビジネスインテント → 強制されたアーキテクチャ → 本番コード。1つのフロー、ドリフトなし。GuardianはAI支援開発のためのSDLCオーケストレーターです。ビジネスインテント「規制された金融取引のための監査ログを構築する必要がある」から、実装がアーキテクチャに違反した場合にマージをブロックする強制パイプラインまで、あなたを導きます。ライフサイクル全体は単一の.pi/ディレクトリに存在します。すべてのアーティファクト(モジュール、ADR、ロードマップ、課題、CIスクリプト、エージェントスキル)はこのディレクトリから生成されます。二度手書きされるものはありません。ドリフトしません。
完全なSDLC
ビジネスインテントがあります
│
▼ ドメイン探索
←─ あなたとエージェントが探索、反復、洗練します
│
▼ アーキテクチャモジュール
←─ あなたがレビュー、調整、承認します
│
▼ モジュールドキュメントの充実
←─ エージェントが探索からDDDコンテンツを埋めます
│
▼ ADR、図、仕様
←─ あなたが決定に異議を唱え、最終決定します
│
▼ ロードマップ計画
←─ あなたがフェーズを採用し、優先順位を設定します
│
▼ エピック実行
─── エージェントが実装し、あなたがPRをレビューします
│
▼ 強制パイプライン
─── CIが違反時にマージをブロックします
ウォークスルー:インテントから強制まで
1. ビジネスインテントを持つ
「CI/CDパイプラインから監査レコードを収集し、その整合性を検証し、保存し、顧客がクエリできるようにするシステムを構築する必要があります。」
2. ドメインを探索する(人間+エージェント、反復的)
/domain --explore "規制された金融取引のための監査ログ"
Guardianはあなたのインテントを分析し、構造化されたドメインモデルを生成します。しかし、これは一度きりの出力ではなく、会話の始まりです。あなたはレビューし、異議を唱え、洗練します。
「これらのバウンデッドコンテキストは正しくありません。IngestionとQueryを1つにマージしてください。」
「Compliance Engineコンテキストを追加してください。規制された金融にはそれが必要です。」
「ユビキタス言語が間違っています。監査レコードではなく、『証拠レコード』と呼びます。」
モデルが実際のビジネスを反映するまで、あなたは行ったり来たりします。その後初めて、先に進みます。
3. アーキテクチャモジュールをスキャフォールディングする
/domain --architect-scaffold <session-id>
Guardianは、アーキテクチャレイヤー、アグリゲート、リポジトリ契約、ドメインイベントを持つ、バウンデッドコンテキストごとに1つのアーキテクチャモジュールを生成します。
# Audit Ingestion
## Architecture
| Layer |
|--------------|
| **Domain** | Aggregates, entities, repository interfaces |
| **Application** | Use cases, DTOs |
## Aggregates
### AuditRecord
**Repository Interface:**
```rust
pub trait AuditRecordRepository: Send + Sync {
async fn find_by_id(&self, id: &AuditRecordId) -> Result<Option<AuditRecord>, DomainError>;
async fn save(&self, entity: &AuditRecord) -> Result<(), DomainError>;
async fn delete(&self, id: &AuditRecordId) -> Result<(), DomainError>;
}
Domain Events
Event Description Trigger
AuditRecordIngested
...
...
```
### 3.5 完全なDDDコンテンツで充実させる
/domain --enrich
エージェントはドメイン探索を読み込み、各モジュールのスタブを以下で強化します。
- Mermaidデータフロー図
- 実際のRust構造体スタブ
- APIエンドポイントテーブル
- コンテキストごとのユビキタス言語
- クロスコンテキスト依存関係
- セキュリティに関する考慮事項
これにより、実装者が直接ビルドできる本番品質のアーキテクチャドキュメント(各5〜20KB)が生成されます。
## Idempotency Handler
status: planned
description: Deduplicates records using Idempotency-Key header.
depends: HMAC Signature Verifier
4. アーキテクチャをレビューする(人間ループ内)
ここで、生成されたアーキテクチャをレビューします。ここで実際の設計が行われます。
「Idempotency HandlerはSignature Verifierに依存すべきではありません。それらは並列です。」
「HMAC-SHA256をECDSAよりも選択した理由を説明するADRが必要です。」
「レコードがIngestionからQueryにどのように流れるかを示すシステム概要図を追加してください。」
あなたはエージェントにADRを追加したり、モジュールドキュメントを更新したり、図を生成するように指示します。アーキテクチャが堅牢になるまで、あなたは決定に異議を唱えます。各ADRは決定をキャプチャします。
ADR-004: HMAC-SHA256とJCS正規化を使用する
ADR-005: Idempotency-Keyヘッダーによる冪等性(dedupテーブルではない)
ADR-006: 監査リストのためのカーソルベースのページネーション
5. ロードマップを採用する
アーキテクチャが最終決定したら、ロードマップでそれをロックします。各フェーズには依存関係、移行、受け入れ基準があります。
/architect --roadmap
/architect --adopt-roadmap
6. フェーズを通じて実行する
/architect --phase "Phase 0"
Guardianはモジュールごとに1つのエピック、コンポーネントごとに1つの課題を生成します。各課題には、コンポーネントのアーキテクチャコンテキスト、言語固有のDDDパターン、および受け入れ基準が含まれます。エージェントが実装します。あなたはPRをレビューします。Guardianはパイプラインを自動的に進めます:実装→検証→MR作成→マージ
オプション:TDDモード
エージェントが実装の問題を見る前に、アーキテクチャ契約から決定論的に失敗するテストファイルを生成するために、/architect --epic に --tdd を渡します。テストはexpect(false).toBe(true)(または言語の同等物)を使用します。エージェントはそれらをパスさせるためにRed→Green→Refactorに従います。テスト生成にLLMは関与しません。すべてのテストは、構造化されたコンポーネントデータ(名前、説明、依存関係、影響を受けるレイヤー)から派生します。
/architect --epic "Auth Module" --tdd
7. 強制がループを閉じる
すべての変更はアーキテクチャに対して検証されます。
Script
何が強制されるか
check_ddd_structure.sh
すべてのモジュールには domain/ application/ infrastructure/ interfaces/ があり、contracts/ wrapper がありません。
check_architecture_conformance.sh
Domainはinfrastructureをインポートしません。モジュールごとの4層構造。
validate-canonical.sh
すべてのコードファイルはアーキテクチャソースを参照します。
誰か(またはAI)がドメインレイヤーからインフラストラクチャへの依存関係を追加した場合、check_ddd_structure.sh がそれを検出します。CIが失敗します。マージはブロックされます。
クイックスタート
# 1. スキャフォールディング
cd your-project
npx guardian-framework init
# 2. 探索(反復的 — レビュー、洗練、繰り返し)
/domain --explore "あなたのビジネスインテント"
# 3. 探索からアーキテクチャを生成する
/domain --architect-scaffold <session-id>
# 4. 完全なDDDコンテンツでモジュールドキュメントを充実させる
/domain --enrich <session-id>
# 5. レビューと洗練(ADR、図、モジュール — 人間ループ内)
# 6. ロードマップを採用する
/architect --roadmap
/architect --adopt-roadmap
# 6. 実行する
/architect --phase "Phase 0"
これは何を意味するか
アーキテクチャのドリフトは、コンパイル時のエラーになります。ドキュメントコメントではありません。失われるコードレビューのメモではありません。修正されるまでマージをブロックするCIの失敗です。
GuardianはRigorixで証明されました:146,312行のRust、30モジュール、580コミット、単一の開発者によって11営業日で構築されました。`.pi/`で定義されたアーキテクチャは、実装に対して継続的に検証されました。ドリフトが発生した場合、それはmainに到達する前に検出されました。
リンク
ユーザーマニュアル docs/USER_MANUAL.md — すべてのワークフロー、コマンド、拡張機能
Rigorixで証明済み — 146K LOC Rust、30モジュール
ソース github.com/arman-jalili/guardian-framework
ライセンス MIT