The distributed worker pool stacks on exactly two open pull requests, in this order: PR 14 supplies the broker-only SCM boundary the mediators route through and the hermes-scm-boundary-v2 ConfigMap they mount, and PR 15 supplies the cli_lane_* decomposition -- including canonical_run_id and the eligibility predicate on claim_ready -- that the coordinator depends on. Neither can be dropped without breaking a fixed P0 boundary, so both are carried here as prerequisites and this branch must not merge before them. PR 16 (agent image release lane) and PR 19 (full-handoff acceptance harness) are NOT prerequisites and are deliberately absent, so reviewing this branch no longer means approving them. PR 14 and PR 15 conflict with each other in nine paths. Each is resolved to the resolution already reviewed on this branch at 4d4cf1bd.
340 lines
14 KiB
JSON
340 lines
14 KiB
JSON
{
|
|
"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": [
|
|
"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",
|
|
"services/gitea/scripts/gitea_branch_protection_check.py",
|
|
"services/hermes/scm-common/scripts/gitea_api.py",
|
|
"services/hermes/scm-common/scripts/gitea_api_policy.py",
|
|
"services/hermes/scm-common/scripts/scm_broker.py",
|
|
"services/hermes/scm-common/scripts/scm_broker_client.py",
|
|
"services/hermes/scm-common/scripts/scm_broker_io.py",
|
|
"services/hermes/scm-common/scripts/scm_broker_server.py",
|
|
"services/hermes/scripts/execution_pool_client.py",
|
|
"services/hermes/scripts/execution_pool_coordinator.py",
|
|
"services/hermes/scripts/execution_pool_project.py",
|
|
"services/hermes/scripts/execution_pool_protocol.py",
|
|
"services/hermes/scripts/execution_pool_scm.py",
|
|
"services/hermes/scripts/execution_pool_server.py",
|
|
"services/hermes/scripts/execution_pool_worker.py",
|
|
"services/hermes/scripts/hermes_coordinator.py",
|
|
"services/hermes/scripts/node_account_audit.py",
|
|
"services/hermes/scripts/node_account_hardening.py",
|
|
"services/hermes/scripts/node_account_io.py",
|
|
"services/hermes/scripts/stage_runtime_access.py",
|
|
"services/hermes/scripts/cli_lane_board.py",
|
|
"services/hermes/scripts/cli_lane_capabilities.py",
|
|
"services/hermes/scripts/cli_lane_config.py",
|
|
"services/hermes/scripts/cli_lane_dispatch.py",
|
|
"services/hermes/scripts/cli_lane_evidence.py",
|
|
"services/hermes/scripts/cli_lane_execution.py",
|
|
"services/hermes/scripts/cli_lane_files.py",
|
|
"services/hermes/scripts/cli_lane_finalization.py",
|
|
"services/hermes/scripts/cli_lane_goal.py",
|
|
"services/hermes/scripts/cli_lane_prompt.py",
|
|
"services/hermes/scripts/cli_lane_provider.py",
|
|
"services/hermes/scripts/cli_lane_quarantine.py",
|
|
"services/hermes/scripts/cli_lane_records.py",
|
|
"services/hermes/scripts/cli_lane_recovery.py",
|
|
"services/hermes/scripts/cli_lane_retention.py",
|
|
"services/hermes/scripts/cli_lane_routing.py",
|
|
"services/hermes/scripts/cli_lane_runner.py",
|
|
"testing/__init__.py",
|
|
"testing/quality_contract.py",
|
|
"testing/quality_docs.py",
|
|
"testing/quality_hygiene.py",
|
|
"testing/quality_coverage.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": [
|
|
"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",
|
|
"services/gitea/scripts/gitea_branch_protection_check.py",
|
|
"services/hermes/scm-common/scripts",
|
|
"services/hermes/scripts/execution_pool_client.py",
|
|
"services/hermes/scripts/execution_pool_coordinator.py",
|
|
"services/hermes/scripts/execution_pool_project.py",
|
|
"services/hermes/scripts/execution_pool_protocol.py",
|
|
"services/hermes/scripts/execution_pool_scm.py",
|
|
"services/hermes/scripts/execution_pool_server.py",
|
|
"services/hermes/scripts/execution_pool_worker.py",
|
|
"services/hermes/scripts/hermes_coordinator.py",
|
|
"services/hermes/scripts/node_account_audit.py",
|
|
"services/hermes/scripts/node_account_hardening.py",
|
|
"services/hermes/scripts/node_account_io.py",
|
|
"services/hermes/scripts/stage_runtime_access.py",
|
|
"services/hermes/scripts/cli_lane_board.py",
|
|
"services/hermes/scripts/cli_lane_capabilities.py",
|
|
"services/hermes/scripts/cli_lane_config.py",
|
|
"services/hermes/scripts/cli_lane_dispatch.py",
|
|
"services/hermes/scripts/cli_lane_evidence.py",
|
|
"services/hermes/scripts/cli_lane_execution.py",
|
|
"services/hermes/scripts/cli_lane_files.py",
|
|
"services/hermes/scripts/cli_lane_finalization.py",
|
|
"services/hermes/scripts/cli_lane_goal.py",
|
|
"services/hermes/scripts/cli_lane_prompt.py",
|
|
"services/hermes/scripts/cli_lane_provider.py",
|
|
"services/hermes/scripts/cli_lane_quarantine.py",
|
|
"services/hermes/scripts/cli_lane_records.py",
|
|
"services/hermes/scripts/cli_lane_recovery.py",
|
|
"services/hermes/scripts/cli_lane_retention.py",
|
|
"services/hermes/scripts/cli_lane_routing.py",
|
|
"services/hermes/scripts/cli_lane_runner.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.render.dashboards_render_atlas",
|
|
"services/gitea/scripts",
|
|
"services/hermes/scm-common/scripts",
|
|
"services/hermes/scripts",
|
|
"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,
|
|
"line_limit_globs": [
|
|
"testing/**/*.py",
|
|
"ci/scripts/*.py",
|
|
"ci/tests/**/*.py",
|
|
"scripts/tests/**/*.py",
|
|
"services/*/scripts/tests/**/*.py",
|
|
"services/gitea/scripts/gitea_branch_protection_check.py",
|
|
"services/hermes/scm-common/scripts/*.py",
|
|
"services/hermes/scripts/execution_pool_*.py",
|
|
"services/hermes/scripts/hermes_coordinator.py",
|
|
"services/hermes/scripts/node_account_audit.py",
|
|
"services/hermes/scripts/node_account_hardening.py",
|
|
"services/hermes/scripts/node_account_io.py",
|
|
"services/hermes/scripts/stage_runtime_access.py",
|
|
"services/hermes/scripts/cli_lane_*.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": [
|
|
"services/gitea/scripts/gitea_branch_protection_check.py",
|
|
"services/hermes/scm-common/scripts/gitea_api.py",
|
|
"services/hermes/scm-common/scripts/gitea_api_policy.py",
|
|
"services/hermes/scm-common/scripts/scm_broker.py",
|
|
"services/hermes/scm-common/scripts/scm_broker_client.py",
|
|
"services/hermes/scm-common/scripts/scm_broker_io.py",
|
|
"services/hermes/scm-common/scripts/scm_broker_server.py",
|
|
"services/hermes/scripts/hermes_coordinator.py",
|
|
"services/hermes/scripts/node_account_audit.py",
|
|
"services/hermes/scripts/node_account_hardening.py",
|
|
"services/hermes/scripts/node_account_io.py",
|
|
"services/hermes/scripts/stage_runtime_access.py",
|
|
"services/hermes/scripts/execution_pool_client.py",
|
|
"services/hermes/scripts/execution_pool_coordinator.py",
|
|
"services/hermes/scripts/execution_pool_project.py",
|
|
"services/hermes/scripts/execution_pool_protocol.py",
|
|
"services/hermes/scripts/execution_pool_scm.py",
|
|
"services/hermes/scripts/execution_pool_server.py",
|
|
"services/hermes/scripts/execution_pool_worker.py",
|
|
"services/hermes/scripts/cli_lane_board.py",
|
|
"services/hermes/scripts/cli_lane_capabilities.py",
|
|
"services/hermes/scripts/cli_lane_config.py",
|
|
"services/hermes/scripts/cli_lane_dispatch.py",
|
|
"services/hermes/scripts/cli_lane_evidence.py",
|
|
"services/hermes/scripts/cli_lane_execution.py",
|
|
"services/hermes/scripts/cli_lane_files.py",
|
|
"services/hermes/scripts/cli_lane_finalization.py",
|
|
"services/hermes/scripts/cli_lane_goal.py",
|
|
"services/hermes/scripts/cli_lane_prompt.py",
|
|
"services/hermes/scripts/cli_lane_provider.py",
|
|
"services/hermes/scripts/cli_lane_quarantine.py",
|
|
"services/hermes/scripts/cli_lane_records.py",
|
|
"services/hermes/scripts/cli_lane_recovery.py",
|
|
"services/hermes/scripts/cli_lane_retention.py",
|
|
"services/hermes/scripts/cli_lane_routing.py",
|
|
"services/hermes/scripts/cli_lane_runner.py",
|
|
"testing/quality_coverage.py"
|
|
],
|
|
"tracked_files": [
|
|
"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",
|
|
"services/gitea/scripts/gitea_branch_protection_check.py",
|
|
"services/hermes/scm-common/scripts/gitea_api.py",
|
|
"services/hermes/scm-common/scripts/gitea_api_policy.py",
|
|
"services/hermes/scm-common/scripts/scm_broker.py",
|
|
"services/hermes/scm-common/scripts/scm_broker_client.py",
|
|
"services/hermes/scm-common/scripts/scm_broker_io.py",
|
|
"services/hermes/scm-common/scripts/scm_broker_server.py",
|
|
"services/hermes/scripts/execution_pool_client.py",
|
|
"services/hermes/scripts/execution_pool_coordinator.py",
|
|
"services/hermes/scripts/execution_pool_project.py",
|
|
"services/hermes/scripts/execution_pool_protocol.py",
|
|
"services/hermes/scripts/execution_pool_scm.py",
|
|
"services/hermes/scripts/execution_pool_server.py",
|
|
"services/hermes/scripts/execution_pool_worker.py",
|
|
"services/hermes/scripts/hermes_coordinator.py",
|
|
"services/hermes/scripts/node_account_audit.py",
|
|
"services/hermes/scripts/node_account_hardening.py",
|
|
"services/hermes/scripts/node_account_io.py",
|
|
"services/hermes/scripts/stage_runtime_access.py",
|
|
"services/hermes/scripts/cli_lane_board.py",
|
|
"services/hermes/scripts/cli_lane_capabilities.py",
|
|
"services/hermes/scripts/cli_lane_config.py",
|
|
"services/hermes/scripts/cli_lane_dispatch.py",
|
|
"services/hermes/scripts/cli_lane_evidence.py",
|
|
"services/hermes/scripts/cli_lane_execution.py",
|
|
"services/hermes/scripts/cli_lane_files.py",
|
|
"services/hermes/scripts/cli_lane_finalization.py",
|
|
"services/hermes/scripts/cli_lane_goal.py",
|
|
"services/hermes/scripts/cli_lane_prompt.py",
|
|
"services/hermes/scripts/cli_lane_provider.py",
|
|
"services/hermes/scripts/cli_lane_quarantine.py",
|
|
"services/hermes/scripts/cli_lane_records.py",
|
|
"services/hermes/scripts/cli_lane_recovery.py",
|
|
"services/hermes/scripts/cli_lane_retention.py",
|
|
"services/hermes/scripts/cli_lane_routing.py",
|
|
"services/hermes/scripts/cli_lane_runner.py",
|
|
"testing/quality_contract.py",
|
|
"testing/quality_docs.py",
|
|
"testing/quality_hygiene.py",
|
|
"testing/quality_coverage.py",
|
|
"testing/quality_gate.py"
|
|
]
|
|
}
|
|
}
|