From economist-agents
Multi-layer quality gate strategy for automated checks at commit, push, and PR levels. Use when configuring pre-commit hooks, when setting up CI workflows, when debugging why a commit or push was blocked.
npx claudepluginhub oviney/economist-agentsThis skill uses the workspace's default tool permissions.
Four-layer quality gate architecture that prevents defects from reaching production: pre-commit hooks (local), pre-push coverage (local), GitHub Actions CI (remote), and branch protection (policy).
Applies Acme Corporation brand guidelines including colors, fonts, layouts, and messaging to generated PowerPoint, Excel, and PDF documents.
Guides strict Test-Driven Development (TDD): write failing tests first for features, bugfixes, refactors before any production code. Enforces red-green-refactor cycle.
Share bugs, ideas, or general feedback.
Four-layer quality gate architecture that prevents defects from reaching production: pre-commit hooks (local), pre-push coverage (local), GitHub Actions CI (remote), and branch protection (policy).
python-qualitytestingarticle-evaluationLayer 1: Pre-commit (blocks commit)
ruff format → ruff check → badge validation → arch review → YAML/JSON checks
↓
Layer 2: Pre-push (blocks push)
pytest with coverage (>80% required)
↓
Layer 3: GitHub Actions CI (blocks merge)
Quality checks + tests (Python 3.11, 3.12) + security scan (bandit)
↓
Layer 4: Branch Protection (enforces policy)
Require PR approval + CI pass + branch up-to-date
Configured in .pre-commit-config.yaml. Runs on every git commit.
| Hook | Purpose | Auto-fix? |
|---|---|---|
ruff-format | Code formatting | Yes |
ruff | Linting | No (check only) |
badge-validation | README badge accuracy | No |
adr-lint | ADR numbering/status rules | No |
validate-agent-yaml | Agent YAML schema | No |
arch-review | Architectural anti-patterns | No |
check-yaml | YAML validity | No |
check-json | JSON validity | No |
check-added-large-files | Prevent >1MB files | No |
check-merge-conflict | Conflict markers | No |
Installation:
pre-commit install --install-hooks
pre-commit install --hook-type pre-push
Runs pytest with coverage on git push. Currently in [manual] stage while coverage is built up (51% -> 80% target).
Configured in .github/workflows/quality-tests.yml. Runs on PRs to main.
GitHub settings on main:
git commit --no-verify -m "Emergency fix"
git push --no-verify
Only when: critical production bug, broken hooks, or infinite-loop hook bug. Always create follow-up PR to fix violations.
| Rationalization | Reality |
|---|---|
| "Pre-commit hooks slow me down" | They catch 96% of defects locally; CI catches the same issues 5 minutes later with a longer feedback loop |
| "We can skip coverage for now" | Coverage ratchets up over time; skipping lets it decay permanently |
| "Branch protection is too strict" | One bad merge to main breaks CI for everyone; protection is cheaper than recovery |
| "--no-verify is fine for this one commit" | Every bypass should be followed by a fix PR; if it's not, you've created tech debt |
| "We don't need security scanning" | Bandit catches hardcoded secrets and injection patterns that code review misses |
pre-commit install)--no-verify used without a follow-up fix PR.git/hooks/pre-commit exists and runspre-commit run --all-files — evidence: zero failures--no-verify commits without follow-up fix — evidence: git log auditpytest --cov output