| ID | チェック | 点 | 判定 | 根拠(実測) |
|---|---|---|---|---|
| A1 | denyルールの網羅before | 0/35 | ❌ | deny総数0件。推奨5種のうち有=なし/無=['.env読取deny', 'git push --force deny', 'git reset --hard deny', 'git clean deny', 'sudo deny'] |
| A2 | 危険allowの不在before | 5/35 | ❌ | 危険allow: Bash(pip3 install *) / Bash(python3 -) |
| A3 | 死にルール0件before | 0/20 | ❌ | 死にルール10件: (配信ツールの橋の許可) / (配信ツールの橋の許可) / (配信ツールの橋の許可) / (配信ツールの橋の許可)… |
| A4 | askの設計before | 0/10 | ❌ | ask 0件 |
| A1 | denyルールの網羅after | 35/35 | ✅ | deny総数9件。推奨5種のうち有=['.env読取deny', 'git push --force deny', 'git reset --hard deny', 'git clean deny', 'sudo deny']/無=なし |
| A2 | 危険allowの不在after | 35/35 | ✅ | 危険allow=0件 |
| A3 | 死にルール0件after | 20/20 | ✅ | 死にルール0件 |
| A4 | askの設計after | 10/10 | ✅ | ask 3件 |
| ID | チェック | 点 | 判定 | 根拠(実測) |
|---|---|---|---|---|
| B1 | PreToolUse(Bash) Hookの存在before | 15/15 | ✅ | hook=(著者の作業部屋)/.claude/hooks/block-dangerous-commands.py |
| B2 | 危険20種の単体発火テストbefore | 10/35 | ❌ | deny 6/20。素通り例: find . -name "*.tmp" -delete / git push --force origin main / git push -f origin main / git reset --hard HEAD~3 |
| B3 | 誤検知テストbefore | 0/15 | ❌ | 誤deny 4/10: echo "rm -rf test" / grep -n "rm -rf" README.md / true # rm -rf old backups note / echo "DROP TABLE example" |
| B4 | secret-scan Hook(Write/Edit)before | 0/15 | ❌ | Write/Edit対象のPreToolUse Hookが無い |
| B5 | 完了時検証Hook(Stop)before | 0/10 | ❌ | settingsファイルにStop hookなし |
| B6 | fail方向の明示before | 0/10 | ❌ | 実挙動=fail-open/宣言=無し |
| B1 | PreToolUse(Bash) Hookの存在after | 15/15 | ✅ | hook=(著者の作業部屋)/.claude/hooks/michinori_guard_v2.py |
| B2 | 危険20種の単体発火テストafter | 35/35 | ✅ | deny 20/20 |
| B3 | 誤検知テストafter | 15/15 | ✅ | 誤deny 0/10 |
| B4 | secret-scan Hook(Write/Edit)after | 0/15 | ❌ | Write/Edit対象のPreToolUse Hookが無い |
| B5 | 完了時検証Hook(Stop)after | 0/10 | ❌ | settingsファイルにStop hookなし |
| B6 | fail方向の明示after | 10/10 | ✅ | 実挙動=fail-open/宣言=fail-closed・fail-open |
| ID | チェック | 点 | 判定 | 根拠(実測) |
|---|---|---|---|---|
| C1 | 作業ルートがGit管理before | 0/30 | ❌ | ルート非Git。サブリポジトリ=['相棒の開発フォルダ', '制作基盤フォルダ'](ルート直下の成果物は復元不能) |
| C2 | dirty件数before | 0/25 | ❌ | ルート非Gitのため測定不能=0 |
| C3 | 直近コミット鮮度before | 0/15 | ❌ | ルート非Git |
| C4 | 履歴の厚みbefore | 0/15 | ❌ | ルート非Git |
| C5 | リモートまたはバックアップbefore | 0/15 | ❌ | remote=無/backup_method=未登録 |
| C1 | 作業ルートがGit管理after | 30/30 | ✅ | ルートはGit管理下 |
| C2 | dirty件数after | 25/25 | ✅ | 未コミット0件 |
| C3 | 直近コミット鮮度after | 15/15 | ✅ | 最終コミットから0日 |
| C4 | 履歴の厚みafter | 0/15 | ❌ | コミット1件 |
| C5 | リモートまたはバックアップafter | 0/15 | ❌ | remote=無/backup_method=未登録 |
| ID | チェック | 点 | 判定 | 根拠(実測) |
|---|---|---|---|---|
| D1 | 未ignoreの秘密ファイル0件before | 10/25 | ❌ | 未ignore=['制作基盤フォルダ/.env.save'] |
| D2 | 複製・退避ファイル0件before | 10/20 | ❌ | 複製=['制作基盤フォルダ/.env.save'] |
| D3 | 追跡済み秘密0件before | 25/25 | ✅ | git追跡中の秘密ファイル=0件 |
| D4 | 環境変数への鍵輸出0件before | 15/15 | ✅ | 該当変数名=0件(値は読んでいない) |
| D5 | モデルからの読取防壁before | 0/15 | ❌ | .envへのRead denyが無い |
| D1 | 未ignoreの秘密ファイル0件after | 25/25 | ✅ | 未ignore=0件 |
| D2 | 複製・退避ファイル0件after | 20/20 | ✅ | 複製=0件 |
| D3 | 追跡済み秘密0件after | 25/25 | ✅ | git追跡中の秘密ファイル=0件 |
| D4 | 環境変数への鍵輸出0件after | 15/15 | ✅ | 該当変数名=0件(値は読んでいない) |
| D5 | モデルからの読取防壁after | 15/15 | ✅ | .envへのRead denyが有る |
| ID | チェック | 点 | 判定 | 根拠(実測) |
|---|---|---|---|---|
| E1 | 検査コマンドの登録before | 25/25 | ✅ | 登録1件 |
| E2 | 検査の実行結果before | 10/50 | ❌ | 失敗あり: node scripts/check-all.js(exit=1) |
| E3 | 不合格の放置検知before | 10/25 | ❌ | 初回失敗(前回karteなし) |
| E1 | 検査コマンドの登録after | 25/25 | ✅ | 登録1件 |
| E2 | 検査の実行結果after | 50/50 | ✅ | 全検査 exit=0 |
| E3 | 不合格の放置検知after | 25/25 | ✅ | 検査合格 |
| ID | チェック | 点 | 判定 | 根拠(実測) |
|---|---|---|---|---|
| F1 | 常時注入量before | 15/30 | ❌ | CLAUDE.md(グローバル+プロジェクト)+MEMORY.md 合計 37.0KB |
| F2 | 必読指定の実行可能性before | 6/25 | ❌ | STATE.md=145KB / 制作基盤フォルダ/STATE.md=28KB |
| F3 | 鮮度矛盾before | 10/20 | ❌ | STATE.md(ヘッダ2026-08-01 vs 実更新2026-08-19、18日乖離) |
| F4 | プレースホルダー残存0件before | 7/15 | ❌ | .claude/CLAUDE.md:(ここに[^)]*記入) |
| F5 | 単一メモリ肥大before | 0/10 | ❌ | ai-aibou-ikusei.md(70KB) / MEMORY.md(30KB) |
| F1 | 常時注入量after | 15/30 | ❌ | CLAUDE.md(グローバル+プロジェクト)+MEMORY.md 合計 37.6KB |
| F2 | 必読指定の実行可能性after | 6/25 | ❌ | STATE.md=148KB / 制作基盤フォルダ/STATE.md=28KB |
| F3 | 鮮度矛盾after | 20/20 | ✅ | 乖離なし |
| F4 | プレースホルダー残存0件after | 7/15 | ❌ | .claude/CLAUDE.md:(ここに[^)]*記入) |
| F5 | 単一メモリ肥大after | 0/10 | ❌ | ai-aibou-ikusei.md(70KB) / MEMORY.md(31KB) |
| ID | チェック | 点 | 判定 | 根拠(実測) |
|---|---|---|---|---|
| G1 | スキルフォルダの異物0件before | 15/25 | ❌ | 異物=['古い作業場の残骸/(SKILL.md無し)'] |
| G2 | 重複スキル0件before | 0/20 | ❌ | 読込対象内の重複=0件/対象外の複製=18件: 配信ツール用スキル@旧コピー置き場 / 配信ツール用スキル@旧コピー置き場 / 配信ツール用スキル@旧コピー置き場 / 配信ツール用スキル@旧コピー置き場… |
| G3 | MCP定義の重複0件before | 8/15 | ❌ | 重複定義=['動画の橋'] |
| G4 | 宣言と実体の一致before | 10/20 | ❌ | CLAUDE.md=1.2.5 vs 実体=1.2.12 |
| G5 | 死んだ自動化0件before | 10/20 | ❌ | 制作基盤フォルダ: CIワークフロー有・remote無(一度も走れない) |
| G1 | スキルフォルダの異物0件after | 25/25 | ✅ | 異物=0件 |
| G2 | 重複スキル0件after | 20/20 | ✅ | 読込対象内の重複=0件/対象外の複製=0件 |
| G3 | MCP定義の重複0件after | 8/15 | ❌ | 重複定義=['動画の橋'] |
| G4 | 宣言と実体の一致after | 10/20 | ❌ | CLAUDE.md=1.2.5 vs 実体=1.2.13 |
| G5 | 死んだ自動化0件after | 10/20 | ❌ | 制作基盤フォルダ: CIワークフロー有・remote無(一度も走れない) |