Skip to main content

comprehensive-code-review

Code review for ACE Engine (OpenHarmony ArkUI) covering C++/JS/TS/ArkTS. Analyzes 19+ dimensions: stability, performance, threading, security, memory, Modern C++ practices, SOLID principles, design patterns, robustness, testability, maintainability, observability, API design, technical debt, backward compatibility. Reports severity levels, refactoring suggestions, and ACE Engine checks (Pattern/Model/Property, component lifecycle, RefPtr/WeakPtr, four-layer architecture). Use when: reviewing PRs, analyzing code quality, enforcing standards, identifying technical debt, validating architecture, generating quality reports.

Datos de origen

Repositorio
openharmonyinsight/openharmony-skills
Última actividad en el origen
26 de mayo de 2026 a las 12:09
Idioma detectado de SKILL.md
inglés
Estrellas
34
Forks
7

Opciones de instalación

De forma predeterminada está seleccionado el prompt que primero revisa el origen. Puedes cambiar a un comando directo o descargar una copia local.

Revisa los archivos de origen

Lee SKILL.md y los archivos complementarios que muestra SkillsMP antes de decidir si quieres instalarlo.

Explorador de archivos
11 archivos

Mostrando SKILL.md

SKILL.md
Instrucciones de origen · Vista previa de solo lectura
name
comprehensive-code-review
description
Code review for ACE Engine (OpenHarmony ArkUI) covering C++/JS/TS/ArkTS. Analyzes 19+ dimensions: stability, performance, threading, security, memory, Modern C++ practices, SOLID principles, design patterns, robustness, testability, maintainability, observability, API design, technical debt, backward compatibility. Reports severity levels, refactoring suggestions, and ACE Engine checks (Pattern/Model/Property, component lifecycle, RefPtr/WeakPtr, four-layer architecture). Use when: reviewing PRs, analyzing code quality, enforcing standards, identifying technical debt, validating architecture, generating quality reports.
# Comprehensive Code Review for ACE Engine ## Quick Start Perform comprehensive code review analysis directly with AI: ``` "Review the code in frameworks/core/components_ng for memory management issues" "Analyze this pull request focusing on security vulnerabilities" "Check path/to/code.cpp for ACE Engine architecture compliance" ``` ## Review Workflow ### Phase 1: Code Analysis AI will analyze code across all relevant dimensions based on: 1. **Reading the code files** - Understanding implementation details 2. **Applying reference standards** - Using criteria from references/ directory 3. **Checking against ACE Engine patterns** - Validating project-specific conventions ### Phase 2: Dimension-Based Review Review code across 19+ dimensions. See [DIMENSIONS.md](references/DIMENSIONS.md) for complete coverage. **High-Priority Dimensions:** - Security (CRITICAL) - Input validation, command injection, buffer overflows - Memory (CRITICAL) - Smart pointers, leaks, ownership semantics - Threading (HIGH) - Data races, deadlocks, callback safety - Stability (HIGH) - Error handling, boundary conditions **Medium-Priority Dimensions:** - Performance - Algorithm complexity, optimization opportunities - SOLID Principles - Single responsibility, Open/Closed, etc. - Code Smells - Long methods, large classes, duplicate code - Testability - Dependency injection, decoupling ### Phase 3: Report Generation AI generates comprehensive review report including: - **Executive Summary** - Issue counts by severity - **Critical Issues** (🔴) - Must fix before merge - **High Priority Issues** (🟠) - Should fix before merge - **Medium Priority Issues** (🟡) - Fix soon - **Low Priority Issues** (🟢) - Nice to have - **Dimension Breakdown** - Issues grouped by category - **File-by-File Details** - Specific line numbers and code snippets - **Recommendations** - Prioritized action items with before/after examples - **Review Checklist** - Pre-merge verification ## Dimension Reference Quick reference to all dimensions: | Dimension | Focus | Severity Levels | Reference | |-----------|-------|-----------------|-----------| | **Stability** | Error handling, boundaries | 🔴🟠🟡🟢 | [STABILITY.md](references/STABILITY.md) | | **Performance** | Algorithms, optimization | 🔴🟠🟡🟢 | [DIMENSIONS.md](references/DIMENSIONS.md) | | **Threading** | Concurrency, synchronization | 🔴🟠🟡 | [DIMENSIONS.md](references/DIMENSIONS.md) | | **Security** | Input validation, vulnerabilities | 🔴🟠🟡 | [SECURITY.md](references/SECURITY.md) | | **Memory** | Smart pointers, leaks | 🔴🟠🟡 | [MEMORY.md](references/MEMORY.md) | | **Modern C++** | C++11/14/17/20 features | 🟠🟡 | [DIMENSIONS.md](references/DIMENSIONS.md) | | **Effective C++** | RAII, Rule of Five | 🟠🟡 | [DIMENSIONS.md](references/DIMENSIONS.md) | | **Code Smells** | 22 types of smells | 🟠🟡 | [CODE_SMELLS.md](references/CODE_SMELLS.md) | | **SOLID** | Design principles | 🟠🟡 | [SOLID.md](references/SOLID.md) | | **Design Patterns** | Pattern usage | 🟡🟢 | [DIMENSIONS.md](references/DIMENSIONS.md) | | **Robustness** | Fault tolerance | 🟠🟡 | [DIMENSIONS.md](references/DIMENSIONS.md) | | **Testability** | Dependency injection | 🟠🟡 | [DIMENSIONS.md](references/DIMENSIONS.md) | | **Maintainability** | Code complexity | 🟡🟢 | [DIMENSIONS.md](references/DIMENSIONS.md) | | **Observability** | Logging, monitoring | 🟡🟢 | [DIMENSIONS.md](references/DIMENSIONS.md) | | **API Design** | Interface quality | 🟠🟡 | [DIMENSIONS.md](references/DIMENSIONS.md) | | **Technical Debt** | TODO/FIXME tracking | 🟡🟢 | [DIMENSIONS.md](references/DIMENSIONS.md) | | **Backward Compatibility** | API stability | 🟠🟡 | [DIMENSIONS.md](references/DIMENSIONS.md) | | **Architecture** | ACE Engine compliance | 🔴🟠🟡 | [ACE_ENGINE_SPECIFIC.md](references/ACE_ENGINE_SPECIFIC.md) | ## ACE Engine Specific Checks ### Architecture Validation **Four-Layer Architecture:** ``` Frontend Bridge Layer ↓ Component Framework Layer (Pattern/Model/Property) ↓ Layout/Render Layer ↓ Platform Adapter Layer (OHOS/Preview) ``` **Check:** - No violations of layer boundaries - Proper use of Pattern/Model/Property separation - No direct platform calls from framework layer ### Component Structure ``` components_ng/pattern/<component>/ ├── *_pattern.h/cpp # Business logic & lifecycle ├── *_model.h/cpp # Data model interface ├── *_layout_property.h/cpp # Layout properties ├── *_paint_property.h/cpp # Render properties └── *_event_hub.h/cpp # Event handling ``` ### RefPtr Usage ```cpp // ✅ Creation auto node = AceType::MakeRefPtr<FrameNode>(); // ✅ Type-safe casting auto pattern = AceType::DynamicCast<MenuPattern>(node->GetPattern()); if (!pattern) { LOGE("Failed to get pattern"); return false; } // ✅ Breaking cycles with WeakPtr class Child { WeakPtr<Parent> parent_; // Use weak, not strong }; // ✅ Safe callbacks auto weak = AceType::WeakClaim(this); PostTask([weak]() { auto pattern = AceType::DynamicCast<MenuPattern>(weak.Upgrade()); if (pattern) pattern->Update(); }); ``` ### Naming Conventions ```cpp class MenuPattern { // PascalCase public: void OnModifyDone(); // PascalCase int GetWidth() const; // Get prefix private: int width_; // snake_case_ with trailing underscore std::string component_id_; // Abbreviations lowercase }; constexpr int MAX_MENU_ITEMS = 100; // UPPER_CASE ``` ## Severity Levels **🔴 CRITICAL** - Must fix before merge - Security vulnerabilities (command injection, buffer overflow) - Memory leaks in long-running processes - Use-after-free, double-free - Data races - Crashes / undefined behavior - Architecture violations **🟠 HIGH** - Should fix before merge - Performance degradation - API violations - SOLID principle violations - Major code smells (Large Class, Shotgun Surgery) - Improper RefPtr usage - Unsafe callback captures **🟡 MEDIUM** - Fix soon - Minor performance issues - Code smells (Long Method, Duplicate Code) - Style violations - Missing error handling in non-critical paths **🟢 LOW** - Nice to have - Missing comments - Minor style issues - Optimization opportunities - Code documentation improvements ## Common Issue Patterns | Pattern | Dimension | Severity | Detection | |---------|-----------|----------|-----------| | Raw pointer instead of RefPtr | Memory | HIGH | `new T()` without RefPtr | | Command injection | Security | CRITICAL | `system(user_input)` | | Buffer overflow | Security | CRITICAL | `strcpy()`, `sprintf()` | | Unsafe this capture | Threading | HIGH | `[this]` in PostTask | | Long method (>50 lines) | Code Smell | MEDIUM | Function length | | Large class (>500 lines) | Code Smell | HIGH | Class size | | Missing null check | Stability | HIGH | Pointer use without validation | | static_cast instead of DynamicCast | Memory | MEDIUM | `static_cast<T*>` | ## Usage Examples ### Review a Pull Request ``` "Review the changes in this PR with focus on memory management and threading safety" ``` AI will: - Analyze all changed files - Check memory management (RefPtr, WeakPtr, raw pointers) - Verify threading safety (callback captures, PostTask usage) - Report issues with line numbers and severity ### Security Audit ``` "Perform a security audit of path/to/code, focusing on input validation and potential vulnerabilities" ``` AI will check for: - Command injection risks (system() calls) - Buffer overflow vulnerabilities (strcpy, sprintf) - Unvalidated user input - Unsafe type casts ### Memory Leak Detection ``` "Analyze frameworks/core/components for potential memory leaks and improper RefPtr usage" ``` AI will identify: - Raw new/delete without smart pointers - Circular references without WeakPtr - Missing null checks after DynamicCast - Improper ownership semantics ### Architecture Compliance Check ``` "Verify that components_ng/menu follows the four-layer architecture and Pattern/Model/Property separation" ``` AI will validate: - Four-layer architecture compliance - Pattern/Model/Property separation - No layer boundary violations - Component lifecycle methods (OnModifyDone, etc.) ## Integration Examples ### Pre-commit Hook For pre-commit hooks, consider using traditional static analysis tools: ```bash #!/bin/bash # .git/hooks/pre-commit CHANGED_FILES=$(git diff --cached --name-only --diff-filter=ACM | grep -E '\.(cpp|cc|cxx|h|hpp|ts|tsx)$') if [ -n "$CHANGED_FILES" ]; then echo "Running basic static analysis..." # Use clang-tidy, cppcheck, eslint, etc. for file in $CHANGED_FILES; do if [[ $file == *.cpp || $file == *.h ]]; then clang-tidy $file --checks='*' || true elif [[ $file == *.ts ]]; then eslint $file || true fi done fi ``` ### Manual Review Workflow For comprehensive AI-powered review: 1. Identify code to review (PR, specific files, directory) 2. Request review with specific focus areas 3. AI analyzes code using reference standards 4. Review results with severity-tagged issues 5. Address critical and high-priority issues 6. Re-request review for verification ## References Detailed documentation for all dimensions in `references/`: - [DIMENSIONS.md](references/DIMENSIONS.md) - Quick reference for all 19+ dimensions - [STABILITY.md](references/STABILITY.md) - Error handling, boundary conditions - [MEMORY.md](references/MEMORY.md) - Smart pointers, leaks, ownership - [SECURITY.md](references/SECURITY.md) - Input validation, vulnerabilities - [CODE_SMELLS.md](references/CODE_SMELLS.md) - 22 types of code smells - [SOLID.md](references/SOLID.md) - Five design principles - [ACE_ENGINE_SPECIFIC.md](references/ACE_ENGINE_SPECIFIC.md) - Project-specific rules ## Assets - [report_template.md](assets/report_template.md) - Customizable report template for AI-generated reviews ## Review Checklist Before merging code: **Code Quality:** - [ ] No CRITICAL issues - [ ] HIGH priority issues addressed or documented - [ ] No compiler warnings - [ ] Static analysis clean **Architecture:** - [ ] Four-layer architecture respected - [ ] Proper Pattern/Model/Property separation - [ ] No layer boundary violations **Memory:** - [ ] No memory leaks - [ ] RefPtr used correctly - [ ] WeakPtr used to break cycles - [ ] Callbacks use WeakClaim **Security:** - [ ] All input validated - [ ] No command injection - [ ] No buffer overflows - [ ] Sensitive data protected **Testing:** - [ ] Unit tests added - [ ] Edge cases covered - [ ] Error scenarios tested
Ver en GitHub