diff --git a/validate/check_repo_health.php b/validate/check_repo_health.php index c2e301b..a533b7f 100755 --- a/validate/check_repo_health.php +++ b/validate/check_repo_health.php @@ -13,7 +13,7 @@ * BRIEF: Repository health checker — validates against current Moko standards (wiki-first, no docs/) * * Categories (135 total points): - * Required Files (40) — README, LICENSE, CHANGELOG, CONTRIBUTING, SECURITY, profile.ps1, .mcp.json, .gitignore + * Required Files (40) — README, LICENSE, CHANGELOG, CONTRIBUTING, SECURITY, CLAUDE.md, .gitignore, Makefile * Manifest & Config (15) — .moko-platform, workflows dir, README content, CODE_OF_CONDUCT * Documentation (10) — wiki-first: docs/ must NOT exist * Disallowed (10) — TODO.md, vendor/, node_modules/ @@ -104,11 +104,22 @@ class RepoHealthChecker extends CliFramework foreach ([ 'README.md' => 8, 'LICENSE' => 8, 'CHANGELOG.md' => 5, - 'CONTRIBUTING.md' => 5, 'SECURITY.md' => 5, - 'profile.ps1' => 4, '.mcp.json' => 3, '.gitignore' => 2, + 'CONTRIBUTING.md' => 4, 'SECURITY.md' => 4, + 'CLAUDE.md' => 5, '.gitignore' => 3, + 'Makefile' => 3, ] as $file => $pts) { $this->addCheck($cat, "{$file} exists", file_exists("{$p}/{$file}"), $pts); } + + // Negative checks — files that should NOT be committed + foreach (['.mcp.json', 'TODO.md', 'renovate.json'] as $bad) { + if (file_exists("{$p}/{$bad}")) { + $this->addCheck($cat, "{$bad} should not be committed", false, 0); + } + } + if (is_dir("{$p}/.claude")) { + $this->addCheck($cat, '.claude/ should not be committed', false, 0); + } } // ── Manifest & Config (15 pts) ───────────────────────────────────