Agent skill

test-pr

Test pull requests with comprehensive validation and generate structured test results

Stars 4,201
Forks 342

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

  1. Fetch PR metadata
  2. Checkout PR branch in isolated worktree
  3. Install dependencies
  4. Run test suite
  5. Run pre-commit hooks
  6. Generate structured test results
  7. Output recommendation

Steps

1. Initialize PR Testing

bash
# 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

bash
# Install with frozen lockfile
uv sync --frozen

# Verify installation
uv run python -c "import bindu; print(bindu.__version__)"

3. Run Test Suite

bash
# 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

bash
# 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

bash
# 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:

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

markdown
# 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

bash
# Test PR #123
/skill test-pr 123

# Test with specific pattern
/skill test-pr 123 --pattern "test_applications"

Expand your agent's capabilities with these related and highly-rated skills.

Didn't find tool you were looking for?

Be as detailed as possible for better results