home / skills / openharmonyinsight / openharmony-skills / cpp-core-guidelines-review

cpp-core-guidelines-review skill

/skills/cpp-core-guidelines-review

This skill reviews C++ code against Core Guidelines using parallel sub-agents, generating per-section findings and a consolidated summary for actionable fixes.

npx playbooks add skill openharmonyinsight/openharmony-skills --skill cpp-core-guidelines-review

Review the files below or copy the command above to add this skill to your agents.

Files (19)
SKILL.md
9.2 KB
---
name: cpp-core-guidelines-review
description: Parallel C++ Core Guidelines code review using multiple specialized sub-agents. Use when reviewing C++ code, modules, or files against C++ Core Guidelines to identify violations. Each sub-agent reviews against a specific guideline section (Functions, Classes, Resource Management, etc.) and outputs findings to separate markdown files in the review/ directory, followed by a consolidated summary.
---

# C++ Core Guidelines Review

## Overview

Review C++ code against the C++ Core Guidelines by launching parallel sub-agents, each analyzing code against a specific guideline section. This skill ensures comprehensive coverage while maintaining high confidence in violation identification.

## Workflow

### Step 1: Understand Scope Clarification

Before launching any sub-agents, clarify the review scope with the user:

1. **Target files/directories**: Which C++ source files or directories to review?
2. **File patterns**: What file extensions should be included? (e.g., `.cpp`, `.h`, `.hpp`)
3. **Exclusions**: Any files or directories to exclude?

**Important**: Do not proceed until the scope is clearly defined and unambiguous.

### Step 2: Launch Parallel Sub-Agents

**CRITICAL REQUIREMENTS**:
- You MUST launch one sub-agent for **EVERY** file in `references/Content/`. Do not skip any files. Each guideline section requires its own dedicated sub-agent.
- Use the **guideline-section-reviewer** agent in `agents/guideline-section-reviewer.md` from this plugin for each sub-agent.

**Parallel launch strategy**: To maximize performance, launch all sub-agents in parallel by sending multiple Task tool calls in a single response message. The Task tool documentation explicitly states: "When the user specifies that they want you to run agents 'in parallel', you MUST send a single message with multiple Task tool use content blocks."

Launch one sub-agent per guideline section. Each sub-agent:
- Reviews **only** against rules in its assigned guideline file
- Outputs findings to `<current-working-directory>/review/<SectionName>.md`
- Reports violations with: file path, line numbers, code snippet, and specific rule(s) violated

**Agent invocation process**:
1. **Read the agent template**: Read the agent definition from `agents/guideline-section-reviewer.md`
2. **Substitute parameters**: Replace the template variables in the agent file with actual values:
   - `{{SECTION_NAME}}`: The display name of the section (e.g., "Functions")
   - `{{SECTION_FILE}}`: The filename of the section in `references/Content/` (e.g., "Functions.md")
   - `{{TARGET_FILES_PATTERN}}`: The files/directories to review (e.g., "src/**/*.cpp" or specific file paths)
   - `{{OUTPUT_DIR}}`: The output directory (typically `<current-working-directory>/review`)
   - `{{DATE}}`: Current date in YYYY-MM-DD format
   - `{{FILES_COUNT}}`: Number of files being reviewed
   - `{{VIOLATION_COUNT}}`: Placeholder, will be filled by agent
3. **Launch the agent**: Use the Task tool with `subagent_type=general` and the substituted prompt as the agent's instruction

**Example invocation**:
```
For section "Functions":
- Read agent template from agents/guideline-section-reviewer.md
- Substitute: SECTION_NAME="Functions", SECTION_FILE="Functions.md", etc.
- Launch guideline-section-reviewer agent with substituted prompt
```

The agent will:
1. Read the guideline section from the plugin's `references/Content/` directory
2. Review the target files against that section's rules
3. Output findings to `<OUTPUT_DIR>/<SECTION_NAME>.md`
4. Report violations with file paths, line numbers, code snippets, and specific rule violations

### Step 3: Wait for All Sub-Agents

After launching all sub-agents, collect their task IDs and wait for completion:

**Waiting process**:
1. **Track task IDs**: Store the task ID returned by each Task tool invocation
2. **Wait for completion**: For each task ID, use `TaskOutput` with:
   - `task_id`: The task ID from the sub-agent launch
   - `block=true`: Wait until the sub-agent completes
   - `timeout=600000` (10 minutes): Maximum wait time per agent
3. **Verify success**: Check that each sub-agent:
   - Completed without errors
   - Created its output file in `<current-working-directory>/review/<SectionName>.md`
   - Did not modify any source files

**Error handling**:
- If a sub-agent fails: Report the error to the user and continue with other agents
- If timeout occurs: Note which agents timed out and report to user
- If output file missing: Indicate which section's review is incomplete

**Verification checklist**:
- [ ] All sub-agents have been launched
- [ ] All sub-agents have completed (or reported failures)
- [ ] Output files exist for each completed section
- [ ] No source files were modified

### Step 4: Generate Summary

After all sub-agents complete, create `<current-working-directory>/review/Summary.md` with a comprehensive analysis of all findings.

**Process**:
1. Read all section review files from `<current-working-directory>/review/*.md` (excluding Summary.md itself)
2. Aggregate violation counts, affected files, and rule violations
3. Generate summary using the template below

**Summary.md template**:

```markdown
# C++ Core Guidelines Review Summary

## Overview

**Date**: YYYY-MM-DD
**Review Scope**: <Files/directories reviewed>
**Total Sections Reviewed**: <Number of sections completed>
**Total Violations Found**: <Total count across all sections>

## Summary by Section

| Section | Violations | Most Violated Rule |
|---------|------------|-------------------|
| Functions | N | F.15, ... |
| Classes and Class Hierarchies | N | C.7, ... |
| Resource Management | N | R.1, ... |
| [Continue for all sections] | | |

## Summary by File

| File | Total Violations | Top Violation Categories |
|------|------------------|--------------------------|
| path/to/file1.cpp | N | Resource Management, Error Handling |
| path/to/file2.h | M | Const Correctness, Interfaces |
| [Continue for affected files] | | |

## Top Violations by Frequency

| Rank | Rule ID | Rule Summary | Count |
|------|---------|--------------|-------|
| 1 | F.15 | Prefer simple and default constructs | N |
| 2 | R.3 | Raw pointers should not be used | M |
| [Continue] | | | |

## Critical Findings

### High-Priority Issues
<List violations with high impact or security implications>

### Most Common Patterns
<Identify recurring violation patterns across the codebase>

## Detailed Section Breakdown

### Functions (N violations)
<Brief summary of key violations in this section>
See: [Functions.md](Functions.md)

### Classes and Class Hierarchies (N violations)
<Brief summary of key violations in this section>
See: [Classes and Class Hierarchies.md](Classes%20and%20Class%20Hierarchies.md)

### [Continue for all sections with violations]

## Recommendations

1. **Immediate Actions**: <Critical violations that should be addressed soon>
2. **Process Improvements**: <Suggestions to avoid common violations>
3. **Training Topics**: <Areas where team education may help>

## Review Metadata

- **Sections Completed**: <List of sections that completed>
- **Sections Skipped/Failed**: <List of sections that had issues>
- **Total Files Reviewed**: <Count>
- **Lines of Code Reviewed**: <If available>
```

**Key requirements for summary**:
- Include exact violation counts aggregated from all section reports
- Sort tables by violation count (descending) where applicable
- Link to individual section reports for detailed findings
- Highlight patterns and systemic issues
- Provide actionable recommendations based on findings

## Critical Constraints (Highest Priority)

1. **No modifications**: This skill and all sub-agents MUST NOT modify reviewed files. Write operations ONLY to `<current-working-directory>/review/` directory.
2. **Main session non-involvement**: Main conversation MUST NOT perform code review. Only coordinate sub-agents.
3. **Section-specific enforcement**: Each sub-agent reviews ONLY against its assigned section. Cross-section violations are not reported.
4. **Rule correspondence**: Every reported violation MUST map to a specific guideline rule. Unmappable findings are invalid.
5. **High confidence threshold**: Only report violations with high confidence. Uncertain cases must be omitted.
6. **Violations only**: Report ONLY guideline violations. Do NOT report code that follows guidelines correctly. Positive/conforming code must NOT appear in findings.

## C++ Core Guidelines Structure

The C++ Core Guidelines reference files are bundled in this skill's `references/` directory:
- `Introduction.md` - Overview and glossary
- `Content/` - Individual guideline sections

Each section contains multiple rules with:
- Rule identifier (e.g., "C.7", "F.15")
- Rule statement
- Rationale (Reason)
- Examples (positive/negative)
- Exceptions (if applicable)
- Enforcement suggestions

## User Interaction Patterns

**Example 1**: Review specific files
```
User: "Review src/transaction.cpp and src/account.h against C++ Core Guidelines"
```
→ Clarify scope, then launch sub-agents for those files.

**Example 2**: Review directory
```
User: "Review all C++ files in the services/ directory"
```
→ Clarify file patterns and exclusions, then launch sub-agents.

**Example 3**: Review against specific sections
```
User: "Review using only Resource Management and Error Handling guidelines"
```
→ Launch only those two sub-agents.

Overview

This skill runs a parallel, sectioned review of C++ code against the C++ Core Guidelines using specialized sub-agents. It coordinates one sub-agent per guideline section to produce per-section markdown reports in review/ and then consolidates those results into a Summary.md. Use it to find high-confidence guideline violations across files or directories without modifying source code.

How this skill works

I first clarify the exact scope (target files, patterns, exclusions). Then I launch dedicated sub-agents in parallel, one per guideline section, each configured to read its section file and analyze only the specified target files. Each sub-agent writes a <SectionName>.md with file path, line numbers, code snippets, and specific rule IDs for confirmed violations. After all agents complete, I aggregate their outputs into review/Summary.md with counts, rankings, and recommendations.

When to use it

  • Review specific C++ files or a directory for nonconforming patterns against the Core Guidelines
  • Perform a focused review limited to certain guideline sections (e.g., Resource Management)
  • Generate a consolidated compliance report for audits or code quality gates
  • Identify systemic patterns and high-priority violations across a codebase
  • Automate recurring guideline checks without changing source files

Best practices

  • Always provide explicit scope: file paths, extensions, and exclusions before starting
  • Limit the review to relevant sections when you want faster, targeted results
  • Keep the repository's references/Content/ updated so each sub-agent has the correct ruleset
  • Allocate sufficient timeouts for large codebases; the process waits for each sub-agent to finish
  • Review the generated per-section markdown files before applying fixes

Example use cases

  • Run a full C++ Core Guidelines audit for a new module before release
  • Check only Resource Management and Error Handling sections for memory/safety issues
  • Scan all header files in include/ for interface and const-correctness violations
  • Produce a summarized report for a security review showing high-priority guideline breaches

FAQ

Will this skill modify my source files?

No. The process only writes to the review/ directory. It never modifies reviewed source files.

Can I limit the review to specific guideline sections?

Yes. You can request a subset of sections; the skill launches one sub-agent per requested section.

What does each section report contain?

Each <SectionName>.md lists confirmed violations with file path, line numbers, code snippet, and the exact rule ID(s) violated.