@ohos-cpf/3rdloop 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (389) hide show
  1. package/README.md +425 -0
  2. package/bin/3rdloop.mjs +48 -0
  3. package/lib/cli.js +741 -0
  4. package/lib/config.js +318 -0
  5. package/lib/doctor.js +114 -0
  6. package/lib/exit-codes.js +31 -0
  7. package/lib/opencode.js +156 -0
  8. package/lib/orch.js +427 -0
  9. package/lib/queries.js +264 -0
  10. package/lib/runner.js +979 -0
  11. package/lib/step.js +326 -0
  12. package/lib/ui.js +223 -0
  13. package/lib/workflow.js +291 -0
  14. package/lib/workflows.js +132 -0
  15. package/package.json +50 -0
  16. package/vendor/Server/Agent/SkillSelector/README.md +344 -0
  17. package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -0
  18. package/vendor/Server/Agent/SkillSelector/index.js +14 -0
  19. package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -0
  20. package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -0
  21. package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -0
  22. package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -0
  23. package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -0
  24. package/vendor/Server/Agent/SkillSelector/types.js +63 -0
  25. package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +60 -0
  26. package/vendor/Server/Brain/AnalysisStrategies.js +422 -0
  27. package/vendor/Server/Brain/Brain.js +686 -0
  28. package/vendor/Server/Brain/DecompositionStrategies.js +621 -0
  29. package/vendor/Server/Brain/PlanPersistence.js +196 -0
  30. package/vendor/Server/Brain/SkillExecutor.js +251 -0
  31. package/vendor/Server/Brain/index.js +11 -0
  32. package/vendor/Server/CLI/cli.js +243 -0
  33. package/vendor/Server/CLI/opencode/index.js +804 -0
  34. package/vendor/Server/CLI/opencode.js +5 -0
  35. package/vendor/Server/DbUse/MessageArchive.js +61 -0
  36. package/vendor/Server/DbUse/StorageManager.js +107 -0
  37. package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -0
  38. package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -0
  39. package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -0
  40. package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -0
  41. package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -0
  42. package/vendor/Server/DbUse/index.js +160 -0
  43. package/vendor/Server/DbUse/stores/SessionStore.js +279 -0
  44. package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -0
  45. package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -0
  46. package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -0
  47. package/vendor/Server/FlexRunner/FlexRunner.js +1759 -0
  48. package/vendor/Server/FlexRunner/index.js +12 -0
  49. package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -0
  50. package/vendor/Server/Knowledge/KnowledgeManager.js +341 -0
  51. package/vendor/Server/Knowledge/index.js +33 -0
  52. package/vendor/Server/LoopEngine/LoopEngine.js +1133 -0
  53. package/vendor/Server/LoopEngine/index.js +11 -0
  54. package/vendor/Server/Orchestrator/Orchestrator.js +1425 -0
  55. package/vendor/Server/Orchestrator/StepNode.js +312 -0
  56. package/vendor/Server/Orchestrator/index.js +13 -0
  57. package/vendor/Server/Routes/controllers/BrainController.js +241 -0
  58. package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -0
  59. package/vendor/Server/Routes/controllers/HealthController.js +44 -0
  60. package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -0
  61. package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -0
  62. package/vendor/Server/Routes/controllers/OrchestratorController.js +911 -0
  63. package/vendor/Server/Routes/controllers/StatsController.js +57 -0
  64. package/vendor/Server/Routes/controllers/StreamController.js +67 -0
  65. package/vendor/Server/Routes/library/logger.js +179 -0
  66. package/vendor/Server/Routes/library/zipArchive.js +172 -0
  67. package/vendor/Server/Routes/router/Router.js +204 -0
  68. package/vendor/Server/Routes/routes/brain.js +47 -0
  69. package/vendor/Server/Routes/routes/flexrunner.js +72 -0
  70. package/vendor/Server/Routes/routes/health.js +28 -0
  71. package/vendor/Server/Routes/routes/index.js +57 -0
  72. package/vendor/Server/Routes/routes/knowledge.js +55 -0
  73. package/vendor/Server/Routes/routes/loopengine.js +58 -0
  74. package/vendor/Server/Routes/routes/orchestrator.js +61 -0
  75. package/vendor/Server/Routes/routes/registry.js +98 -0
  76. package/vendor/Server/Routes/routes/stats.js +23 -0
  77. package/vendor/Server/Routes/routes/stream.js +30 -0
  78. package/vendor/Server/Routes/server.js +202 -0
  79. package/vendor/Server/Routes/sse/SseHub.js +308 -0
  80. package/vendor/Server/Skills/acceptance-check/SKILL.md +174 -0
  81. package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -0
  82. package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -0
  83. package/vendor/Server/Skills/arkts-code-check/SKILL.md +314 -0
  84. package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +160 -0
  85. package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +29 -0
  86. package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +222 -0
  87. package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +220 -0
  88. package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +329 -0
  89. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -0
  90. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +433 -0
  91. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -0
  92. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +789 -0
  93. package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -0
  94. package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -0
  95. package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -0
  96. package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -0
  97. package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -0
  98. package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +99 -0
  99. package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -0
  100. package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -0
  101. package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +433 -0
  102. package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -0
  103. package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +789 -0
  104. package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -0
  105. package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -0
  106. package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -0
  107. package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -0
  108. package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +234 -0
  109. package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +103 -0
  110. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -0
  111. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -0
  112. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +108 -0
  113. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -0
  114. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -0
  115. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -0
  116. package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -0
  117. package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -0
  118. package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +392 -0
  119. package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -0
  120. package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +313 -0
  121. package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -0
  122. package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +166 -0
  123. package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +309 -0
  124. package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -0
  125. package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -0
  126. package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +361 -0
  127. package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +146 -0
  128. package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +253 -0
  129. package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +115 -0
  130. package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +263 -0
  131. package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -0
  132. package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -0
  133. package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -0
  134. package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -0
  135. package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +519 -0
  136. package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -0
  137. package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +93 -0
  138. package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -0
  139. package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -0
  140. package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +433 -0
  141. package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -0
  142. package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +789 -0
  143. package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -0
  144. package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +229 -0
  145. package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -0
  146. package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -0
  147. package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +576 -0
  148. package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +575 -0
  149. package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -0
  150. package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +491 -0
  151. package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -0
  152. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -0
  153. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +433 -0
  154. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -0
  155. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +789 -0
  156. package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -0
  157. package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +312 -0
  158. package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -0
  159. package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +134 -0
  160. package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -0
  161. package/vendor/Server/Skills/flutter-interface/README.md +75 -0
  162. package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -0
  163. package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -0
  164. package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -0
  165. package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -0
  166. package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -0
  167. package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +518 -0
  168. package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +382 -0
  169. package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +342 -0
  170. package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -0
  171. package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +519 -0
  172. package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +407 -0
  173. package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +653 -0
  174. package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +397 -0
  175. package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +745 -0
  176. package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +721 -0
  177. package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -0
  178. package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -0
  179. package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -0
  180. package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -0
  181. package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -0
  182. package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -0
  183. package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -0
  184. package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -0
  185. package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -0
  186. package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +301 -0
  187. package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +105 -0
  188. package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +127 -0
  189. package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +208 -0
  190. package/vendor/Server/Skills/rn-code-check/SKILL.md +321 -0
  191. package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +235 -0
  192. package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +189 -0
  193. package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +247 -0
  194. package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -0
  195. package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -0
  196. package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -0
  197. package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -0
  198. package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -0
  199. package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -0
  200. package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -0
  201. package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -0
  202. package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -0
  203. package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -0
  204. package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -0
  205. package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -0
  206. package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -0
  207. package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -0
  208. package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -0
  209. package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -0
  210. package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -0
  211. package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -0
  212. package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -0
  213. package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -0
  214. package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -0
  215. package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -0
  216. package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -0
  217. package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -0
  218. package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -0
  219. package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -0
  220. package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +684 -0
  221. package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -0
  222. package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -0
  223. package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -0
  224. package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -0
  225. package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -0
  226. package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -0
  227. package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -0
  228. package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -0
  229. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -0
  230. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -0
  231. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -0
  232. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -0
  233. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -0
  234. package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -0
  235. package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -0
  236. package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -0
  237. package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -0
  238. package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -0
  239. package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -0
  240. package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -0
  241. package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -0
  242. package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -0
  243. package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -0
  244. package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -0
  245. package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -0
  246. package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -0
  247. package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -0
  248. package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +58 -0
  249. package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -0
  250. package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -0
  251. package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +75 -0
  252. package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -0
  253. package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +339 -0
  254. package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +83 -0
  255. package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +859 -0
  256. package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +122 -0
  257. package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +279 -0
  258. package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -0
  259. package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -0
  260. package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -0
  261. package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -0
  262. package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -0
  263. package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +506 -0
  264. package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +280 -0
  265. package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -0
  266. package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +209 -0
  267. package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -0
  268. package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -0
  269. package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -0
  270. package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -0
  271. package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -0
  272. package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -0
  273. package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -0
  274. package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -0
  275. package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -0
  276. package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -0
  277. package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -0
  278. package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -0
  279. package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -0
  280. package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -0
  281. package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -0
  282. package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -0
  283. package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -0
  284. package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -0
  285. package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -0
  286. package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -0
  287. package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -0
  288. package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -0
  289. package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -0
  290. package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -0
  291. package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -0
  292. package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -0
  293. package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -0
  294. package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -0
  295. package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -0
  296. package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -0
  297. package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -0
  298. package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -0
  299. package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -0
  300. package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -0
  301. package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -0
  302. package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +498 -0
  303. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -0
  304. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -0
  305. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -0
  306. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -0
  307. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -0
  308. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -0
  309. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -0
  310. package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -0
  311. package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -0
  312. package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -0
  313. package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -0
  314. package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -0
  315. package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -0
  316. package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -0
  317. package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -0
  318. package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -0
  319. package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -0
  320. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -0
  321. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -0
  322. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -0
  323. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -0
  324. package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -0
  325. package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -0
  326. package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -0
  327. package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -0
  328. package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -0
  329. package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -0
  330. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -0
  331. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -0
  332. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -0
  333. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -0
  334. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -0
  335. package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -0
  336. package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -0
  337. package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -0
  338. package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -0
  339. package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -0
  340. package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -0
  341. package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +255 -0
  342. package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +77 -0
  343. package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -0
  344. package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +174 -0
  345. package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -0
  346. package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -0
  347. package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -0
  348. package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +137 -0
  349. package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -0
  350. package/vendor/Server/Skills/skill-generator/SKILL.md +365 -0
  351. package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -0
  352. package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -0
  353. package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -0
  354. package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -0
  355. package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -0
  356. package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -0
  357. package/vendor/Server/Skills/task-analysis/SKILL.md +234 -0
  358. package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -0
  359. package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -0
  360. package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -0
  361. package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -0
  362. package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -0
  363. package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -0
  364. package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -0
  365. package/vendor/Server/Skills/task-decomposition/SKILL.md +529 -0
  366. package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -0
  367. package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -0
  368. package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -0
  369. package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -0
  370. package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -0
  371. package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -0
  372. package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -0
  373. package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -0
  374. package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -0
  375. package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -0
  376. package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -0
  377. package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +425 -0
  378. package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -0
  379. package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -0
  380. package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -0
  381. package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -0
  382. package/vendor/Server/TestCheck/TestCheck.js +775 -0
  383. package/vendor/Server/TestCheck/index.js +11 -0
  384. package/vendor/Server/library/McpToolGuide.js +280 -0
  385. package/vendor/Server/library/StatsService.js +127 -0
  386. package/vendor/Server/library/cstTime.js +16 -0
  387. package/vendor/Server/package.json +17 -0
  388. package/vendor/VERSION +3 -0
  389. package/workflows/pr-check.mjs +106 -0
@@ -0,0 +1,339 @@
1
+ ---
2
+ name: rn-library-memory-leak-check
3
+ description: 对 RN 三方库鸿蒙化代码进行内存泄露检视,聚焦 ArkTS/ETS 与 C++ NAPI 层,分析 TurboModule 生命周期、NativeComponent 资源管理、Bridge 事件监听、NAPI 引用管理、JSI 绑定泄露等内存安全问题,生成严苛评分报告(0-100分)。作为 RN 仓库检视流程第五阶段,依赖编码质量检视结果。Use when 需要对 RN 鸿蒙化库进行内存泄露风险检视或评估内存管理安全性。关键词:内存泄漏、NAPI、TurboModule、JSI、鸿蒙化、ArkTS。
4
+ license: Apache-2.0
5
+ compatibility: 需要访问 Git 仓库、分析 ohos 目录下的 ETS/C++ 源码
6
+ metadata:
7
+ version: "1.0.0"
8
+ ---
9
+
10
+ # RNLibraryMemoryLeakCheckSkill
11
+
12
+ 对 RN 三方库的**鸿蒙化实现代码**进行内存泄露风险检视,识别 ArkTS/ETS 层与 C/C++ NAPI 绑定层代码中的潜在内存泄露问题,评估资源管理安全性。
13
+
14
+ > ⚠️ **核心定位**:本 SKILL **仅检视鸿蒙化代码**,不检视 RN JS 层或非鸿蒙化部分的代码。检视范围包括:
15
+ > - 鸿蒙平台特有的 ArkTS/ETS 代码(TurboModule 实现、NativeComponent 渲染、EventEmitter 等)
16
+ > - 鸿蒙 Native C++ 代码(NAPI 绑定、JSI HostFunction/HostObject、TurboModule C++ 层等)
17
+ > - 鸿蒙平台特有的 API 资源管理(如 GattClientDevice、NAPI 引用、@ohos 模块等)
18
+ >
19
+ > **重要**:目录名称不固定,需通过源码扫描识别鸿蒙化代码特征
20
+
21
+ ---
22
+
23
+ ## 任务参数
24
+
25
+ | 参数 | 类型 | 必填 | 说明 |
26
+ |------|------|------|------|
27
+ | `repoUrl` | string | ✅ | Git 仓库地址,支持分支 `?branch=xxx` |
28
+ | `outputDir` | string | ✅ | 输出目录绝对路径,存放检视报告 |
29
+ | `interfaceDocPath` | string | ✅ | 接口规格说明文档路径 |
30
+ | `repoName` | string | ✅ | 仓库名称(用于报告标识) |
31
+
32
+ ---
33
+
34
+ ## 输入依赖
35
+
36
+ 本 SKILL 是 RN 仓库检视流程的**第五阶段**,依赖:
37
+
38
+ - **前置 SKILL**: `rn-library-code-quality-check`
39
+ - **输入文件**: `接口规格说明.md`、`编码质量检视报告.md`
40
+ - **仓库源码**: 已克隆到 `{outputDir}/source/`,重点分析 `ohos/` 目录
41
+
42
+ > 💡 **编码质量报告为可选参考**:若 `编码质量检视报告.md` 不存在(流程未编排编码质量检视),直接跳过该参考输入,独立完成内存泄露检视,不影响评分。
43
+
44
+ > 💡 **利用前置报告**:参考编码质量检视报告中标记的架构问题和代码规范问题,重点关注其中涉及的资源管理相关代码段。
45
+
46
+ ---
47
+
48
+ ## 工作流程概览
49
+
50
+ ```
51
+ Phase 0: 鸿蒙代码定位与范围识别
52
+ ↓ (确认鸿蒙化实现 / 排除 RNJS 三方库)
53
+ Phase 1: TurboModule/NativeModule 生命周期检查
54
+
55
+ Phase 2: 事件监听器管理检查
56
+
57
+ Phase 3: ArkTS 内存管理检查
58
+
59
+ Phase 4: C++ Native 内存检查
60
+
61
+ Phase 5: 严苛评分计算与报告输出
62
+ ```
63
+
64
+ ---
65
+
66
+ ## Phase 0:鸿蒙代码定位与范围识别
67
+
68
+ ### 0.1 RN JS 三方库判定
69
+
70
+ 扫描源码 ts、js 和 tsx 文件,识别是否**不包含** TurboModuleRegistry、NativeModules、codegenNativeComponent 等 RN 鸿蒙化特征。若不包含,判定为 **RNJS 三方库**,不进行后续检视,直接输出报告评分 0 分,标注"RNJS 三方库"。
71
+
72
+ ### 0.2 鸿蒙代码特征识别
73
+
74
+ 扫描源码文件,通过代码特征(而非仅依赖目录名称)识别鸿蒙化实现:
75
+
76
+ - **ArkTS/ETS 特征**:`@ohos` 模块导入、TurboModule 鸿蒙实现、`@Component` NativeComponent、NativeEventEmitter/DeviceEventEmitter、`.ets` 文件
77
+ - **C++ Native 特征**:`RNOH/CppComponentInstance.h`、`napi/native_api.h`、`ReactCommon/TurboModule.h`、NAPI 函数调用(`napi_create_reference`、`napi_wrap`)
78
+
79
+ > 详细特征模式、代码示例和目录结构参见 [鸿蒙代码特征识别模式](references/HARMONY_CODE_PATTERNS.md)
80
+
81
+ ### 0.3 扫描执行
82
+
83
+ 可使用辅助脚本快速扫描:
84
+
85
+ ```bash
86
+ python3 {skillDir}/scripts/scan_harmony_code.py '{"sourceDir": "{{outputDir}}/source"}'
87
+ ```
88
+
89
+ > `workdir: "{{outputDir}}"`
90
+
91
+ **判定规则**:
92
+ - 优先通过代码特征识别,而非仅依赖目录名称
93
+ - 扫描到鸿蒙代码特征 → 确认鸿蒙化实现,进入 Phase 1
94
+ - 未发现鸿蒙代码特征 → 报告评分 0 分,标注"未实现鸿蒙化"
95
+
96
+ ---
97
+
98
+ ## Phase 1:TurboModule/NativeModule 生命周期检查
99
+
100
+ ### 1.1 TurboModule 生命周期绑定(致命项,20分)
101
+
102
+ | 检查项 | 问题描述 | 扣分规则 |
103
+ |--------|----------|----------|
104
+ | `__onDestroy__` 资源释放 | 是否释放**所有**资源 | 未释放扣 20 分 |
105
+ | Bridge 事件监听清理 | NativeEventEmitter/DeviceEventEmitter 监听是否全部移除 | 未移除扣 15 分 |
106
+ | Map 数据清理 | 模块级 Map(如 `mConnectedDevices`)是否清空 | 未清空扣 12 分 |
107
+ | 释放顺序 | 是否按正确顺序释放(先移除监听→停操作→清数据→释放资源) | 顺序错误扣 8 分 |
108
+
109
+ **关键检查**:`__onDestroy__` 必须按"移除监听 → 停止操作 → 释放系统资源 → 清空 Map → 置空回调引用"顺序执行。
110
+
111
+ ### 1.2 NativeComponent 生命周期绑定(致命项,15分)
112
+
113
+ | 检查项 | 问题描述 | 扣分规则 |
114
+ |--------|----------|----------|
115
+ | `aboutToDisappear` / `onDropViewInstance` | 视图销毁时是否释放所有关联资源 | **未释放扣 15 分(致命)** |
116
+ | View 级监听器清理 | 视图级事件监听是否在视图销毁时移除 | 未移除扣 12 分 |
117
+ | Native 侧事件发送器释放 | RCTEventEmitter 引用是否清除 | 未清除扣 10 分 |
118
+ | 子组件/子视图递归释放 | 自定义 View 的子 View 是否递归释放 | 未释放扣 10 分 |
119
+
120
+ **关键检查**:
121
+ - `aboutToDisappear` 必须释放视图持有的所有系统资源(DescriptorChangesListener、Sensor、Location、Timer 等)
122
+ - 组件属性缓存的实例是否释放(Controller、Operator 等)
123
+ - 多实例场景:同一 ViewManager 创建的多个 View 实例必须各自独立清理
124
+
125
+ > 详细代码示例(正例/反例)参见 [检查清单 - 1. TurboModule/NativeModule 生命周期管理](references/CHECKLIST.md#1-turbomodulenativemodule-生命周期管理)
126
+
127
+ ---
128
+
129
+ ## Phase 2:事件监听器管理检查
130
+
131
+ ### 2.1 RN Bridge 事件机制(致命项,20分)
132
+
133
+ | 检查项 | 问题描述 | 扣分规则 |
134
+ |--------|----------|----------|
135
+ | NativeEventEmitter addListener/removeAllListeners | 每个监听是否在适当时机移除 | **未移除扣 15 分** |
136
+ | DeviceEventEmitter 监听泄露 | DeviceEventEmitter.addListener 后是否在 destroy 移除 | 未移除扣 15 分 |
137
+ | RCTEventEmitter 强引用 | 原生侧 RCTEventEmitter 是否持有已销毁 View 引用 | 持有扣 12 分 |
138
+ | 事件发送器生命周期 | EventEmitter 实例是否随 TurboModule 销毁 | 未销毁扣 10 分 |
139
+
140
+ **典型泄露场景**:
141
+ - 每次调用都注册新监听器,destroy 时未移除
142
+ - Promise 回调中的监听器 resolve 后未移除
143
+ - RCTEventEmitter 向已销毁 View 发送事件
144
+
145
+ ### 2.2 鸿蒙 API 事件订阅(致命项,20分)
146
+
147
+ | 检查项 | 问题描述 | 扣分规则 |
148
+ |--------|----------|----------|
149
+ | `on/off` 对称性 | 每个 `on()` 是否有对应 `off()` | **无对应 off 扣 20 分(致命)** |
150
+ | 回调参数匹配 | `off()` 是否传入正确的回调函数引用 | 参数错误扣 12 分 |
151
+ | 多次注册风险 | 同一事件是否可能被多次注册监听 | 存在风险扣 15 分 |
152
+ | TurboModule 级 vs View 级监听 | TurboModule 级监听不应在 View 销毁时取消 | 混淆扣 10 分 |
153
+
154
+ **特殊系统资源释放检查**:
155
+
156
+ | 资源类型 | 检查项 | 扣分 |
157
+ |----------|--------|------|
158
+ | GattClientDevice | 是否调用 `close()` | **未调用扣 20 分** |
159
+ | Sensor | 是否调用 `off()` 注销 | **未注销扣 20 分** |
160
+ | 数据库连接 | rdb 是否调用 `close()` | **未关闭扣 20 分** |
161
+ | BLE 扫描 | `ble.stopBLEScan()` 是否调用 | 未调用扣 15 分 |
162
+ | 地理位置 | `geoLocationManager.off()` 是否取消 | 未取消扣 15 分 |
163
+ | Timer | setInterval/setTimeout 是否清除 | 未清除扣 12 分 |
164
+
165
+ > 详细代码示例和常见泄露场景参见 [检查清单 - 2. RN Bridge 事件机制](references/CHECKLIST.md#2-rn-bridge-事件机制) 和 [检查清单 - 3. 鸿蒙 API 事件订阅管理](references/CHECKLIST.md#3-鸿蒙-api-事件订阅管理)
166
+
167
+ ---
168
+
169
+ ## Phase 3:ArkTS 内存管理检查
170
+
171
+ ### 3.1 闭包循环引用(致命项,15分)
172
+
173
+ | 检查项 | 问题描述 | 扣分规则 |
174
+ |--------|----------|----------|
175
+ | this 捕获 | 箭头函数是否捕获 `this` 引用且未在 destroy 释放 | 捕获且未释放扣 15 分 |
176
+ | 闭包保留 | 闭包是否保留外部变量引用且无法释放 | 保留且无法释放扣 12 分 |
177
+ | RN 回调链泄露 | JS → Native → JS 回调链中的闭包引用是否正确断开 | 未断开扣 12 分 |
178
+ | 异步回调持有 stale context | setTimeout/Promise 回调中引用已销毁 TurboModule 上下文 | 引用扣 10 分 |
179
+
180
+ **检测要点**:
181
+ - 箭头函数捕获 `this` 形成循环引用链(`this.gatt → 回调 → this → this.gatt`)
182
+ - TurboModule 级回调持有 View 实例引用,View 销毁后回调仍持有引用
183
+ - 推荐在构造函数中预创建回调,destroy 时清除引用打破循环
184
+
185
+ ### 3.2 Map/Set 数据清理(严苛项,10分)
186
+
187
+ | 检查项 | 问题描述 | 扣分规则 |
188
+ |--------|----------|----------|
189
+ | Map.clear() | TurboModule 的 Map 数据是否在 destroy 时调用 clear() | 未清理扣 10 分 |
190
+ | View 实例 Map | ViewManager 维护的 View 实例 Map 是否在 onDropViewInstance 删除 | 未删除扣 12 分 |
191
+ | 静态 Map 风险 | 静态 Map 是否无限累积 | **累积风险扣 15 分** |
192
+ | 缓存上限 | 是否设置缓存大小上限 | 无上限扣 8 分 |
193
+
194
+ > 详细代码示例参见 [检查清单 - 4. 闭包与上下文泄露](references/CHECKLIST.md#4-闭包与上下文泄露)
195
+
196
+ ---
197
+
198
+ ## Phase 4:C++ Native 内存检查
199
+
200
+ ### 4.1 NAPI 引用管理(致命项,20分)
201
+
202
+ | 检查项 | 问题描述 | 扣分规则 |
203
+ |--------|----------|----------|
204
+ | `napi_ref` 释放 | 是否在 dispose/destroy 时调用 `napi_delete_reference` | **未释放扣 20 分(致命)** |
205
+ | Handle Scope 清理 | 是否正确关闭 `napi_handle_scope` | **未关闭扣 20 分(致命)** |
206
+ | finalize 回调 | `napi_wrap` 是否提供 finalize 回调释放 Native 对象 | **缺失扣 20 分(致命)** |
207
+ | 引用计数平衡 | `napi_create_reference` 和 `napi_delete_reference` 数量是否匹配 | 不平衡扣 18 分 |
208
+ | ArrayBuffer 外部资源 | `napi_create_external` 的 finalize 回调是否缺失 | 缺失扣 15 分 |
209
+ | 线程安全函数引用 | `napi_create_threadsafe_function` 后是否调用 `napi_release_threadsafe_function` | 未释放扣 15 分 |
210
+
211
+ ### 4.2 TurboModule/JSI 绑定内存(致命项,15分)
212
+
213
+ | 检查项 | 问题描述 | 扣分规则 |
214
+ |--------|----------|----------|
215
+ | TurboModule C++ 实例释放 | C++ 实例在 JS 对象回收后是否释放 | **未释放扣 15 分(致命)** |
216
+ | JSI HostFunction 泄露 | HostFunction 绑定在 Runtime 销毁时是否释放 | **未释放扣 15 分** |
217
+ | JSI HostObject 属性回调 | HostObject 的 getter/setter 闭包持有外部引用未清理 | 未清理扣 12 分 |
218
+ | 跨语言回调链 | C++ 层回调引用 JS 函数的双向引用是否正确断开 | 未断开扣 12 分 |
219
+ | C++ 与 JS 生命周期不一致 | C++ 侧实例比 JS 侧对象存活更久,导致悬垂引用 | **不一致扣 15 分** |
220
+ | Codegen 生成代码资源释放 | Codegen 自动生成的代码中资源释放逻辑是否完整 | 不完整扣 10 分 |
221
+
222
+ ### 4.3 Native 内存分配释放(致命项,15分)
223
+
224
+ | 检查项 | 问题描述 | 扣分规则 |
225
+ |--------|----------|----------|
226
+ | malloc/free 匹配 | 每个 `malloc` 是否有对应 `free` | **不匹配扣 15 分(致命)** |
227
+ | new/delete 匹配 | 每个 `new` 是否有对应 `delete` | **不匹配扣 15 分(致命)** |
228
+ | new[]/delete[] 匹配 | `new[]` 是否使用 `delete[]` 释放 | **误用扣 15 分** |
229
+ | 智能指针循环引用 | `shared_ptr` 循环引用导致引用计数永不为零 | **循环引用扣 15 分** |
230
+ | 异常路径释放 | 异常发生时是否释放已分配内存 | 未释放扣 12 分 |
231
+ | 全局/静态缓冲区增长 | 全局 vector/map 无上限增长 | 无清理扣 12 分 |
232
+
233
+ ### 4.4 跨语言生命周期不一致(致命项,15分)
234
+
235
+ | 检查项 | 问题描述 | 扣分规则 |
236
+ |--------|----------|----------|
237
+ | ArkTS/C++ 不对称释放 | ArkTS 层调用 off() 但 C++ 层未释放对应资源 | **不对称扣 15 分** |
238
+ | Native 对象生命周期不一致 | C++ Native 对象与 ArkTS 包装对象生命周期不一致 | **不一致扣 15 分** |
239
+ | TurboModule 与 View 生命周期混淆 | TurboModule 级资源不应在 View 销毁时释放 | 混淆扣 12 分 |
240
+ | Bridge 消息队列累积 | 原生模块与 JS 之间的消息队列在模块销毁时未清空 | 未清空扣 10 分 |
241
+
242
+ > 详细代码示例(NAPI 管理、JSI 绑定、智能指针循环引用、跨语言释放不对称)参见 [检查清单 - 5~8 节](references/CHECKLIST.md#5-napi-引用管理)
243
+
244
+ ---
245
+
246
+ ## Phase 5:严苛评分计算与报告输出
247
+
248
+ ### 5.1 评分规则
249
+
250
+ 采用**严苛扣分制**,从 100 分开始扣减:
251
+
252
+ | 扣分类型 | 单项扣分 | 典型问题 |
253
+ |----------|----------|----------|
254
+ | 致命问题 | -20 分 | TurboModule destroy 未释放、NAPI 引用未释放、Handle Scope 未关闭、malloc/free 不匹配、鸿蒙 API 事件无对应取消、NativeEventEmitter 监听未移除、GattClientDevice/Sensor/数据库未释放 |
255
+ | 严重问题 | -12 分 | Bridge 事件监听未移除、闭包循环引用、Map 数据未清理、View 实例 Map 未删除、跨语言回调链泄露 |
256
+ | 中等问题 | -8 分 | 回调参数匹配错误、释放顺序不当、初始化不完整 |
257
+ | 轻微问题 | -5 分 | 订阅状态未追踪、缓存无上限 |
258
+
259
+ ### 5.2 特殊规则(直接 0 分)
260
+
261
+ - 未发现鸿蒙代码特征 → 0 分
262
+ - 致命问题 ≥ 3 个 → 0 分
263
+ - 致命问题 ≥ 2 个 + 严重问题 ≥ 3 个 → 0 分
264
+ - 关键路径(TurboModule 注册、NAPI 绑定入口)存在致命问题 → 0 分
265
+ - 累计扣分超过 60 分 → 0 分
266
+
267
+ > **严苛标准**:85 分以下不建议发布,55 分以下视为严重不可用。
268
+ > 完整评分规则汇总参见 [检查清单 - 9. 评分规则汇总](references/CHECKLIST.md#9-评分规则汇总)
269
+
270
+ ### 5.3 评分等级
271
+
272
+ | 分数区间 | 等级 | 说明 |
273
+ |----------|------|------|
274
+ | 95-100 分 | 优秀 | 资源管理完善,无任何泄露风险 |
275
+ | 85-94 分 | 良好 | 仅存在少量轻微风险,无严重/致命问题 |
276
+ | 70-84 分 | 一般 | 存在严重级别泄露,需针对性修复 |
277
+ | 55-69 分 | 较差 | 存在致命级别泄露风险,内存安全受威胁 |
278
+ | <55 分 | 严重不足 | 多个致命泄露问题,内存风险极高,不可发布 |
279
+
280
+ ### 5.4 报告生成
281
+
282
+ 在 `{outputDir}` 下生成 `内存泄露检视报告.md`,报告必须包含 `**综合评分:XX/100**` 格式且位于"综合评分"章节,确保可被 `_parseRNLibraryScore` 函数正确解析。
283
+
284
+ > 报告模板和评分等级对照表参见 [报告模板](assets/REPORT_TEMPLATE.md)
285
+
286
+ **报告关键要求**:
287
+ - 泄露风险清单必须标注 **语言层**(ArkTS/C++/RN/跨语言)
288
+ - 每条泄露记录包含足够的定位信息(文件路径+行号)
289
+ - 扣分明细表按致命/严重/中等/轻微分类汇总
290
+
291
+ ---
292
+
293
+ ## 输出产物
294
+
295
+ | 产物 | 文件名 | 说明 |
296
+ |------|--------|------|
297
+ | 内存泄露检视报告 | `内存泄露检视报告.md` | 综合评分 + 扣分明细 + 9维度评分 + 泄露清单 + 修复建议 |
298
+
299
+ 所有产物写入 `{outputDir}` 目录。
300
+
301
+ > ⚠️ **输出文件自检**:写入结果文件前,先确认 `内存泄露检视报告.md` 已存在且内容完整(**独立文件,禁止只写入 result 执行结果文件**)。若报告内容仅在草稿中,必须先将其保存为上述独立文件。
302
+
303
+ ### 结构化指标输出(必须执行)
304
+
305
+ 执行环境会在任务 prompt 中下发一个**结构化指标文件输出路径**(`stepId{X}_loop{L}_meta_{N}.json`)。
306
+ 检视完成后,**必须**将最终评分以下述 JSON 对象写入该路径:
307
+
308
+ ```json
309
+ {
310
+ "memoryLeakScore": 85,
311
+ "scoreReason": "致命问题1处-20,资源未释放2处-16等(一句话判定依据,≤50字;触发一票否决时必须注明)"
312
+ }
313
+ ```
314
+
315
+ | 字段 | 类型 | 说明 |
316
+ |------|------|------|
317
+ | `memoryLeakScore` | number | 内存泄露评分(0-100 整数,与报告中 `**综合评分:XX/100**` 的数值一致) |
318
+ | `scoreReason` | string | 评分判定依据摘要(可选,前端悬浮提示展示;0 分时强烈建议写明触发规则,如"关键路径致命问题触发归零") |
319
+
320
+ **说明**:该文件由执行框架自动收割入库(前端/历史列表直接读取评分,无需解析报告文本)。若 prompt 未下发该路径则跳过本节。
321
+
322
+ ---
323
+
324
+ ## 评分权重
325
+
326
+ 本 SKILL 在 RN 仓库检视综合评分中权重为 **20%**。
327
+
328
+ ---
329
+
330
+ ## 与前置/后置 SKILL 的衔接
331
+
332
+ - **前置依赖**:`rn-library-code-quality-check`(第4阶段)输出的 `编码质量检视报告.md`
333
+ - **后置输入**:本 SKILL 输出的 `内存泄露检视报告.md` 将作为后续阶段的参考输入
334
+
335
+ ---
336
+
337
+ ## 详细检查清单
338
+
339
+ > 完整的检查项、正例/反例代码示例和扣分细则见 [CHECKLIST.md](references/CHECKLIST.md)
@@ -0,0 +1,83 @@
1
+ # 内存泄露检视报告模板
2
+
3
+ > 本模板定义 RN 鸿蒙化内存泄露检视报告的输出格式。报告中必须包含 `**综合评分:XX/100**` 格式且位于"综合评分"章节,确保可被 `_parseRNLibraryScore` 函数正确解析。
4
+
5
+ ---
6
+
7
+ ## 报告模板
8
+
9
+ ```markdown
10
+ # {repoName} 内存泄露检视报告
11
+
12
+ ## 一、检视概览
13
+
14
+ | 字段 | 内容 |
15
+ |------|------|
16
+ | **仓库名称** | {repoName} |
17
+ | **检视类型** | RN 鸿蒙化内存泄露检视 |
18
+ | **检视时间** | {timestamp} |
19
+ | **分析文件数(ArkTS层)** | {etsFileCount} |
20
+ | **分析文件数(C/C++层)** | {cppFileCount} |
21
+
22
+ ## 二、综合评分
23
+
24
+ **综合评分:{score}/100**
25
+
26
+ > 评分等级:{level}。{levelDescription}
27
+
28
+ ### 扣分明细
29
+
30
+ | 扣分项 | 数量 | 单项扣分 | 小计 |
31
+ |--------|------|----------|------|
32
+ | 致命问题 | {fatalCount} | -20 | {fatalTotal} |
33
+ | 严重问题 | {majorCount} | -12 | {majorTotal} |
34
+ | 中等问题 | {mediumCount} | -8 | {mediumTotal} |
35
+ | 轻微问题 | {minorCount} | -5 | {minorTotal} |
36
+
37
+ ## 三、检视维度明细
38
+
39
+ ### 3.1 TurboModule/NativeModule 生命周期管理
40
+ ### 3.2 NativeComponent 生命周期管理
41
+ ### 3.3 RN Bridge 事件机制
42
+ ### 3.4 鸿蒙 API 事件订阅
43
+ ### 3.5 闭包与上下文泄露
44
+ ### 3.6 Map/Set 数据清理
45
+ ### 3.7 NAPI 引用管理
46
+ ### 3.8 TurboModule/JSI 绑定内存
47
+ ### 3.9 Native 内存分配释放
48
+
49
+ ## 四、泄露风险清单
50
+
51
+ | # | 文件 | 行号 | 语言层 | 严重度 | 泄露类型 | 泄露描述 | 修复建议 |
52
+ |---|------|------|--------|--------|----------|----------|----------|
53
+
54
+ > **语言层**列标注:`ArkTS`(ETS/TS 层)、`C++`(Native 层)、`RN`(Bridge/TurboModule 层)、`跨语言`(多层交互)
55
+
56
+ ## 五、改进建议
57
+
58
+ ### 5.1 致命问题修复优先级
59
+ ### 5.2 严重问题修复建议
60
+ ### 5.3 通用改进方案
61
+ ```
62
+
63
+ ---
64
+
65
+ ## 评分等级对照表
66
+
67
+ | 分数区间 | 等级 | 说明 |
68
+ |----------|------|------|
69
+ | 95-100 分 | 优秀 | 资源管理完善,无任何泄露风险 |
70
+ | 85-94 分 | 良好 | 仅存在少量轻微风险,无严重/致命问题 |
71
+ | 70-84 分 | 一般 | 存在严重级别泄露,需针对性修复 |
72
+ | 55-69 分 | 较差 | 存在致命级别泄露风险,内存安全受威胁 |
73
+ | <55 分 | 严重不足 | 多个致命泄露问题,内存风险极高,不可发布 |
74
+
75
+ > **严苛标准**:内存泄露不同于一般代码质量问题,一旦发生即造成持续损害。85 分以下即不建议发布,55 分以下视为严重不可用。
76
+
77
+ ---
78
+
79
+ ## 注意事项
80
+
81
+ - 泄露风险清单必须标注 **语言层**(ArkTS/C++/RN/跨语言)
82
+ - 每条泄露记录包含足够的定位信息(文件路径+行号),便于后续 SKILL 参考和综合报告汇总
83
+ - 综合评分格式必须为 `**综合评分:{score}/100**`,位于"综合评分"章节