clean-architecture
クリーンアーキテクチャの依存ルールを moka-1 のミニマリズム制約下で適用する指針。レイヤ分割・interface 設計・依存方向の判断基準と、過剰抽象化を避けるガードレールを提供する。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
クリーンアーキテクチャの依存ルールを moka-1 のミニマリズム制約下で適用する指針。レイヤ分割・interface 設計・依存方向の判断基準と、過剰抽象化を避けるガードレールを提供する。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
Rust ベストプラクティス(Plecto WASM フィルタ向け、Edition 2024)。plecto:filter WIT コントラクトを実装する WASM Component Model フィルタの規約とツールチェーン。
Grilling session that challenges your plan against moka-1's documented design decisions (tenets, ADRs) and domain model, sharpens terminology, and updates documentation (CONTEXT.md, ADRs) inline as decisions crystallise. Use when the user wants to stress-test a plan against the project's language and documented decisions, or says 「設計を詰めて」「用語を固めて」「ドキュメントと突き合わせて」.
Web調査の方法論。一次ソース(RFC・公式仕様・公式ドキュメント・原論文・ソースコード)を最優先し、検索クエリの多角化・横断的検証(lateral reading)・独立ソースでの三角測量を経て、出典付きで報告する手順。
moka-1 スタックの Docker Compose 操作と compose.yaml の書き方。ワンキック起動・開発ループ・ヘルスチェック・開発機(iGPU/Vulkan)固有設定・トラブルシュート。
Go ベストプラクティス(moka-core 向け、Go 1.26+)。常駐エージェントループ・LLM クライアント・フィード取得を含む moka-core の実装規約。
Python ベストプラクティス(eval/ 専用、Python 3.14 + uv + Pyrefly + Ruff)。モデル A/B・プロンプト評価スクリプトの規約と再現性の作法。
| name | clean-architecture |
| description | クリーンアーキテクチャの依存ルールを moka-1 のミニマリズム制約下で適用する指針。レイヤ分割・interface 設計・依存方向の判断基準と、過剰抽象化を避けるガードレールを提供する。 |
原典: Robert C. Martin の The Clean Architecture。ただし moka-1 は「1コマンド・少数コンテナ・単一言語」制約(tenets §2)が先にあるので、教科書の4層をそのまま持ち込まず、依存ルールだけを不変条件として運用する。
ソースコードの依存は内側(ビジネスルール)にだけ向く。内側は外側を知らない。
内側 → 外側の順:
store(pgx)、llm(OpenAI互換HTTP)、httpapi(ServeMux)、feed のフェッチャチェック方法: import 文を見る。ユースケース層のファイルが pgx や net/http を import していたら違反。
教科書の同心円を Go のパッケージ境界に畳む(tenets §3.1「プロセス境界ではなくパッケージ境界」)。ディレクトリを domain/ usecase/ adapter/ に切り直すのではなく、機能パッケージ(feed, enrich, rag, ...)の内部で依存方向を守る:
internal/enrich/
├── enrich.go # ユースケース: キュー処理の手順。interface にのみ依存
├── types.go # ドメイン: 濃縮結果の構造と検証規則
└── (具象は注入) # llm.Client, store.Pool は main で配線
enrich が要約を必要とするなら enrich パッケージ内に最小の interface を書き、llm の具象を cmd/moka/main.go で注入する。詳細は bp-go 参照common/, utils/)は作らないクリーンアーキテクチャの最頻出の失敗は層の不足ではなく層の過剰。以下を守る:
新しい依存を足したい
├─ プロセス外 I/O か? ── yes → 消費側に最小 interface + main で注入
│ no ↓
├─ 同一パッケージ内で完結するか? ── yes → 直接呼ぶ。抽象化しない
│ no ↓
└─ ドメイン型の共有で足りるか? ── yes → 型だけ共有し、挙動は各パッケージに
no → パッケージ境界の再検討(設計判断なので ADR 候補)
httptest や testcontainers が必要になったらそれはアダプタ層のテストgo list -deps で内側パッケージの依存を確認docs/tenets/moka-tenets.md §2(設計原則)・§3.1(パッケージ境界)