
test-enforcement
by doanchienthangdev
Omega Vibecode Kit
SKILL.md
name: Test Enforcement description: The agent enforces mandatory test completion before any task or feature can be marked as done, ensuring code quality through strict validation gates and evidence-based completion criteria. category: methodology related_skills:
- methodology/test-task-generation
- methodology/verification-before-completion
- testing/comprehensive-testing
- devops/workflow-config related_commands:
- /quality:verify-done
- /quality:coverage-check
- /dev:feature-tested
- /dev:feature
- /dev:fix
- /dev:fix-hard
- /sprint:team-run
Test Enforcement
Overview
This skill defines the enforcement rules and mechanisms that ensure tests are written, executed, and passing before any implementation work can be considered complete. It provides a framework for blocking premature completion and requiring evidence of test coverage.
Core Principle
No code is "done" without tests.
Definition of Done:
├── Code implemented ✓
├── Tests written ✓
├── Tests passing ✓
├── Coverage met ✓
├── Review approved ✓
└── THEN → Done
Enforcement Levels
Level 1: Soft Enforcement (Warning)
- Warn when completing without tests
- Allow override with justification
- Log for retrospective
Level 2: Standard Enforcement (Default)
- Block completion without tests
- Require minimum coverage
- Allow emergency override with approval
Level 3: Strict Enforcement (Critical Systems)
- Block all completion without full test suite
- Require coverage above target
- No overrides allowed
Configuration
Via workflow.yaml
# .omgkit/workflow.yaml
testing:
enabled: true
enforcement:
level: standard # soft | standard | strict
requirements:
unit_tests: required
integration_tests: required
e2e_tests: optional
security_tests: conditional # Required for auth features
coverage_gates:
unit:
minimum: 80
target: 90
block_below: 70
integration:
minimum: 60
target: 75
block_below: 50
overall:
minimum: 75
target: 85
blocking:
on_test_failure: true
on_coverage_below_minimum: true
on_missing_test_types: true
overrides:
allow_emergency: true
require_approval: true
log_all_overrides: true
Via CLI
# Set enforcement level
omgkit config set testing.enforcement.level strict
# View current configuration
omgkit config get testing.enforcement.level
# List all testing config
omgkit config list testing
Via Command Options
Commands support per-invocation overrides:
| Option | Description | Example |
|---|---|---|
--no-test | Skip test enforcement | /dev:fix "typo" --no-test |
--with-test | Force test enforcement | /dev:fix-fast "bug" --with-test |
--test-level <level> | Override enforcement level | /dev:feature "auth" --test-level strict |
--coverage <percent> | Override coverage minimum | /dev:feature "api" --coverage 95 |
Note: --no-test requires soft enforcement level or explicit config override.
Pre-Completion Checklist
Mandatory Checks (Cannot Override)
## Blocking Criteria
- [ ] **Tests Exist**: At least one test file for changed code
- [ ] **Tests Execute**: All tests run without errors
- [ ] **Tests Pass**: Zero failing tests
- [ ] **No Skipped Critical**: No skipped tests for critical paths
Standard Checks (Override with Approval)
## Standard Criteria
- [ ] **Unit Coverage**: ≥80% line coverage
- [ ] **Branch Coverage**: ≥70% branch coverage
- [ ] **Integration Tests**: Present for API/DB changes
- [ ] **No Flaky Tests**: Tests deterministic
- [ ] **Test Isolation**: No test interdependencies
Quality Checks (Override with Justification)
## Quality Criteria
- [ ] **Mutation Score**: ≥60% mutations killed
- [ ] **Performance Tests**: Present for perf-critical code
- [ ] **Security Tests**: Present for auth/input handling
- [ ] **E2E Tests**: Present for user-facing features
Enforcement Workflow
1. Task Completion Attempt
Developer: "Mark TASK-042 as done"
System Check:
├── Has tests? → Yes
├── Tests passing? → Yes
├── Coverage ≥ 80%? → 75% (FAIL)
└── Block completion
Response: "Cannot mark as done. Coverage is 75%, minimum is 80%.
Add tests for uncovered lines: src/handlers/user.ts:45-52"
2. Override Request
Developer: "Override coverage requirement"
System Check:
├── Enforcement level? → Standard
├── Override allowed? → Yes, with approval
├── Approval required? → Yes
└── Request approval
Response: "Override requested. Waiting for approval from:
- Tech Lead
- QA Lead
Justification required."
3. Emergency Override
Developer: "Emergency override - production hotfix"
System Check:
├── Emergency flag? → Yes
├── Emergency override allowed? → Yes
├── Logging? → Enabled
└── Grant temporary override
Response: "Emergency override granted.
⚠️ This is logged and will be reviewed.
⚠️ Tests must be added within 24 hours.
⚠️ Follow-up task created: TASK-043 Add tests for hotfix"
Evidence Requirements
Test Execution Evidence
## Required Evidence
### Test Report
- Total tests: 42
- Passed: 42
- Failed: 0
- Skipped: 0
- Duration: 3.2s
### Coverage Report
| File | Lines | Branches | Functions |
|------|-------|----------|-----------|
| user.ts | 92% | 85% | 100% |
| auth.ts | 88% | 80% | 95% |
| **Total** | **90%** | **82%** | **97%** |
### Attached Artifacts
- [ ] test-report.json
- [ ] coverage/lcov.info
- [ ] screenshots/ (for E2E)
Approval Evidence (for Overrides)
## Override Approval
**Requested by:** developer@team.com
**Approved by:** techlead@team.com
**Reason:** Legacy code refactor - tests will be added in TASK-044
**Follow-up:** TASK-044 due in 3 days
**Logged at:** 2024-01-06T14:30:00Z
Integration Points
1. Todo List Integration
Before enforcement:
- [ ] TASK-042: Implement user endpoint
- [ ] TEST-042: Add tests for user endpoint
After attempting completion without tests:
- [x] TASK-042: Implement user endpoint
- [ ] TEST-042: Add tests for user endpoint ⚠️ BLOCKING
Status: Feature blocked until TEST-042 complete
2. Git Hook Integration
# pre-push hook
#!/bin/bash
echo "Running test enforcement checks..."
# Run tests
npm test
if [ $? -ne 0 ]; then
echo "❌ Tests failing. Push blocked."
exit 1
fi
# Check coverage
coverage=$(npm run coverage:check --silent)
if [ $coverage -lt 80 ]; then
echo "❌ Coverage $coverage% below minimum 80%. Push blocked."
exit 1
fi
echo "✅ Test enforcement passed."
3. PR Integration
# GitHub Actions check
name: Test Enforcement
on: [pull_request]
jobs:
enforce-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Run Tests
run: npm test
- name: Check Coverage
run: |
coverage=$(npm run coverage:json | jq '.total.lines.pct')
if (( $(echo "$coverage < 80" | bc -l) )); then
echo "Coverage $coverage% below minimum"
exit 1
fi
- name: Verify Test Types
run: |
if [ ! -f "tests/unit/*.test.ts" ]; then
echo "Missing unit tests"
exit 1
fi
Enforcement Messages
Blocking Messages
❌ COMPLETION BLOCKED: Tests Required
Your task cannot be marked as done because:
• No test files found for changed code
• Add tests to: tests/unit/user.test.ts
Run: /quality:verify-done for detailed requirements
❌ COMPLETION BLOCKED: Coverage Below Minimum
Your task cannot be marked as done because:
• Current coverage: 72%
• Minimum required: 80%
Uncovered lines:
• src/handlers/user.ts: lines 45-52, 78-82
• src/services/auth.ts: lines 23-25
Run: npm run test:coverage for detailed report
Warning Messages
⚠️ WARNING: Optional Tests Missing
Your task can be completed, but consider adding:
• Performance tests (recommended for API endpoints)
• Security tests (recommended for auth handling)
These tests improve code quality and catch issues early.
Success Messages
✅ TEST ENFORCEMENT PASSED
All requirements met:
• Tests exist: ✓
• Tests passing: ✓ (42/42)
• Coverage: ✓ (92%)
• No skipped: ✓
Task can be marked as done.
Override Procedures
Standard Override
- Request override with justification
- Wait for approval (Tech Lead or QA)
- Document reason in task
- Create follow-up task for tests
- Complete original task
Emergency Override
- Flag as emergency
- System grants temporary override
- Complete task
- Follow-up task auto-created
- Must add tests within SLA (24-48 hours)
Override Audit
All overrides are logged:
{
"task_id": "TASK-042",
"override_type": "coverage",
"requested_by": "developer@team.com",
"approved_by": "techlead@team.com",
"reason": "Legacy code, tests in follow-up",
"follow_up_task": "TASK-043",
"timestamp": "2024-01-06T14:30:00Z",
"enforcement_level": "standard"
}
Metrics and Reporting
Enforcement Metrics
Weekly Report:
├── Tasks completed: 42
├── With tests: 40 (95%)
├── Overrides used: 2 (5%)
│ ├── Emergency: 1
│ └── Approved: 1
├── Average coverage: 87%
└── Test-first tasks: 15 (36%)
Coverage Trends
Coverage Trend (Last 4 Weeks):
Week 1: 78% ████████
Week 2: 82% █████████
Week 3: 85% █████████
Week 4: 87% █████████
Target: 90% ██████████
Best Practices
DO
- Set realistic coverage minimums
- Allow emergency overrides for hotfixes
- Create follow-up tasks for overrides
- Review override patterns in retrospectives
- Celebrate test-first development
DON'T
- Set coverage targets too high initially
- Block all overrides (causes workarounds)
- Skip enforcement for "simple" changes
- Ignore flaky test patterns
- Punish developers for using overrides appropriately
Escalation Path
Coverage below minimum
↓
Request override
↓
Tech Lead approval required
↓
If denied → Add tests
↓
If approved → Create follow-up task
↓
Complete with documented override
Related Documentation
Score
Total Score
Based on repository quality metrics
SKILL.mdファイルが含まれている
ライセンスが設定されている
100文字以上の説明がある
GitHub Stars 100以上
3ヶ月以内に更新がある
10回以上フォークされている
オープンIssueが50未満
プログラミング言語が設定されている
1つ以上のタグが設定されている
Reviews
Reviews coming soon