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.

Quellinformationen

Repository
openharmonyinsight/openharmony-skills
Letzte Quellaktivität
26. Mai 2026 um 12:09
Erkannte Sprache von SKILL.md
Englisch
Sterne
34
Forks
7

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
11 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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
Auf GitHub ansehen