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.
Install
npx skillscat add openharmonyinsight/openharmony-skills/cpp-core-guidelines-review Install via the SkillsCat registry.
This skill parallelizes C++ Core Guidelines reviews by assigning sub-agents to specific sections like Functions or Resource Management, ensuring systematic violation checks. It addresses the challenge of comprehensive guideline adherence in complex codebases by automating parallel analysis. Developers use it when reviewing C++ modules requiring structured, section-specific guideline compliance.
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:
- Target files/directories: Which C++ source files or directories to review?
- File patterns: What file extensions should be included? (e.g.,
.cpp,.h,.hpp) - 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.mdfrom 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:
- Read the agent template: Read the agent definition from
agents/guideline-section-reviewer.md - 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 inreferences/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
- Launch the agent: Use the Task tool with
subagent_type=generaland 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 promptThe agent will:
- Read the guideline section from the plugin's
references/Content/directory - Review the target files against that section's rules
- Output findings to
<OUTPUT_DIR>/<SECTION_NAME>.md - 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:
- Track task IDs: Store the task ID returned by each Task tool invocation
- Wait for completion: For each task ID, use
TaskOutputwith:task_id: The task ID from the sub-agent launchblock=true: Wait until the sub-agent completestimeout=600000(10 minutes): Maximum wait time per agent
- 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:
- Read all section review files from
<current-working-directory>/review/*.md(excluding Summary.md itself) - Aggregate violation counts, affected files, and rule violations
- Generate summary using the template below
Summary.md template:
# 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)
- No modifications: This skill and all sub-agents MUST NOT modify reviewed files. Write operations ONLY to
<current-working-directory>/review/directory. - Main session non-involvement: Main conversation MUST NOT perform code review. Only coordinate sub-agents.
- Section-specific enforcement: Each sub-agent reviews ONLY against its assigned section. Cross-section violations are not reported.
- Rule correspondence: Every reported violation MUST map to a specific guideline rule. Unmappable findings are invalid.
- High confidence threshold: Only report violations with high confidence. Uncertain cases must be omitted.
- 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 glossaryContent/- 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.