@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,413 @@
1
+ # Demo 设计规则
2
+
3
+ > 本文档详细说明 Demo 的分组原则、五要素规范、平台过滤规则、双计数器模式和 useState 强制规则。
4
+
5
+ ---
6
+
7
+ ## 1. Demo 分组原则
8
+
9
+ ### 原则一:一函数至少一个 Demo
10
+
11
+ 每个**待生成**接口(Phase 4 过滤后)必须被至少一个 Demo 覆盖。
12
+
13
+ - **全量模式**:覆盖所有 HarmonyOS 平台可用的导出函数/方法/组件
14
+ - **增量模式**:仅覆盖 Demo 覆盖率报告中未覆盖的接口
15
+
16
+ ### 原则二:关联接口可合并
17
+
18
+ 满足以下任一条件的接口可合并到同一 Demo:
19
+
20
+ | 合并条件 | 示例 |
21
+ |----------|------|
22
+ | 存在明确的调用依赖关系 | `init()` → `execute()` → `release()` |
23
+ | 共同完成一个完整业务场景 | "创建实例 → 配置参数 → 执行操作 → 获取结果" |
24
+ | 属于同一主题功能簇 | 所有播放控制相关方法 |
25
+ | 一个接口的输出是另一个接口的输入 | `scan()` 返回设备列表 → `connect(deviceId)` 使用列表中的 ID |
26
+ | 事件注册与移除配对 | `addListener()` 与 `removeListener()` |
27
+
28
+ > **增量模式特殊规则**:若未覆盖接口与已覆盖接口存在调用依赖,可将未覆盖接口合并到新 Demo 中独立描述。新 Demo 的步骤应自包含,不依赖已覆盖接口的 Demo 步骤。例如:若 `connect()` 已覆盖但 `writeData()` 未覆盖,`writeData()` 的 Demo 步骤中可包含简化的连接步骤作为前置条件,但重点是 `writeData()` 的验证。
29
+
30
+ ### 原则三:禁止无关合并
31
+
32
+ 不同功能方向、无调用关系的接口不得强行合并到同一 Demo。
33
+
34
+ ### 原则四:HarmonyOS 平台过滤
35
+
36
+ > ⚠️ **过滤依据**:仅依据 README 文档的「HarmonyOS Support」列标注。**禁止**通过源码(`Platform.OS` 分支、TurboModule Spec、原生实现是否存在)进行过滤。源码中缺失鸿蒙实现可能是适配遗漏,需通过 Demo 验证发现。
37
+
38
+ - **排除 README 标注 `no` 的接口**:README「HarmonyOS Support」列明确标注为 `no` 的接口,代表鸿蒙化维护者已确认不支持,不生成 Demo
39
+ - **保留 README 未列出的接口**:上游新增但鸿蒙化 README 未收录的接口,视为无平台标注,默认跨平台,生成 Demo 并在描述中标注"建议验证 HarmonyOS 平台实际可用性"
40
+ - **保留无平台标注的接口**:README 有接口但无「HarmonyOS Support」列时,默认视为跨平台,生成 Demo 但建议验证
41
+ - **优先生成 README 标注 `yes` 的接口**:标记为 "跨平台"、"通用"、"Cross Platform"、"HarmonyOS 支持" 的接口优先生成 Demo
42
+ - **平台差异说明**:在相关 Demo 步骤中标注 "本功能在 HarmonyOS 平台验证"
43
+ - **适配遗漏诊断**:对于 README 未列出的接口,在预期结果中设计诊断指标(如"若回调未触发,可能为鸿蒙化适配遗漏"),通过双计数器模式诊断接口实际可用性
44
+
45
+ ---
46
+
47
+ ## 2. Demo 五要素规范
48
+
49
+ ### ① 测试 Demo 名称
50
+
51
+ - 格式:`[功能动词/名词][操作对象][特征/场景]Demo`
52
+ - 限制:不超过 20 字
53
+ - 避免泛化词语(如"基础Demo"、"测试Demo")
54
+
55
+ | 场景 | 推荐名称 |
56
+ |------|---------|
57
+ | 单一核心功能 | `蓝牙扫描控制Demo` |
58
+ | 生命周期管理 | `模块初始化与释放Demo` |
59
+ | 配置类接口 | `参数配置与验证Demo` |
60
+ | 异步 Promise | `异步数据加载Demo` |
61
+ | 事件监听 | `原生事件订阅与回调Demo` |
62
+ | 错误处理 | `异常捕获与错误码处理Demo` |
63
+ | 多接口组合 | `完整业务流程Demo` |
64
+ | React 组件 | `自定义组件渲染与交互Demo` |
65
+
66
+ ### ② 测试 Demo 描述
67
+
68
+ 模板:
69
+ ```
70
+ {Demo名称}展示了如何使用 {接口名称} 实现 {功能描述}。
71
+ 通过本 Demo,开发者可以了解 {接口的核心用法/参数含义/返回值处理方式}。
72
+ [可选:本 Demo 同时涵盖 {其他关联接口},展示 {它们之间的调用关系/业务场景}。]
73
+ [标注:本 Demo 针对 HarmonyOS 平台的特性/限制。]
74
+ ```
75
+
76
+ 要求:2-4 句话,说明功能、目的、覆盖接口,明确标注 HarmonyOS 平台特性。
77
+
78
+ ### ③ 测试 Demo 步骤
79
+
80
+ 步骤结构模板:
81
+ ```
82
+ 1. 创建函数式组件 Demo 页面(DemoScreen.tsx),使用 useState 声明所需状态变量
83
+ [状态变量列举:const [result, setResult] = useState(''); const [callCount, setCallCount] = useState(0);],
84
+ 使用 useEffect 处理组件挂载/卸载逻辑(事件订阅、资源初始化/释放等),
85
+ 布局中添加 [UI组件列表:TouchableOpacity 按钮、TextInput 输入框、Text 展示区、ScrollView 列表等]。
86
+ 2. [用户操作],触发 `{接口名称}({参数示例})` 调用,
87
+ 在 Promise.then() / await 后 / 事件回调中执行 setXxx() 更新状态变量。
88
+ 3. 将接口返回值 / 状态变化以 <Text>{value}</Text> 形式展示在 [展示区域名称]。
89
+ 4. [下一步操作,如有],验证 [具体行为]。
90
+ [可选] 5. 对比 / 补充验证步骤。
91
+ ```
92
+
93
+ 步骤描述维度要求:
94
+
95
+ | 维度 | 要求 | 示例 |
96
+ |------|------|------|
97
+ | 组件构建 | 说明需要哪些 RN 组件 | "使用 View 布局、TouchableOpacity 按钮、Text 显示结果" |
98
+ | 状态声明 | 明确 useState 变量及初始值 | `const [status, setStatus] = useState('未初始化')` |
99
+ | 交互触发 | 明确用户操作和调用时机 | "点击'开始扫描'按钮,调用 `BluetoothModule.startScan(5000)`" |
100
+ | 参数传递 | 说明传入参数来源/示例值 | "传入 timeout=5000(毫秒)" |
101
+ | 状态更新 | 说明如何通过 setXxx() 更新 | "在 .then() 回调中执行 `setResult(JSON.stringify(data))`" |
102
+ | 结果展示 | 说明如何在页面显示结果 | "以 `<Text>{result}</Text>` 展示返回数据" |
103
+ | 验证方式 | 说明如何判断成功 | "确认 Text 显示有效的设备列表,无崩溃" |
104
+ | HarmonyOS 平台说明 | 标注特殊行为或限制 | "本功能在 HarmonyOS 平台验证" |
105
+
106
+ ### ④ 测试 Demo 预期结果
107
+
108
+ 模板:
109
+ ```
110
+ 1. [页面/UI 状态]:{可观测的界面变化描述}。
111
+ 2. [接口返回值]:{返回值类型/内容/范围} 符合预期。
112
+ 3. [功能效果]:{功能方面的可验证效果}。
113
+ 4. [异常/边界]:{无异常抛出 / 错误信息正确展示 / Promise reject 被捕获}。
114
+ [可选] 5. [平台差异]:{HarmonyOS 平台表现说明}。
115
+ ```
116
+
117
+ 要求:每条预期结果可观测、可判断,特别标注 HarmonyOS 平台的预期行为。
118
+
119
+ ### ⑤ 对应函数接口
120
+
121
+ 列出该 Demo 涉及的所有函数/方法/组件名称。
122
+
123
+ 格式:
124
+ - 函数:`` `funcName(paramType): ReturnType` ``
125
+ - 组件:`` `<ComponentName prop={type} />` ``
126
+ - 多个接口用换行分隔
127
+
128
+ ---
129
+
130
+ ## 3. HarmonyOS 可验证性前置规则(强制)
131
+
132
+ 在为任何接口编写步骤和预期结果之前,必须先判断:**该接口在 HarmonyOS 设备上能否产生可被用户观测到的输出?**
133
+
134
+ > **判断依据**:仅依据 README 文档的「HarmonyOS Support」列标注。不通过源码判断(源码缺失实现可能是适配遗漏)。
135
+
136
+ | 情况 | 处理方式 |
137
+ |------|----------|
138
+ | README 标注 `yes` 或跨平台 | 正常作为主步骤,预期结果描述可观测指标 |
139
+ | README 标注 `no` | **排除**该接口,不生成 Demo |
140
+ | README 标注 `partially` | 正常作为主步骤,预期结果中标注哪些子功能可用 |
141
+ | README 中未列出该接口 | 正常作为主步骤,预期结果描述可观测指标 + 诊断指标(如"若回调未触发,可能为鸿蒙化适配遗漏") |
142
+ | README 有接口但无 Support 列 | 正常作为主步骤,预期结果描述可观测指标,建议开发者验证 |
143
+ | 接口无任何可观测输出 | 合并到相关流程 Demo 中,通过其他接口的状态变化间接验证 |
144
+
145
+ **禁止「死按钮」**:Demo 中每个按钮(每个步骤中调用的接口)必须对应至少一条 UI 上可观测的预期结果。若无法提供,该按钮/步骤必须删除或改为平台限制说明。
146
+
147
+ ---
148
+
149
+ ## 4. useState 强制规则
150
+
151
+ Demo 步骤中包含「计数器(如回调次数、调用次数)」或「状态标志(如是否已初始化)」等运行时变化量时,在步骤或预期结果描述中**必须**注明:
152
+
153
+ > **该变量须通过 `setXxx()` 更新**
154
+
155
+ 否则 React Native 不会触发重新渲染,计数器将始终显示初始值(如永远显示 0),导致 Demo 验证逻辑完全失效。
156
+
157
+ 正确示例:
158
+ ```
159
+ const [checkCount, setCheckCount] = useState(0);
160
+ // 点击按钮时:
161
+ setCheckCount(c => c + 1); // ✅ 通过 setter 更新
162
+ ```
163
+
164
+ ---
165
+
166
+ ## 5. 异步回调链双计数器诊断模式(强制)
167
+
168
+ 对任何 Demo 中涉及「调用库函数 → 等待 Promise / 监听事件回调」的异步链路,**必须**在 Demo 设计中规划双计数器:
169
+
170
+ | 计数器位置 | 变量名建议 | 说明 |
171
+ |-----------|----------|------|
172
+ | 调用/触发前(在触发代码中) | `xxxCallCount` | 接口调用动作的执行次数(通过 `setXxxCallCount(c => c + 1)` 更新) |
173
+ | 回调/resolve 内部 | `xxxCallbackCount` | Promise resolve 或事件回调实际触发的次数(通过 `setXxxCallbackCount(c => c + 1)` 更新) |
174
+
175
+ 两个计数器都必须在 Demo 页面的**验证区域**中展示(使用 `<Text>` 组件),且**必须通过 `useState` 的 setter 函数更新**。
176
+
177
+ ### 诊断规则
178
+
179
+ | 计数器状态 | 诊断结论 |
180
+ |-----------|----------|
181
+ | `callCount > 0` 且 `callbackCount = 0` | 调用成功但回调未触发,问题在回调注册或原生事件链 |
182
+ | `callCount = 0` | 触发代码未执行,问题在 Demo 的触发逻辑 |
183
+ | `callCount = callbackCount > 0` | 链路完全正常 |
184
+
185
+ ### 步骤写作规范
186
+
187
+ ```
188
+ 步骤示例:
189
+ 1. 在组件中声明计数器:
190
+ const [xxxCallCount, setXxxCallCount] = useState(0);
191
+ const [xxxCallbackCount, setXxxCallbackCount] = useState(0);
192
+ 2. 触发按钮:setXxxCallCount(c => c + 1),然后调用 module.doXxx()
193
+ 3. 在 .then() / await 后 / 事件回调中:setXxxCallbackCount(c => c + 1),更新其他 UI 状态
194
+ 4. 验证区域展示:
195
+ <Text>调用次数: {xxxCallCount}</Text>
196
+ <Text>回调次数: {xxxCallbackCount}</Text>
197
+ ```
198
+
199
+ ---
200
+
201
+ ## 6. RN 常用接口调用模式速查
202
+
203
+ ### 6.1 接口模式分类总表
204
+
205
+ RN 三方库的导出接口并非都是"按钮触发 → 函数调用 → 结果展示"模式。不同接口模式需要不同的 Demo 设计策略:
206
+
207
+ | 模式 | 特征 | 调用时机 | 计数器需求 | Demo 步骤要点 |
208
+ |------|------|----------|-----------|--------------|
209
+ | **NativeModules 方法** | `NativeModules.Xxx.doXxx()` | 用户交互触发 | 双计数器(call + callback) | 按钮触发 → await → 展示结果 |
210
+ | **Promise 异步** | `await func()` 返回 Promise | 用户交互触发 | 双计数器(call + callback) | 按钮触发 → await → catch 错误 → 展示 |
211
+ | **NativeEventEmitter 事件** | `addListener('event', cb)` | useEffect 注册 | 双计数器(注册 + 回调触发) | useEffect 注册 → 触发事件 → 回调更新 |
212
+ | **React 组件事件回调** | `<Comp onEvent={} />` | 渲染时绑定 | 双计数器(渲染 + 回调触发) | 渲染组件 → 触发事件 → 回调更新 |
213
+ | **Hook** | `const x = useXxx()` | 组件顶层调用 | **无需双计数器**(同步返回,非异步链路) | 顶层调用 → 渲染时直接展示返回值 |
214
+ | **Context Consumer** | `<Context.Consumer>{(val) => ...}</Context.Consumer>` | 渲染时自动消费 | **无需双计数器**(Context 传递,非异步链路) | Provider 包裹 → Consumer 子渲染函数接收值 → 展示 |
215
+ | **HOC(高阶组件)** | `withXxx(WrappedComp)` | 模块顶层定义 | 单计数器(验证渲染次数即可) | 定义 HOC → 渲染被包装组件 → 验证注入的 props |
216
+ | **常量/变量导出** | `export const X = ...` | 模块加载时求值 | **无需计数器**(静态值,非调用) | 直接读取 → useEffect 中展示 → 对比预期 |
217
+ | **Context 对象引用** | `export const Ctx = createContext(...)` | 模块加载时创建 | **无需计数器**(引用比较) | `===` 引用比较 → 展示布尔结果 |
218
+ | **废弃别名** | `export const alias = original` | 同底层接口 | 同底层接口模式 | 验证别名与原始接口行为一致 + `@deprecated` 标注 |
219
+
220
+ ### 6.2 Hook 模式
221
+
222
+ Hook 在组件顶层调用,返回值在渲染阶段即可获取,**不是异步链路**,无需双计数器。
223
+
224
+ **步骤范式**:
225
+ ```
226
+ 1. 在组件顶层调用 Hook:const value = useXxx()
227
+ 2. 将返回值直接渲染:<Text>{JSON.stringify(value)}</Text>
228
+ 3. [可选] 按钮触发状态变化验证 Hook 响应:setRefreshCount(c => c + 1)
229
+ ```
230
+
231
+ **示例**:
232
+ ```typescript
233
+ // Hook 必须在组件顶层调用,不可在事件回调中调用
234
+ const insets = useSafeAreaInsets();
235
+
236
+ return (
237
+ <View>
238
+ <Text>insets: {JSON.stringify(insets)}</Text>
239
+ </View>
240
+ );
241
+ ```
242
+
243
+ > ⚠️ Hook 不能放在按钮 onPress 回调中,必须在组件函数体顶层调用。
244
+
245
+ ### 6.3 Context Consumer 模式
246
+
247
+ 使用 React Context 的 Consumer 组件,通过 render props 子渲染函数接收 Context 值。**非异步链路**,无需双计数器。
248
+
249
+ **步骤范式**:
250
+ ```
251
+ 1. 外层用 <Provider> 包裹确保 Context 有值
252
+ 2. 使用 <XxxConsumer>{(value) => <Text>{JSON.stringify(value)}</Text>}</XxxConsumer>
253
+ 3. 验证 Consumer 子渲染函数接收到的 value 非空
254
+ ```
255
+
256
+ **示例**:
257
+ ```typescript
258
+ <SafeAreaProvider>
259
+ <SafeAreaConsumer>
260
+ {(insets) => <Text>Consumer value: {JSON.stringify(insets)}</Text>}
261
+ </SafeAreaConsumer>
262
+ </SafeAreaProvider>
263
+ ```
264
+
265
+ ### 6.4 HOC(高阶组件)模式
266
+
267
+ 高阶组件在模块顶层定义,将被包装组件包装后渲染。验证 HOC 注入的 props 是否正确传递。
268
+
269
+ **步骤范式**:
270
+ ```
271
+ 1. 定义被包装组件:function InnerComp(props) { return <Text>{JSON.stringify(props.injected)}</Text> }
272
+ 2. 用 HOC 包装:const Wrapped = withXxx(InnerComp)
273
+ 3. 在 Provider 内渲染 <Wrapped />
274
+ 4. 验证 InnerComp 接收到 HOC 注入的 props
275
+ ```
276
+
277
+ **示例**:
278
+ ```typescript
279
+ function InnerComponent({ insets }: { insets: EdgeInsets }) {
280
+ return <Text>HOC injected insets: {JSON.stringify(insets)}</Text>;
281
+ }
282
+ const WrappedComponent = withSafeAreaInsets(InnerComponent);
283
+
284
+ // 渲染
285
+ <SafeAreaProvider>
286
+ <WrappedComponent />
287
+ </SafeAreaProvider>
288
+ ```
289
+
290
+ ### 6.5 常量/变量导出模式
291
+
292
+ 模块加载时求值的静态导出值,直接读取即可。**非异步链路,非交互触发**,无需计数器。
293
+
294
+ **步骤范式**:
295
+ ```
296
+ 1. 在 useEffect 中读取常量值(避免渲染期间副作用)
297
+ 2. 通过 setXxx() 更新状态展示
298
+ 3. 验证返回值符合预期类型和内容
299
+ ```
300
+
301
+ **示例**:
302
+ ```typescript
303
+ const [metricsText, setMetricsText] = useState('未获取');
304
+
305
+ useEffect(() => {
306
+ setMetricsText(initialWindowMetrics ? JSON.stringify(initialWindowMetrics) : 'null');
307
+ }, []);
308
+
309
+ return <Text>initialWindowMetrics: {metricsText}</Text>;
310
+ ```
311
+
312
+ ### 6.6 Context 对象引用模式
313
+
314
+ 验证两个 Context 对象是否指向同一引用(废弃别名常见场景)。使用 `===` 严格比较。
315
+
316
+ **步骤范式**:
317
+ ```
318
+ 1. 声明状态:const [isSame, setIsSame] = useState(false)
319
+ 2. 按钮触发比较:setIsSame(ContextA === ContextB)
320
+ 3. 展示布尔结果:<Text>相同引用: {isSame.toString()}</Text>
321
+ ```
322
+
323
+ **示例**:
324
+ ```typescript
325
+ const [isSameContext, setIsSameContext] = useState(false);
326
+
327
+ const handleVerify = () => {
328
+ setIsSameContext(SafeAreaContext === SafeAreaInsetsContext);
329
+ };
330
+
331
+ return <Text>Context 相同: {isSameContext.toString()}</Text>;
332
+ ```
333
+
334
+ ### 6.7 废弃别名模式
335
+
336
+ `@deprecated` 废弃别名接口的 Demo 设计,核心是验证别名与底层接口行为一致。
337
+
338
+ **步骤范式**:
339
+ ```
340
+ 1. 同时引入废弃别名和非废弃原始接口
341
+ 2. 分别调用/使用两者
342
+ 3. 对比返回值或行为是否一致
343
+ 4. 若为对象引用(Context/变量),用 === 验证同一性
344
+ 5. 在 Demo 描述中标注"废弃接口兼容性验证"
345
+ ```
346
+
347
+ **示例**:
348
+ ```typescript
349
+ // useSafeArea 是 useSafeAreaInsets 的废弃别名
350
+ const insetsFromAlias = useSafeArea();
351
+ const insetsFromOriginal = useSafeAreaInsets();
352
+
353
+ // 验证返回值一致
354
+ <Text>别名返回: {JSON.stringify(insetsFromAlias)}</Text>
355
+ <Text>原始返回: {JSON.stringify(insetsFromOriginal)}</Text>
356
+ ```
357
+
358
+ ### 6.8 NativeModules 调用模式
359
+
360
+ ```typescript
361
+ import { NativeModules } from 'react-native';
362
+ const { XxxModule } = NativeModules;
363
+
364
+ // Promise
365
+ const result = await XxxModule.someMethod(param);
366
+
367
+ // Callback
368
+ XxxModule.someMethod(param, (error, result) => { ... });
369
+ ```
370
+
371
+ ### 6.9 NativeEventEmitter 事件监听模式
372
+
373
+ ```typescript
374
+ import { NativeModules, NativeEventEmitter } from 'react-native';
375
+ const eventEmitter = new NativeEventEmitter(NativeModules.XxxModule);
376
+
377
+ // 订阅事件(在 useEffect 中注册)
378
+ const subscription = eventEmitter.addListener('eventName', (data) => {
379
+ setXxx(data);
380
+ setCallbackCount(c => c + 1);
381
+ });
382
+
383
+ // 取消订阅(在清理函数中)
384
+ return () => subscription.remove();
385
+ ```
386
+
387
+ ### 6.10 async/await Promise 调用模式
388
+
389
+ ```typescript
390
+ const handlePress = async () => {
391
+ setCallCount(c => c + 1);
392
+ try {
393
+ const result = await SomeModule.doSomething(param);
394
+ setResult(JSON.stringify(result));
395
+ setCallbackCount(c => c + 1);
396
+ } catch (error) {
397
+ setErrorMsg((error as Error).message);
398
+ }
399
+ };
400
+ ```
401
+
402
+ ### 6.11 React 组件事件回调模式
403
+
404
+ ```typescript
405
+ <SomeNativeComponent
406
+ prop1={value1}
407
+ onEvent={(data) => {
408
+ setCallbackCount(c => c + 1);
409
+ setResult(JSON.stringify(data));
410
+ }}
411
+ onError={(err) => setErrorMsg(err.message)}
412
+ />
413
+ ```
@@ -0,0 +1,269 @@
1
+ # 输出格式规范
2
+
3
+ > 本文档定义 Demo 描述文档的输出结构、表格格式和各字段填写规范。
4
+
5
+ ---
6
+
7
+ ## 1. 输出文件命名
8
+
9
+ **文件名**:`{库名}RN测试demo描述.md`
10
+
11
+ - 库名从 `package.json` 的 `name` 字段提取
12
+ - 放置在 `libroot` 目录下(或 `output` 参数指定路径)
13
+ - 示例:`react-native-bluetooth-managerRN测试demo描述.md`
14
+
15
+ ---
16
+
17
+ ## 2. 文档结构
18
+
19
+ ### 2.1 全量模式
20
+
21
+ ```markdown
22
+ # {库名} RN 测试 Demo 描述文档(HarmonyOS 平台)
23
+
24
+ ## 概述
25
+
26
+ 本文档基于 `{库名}` 库的接口规格(`interface-spec.json`)和接口规格说明书(`{库名}接口规格说明.md`)生成,提供该库各接口在 HarmonyOS 平台可用的 React Native 测试 Demo 描述,供开发者参考实现功能验证 Demo 页面。
27
+
28
+ > **平台说明**:本文档基于 RN 鸿蒙三方库的接口规格生成,仅包含该库在 HarmonyOS 平台可用的测试 Demo。已过滤 iOS/Android 平台专用接口。
29
+
30
+ ## Demo 总览
31
+
32
+ | Demo 数量 | 覆盖接口数量 | 生成日期 |
33
+ |----------|------------|---------|
34
+ | N 个 | M 个 | YYYY-MM-DD |
35
+
36
+ ## 测试 Demo 描述列表
37
+
38
+ | 序号 | 测试 Demo 名称 | 测试 Demo 描述 | 测试 Demo 步骤 | 测试 Demo 预期结果 | 对应函数接口 |
39
+ |-----|--------------|--------------|--------------|-----------------|------------|
40
+ | 1 | ... | ... | ... | ... | ... |
41
+
42
+ ## 接口覆盖矩阵
43
+
44
+ | 序号 | 接口名称 | 所在 Demo | 覆盖状态 |
45
+ |-----|---------|----------|---------|
46
+ | 1 | ... | ... | ✅ 已覆盖 |
47
+ ```
48
+
49
+ ### 2.2 增量模式 — 标准路径(有 interface-spec.json)
50
+
51
+ ```markdown
52
+ # {库名} RN 测试 Demo 描述文档(HarmonyOS 平台)
53
+
54
+ ## 概述
55
+
56
+ 本文档基于 `{库名}` 库的接口规格和 Demo 覆盖率报告生成,提供该库各接口在 HarmonyOS 平台可用的 React Native 测试 Demo 描述,供开发者参考实现功能验证 Demo 页面。
57
+
58
+ > **增量模式**:本文档仅针对 Demo 覆盖率报告中未覆盖的接口生成 Demo 描述。
59
+ >
60
+ > **覆盖率来源**:`{demoCoverage报告路径}`
61
+ > **接口统计**:总接口数 {N},已覆盖 {M},本次生成 {待生成数}
62
+
63
+ > **平台说明**:本文档仅包含 HarmonyOS 平台可用的测试 Demo。已过滤 iOS/Android 平台专用接口。
64
+
65
+ ## Demo 总览
66
+
67
+ | Demo 数量 | 本次生成接口数量 | 生成日期 |
68
+ |----------|----------------|---------|
69
+ | N 个 | M 个 | YYYY-MM-DD |
70
+
71
+ ## 测试 Demo 描述列表
72
+
73
+ | 序号 | 测试 Demo 名称 | 测试 Demo 描述 | 测试 Demo 步骤 | 测试 Demo 预期结果 | 对应函数接口 |
74
+ |-----|--------------|--------------|--------------|-----------------|------------|
75
+ | 1 | ... | ... | ... | ... | ... |
76
+
77
+ ## 接口覆盖矩阵(本次新增)
78
+
79
+ | 序号 | 接口名称 | 所在 Demo | 覆盖状态 |
80
+ |-----|---------|----------|---------|
81
+ | 1 | ... | ... | ✅ 本次新增 |
82
+ ```
83
+
84
+ ### 2.3 增量模式 — 快捷路径(仅覆盖率报告 + 源码分析)
85
+
86
+ ```markdown
87
+ # {库名} RN 测试 Demo 描述文档(HarmonyOS 平台)
88
+
89
+ ## 概述
90
+
91
+ 本文档基于 `{库名}` 库的 Demo 覆盖率报告(`{coverageReport}`)和源码分析生成,提供该库未覆盖接口在 HarmonyOS 平台可用的 React Native 测试 Demo 描述,供开发者参考实现功能验证 Demo 页面。
92
+
93
+ > **增量模式**:本文档仅针对 Demo 覆盖率报告中未覆盖的接口生成 Demo 描述。
94
+ >
95
+ > **覆盖率来源**:`{coverageReport}`
96
+ > **接口统计**:总接口数 {N},已覆盖 {M},本次生成 {待生成数}
97
+
98
+ > **平台说明**:本文档仅包含 HarmonyOS 平台可用的测试 Demo。已过滤 iOS/Android 平台专用接口。
99
+
100
+ ## Demo 总览
101
+
102
+ | Demo 数量 | 本次生成接口数量 | 生成日期 |
103
+ |----------|----------------|---------|
104
+ | N 个 | M 个 | YYYY-MM-DD |
105
+
106
+ ## 测试 Demo 描述列表
107
+
108
+ | 序号 | 测试 Demo 名称 | 测试 Demo 描述 | 测试 Demo 步骤 | 测试 Demo 预期结果 | 对应函数接口 |
109
+ |-----|--------------|--------------|--------------|-----------------|------------|
110
+ | 1 | ... | ... | ... | ... | ... |
111
+
112
+ ## 接口覆盖矩阵(本次新增)
113
+
114
+ | 序号 | 接口名称 | 所在 Demo | 覆盖状态 |
115
+ |-----|---------|----------|---------|
116
+ | 1 | ... | ... | ✅ 本次新增 |
117
+ ```
118
+
119
+ > **来源声明规则**:
120
+ > - 全量模式(2.1):声明基于 interface-spec.json + 接口规格说明书
121
+ > - 增量标准路径(2.2):声明基于接口规格 + 覆盖率报告
122
+ > - 增量快捷路径(2.3):声明基于覆盖率报告 + 源码分析,**不得**提及 interface-spec.json 或接口规格说明书
123
+ >
124
+ > 增量模式下,"Demo 总览"表头为"本次生成接口数量"而非"覆盖接口数量";接口覆盖矩阵的覆盖状态标注为"✅ 本次新增"。
125
+
126
+ ---
127
+
128
+ ## 3. 表格内容规范
129
+
130
+ ### 3.1 序号
131
+
132
+ - 从 1 开始的自增整数
133
+ - 全文档保持唯一且连续
134
+ - Demo 描述列表和接口覆盖矩阵分别独立编号
135
+
136
+ ### 3.2 测试 Demo 名称
137
+
138
+ - 简洁明了,不超过 20 字
139
+ - 格式:`[功能动词/名词][操作对象][场景]Demo`
140
+ - 避免泛化词语
141
+
142
+ ### 3.3 测试 Demo 描述
143
+
144
+ - 2-4 句话
145
+ - 说明功能、目的和覆盖接口
146
+ - 明确标注该 Demo 针对 HarmonyOS 平台的特性
147
+
148
+ ### 3.4 测试 Demo 步骤
149
+
150
+ - 编号列表,每步骤一行
151
+ - 具体可执行,含接口调用位置及 `setXxx()` 更新说明
152
+ - 以 RN 函数式组件页面为视角
153
+ - 包含维度:组件构建、状态声明、交互触发、参数传递、状态更新、结果展示、验证方式、HarmonyOS 平台说明
154
+
155
+ ### 3.5 测试 Demo 预期结果
156
+
157
+ - 编号列表
158
+ - 具体可验证的观测指标
159
+ - 特别标注 HarmonyOS 平台的预期行为
160
+ - 对于 README 中未列出或无平台标注的接口,建议开发者验证实际可用性
161
+ - 对于 README 中未列出的接口,须设计诊断指标(如"若回调未触发 callbackCount 保持 0,可能为鸿蒙化适配遗漏,需进一步排查")
162
+
163
+ ### 3.6 对应函数接口
164
+
165
+ - 列出所有相关接口的函数签名
166
+ - 格式:`` `funcName(paramType): ReturnType` `` 或 `` `<ComponentName prop={type} />` ``
167
+ - 多个接口用 `<br>` 分隔(表格内换行)
168
+
169
+ ---
170
+
171
+ ## 4. 接口覆盖矩阵填写规范
172
+
173
+ ```markdown
174
+ | 序号 | 接口名称 | 所在 Demo | 覆盖状态 |
175
+ |-----|---------|----------|---------|
176
+ | 1 | `BluetoothModule.startScan(timeout: number): Promise<void>` | 蓝牙扫描与停止Demo | ✅ 已覆盖 |
177
+ | 2 | `BluetoothModule.stopScan(): Promise<void>` | 蓝牙扫描与停止Demo | ✅ 已覆盖 |
178
+ | 3 | `getSDKVersion(): string` | 版本信息查询Demo | ✅ 已覆盖 |
179
+ ```
180
+
181
+ **规则**:
182
+ - 矩阵中每个接口的"所在 Demo"与 Demo 描述列表中的名称严格一致
183
+ - 全量模式:所有接口状态为 ✅ 已覆盖,不得出现未覆盖接口
184
+ - 增量模式:仅列出本次新增的未覆盖接口,状态为 ✅ 本次新增;已覆盖接口不出现
185
+ - 若单个接口出现在多个 Demo 中,用"/"分隔(如"Demo1 / Demo2")
186
+ - README 标注 `no` 的排除接口不出现在矩阵中
187
+ - 排除接口须在文档中以独立章节列出,标注排除依据为 README 文档标注(含 README 行号),不标注源码分析依据
188
+
189
+ ---
190
+
191
+ ## 5. 表格内换行处理
192
+
193
+ Markdown 表格单元格内需要换行时,使用 `<br>` 标签:
194
+
195
+ ```markdown
196
+ | 1 | 扫描Demo | 描述内容 | 1. 步骤一<br>2. 步骤二<br>3. 步骤三 | 1. 预期一<br>2. 预期二 | `funcA(): void`<br>`funcB(): Promise` |
197
+ ```
198
+
199
+ ---
200
+
201
+ ## 6. 代码内联格式
202
+
203
+ 在表格单元格内引用代码时,使用反引号:
204
+
205
+ - 函数名:`` `startScan` ``
206
+ - 函数签名:`` `startScan(timeout?: number): Promise<void>` ``
207
+ - 组件:`` `<CameraView onBarCodeRead={} />` ``
208
+ - 变量:`` `callCount` ``
209
+ - useState 声明:`` `const [result, setResult] = useState('')` ``
210
+
211
+ ---
212
+
213
+ ## 7. 排除接口详情章节规范
214
+
215
+ 当有接口因平台过滤被排除时,输出文档须包含独立的「未覆盖接口平台过滤详情」章节,明确记录排除依据。
216
+
217
+ > ⚠️ **排除依据**:仅依据 README 文档的「HarmonyOS Support」列标注。**禁止**将源码分析(`Platform.OS` 分支、TurboModule Spec、原生实现)作为排除依据。
218
+
219
+ ### 7.1 章节结构
220
+
221
+ ```markdown
222
+ ## 未覆盖接口平台过滤详情
223
+
224
+ 覆盖率报告中共 {N} 个未覆盖接口,平台过滤仅依据 README.md「接口说明」章节的「HarmonyOS Support」列进行判定。
225
+
226
+ ### 过滤规则
227
+
228
+ | README「HarmonyOS Support」标注 | 处理方式 | 接口数量 |
229
+ |--------------------------------|----------|---------|
230
+ | `no` | 排除,不生成 Demo | {X} |
231
+ | 未列出 | 视为无平台标注,默认跨平台,生成 Demo | {Y} |
232
+
233
+ ### 已排除接口(README 标注 `no`)
234
+
235
+ | # | 接口名称 | 参数 / 返回类型 | README HarmonyOS Support | README Platform | 排除原因 |
236
+ |---|----------|----------------|--------------------------|-----------------|----------|
237
+ | 1 | `funcName(params): void` | `(params: Type): void` | `no` | Android | README 明确标注 HarmonyOS 不支持 |
238
+
239
+ ### 已生成 Demo 接口(README 未列出)
240
+
241
+ | # | 接口名称 | 参数 / 返回类型 | README 状态 | 上游版本 | 上游源码签名来源 |
242
+ |---|----------|----------------|------------|---------|----------------|
243
+ | 1 | `funcName(params): void` | `(params: Type): void` | 未列出 | 3.2.7 新增 | `.upstream-cache/.../index.d.ts:{行号}` |
244
+ ```
245
+
246
+ ### 7.2 排除接口记录字段
247
+
248
+ | 字段 | 说明 | 必填 |
249
+ |------|------|------|
250
+ | 接口名称 | 被排除的接口名 | ✅ |
251
+ | 参数 / 返回类型 | 接口签名摘要 | ✅ |
252
+ | README HarmonyOS Support | README 中的标注值(`no`) | ✅ |
253
+ | README Platform | README 中的 Platform 列值 | ✅ |
254
+ | README 行号 | 标注所在行号(便于追溯) | 推荐 |
255
+ | 排除原因 | 基于 README 文档标注排除 | ✅ |
256
+
257
+ > ⚠️ 排除原因中**不得**出现"源码中无 harmony 分支"、"TurboModule Spec 未定义"、"原生层未实现"等源码分析依据。排除依据仅为 README 文档标注。
258
+
259
+ ### 7.3 保留接口记录字段
260
+
261
+ 对于 README 未列出而保留生成的接口,须记录:
262
+
263
+ | 字段 | 说明 | 必填 |
264
+ |------|------|------|
265
+ | 接口名称 | 保留的接口名 | ✅ |
266
+ | 参数 / 返回类型 | 接口签名摘要 | ✅ |
267
+ | README 状态 | "未列出" | ✅ |
268
+ | 上游版本 | 接口在上游哪个版本新增 | 推荐 |
269
+ | 上游源码签名来源 | `.upstream-cache` 中的源码位置 | ✅ |