@ohos-cpf/3rdloop 0.0.2 → 0.0.3

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 +244 -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,306 +1,306 @@
1
- ---
2
- name: rnoh-lib-demo-create
3
- description: >-
4
- 根据 Demo 描述文档({库名}RN测试demo描述.md)为 RN 工程生成完整的 Tester 框架 Demo 代码。
5
- 解析描述文档中的 Demo 五要素(名称、描述、步骤、预期结果、对应接口),探查三方库 JS 层
6
- 导出接口与平台兼容性(Platform.OS === 'harmony' 分支可用 API),生成 Demo 页面代码、
7
- 主入口文件(index.tsx)、RNTesterList 注册。仅关注 RN 工程的 Demo 代码补充,
8
- 不涉及鸿蒙原生侧配置(oh-package/CMake/PackageProvider 等由其他流程处理)。
9
- 当已有 Demo 描述文档需要落地为可运行 Demo 代码时使用。
10
- license: Apache-2.0
11
- compatibility: 需要 MCP Gateway 运行中(script_rn_extract_interfaces、kb_search),需要文件读取与写入权限,需要 RN 工程(含 example/demo 目录和 Tester 框架)
12
- metadata:
13
- version: "1.0.0"
14
- category: rn-testing
15
- language: JavaScript/TypeScript/React Native
16
- useWhen: 基于 Demo 描述文档生成 RN Tester 框架 Demo 代码
17
- consumes: rnohLibDemoDocSkill
18
- consumed-by: rnohLibDemoCoverageSkill
19
- ---
20
-
21
- # RN 鸿蒙三方库 Demo 代码生成
22
-
23
- 本技能根据 **Demo 描述文档**(由 `rnoh-lib-demo-doc` 生成的 `{库名}RN测试demo描述.md`),探查三方库 JS 层导出接口与平台兼容性后,自动探查当前工程的 example/demo 目录结构和 Demo 注册入口,生成 Tester 框架的 Demo 页面代码、主入口文件并注册到工程中。
24
-
25
- > ⚠️ **核心约束**:本技能仅关注 RN 工程的 Demo 代码生成,不涉及鸿蒙原生侧配置(oh-package.json5、CMakeLists.txt、PackageProvider.cpp、RNPackagesFactory.ets、buildCustomRNComponent 等由工程集成流程处理)。Demo 代码只使用 `Platform.OS === 'harmony'` 分支中定义的 API,禁止照搬 iOS/Android 示例。不硬编码工程路径,所有目录和注册入口通过探查确定。
26
-
27
- > ⚠️ **无平台分支库**:部分库(如 `react-native-safe-area-context`)没有 `Platform.OS === 'harmony'` 分支,而是通过 TurboModule 原生适配,JS 层所有导出在 HarmonyOS 上全部可用。探查时需区分此类库,无需过滤 iOS/Android 专属属性。
28
-
29
- > ⚠️ **废弃接口**:部分库包含 `@deprecated` 废弃别名接口(如 `useSafeArea` → `useSafeAreaInsets`、`SafeAreaContext` → `SafeAreaInsetsContext`)。废弃接口在 HarmonyOS 平台仍正常可用,需生成 Demo 验证其兼容性,并使用引用相等性比较(`===`)验证别名关系。
30
-
31
- ---
32
-
33
- ## 任务参数
34
-
35
- | 参数 | 类型 | 必填 | 说明 |
36
- |------|------|------|------|
37
- | `demoDoc` | string | ✅ | Demo 描述文档路径(`{库名}RN测试demo描述.md`) |
38
- | `projectRoot` | string | ✅ | RN 工程根目录(含 example/demo 目录) |
39
- | `libName` | string | ✅ | 三方库名(如 `react-native-audio`),用于目录命名 |
40
- | `harmonyPkgName` | string | ✅ | 鸿蒙包名(如 `@react-native-ohos/react-native-audio`),用于 import 语句 |
41
- | `category` | string | ❌ | Demo 分类,默认 `UI`(可选 `API`/`Media`/`Basic`/`Component`) |
42
-
43
- **派生变量**(Phase 1 探查后确定):
44
- - `skillDir`:本 SKILL 所在目录
45
- - `exampleDir`:探查到的 example/demo 目录绝对路径(见 Phase 1.2)
46
- - `demoDir`:`{exampleDir}/{libName}/demo/`
47
- - `indexFile`:`{exampleDir}/{libName}/index.tsx`
48
- - `registerFile`:探查到的 Demo 注册入口文件路径(见 Phase 1.2)
49
-
50
- ---
51
-
52
- ## 输入依赖
53
-
54
- - **前置SKILL**: `rnoh-lib-demo-doc`(提供 Demo 描述文档)
55
- - **输入文件**: Demo 描述文档(Markdown,含五要素表格)
56
- - **MCP工具**: `script_rn_extract_interfaces`(提取接口规格辅助验证)、`kb_search`(鸿蒙知识查询)
57
- - **项目结构**: RN 工程(含 example/demo 目录和 Tester 框架)
58
-
59
- ---
60
-
61
- ## 工作流程概览
62
-
63
- ```
64
- Phase 1: 描述文档解析与项目分析
65
-
66
- Phase 2: 三方库 JS 层接口与平台兼容性探查
67
-
68
- Phase 3: Demo 代码生成(页面/入口/RNTester注册)
69
-
70
- Phase 4: 质量校验与输出报告
71
- ```
72
-
73
- ---
74
-
75
- ## Phase 1:描述文档解析与项目分析
76
-
77
- ### 1.1 解析 Demo 描述文档
78
-
79
- 读取 `demoDoc`,提取 Demo 五要素表格:
80
-
81
- | 要素 | 提取内容 |
82
- |------|----------|
83
- | 名称 | Demo 名称,用于文件命名(转 kebab-case) |
84
- | 描述 | 功能说明,用于 TestCase `itShould` |
85
- | 步骤 | 编号列表,含 useState/useEffect/接口调用/setXxx() |
86
- | 预期结果 | 可观测指标,用于验证 |
87
- | 对应接口 | 函数签名列表,用于代码生成依据 |
88
-
89
- ### 1.2 探查工程目录结构与注册入口
90
-
91
- > ⚠️ 不硬编码工程路径,通过探查确定 example/demo 目录和 Demo 注册文件。
92
-
93
- #### 1.2.1 探查 example/demo 目录
94
-
95
- 在 `projectRoot` 下按优先级搜索 example/demo 目录(取第一个存在的):
96
-
97
- | 优先级 | 搜索路径 | 说明 |
98
- |--------|----------|------|
99
- | 1 | `{projectRoot}/rn-tester/examples/` | RNTester 框架标准目录 |
100
- | 2 | `{projectRoot}/example/src/` | 常见 example 工程 |
101
- | 3 | `{projectRoot}/examples/src/` | 多 example 工程 |
102
- | 4 | `{projectRoot}/example/` | 简单 example |
103
- | 5 | `{projectRoot}/demo/src/` | demo 目录 |
104
- | 6 | `{projectRoot}/demo/` | 简单 demo |
105
-
106
- 探查到的目录赋值给 `exampleDir`。Demo 页面文件将生成在 `{exampleDir}/{libName}/demo/` 下。
107
-
108
- #### 1.2.2 探查 Demo 注册入口文件
109
-
110
- 在 `projectRoot` 下搜索 Demo 注册入口(即已有 Demo 列表被注册的文件),按优先级:
111
-
112
- | 优先级 | 搜索路径 | 说明 |
113
- |--------|----------|------|
114
- | 1 | `{projectRoot}/**/RNTesterList.ts` | RNTester 框架注册文件 |
115
- | 2 | `{projectRoot}/**/TesterList.*` | Tester 列表变体 |
116
- | 3 | `{projectRoot}/example/src/App.tsx` 或 `App.ts` | example 工程入口 |
117
- | 4 | `{projectRoot}/**/navigation*` 或 `routes*` | 导航/路由配置 |
118
-
119
- 探查到的文件赋值给 `registerFile`。读取其内容,分析现有 Demo 的注册模式(require/import 方式、数组结构),后续按相同模式注册新 Demo。
120
-
121
- > ⚠️ **注册模式识别**:不同工程使用不同的注册模式,必须读取 `registerFile` 内容后分析其数组结构、import 方式和对象字段,按相同模式追加。常见模式见 Phase 3.4。
122
-
123
- #### 1.2.3 缺失处理
124
-
125
- | 探查项 | 缺失处理 |
126
- |--------|----------|
127
- | `package.json` | ⚠️ 停止,提示非 RN 工程 |
128
- | example/demo 目录 | ⚠️ 停止,提示用户指定 Demo 目录 |
129
- | 注册入口文件 | ⚠️ 停止,提示用户指定注册文件,或手动注册 |
130
-
131
- ### 1.3 验证依赖存在
132
-
133
- 检查 `package.json` 中 `dependencies` 是否包含目标库。**依赖不存在时必须停止**,不得继续代码生成。
134
-
135
- > 描述文档解析与项目分析的详细步骤参见 [Demo 代码规则](references/DEMO_CODE_RULES.md)
136
-
137
- ---
138
-
139
- ## Phase 2:三方库 JS 层接口与平台兼容性探查
140
-
141
- > ⚠️ **关键步骤**:生成 Demo 代码前,必须探查三方库 JS 层实际导出的接口和平台兼容性,确保 Demo 代码只使用 HarmonyOS 平台实际支持的 API。详细探查方法参见 [源码探查指南](references/SOURCE_EXPLORATION.md)
142
-
143
- ### 2.1 探查清单
144
-
145
- | # | 探查项 | 探查路径 | 提取信息 |
146
- |---|--------|----------|----------|
147
- | 2.1 | JS 层导出接口 | `node_modules/{harmonyPkgName}/index.js` 或 `index.ts` | 导出的函数、类、组件、Hooks、常量、枚举 |
148
- | 2.2 | 平台兼容性 API | 同上,查找 `Platform.OS === 'harmony'` 分支 | harmony 分支下可用属性/常量/方法、不可用 API |
149
- | 2.3 | TurboModule Spec | `node_modules/{harmonyPkgName}/src/**/Native*.ts` | 方法签名、Promise vs 同步、事件名 |
150
- | 2.4 | 类型定义 | `node_modules/{harmonyPkgName}/**/*.d.ts` | 参数类型、可选参数、返回值类型 |
151
-
152
- ### 2.2 探查结果汇总
153
-
154
- 探查完成后汇总为接口能力清单:
155
-
156
- | 信息 | 说明 | 示例 |
157
- |------|------|------|
158
- | HarmonyOS 可用导出 | harmony 分支中定义的属性和 API | `FilesDirectoryPath`、`startRecording()` |
159
- | HarmonyOS 不可用 API | 仅 iOS/Android 分支存在的属性 | `DocumentDirectoryPath`、`MainBundlePath` |
160
- | 方法调用方式 | Promise vs 同步 | `startRecording()` 返回 Promise |
161
- | 事件名称 | DeviceEventEmitter 监听的事件名 | `recordingProgress`、`recordingFinished` |
162
-
163
- ### 2.3 MCP 工具辅助
164
-
165
- 可调用 `script_rn_extract_interfaces` 提取接口规格 JSON,用于交叉验证描述文档中的接口签名是否与源码一致。
166
-
167
- 调用 `kb_search` 查询鸿蒙平台特定约束(如权限要求、ArkTS 限制)。
168
-
169
- ---
170
-
171
- ## Phase 3:Demo 代码生成
172
-
173
- > 详细的代码规范、禁止事项、模板参见 [Demo 代码规则](references/DEMO_CODE_RULES.md) 和 [代码模板](assets/DEMO_PAGE_TEMPLATE.md)
174
-
175
- ### 3.1 创建目录结构
176
-
177
- 在 Phase 1.2 探查到的 `exampleDir` 下创建:
178
-
179
- ```
180
- {exampleDir}/{libName}/
181
- ├── index.tsx # 主入口(Tester 框架 + 元数据导出)
182
- └── demo/
183
- ├── 001_{描述1}Page.tsx
184
- ├── 002_{描述2}Page.tsx
185
- └── ...
186
- ```
187
-
188
- ### 3.2 生成 Demo 页面代码
189
-
190
- 每个 Demo 页面基于描述文档五要素生成,必须遵循以下核心规则:
191
-
192
- | 规则 | 说明 |
193
- |------|------|
194
- | 根组件用 `View` | ❌ 禁止 `ScrollView` 作为根(Tester 已有 ScrollView,嵌套导致高度塌陷) |
195
- | 不用 `SafeAreaView`/`StatusBar` | Tester 框架不需要 |
196
- | 不用 `Slider` | HarmonyOS 不支持,用按钮组替代 |
197
- | 不用 `console.error()` | 会触发系统弹窗,用 `console.warn()` 替代 |
198
- | 平台兼容性 | 只用 `Platform.OS === 'harmony'` 分支的属性(基于 Phase 2.2);无平台分支的库全部可用 |
199
- | 权限请求 | 涉及麦克风/相机/定位等操作前必须请求权限 |
200
- | 计时器兜底 | 原生事件不可靠时用 JS `setInterval` 兜底,停止时只清计时器不重置值 |
201
- | 异步处理 | 用 `async/await` + `try/catch`,不用 `.then()/.catch()` 链 |
202
- | 无注释 | 代码中不使用 `//` 或 `/* */` |
203
- | Hook 调用位置 | Hook 必须在组件顶层调用,不可在事件回调中调用;依赖 Context 的 Hook 须放在 Provider 子组件中 |
204
- | 废弃接口验证 | 使用引用相等性比较(`===`)验证别名关系,比功能对比更可靠 |
205
- | type 导入 | 使用 `import { type EdgeInsets }` inline type 语法,与运行时导出混写,避免类型进入打包 |
206
- | Provider 子组件拆分 | 依赖 Context 值的 Hook/组件须拆分到 Provider 子组件中,确保 Context 有值 |
207
-
208
- ### 3.3 生成主入口文件
209
-
210
- `index.tsx` 包含:
211
- 1. Tester 框架集成(`Tester` + `TestSuite` + `TestCase`)
212
- 2. 元数据导出(`displayName`、`framework`、`category`、`title`、`description`、`examples`)
213
-
214
- > 入口文件模板参见 [入口模板](assets/INDEX_TEMPLATE.md)
215
-
216
- ### 3.4 更新 Demo 注册入口
217
-
218
- 在 Phase 1.2 探查到的 `registerFile` 中注册新模块。**按该文件现有的注册模式追加**,不破坏已有结构。必须先读取 `registerFile` 内容分析其注册模式,按相同模式追加。
219
-
220
- **模式 A:RNTesterList.ts 数组注册**(常见于 RNTester 框架):
221
- ```typescript
222
- {
223
- key: '{libName}',
224
- category: '{category}',
225
- module: require('{相对于registerFile的路径到index}'),
226
- }
227
- ```
228
-
229
- **模式 B:App.tsx 导入注册**(常见于 example 工程):
230
- ```typescript
231
- import {libNamePascalCase}Tester from './{相对于App.tsx的路径到index}';
232
- // 在导航/路由配置中添加该 Demo 页面
233
- ```
234
-
235
- **模式 C:自定义 demos 数组注册**(常见于工程自带的自定义 Tester 入口,如 `example/src/index.tsx`):
236
- ```typescript
237
- import {libNamePascalCase}Tester from './{相对于registerFile的路径到index}';
238
- // 追加到 demos 数组
239
- const demos: IDemoItem[] = [
240
- // ...已有条目
241
- { Component: {libNamePascalCase}Tester, name: '{Demo显示名}', key: '{libNamePascalCase}' }
242
- ];
243
- ```
244
-
245
- > ⚠️ `require`/`import` 的路径必须是从 `registerFile` 到 `indexFile` 的**相对路径**,根据实际目录层级计算,不硬编码固定路径。
246
-
247
- > ⚠️ **模式选择策略**:读取 `registerFile` 后,按以下优先级匹配注册模式:
248
- > 1. 文件含 `require(...)` + 数组对象含 `module` 字段 → 模式 A
249
- > 2. 文件含 `import ... from ...` + 导航/路由配置 → 模式 B
250
- > 3. 文件含 `demos`/`items` 数组 + `Component` 字段 → 模式 C
251
- > 4. 以上均不匹配 → 停止,提示用户指定注册方式
252
-
253
- > 注册模式与路径计算的详细说明参见 [入口模板](assets/INDEX_TEMPLATE.md)
254
-
255
- ---
256
-
257
- ## Phase 4:质量校验与输出报告
258
-
259
- ### 4.1 质量校验
260
-
261
- 生成完成后执行校验:
262
-
263
- > 完整检查清单参见 [质量检查清单](references/QUALITY_CHECKLIST.md)
264
-
265
- | 校验维度 | 关键检查项 |
266
- |----------|-----------|
267
- | 接口探查完整性 | JS 导出接口、平台兼容性 API、TurboModule Spec、类型定义 全部探查 |
268
- | 工程结构探查 | example/demo 目录已探查、注册入口文件已探查 |
269
- | 代码规范 | 无 ScrollView 根组件、无 Slider、无 console.error、无注释 |
270
- | 平台兼容性 | 未使用 iOS/Android 专属属性(基于 Phase 2.2);无平台分支库全部可用 |
271
- | 权限处理 | 敏感权限操作前有权限请求 |
272
- | Tester 集成 | 注册入口已更新、index.tsx 含元数据导出 |
273
- | 注册模式适配 | 注册模式(A/B/C)与 registerFile 现有模式一致,未破坏已有结构 |
274
- | Hook 约束 | Hook 在组件顶层调用,依赖 Context 的 Hook 在 Provider 子组件中 |
275
- | 废弃接口验证 | 使用引用相等性比较(`===`)验证别名关系 |
276
-
277
- ### 4.2 输出产物
278
-
279
- | 产物 | 路径 | 说明 |
280
- |------|------|------|
281
- | Demo 页面文件 | `{exampleDir}/{libName}/demo/00X_*.tsx` | 每个 Demo 一个文件 |
282
- | 主入口文件 | `{exampleDir}/{libName}/index.tsx` | Tester 框架 + 元数据 |
283
- | 注册入口文件 | `{registerFile}` | 已追加新 Demo 注册 |
284
-
285
- ### 4.3 输出报告
286
-
287
- 生成完成后输出确认信息,包含:
288
- - 生成的文件列表
289
- - 探查到的工程结构(exampleDir、registerFile)
290
- - 接口探查结果汇总(JS 导出接口、harmony 可用/不可用 API)
291
- - Demo 数量与覆盖接口数
292
- - 注册模式(模式 A/B/C)及注册路径
293
- - 废弃接口验证结果(如涉及)
294
- - 需用户后续确认的事项(如需手动验证的项)
295
-
296
- ---
297
-
298
- ## 参考资料
299
-
300
- - [源码探查指南](references/SOURCE_EXPLORATION.md) — JS 层导出接口、平台兼容性 API 探查方法与示例
301
- - [Demo 代码规则](references/DEMO_CODE_RULES.md) — 目录规范、页面代码规范、禁止事项、常见陷阱
302
- - [质量检查清单](references/QUALITY_CHECKLIST.md) — 完整校验项
303
- - [Demo 页面模板](assets/DEMO_PAGE_TEMPLATE.md) — 可复制的页面代码模板
304
- - [入口文件模板](assets/INDEX_TEMPLATE.md) — 可复制的 index.tsx 模板
305
- - React Native 官方文档:https://reactnative.dev
306
- - RNOH 官方文档:https://gitcode.com/OpenHarmony-RN/usage-docs/tree/master/zh-cn
1
+ ---
2
+ name: rnoh-lib-demo-create
3
+ description: >-
4
+ 根据 Demo 描述文档({库名}RN测试demo描述.md)为 RN 工程生成完整的 Tester 框架 Demo 代码。
5
+ 解析描述文档中的 Demo 五要素(名称、描述、步骤、预期结果、对应接口),探查三方库 JS 层
6
+ 导出接口与平台兼容性(Platform.OS === 'harmony' 分支可用 API),生成 Demo 页面代码、
7
+ 主入口文件(index.tsx)、RNTesterList 注册。仅关注 RN 工程的 Demo 代码补充,
8
+ 不涉及鸿蒙原生侧配置(oh-package/CMake/PackageProvider 等由其他流程处理)。
9
+ 当已有 Demo 描述文档需要落地为可运行 Demo 代码时使用。
10
+ license: Apache-2.0
11
+ compatibility: 需要 MCP Gateway 运行中(script_rn_extract_interfaces、kb_search),需要文件读取与写入权限,需要 RN 工程(含 example/demo 目录和 Tester 框架)
12
+ metadata:
13
+ version: "1.0.0"
14
+ category: rn-testing
15
+ language: JavaScript/TypeScript/React Native
16
+ useWhen: 基于 Demo 描述文档生成 RN Tester 框架 Demo 代码
17
+ consumes: rnohLibDemoDocSkill
18
+ consumed-by: rnohLibDemoCoverageSkill
19
+ ---
20
+
21
+ # RN 鸿蒙三方库 Demo 代码生成
22
+
23
+ 本技能根据 **Demo 描述文档**(由 `rnoh-lib-demo-doc` 生成的 `{库名}RN测试demo描述.md`),探查三方库 JS 层导出接口与平台兼容性后,自动探查当前工程的 example/demo 目录结构和 Demo 注册入口,生成 Tester 框架的 Demo 页面代码、主入口文件并注册到工程中。
24
+
25
+ > ⚠️ **核心约束**:本技能仅关注 RN 工程的 Demo 代码生成,不涉及鸿蒙原生侧配置(oh-package.json5、CMakeLists.txt、PackageProvider.cpp、RNPackagesFactory.ets、buildCustomRNComponent 等由工程集成流程处理)。Demo 代码只使用 `Platform.OS === 'harmony'` 分支中定义的 API,禁止照搬 iOS/Android 示例。不硬编码工程路径,所有目录和注册入口通过探查确定。
26
+
27
+ > ⚠️ **无平台分支库**:部分库(如 `react-native-safe-area-context`)没有 `Platform.OS === 'harmony'` 分支,而是通过 TurboModule 原生适配,JS 层所有导出在 HarmonyOS 上全部可用。探查时需区分此类库,无需过滤 iOS/Android 专属属性。
28
+
29
+ > ⚠️ **废弃接口**:部分库包含 `@deprecated` 废弃别名接口(如 `useSafeArea` → `useSafeAreaInsets`、`SafeAreaContext` → `SafeAreaInsetsContext`)。废弃接口在 HarmonyOS 平台仍正常可用,需生成 Demo 验证其兼容性,并使用引用相等性比较(`===`)验证别名关系。
30
+
31
+ ---
32
+
33
+ ## 任务参数
34
+
35
+ | 参数 | 类型 | 必填 | 说明 |
36
+ |------|------|------|------|
37
+ | `demoDoc` | string | ✅ | Demo 描述文档路径(`{库名}RN测试demo描述.md`) |
38
+ | `projectRoot` | string | ✅ | RN 工程根目录(含 example/demo 目录) |
39
+ | `libName` | string | ✅ | 三方库名(如 `react-native-audio`),用于目录命名 |
40
+ | `harmonyPkgName` | string | ✅ | 鸿蒙包名(如 `@react-native-ohos/react-native-audio`),用于 import 语句 |
41
+ | `category` | string | ❌ | Demo 分类,默认 `UI`(可选 `API`/`Media`/`Basic`/`Component`) |
42
+
43
+ **派生变量**(Phase 1 探查后确定):
44
+ - `skillDir`:本 SKILL 所在目录
45
+ - `exampleDir`:探查到的 example/demo 目录绝对路径(见 Phase 1.2)
46
+ - `demoDir`:`{exampleDir}/{libName}/demo/`
47
+ - `indexFile`:`{exampleDir}/{libName}/index.tsx`
48
+ - `registerFile`:探查到的 Demo 注册入口文件路径(见 Phase 1.2)
49
+
50
+ ---
51
+
52
+ ## 输入依赖
53
+
54
+ - **前置SKILL**: `rnoh-lib-demo-doc`(提供 Demo 描述文档)
55
+ - **输入文件**: Demo 描述文档(Markdown,含五要素表格)
56
+ - **MCP工具**: `script_rn_extract_interfaces`(提取接口规格辅助验证)、`kb_search`(鸿蒙知识查询)
57
+ - **项目结构**: RN 工程(含 example/demo 目录和 Tester 框架)
58
+
59
+ ---
60
+
61
+ ## 工作流程概览
62
+
63
+ ```
64
+ Phase 1: 描述文档解析与项目分析
65
+
66
+ Phase 2: 三方库 JS 层接口与平台兼容性探查
67
+
68
+ Phase 3: Demo 代码生成(页面/入口/RNTester注册)
69
+
70
+ Phase 4: 质量校验与输出报告
71
+ ```
72
+
73
+ ---
74
+
75
+ ## Phase 1:描述文档解析与项目分析
76
+
77
+ ### 1.1 解析 Demo 描述文档
78
+
79
+ 读取 `demoDoc`,提取 Demo 五要素表格:
80
+
81
+ | 要素 | 提取内容 |
82
+ |------|----------|
83
+ | 名称 | Demo 名称,用于文件命名(转 kebab-case) |
84
+ | 描述 | 功能说明,用于 TestCase `itShould` |
85
+ | 步骤 | 编号列表,含 useState/useEffect/接口调用/setXxx() |
86
+ | 预期结果 | 可观测指标,用于验证 |
87
+ | 对应接口 | 函数签名列表,用于代码生成依据 |
88
+
89
+ ### 1.2 探查工程目录结构与注册入口
90
+
91
+ > ⚠️ 不硬编码工程路径,通过探查确定 example/demo 目录和 Demo 注册文件。
92
+
93
+ #### 1.2.1 探查 example/demo 目录
94
+
95
+ 在 `projectRoot` 下按优先级搜索 example/demo 目录(取第一个存在的):
96
+
97
+ | 优先级 | 搜索路径 | 说明 |
98
+ |--------|----------|------|
99
+ | 1 | `{projectRoot}/rn-tester/examples/` | RNTester 框架标准目录 |
100
+ | 2 | `{projectRoot}/example/src/` | 常见 example 工程 |
101
+ | 3 | `{projectRoot}/examples/src/` | 多 example 工程 |
102
+ | 4 | `{projectRoot}/example/` | 简单 example |
103
+ | 5 | `{projectRoot}/demo/src/` | demo 目录 |
104
+ | 6 | `{projectRoot}/demo/` | 简单 demo |
105
+
106
+ 探查到的目录赋值给 `exampleDir`。Demo 页面文件将生成在 `{exampleDir}/{libName}/demo/` 下。
107
+
108
+ #### 1.2.2 探查 Demo 注册入口文件
109
+
110
+ 在 `projectRoot` 下搜索 Demo 注册入口(即已有 Demo 列表被注册的文件),按优先级:
111
+
112
+ | 优先级 | 搜索路径 | 说明 |
113
+ |--------|----------|------|
114
+ | 1 | `{projectRoot}/**/RNTesterList.ts` | RNTester 框架注册文件 |
115
+ | 2 | `{projectRoot}/**/TesterList.*` | Tester 列表变体 |
116
+ | 3 | `{projectRoot}/example/src/App.tsx` 或 `App.ts` | example 工程入口 |
117
+ | 4 | `{projectRoot}/**/navigation*` 或 `routes*` | 导航/路由配置 |
118
+
119
+ 探查到的文件赋值给 `registerFile`。读取其内容,分析现有 Demo 的注册模式(require/import 方式、数组结构),后续按相同模式注册新 Demo。
120
+
121
+ > ⚠️ **注册模式识别**:不同工程使用不同的注册模式,必须读取 `registerFile` 内容后分析其数组结构、import 方式和对象字段,按相同模式追加。常见模式见 Phase 3.4。
122
+
123
+ #### 1.2.3 缺失处理
124
+
125
+ | 探查项 | 缺失处理 |
126
+ |--------|----------|
127
+ | `package.json` | ⚠️ 停止,提示非 RN 工程 |
128
+ | example/demo 目录 | ⚠️ 停止,提示用户指定 Demo 目录 |
129
+ | 注册入口文件 | ⚠️ 停止,提示用户指定注册文件,或手动注册 |
130
+
131
+ ### 1.3 验证依赖存在
132
+
133
+ 检查 `package.json` 中 `dependencies` 是否包含目标库。**依赖不存在时必须停止**,不得继续代码生成。
134
+
135
+ > 描述文档解析与项目分析的详细步骤参见 [Demo 代码规则](references/DEMO_CODE_RULES.md)
136
+
137
+ ---
138
+
139
+ ## Phase 2:三方库 JS 层接口与平台兼容性探查
140
+
141
+ > ⚠️ **关键步骤**:生成 Demo 代码前,必须探查三方库 JS 层实际导出的接口和平台兼容性,确保 Demo 代码只使用 HarmonyOS 平台实际支持的 API。详细探查方法参见 [源码探查指南](references/SOURCE_EXPLORATION.md)
142
+
143
+ ### 2.1 探查清单
144
+
145
+ | # | 探查项 | 探查路径 | 提取信息 |
146
+ |---|--------|----------|----------|
147
+ | 2.1 | JS 层导出接口 | `node_modules/{harmonyPkgName}/index.js` 或 `index.ts` | 导出的函数、类、组件、Hooks、常量、枚举 |
148
+ | 2.2 | 平台兼容性 API | 同上,查找 `Platform.OS === 'harmony'` 分支 | harmony 分支下可用属性/常量/方法、不可用 API |
149
+ | 2.3 | TurboModule Spec | `node_modules/{harmonyPkgName}/src/**/Native*.ts` | 方法签名、Promise vs 同步、事件名 |
150
+ | 2.4 | 类型定义 | `node_modules/{harmonyPkgName}/**/*.d.ts` | 参数类型、可选参数、返回值类型 |
151
+
152
+ ### 2.2 探查结果汇总
153
+
154
+ 探查完成后汇总为接口能力清单:
155
+
156
+ | 信息 | 说明 | 示例 |
157
+ |------|------|------|
158
+ | HarmonyOS 可用导出 | harmony 分支中定义的属性和 API | `FilesDirectoryPath`、`startRecording()` |
159
+ | HarmonyOS 不可用 API | 仅 iOS/Android 分支存在的属性 | `DocumentDirectoryPath`、`MainBundlePath` |
160
+ | 方法调用方式 | Promise vs 同步 | `startRecording()` 返回 Promise |
161
+ | 事件名称 | DeviceEventEmitter 监听的事件名 | `recordingProgress`、`recordingFinished` |
162
+
163
+ ### 2.3 MCP 工具辅助
164
+
165
+ 可调用 `script_rn_extract_interfaces` 提取接口规格 JSON,用于交叉验证描述文档中的接口签名是否与源码一致。
166
+
167
+ 调用 `kb_search` 查询鸿蒙平台特定约束(如权限要求、ArkTS 限制)。
168
+
169
+ ---
170
+
171
+ ## Phase 3:Demo 代码生成
172
+
173
+ > 详细的代码规范、禁止事项、模板参见 [Demo 代码规则](references/DEMO_CODE_RULES.md) 和 [代码模板](assets/DEMO_PAGE_TEMPLATE.md)
174
+
175
+ ### 3.1 创建目录结构
176
+
177
+ 在 Phase 1.2 探查到的 `exampleDir` 下创建:
178
+
179
+ ```
180
+ {exampleDir}/{libName}/
181
+ ├── index.tsx # 主入口(Tester 框架 + 元数据导出)
182
+ └── demo/
183
+ ├── 001_{描述1}Page.tsx
184
+ ├── 002_{描述2}Page.tsx
185
+ └── ...
186
+ ```
187
+
188
+ ### 3.2 生成 Demo 页面代码
189
+
190
+ 每个 Demo 页面基于描述文档五要素生成,必须遵循以下核心规则:
191
+
192
+ | 规则 | 说明 |
193
+ |------|------|
194
+ | 根组件用 `View` | ❌ 禁止 `ScrollView` 作为根(Tester 已有 ScrollView,嵌套导致高度塌陷) |
195
+ | 不用 `SafeAreaView`/`StatusBar` | Tester 框架不需要 |
196
+ | 不用 `Slider` | HarmonyOS 不支持,用按钮组替代 |
197
+ | 不用 `console.error()` | 会触发系统弹窗,用 `console.warn()` 替代 |
198
+ | 平台兼容性 | 只用 `Platform.OS === 'harmony'` 分支的属性(基于 Phase 2.2);无平台分支的库全部可用 |
199
+ | 权限请求 | 涉及麦克风/相机/定位等操作前必须请求权限 |
200
+ | 计时器兜底 | 原生事件不可靠时用 JS `setInterval` 兜底,停止时只清计时器不重置值 |
201
+ | 异步处理 | 用 `async/await` + `try/catch`,不用 `.then()/.catch()` 链 |
202
+ | 无注释 | 代码中不使用 `//` 或 `/* */` |
203
+ | Hook 调用位置 | Hook 必须在组件顶层调用,不可在事件回调中调用;依赖 Context 的 Hook 须放在 Provider 子组件中 |
204
+ | 废弃接口验证 | 使用引用相等性比较(`===`)验证别名关系,比功能对比更可靠 |
205
+ | type 导入 | 使用 `import { type EdgeInsets }` inline type 语法,与运行时导出混写,避免类型进入打包 |
206
+ | Provider 子组件拆分 | 依赖 Context 值的 Hook/组件须拆分到 Provider 子组件中,确保 Context 有值 |
207
+
208
+ ### 3.3 生成主入口文件
209
+
210
+ `index.tsx` 包含:
211
+ 1. Tester 框架集成(`Tester` + `TestSuite` + `TestCase`)
212
+ 2. 元数据导出(`displayName`、`framework`、`category`、`title`、`description`、`examples`)
213
+
214
+ > 入口文件模板参见 [入口模板](assets/INDEX_TEMPLATE.md)
215
+
216
+ ### 3.4 更新 Demo 注册入口
217
+
218
+ 在 Phase 1.2 探查到的 `registerFile` 中注册新模块。**按该文件现有的注册模式追加**,不破坏已有结构。必须先读取 `registerFile` 内容分析其注册模式,按相同模式追加。
219
+
220
+ **模式 A:RNTesterList.ts 数组注册**(常见于 RNTester 框架):
221
+ ```typescript
222
+ {
223
+ key: '{libName}',
224
+ category: '{category}',
225
+ module: require('{相对于registerFile的路径到index}'),
226
+ }
227
+ ```
228
+
229
+ **模式 B:App.tsx 导入注册**(常见于 example 工程):
230
+ ```typescript
231
+ import {libNamePascalCase}Tester from './{相对于App.tsx的路径到index}';
232
+ // 在导航/路由配置中添加该 Demo 页面
233
+ ```
234
+
235
+ **模式 C:自定义 demos 数组注册**(常见于工程自带的自定义 Tester 入口,如 `example/src/index.tsx`):
236
+ ```typescript
237
+ import {libNamePascalCase}Tester from './{相对于registerFile的路径到index}';
238
+ // 追加到 demos 数组
239
+ const demos: IDemoItem[] = [
240
+ // ...已有条目
241
+ { Component: {libNamePascalCase}Tester, name: '{Demo显示名}', key: '{libNamePascalCase}' }
242
+ ];
243
+ ```
244
+
245
+ > ⚠️ `require`/`import` 的路径必须是从 `registerFile` 到 `indexFile` 的**相对路径**,根据实际目录层级计算,不硬编码固定路径。
246
+
247
+ > ⚠️ **模式选择策略**:读取 `registerFile` 后,按以下优先级匹配注册模式:
248
+ > 1. 文件含 `require(...)` + 数组对象含 `module` 字段 → 模式 A
249
+ > 2. 文件含 `import ... from ...` + 导航/路由配置 → 模式 B
250
+ > 3. 文件含 `demos`/`items` 数组 + `Component` 字段 → 模式 C
251
+ > 4. 以上均不匹配 → 停止,提示用户指定注册方式
252
+
253
+ > 注册模式与路径计算的详细说明参见 [入口模板](assets/INDEX_TEMPLATE.md)
254
+
255
+ ---
256
+
257
+ ## Phase 4:质量校验与输出报告
258
+
259
+ ### 4.1 质量校验
260
+
261
+ 生成完成后执行校验:
262
+
263
+ > 完整检查清单参见 [质量检查清单](references/QUALITY_CHECKLIST.md)
264
+
265
+ | 校验维度 | 关键检查项 |
266
+ |----------|-----------|
267
+ | 接口探查完整性 | JS 导出接口、平台兼容性 API、TurboModule Spec、类型定义 全部探查 |
268
+ | 工程结构探查 | example/demo 目录已探查、注册入口文件已探查 |
269
+ | 代码规范 | 无 ScrollView 根组件、无 Slider、无 console.error、无注释 |
270
+ | 平台兼容性 | 未使用 iOS/Android 专属属性(基于 Phase 2.2);无平台分支库全部可用 |
271
+ | 权限处理 | 敏感权限操作前有权限请求 |
272
+ | Tester 集成 | 注册入口已更新、index.tsx 含元数据导出 |
273
+ | 注册模式适配 | 注册模式(A/B/C)与 registerFile 现有模式一致,未破坏已有结构 |
274
+ | Hook 约束 | Hook 在组件顶层调用,依赖 Context 的 Hook 在 Provider 子组件中 |
275
+ | 废弃接口验证 | 使用引用相等性比较(`===`)验证别名关系 |
276
+
277
+ ### 4.2 输出产物
278
+
279
+ | 产物 | 路径 | 说明 |
280
+ |------|------|------|
281
+ | Demo 页面文件 | `{exampleDir}/{libName}/demo/00X_*.tsx` | 每个 Demo 一个文件 |
282
+ | 主入口文件 | `{exampleDir}/{libName}/index.tsx` | Tester 框架 + 元数据 |
283
+ | 注册入口文件 | `{registerFile}` | 已追加新 Demo 注册 |
284
+
285
+ ### 4.3 输出报告
286
+
287
+ 生成完成后输出确认信息,包含:
288
+ - 生成的文件列表
289
+ - 探查到的工程结构(exampleDir、registerFile)
290
+ - 接口探查结果汇总(JS 导出接口、harmony 可用/不可用 API)
291
+ - Demo 数量与覆盖接口数
292
+ - 注册模式(模式 A/B/C)及注册路径
293
+ - 废弃接口验证结果(如涉及)
294
+ - 需用户后续确认的事项(如需手动验证的项)
295
+
296
+ ---
297
+
298
+ ## 参考资料
299
+
300
+ - [源码探查指南](references/SOURCE_EXPLORATION.md) — JS 层导出接口、平台兼容性 API 探查方法与示例
301
+ - [Demo 代码规则](references/DEMO_CODE_RULES.md) — 目录规范、页面代码规范、禁止事项、常见陷阱
302
+ - [质量检查清单](references/QUALITY_CHECKLIST.md) — 完整校验项
303
+ - [Demo 页面模板](assets/DEMO_PAGE_TEMPLATE.md) — 可复制的页面代码模板
304
+ - [入口文件模板](assets/INDEX_TEMPLATE.md) — 可复制的 index.tsx 模板
305
+ - React Native 官方文档:https://reactnative.dev
306
+ - RNOH 官方文档:https://gitcode.com/OpenHarmony-RN/usage-docs/tree/master/zh-cn