mcpField
A
architect

architect

github.com/ericlitman開発53845 回インストール1 週間前に更新
リポジトリ

architect について

architect は、実装前にインターフェースのスケッチでソフトウェア設計を検討するスキルです。既存システムを把握して異なる構造の案を比較し、選んだスケッチを実装の契約として扱います。

主な機能

  1. 01既存システムを踏まえた設計
  2. 02型とモジュールのスケッチ作成
  3. 03異なる設計候補の比較
  4. 04選定したスケッチに沿った実装
  5. 05構造が機能しない場合の再設計

活用シーン

  1. 01モジュール境界をまたぐ変更の計画
  2. 02実装前の設計案の検討
  3. 03回避策が繰り返し必要な設計の見直し

インストール

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

$npx skills add https://github.com/ericlitman/open-pstack --skill architect

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

同梱ファイル

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

references/
design-red-flags.md
rationale-template.md
runner-prompt.md

詳細

アーキテクト

not implemented の本体や疑似コードを使って、型、関数シグネチャ、クラスの形、モジュール境界をスケッチします。複数のモデルの視点を統合してから、選んだスケッチに沿ってコードを埋めていきます。

ディスパッチの契約。 Architect の Arena では、provider-dispatch.md に記載された一元化されたプロバイダールーティングを使用します。設定されたエントリーは、ネイティブのモデルスラッグではなく記述子です。Codex では、残りの Claude ツール名を codex-tools.md に従って解決します。

開始

作業を始める前に、各フェーズを1項目ずつ記載した todolist を作成します。

  1. 状況把握
  2. スケッチ
  3. 合意
  4. 実装
  5. 破棄

フェーズ A:問題の状況を把握する

新しいコードが関わるすべてのシステムについて、実態に即したメンタルモデルを構築します。関連するサブシステムに対して how スキルを実行します。ファイル名を挙げるだけでは、状況を把握したことにはなりません。how が指定するアーキテクチャの説明を作成します。設計によって所有権やレイヤー構造を再定義する場合は、既存の構造に対して why スキルも実行し、その根拠を推測ではなく制約として明確にします。

周囲のシステムと統合する必要のない、真にグリーンフィールドの作業である場合に限り、フェーズ A を省略します。

フェーズ B:スケッチ

フェーズ A で作成した状況把握の成果物を使い、設計スケッチのタスクで arena スキルを実行します。各ランナーのプロンプトとして references/runner-prompt.md を渡します。

Arena の arena runners の代わりに、現在のハーネスの pstack モデルシートにある architect runners を使用します。シートまたはその行がない場合は、役割ごとのデフォルトを使用します。

設計を2回行います。最初の案で十分に見えても、統合前に構造の異なる候補を少なくとも2つ用意します。これは、設計空間を尽くすという原則スキルを具体化したものです。1つの形の中で個別の修正を行うのではなく、全体の形が異なる代替案を用意します。

統合前に、すべての候補を references/design-red-flags.md に照らして評価します。次の貢献者は、開いたファイルしか見ず、最も近い例をコピーし、コンパイルが通る最短の道を選ぶエージェントだと想定します。1つのファイルから見て正しそうな変更が、リポジトリ全体でも正しい設計を優先します。

実現可能な候補を、インターフェースの深さで比較します。より多くの複雑さを、小さくシンプルな公開サーフェスの背後に隠せる設計を優先します。機能を複数のレイヤーに分散させるのではなく集約すれば、豊かなインターフェースでも呼び出しチェーンを短く保てます。

Arena は、統合済みの設計パッケージを1つ返します。その統合時の判断で、根拠にある「Synthesis decision」セクションを埋めます。

フェーズ C:合意(オプトイン)

デフォルトでは、統合済みの設計に基づいて、そのまま実装に進みます。人間によるチェックポイントは設けません。

呼び出し側が「/architect with checkpoint」「実装前に止めて見せて」などと明示的に求めた場合に、チェックポイントを選択します。その場合、統合済みの設計を提示して、承認を待ちます。

いずれの場合も、foundational-thinking 原則スキルの「scaffold first」モードとして、統合内容を単独のコミットにできます。outcome-oriented-execution 原則スキルに従い、実装時に計画的かつ範囲を限定して破壊的変更を行うことも問題ありません。実装前に設計へ厳しい検証を加えるには、統合済みのスケッチに対して interrogate スキルを実行します。

チェックポイント中または事後に人間から設計の形に異議が出た場合は、それをフェーズ A の証拠として扱います。状況を再確認し、コードをさらに書き進める前にフェーズ B を再実行します。

フェーズ D:スケッチに沿って実装する

not implemented の本体をコードに、疑似コードをロジックに置き換えます。統合済みのスケッチを契約とします。そこからの逸脱は、黙って吸収するのではなく、表面化させるべきシグナルです。関数にスケッチでは想定されていないパラメーターが必要な場合は、スケッチが誤っていたのか、要件を見落としたのか、実装が踏み込みすぎているのかを確認します。

フェーズ E:アーキテクチャが間違っているなら、作り直します

実装を進めても、スケッチでは吸収できない摩擦が繰り返し生じるなら、スケッチは破棄してください。間違った設計に修正を継ぎ足さず、redesign-from-first-principles と fix-root-causes の原則スキルに従ってください。

判断の手がかりとなるのは、単発の事例ではなく、パターンです。次の点に注目してください。

  • 無関係なコードの間で、同じ形の回避策が繰り返し現れる。
  • 複数の無関係なエッジケースすべてに、個別の分岐が必要になる。
  • コンパイルするために、型に逃げ道(any、キャスト、実際には常に設定されているオプションフィールド)が必要になる。
  • スケッチでは状態を共有していないとされたのに、「ロックが必要だ」と反射的に考えてしまう。
  • 呼び出し側が抽象化の内部ルールを知っていないと使えない。
  • 実装全体で、同じ形をしたフェーズ D からの逸脱が 2 つ以上ある。

判断は慎重に行ってください。いくつかのエッジケースだけで、アーキテクチャが誤りだとは限りません。問題によっては、正当に複雑な場合もあります。データの複雑さは、設計の複雑さとは異なります。

作り直す場合は、次の手順に従ってください。

  1. これまでに構築したものを対象に、how スキルを再実行します。
  2. 新しい制約が初日から前提だったかのように、redesign-from-first-principles に従って再設計します。
  3. subtract-before-you-add の原則スキルに従い、追加する前に削ります。新しいスケッチは、発展させる前に古いものより小さくしてください。
  4. フェーズ B に戻り、arena を再実行します。

成果物

呼び出し側の使い方を先に記述し、そこから型のスケッチを導き出します。小規模な変更では、新しい型とシグネチャを 1 つのファイルにまとめます。大規模な変更では、モジュールマップと型定義を用意します。理由は references/rationale-template.md に沿ってまとめ、使い方のスケッチと統合に関する判断を含めて、成果物と一緒に提供します。

コメント