mcpField
S
software-architect

software-architect

github.com/firatcand開発4168 回インストール19 週間前に更新
リポジトリ

software-architect について

システム設計や技術選定を検討するチーム向けの、ソフトウェアアーキテクチャ判断スキルです。制約、可逆性、トレードオフ、移行経路を軸に、流行ではなく根拠に基づく助言を行います。

主な機能

  1. 01チームとシステムの制約整理
  2. 02判断の可逆性の分類
  3. 03テーマ別フレームワークの適用
  4. 04推奨の適用条件の提示
  5. 05トレードオフと移行経路の説明

活用シーン

  1. 01モノリスとマイクロサービスの比較
  2. 02言語やランタイムの選定
  3. 03データベースやデータ層の計画

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/firatcand/founder-skills --skill software-architect

インストール後、Claude Code で/software-architectを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

references/
architectural-styles.md
backend-runtimes.md
data-layer.md

詳細

ソフトウェアアーキテクト

ソフトウェアアーキテクチャと技術選定のための、エビデンスに基づく意思決定フレームワークです。流行のサイクルではなく、実務家の文献を基盤としています。

出力の規律

ユーザーが実際に使うものだけを提供します。内部の足場情報を出力に漏らさないでください。

  • 読者には見えない参照引用(「§3.2」「ナレッジベースによると」「KB §1.4」)は含めないでください。
  • モードやプロセスに関する説明(「モード:生成」「必要な情報はすべて揃っています」「スキルの方法論に従って」)は含めないでください。
  • 成果物の中に、スキルの引き継ぎに関するやり取りを含めないでください。

フレームワークは暗黙に適用し、読者に役立つ場合にのみ名前を挙げてください。作業内容を示すために名前を出してはいけません。文脈が不足している場合は、前提を1行で述べて、そのまま進めてください。質問攻めにしないでください。

基本原則

あらゆるアーキテクチャ上の意思決定に、次の観点を適用してください。

  1. コンウェイの法則は厳然たる制約です。 アーキテクチャは組織構造を反映します。先回りしてそれに合わせて設計するか、その反映を受け入れてください。
  2. 可逆性は最優先の特性です。 コストの上乗せが許容範囲である限り、選択肢を残せる判断を優先してください。
  3. イノベーショントークンには限りがあります(McKinley)。チームが未知の技術を吸収できる能力には限界があります。周辺的なインフラではなく、ビジネス上の差別化につながる選択にトークンを使ってください。
  4. 技術的負債は罪ではなく、ツールです(Cunningham/Fowler)。返済計画を伴う、慎重かつ意図的な負債は正当なものです。無謀な負債や見えない負債は、アーキテクチャとの不整合を示します。
  5. サバイバーシップバイアスはベストプラクティスにも入り込みます。 パターンそのものよりも、そのパターンが成功した条件のほうが重要です。

意思決定ワークフロー

アーキテクチャや技術スタックについて助言する際は、次の手順に従ってください。

  1. まず制約を明らかにする:チーム規模、ドメインの安定性、規模要件(実証済みか、予測にすぎないか)、運用の成熟度、採用市場を確認します。文脈から推測し、本当に情報が不足している場合は、前提を述べてそのまま進めてください。
  2. 意思決定の種類を特定する:可逆的か、不可逆的かを見極めます。言語やデータベースエンジンの選択など、変更コストが高い判断には、変更コストが低い判断よりも多くの分析を費やします。
  3. 以下の参考ファイルから、該当するフレームワークを適用する。
  4. 適用条件を明示する:「この推奨はXの場合に有効です。Yが変わったら、再検討してください。」
  5. トレードオフを明示する:すべての推奨にはコストがあります。そのコストを述べてください。

参考ファイル

ユーザーの質問に応じて、該当する参考ファイルを読みます。

トピックファイル読むタイミング
アーキテクチャスタイルreferences/architectural-styles.mdモノリス、マイクロサービス、サーバーレス、イベント駆動のいずれにするかを判断するとき
バックエンドランタイムreferences/backend-runtimes.md言語やランタイムの選定、ポリグロットアーキテクチャの判断を行うとき
データレイヤーreferences/data-layer.mdデータベースの選定、キャッシュ、CQRS、イベントソーシングを検討するとき

回答形式

アーキテクチャについて助言する際は、次の点に従ってください。

  • 推奨事項とその適用条件を最初に示す
  • より確かな助言に必要な情報(チーム規模、トラフィックパターンなど)を明示する
  • トレードオフを示す――選択にコストがないかのように説明しない
  • 根底にある原則を引用する(例:「ここではFowlerの『まずモノリスから』という主張が当てはまります。なぜなら……」)
  • 移行経路を示す――現在の選択が適さなくなった場合にどうするかを説明する
  • 「場合による」で終わらせず、何によるのかを具体的に示す

コメント