Skip to content
Apothem
ランブック

デプロイチェックリスト

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 の完全性
セキュリティ
相互参照の整合性
指令カバレッジ
機能スモークテスト
ドキュメントの最新性
移植性
バージョンの整合

デプロイ承認者: ___________________ 日付: ___________________ デプロイされたエコシステムバージョン: ___________________

On this page