feat: v3.0.0 architecture overhaul
- Rename marketplace to lm-claude-plugins - Move MCP servers to root with symlinks - Add 6 PR tools to Gitea MCP (list_pull_requests, get_pull_request, get_pr_diff, get_pr_comments, create_pr_review, add_pr_comment) - Add clarity-assist plugin (prompt optimization with ND accommodations) - Add git-flow plugin (workflow automation) - Add pr-review plugin (multi-agent review with confidence scoring) - Centralize configuration docs - Update all documentation for v3.0.0 BREAKING CHANGE: MCP server paths changed, marketplace renamed Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
137
plugins/pr-review/commands/pr-findings.md
Normal file
137
plugins/pr-review/commands/pr-findings.md
Normal file
@@ -0,0 +1,137 @@
|
||||
# /pr-findings - Filter Review Findings
|
||||
|
||||
## Purpose
|
||||
|
||||
List and filter findings from a previous PR review by category, severity, or confidence level.
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
/pr-findings <pr-number> [filters]
|
||||
```
|
||||
|
||||
### Filters
|
||||
|
||||
```
|
||||
--category <cat> Filter by category (security, performance, maintainability, tests)
|
||||
--severity <sev> Filter by severity (critical, major, minor, suggestion)
|
||||
--confidence <min> Minimum confidence score (0.0-1.0)
|
||||
--file <pattern> Filter by file path pattern
|
||||
```
|
||||
|
||||
## Examples
|
||||
|
||||
```
|
||||
# Show only security findings
|
||||
/pr-findings 123 --category security
|
||||
|
||||
# Show critical and major issues only
|
||||
/pr-findings 123 --severity critical,major
|
||||
|
||||
# Show high-confidence findings only
|
||||
/pr-findings 123 --confidence 0.8
|
||||
|
||||
# Show findings in specific files
|
||||
/pr-findings 123 --file src/api/*
|
||||
```
|
||||
|
||||
## Behavior
|
||||
|
||||
### Without Previous Review
|
||||
|
||||
If no review exists for this PR:
|
||||
|
||||
```
|
||||
No review found for PR #123.
|
||||
|
||||
Would you like to:
|
||||
1. Run full /pr-review now
|
||||
2. Run quick /pr-summary
|
||||
3. Cancel
|
||||
```
|
||||
|
||||
### With Previous Review
|
||||
|
||||
Display filtered findings:
|
||||
|
||||
```
|
||||
═══════════════════════════════════════════════════
|
||||
PR #123 Findings (filtered: security)
|
||||
═══════════════════════════════════════════════════
|
||||
|
||||
Showing 3 of 8 total findings
|
||||
|
||||
───────────────────────────────────────────────────
|
||||
|
||||
[SEC-001] SQL Injection Vulnerability
|
||||
Confidence: 0.95 (HIGH) | Severity: Critical
|
||||
File: src/api/users.ts:45
|
||||
|
||||
The query uses string interpolation without parameterization.
|
||||
|
||||
Fix: Use parameterized queries.
|
||||
|
||||
───────────────────────────────────────────────────
|
||||
|
||||
[SEC-002] Missing Input Validation
|
||||
Confidence: 0.88 (MEDIUM) | Severity: Major
|
||||
File: src/api/auth.ts:23
|
||||
|
||||
User input is passed directly to database without validation.
|
||||
|
||||
Fix: Add input validation middleware.
|
||||
|
||||
───────────────────────────────────────────────────
|
||||
|
||||
[SEC-003] Sensitive Data in Logs
|
||||
Confidence: 0.72 (MEDIUM) | Severity: Minor
|
||||
File: src/utils/logger.ts:15
|
||||
|
||||
Password field may be logged in debug mode.
|
||||
|
||||
Fix: Sanitize sensitive fields before logging.
|
||||
|
||||
═══════════════════════════════════════════════════
|
||||
```
|
||||
|
||||
## Output Formats
|
||||
|
||||
### Default (Detailed)
|
||||
|
||||
Full finding details with descriptions and fixes.
|
||||
|
||||
### Compact (--compact)
|
||||
|
||||
```
|
||||
SEC-001 | Critical | 0.95 | src/api/users.ts:45 | SQL Injection
|
||||
SEC-002 | Major | 0.88 | src/api/auth.ts:23 | Missing Validation
|
||||
SEC-003 | Minor | 0.72 | src/utils/logger.ts | Sensitive Logs
|
||||
```
|
||||
|
||||
### JSON (--json)
|
||||
|
||||
```json
|
||||
{
|
||||
"pr": 123,
|
||||
"findings": [
|
||||
{
|
||||
"id": "SEC-001",
|
||||
"category": "security",
|
||||
"severity": "critical",
|
||||
"confidence": 0.95,
|
||||
"file": "src/api/users.ts",
|
||||
"line": 45,
|
||||
"title": "SQL Injection Vulnerability",
|
||||
"description": "...",
|
||||
"fix": "..."
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
## Use Cases
|
||||
|
||||
- Focus on specific issue types
|
||||
- Track resolution of findings
|
||||
- Export findings for tracking
|
||||
- Quick reference during fixes
|
||||
139
plugins/pr-review/commands/pr-review.md
Normal file
139
plugins/pr-review/commands/pr-review.md
Normal file
@@ -0,0 +1,139 @@
|
||||
# /pr-review - Full Multi-Agent Review
|
||||
|
||||
## Purpose
|
||||
|
||||
Conduct a comprehensive pull request review using specialized agents for security, performance, maintainability, and test coverage.
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
/pr-review <pr-number> [--repo owner/repo]
|
||||
```
|
||||
|
||||
## Behavior
|
||||
|
||||
### Step 1: Fetch PR Data
|
||||
|
||||
Using Gitea MCP tools:
|
||||
1. `get_pull_request` - PR metadata
|
||||
2. `get_pr_diff` - Code changes
|
||||
3. `get_pr_comments` - Existing discussion
|
||||
|
||||
### Step 2: Dispatch to Agents
|
||||
|
||||
The coordinator dispatches review tasks to specialized agents:
|
||||
|
||||
```
|
||||
PR Review: #123 - Add user authentication
|
||||
═══════════════════════════════════════════════════
|
||||
|
||||
Dispatching to review agents:
|
||||
├─ Security Reviewer → analyzing...
|
||||
├─ Performance Analyst → analyzing...
|
||||
├─ Maintainability Auditor → analyzing...
|
||||
└─ Test Validator → analyzing...
|
||||
```
|
||||
|
||||
### Step 3: Aggregate Findings
|
||||
|
||||
Collect findings from all agents, each with:
|
||||
- Category (security, performance, maintainability, tests)
|
||||
- Severity (critical, major, minor, suggestion)
|
||||
- Confidence score (0.0 - 1.0)
|
||||
- File and line reference
|
||||
- Description
|
||||
- Suggested fix (if applicable)
|
||||
|
||||
### Step 4: Filter by Confidence
|
||||
|
||||
Only display findings with confidence >= 0.5:
|
||||
|
||||
| Confidence | Label | Description |
|
||||
|------------|-------|-------------|
|
||||
| 0.9 - 1.0 | HIGH | Definite issue, must address |
|
||||
| 0.7 - 0.89 | MEDIUM | Likely issue, should address |
|
||||
| 0.5 - 0.69 | LOW | Possible concern, consider addressing |
|
||||
| < 0.5 | (suppressed) | Too uncertain to report |
|
||||
|
||||
### Step 5: Generate Report
|
||||
|
||||
```
|
||||
═══════════════════════════════════════════════════
|
||||
PR Review Report: #123
|
||||
═══════════════════════════════════════════════════
|
||||
|
||||
Summary:
|
||||
Files changed: 12
|
||||
Lines added: 234
|
||||
Lines removed: 45
|
||||
|
||||
Findings: 8 total
|
||||
🔴 Critical: 1
|
||||
🟠 Major: 2
|
||||
🟡 Minor: 3
|
||||
💡 Suggestions: 2
|
||||
|
||||
───────────────────────────────────────────────────
|
||||
CRITICAL FINDINGS
|
||||
───────────────────────────────────────────────────
|
||||
|
||||
[SEC-001] SQL Injection Vulnerability (Confidence: 0.95)
|
||||
File: src/api/users.ts:45
|
||||
Category: Security
|
||||
|
||||
The query uses string interpolation without parameterization:
|
||||
```ts
|
||||
const query = `SELECT * FROM users WHERE id = ${userId}`;
|
||||
```
|
||||
|
||||
Suggested fix:
|
||||
```ts
|
||||
const query = 'SELECT * FROM users WHERE id = ?';
|
||||
db.query(query, [userId]);
|
||||
```
|
||||
|
||||
───────────────────────────────────────────────────
|
||||
MAJOR FINDINGS
|
||||
───────────────────────────────────────────────────
|
||||
|
||||
[PERF-001] N+1 Query Pattern (Confidence: 0.82)
|
||||
...
|
||||
|
||||
───────────────────────────────────────────────────
|
||||
VERDICT
|
||||
───────────────────────────────────────────────────
|
||||
|
||||
❌ REQUEST_CHANGES
|
||||
|
||||
This PR has 1 critical security issue that must be addressed
|
||||
before merging. See SEC-001 above.
|
||||
|
||||
───────────────────────────────────────────────────
|
||||
```
|
||||
|
||||
### Step 6: Submit Review (Optional)
|
||||
|
||||
```
|
||||
Submit this review to Gitea?
|
||||
1. Yes, with REQUEST_CHANGES
|
||||
2. Yes, as COMMENT only
|
||||
3. No, just show me the report
|
||||
```
|
||||
|
||||
If yes, use `create_pr_review` MCP tool.
|
||||
|
||||
## Output
|
||||
|
||||
Full review report with:
|
||||
- Summary statistics
|
||||
- Findings grouped by severity
|
||||
- Code snippets with context
|
||||
- Suggested fixes
|
||||
- Overall verdict
|
||||
|
||||
## Configuration
|
||||
|
||||
| Variable | Default | Description |
|
||||
|----------|---------|-------------|
|
||||
| `PR_REVIEW_CONFIDENCE_THRESHOLD` | `0.5` | Minimum confidence to report |
|
||||
| `PR_REVIEW_AUTO_SUBMIT` | `false` | Auto-submit to Gitea |
|
||||
103
plugins/pr-review/commands/pr-summary.md
Normal file
103
plugins/pr-review/commands/pr-summary.md
Normal file
@@ -0,0 +1,103 @@
|
||||
# /pr-summary - Quick PR Summary
|
||||
|
||||
## Purpose
|
||||
|
||||
Generate a quick summary of PR changes without conducting a full multi-agent review.
|
||||
|
||||
## Usage
|
||||
|
||||
```
|
||||
/pr-summary <pr-number> [--repo owner/repo]
|
||||
```
|
||||
|
||||
## Behavior
|
||||
|
||||
### Step 1: Fetch PR Data
|
||||
|
||||
Using Gitea MCP tools:
|
||||
1. `get_pull_request` - PR metadata
|
||||
2. `get_pr_diff` - Code changes
|
||||
|
||||
### Step 2: Analyze Changes
|
||||
|
||||
Quick analysis of:
|
||||
- Files modified
|
||||
- Types of changes (features, fixes, refactoring)
|
||||
- Scope and impact
|
||||
|
||||
### Step 3: Generate Summary
|
||||
|
||||
```
|
||||
═══════════════════════════════════════════════════
|
||||
PR Summary: #123 - Add user authentication
|
||||
═══════════════════════════════════════════════════
|
||||
|
||||
Author: @johndoe
|
||||
Branch: feat/user-auth → development
|
||||
Status: Open (ready for review)
|
||||
|
||||
───────────────────────────────────────────────────
|
||||
CHANGES OVERVIEW
|
||||
───────────────────────────────────────────────────
|
||||
|
||||
Files: 12 changed
|
||||
+ 8 new files
|
||||
~ 3 modified files
|
||||
- 1 deleted file
|
||||
|
||||
Lines: +234 / -45 (net +189)
|
||||
|
||||
───────────────────────────────────────────────────
|
||||
WHAT THIS PR DOES
|
||||
───────────────────────────────────────────────────
|
||||
|
||||
This PR adds user authentication functionality:
|
||||
|
||||
1. **New API endpoints**
|
||||
- POST /api/auth/login
|
||||
- POST /api/auth/register
|
||||
- POST /api/auth/logout
|
||||
|
||||
2. **Frontend components**
|
||||
- LoginForm component
|
||||
- RegisterForm component
|
||||
- Auth context provider
|
||||
|
||||
3. **Database changes**
|
||||
- New users table
|
||||
- Sessions table
|
||||
|
||||
───────────────────────────────────────────────────
|
||||
KEY FILES
|
||||
───────────────────────────────────────────────────
|
||||
|
||||
• src/api/auth/login.ts (+85) - Login endpoint
|
||||
• src/api/auth/register.ts (+120) - Registration
|
||||
• src/components/LoginForm.tsx (+65) - Login UI
|
||||
• src/db/migrations/001_users.sql (+45) - Schema
|
||||
|
||||
───────────────────────────────────────────────────
|
||||
QUICK ASSESSMENT
|
||||
───────────────────────────────────────────────────
|
||||
|
||||
Scope: Medium (authentication feature)
|
||||
Risk: Medium (new security-sensitive code)
|
||||
Recommendation: Full /pr-review suggested
|
||||
|
||||
═══════════════════════════════════════════════════
|
||||
```
|
||||
|
||||
## Output
|
||||
|
||||
Summary report with:
|
||||
- PR metadata
|
||||
- Change statistics
|
||||
- Plain-language description of changes
|
||||
- Key files list
|
||||
- Quick risk assessment
|
||||
|
||||
## When to Use
|
||||
|
||||
- Get quick overview before full review
|
||||
- Triage multiple PRs
|
||||
- Understand PR scope
|
||||
Reference in New Issue
Block a user