@ohos-cpf/3rdloop 0.0.2 → 0.0.4

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 (393) hide show
  1. package/README.md +290 -244
  2. package/bin/3rdloop.mjs +46 -46
  3. package/lib/cli.js +781 -781
  4. package/lib/config-cmd.js +451 -451
  5. package/lib/config.js +318 -318
  6. package/lib/doctor.js +113 -113
  7. package/lib/exit-codes.js +30 -30
  8. package/lib/opencode.js +155 -155
  9. package/lib/orch.js +426 -426
  10. package/lib/queries.js +263 -263
  11. package/lib/step.js +325 -325
  12. package/lib/ui.js +222 -222
  13. package/lib/update.js +279 -279
  14. package/lib/workflow.js +308 -308
  15. package/lib/workflows.js +131 -131
  16. package/package.json +50 -50
  17. package/vendor/Server/Agent/SkillSelector/README.md +343 -343
  18. package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -207
  19. package/vendor/Server/Agent/SkillSelector/index.js +14 -14
  20. package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -313
  21. package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -161
  22. package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -144
  23. package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -433
  24. package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -382
  25. package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +59 -59
  26. package/vendor/Server/Brain/AnalysisStrategies.js +422 -422
  27. package/vendor/Server/Brain/Brain.js +686 -686
  28. package/vendor/Server/Brain/DecompositionStrategies.js +621 -621
  29. package/vendor/Server/Brain/PlanPersistence.js +196 -196
  30. package/vendor/Server/Brain/SkillExecutor.js +251 -251
  31. package/vendor/Server/Brain/index.js +11 -11
  32. package/vendor/Server/CLI/cli.js +275 -275
  33. package/vendor/Server/CLI/deveco-code/index.js +71 -71
  34. package/vendor/Server/CLI/deveco-code.js +5 -5
  35. package/vendor/Server/CLI/opencode/index.js +817 -818
  36. package/vendor/Server/CLI/opencode.js +5 -5
  37. package/vendor/Server/DbUse/MessageArchive.js +61 -61
  38. package/vendor/Server/DbUse/StorageManager.js +107 -107
  39. package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -94
  40. package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -138
  41. package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -138
  42. package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -114
  43. package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -157
  44. package/vendor/Server/DbUse/index.js +160 -160
  45. package/vendor/Server/DbUse/stores/SessionStore.js +279 -279
  46. package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -133
  47. package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -262
  48. package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -279
  49. package/vendor/Server/FlexRunner/FlexRunner.js +1759 -1759
  50. package/vendor/Server/FlexRunner/index.js +12 -12
  51. package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -523
  52. package/vendor/Server/Knowledge/KnowledgeManager.js +341 -341
  53. package/vendor/Server/Knowledge/index.js +33 -33
  54. package/vendor/Server/LoopEngine/LoopEngine.js +1133 -1133
  55. package/vendor/Server/LoopEngine/index.js +11 -11
  56. package/vendor/Server/Orchestrator/Orchestrator.js +0 -3
  57. package/vendor/Server/Orchestrator/StepNode.js +312 -312
  58. package/vendor/Server/Orchestrator/index.js +13 -13
  59. package/vendor/Server/Routes/controllers/BrainController.js +241 -241
  60. package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -1125
  61. package/vendor/Server/Routes/controllers/HealthController.js +44 -44
  62. package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -355
  63. package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -788
  64. package/vendor/Server/Routes/controllers/StatsController.js +57 -57
  65. package/vendor/Server/Routes/controllers/StreamController.js +67 -67
  66. package/vendor/Server/Routes/library/logger.js +179 -179
  67. package/vendor/Server/Routes/library/zipArchive.js +172 -172
  68. package/vendor/Server/Routes/router/Router.js +204 -204
  69. package/vendor/Server/Routes/routes/brain.js +47 -47
  70. package/vendor/Server/Routes/routes/flexrunner.js +72 -72
  71. package/vendor/Server/Routes/routes/health.js +28 -28
  72. package/vendor/Server/Routes/routes/index.js +57 -57
  73. package/vendor/Server/Routes/routes/knowledge.js +55 -55
  74. package/vendor/Server/Routes/routes/loopengine.js +58 -58
  75. package/vendor/Server/Routes/routes/orchestrator.js +61 -61
  76. package/vendor/Server/Routes/routes/registry.js +97 -97
  77. package/vendor/Server/Routes/routes/stats.js +23 -23
  78. package/vendor/Server/Routes/routes/stream.js +30 -30
  79. package/vendor/Server/Routes/server.js +203 -203
  80. package/vendor/Server/Routes/sse/SseHub.js +308 -308
  81. package/vendor/Server/Skills/acceptance-check/SKILL.md +191 -191
  82. package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -52
  83. package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -77
  84. package/vendor/Server/Skills/acceptance-check/references/PHASE2_EVIDENCE_VERIFICATION.md +70 -70
  85. package/vendor/Server/Skills/arkts-code-check/SKILL.md +320 -320
  86. package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +210 -210
  87. package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +28 -28
  88. package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +233 -233
  89. package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +219 -219
  90. package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +328 -328
  91. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -93
  92. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +432 -432
  93. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -851
  94. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +788 -788
  95. package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -291
  96. package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -68
  97. package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -184
  98. package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -337
  99. package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -400
  100. package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +98 -98
  101. package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -544
  102. package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -93
  103. package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +432 -432
  104. package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -851
  105. package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +788 -788
  106. package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -174
  107. package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -321
  108. package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -100
  109. package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -185
  110. package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +233 -233
  111. package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +102 -102
  112. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -89
  113. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -62
  114. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +107 -107
  115. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -124
  116. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -90
  117. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -57
  118. package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -259
  119. package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -97
  120. package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +391 -391
  121. package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -113
  122. package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +312 -312
  123. package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -154
  124. package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +165 -165
  125. package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +308 -308
  126. package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -90
  127. package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -282
  128. package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +360 -360
  129. package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +145 -145
  130. package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +252 -252
  131. package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +114 -114
  132. package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +262 -262
  133. package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -455
  134. package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -60
  135. package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -76
  136. package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -200
  137. package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +518 -518
  138. package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -276
  139. package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +92 -92
  140. package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -767
  141. package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -93
  142. package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +432 -432
  143. package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -851
  144. package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +788 -788
  145. package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -221
  146. package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +228 -228
  147. package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -97
  148. package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -194
  149. package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +575 -575
  150. package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +574 -574
  151. package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -182
  152. package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +490 -490
  153. package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -217
  154. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -93
  155. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +432 -432
  156. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -851
  157. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +788 -788
  158. package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -299
  159. package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +311 -311
  160. package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -190
  161. package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +133 -133
  162. package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -259
  163. package/vendor/Server/Skills/flutter-interface/README.md +75 -75
  164. package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -291
  165. package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -336
  166. package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -190
  167. package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -258
  168. package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -254
  169. package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +517 -517
  170. package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +381 -381
  171. package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +341 -341
  172. package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -71
  173. package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +518 -518
  174. package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +406 -406
  175. package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +652 -652
  176. package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +396 -396
  177. package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +744 -744
  178. package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +720 -720
  179. package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -414
  180. package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -150
  181. package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -304
  182. package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -265
  183. package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -286
  184. package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -383
  185. package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -165
  186. package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -91
  187. package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -127
  188. package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +453 -301
  189. package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_CHECKLIST.md +151 -0
  190. package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +257 -105
  191. package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +191 -127
  192. package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +317 -208
  193. package/vendor/Server/Skills/rn-code-check/SKILL.md +320 -320
  194. package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +234 -234
  195. package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +188 -188
  196. package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +246 -246
  197. package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -198
  198. package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -40
  199. package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -78
  200. package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -70
  201. package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -47
  202. package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -252
  203. package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -176
  204. package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -5
  205. package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -35
  206. package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -137
  207. package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -33
  208. package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -40
  209. package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -429
  210. package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -105
  211. package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -90
  212. package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -213
  213. package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -73
  214. package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -258
  215. package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -341
  216. package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -67
  217. package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -299
  218. package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -293
  219. package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -857
  220. package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -856
  221. package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -157
  222. package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -801
  223. package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +683 -683
  224. package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -233
  225. package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -1373
  226. package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -220
  227. package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -245
  228. package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -263
  229. package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -414
  230. package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -413
  231. package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -311
  232. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -355
  233. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -115
  234. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -139
  235. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -586
  236. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -57
  237. package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -259
  238. package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -301
  239. package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -148
  240. package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -118
  241. package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -168
  242. package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -176
  243. package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -274
  244. package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -45
  245. package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -25
  246. package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -61
  247. package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -165
  248. package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -239
  249. package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -263
  250. package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -96
  251. package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +57 -57
  252. package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -99
  253. package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -64
  254. package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +74 -74
  255. package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -164
  256. package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +356 -339
  257. package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +85 -83
  258. package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +905 -859
  259. package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +124 -122
  260. package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +287 -279
  261. package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -273
  262. package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -129
  263. package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -581
  264. package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -138
  265. package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -168
  266. package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +526 -506
  267. package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +321 -280
  268. package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -221
  269. package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +220 -209
  270. package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -325
  271. package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -279
  272. package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -404
  273. package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -185
  274. package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -265
  275. package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -189
  276. package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -203
  277. package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -147
  278. package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -148
  279. package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -165
  280. package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -195
  281. package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -249
  282. package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -235
  283. package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -161
  284. package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -413
  285. package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -235
  286. package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -245
  287. package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -282
  288. package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -251
  289. package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -469
  290. package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -310
  291. package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -303
  292. package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -421
  293. package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -358
  294. package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -114
  295. package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -274
  296. package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -185
  297. package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -191
  298. package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -216
  299. package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -107
  300. package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -120
  301. package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -108
  302. package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -237
  303. package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -261
  304. package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -112
  305. package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +497 -497
  306. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -270
  307. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -164
  308. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -556
  309. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -459
  310. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -65
  311. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -512
  312. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -132
  313. package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -424
  314. package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -137
  315. package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -306
  316. package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -485
  317. package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -172
  318. package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -422
  319. package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -95
  320. package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -169
  321. package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -554
  322. package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -106
  323. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -216
  324. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -413
  325. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -269
  326. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -98
  327. package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -337
  328. package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -722
  329. package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -219
  330. package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -345
  331. package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -269
  332. package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -173
  333. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -267
  334. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -174
  335. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -111
  336. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -186
  337. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -150
  338. package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -296
  339. package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -371
  340. package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -212
  341. package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -345
  342. package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -223
  343. package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -1053
  344. package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +295 -255
  345. package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +82 -77
  346. package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -224
  347. package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +175 -174
  348. package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -967
  349. package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -1798
  350. package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -5
  351. package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +180 -137
  352. package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -145
  353. package/vendor/Server/Skills/skill-generator/SKILL.md +365 -365
  354. package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -183
  355. package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -82
  356. package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -110
  357. package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -122
  358. package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -121
  359. package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -259
  360. package/vendor/Server/Skills/task-analysis/SKILL.md +234 -234
  361. package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -160
  362. package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -190
  363. package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -224
  364. package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -162
  365. package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -55
  366. package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -126
  367. package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -256
  368. package/vendor/Server/Skills/task-decomposition/SKILL.md +528 -528
  369. package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -451
  370. package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -179
  371. package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -152
  372. package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -175
  373. package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -195
  374. package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -226
  375. package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -263
  376. package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -29
  377. package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -376
  378. package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -259
  379. package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -216
  380. package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +424 -424
  381. package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -427
  382. package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -214
  383. package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -235
  384. package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -250
  385. package/vendor/Server/TestCheck/TestCheck.js +775 -775
  386. package/vendor/Server/TestCheck/index.js +11 -11
  387. package/vendor/Server/library/McpToolGuide.js +280 -280
  388. package/vendor/Server/library/StatsService.js +126 -126
  389. package/vendor/Server/library/cstTime.js +16 -16
  390. package/vendor/VERSION +3 -3
  391. package/workflows/pr-check.mjs +105 -105
  392. package/workflows/pr-push.mjs +192 -192
  393. package/vendor/Server/Agent/SkillSelector/types.js +0 -63
@@ -1,321 +1,321 @@
1
- ---
2
- name: arkts-library-demo-scenario
3
- description: 基于覆盖率报告,为未覆盖接口生成 ArkTS 测试 Demo 描述文档。读取覆盖率报告中的未覆盖接口清单(含签名和功能描述),以接口为单位生成测试 Demo 描述(名称、描述、步骤、预期结果),并以表格形式汇总输出。允许将存在直接调用关系或属于同一功能模块的接口合并到同一个 Demo 中。当需要对鸿蒙原生库进行 Demo 覆盖率缺口填补、未覆盖接口场景规划时调用。
4
- license: Apache-2.0
5
- metadata:
6
- version: "1.0.0"
7
- category: harmonyos-development
8
- language: ArkTS/ETS
9
- ---
10
-
11
- # 鸿蒙ArkTs原生库未覆盖接口 Demo 场景生成
12
-
13
- 本 Skill 读取覆盖率报告中的未覆盖接口清单,以接口为单位自动生成测试 Demo 描述,输出为标准 Markdown 表格文档,使接口覆盖率达到 100%。
14
-
15
- > ⚠️ **核心约束**:
16
- > 1. 只生成覆盖率报告"未覆盖接口清单"中列出的接口场景
17
- > 2. 所有内容必须基于覆盖率报告中真实存在的接口签名和功能描述
18
- > 3. 严禁捏造不存在的接口、参数或行为
19
-
20
- ---
21
-
22
- ## 文档模式选择
23
-
24
- **选择规则(按顺序判断):**
25
-
26
- 1. **统计未覆盖接口数量和 Demo 预估数量**
27
- 2. **判断模式**:若未覆盖接口 ≤ 25 个 **且** Demo ≤ 8 个 → 使用单文档模式
28
- 3. **否则** → 使用多文档拆分模式
29
-
30
- | 模式 | 文件命名 | 适用条件 |
31
- |-----|---------|---------|
32
- | 单文档 | `{库名}未覆盖接口Demo场景.md` | 未覆盖接口 ≤ 25 个且 Demo ≤ 8 个 |
33
- | 多文档拆分 | `{库名}未覆盖接口Demo场景(一){模块主题}.md`、`(二)...` | 接口 > 25 个或 Demo > 8 个 |
34
-
35
- > ⚠️ **多文档模式注意**:Demo 序号和接口覆盖矩阵序号在所有文档间保持全局连续。
36
-
37
- ## 核心约束概览
38
-
39
- | 约束类别 | 关键规则 |
40
- |---------|---------|
41
- | **内容真实性** | 所有内容必须基于覆盖率报告中真实存在的接口签名和功能描述,严禁凭空捏造 |
42
- | **接口覆盖** | 每个未覆盖接口必须被至少一个 Demo 覆盖,补充后覆盖率达到 100% |
43
- | **Demo 分组** | 存在直接调用关系或属于同一功能模块的接口可合并;不同功能方向、无调用关系的接口禁止强行合并 |
44
- | **可验证性** | 每个按钮/步骤必须对应至少一条设备可观测的预期结果;依赖平台事件且已知不触发的接口改为平台限制说明 |
45
- | **ArkUI 响应式** | 计数器、状态标志变量必须声明为 `@State`;异步回调链须规划双计数器 |
46
- | **命名规范** | Demo 名称格式:`[功能动词][操作对象][特征/场景]Demo`,不超过 20 字 |
47
- | **输出格式** | 步骤和预期结果为编号列表;接口签名格式:`` `函数名(参数类型): 返回类型` `` |
48
-
49
- ---
50
-
51
- ## 适用场景
52
-
53
- - 为已 ohos 化鸿蒙原生库填补 Demo 覆盖率缺口
54
- - 生成开发者可直接参考的测试 Demo 描述文档
55
- - 为 QA / 开发团队提供可执行的 Demo 实现指导
56
- - 配合 ArkTsLibraryInterfaceSpecSkill + ArkTsLibraryDemoCoverageSkill 实现"接口分析 → 覆盖率分析 → 缺口场景规划"完整链路
57
-
58
- ---
59
-
60
- ## 任务参数
61
-
62
- | 参数 | 必需 | 说明 |
63
- |------|------|------|
64
- | `coverageReportPath` | ✅ | 覆盖率报告绝对路径(由 ArkTsLibraryDemoCoverageSkill 生成,含未覆盖接口清单及签名) |
65
- | `sourcePath` | 可选 | 源码根目录(提供后可探查现有 demo 风格作为参考) |
66
- | `outputDir` | 可选 | 输出目录,默认放置在覆盖率报告所在目录 |
67
-
68
- ### 输入异常处理
69
-
70
- | 异常情况 | 处理方式 |
71
- |---------|---------|
72
- | 覆盖率报告不存在或无法读取 | 停止执行,向用户提示错误并请求提供有效文档路径 |
73
- | 覆盖率报告格式异常(非 Markdown 或无法解析) | 停止执行,向用户说明问题并请求提供正确格式的文档 |
74
- | 未覆盖接口清单为空(覆盖率 100%) | 生成空场景文档,标注"所有接口已覆盖,无需补充" |
75
- | 无法确定库名称 | 使用默认命名 `Unknown未覆盖接口Demo场景.md`,并向用户说明情况 |
76
-
77
- ---
78
-
79
- ---
80
-
81
- ## 工作流程
82
-
83
- ### 阶段一:读取覆盖率报告并提取未覆盖接口
84
-
85
- #### 1.1 读取覆盖率报告
86
-
87
- ```
88
- 执行步骤:
89
- 1. 使用 read_file 读取 {{coverageReportPath}} 全文
90
- 2. 提取库名称(用于输出文件命名)
91
- 3. 提取当前覆盖率(用于概述中标注补充前后对比)
92
- ```
93
-
94
- #### 1.2 提取未覆盖接口清单
95
-
96
- 定位覆盖率报告「## 5. 未覆盖接口清单」章节,提取每个未覆盖接口:
97
-
98
- | 提取字段 | 来源列 | 用途 |
99
- |---------|--------|------|
100
- | 接口名称 | `方法/属性` 列 | Demo 命名和步骤描述 |
101
- | 完整签名 | `签名` 列 | 步骤中标注精确调用方式 |
102
- | 接口类型 | `类型` 列 | 确定调用方式(method/property/field) |
103
- | 功能描述 | `功能描述` 列 | Demo 描述和预期结果的依据 |
104
- | 所属类 | `### {ClassName}` 子标题 | 分组依据 |
105
-
106
- 覆盖率报告本身已按类分组,同一类下的未覆盖接口天然属于同一功能模块。
107
-
108
- > ⚠️ **低价值常量跳过规则(强制)**:覆盖率报告已过滤 `public static readonly` 常量(`lowValue === true`)与类型别名(`kind === 'type'`),这些不会出现在未覆盖清单中。若覆盖率报告的「基本信息」章节标注了「过滤低价值常量 > 0」,说明库含纯常量类(如 `BleMsg`、`BluetoothGattCharacteristic`),**禁止为这些类规划独立的"常量展示页"Demo**。常量无行为逻辑、无运行时回归价值,仅作 `import` 引用即可,不纳入 Demo 覆盖目标。
109
-
110
- #### 1.3 建立未覆盖接口能力清单(内部工作记录)
111
-
112
- ```
113
- 未覆盖接口清单示例(不写入输出文件):
114
- ┌─────────────────────────────────────────────────────┐
115
- │ 类 ImageKnife │
116
- │ - 方法 preload(loadSrc: ...): ImageKnifeRequest │
117
- │ 功能: 图片预加载 │
118
- │ - 方法 cancel(request: ImageKnifeRequest) │
119
- │ 功能: 取消预加载请求 │
120
- │ 类 ImageKnifeOption │
121
- │ - 属性 onlyRetrieveFromCache: boolean │
122
- │ 功能: 仅从缓存加载图片 │
123
- │ ... │
124
- │ │
125
- │ 未覆盖接口总数: N │
126
- │ 当前覆盖率: X% │
127
- │ 补充后预期覆盖率: 100% │
128
- └─────────────────────────────────────────────────────┘
129
- ```
130
-
131
- ---
132
-
133
- ### 阶段二:生成测试 Demo 描述
134
-
135
- #### 2.1 Demo 分组原则
136
-
137
- **原则一:一接口至少一个 Demo**
138
- 每个未覆盖接口必须被至少一个 Demo 覆盖。
139
-
140
- **原则二:关联接口可合并**
141
- 满足以下任一条件的接口可合并到同一 Demo:
142
- - 存在明确的调用依赖关系(如 `init()` → `execute()` → `destroy()`)
143
- - 共同完成一个完整的业务场景(如"创建 → 配置 → 执行 → 获取结果")
144
- - 属于同一主题功能簇(如所有图像处理相关方法)
145
- - 一个接口的输出是另一个接口的输入
146
-
147
- **原则三:禁止无关合并**
148
- 不同功能方向、无调用关系的接口不得强行合并到同一 Demo。
149
-
150
- #### 2.2 Demo 描述要素
151
-
152
- 每个测试 Demo 包含以下五个要素:
153
-
154
- **① 测试 Demo 名称**
155
- - 以功能描述为基础简要命名
156
- - 命名格式:`[功能动词][操作对象][特征/场景]Demo`
157
- - 示例:`图片模糊处理Demo`、`配置初始化与销毁Demo`、`异步任务执行Demo`
158
-
159
- **② 测试 Demo 描述**
160
- - 对该 Demo 的功能和目的进行详细描述
161
- - 说明该 Demo 展示了哪些接口能力
162
- - 说明开发者通过该 Demo 能理解什么
163
-
164
- **③ 测试 Demo 步骤**
165
- - 以 Demo 页面为载体,列出具体可执行步骤
166
- - 步骤需包含:页面构建、UI 交互操作、接口调用时机、结果展示方式
167
- - 示例格式:
168
- ```
169
- 1. 创建 Demo 页面,添加 [操作按钮] 和 [结果展示区域]
170
- 2. 点击按钮触发 xxx() 调用,传入参数 ...
171
- 3. 在结果区域展示返回值 / 状态变化
172
- 4. 验证 ...
173
- ```
174
-
175
- **④ 测试 Demo 预期结果**
176
- - 列出验证该 Demo 是否成功的具体可观测指标
177
- - 包括:UI 展示内容、返回值格式、状态变化、无异常崩溃等
178
-
179
- **⑤ 对应函数接口**
180
- - 列出该 Demo 涉及的所有未覆盖接口的完整签名
181
- - 签名来源于覆盖率报告的"签名"列
182
- - 格式:`` `函数名(参数类型): 返回类型` ``
183
-
184
- > ⚠️ **可验证性前置规则(强制)**:在为任何接口编写步骤和预期结果之前,必须先判断:**该接口在目标设备上能否产生可被用户观测到的输出?**
185
- >
186
- > | 情况 | 处理方式 |
187
- > |-----|----------|
188
- > | 接口有直接返回值、状态变更或 UI 更新 | 正常作为主步骤,预期结果描述可观测指标 |
189
- > | 接口依赖平台事件回调,且该事件在测试设备上已知不触发 | **禁止**作为主步骤;在 Demo 步骤中标注「平台限制」,建议通过 `dispatchXxx` 桥接方法间接验证 |
190
- > | 接口无任何可观测输出(无返回值、无回调、无 UI 变更) | 合并到相关流程 Demo 中,通过其他接口的状态变化间接验证 |
191
- >
192
- > **禁止「死按钮」**:Demo 中每个按钮(每个步骤中调用的接口)必须对应至少一条 UI 上可观测的预期结果。若无法提供,该按钮/步骤必须删除或改为平台限制说明。
193
- >
194
- > 🎯 **ArkUI `@State` 强制规则**:Demo 步骤中包含「计数器(如回调次数、调用次数)」或「状态标志(如是否已初始化)」等运行时变化量时,在步骤或预期结果描述中必须注明:**该变量须声明为 `@State`**,否则 ArkUI 不会触发重渲染,计数器将始终显示初始值(如永远显示 0),导致 Demo 验证逻辑完全失效。
195
-
196
- #### 2.3 生成策略
197
-
198
- 按以下优先级顺序生成 Demo:
199
-
200
- 1. **核心功能 Demo**(P0):覆盖库最主要的功能接口,每个核心功能至少一个 Demo
201
- 2. **完整流程 Demo**(P1):展示"初始化 → 核心操作 → 销毁"完整生命周期
202
- 3. **参数变体 Demo**(P2):对同一接口的不同参数组合进行展示(可选)
203
- 4. **组合能力 Demo**(P1):将相关联接口合并,展示完整使用链路
204
-
205
- #### 2.4 异步回调链双计数器诊断模式(强制)
206
-
207
- 对任何 Demo 中涉及「调用库函数 → 等待回调」的异步链路,**必须**在 Demo 设计中规划双计数器:
208
-
209
- | 计数器位置 | 变量名建议 | 含义 |
210
- |-----------|----------|------|
211
- | 调用/分发前(在触发代码中) | `xxxDispatchCount` | 调用/触发动作的执行次数 |
212
- | 回调内部(在 `onXxx` 回调方法中) | `xxxCallbackCount` | 回调实际被触发的次数 |
213
-
214
- 两个计数器都必须在 Demo 页面的**验证区域**中展示(Text 组件),且**必须声明为 `@State`**。
215
-
216
- 诊断规则:
217
- - `dispatchCount > 0` 且 `callbackCount = 0` → 调用成功但回调未触发,问题在回调注册或平台事件链
218
- - `dispatchCount = 0` → 触发代码未执行,问题在 Demo 的触发逻辑
219
- - `dispatchCount = callbackCount > 0` → 链路完全正常
220
-
221
- ---
222
-
223
- ### 阶段三:生成输出文档
224
-
225
- #### 3.1 文档拆分执行
226
-
227
- 根据"文档模式选择"部分的规则已确定输出模式,执行以下步骤:
228
-
229
- **多文档拆分原则(仅在多文档模式下执行):**
230
-
231
- 1. **按功能模块拆分**:每个文档对应一个或几个功能内聚的模块
232
- 2. **全局连续编号(强制)**:Demo 序号和接口覆盖矩阵序号在所有文档中保持全局唯一且连续
233
- 3. **每个文档独立完整**:每个拆分文档都包含完整的"概述 → Demo 总览 → 测试 Demo 描述列表 → 接口覆盖矩阵"结构
234
- 4. **概述中标注分册信息**:注明当前文档是第几部分、覆盖哪些模块,以及其他部分的文件名
235
-
236
- #### 3.2 输出文件结构
237
-
238
- **单文档模式文件名**:`{库名}未覆盖接口Demo场景.md`(与覆盖率报告同目录)
239
-
240
- **多文档模式文件名**:`{库名}未覆盖接口Demo场景({中文数字}){模块主题}.md`
241
-
242
- **文档结构(每个文档均遵循):**
243
-
244
- ```markdown
245
- # {库名} 未覆盖接口 Demo 场景[({分册编号}){模块主题}]
246
-
247
- ## 概述
248
-
249
- 简要说明本文档基于覆盖率报告({覆盖率报告文件名},当前覆盖率 {X}%)生成,
250
- 规划 {N} 个未覆盖接口的 Demo 场景,补充后覆盖率达到 100%。
251
- [多文档模式] 注明:本文档为第 X 部分,共 Y 部分,覆盖 {模块名} 模块。
252
-
253
- ## Demo 总览
254
-
255
- | Demo 数量 | 覆盖接口数量 | 补充前覆盖率 | 补充后覆盖率 | 生成日期 |
256
- |----------|------------|------------|------------|---------|
257
- | N 个 | M 个 | {X}% | 100% | YYYY-MM-DD |
258
-
259
- ## 测试 Demo 描述列表
260
-
261
- | 序号 | 测试 Demo 名称 | 测试 Demo 描述 | 测试 Demo 步骤 | 测试 Demo 预期结果 | 对应函数接口 |
262
- |-----|--------------|--------------|--------------|-----------------|------------|
263
- | {全局起始序号} | ... | ... | ... | ... | ... |
264
-
265
- ## 接口覆盖矩阵
266
-
267
- | 序号 | 接口签名 | 接口类型 | 所在 Demo | 覆盖状态 |
268
- |-----|---------|---------|----------|---------|
269
- | {全局起始序号} | `{签名}` | {类型} | {Demo名称} | ✅ 已规划Demo |
270
- ```
271
-
272
- #### 3.3 表格内容规范
273
-
274
- - **序号**:全局自增整数,单文档模式从 1 开始;多文档模式保持全局唯一且连续
275
- - **测试 Demo 名称**:简洁明了,不超过 20 字
276
- - **测试 Demo 描述**:2-4 句话,说明功能、目的和覆盖接口
277
- - **测试 Demo 步骤**:编号列表,每步骤一行,具体可执行,含接口调用位置
278
- - **测试 Demo 预期结果**:编号列表,具体可验证的观测指标
279
- - **对应函数接口**:列出所有相关接口的完整签名(来自覆盖率报告"签名"列)
280
-
281
- #### 3.4 步骤写作规范
282
-
283
- 步骤描述必须以"Demo 页面"为视角,包含以下维度:
284
-
285
- ```
286
- - 页面构建:构建什么样的页面(按钮、输入框、展示区)
287
- - 交互触发:点击什么触发哪个接口调用
288
- - 参数传递:传入什么参数
289
- - 结果展示:如何在页面上展示接口返回结果
290
- - 验证方式:如何判断接口行为符合预期
291
- ```
292
-
293
- ---
294
-
295
- ### 阶段四:质量校验
296
-
297
- 生成文档前完成以下检查:
298
-
299
- | 检查项 | 标准 |
300
- |-------|------|
301
- | 接口覆盖完整性 | 覆盖率报告中每个未覆盖接口至少被一个 Demo 覆盖,补充后覆盖率达到 100% |
302
- | 内容真实性 | 所有接口签名、功能描述与覆盖率报告严格一致 |
303
- | 步骤可执行性 | 步骤描述足够具体,开发者可按步骤实现 |
304
- | 预期结果可验证 | 每条预期结果可观测、可判断 |
305
- | 无死按钮 | Demo 中每个可触发接口调用的按钮都有设备可观测的预期结果 |
306
- | @State 完整性 | 所有计数器、状态标志变量都注明须声明为 `@State`;异步回调链已规划双计数器 |
307
- | Demo 名称清晰 | 名称能准确反映 Demo 的核心目的 |
308
- | 无遗漏未覆盖接口 | 接口覆盖矩阵中所有未覆盖接口均已标记「✅ 已规划Demo」 |
309
-
310
- ---
311
-
312
- ## 注意事项
313
-
314
- 1. **只覆盖未覆盖接口**:严格对照覆盖率报告中的"未覆盖接口清单",不重复设计已有 demo 覆盖的接口
315
- 2. **签名准确**:涉及的功能点中接口签名必须与覆盖率报告"签名"列完全一致,不自行推断参数
316
- 3. **场景可执行**:每个 Demo 的步骤描述必须能转化为可运行的 ArkTS 代码
317
- 4. **合并合理**:存在明确调用依赖关系的接口可合并到一个场景;不同功能方向的接口必须独立场景
318
- 5. **Native 跳过**:`lib*.so` 导出的 Native 模块接口不纳入场景生成范围
319
- 6. **常量类不规划独立 Demo**:纯常量类(如 `BleMsg`、`BluetoothGattCharacteristic` 等 `public static readonly` 常量集合)已被覆盖率报告过滤,禁止为其规划"常量展示页"Demo。常量无行为逻辑、无运行时回归价值,开发者通过 `import` 引用即可,不纳入 Demo 覆盖目标
320
- 7. **覆盖率报告自包含**:覆盖率报告的未覆盖清单已包含签名和功能描述,无需额外读取接口规格文档
321
- 8. **输出目录默认**:若未指定 `outputDir`,输出至覆盖率报告所在目录
1
+ ---
2
+ name: arkts-library-demo-scenario
3
+ description: 基于覆盖率报告,为未覆盖接口生成 ArkTS 测试 Demo 描述文档。读取覆盖率报告中的未覆盖接口清单(含签名和功能描述),以接口为单位生成测试 Demo 描述(名称、描述、步骤、预期结果),并以表格形式汇总输出。允许将存在直接调用关系或属于同一功能模块的接口合并到同一个 Demo 中。当需要对鸿蒙原生库进行 Demo 覆盖率缺口填补、未覆盖接口场景规划时调用。
4
+ license: Apache-2.0
5
+ metadata:
6
+ version: "1.0.0"
7
+ category: harmonyos-development
8
+ language: ArkTS/ETS
9
+ ---
10
+
11
+ # 鸿蒙ArkTs原生库未覆盖接口 Demo 场景生成
12
+
13
+ 本 Skill 读取覆盖率报告中的未覆盖接口清单,以接口为单位自动生成测试 Demo 描述,输出为标准 Markdown 表格文档,使接口覆盖率达到 100%。
14
+
15
+ > ⚠️ **核心约束**:
16
+ > 1. 只生成覆盖率报告"未覆盖接口清单"中列出的接口场景
17
+ > 2. 所有内容必须基于覆盖率报告中真实存在的接口签名和功能描述
18
+ > 3. 严禁捏造不存在的接口、参数或行为
19
+
20
+ ---
21
+
22
+ ## 文档模式选择
23
+
24
+ **选择规则(按顺序判断):**
25
+
26
+ 1. **统计未覆盖接口数量和 Demo 预估数量**
27
+ 2. **判断模式**:若未覆盖接口 ≤ 25 个 **且** Demo ≤ 8 个 → 使用单文档模式
28
+ 3. **否则** → 使用多文档拆分模式
29
+
30
+ | 模式 | 文件命名 | 适用条件 |
31
+ |-----|---------|---------|
32
+ | 单文档 | `{库名}未覆盖接口Demo场景.md` | 未覆盖接口 ≤ 25 个且 Demo ≤ 8 个 |
33
+ | 多文档拆分 | `{库名}未覆盖接口Demo场景(一){模块主题}.md`、`(二)...` | 接口 > 25 个或 Demo > 8 个 |
34
+
35
+ > ⚠️ **多文档模式注意**:Demo 序号和接口覆盖矩阵序号在所有文档间保持全局连续。
36
+
37
+ ## 核心约束概览
38
+
39
+ | 约束类别 | 关键规则 |
40
+ |---------|---------|
41
+ | **内容真实性** | 所有内容必须基于覆盖率报告中真实存在的接口签名和功能描述,严禁凭空捏造 |
42
+ | **接口覆盖** | 每个未覆盖接口必须被至少一个 Demo 覆盖,补充后覆盖率达到 100% |
43
+ | **Demo 分组** | 存在直接调用关系或属于同一功能模块的接口可合并;不同功能方向、无调用关系的接口禁止强行合并 |
44
+ | **可验证性** | 每个按钮/步骤必须对应至少一条设备可观测的预期结果;依赖平台事件且已知不触发的接口改为平台限制说明 |
45
+ | **ArkUI 响应式** | 计数器、状态标志变量必须声明为 `@State`;异步回调链须规划双计数器 |
46
+ | **命名规范** | Demo 名称格式:`[功能动词][操作对象][特征/场景]Demo`,不超过 20 字 |
47
+ | **输出格式** | 步骤和预期结果为编号列表;接口签名格式:`` `函数名(参数类型): 返回类型` `` |
48
+
49
+ ---
50
+
51
+ ## 适用场景
52
+
53
+ - 为已 ohos 化鸿蒙原生库填补 Demo 覆盖率缺口
54
+ - 生成开发者可直接参考的测试 Demo 描述文档
55
+ - 为 QA / 开发团队提供可执行的 Demo 实现指导
56
+ - 配合 ArkTsLibraryInterfaceSpecSkill + ArkTsLibraryDemoCoverageSkill 实现"接口分析 → 覆盖率分析 → 缺口场景规划"完整链路
57
+
58
+ ---
59
+
60
+ ## 任务参数
61
+
62
+ | 参数 | 必需 | 说明 |
63
+ |------|------|------|
64
+ | `coverageReportPath` | ✅ | 覆盖率报告绝对路径(由 ArkTsLibraryDemoCoverageSkill 生成,含未覆盖接口清单及签名) |
65
+ | `sourcePath` | 可选 | 源码根目录(提供后可探查现有 demo 风格作为参考) |
66
+ | `outputDir` | 可选 | 输出目录,默认放置在覆盖率报告所在目录 |
67
+
68
+ ### 输入异常处理
69
+
70
+ | 异常情况 | 处理方式 |
71
+ |---------|---------|
72
+ | 覆盖率报告不存在或无法读取 | 停止执行,向用户提示错误并请求提供有效文档路径 |
73
+ | 覆盖率报告格式异常(非 Markdown 或无法解析) | 停止执行,向用户说明问题并请求提供正确格式的文档 |
74
+ | 未覆盖接口清单为空(覆盖率 100%) | 生成空场景文档,标注"所有接口已覆盖,无需补充" |
75
+ | 无法确定库名称 | 使用默认命名 `Unknown未覆盖接口Demo场景.md`,并向用户说明情况 |
76
+
77
+ ---
78
+
79
+ ---
80
+
81
+ ## 工作流程
82
+
83
+ ### 阶段一:读取覆盖率报告并提取未覆盖接口
84
+
85
+ #### 1.1 读取覆盖率报告
86
+
87
+ ```
88
+ 执行步骤:
89
+ 1. 使用 read_file 读取 {{coverageReportPath}} 全文
90
+ 2. 提取库名称(用于输出文件命名)
91
+ 3. 提取当前覆盖率(用于概述中标注补充前后对比)
92
+ ```
93
+
94
+ #### 1.2 提取未覆盖接口清单
95
+
96
+ 定位覆盖率报告「## 5. 未覆盖接口清单」章节,提取每个未覆盖接口:
97
+
98
+ | 提取字段 | 来源列 | 用途 |
99
+ |---------|--------|------|
100
+ | 接口名称 | `方法/属性` 列 | Demo 命名和步骤描述 |
101
+ | 完整签名 | `签名` 列 | 步骤中标注精确调用方式 |
102
+ | 接口类型 | `类型` 列 | 确定调用方式(method/property/field) |
103
+ | 功能描述 | `功能描述` 列 | Demo 描述和预期结果的依据 |
104
+ | 所属类 | `### {ClassName}` 子标题 | 分组依据 |
105
+
106
+ 覆盖率报告本身已按类分组,同一类下的未覆盖接口天然属于同一功能模块。
107
+
108
+ > ⚠️ **低价值常量跳过规则(强制)**:覆盖率报告已过滤 `public static readonly` 常量(`lowValue === true`)与类型别名(`kind === 'type'`),这些不会出现在未覆盖清单中。若覆盖率报告的「基本信息」章节标注了「过滤低价值常量 > 0」,说明库含纯常量类(如 `BleMsg`、`BluetoothGattCharacteristic`),**禁止为这些类规划独立的"常量展示页"Demo**。常量无行为逻辑、无运行时回归价值,仅作 `import` 引用即可,不纳入 Demo 覆盖目标。
109
+
110
+ #### 1.3 建立未覆盖接口能力清单(内部工作记录)
111
+
112
+ ```
113
+ 未覆盖接口清单示例(不写入输出文件):
114
+ ┌─────────────────────────────────────────────────────┐
115
+ │ 类 ImageKnife │
116
+ │ - 方法 preload(loadSrc: ...): ImageKnifeRequest │
117
+ │ 功能: 图片预加载 │
118
+ │ - 方法 cancel(request: ImageKnifeRequest) │
119
+ │ 功能: 取消预加载请求 │
120
+ │ 类 ImageKnifeOption │
121
+ │ - 属性 onlyRetrieveFromCache: boolean │
122
+ │ 功能: 仅从缓存加载图片 │
123
+ │ ... │
124
+ │ │
125
+ │ 未覆盖接口总数: N │
126
+ │ 当前覆盖率: X% │
127
+ │ 补充后预期覆盖率: 100% │
128
+ └─────────────────────────────────────────────────────┘
129
+ ```
130
+
131
+ ---
132
+
133
+ ### 阶段二:生成测试 Demo 描述
134
+
135
+ #### 2.1 Demo 分组原则
136
+
137
+ **原则一:一接口至少一个 Demo**
138
+ 每个未覆盖接口必须被至少一个 Demo 覆盖。
139
+
140
+ **原则二:关联接口可合并**
141
+ 满足以下任一条件的接口可合并到同一 Demo:
142
+ - 存在明确的调用依赖关系(如 `init()` → `execute()` → `destroy()`)
143
+ - 共同完成一个完整的业务场景(如"创建 → 配置 → 执行 → 获取结果")
144
+ - 属于同一主题功能簇(如所有图像处理相关方法)
145
+ - 一个接口的输出是另一个接口的输入
146
+
147
+ **原则三:禁止无关合并**
148
+ 不同功能方向、无调用关系的接口不得强行合并到同一 Demo。
149
+
150
+ #### 2.2 Demo 描述要素
151
+
152
+ 每个测试 Demo 包含以下五个要素:
153
+
154
+ **① 测试 Demo 名称**
155
+ - 以功能描述为基础简要命名
156
+ - 命名格式:`[功能动词][操作对象][特征/场景]Demo`
157
+ - 示例:`图片模糊处理Demo`、`配置初始化与销毁Demo`、`异步任务执行Demo`
158
+
159
+ **② 测试 Demo 描述**
160
+ - 对该 Demo 的功能和目的进行详细描述
161
+ - 说明该 Demo 展示了哪些接口能力
162
+ - 说明开发者通过该 Demo 能理解什么
163
+
164
+ **③ 测试 Demo 步骤**
165
+ - 以 Demo 页面为载体,列出具体可执行步骤
166
+ - 步骤需包含:页面构建、UI 交互操作、接口调用时机、结果展示方式
167
+ - 示例格式:
168
+ ```
169
+ 1. 创建 Demo 页面,添加 [操作按钮] 和 [结果展示区域]
170
+ 2. 点击按钮触发 xxx() 调用,传入参数 ...
171
+ 3. 在结果区域展示返回值 / 状态变化
172
+ 4. 验证 ...
173
+ ```
174
+
175
+ **④ 测试 Demo 预期结果**
176
+ - 列出验证该 Demo 是否成功的具体可观测指标
177
+ - 包括:UI 展示内容、返回值格式、状态变化、无异常崩溃等
178
+
179
+ **⑤ 对应函数接口**
180
+ - 列出该 Demo 涉及的所有未覆盖接口的完整签名
181
+ - 签名来源于覆盖率报告的"签名"列
182
+ - 格式:`` `函数名(参数类型): 返回类型` ``
183
+
184
+ > ⚠️ **可验证性前置规则(强制)**:在为任何接口编写步骤和预期结果之前,必须先判断:**该接口在目标设备上能否产生可被用户观测到的输出?**
185
+ >
186
+ > | 情况 | 处理方式 |
187
+ > |-----|----------|
188
+ > | 接口有直接返回值、状态变更或 UI 更新 | 正常作为主步骤,预期结果描述可观测指标 |
189
+ > | 接口依赖平台事件回调,且该事件在测试设备上已知不触发 | **禁止**作为主步骤;在 Demo 步骤中标注「平台限制」,建议通过 `dispatchXxx` 桥接方法间接验证 |
190
+ > | 接口无任何可观测输出(无返回值、无回调、无 UI 变更) | 合并到相关流程 Demo 中,通过其他接口的状态变化间接验证 |
191
+ >
192
+ > **禁止「死按钮」**:Demo 中每个按钮(每个步骤中调用的接口)必须对应至少一条 UI 上可观测的预期结果。若无法提供,该按钮/步骤必须删除或改为平台限制说明。
193
+ >
194
+ > 🎯 **ArkUI `@State` 强制规则**:Demo 步骤中包含「计数器(如回调次数、调用次数)」或「状态标志(如是否已初始化)」等运行时变化量时,在步骤或预期结果描述中必须注明:**该变量须声明为 `@State`**,否则 ArkUI 不会触发重渲染,计数器将始终显示初始值(如永远显示 0),导致 Demo 验证逻辑完全失效。
195
+
196
+ #### 2.3 生成策略
197
+
198
+ 按以下优先级顺序生成 Demo:
199
+
200
+ 1. **核心功能 Demo**(P0):覆盖库最主要的功能接口,每个核心功能至少一个 Demo
201
+ 2. **完整流程 Demo**(P1):展示"初始化 → 核心操作 → 销毁"完整生命周期
202
+ 3. **参数变体 Demo**(P2):对同一接口的不同参数组合进行展示(可选)
203
+ 4. **组合能力 Demo**(P1):将相关联接口合并,展示完整使用链路
204
+
205
+ #### 2.4 异步回调链双计数器诊断模式(强制)
206
+
207
+ 对任何 Demo 中涉及「调用库函数 → 等待回调」的异步链路,**必须**在 Demo 设计中规划双计数器:
208
+
209
+ | 计数器位置 | 变量名建议 | 含义 |
210
+ |-----------|----------|------|
211
+ | 调用/分发前(在触发代码中) | `xxxDispatchCount` | 调用/触发动作的执行次数 |
212
+ | 回调内部(在 `onXxx` 回调方法中) | `xxxCallbackCount` | 回调实际被触发的次数 |
213
+
214
+ 两个计数器都必须在 Demo 页面的**验证区域**中展示(Text 组件),且**必须声明为 `@State`**。
215
+
216
+ 诊断规则:
217
+ - `dispatchCount > 0` 且 `callbackCount = 0` → 调用成功但回调未触发,问题在回调注册或平台事件链
218
+ - `dispatchCount = 0` → 触发代码未执行,问题在 Demo 的触发逻辑
219
+ - `dispatchCount = callbackCount > 0` → 链路完全正常
220
+
221
+ ---
222
+
223
+ ### 阶段三:生成输出文档
224
+
225
+ #### 3.1 文档拆分执行
226
+
227
+ 根据"文档模式选择"部分的规则已确定输出模式,执行以下步骤:
228
+
229
+ **多文档拆分原则(仅在多文档模式下执行):**
230
+
231
+ 1. **按功能模块拆分**:每个文档对应一个或几个功能内聚的模块
232
+ 2. **全局连续编号(强制)**:Demo 序号和接口覆盖矩阵序号在所有文档中保持全局唯一且连续
233
+ 3. **每个文档独立完整**:每个拆分文档都包含完整的"概述 → Demo 总览 → 测试 Demo 描述列表 → 接口覆盖矩阵"结构
234
+ 4. **概述中标注分册信息**:注明当前文档是第几部分、覆盖哪些模块,以及其他部分的文件名
235
+
236
+ #### 3.2 输出文件结构
237
+
238
+ **单文档模式文件名**:`{库名}未覆盖接口Demo场景.md`(与覆盖率报告同目录)
239
+
240
+ **多文档模式文件名**:`{库名}未覆盖接口Demo场景({中文数字}){模块主题}.md`
241
+
242
+ **文档结构(每个文档均遵循):**
243
+
244
+ ```markdown
245
+ # {库名} 未覆盖接口 Demo 场景[({分册编号}){模块主题}]
246
+
247
+ ## 概述
248
+
249
+ 简要说明本文档基于覆盖率报告({覆盖率报告文件名},当前覆盖率 {X}%)生成,
250
+ 规划 {N} 个未覆盖接口的 Demo 场景,补充后覆盖率达到 100%。
251
+ [多文档模式] 注明:本文档为第 X 部分,共 Y 部分,覆盖 {模块名} 模块。
252
+
253
+ ## Demo 总览
254
+
255
+ | Demo 数量 | 覆盖接口数量 | 补充前覆盖率 | 补充后覆盖率 | 生成日期 |
256
+ |----------|------------|------------|------------|---------|
257
+ | N 个 | M 个 | {X}% | 100% | YYYY-MM-DD |
258
+
259
+ ## 测试 Demo 描述列表
260
+
261
+ | 序号 | 测试 Demo 名称 | 测试 Demo 描述 | 测试 Demo 步骤 | 测试 Demo 预期结果 | 对应函数接口 |
262
+ |-----|--------------|--------------|--------------|-----------------|------------|
263
+ | {全局起始序号} | ... | ... | ... | ... | ... |
264
+
265
+ ## 接口覆盖矩阵
266
+
267
+ | 序号 | 接口签名 | 接口类型 | 所在 Demo | 覆盖状态 |
268
+ |-----|---------|---------|----------|---------|
269
+ | {全局起始序号} | `{签名}` | {类型} | {Demo名称} | ✅ 已规划Demo |
270
+ ```
271
+
272
+ #### 3.3 表格内容规范
273
+
274
+ - **序号**:全局自增整数,单文档模式从 1 开始;多文档模式保持全局唯一且连续
275
+ - **测试 Demo 名称**:简洁明了,不超过 20 字
276
+ - **测试 Demo 描述**:2-4 句话,说明功能、目的和覆盖接口
277
+ - **测试 Demo 步骤**:编号列表,每步骤一行,具体可执行,含接口调用位置
278
+ - **测试 Demo 预期结果**:编号列表,具体可验证的观测指标
279
+ - **对应函数接口**:列出所有相关接口的完整签名(来自覆盖率报告"签名"列)
280
+
281
+ #### 3.4 步骤写作规范
282
+
283
+ 步骤描述必须以"Demo 页面"为视角,包含以下维度:
284
+
285
+ ```
286
+ - 页面构建:构建什么样的页面(按钮、输入框、展示区)
287
+ - 交互触发:点击什么触发哪个接口调用
288
+ - 参数传递:传入什么参数
289
+ - 结果展示:如何在页面上展示接口返回结果
290
+ - 验证方式:如何判断接口行为符合预期
291
+ ```
292
+
293
+ ---
294
+
295
+ ### 阶段四:质量校验
296
+
297
+ 生成文档前完成以下检查:
298
+
299
+ | 检查项 | 标准 |
300
+ |-------|------|
301
+ | 接口覆盖完整性 | 覆盖率报告中每个未覆盖接口至少被一个 Demo 覆盖,补充后覆盖率达到 100% |
302
+ | 内容真实性 | 所有接口签名、功能描述与覆盖率报告严格一致 |
303
+ | 步骤可执行性 | 步骤描述足够具体,开发者可按步骤实现 |
304
+ | 预期结果可验证 | 每条预期结果可观测、可判断 |
305
+ | 无死按钮 | Demo 中每个可触发接口调用的按钮都有设备可观测的预期结果 |
306
+ | @State 完整性 | 所有计数器、状态标志变量都注明须声明为 `@State`;异步回调链已规划双计数器 |
307
+ | Demo 名称清晰 | 名称能准确反映 Demo 的核心目的 |
308
+ | 无遗漏未覆盖接口 | 接口覆盖矩阵中所有未覆盖接口均已标记「✅ 已规划Demo」 |
309
+
310
+ ---
311
+
312
+ ## 注意事项
313
+
314
+ 1. **只覆盖未覆盖接口**:严格对照覆盖率报告中的"未覆盖接口清单",不重复设计已有 demo 覆盖的接口
315
+ 2. **签名准确**:涉及的功能点中接口签名必须与覆盖率报告"签名"列完全一致,不自行推断参数
316
+ 3. **场景可执行**:每个 Demo 的步骤描述必须能转化为可运行的 ArkTS 代码
317
+ 4. **合并合理**:存在明确调用依赖关系的接口可合并到一个场景;不同功能方向的接口必须独立场景
318
+ 5. **Native 跳过**:`lib*.so` 导出的 Native 模块接口不纳入场景生成范围
319
+ 6. **常量类不规划独立 Demo**:纯常量类(如 `BleMsg`、`BluetoothGattCharacteristic` 等 `public static readonly` 常量集合)已被覆盖率报告过滤,禁止为其规划"常量展示页"Demo。常量无行为逻辑、无运行时回归价值,开发者通过 `import` 引用即可,不纳入 Demo 覆盖目标
320
+ 7. **覆盖率报告自包含**:覆盖率报告的未覆盖清单已包含签名和功能描述,无需额外读取接口规格文档
321
+ 8. **输出目录默认**:若未指定 `outputDir`,输出至覆盖率报告所在目录