ランブック
デプロイチェックリスト
Apothem エコシステムをデプロイまたは共有する前の事前検証チェックリスト
Apothem エコシステムを新しいマシンにデプロイする、他者と共有する、または 本番運用可能とみなす前の事前検証ステップです。
1. YAML の妥当性
- すべてのルールファイルが YAML エラーなくパースされる — frontmatter ブロックが
---で開き、---で閉じ、ブロック外に孤立したコンテンツがない - すべての委任ワーカーファイルが YAML エラーなくパースされる
- すべてのコマンドファイルが YAML エラーなくパースされる
- すべてのスキル
SKILL.mdファイルが YAML エラーなくパースされる
検証方法: python scripts/dev/validate_ecosystem.py は各アーティファクトの
frontmatter をパースし、YAML エラーと欠落している必須フィールドをフラグ付けします。
孤立したリスト項目をその場で検出するには: rg -n "^- " src/apothem/rules/*.md。
2. frontmatter の完全性
各アーティファクト種別について、必須フィールドが存在することを確認します。
ルール(src/apothem/rules/*.md)
-
name— ファイル名に一致する kebab-case の識別子 -
description— 1 文の要約 -
alwaysApply— 常時オンのルールではtrue、パスフィルタールールではfalse -
pathFilter— すべてのルールに存在すること。常時オンのルールでは""(alwaysApply: true)、パスフィルタールールではカンマ区切りの glob リスト(alwaysApply: false)
ルールには version、updated、scope、portability のキーはありません。
コマンド(src/apothem/commands/*.md)
-
name— kebab-case のコマンド名 -
version、updated、description、argument-hint、portability、allowed-toolsが存在すること -
disable-model-invocationが存在し、意図したものであること(読み取り専用または助言のみのコマンドではfalse。trueは、コマンドの実行が作業ツリーの外の状態を変更する場合、またはオペレーターがタイミングを選ぶことに依存する場合に限る) -
effortキーがないこと:command.schema.jsonはadditionalProperties: falseを設定しており、これを許可しません
委任ワーカー
パス:
src/apothem/agents/*.md-
name、version、updated、descriptionが存在すること -
tools— 許可されたツールのカンマ区切りリスト -
disallowedTools— 許可しないツールを明示的に列挙 -
maxTurns— 設定すること(10 を超える場合は理由のコメントを付ける) -
permissionMode—"bypassPermissions"を設定してはならない。キーは未設定のままにする(アグノスティックな姿勢は権限モードを事前設定しないため)。 -
memoryは、永続メモリを意図的に使う場合を除き省略すること。設定する場合はuser、project、localのいずれかとする(真偽値形式は使わない)。
スキル(src/apothem/skills/*/SKILL.md)
-
name、version、updated、description、archetype、disable-model-invocation、allowed-toolsが存在すること -
userInvocableを宣言していること(true/false)。ソースでの綴りはuserInvocableである。スキルは、userInvocableとuser-invocable(Claude Code での綴り)のいずれか一方だけを持つ。
3. セキュリティ
- どの委任ワーカーも
permissionMode: "bypassPermissions"を使用していない — これは Write/Bash 操作の対話的確認をバイパスします - ワーカーの
toolsリストは最小限である — ワーカーが本当に必要とするツールのみ -
Bashアクセスを持つワーカーには正当な理由があり、maxTurns の上限が設定されている - いずれのアーティファクトにもハードコードされたパス、トークン、シークレットがない
-
settings.jsonのフックは妥当なタイムアウト(≤ 60 秒)を持ち、ユーザー入力からの任意コードを実行しない
4. 相互参照の整合性
-
src/apothem/rules/テーブルに記載された各ルールが、記載されたパスにディスク上に存在する -
src/apothem/commands/テーブルに記載された各コマンドがディスク上に存在する -
src/apothem/agents/レジストリテーブルに記載された各委任ワーカーがディスク上に存在する -
src/apothem/skills/テーブルに記載された各スキルがディスク上に存在する -
src/apothem/hooks/テーブルの各フックがsettings.jsonに対応するエントリを持つ - すべての
src/apothem/rules/*.mdファイルが存在し、それぞれのBindingsの相互参照が解決される
5. 指令カバレッジ
- 各 CM-N 指令に施行場所がある(ルールファイルまたは明示的なインライン定義のいずれか)
- どのルールファイルも他のルールファイルと矛盾しない(特にシリアスネススケーリングの周辺で)
- CM-21 の 3 つのファセットの境界が尊重されている — どのルールも他のルールの CM-21 ファセットの所有権を主張しない
6. 機能スモークテスト
まず Python 検証サーフェスを実行します — 高速・オフラインで、構造的なリグレッションを 捕捉します。
-
pytest tests— フックランタイムのユニットテスト、すべてグリーン -
python scripts/dev/validate_hooks.py— フック構造 + Python のみの衛生チェックがパス -
python scripts/dev/validate_ecosystem.py— ツリー全体 + frontmatter + 委任フックチェックがパス -
python scripts/dev/chaos_pass.py— 設定された各フックコマンドが、劣化した入力の下で有効な JSON エンベロープを返す
次にライブシナリオ:
-
/plan-spec <sample-file>— コマンドレベルのエラーなく取り込み/明確化を完了する -
/plan-generate --dry-run— ファイルを書き込まずに構造プレビューを生成する - 完全なプランスイートに対する
/plan-status— 正確なフェーズ数を返す - 委任されたワーカーのディスパッチ: 小さなスコープで呼び出された
codebase-explorerワーカーが maxTurns 内に完了し、構造化された出力を返す
7. ドキュメントの最新性
-
CHANGELOG.md(エコシステムのルート)が、前回リリース以降のすべてのアーティファクト変更を反映している。次のリリースのセクションがタグの着地前に記入されているか、すべての変更がすでにリリース済みセクションに切り出されている -
site/content/docs/developer-guide.mdxが現在のアーティファクト構造を正確に記述している -
site/content/docs/reference/artifact-schema.mdxが、アーティファクトに実際に存在する frontmatter フィールドと一致している -
site/content/docs/reference/settings-reference.mdxが、settings.jsonの実際のフック設定と一致している -
README.mdがディスク上のツリーと整合している
8. 移植性(他者と共有する場合)
- フックコマンド内のすべてのパスが環境非依存であるか、
~展開を使用している - フックコマンドが exec 形式を使用し、シェル固有のコマンド文字列を避けている
- いずれのアーティファクトにもハードコードされた
C:\Users\usernameまたは/home/usernameパスがない -
settings.jsonが単一のフックイベントカバレッジテーブルと正規のディスパッチモジュールパスを使用している
9. バージョンの整合
- CLAUDE.md の
versionがツリー内のいずれのアーティファクトよりも高い(または慣例上、最も最近バンプされたアーティファクトのバージョンと等しい) - 各アーティファクトの
versionが記載された semver(MAJOR.MINOR.PATCH)と一致している - CHANGELOG.md がタグ付けの前に、対象バージョンのリリースエントリをちょうど含んでいる
- 各アーティファクトの
updatedフィールドが、最後の動作変更編集の日付以降である - どのアーティファクトも、最後に触れられたバージョンより低い
versionを持っていない(リグレッションなし) -
src/apothem/skills/plan-suite/SKILL.mdとsrc/apothem/skills/plan-suite/master-template.mdが同じテンプレートバージョンラインにピン留めされている
サインオフ
| チェックカテゴリ | ステータス | 備考 |
|---|---|---|
| YAML の妥当性 | ||
| frontmatter の完全性 | ||
| セキュリティ | ||
| 相互参照の整合性 | ||
| 指令カバレッジ | ||
| 機能スモークテスト | ||
| ドキュメントの最新性 | ||
| 移植性 | ||
| バージョンの整合 |
デプロイ承認者: ___________________ 日付: ___________________ デプロイされたエコシステムバージョン: ___________________