This repository uses PR-based delivery with CI gates to keep main stable under parallel agent development.
- Do not push directly to
main. - Use feature branches and open a PR.
- Keep each PR focused on one objective.
- Fill every section of
.github/pull_request_template.md.
lint(Ruff syntax/parser safety set)build(Python compile check)
These checks are designed to be fast and low-friction first. We will tighten them in later phases.
- CI job:
smoke-tests - Current mode: non-blocking (
continue-on-error), used as signal collection before becoming required. - Scope:
tests/smoke/only, deterministic checks with no external model calls.
- CI job:
risk-matrix - Current scope:
tests/unit/test_a2a.py(auth gate path)tests/unit/test_transport_channel.py(concurrency/backpressure path)tests/unit/test_execution_control.py(execution control and risk path)
- CI job:
test-skip-guard - Any newly added
skip/skipif/xfail/onlymarker in changed Python lines fails this check. - If a temporary skip is unavoidable, document why in PR risk section and get explicit review.
- CI job:
lockfile-policy - If lockfiles change (
poetry.lock,Pipfile.lock,uv.lock,requirements.lock,package-lock.json,pnpm-lock.yaml,yarn.lock), the dependency manifest must also change in the same PR (requirements.txt,pyproject.toml, orpackage.json).
python -m pip install -r requirements.txt
ruff check dare_framework tests --select E9,F63,F7
python -m compileall -q dare_framework tests
pytest -q tests/smoke -m smoke
./scripts/ci/run_risk_matrix.sh
./scripts/ci/check_test_skip_markers.sh
./scripts/ci/check_lockfile_policy.shRead and follow docs/agent_rules.md before opening a PR.
Team collaboration playbook: docs/guides/Team_Agent_Collab_Playbook.md.
GitHub access troubleshooting: docs/guides/GitHub_Access_Troubleshooting.md.
For GitHub branch protection and merge queue settings, follow docs/governance/branch-protection.md.
- Workflow:
.github/workflows/main-guard.yml - Trigger: every
pushtomain - Behavior:
- Detect commits on
mainwithout PR association metadata - Open an incident issue automatically
- In
revert-prmode, open an automatic rollback PR for unlinked commits - Mark the run as failed for clear red-signal audit trail
- Detect commits on
MAIN_GUARD_MODE:revert-pr(default) oralert-onlyMAIN_GUARD_ALLOW_ACTORS: comma-separated actor allowlist for emergency/bot bypassMAIN_GUARD_ALLOW_MARKER: commit marker to bypass incident (default[main-guard:allow-direct-push])
Use bypass only for emergency hotfixes and always attach a postmortem note in follow-up PR/issue.
- Workflow:
.github/workflows/manual-merge-guard.yml - Trigger: every merged PR close event on
main(pull_request_target: closed) - Policy:
- merged PR must have at least one independent
APPROVEDreview - self-merge (
author == merged_by) is treated as non-compliant by default - non-compliant merge triggers incident issue + optional rollback PR
- merged PR must have at least one independent
MANUAL_MERGE_GUARD_MODE:revert-pr(default) oralert-onlyMANUAL_MERGE_GUARD_ALLOW_MERGERS: comma-separated emergency allowlist for mergers
This is a free-tier fallback when GitHub branch protection/rulesets are not available on private repositories.