Files
2025-11-30 08:41:39 +08:00

243 lines
5.7 KiB
Markdown

---
name: approve
description: Review and approve important code changes (API, schema, security) before automatic commit. Critical decision point for quality assurance.
model: claude-opus-4-1
---
# Approve Command
**Command Type**: Critical Decision Point
**When to Use**: Review and approve important changes before commit
## Purpose
The `/approve` command is used for manual review of important changes, especially API changes, schema modifications, major refactoring, and other changes requiring explicit approval.
## When to Use
### Required Use Cases for /approve:
1. **API Changes**
- Add/modify public API endpoints
- Change API request/response schemas
- API version upgrades
2. **Database Schema Changes**
- Add/modify table schemas
- Database migration scripts
- Index changes
3. **Major Refactoring**
- Architecture pattern changes
- Core module rewrites
- Major dependency version upgrades
4. **Security Changes**
- Authentication/authorization mechanism modifications
- Password handling logic changes
- Security configuration adjustments
5. **Performance-Critical Changes**
- Cache strategy changes
- Database query optimizations
- Load balancing configuration
### Cases Where /approve is NOT Required:
- Minor bug fixes
- Code comment updates
- Unit test additions
- Documentation updates
- Style adjustments
## Usage
```bash
# Basic usage
/approve
# System will display changes awaiting review
# You need to:
# 1. Review change details
# 2. Decide to approve or reject
# 3. (Optional) Provide review comments
```
## Workflow Integration
### Trigger Point
`@agent-reviewer` automatically prompts for manual review when important changes are detected:
```markdown
🔍 Important Change Detected
**Change Type**: API Schema Modification
**Impact Scope**: POST /auth/login
Manual review required, please run: /approve
```
### Review Process
```mermaid
graph LR
A[@agent-coder<br/>Complete Implementation] --> B[@agent-reviewer<br/>Automatic Review]
B --> C{Important<br/>Change<br/>Detected?}
C -->|Yes| D[🛑 Pause]
C -->|No| F[✅ Auto Commit]
D --> E[/approve<br/>Manual Review]
E --> G{Approved?}
G -->|Approved| H[@agent-reviewer<br/>Complete Commit]
G -->|Rejected| I[@agent-coder<br/>Modify]
I --> B
```
### Review Options
After running `/approve`, you'll see:
```markdown
## Changes Awaiting Review
**Task**: LIN-123 - User Authentication API
**Change Type**: API Schema Modification
### Change Summary
**Modified Files**:
- src/routes/auth.routes.ts
- src/schemas/auth.schema.ts
- docs/api/auth.openapi.yaml
**API Changes**:
```diff
POST /auth/login
- Request: { email, password }
+ Request: { email, password, deviceId }
- Response: { accessToken, refreshToken }
+ Response: { accessToken, refreshToken, sessionId }
```
**Impact Analysis**:
- Breaking Change: ❌ No (backward compatible)
- Frontend Adjustment Needed: ✅ Yes (add deviceId field)
- Documentation Update Needed: ✅ Yes (completed)
---
**Options**:
A) ✅ Approve and commit
B) ❌ Reject with feedback
C) 🔍 View detailed diff
D) 📝 Add review notes and approve
Please select (A/B/C/D):
```
## Response Examples
### Option A: Approve and Commit
```markdown
✅ Changes Approved
@agent-reviewer will execute the following operations:
1. Mark review as passed
2. Create git commit
3. Update task status
Commit message:
feat(LIN-123): add device tracking to auth API
- Add deviceId to login request
- Return sessionId in login response
- Update API documentation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Reviewed-By: [Your Name]
```
### Option B: Reject with Feedback
```markdown
❌ Changes Rejected
**Review Feedback**:
The deviceId field should be optional, not mandatory.
Suggested schema adjustment:
```typescript
{
email: string;
password: string;
deviceId?: string; // optional
}
```
Task has been marked for modification, @agent-coder will be notified.
```
### Option C: View Detailed Diff
Displays complete git diff output
### Option D: Add Review Notes and Approve
```markdown
**Review Notes**:
API changes confirmed, but note:
1. Frontend team needs to synchronize updates
2. Legacy mobile app may need backward compatibility handling
3. Recommend notifying users to upgrade in next sprint
Please enter additional review notes (press Enter to complete):
> [Your notes here]
✅ Approved with review notes recorded
```
## Integration with Agent Workspace
Review records are written to the agent workspace:
```javascript
// Approval record written to .agents/tasks/LIN-123/approve.md
const approvalRecord = {
approved_at: new Date().toISOString(),
approved_by: 'human',
change_type: 'api_schema',
decision: 'approved',
notes: 'Confirmed with frontend team, backward compatible'
};
task.writeAgentOutput('approve', JSON.stringify(approvalRecord, null, 2));
```
## Best Practices
1. **Carefully Review Impact Analysis**: Confirm if breaking changes exist
2. **Verify Test Coverage**: Important changes must have comprehensive tests
3. **Check Documentation Sync**: API changes must update documentation
4. **Consider Backward Compatibility**: Assess impact on existing clients
5. **Document Review Feedback**: Leave review records for future reference
## Key Constraints
- **Only Human**: This command is for human use only, agents cannot execute it
- **Blocking**: Task will pause until review is complete
- **Required for Critical Changes**: Important changes must go through this process
- **Audit Trail**: All review records are preserved
## References
- @~/.claude/workflow.md - Complete workflow
- @~/.claude/agents/reviewer.md - Reviewer agent
- @~/.claude/CLAUDE.md - Global configuration