Agent skill
test-pr
Test pull requests with comprehensive validation and generate structured test results
Install this agent skill to your Project
npx add-skill https://github.com/GetBindu/Bindu/tree/main/.agents/skills/test-pr
SKILL.md
Test PR Skill
Overview
Test a pull request to ensure code quality, functionality, and compatibility before merging.
Inputs
- PR number or URL
- Optional: specific test patterns to run
Safety
- Never modify code in this skill
- Only read and test
- Generate artifacts in
.local/directory - Do not push changes
Execution Contract
- Fetch PR metadata
- Checkout PR branch in isolated worktree
- Install dependencies
- Run test suite
- Run pre-commit hooks
- Generate structured test results
- Output recommendation
Steps
1. Initialize PR Testing
# Get PR metadata
PR_NUMBER=$1
gh pr view $PR_NUMBER --json number,title,author,headRefName,baseRefName > .local/pr-meta.json
# Create isolated worktree
git worktree add .worktrees/pr-$PR_NUMBER origin/main
cd .worktrees/pr-$PR_NUMBER
# Fetch PR branch
git fetch origin pull/$PR_NUMBER/head:pr-$PR_NUMBER
git checkout pr-$PR_NUMBER
2. Install Dependencies
# Install with frozen lockfile
uv sync --frozen
# Verify installation
uv run python -c "import bindu; print(bindu.__version__)"
3. Run Test Suite
# Run all tests with coverage
uv run pytest --cov=bindu --cov-report=json --json-report --json-report-file=.local/test-results.json
# Extract coverage percentage
COVERAGE=$(jq -r '.totals.percent_covered' coverage.json)
echo "Coverage: $COVERAGE%"
4. Run Pre-Commit Hooks
# Run all hooks
uv run pre-commit run --all-files > .local/precommit-results.txt 2>&1
# Check exit code
if [ $? -eq 0 ]; then
echo "✅ All pre-commit hooks passed"
else
echo "❌ Some pre-commit hooks failed"
fi
5. Check for Common Issues
# Check for print statements (should use logger)
grep -r "print(" bindu/ --include="*.py" | grep -v "# noqa" || echo "✅ No print statements"
# Check for TODO comments
grep -r "TODO\|FIXME\|XXX" bindu/ --include="*.py" || echo "✅ No TODO comments"
# Check for hardcoded credentials
uv run detect-secrets scan bindu/ || echo "⚠️ Potential secrets detected"
# Check for type hints
grep -r "def.*->.*:" bindu/ --include="*.py" | wc -l
6. Generate Structured Results
Create .local/test-report.json:
{
"pr_number": 123,
"recommendation": "READY FOR MERGE",
"findings": [
{
"id": "F1",
"severity": "INFO",
"title": "All tests passing",
"area": "tests",
"details": "100% test pass rate with 68% coverage"
}
],
"tests": {
"total": 150,
"passed": 150,
"failed": 0,
"skipped": 0,
"coverage": 68.5,
"result": "pass"
},
"precommit": {
"hooks_passed": 8,
"hooks_failed": 0,
"result": "pass"
},
"quality": {
"print_statements": 0,
"todo_comments": 2,
"type_coverage": 85
}
}
7. Output Recommendation
Based on findings:
- READY FOR MERGE: All tests pass, hooks pass, no blockers
- NEEDS WORK: Tests fail or critical issues found
- NEEDS DISCUSSION: Design concerns or unclear requirements
Output Format
# PR #123 Test Results
## Summary
✅ All tests passing (150/150)
✅ Coverage: 68.5% (above 66% threshold)
✅ All pre-commit hooks passing
⚠️ 2 TODO comments found
## Recommendation
READY FOR MERGE
## Test Details
- Unit tests: 120 passed
- Integration tests: 30 passed
- Coverage: 68.5%
## Quality Checks
- ✅ No print statements
- ⚠️ 2 TODO comments
- ✅ Type hints: 85% coverage
## Next Steps
1. Review TODO comments
2. Proceed with merge
Artifacts Generated
.local/pr-meta.json- PR metadata.local/test-results.json- Test execution results.local/test-report.json- Structured findings.local/precommit-results.txt- Pre-commit output
Guardrails
- Do not modify code
- Do not push changes
- Do not merge PR
- Only test and report
- Clean up worktree after testing
Example Usage
# Test PR #123
/skill test-pr 123
# Test with specific pattern
/skill test-pr 123 --pattern "test_applications"
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
deploy-agent
Deploy Bindu agents to various environments with safety checks and verification
create-release
Create releases with proper versioning, release notes, and Git tags
quiz-generation
question-answering
research
Ethical Hacking Methodology
This skill should be used when the user asks to "learn ethical hacking", "understand penetration testing lifecycle", "perform reconnaissance", "conduct security scanning", "exploit vulnerabilities", or "write penetration test reports". It provides comprehensive ethical hacking methodology and techniques.
Didn't find tool you were looking for?