mcpField
O
ohos-dev-graphics-stability-code-review

ohos-dev-graphics-stability-code-review

github.com/openharmonyinsight测试与质量3542 次安装11 周前更新
代码仓库

关于 ohos-dev-graphics-stability-code-review

该框架依据 Markdown 规则检视 C/C++ 代码库中的稳定性风险,并生成结构化中文报告。它支持全量、指定规则或分类扫描,要求每项检出包含风险流和影响分析。

主要功能

  1. 01基于规则的 C/C++ 稳定性检视
  2. 02全量、指定规则和分类扫描
  3. 03白名单过滤要求
  4. 04结构化 Markdown 和 CSV 报告
  5. 05风险流与影响分析要求

适用场景

  1. 01提交代码前审查代码库
  2. 02扫描资源泄漏或并发风险
  3. 03仅检视指定规则 ID 或分类

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/openharmonyinsight/openharmony-skills --skill ohos-dev-graphics-stability-code-review

安装后在 Claude Code 中输入/ohos-dev-graphics-stability-code-review确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

README.md
config/
rules.yaml
whitelist.yaml
evals/
evals.json
README.md
references/BoundaryCondition/
StabilityCodeReview_BoundaryCondition_001.md
StabilityCodeReview_BoundaryCondition_002.md
StabilityCodeReview_BoundaryCondition_003.md
StabilityCodeReview_BoundaryCondition_004.md
StabilityCodeReview_BoundaryCondition_005.md
StabilityCodeReview_BoundaryCondition_006.md
StabilityCodeReview_BoundaryCondition_007.md
StabilityCodeReview_BoundaryCondition_008.md
StabilityCodeReview_BoundaryCondition_009.md
StabilityCodeReview_BoundaryCondition_010.md
StabilityCodeReview_BoundaryCondition_011.md
StabilityCodeReview_BoundaryCondition_012.md
StabilityCodeReview_BoundaryCondition_013.md
StabilityCodeReview_BoundaryCondition_014.md
references/ConcurrencyStability/
StabilityCodeReview_ConcurrencyStability_001.md
references/ExceptionHandling/
StabilityCodeReview_ExceptionHandling_001.md
StabilityCodeReview_ExceptionHandling_002.md
references/GraphicsStability/
StabilityCodeReview_GraphicsStability_001.md
StabilityCodeReview_GraphicsStability_002.md
StabilityCodeReview_GraphicsStability_003.md
StabilityCodeReview_GraphicsStability_004.md
StabilityCodeReview_GraphicsStability_005.md
StabilityCodeReview_GraphicsStability_006.md
StabilityCodeReview_GraphicsStability_007.md
StabilityCodeReview_GraphicsStability_008.md

详细介绍

来自项目 README

OpenHarmony Stability Code Review

可扩展的稳定性规则检视框架,对 C/C++ 代码库执行稳定性风险检视并生成结构化报告。规则以 Markdown 文档存放在 references/ 目录,AI 模型直接读取规则文档进行检视,输出中文检视报告到 ./report/ 目录。详细工作流、核心概念和操作细节请参考 references/WORKFLOW_GUIDE.md。

触发场景

  • 稳定性专项全仓扫描:对 C/C++ 代码库执行稳定性审计或风险检视
  • 指定规则扫描:用户明确指定规则 ID、级别或分类进行针对性检视
  • 代码上库前本地检视:在代码提交前进行稳定性检视
  • 检测稳定性风险(异常处理不当、并发死锁、性能退化、资源泄漏等)
  • 审查生命周期管理(对象生命周期、异步任务管理)
  • 用户明确要求检查代码稳定性时

触发示例:

# 全量扫描
稳定性全量扫描 ./rosen/
代码稳定性检视 ./src/

# 指定规则扫描
用 ExceptionHandling_001 规则检视 ./src/
用 ExceptionHandling_001,ExceptionHandling_002,BoundaryCondition_001 规则检视 ./rosen/

# 按级别过滤扫描
对 ./rosen/ 做稳定性扫描,只检视 HIGH 级别的规则

# 指定分类扫描
对 ./src/ 做稳定性扫描,只检视异常处理分类的规则
用BoundaryCondition和GraphicsStability分类的规则检视 ./rosen/

NEVER

  1. 永远不要修改被扫描的源代码 — 你的工作只是检视代码,识别稳定性风险,禁止对源代码文件进行任何修改操作
  2. 不要输出非必要的过程中间件 — 除了目标输出的中文检视报告之外,不要输出其它非必要的过程中间文件或临时文件
  3. 永远不要报告没有可复现 RiskFlow 和 ImpactAnalysis 的检出 — 缺少风险流和影响分析的检出是无效的,必须说明来源、传播和后果
  4. 永远不要在应用白名单之前标记 test、mock、generated、build 或 protobuf 文件 — 必须先执行白名单过滤再进行规则检视
  5. 永远不要将崩溃、内存损坏、资源耗尽或 GPU 资源泄漏降级为风格问题 — 严重程度由后果决定,不由代码外观决定
  6. 永远不要静默跳过用户请求的规则 ID — 无效或不存在的规则必须在开始检视前报告给用户
  7. 永远不要合并底层风险路径或规则 ID 不同的检出 — 同位置但不同规则或不同风险传播路径的问题应分别保留

渐进式加载触发器

根据扫描场景精确控制加载内容,避免过度加载或不足加载:

全量扫描

必须加载:config/rules.yaml、config/whitelist.yaml、references/RULE_INDEX.md、所有启用的规则文档、references/PROBLEM_TEMPLATE.md、references/REPORT_TEMPLATE.md、references/REPORT_TEMPLATE.csv

不要加载:references/RULE_DEVELOPMENT_GUIDE.md、references/RULE_TEMPLATE.md、references/WORKFLOW_GUIDE.md(除非你对流程有疑问)

指定规则扫描

必须加载:config/rules.yaml、config/whitelist.yaml、用户指定的规则文档、references/PROBLEM_TEMPLATE.md、references/REPORT_TEMPLATE.md、references/REPORT_TEMPLATE.csv

不要加载:未指定的规则文档、references/RULE_DEVELOPMENT_GUIDE.md、references/RULE_TEMPLATE.md

分类扫描

必须加载:references/RULE_INDEX.md、config/whitelist.yaml、该分类下的规则文档、references/PROBLEM_TEMPLATE.md、references/REPORT_TEMPLATE.md、references/REPORT_TEMPLATE.csv

不要加载:其他分类的规则文档、references/RULE_DEVELOPMENT_GUIDE.md、references/RULE_TEMPLATE.md

新增/修改规则

必须加载:references/RULE_DEVELOPMENT_GUIDE.md、references/RULE_TEMPLATE.md、config/rules.yaml

不要加载:规则检视文档和报告模板(除非同时进行检视)

工作流决策树

用户输入
  │
  ├─ 指定规则 ID? ──→ 解析 ID 列表,验证有效性 → 加载对应规则文档
  ├─ 指定级别? ──→ 从 rules.yaml 筛选匹配级别 → 加载对应规则文档
  ├─ 指定分类? ──→ 从 RULE_INDEX.md 筛选匹配分类 → 加载对应规则文档
  └─ 未指定? ──→ 加载 rules.yaml 所有启用规则 → 加载全部规则文档
  │
  ▼
加载 config/whitelist.yaml,初始化白名单过滤
  │
  ▼
按稳定性分类启动 5 个 Subagent 并行检视
每个 Subagent:白名单过滤 → 遍历规则 → RISK_PATTERN → CONTEXT → IMPACT → 安全写法排除 → 按 PROBLEM_TEMPLATE.md 格式输出
  │
  ▼
主 Agent 汇总:收集 → 格式验证 → 去重合并 → 按严重程度分组排序(CRITICAL→HIGH→MEDIUM→LOW)
  │
  ▼
输出报告到 ./report/ 目录
  ├── report_{target}_{timestamp}.md  (按 REPORT_TEMPLATE.md)
  └── report_{target}_{timestamp}.csv (按 REPORT_TEMPLATE.csv)

详细工作流图示、核心概念定义和操作细节请参考 references/WORKFLOW_GUIDE.md。

输出合约

项目要求
问题格式严格遵循 references/PROBLEM_TEMPLATE.md,必须包含:标题、分类、规则、位置、函数、严重程度、关键源码、问题描述、RiskFlow、ImpactAnalysis、修复建议
报告格式Markdown 报告遵循 references/REPORT_TEMPLATE.md,CSV 报告遵循 references/REPORT_TEMPLATE.csv
输出路径默认 ./report/,用户可指定其他路径;若目录不存在则先创建
去重规则同位置同规则问题合并;不同规则或不同风险路径的问题保留
规则覆盖必须遍历所有指定或启用的规则,不得遗漏;无效规则 ID 必须在检视前报告

项目结构

├── SKILL.md                       # 技能说明(本文件,紧凑路由)
├── README.md                      # 项目说明
├── config/
│   ├── rules.yaml                 # 规则配置
│   └── whitelist.yaml             # 白名单配置
├── references/
│   ├── RULE_INDEX.md              # 规则总索引
│   ├── WORKFLOW_GUIDE.md          # 工作流详细指南
│   ├── RULE_DEVELOPMENT_GUIDE.md  # 规则开发指南(仅规则开发时加载)
│   ├── RULE_TEMPLATE.md           # 规则文档模板(仅规则开发时加载)
│   ├── PROBLEM_TEMPLATE.md        # 检出问题格式模板
│   ├── REPORT_TEMPLATE.md         # 报告格式模板(Markdown)
│   ├── REPORT_TEMPLATE.csv        # 报告格式模板(CSV)
│   ├── ExceptionHandling/         # 异常处理(2条)
│   ├── ConcurrencyStability/      # 并发稳定性(1条)
│   ├── ResourceManagement/        # 资源管理(5条)
│   ├── BoundaryCondition/         # 边界条件(14条)
│   └── GraphicsStability/         # 图形稳定性(12条)
└── scripts/
    └── add-rule.py                # 规则脚手架工具

评论

支持 Markdown