{ "version": 1, "paths": { "include_extensions": [ ".CBL", ".COB", ".CPY", ".F", ".F03", ".F08", ".F90", ".F95", ".FOR", ".FTN", ".bash", ".c", ".cbl", ".cc", ".cjs", ".cob", ".cpp", ".cpy", ".cs", ".css", ".cxx", ".f", ".f03", ".f08", ".f90", ".f95", ".for", ".ftn", ".gemspec", ".go", ".h", ".hh", ".hpp", ".html", ".java", ".js", ".jsx", ".kt", ".kts", ".md", ".mjs", ".pf", ".php", ".phtml", ".py", ".rake", ".rb", ".rs", ".sh", ".swift", ".ts", ".tsx", ".zsh" ], "exclude_patterns": [ ".git/", "node_modules/", ".venv/", "venv/", "dist/", "build/", "coverage/", "__pycache__/", ".pytest_cache/", "migrations/", "_backups/", "assets/fonts/files/" ] }, "thresholds": { "max_file_lines": 800, "warn_file_lines": 400, "max_function_lines": 80, "warn_function_lines": 50, "max_class_lines": 300, "warn_class_lines": 200, "max_complexity": 15, "warn_complexity": 10, "max_cognitive_complexity": 25, "warn_cognitive_complexity": 15, "max_duplicate_blocks": 20, "duplicate_block_lines": 8 }, "hard_gates": { "require_test_command": false, "require_readme": true, "require_clean_worktree": false }, "expected_files": [ "README.md" ], "expected_commands": { "test": [], "lint": [] }, "instruction_pack": { "project_name": "this repository", "strictness": "high", "test_policy": "tests for meaningful behavior changes", "architecture_notes": [ "Prefer existing architecture, naming, and local helper APIs.", "Keep AI-assisted changes small, bounded, and reviewable.", "Do not introduce broad abstractions just to satisfy a metric." ] }, "risk_patterns": [ { "name": "public guarantee language", "pattern": "\\b(we guarantee|guaranteed to (?:never|always|work|be)|100% (?:uptime|secure|accurate|reliable)|zero downtime|no exceptions apply)\\b", "extensions": [ ".html", ".md" ] }, { "name": "unsafe html injection", "pattern": "\\.innerHTML\\s*=", "extensions": [ ".js", ".jsx", ".mjs", ".cjs", ".ts", ".tsx", ".html" ] }, { "name": "embedded secret wording", "pattern": "(?i)\\b(api[_-]?key|secret|private[_-]?key|password)\\b\\s*[:=]\\s*['\"][^'\"\\s]{8,}['\"]", "extensions": [ ".py", ".js", ".jsx", ".mjs", ".cjs", ".ts", ".tsx", ".html", ".md" ] } ] }