Skip to content

Maintenance Policy

Local Gates

Use these commands before pushing:

task install
task pre-push
task ci

task pre-push runs metadata sync checks, format checks, Ruff, mypy, unit tests, workflow YAML parsing, and actionlint. task ci adds the full test suite with the coverage threshold unchanged at 90%, enforced security checks, workflow security checks, and package build verification.

task security:local is stricter about workstation tools. It requires Gitleaks, actionlint, and zizmor, and runs OSV Scanner and Trivy when installed. Missing required binaries fail with install guidance instead of silently skipping the scan.

Dependency Updates

Dependabot remains responsible for security updates and regular dependency version PRs using .github/dependabot.yml.

Patch and minor updates for development tooling and GitHub Actions may automerge only after protected checks pass. Runtime dependencies, major updates, and core KiCad/MCP/Pydantic/Typer ecosystem updates require maintainer review.

Security Scans

Required gates are Ruff, mypy, pytest with coverage, Bandit, the pip-audit backed dependency audit, Gitleaks in CI, actionlint, and zizmor workflow checks. The dependency audit may only acknowledge exact package, version, and advisory combinations that have an upstream no-fix or metadata mismatch, and each acknowledgement must be recorded in scripts/audit_dependencies.py with authoritative source URLs.

OSV Scanner, Trivy filesystem scans, Scorecard, CodeQL, Hadolint, and authenticated external supply-chain scans are recommended scheduled or release-time checks.

Release Ownership

release-please is the changelog and release PR source of truth. Registry publishing is restricted to protected release workflows after tests, security checks, build, SBOM, checksums, and artifact attestation complete.