Communitygithub.com

karlem/skills

測定可能な品質要件からアーキテクチャスタイルを選択します。モジュラーモノリス、サービスベース設計、マイクロカーネル、イベント駆動アーキテクチャ、マイクロサービスを比較する際や、決定をフィットネスチェックに変換する際に使用します。

skills とは?

このスキルは、ソフトウェアアーキテクチャの選択を体系化し、それを検証可能な品質特性に変換するためのガイドです。開発者は、曖昧な「スケーラブル」「セキュア」といった要件を、具体的なシナリオ(刺激→環境→応答→測定値)として定義し、重要な品質特性を優先順位付けできます。本スキルは、モジュラーモノリス、サービスベース設計、マイクロカーネル、イベント駆動アーキテクチャ、マイクロサービスといった複数のアーキテクチャスタイルを、結合度や運用の複雑さなどの側面から比較検討する手順を提供します。最終的には、アーキテクチャ決定記録(ADR)の作成と、禁止依存関係やレイテンシ予算などのフィットネスチェックへの落とし込みを支援し、コードベースの進化に伴うアーキテクチャの劣化を防ぎます。Claude CodeやCursorなどのAIエージェント向けに設計されており、エンジニアは本スキルの手順とチェックリストに従って、AIエージェントにアーキテクチャ分析と設計ドキュメント生成を指示できます。

対応~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/karlem/skills/tree/HEAD/architecture/architecture-patterns

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

アーキテクチャ選択とフィットネスチェック

目標を観察可能な振る舞いに変換する

アクター、重要なワークフロー、データの所有権、制約を特定します。「スケーラブル」「セキュア」「保守しやすい」といった要件を、シナリオ(刺激→環境→応答→測定値)に変換します。設計を実質的に決定づける少数の特性に優先順位を付けます。必須の制約と好みの区別を明確にします。

手順

  1. 関係者とともに品質シナリオと受入しきい値を定義します。ワークロード、障害、チームに関する前提を明記します。選択を参照してください。
  2. 各特性が保持されるべき範囲(コンポーネント、デプロイメント、ワークフロー、システム全体)を特定します。部分ごとに異なるスタイルが正当化される場合があります。
  3. それらのシナリオに対して、モジュラー単一デプロイメントを含む、実現可能な少数のスタイルを比較します。それぞれの主張される利点を支えるメカニズムを説明します。
  4. 結合度を調査します:ソースコードの依存関係、ランタイムコール、共有データ、協調的な変更。静的なモジュール独立性は、ランタイムの障害分離を証明しません。
  5. 最もシンプルで実行可能なスタイルを選択し、ADR(アーキテクチャ決定記録)、その結果、および再検討のトリガーを記録します。可逆的な実装の詳細は、コストのかかる構造的コミットメントから分離しておきます。
  6. 重要な決定をフィットネスチェックに変換します:禁止された依存関係、契約の互換性、レイテンシ予算、復旧時間、テナント分離。フィットネスチェックを参照してください。
  7. 観測された負荷と変更パターンの下で再評価します。依存関係ルールの通過は一つの特性の証拠であり、アーキテクチャ全体の品質の証拠ではありません。

レビュー質問

  • プラグイン境界は、実際の拡張性ニーズを解決しつつ、すべてのプラグインにコアへの無制限アクセスを許可していませんか?
  • イベントには、永続的な公開、スキーマ互換性、重複排除、ラグ監視が必要ですか?これらのコストはイベント駆動提案に含まれていますか?
  • 個別のデプロイメントは、測定されたボトルネックを改善するか、リリースの制約を緩和しますか?
  • 提案されたチームは、結果として生じるデプロイメントと障害の複雑さを運用できますか?
  • データ所有権が分割されたときに、どの不変条件が満たしにくくなりますか?

出力

品質シナリオ、候補メカニズム/トレードオフ、選択された構造、所有権/依存関係マップ、ADR、フィットネスチェック、未解決の前提を返します。

範囲と参考文献

Fundamentals of Software Architecture、第2版(Richards および Ford)に沿った部分的なカバレッジです。著者資料、公開された著者インタビューのトランスクリプト、出版社の目次、およびアーキテクチャテストのドキュメントが、このオリジナルガイドの基盤となっています。出典を参照してください。どのスタイルも普遍的な成熟段階ではありません。

Individual skills in this repo

This repo contains 1 individual skill — each has its own dedicated page.

関連スキル