AgentSkillsCN

architecture-editor

可用于“创建/修订architecture.md”“编写/修改设计文档”“汇总架构设计”等需求。参考concept.md进行软件设计,以日语撰写并更新内容全面、涵盖各必要视角的architecture.md。

SKILL.md
--- frontmatter
name: architecture-editor
description: 「architecture.mdを作成/直す」「設計書を書く/修正」「アーキテクチャ設計をまとめる」などの依頼で使用。concept.mdを参照してソフトウェア設計を行い、必要観点を網羅したarchitecture.mdを日本語で作成・更新する。

Architecture Editor

基本方針

  • 出力は日本語で一般的な設計書トーンにする。
  • concept.md を参照して整合性を担保する(用語・UC・機能・データ・レイヤー)。
  • 読みやすさを優先し、一覧系は表形式を使う。
  • 各章の切れ目に空行を1行入れる。
  • CLIが不要な場合は「該当なし」と明記する。
  • クラス/I/F/例外発生条件は具体化する(メソッド名・引数の型/意味・戻り/例外)。
  • I/Fの入出力型・引数型は主要フィールドまで明記する(未記載にしない)。
  • 引数の値・範囲・制約(例: 必須/任意、最小最大、文字種)を明記する。
  • 例外は「発生場所」と「発生原因」がトレースできる情報を含める。
  • UI/ユースケース層で、例外の最終ハンドリング(表示/ID付与)方針を定義する。
  • spec.md がある場合は例外ID/MSG-IDの命名を必ず一致させる(specのERR-ID/MSG-IDを参照)。

汎用観点(必ず満たす)

  • 境界契約の完全性:依存先I/F(Repo/Store等)の最小契約を列挙する。
  • データ契約の具体性:List/Array等の要素型を必ず明記する。

出力の分離ルール

  • 文書本文は単独で出力する(レビュー文は同じ出力に混ぜない)。
  • レビュー提案は文書出力の後、別メッセージで行う。

生成フロー(厳守)

  • まず concept.md の有無を確認する。未提示なら concept.md 作成を推奨する。
  • spec.md の有無を確認し、例外ID/MSG-IDの命名を合わせる。
  • concept.md を読み、レイヤー構造・UC・データ・機能の整合を取る。
  • 不足情報は提案案を示し、ユーザーの同意/修正を確認してから生成する。

事前確認(提案して確認する)

  • 対象スコープ(全体/機能別)
  • 実行形態(Web/CLI/バッチ/サービス)
  • 永続化の方針(DB/ファイル/外部サービス)
  • 認証/認可の方針
  • 運用前提(デプロイ頻度/更新方針)
  • spec.md があるか(あればERR/MSGのID体系を踏襲する)

出力形式

  • architecture.md を1つ出力する。
  • 出力は本文のみとし、前後に説明文を付けない。

architecture.md テンプレート(固定)

markdown
# architecture.md(必ず書く:最新版)
#1.アーキテクチャ概要(構成要素と責務)
#2.concept のレイヤー構造との対応表
(テキスト図示)

[UI] -> [App] -> [DB/Storage]

code
| conceptレイヤー | 対応コンポーネント | 主な責務 |
|---|---|---|
|  |  |  |
#3.インターフェース設計(Interface)
### UI/APP境界(ユースケース単位)
#### UC-1: <ユースケース名>
| 操作/API | 役割 | 入力(型/主要フィールド/値範囲) | 出力(型/主要フィールド) | 例外(発生条件) |
|---|---|---|---|---|
|  |  |  |  |  |
※例外は「発生場所/原因」が分かる形式で記載する。

### 外部I/F(API単位)
#### API: <外部サービス名>
| メソッド | 役割 | 入力(型/主要フィールド/値範囲) | 出力(型/主要フィールド) | 例外(発生条件) |
|---|---|---|---|---|
|  |  |  |  |  |

### 内部I/F(クラス単位)
#### Class: <クラス名>
##### Method: <メソッド名>
| 引数 | 型 | 意味 | 値範囲/制約 | 必須 |
|---|---|---|---|---|
|  |  |  |  |  |

| 戻り値 | 型 | 主要フィールド |
|---|---|---|
|  |  |  |

| 例外 | 発生場所 | 発生原因 |
|---|---|---|
|  |  |  |

#### 依存先I/F(最小契約)
| 依存先 | 最小メソッド | 目的 |
|---|---|---|
| Repo/Store | save/find/update | 永続化 |

### 型定義(入出力/DTOの主要フィールド)
| 型 | 主要フィールド(値範囲/制約) | 用途 |
|---|---|---|
|  |  |  |
※List/Arrayは要素型を必ず明記する(例: items: array<ExpenseSummary>)
#4.主要フロー設計(成功/失敗)
| フロー | 成功条件 | 失敗条件 | 例外時の動作 |
|---|---|---|---|
|  |  |  |  |
#5.データ設計(永続化・整合性・マイグレーション)
| データ | 永続化 | 整合性 | マイグレーション |
|---|---|---|---|
|  |  |  |  |
#6.設定:場所/キー/既定値
| 項目 | 場所 | キー | 既定値 |
|---|---|---|---|
|  |  |  |  |
#7.依存と拡張点(Extensibility)
| 依存 | 目的 | 拡張点 |
|---|---|---|
|  |  |  |
#7.5.依存関係(DI)
(テキスト図示)

<Class> -> <Interface>

code
| クラス | コンストラクタDI(依存先) | 目的 |
|---|---|---|
|  |  |  |
#8.エラーハンドリング設計(冪等性/リトライ/タイムアウト/部分失敗)
| 事象 | 発生場所 | 発生原因 | 方針 | 備考 |
|---|---|---|---|---|
|  |  |  |  |  |
#9.セキュリティ設計(秘密情報・最小権限・ログ方針)
| 観点 | 方針 |
|---|---|
|  |  |
#10.観測性(ログ/診断:doctor/status/debug)
| 種別 | 内容 | 出力先 |
|---|---|---|
|  |  |  |
## 例外ハンドリング方針(UI/ユースケース層)
| UC | 例外 | 表示/通知 | エラーID/コード方針 | 関連spec ERR-ID |
|---|---|---|---|---|
|  |  |  |  |  |
#11.テスト設計(単体/統合/E2E、モック方針)
| 種別 | 対象 | 方針 |
|---|---|---|
|  |  |  |
#12.配布・実行形態(インストール/更新/互換性/破壊的変更)
#13.CLI:コマンド体系/引数/出力/exit code

整合性チェック

  • concept.md のレイヤー/機能/UC/データと対応が取れているか確認する。
  • 主要フローが concept.md のUCをカバーしているか確認する。
  • エラーハンドリングが主要フローの失敗条件と矛盾しないか確認する。
  • セキュリティ/観測性/テストが実行形態と矛盾しないか確認する。
  • テキスト図示がレイヤー構造と矛盾しないか確認する。
  • UI/APP境界I/FがUC単位で整理されているか確認する。
  • 内部I/Fがクラス単位で整理され、メソッド単位の表になっているか確認する。
  • 例外の発生条件がI/F・フロー・エラーハンドリングで整合しているか確認する。
  • 依存関係(DI)がレイヤー構造と矛盾しないか確認する。
  • 依存先I/Fの最小契約が列挙されているか確認する。
  • List/Arrayの要素型が明記されているか確認する。
  • 例外の発生場所/原因が追跡可能か確認する。
  • UI/UC層の最終ハンドリング(表示/ID)が定義されているか確認する。
  • spec.md がある場合、例外ID/MSG-IDが矛盾していないか確認する。

出力後の提案(レビュー促進)

  • 文書出力の次メッセージで、必ずレビュー提案を行う(下記テンプレートを使用)。

レビュー提案テンプレート(固定文)

「SWEエージェント観点でarchitectureを評価します。評価としては100点満点でXX点くらいで、こういった点は改善した方がいいかもしれません、というレビューをしますか?」

レビュー出力フォーマット(固定)

  • 評価: XX点 / 合格(または要改善)
  • 良い点
    • 箇条書き
  • 改善した方が良い点
    • 箇条書き
  • 次のアクション
    • 修正したい点があれば教えてください(修正します)

レビュー時のルール

  • 100点満点で評価し、80点以上なら「合格」を明示する(例: 「評価: 85点 / 合格」)。
  • 改善点は具体的に列挙し、修正希望があれば反映する。

設計評価の観点(必ず触れる)

  • ゴッドクラス/ゴッドI/Fになっていないか(責務肥大の有無)
  • 単一責務(SRP)が守られているか
  • 依存部品がコンストラクタDI可能か
  • テスト可能性(モック差し替え・境界分離)