Skip to content
OpenSmartRoute
Skillv1.0.0

actionable-review-format-standards

Standardized output format for code reviews with severity labels, file:line references, and fix code snippets. Use when generating review reports that need consistent, actionable feedback structure.

by David-Li0406(0) 0 installs
Free
Sign in to install

Free account. Installing gives you the manifest plus copy-paste snippets.

See reviews

About

Imported from David-Li0406/meta-skill-evloving (skill-flow/data/skills-refined-agentskillos-36k/skillsmp/actionable-review-format-standards/SKILL.md). Install upstream with npx skills add David-Li0406/meta-skill-evloving --skill actionable-review-format-standards. Copyright stays with the author.

Actionable Review Format Standards

Standardized output format for code reviews ensuring consistent, actionable, and prioritized feedback across all reviewer agents.

When to Use This Skill

  • Generating code review reports
  • Formatting PR feedback
  • Creating security audit reports
  • Producing performance review outputs
  • Any review output requiring severity classification

Core Principles

  1. Every issue has a severity - Never leave findings unclassified
  2. Every issue has a location - Always include file:line references
  3. Every blocking issue has a fix - Provide code snippets for Critical/High
  4. Summary before details - Lead with counts and verdicts
  5. Categorize by concern - Group Security, Performance, Patterns separately

Severity Classification

Severity Levels

Level Icon Criteria Action Required
CRITICAL πŸ”΄ Security vulnerabilities, data loss risk, system crashes Must fix before merge
HIGH 🟠 Significant bugs, missing authorization, performance blockers Should fix before merge
MEDIUM 🟑 Code quality issues, minor bugs, missing validation Fix soon, not blocking
LOW 🟒 Style issues, minor improvements, suggestions Nice to have
INFO πŸ’‘ Educational comments, alternative approaches No action required

Severity Decision Tree

Is it a security vulnerability?
β”œβ”€β”€ Yes β†’ CRITICAL
└── No β†’ Can it cause data loss or corruption?
         β”œβ”€β”€ Yes β†’ CRITICAL
         └── No β†’ Can it cause system crash/downtime?
                  β”œβ”€β”€ Yes β†’ HIGH
                  └── No β†’ Does it break functionality?
                           β”œβ”€β”€ Yes β†’ HIGH
                           └── No β†’ Does it affect performance significantly?
                                    β”œβ”€β”€ Yes β†’ MEDIUM
                                    └── No β†’ Is it a code quality issue?
                                             β”œβ”€β”€ Yes β†’ MEDIUM/LOW
                                             └── No β†’ LOW/INFO

Severity Examples

πŸ”΄ CRITICAL - Security
- SQL injection vulnerability
- Missing authorization on delete endpoint
- Hardcoded credentials in source code
- PII exposure in logs

🟠 HIGH - Must Fix
- Missing null checks causing NullReferenceException
- N+1 query in frequently called method
- Business logic error causing wrong calculations
- Missing input validation on public API

🟑 MEDIUM - Should Fix
- Blocking async call (.Result, .Wait())
- Missing error handling
- Inefficient LINQ query
- Duplicate code that should be extracted

🟒 LOW - Nice to Have
- Variable naming improvements
- Missing XML documentation
- Code formatting inconsistencies
- Minor refactoring opportunities

πŸ’‘ INFO - Educational
- Alternative pattern suggestion
- Performance optimization tip
- Best practice recommendation

Location Format

Standard Format

{FilePath}:{LineNumber}

Examples

βœ… Good:
- `src/Application/PatientAppService.cs:45`
- `src/Domain/Patient.cs:23-28` (range)
- `src/Application/Validators/CreatePatientDtoValidator.cs:12`

❌ Bad:
- `PatientAppService.cs` (missing path)
- `line 45` (missing file)
- `src/Application/` (missing file and line)

Multi-Location Issues

When an issue spans multiple files:

**[MEDIUM]** Duplicate validation logic
- `src/Application/PatientAppService.cs:45`
- `src/Application/DoctorAppService.cs:52`
- `src/Application/AppointmentAppService.cs:38`

**Suggestion**: Extract to shared `ValidationHelper` class.

Issue Format

Single Issue Template

**[{SEVERITY}]** `{file:line}` - {Category}

{Brief description of the issue}

**Problem**:
```{language}
// Current code
{problematic code}

Fix:

// Suggested fix
{corrected code}

Why: {Explanation of impact/risk}


### Compact Issue Format (for tables)

```markdown
| Severity | Location | Category | Issue | Fix |
|----------|----------|----------|-------|-----|
| πŸ”΄ CRITICAL | `File.cs:42` | Security | Missing `[Authorize]` | Add `[Authorize(Permissions.Delete)]` |
| 🟠 HIGH | `File.cs:67` | Performance | N+1 query in loop | Use `.Include()` or batch query |

Report Structure

Full Review Report Template

# Code Review: {PR Title}

**Date**: {YYYY-MM-DD}
**Reviewer**: {agent-name}
**Files Reviewed**: {count}
**Lines Changed**: +{added} / -{removed}

---

## Verdict

{βœ… APPROVE | πŸ’¬ APPROVE WITH COMMENTS | πŸ”„ REQUEST CHANGES}

**Summary**: {1-2 sentence overview}

---

## Issue Summary

| Severity | Count | Blocking |
|----------|-------|----------|
| πŸ”΄ CRITICAL | {n} | Yes |
| 🟠 HIGH | {n} | Yes |
| 🟑 MEDIUM | {n} | No |
| 🟒 LOW | {n} | No |

---

## πŸ”΄ Critical Issues

{If none: "No critical issues found."}

### [CRITICAL] `{file:line}` - {Title}

{Description}

**Problem**:
```{lang}
{code}

Fix:

{code}

🟠 High Issues

{Issues in same format}


🟑 Medium Issues

{Issues in same format or table format for brevity}


🟒 Low Issues / Suggestions

  • {file:line} [nit]: {suggestion}
  • {file:line} [style]: {suggestion}

πŸ”’ Security Summary

Check Status Notes
Authorization βœ… Pass / ❌ Fail {details}
Input Validation βœ… Pass / ❌ Fail {details}
Data Exposure βœ… Pass / ❌ Fail {details}
Secrets βœ… Pass / ❌ Fail {details}

⚑ Performance Summary

Check Status Notes
N+1 Queries βœ… Pass / ❌ Fail {details}
Async Patterns βœ… Pass / ❌ Fail {details}
Pagination βœ… Pass / ❌ Fail {details}
Query Optimization βœ… Pass / ❌ Fail {details}

βœ… What's Good

  • {Positive observation 1}
  • {Positive observation 2}
  • {Positive observation 3}

Action Items

Must fix before merge:

  • {Critical/High issue 1}
  • {Critical/High issue 2}

Should fix soon:

  • {Medium issue 1}
  • {Medium issue 2}

Technical Debt Noted

  • {Future improvement 1}
  • {Future improvement 2}

---

## Category Labels

Use consistent category labels to classify issues:

| Category | Description | Examples |
|----------|-------------|----------|
| **Security** | Vulnerabilities, auth issues | Missing auth, SQL injection, XSS |
| **Performance** | Efficiency issues | N+1, blocking async, missing pagination |
| **DDD** | Domain design issues | Public setters, anemic entities |
| **ABP** | Framework pattern violations | Wrong base class, missing GuidGenerator |
| **Validation** | Input validation issues | Missing validators, weak rules |
| **Error Handling** | Exception handling issues | Silent catch, wrong exception type |
| **Async** | Async/await issues | Blocking calls, missing cancellation |
| **Testing** | Test quality issues | Missing tests, flaky tests |
| **Style** | Code style issues | Naming, formatting |
| **Documentation** | Doc issues | Missing comments, outdated docs |

---

## Feedback Language

### Use Constructive Language

```markdown
❌ Bad:
"This is wrong."
"You should know better."
"Why didn't you use X?"

βœ… Good:
"Consider using X because..."
"This could cause Y. Here's a fix:"
"Have you considered X? It would improve Y."

Differentiate Blocking vs Non-Blocking

🚫 [blocking]: Must fix before merge
πŸ’­ [suggestion]: Consider for improvement
πŸ“ [nit]: Minor style preference, not blocking
πŸ“š [learning]: Educational note, no action needed

Quick Reference

Minimum Requirements

Every review output MUST include:

  1. Verdict - Approve/Request Changes
  2. Issue count by severity
  3. All Critical/High issues with fixes
  4. File:line references for all issues
  5. At least one positive observation

Severity Quick Guide

If you find... Severity
Security vulnerability πŸ”΄ CRITICAL
Missing authorization πŸ”΄ CRITICAL
Data corruption risk πŸ”΄ CRITICAL
Null reference exception 🟠 HIGH
N+1 query pattern 🟠 HIGH
Blocking async 🟑 MEDIUM
Missing validation 🟑 MEDIUM
Naming issues 🟒 LOW
Missing docs 🟒 LOW

Example Output

# Code Review: Add Patient CRUD API

**Date**: 2025-12-13
**Reviewer**: abp-code-reviewer
**Files Reviewed**: 5
**Lines Changed**: +245 / -12

---

## Verdict

πŸ”„ REQUEST CHANGES

**Summary**: Good implementation of Patient CRUD with proper ABP patterns. Found 1 critical security issue (missing authorization) and 2 performance concerns that need attention.

---

## Issue Summary

| Severity | Count | Blocking |
|----------|-------|----------|
| πŸ”΄ CRITICAL | 1 | Yes |
| 🟠 HIGH | 2 | Yes |
| 🟑 MEDIUM | 1 | No |
| 🟒 LOW | 2 | No |

---

## πŸ”΄ Critical Issues

### [CRITICAL] `src/Application/PatientAppService.cs:67` - Security

**Missing authorization on DeleteAsync**

**Problem**:
```csharp
public async Task DeleteAsync(Guid id)
{
    await _repository.DeleteAsync(id);
}

Fix:

[Authorize(ClinicManagementSystemPermissions.Patients.Delete)]
public async Task DeleteAsync(Guid id)
{
    await _repository.DeleteAsync(id);
}

Why: Any authenticated user can delete patients without permission check.


🟠 High Issues

[HIGH] src/Application/PatientAppService.cs:34 - Performance

N+1 query pattern in GetListAsync

Problem:

foreach (var patient in patients)
{
    patient.Appointments = await _appointmentRepository.GetListAsync(a => a.PatientId == patient.Id);
}

Fix:

var patientIds = patients.Select(p => p.Id).ToList();
var appointments = await _appointmentRepository.GetListAsync(a => patientIds.Contains(a.PatientId));
var grouped = appointments.GroupBy(a => a.PatientId).ToDictionary(g => g.Key, g => g.ToList());
foreach (var patient in patients)
{
    patient.Appointments = grouped.GetValueOrDefault(patient.Id, new List<Appointment>());
}

πŸ”’ Security Summary

Check Status Notes
Authorization ❌ Fail DeleteAsync missing [Authorize]
Input Validation βœ… Pass FluentValidation in place
Data Exposure βœ… Pass DTOs properly scoped
Secrets βœ… Pass No hardcoded values

⚑ Performance Summary

Check Status Notes
N+1 Queries ❌ Fail Loop in GetListAsync
Async Patterns βœ… Pass Proper async/await
Pagination βœ… Pass Using PageBy
Query Optimization βœ… Pass WhereIf pattern used

βœ… What's Good

  • Excellent entity encapsulation with private setters
  • Proper use of GuidGenerator.Create()
  • Clean FluentValidation implementation
  • Good separation of concerns

Action Items

Must fix before merge:

  • Add [Authorize] to DeleteAsync
  • Fix N+1 query in GetListAsync

Should fix soon:

  • Add XML documentation to public methods

Use it

Copy one of these into your project. Installing also returns the manifest and these snippets.

yaml
targets:
  - https://api.opensmartroute.ai/api/v1/registry/david-li0406-meta-skill-evloving-actionable-review-forma-a902d0/manifest   # or paste the manifest below

Manifest

An Open Capability Manifest: the router reads it to know what this does, what it costs and when to pick it.

david-li0406-meta-skill-evloving-actionable-review-forma-a902d0.ocm.jsonjson
{
  "ocm": "1",
  "id": "david-li0406-meta-skill-evloving-actionable-review-forma-a902d0",
  "kind": "skill",
  "name": "actionable-review-format-standards",
  "description": "Standardized output format for code reviews with severity labels, file:line references, and fix code snippets. Use when generating review reports that need consistent, actionable feedback structure.",
  "publisher": "David-Li0406",
  "version": "1.0.0",
  "capabilities": {
    "domains": [
      "coding"
    ],
    "tags": [
      "skill-md",
      "critical",
      "high",
      "medium",
      "low",
      "severity",
      "file-path",
      "line-number",
      "fix",
      "suggestion"
    ],
    "languages": [
      "en"
    ]
  },
  "quality_prior": 0.6,
  "examples": [
    "Standardized output format for code reviews with severity labels, file:line references, and fix code snippets. Use when generating review reports that need consistent, actionable feedback structure."
  ],
  "primary": false,
  "metadata": {
    "source": {
      "provider": "github",
      "repository": "https://github.com/David-Li0406/meta-skill-evloving",
      "path": "skill-flow/data/skills-refined-agentskillos-36k/skillsmp/actionable-review-format-standards/SKILL.md",
      "ref": "ca3a335628981df10c36e00cb9850df2c247ab9a",
      "url": "https://github.com/David-Li0406/meta-skill-evloving/blob/ca3a335628981df10c36e00cb9850df2c247ab9a/skill-flow/data/skills-refined-agentskillos-36k/skillsmp/actionable-review-format-standards/SKILL.md",
      "key": "David-Li0406/meta-skill-evloving/skill-flow/data/skills-refined-agentskillos-36k/skillsmp/actionable-review-format-standards/SKILL.md"
    }
  },
  "instructions": "# Actionable Review Format Standards\n\nStandardized output format for code reviews ensuring consistent, actionable, and prioritized feedback across all reviewer agents.\n\n## When to Use This Skill\n\n- Generating code review reports\n- Formatting PR feedback\n- Creating security audit reports\n- Producing performance review outputs\n- Any review output requiring severity classification\n\n## Core Principles\n\n1. **Every issue has a severity** - Never leave findings unclassified\n2. **Every issue has a location** - Always include `file:line` references\n3. **Every blocking issue has a fix** - Provide code s",
  "cost": {
    "context_tokens": 2733
  }
}

Fetch it by URL: GET /api/v1/registry/david-li0406-meta-skill-evloving-actionable-review-forma-a902d0/manifest?version=1.0.0

Reviews

Star ratings from people who tried it. One review per account; edit yours any time.

No reviews yet. Install it, try it, and be the first to rate it.