rework-rate

Measure and interpret PR rework rate — the emerging 5th DORA metric

1,828 stars

Best use case

rework-rate is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Measure and interpret PR rework rate — the emerging 5th DORA metric

Teams using rework-rate should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/rework-rate/SKILL.md --create-dirs "https://raw.githubusercontent.com/bradygaster/squad/main/templates/skills/rework-rate/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/rework-rate/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How rework-rate Compares

Feature / Agentrework-rateStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Measure and interpret PR rework rate — the emerging 5th DORA metric

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

## Context

Rework Rate measures the percentage of code changes that require revision after initial review submission. It is considered the emerging 5th DORA metric alongside Deployment Frequency, Lead Time for Changes, Mean Time to Recovery, and Change Failure Rate.

Use this skill when:
- Measuring team code review efficiency
- Identifying patterns in PR revision cycles
- Coaching on PR quality and review practices
- Tracking AI-generated code retention rates
- Building engineering health dashboards

## Patterns

### Calculation

```
Rework Rate = (commits after first review) / (total commits) × 100

Sub-metrics:
  Review Cycles = number of changes-requested → push → approval loops
  Rejection Rate = PRs with ≥1 "changes requested" / total PRs × 100
  Rework Time = last approval timestamp - first changes-requested timestamp
```

### Healthy Ranges

| Metric | 🟢 Healthy | 🟡 Moderate | 🔴 Needs Attention |
|--------|-----------|------------|-------------------|
| Rework Rate | ≤15% | 15–30% | >30% |
| Review Cycles | ≤1.0 | 1.0–2.0 | >2.0 |
| Rejection Rate | ≤20% | 20–40% | >40% |

### Using the CLI

```bash
# Analyze last 30 days (default)
npx github:bradygaster/squad rework

# Custom period
npx github:bradygaster/squad rework --days 7 --limit 50

# Machine-readable output
npx github:bradygaster/squad rework --json
```

### Improvement Strategies

When rework rate is high:
1. **Smaller PRs** — Break large changes into focused, reviewable units
2. **Clear specs** — Write acceptance criteria before coding
3. **Pre-review checklist** — Self-review before requesting reviews
4. **Pair reviews** — Complex changes benefit from synchronous review
5. **Draft PRs** — Use draft status for early feedback on direction

## Examples

```javascript
// Ralph can use rework metrics in watch cycles:
// "📊 Weekly Rework Rate: 12% (healthy) — 3/25 PRs had changes requested"

// In squad ceremonies, rework trends inform retrospectives:
// "Rework rate dropped from 28% to 14% after adopting smaller PR sizes"
```

## Anti-Patterns

- **Using rework rate to blame individuals** — Use it for team coaching, not performance reviews
- **Optimizing for zero rework** — Some rework is healthy; it means reviews are catching issues
- **Ignoring context** — Large refactors naturally have higher rework; compare like with like
- **Measuring without acting** — Metrics without follow-up actions are waste

Related Skills

My Skill

1828
from bradygaster/squad

No description provided.

project-conventions

1828
from bradygaster/squad

Core conventions and patterns for this codebase

tiered-memory

1828
from bradygaster/squad

Three-tier agent memory model (hot/cold/wiki) for 20-55% context reduction per spawn

test-discipline

1828
from bradygaster/squad

Update tests when changing APIs — no exceptions

Skill: Retro Enforcement

1828
from bradygaster/squad

## Purpose

reflect

1828
from bradygaster/squad

Learning capture system that extracts HIGH/MED/LOW confidence patterns from conversations to prevent repeating mistakes. Use after user corrections ("no", "wrong"), praise ("perfect", "exactly"), or when discovering edge cases. Complements .squad/agents/{agent}/history.md and .squad/decisions.md.

notification-routing

1828
from bradygaster/squad

Route agent notifications to specific channels by type — prevent alert fatigue from single-channel flooding

iterative-retrieval

1828
from bradygaster/squad

Max-3-cycle protocol for agent sub-tasks with WHY context and coordinator validation. Use when spawning sub-agents to complete scoped work.

error-recovery

1828
from bradygaster/squad

Standard recovery patterns for all squad agents. When something fails, adapt — don't just report the failure.

docs-standards

1828
from bradygaster/squad

Microsoft Style Guide + Squad-specific documentation patterns

{skill-name}

1828
from bradygaster/squad

{what this skill teaches agents}

versioning-policy

1828
from bradygaster/squad

Semver versioning rules for Squad SDK and CLI — prevents prerelease version incidents