{ "required_docs": [ { "path": "README.md", "description": "Top-level repository handbook." }, { "path": "Jenkinsfile", "description": "Top-level Jenkins mirror for multibranch discovery." }, { "path": "ci/Jenkinsfile.titan-iac", "description": "Canonical titan-iac Jenkins pipeline definition." } ], "managed_modules": [ "scripts/ops/hermes_handoff_acceptance.py", "scripts/ops/hermes_handoff_catalog.py", "scripts/ops/hermes_handoff_checks_access.py", "scripts/ops/hermes_handoff_checks_delivery.py", "scripts/ops/hermes_handoff_checks_platform.py", "scripts/ops/hermes_handoff_checks_workers.py", "scripts/ops/hermes_handoff_ephemeral.py", "scripts/ops/hermes_handoff_evaluators.py", "scripts/ops/hermes_handoff_exec.py", "scripts/ops/hermes_handoff_json_rules.py", "scripts/ops/hermes_handoff_model.py", "scripts/ops/hermes_handoff_policy.py", "scripts/ops/hermes_handoff_redaction.py", "scripts/ops/hermes_handoff_rules.py", "scripts/ops/hermes_handoff_run.py", "ci/scripts/publish_test_metrics.py", "ci/scripts/publish_test_metrics_quality.py", "ci/scripts/semgrep_report.py", "ci/scripts/supply_chain_report.py", "services/mailu/scripts/mailu_sync.py", "services/mailu/scripts/mailu_sync_listener.py", "testing/__init__.py", "testing/quality_contract.py", "testing/quality_docs.py", "testing/quality_hygiene.py", "testing/quality_coverage.py", "testing/quality_handoff_mutation.py", "testing/quality_gate.py", "ci/tests/glue/test_ariadne_schedules.py", "ci/tests/glue/test_glue_metrics.py", "testing/tests/test_publish_test_metrics.py", "testing/tests/test_supply_chain_report.py", "testing/tests/test_semgrep_report.py", "testing/tests/test_quality_contract.py", "testing/tests/test_quality_gate.py" ], "lint_paths": [ "scripts/ops/hermes_handoff_acceptance.py", "scripts/ops/hermes_handoff_catalog.py", "scripts/ops/hermes_handoff_checks_access.py", "scripts/ops/hermes_handoff_checks_delivery.py", "scripts/ops/hermes_handoff_checks_platform.py", "scripts/ops/hermes_handoff_checks_workers.py", "scripts/ops/hermes_handoff_ephemeral.py", "scripts/ops/hermes_handoff_evaluators.py", "scripts/ops/hermes_handoff_exec.py", "scripts/ops/hermes_handoff_json_rules.py", "scripts/ops/hermes_handoff_model.py", "scripts/ops/hermes_handoff_policy.py", "scripts/ops/hermes_handoff_redaction.py", "scripts/ops/hermes_handoff_rules.py", "scripts/ops/hermes_handoff_run.py", "ci/scripts/publish_test_metrics.py", "ci/scripts/publish_test_metrics_quality.py", "ci/scripts/semgrep_report.py", "ci/tests/glue", "scripts/tests", "services/comms/scripts/tests", "services/mailu/scripts/mailu_sync.py", "services/mailu/scripts/mailu_sync_listener.py", "testing/tests", "testing" ], "pytest_suites": { "unit": { "description": "Fast unit and contract tests for repo automation.", "paths": [ "scripts/tests", "services/comms/scripts/tests", "testing/tests" ], "junit": "build/junit-unit.xml", "coverage_sources": [ "ci/scripts", "scripts/ops", "scripts.render.dashboards_render_atlas", "services/mailu/scripts", "testing" ], "coverage_xml": "build/coverage-unit.xml" }, "glue": { "description": "Cluster-live glue checks that validate CronJobs and exported metrics.", "paths": [ "ci/tests/glue" ], "junit": "build/junit-glue.xml" } }, "profiles": { "local": [ "docs", "smell", "hygiene", "unit", "coverage" ], "jenkins": [ "docs", "smell", "hygiene", "unit", "coverage", "sonarqube", "ironbank", "glue" ] }, "manual_scripts": [ { "path": "scripts/manual-tests/test_atlas_user_cleanup.py", "description": "Manual cleanup validation for Atlas user lifecycle automation." }, { "path": "scripts/manual-tests/test_user_cleanup.py", "description": "Manual cleanup validation for shared user lifecycle automation." }, { "path": "scripts/manual-tests/test_vaultwarden_user_cleanup.py", "description": "Manual cleanup validation for Vaultwarden user lifecycle automation." }, { "path": "services/bstein-dev-home/scripts/test_portal_onboarding_flow.py", "description": "Portal onboarding end-to-end flow validation with mail delivery checks." }, { "path": "services/keycloak/scripts/tests/test_keycloak_execute_actions_email.py", "description": "Standalone Keycloak SMTP execute-actions-email validation script." }, { "path": "services/keycloak/scripts/tests/test_portal_token_exchange.py", "description": "Standalone Keycloak token-exchange validation script." } ], "hygiene": { "max_lines": 500, "legacy_line_exceptions": { "scripts/tests/test_dashboards_render_atlas.py": { "lines": 516, "sha256": "afe4923391b157d03bcf0899208f77eeab79a2762da3575a365530b3074c5f25" }, "testing/tests/test_hermes_chat_quality.py": { "lines": 2242, "sha256": "71e9cafd14460b5132d07dd951514756d091009c23db7703db1575b05e34e75f" }, "testing/tests/test_hermes_cli_lanes.py": { "lines": 1971, "sha256": "992bf3788c33252e37a695f5307c31b1e8c0646e00a715e3e55f6901788abb62" }, "testing/tests/test_hermes_coordinator.py": { "lines": 510, "sha256": "290240cf391abc755eaa0abb12d247ad1718e7c9295a2092f349a7eaba4bfe55" } }, "line_limit_globs": [ "scripts/ops/hermes_handoff_*.py", "testing/**/*.py", "ci/scripts/*.py", "ci/tests/**/*.py", "scripts/tests/**/*.py", "services/*/scripts/tests/**/*.py", "services/mailu/scripts/mailu_sync.py", "services/mailu/scripts/mailu_sync_listener.py" ], "naming_rules": [ { "glob": "testing/*.py", "pattern": "^(?:__init__|quality_[a-z0-9_]+)\\.py$", "description": "Top-level testing helpers use quality_* module names." }, { "glob": "testing/tests/*.py", "pattern": "^test_[a-z0-9_]+\\.py$", "description": "Top-level pytest files use test_*.py names." }, { "glob": "ci/tests/**/*.py", "pattern": "^test_[a-z0-9_]+\\.py$", "description": "CI pytest files use test_*.py names." }, { "glob": "scripts/tests/**/*.py", "pattern": "^test_[a-z0-9_]+\\.py$", "description": "Script pytest files use test_*.py names." }, { "glob": "scripts/test_*.py", "pattern": "^test_[a-z0-9_]+\\.py$", "description": "Standalone script tests use test_*.py names." }, { "glob": "services/*/scripts/tests/**/*.py", "pattern": "^test_[a-z0-9_]+\\.py$", "description": "Service pytest files use test_*.py names." }, { "glob": "services/*/scripts/test_*.py", "pattern": "^test_[a-z0-9_]+\\.py$", "description": "Standalone service test scripts use test_*.py names." } ] }, "coverage": { "minimum_percent": 95.0, "minimum_branch_percent": 95.0, "branch_tracked_files": [ "scripts/ops/hermes_handoff_acceptance.py", "scripts/ops/hermes_handoff_catalog.py", "scripts/ops/hermes_handoff_checks_access.py", "scripts/ops/hermes_handoff_checks_delivery.py", "scripts/ops/hermes_handoff_checks_platform.py", "scripts/ops/hermes_handoff_checks_workers.py", "scripts/ops/hermes_handoff_ephemeral.py", "scripts/ops/hermes_handoff_evaluators.py", "scripts/ops/hermes_handoff_exec.py", "scripts/ops/hermes_handoff_json_rules.py", "scripts/ops/hermes_handoff_model.py", "scripts/ops/hermes_handoff_policy.py", "scripts/ops/hermes_handoff_redaction.py", "scripts/ops/hermes_handoff_rules.py", "scripts/ops/hermes_handoff_run.py", "ci/scripts/semgrep_report.py", "testing/quality_coverage.py", "testing/quality_handoff_mutation.py", "testing/quality_hygiene.py" ], "tracked_files": [ "scripts/ops/hermes_handoff_acceptance.py", "scripts/ops/hermes_handoff_catalog.py", "scripts/ops/hermes_handoff_checks_access.py", "scripts/ops/hermes_handoff_checks_delivery.py", "scripts/ops/hermes_handoff_checks_platform.py", "scripts/ops/hermes_handoff_checks_workers.py", "scripts/ops/hermes_handoff_ephemeral.py", "scripts/ops/hermes_handoff_evaluators.py", "scripts/ops/hermes_handoff_exec.py", "scripts/ops/hermes_handoff_json_rules.py", "scripts/ops/hermes_handoff_model.py", "scripts/ops/hermes_handoff_policy.py", "scripts/ops/hermes_handoff_redaction.py", "scripts/ops/hermes_handoff_rules.py", "scripts/ops/hermes_handoff_run.py", "ci/scripts/publish_test_metrics.py", "ci/scripts/publish_test_metrics_quality.py", "ci/scripts/semgrep_report.py", "ci/scripts/supply_chain_report.py", "services/mailu/scripts/mailu_sync.py", "services/mailu/scripts/mailu_sync_listener.py", "testing/quality_contract.py", "testing/quality_docs.py", "testing/quality_hygiene.py", "testing/quality_coverage.py", "testing/quality_handoff_mutation.py", "testing/quality_gate.py" ] } }