@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,455 @@
1
+ ---
2
+ name: arkts-library-xts-code
3
+ description: 基于 XTS 用例描述文档(由 arkts-library-xts-doc SKILL 生成)自动生成可在 Harmony ohosTest 系统上编译运行的 XTS 测试用例代码。使用 hypium 测试框架,遵循 ArkTS 编码规范。当需要将 XTS 用例描述转化为可执行自动化测试代码时使用。关键词:ArkTS、XTS、hypium、ohosTest、OpenHarmony。
4
+ license: Apache-2.0
5
+ compatibility: 需要 devecocli CLI(编译/静态检查/文档检索)、ohpm(依赖管理)、hvigor 构建环境;MCP Gateway 运行中(script_deveco_docs 工具)。编译验证平台适配:Windows 用 build.ps1(PowerShell),macOS/Linux 直接 Bash 调用 devecocli build(见 Phase 7.3)
6
+ metadata:
7
+ author: lalhan
8
+ version: "2.2.0"
9
+ category: ohos-testing
10
+ language: ArkTS/ETS
11
+ ---
12
+
13
+ # ArkTS XTS 测试代码生成
14
+
15
+ 读取 XTS 用例描述文档(由 arkts-library-xts-doc 生成),为每个用例生成独立的 XTS 测试函数代码,使用 OpenHarmony hypium 测试框架。用例文档的"对应的函数接口"列已自包含完整接口签名,无需额外读取接口规格文档。
16
+
17
+ > ⚠️ **核心约束**:
18
+ > 1. 所有测试代码必须基于 XTS 用例描述文档中真实存在的用例和接口生成,严禁凭空捏造
19
+ > 2. 生成的代码必须能够在鸿蒙 ohosTest 系统上编译通过并运行
20
+
21
+ ---
22
+
23
+ ## 任务参数
24
+
25
+ | 参数 | 类型 | 必填 | 说明 |
26
+ |------|------|------|------|
27
+ | `sourcePath` | string | ✅ | 目标鸿蒙工程根目录(含 `entry/` 和测试模块) |
28
+ | `outputDir` | string | ✅ | 输出目录(XTS 用例文档和覆盖率报告所在目录) |
29
+ | `skillDir` | string | ✅ | 本 SKILL 脚本目录绝对路径(`build.ps1`/`code-linter.cjs`/`migrate.cjs`/`ohpm-switch.cjs` 所在目录) |
30
+ | `interfaceSpecPath` | string | ❌ | 接口规格文档路径,用于查询依赖类型完整定义;未提供则从 `outputDir` 搜索 `arktscoverage-interface-spec.md` |
31
+ | `xtsDocPath` | string | ❌ | XTS 用例文档路径;未提供则从 `outputDir` 搜索 `*未覆盖接口XTS用例描述*.md` |
32
+
33
+ ---
34
+
35
+ ## 输入依赖
36
+
37
+ - **前置 SKILL**:arkts-library-xts-doc(生成 XTS 用例描述文档)
38
+ - **输入文件**:XTS 用例描述文档(`*未覆盖接口XTS用例描述*.md`)、接口规格文档(`arktscoverage-interface-spec.md`,可选)
39
+
40
+ ---
41
+
42
+ ## 工作流程概览
43
+
44
+ ```
45
+ Phase 1: 准备工作(解析用例文档 → 分类 → 探查工程 → 文件规划,条件性访问修饰符预检)
46
+
47
+ Phase 2: 分批策略判断(用例数 >20 或 代码 >500 行 → subagent 分批模式)
48
+
49
+ Phase 3: 生成测试文件框架
50
+
51
+ ┌───────────────────────────────────────────────────────────────┐
52
+ │ Phase 2 判定结果: │
53
+ │ │
54
+ │ 触发分批(>20 用例): 未触发(≤20 用例): │
55
+ │ Phase 4: Subagent 分批 Phase 5: Orchestrator 直接生成 │
56
+ │ (并行 dispatch subagent (逐用例生成测试函数) │
57
+ │ → 各自查 API + 写代码) │
58
+ └───────────────────────────────────────────────────────────────┘
59
+
60
+ Phase 6: 代码质量保障
61
+
62
+ Phase 7: 编译与运行验证(迁移 → Linter → 编译修复,强制不可跳过)
63
+
64
+ Phase 8: 输出与总结(报告含分批方式 / Linter / 编译结论)
65
+ ```
66
+
67
+ ---
68
+
69
+ ## Phase 1:准备工作
70
+
71
+ ### 1.1 解析 XTS 用例描述文档
72
+
73
+ ```
74
+ 执行步骤:
75
+ 1. read_file 读取 XTS 用例描述文档全文
76
+ 2. 提取库名称(用于测试文件命名和导入语句)
77
+ 3. 解析"用例索引表",提取每个用例的:用例序号(三位数字)、用例名称、涉及接口列表、模块归属
78
+ 4. 解析"XTS 用例详细描述"部分,提取每个用例的:用例名称、用例描述(用于注释)、
79
+ 用例预期结果(用于编写 expect 断言)、对应的函数接口(用于编写测试代码)
80
+ 5. 统计用例总数,规划生成测试函数列表
81
+ ```
82
+
83
+ ### 1.2 用例分类规划
84
+
85
+ 根据解析结果,对用例进行分类,确定每类用例的生成策略:
86
+
87
+ | 用例类型 | 识别特征 | 生成策略 | 模板参考 |
88
+ |---------|---------|---------|---------|
89
+ | 正向功能测试 | 验证接口正常行为,预期返回具体值 | 单接口/多接口正向模板 | [XTS_TEMPLATE.md 二/三](references/XTS_TEMPLATE.md) |
90
+ | 多接口协同测试 | 用例涉及多个接口协作完成功能 | 按调用顺序依次调用验证 | [XTS_TEMPLATE.md 三](references/XTS_TEMPLATE.md) |
91
+ | 空值/null/undefined 测试 | 验证空值输入不崩溃 | 空值断言策略 + 空值模板 | [XTS_TEMPLATE.md 四](references/XTS_TEMPLATE.md) |
92
+ | 异常/边界值测试 | 验证非法参数、NaN/Infinity/负值 | 异常断言策略 + 边界值模板 | [XTS_TEMPLATE.md 五](references/XTS_TEMPLATE.md) |
93
+ | 大数据量测试 | 验证大数组/深度嵌套处理 | 大数据断言策略 + 大数据模板 | [XTS_TEMPLATE.md 七](references/XTS_TEMPLATE.md) |
94
+ | 异步测试 | 接口返回 Promise | async/await 模板 | [XTS_TEMPLATE.md 八](references/XTS_TEMPLATE.md) |
95
+ | 外部硬件/服务依赖 | 接口依赖真实 BLE/NFC/传感器/定位等硬件或外部服务 | try-catch 不崩溃 + 可选状态预检 + 链式返回判空 | [XTS_TEMPLATE.md 十五](references/XTS_TEMPLATE.md) |
96
+
97
+ > 各类型的断言设计策略详见 [CODE_STANDARDS.md 七](references/CODE_STANDARDS.md)。外部硬件/服务依赖接口的断言策略详见 [XTS_TEMPLATE.md 十五](references/XTS_TEMPLATE.md)。
98
+
99
+ ### 1.3 探查鸿蒙工程结构
100
+
101
+ 1. `list_dir` 列出工程根目录,识别 `entry/`、`library/` 等模块
102
+ 2. 检查 `entry/src/ohosTest/` 目录是否存在(若不存在需创建)
103
+ 3. 读取库导出接口:`library/Index.ets`(HAR)或 `library/src/main/ets/Index.ets`(HSP)
104
+ 4. 读取现有测试文件(若存在),了解测试代码风格和导入惯例
105
+ 5. **确认 deveco-cli 可用**:运行 `devecocli --version`
106
+
107
+ ### 1.4 生成文件规划
108
+
109
+ 建立内部文件规划记录:测试文件路径 `entry/src/ohosTest/ets/test/{LibraryName}XtsTest.test.ets`、测试函数命名列表、导入语句清单。
110
+
111
+ > **多文件策略**:当用例数超过 30 时,按模块拆分为多个测试文件,每个文件不超过 30 个测试函数。
112
+
113
+ ### 1.5 访问修饰符预检(条件性,编译前错误预防)
114
+
115
+ > ⚠️ **条件性执行**:上游 `arkts-library-interface-spec`(提取时已剔除 private/protected)与 `arkts-library-xts-doc`(已将 private/protected 归为不可测试)**已保证标准链路生成的 XTS 用例描述文档不含 private/protected**,此时**本子步骤可跳过**。
116
+ >
117
+ > 需要执行的情形:输入为**旧格式接口规格文档** / XTS 文档由**旧版 xts-doc** 生成 / **接口规格文档缺失**(用例描述中可能残留 private/protected 成员,预检可拦截 ~35% 编译错误)。
118
+
119
+ **执行步骤**:
120
+ 1. 运行 `node {{skillDir}}/scripts/precheck-access-modifiers.cjs --source {{sourcePath}}` 扫描库源码
121
+ 2. 读取生成的 `precheck-access-modifiers.json`,建立禁止直接调用清单
122
+ 3. 生成代码时跳过清单成员,不生成用例
123
+ 4. 若使用并行 Agent,将排除清单注入每个 Agent 的 prompt
124
+
125
+ > 脚本用法、排除清单格式、Agent 注入模板详见 [ACCESS_MODIFIER_PRECHECK.md](references/ACCESS_MODIFIER_PRECHECK.md)。
126
+
127
+ ---
128
+
129
+ ## Phase 2:分批策略判断
130
+
131
+ > 本步骤决定代码生成方式:subagent 分批(Phase 4)还是 orchestrator 直接生成(Phase 5)。
132
+
133
+ | 条件 | 模式 | 执行阶段 |
134
+ |------|------|---------|
135
+ | 用例数 > 20 **或** 预估代码 > 500 行 | Subagent 分批模式 | Phase 3 → **Phase 4** → Phase 6 |
136
+ | 用例数 ≤ 20 **且** 预估代码 ≤ 500 行 | 直接生成模式 | Phase 3 → **Phase 5** → Phase 6 |
137
+
138
+ > 预估代码行数 = 用例数 × 15~25 行/用例(含注释和日志)。
139
+
140
+ **Subagent 分批模式下的额外准备**:
141
+
142
+ 1. **预扫描 helper class**:读全部用例的"涉及接口",提取所有 abstract callback 类、abstract exception 类等需要子类化的类型,在框架文件中预定义子类(subagent 直接引用,不重复定义)
143
+ 2. **按模块分批**:同模块用例尽量在同一批(减少 subagent 需读源文件数),每批 5-8 用例
144
+ 3. **指定临时输出路径**:每批输出到 `{outputDir}/.xts-batches/batch_{n}.ets`。**禁止写到工作目录之外**(如系统 temp 目录),否则人工审核无法追溯写权限
145
+
146
+ > subagent 可访问 MCP Gateway 工具(`script_deveco_docs` 等),可自行完成系统 API 预检。
147
+
148
+ ---
149
+
150
+ ## Phase 3:生成 XTS 测试文件框架
151
+
152
+ ### 3.1 确定测试文件命名
153
+
154
+ 测试文件统一放在 `entry/src/ohosTest/ets/test/` 目录,文件名格式为 `{LibraryName}XtsTest.test.ets`(如 lodash → `LodashXtsTest.test.ets`)。
155
+
156
+ > ⚠️ **扩展名必须为 `.test.ets`**,不能用 `.ts` 或 `.ets`。OpenHarmony XTS 测试框架要求测试文件使用 `.test.ets` 扩展名。
157
+
158
+ > 完整命名规则与示例映射参见 [CODE_STANDARDS.md 一](references/CODE_STANDARDS.md)。
159
+
160
+ ### 3.2 生成测试文件基础框架
161
+
162
+ 生成包含导入语句、日志常量、`describe` 块、`beforeAll`/`afterAll` 的测试文件基础结构。
163
+
164
+ > 完整的测试文件框架及函数模板请参考 [XTS_TEMPLATE.md 一](references/XTS_TEMPLATE.md)。
165
+
166
+ 关键要点:
167
+ - `it()` 必须使用三参数格式 `it(name, 0, () => {})` — 省略 filter 部分设备崩溃
168
+ - 断言 API 必须使用 hypium 专用方法(`assertEqual`/`assertNull`/`assertTrue` 等),**禁止** Jest 风格
169
+ - hilog 导入:`import { hilog } from '@kit.PerformanceAnalysisKit'`
170
+ - 文件路径通过 `abilityDelegatorRegistry` 获取沙箱目录,禁止硬编码
171
+
172
+ > **Subagent 分批模式下**:框架文件需额外包含预定义的 helper class(callback 子类、exception 子类等,由 Phase 2 预扫描确定),并在 `describe` 块内预留 `// === INSERTION_POINT ===` 标记,供 Phase 4 合并 subagent 输出。
173
+
174
+ ---
175
+
176
+ ## Phase 4:Subagent 分批代码生成
177
+
178
+ > 🔴 **本阶段仅在 Phase 2 判定为"Subagent 分批模式"时执行。** 若判定为"直接生成模式",跳过本阶段,进入 Phase 5。
179
+
180
+ #### 4.1 填充模板并 dispatch subagent
181
+
182
+ 对 Phase 2 规划的每批用例:
183
+
184
+ 1. 读取 [SUBAGENT_PROMPT_TEMPLATE.md](references/SUBAGENT_PROMPT_TEMPLATE.md) 模板
185
+ 2. 填充 `{PLACEHOLDER}`:
186
+
187
+ | 占位符 | 填充来源 |
188
+ |--------|---------|
189
+ | `{LIBRARY_NAME}` | Phase 1.1 提取的库名 |
190
+ | `{BATCH_SIZE}` | 本批用例数 |
191
+ | `{SOURCE_FILE_PATHS}` | 本批涉及的所有库源文件路径 |
192
+ | `{FRAMEWORK_FILE_PATH}` | Phase 3 生成的框架文件路径 |
193
+ | `{OUTPUT_FILE_PATH}` | 本批临时输出路径(`{outputDir}/.xts-batches/batch_{n}.ets`,必须在工作目录内) |
194
+ | `{ACCESS_MODIFIER_EXCLUSION_LIST}` | Phase 1.5 预检结果(如已执行预检) |
195
+ | `{ADDITIONAL_PRIVATE_MEMBERS}` | Orchestrator 从源码额外发现的 private 成员 |
196
+ | `{TEST_CASE_DESCRIPTIONS}` | 本批用例的序号/名称/涉及接口/预期结果(从 XTS 报告提取) |
197
+ | `{DOMAIN}` | `0xD001` |
198
+ | `{TAG}` | `{LibraryName}_XtsTest` |
199
+
200
+ 3. 使用 `Task` 工具 dispatch `general` 类型 subagent
201
+ 4. **全部批次并行 dispatch**(各写独立临时文件,无并发冲突)
202
+
203
+ > subagent 内部执行流程:`script_deveco_docs` 查系统 API(强制)→ `read` 库源码确认签名 → 写 `it()` 函数体 → 自检(10 项规则清单)
204
+
205
+ #### 4.2 收集并合并输出
206
+
207
+ 1. 等待所有 subagent 返回
208
+ 2. 按批次顺序将各 subagent 输出的 `it()` 函数体合并到框架文件的 `INSERTION_POINT` 位置
209
+ 3. 合并后保存为最终测试文件 `{LibraryName}XtsTest.test.ets`
210
+ 4. 🔴 **合并后置校验(强制,校验不过禁止进入 Phase 6/7)**:
211
+ - 逐文件统计 `it(` 出现次数,与批次规划的用例总数逐批对照(防止空批次先消费 INSERTION_POINT 标记、后续合并静默不生效导致用例丢失)
212
+ - 用例名唯一性检查(防止插入脚本重跑导致用例重复)
213
+ - 文件结尾完整性检查:必须以 `});` + `}` 收尾(describe 块完整闭合,防止合并/手工去重误删结尾括号)
214
+ - 任一项不过 → 修复后重新校验,全部通过才继续(实测该校验可省去 3 轮编译-修复循环)
215
+
216
+ #### 4.3 失败回退
217
+
218
+ 若某个 subagent 返回失败、标注"API 未预检"、**或返回成功但未写入文件**:
219
+ - Orchestrator 接管该批,按 Phase 5 直接生成模式补写
220
+ - 不影响其他批的输出
221
+ - 在最终报告中标注哪些批次走了回退
222
+
223
+ > subagent 自检结果(✓/✗)应记录到最终报告中,用于评估分批效果。
224
+
225
+ ---
226
+
227
+ ## Phase 5:逐用例生成测试函数
228
+
229
+ > **本阶段为"直接生成模式"(Phase 2 判定为 ≤20 用例时执行)。** 若 Phase 2 判定为"Subagent 分批模式",本阶段跳过(已由 Phase 4 完成)。
230
+
231
+ ### 5.1 推导测试函数命名
232
+
233
+ **命名规则**:测试函数名格式为 `{英文功能描述_snake_case}_{序号}`。英文描述使用小写字母+下划线(≤20 字符,体现核心功能,多接口用例可合并描述),序号使用三位数字(与用例描述文档对应)。
234
+
235
+ 示例:001 数组分块基础功能验证 → `chunk_basic_001`;007 对象属性路径访问与设置验证 → `get_set_path_007`
236
+
237
+ ### 5.2 分析预期结果并设计断言
238
+
239
+ 根据用例描述文档中的"用例预期结果",设计对应的 expect 断言。常见映射:
240
+
241
+ | 预期结果类型 | 断言方式 |
242
+ |------------|---------|
243
+ | 返回值应等于 X | `expect(result).assertEqual(X)` |
244
+ | 返回值应包含 X | `expect(result).assertContain(X)` |
245
+ | 返回值应大于 X | `expect(result).assertLarger(X)` |
246
+ | 返回值应为 null | `expect(result).assertNull()` |
247
+ | 布尔值为真/假 | `expect(bool).assertTrue()` / `assertFalse()` |
248
+ | 应抛出异常 | try-catch + 布尔标记(见 [CODE_STANDARDS.md 5.2](references/CODE_STANDARDS.md)) |
249
+ | 不应抛出异常 | 直接调用,正常执行即通过 |
250
+
251
+ > ⚠️ **hypium 断言 API 重要约束**:`expect()` 对象上**不存在** Jest 风格方法(`toBe`/`toEqual`/`toBeNull`/`toBeTruthy`/`toThrow` 等),断言**必须链式调用**(裸调用 `assertTrue(x)` 是编译错误)。完整替代方案见 [CODE_STANDARDS.md 6.2/6.3](references/CODE_STANDARDS.md)。
252
+
253
+ > ⚠️ **期望值计算规则(强制)**:程序化生成的测试数据(如 `arr[i] = i % 256`),断言期望值必须用表达式计算或手动计算后注释计算过程,**禁止**从报告描述语义联想硬编码。详见 [CODE_STANDARDS.md 7.8](references/CODE_STANDARDS.md)。
254
+
255
+ > 空值/异常/大数据场景的详细断言策略参见 [CODE_STANDARDS.md 七](references/CODE_STANDARDS.md)。
256
+
257
+ ### 5.3 逐接口对照规格文档 + 系统 API 预检(强制预检)
258
+
259
+ > ⚠️ **此步骤必须在生成任何测试代码之前执行**,逐接口对照接口规格文档,杜绝凭记忆猜测类型。
260
+
261
+ 对当前测试用例涉及的**每一个接口**,执行以下检查并记录结论:
262
+
263
+ | 检查项 | 查询来源 | 记录内容 |
264
+ |-------|---------|---------|
265
+ | **类型种类** | 接口规格文档第 4 章 | `(interface)` — 不可 `new`,用对象字面量;`(class)` — 可 `new`;`@ObservedV2` — 不可用于 `@State` |
266
+ | **访问修饰符** | Phase 1.5 预检结果(已执行时) | `private`/`protected` 成员禁止直接调用,跳过不生成用例 |
267
+ | **返回值守卫** | 接口规格文档签名 | 返回类型含 `\| undefined` 或 `?:` 时,调用后必须 `if (result)` 判空 |
268
+ | **参数类型匹配** | 接口规格文档签名 | `common.UIAbilityContext` 参数需 `as common.UIAbilityContext`,不可直接传 `common.Context` |
269
+ | **回调参数签名** | 接口规格文档回调定义 | 字段名和参数类型逐字匹配 |
270
+ | **属性名准确性** | 接口规格文档第 3 章 | 只能使用列表内的属性名 |
271
+ | **系统 API** | `script_deveco_docs` 工具 | `@kit.*`/`@ohos.*`/`@hms.*` 的签名/参数/返回值/import 路径/枚举成员名/权限/系统能力,禁止凭记忆 |
272
+ | **import 类型存在性** | `library/Index.ets` | `import { X }` 的每个 X 必须在导出链中;不存在的用对象字面量,禁止 import |
273
+ | **未导出类型间接测试** | `library/Index.ets` + 库源码 | 未导出类型不可直接 import,采用间接策略:① 测试已导出的关联方法;② 用 implements 的子类替代;③ 回调用对象字面量匹配 |
274
+
275
+ > 🚨 **系统 API 强制预检**(不可跳过):对每个系统 API 依赖,必须调用 MCP 工具 `script_deveco_docs` 检索确认:
276
+ > ```
277
+ > action=search, keywords=<系统API名/枚举名/模块名>
278
+ > action=read, documentId=<search结果>, section=<目标接口/枚举/属性名>
279
+ > ```
280
+ > 检索要点:search 取首条命中;read 带 `section` 精确定位(聚合文档不带 section 会返回数十 KB);import 路径以 read 结果的 `#### 导入模块` 为准;`hypium` 与库自身 API 不在系统语料中,返回"未找到"时直接按接口规格文档/源码编写。详见 [SYSTEM_API_LOOKUP.md](references/SYSTEM_API_LOOKUP.md)。
281
+ >
282
+ > 🚨 **import 类型链追踪**(不可跳过):`read_file library/Index.ets` → 确认每个 import 类型在导出列表中 → 不在则禁止 import,用对象字面量 → 衍生类型 `read_file` 库源码找定义 → 库源码也找不到标记"不可用"。
283
+ >
284
+ > **未完成以上两步禁止进入 5.4 生成代码。**
285
+
286
+ ### 5.4 生成测试函数代码
287
+
288
+ 每个测试函数结构规范:JSDoc 注释(用例序号/名称/描述/接口/预期结果)+ `it()` 三参数格式 + hilog 日志 + 断言。
289
+
290
+ > 完整的各类型测试函数模板(正向、反向、空值、异常、边界值、大数据、异步、类型判断等)参见 [XTS_TEMPLATE.md](references/XTS_TEMPLATE.md)。
291
+
292
+ > **try-catch 策略**:ArkTS 禁止 `throw e`(arkts-limited-throw)。正常用例不包裹 try-catch;预期异常用例使用 try-catch + 布尔标记。详见 [CODE_STANDARDS.md 五](references/CODE_STANDARDS.md)。
293
+
294
+ ### 5.5 多接口协同用例处理
295
+
296
+ 当用例涉及多个接口时,按调用顺序依次调用并验证,每步独立 hilog 日志,确保失败可定位到具体步骤。模板参见 [XTS_TEMPLATE.md 三](references/XTS_TEMPLATE.md)。
297
+
298
+ ### 5.6 测试隔离与状态管理
299
+
300
+ > ⚠️ 此步骤必须在生成每条断言之前执行。
301
+
302
+ 对当前用例涉及的每一个被断言的状态值,执行以下检查:
303
+
304
+ | 检查项 | 检查方法 | 处理方式 |
305
+ |-------|---------|---------|
306
+ | 单例模式识别 | 搜索库源码是否含 `getInstance()` 静态方法 | 若是,该类实例的状态跨用例持久化 |
307
+ | 状态可变性 | 确认被断言的状态是否被其他接口修改 | 若是,前面排队的用例可能已修改该状态 |
308
+ | 状态重置 | 在断言前是否调用了 reset/stop/clear 方法 | 若否,必须在断言前添加重置调用或使用 `beforeEach` |
309
+
310
+ **强制规则**:
311
+ - 断言单例"初始状态"时,必须在断言前显式重置该状态
312
+ - 优先使用 `beforeEach`(而非 `beforeAll`)重置单例状态
313
+ - 若无法重置(库未提供 reset 方法),改为断言"调用某方法后的状态"而非"初始状态"
314
+
315
+ > 单例状态隔离测试模板参见 [XTS_TEMPLATE.md 十六](references/XTS_TEMPLATE.md)。
316
+
317
+ ---
318
+
319
+ ## Phase 6:代码质量保障
320
+
321
+ > 以下为精简要点,完整的日志规范、注释规范、错误处理规范详见 [CODE_STANDARDS.md 三/四/五](references/CODE_STANDARDS.md)。
322
+
323
+ ### 6.1 编码规范要点
324
+
325
+ - 每个测试函数开始/结束记录 INFO 日志,执行结果记录 DEBUG(`%{public}s`),失败记录 ERROR
326
+ - DOMAIN 统一 `0xD001`,TAG 格式 `{LibraryName}_XtsTest`
327
+ - 文件头部 + 每个测试函数前必须有 JSDoc 注释;测试步骤使用区块分隔注释
328
+ - 正常用例不包裹 try-catch;预期异常用例使用 try-catch + 布尔标记;禁止 `throw e`
329
+ - **`| undefined` 返回值守卫**:返回类型含 `| undefined` 或 `?:` 时,访问属性前必须显式判空
330
+ - **`@ObservedV2` + `@State` 冲突**:`@ObservedV2` 类不能用于 V1 装饰器,须改用 V2(`@Local`/`@Param`)
331
+ - **组件名/类名准确性**:必须与 `Index.ets` 导出名逐字符一致,禁止自行追加后缀
332
+ - **新增未知错误**:编译失败出现未覆盖的新错误时,对照接口规格文档+源码分析修复 → 记录模式 → 下次合并到规则列表
333
+
334
+ ### 6.2 运行时反推验证
335
+
336
+ > ⚠️ 每个测试函数生成后、进入编译前,对每条断言执行以下两个反问:
337
+
338
+ | 反问 | 针对的故障类型 | 不通过时的处理 |
339
+ |------|-------------|-------------|
340
+ | "这个期望值在运行时到底等于多少?" | 期望值计算错误 | 实际计算后修正期望值,或改用表达式 |
341
+ | "这个初始状态在前面用例跑完后还成立吗?" | 单例状态污染 | 添加状态重置调用或改用 `beforeEach` |
342
+
343
+ **执行方式**:逐条遍历所有 `expect()` 调用,对每条回答两个反问。无法确认的回答"不确定",在报告中标注"期望值未实测,存在运行时失败风险"。
344
+
345
+ > ArkTS 类型安全规范、文件路径规范等完整编码标准与生成后自检清单参见 [CODE_STANDARDS.md](references/CODE_STANDARDS.md) 二/六/七。
346
+
347
+ ---
348
+
349
+ ## Phase 7:编译与运行验证
350
+
351
+ > 🔴 **本阶段为强制阶段,不可跳过**。包含三个强制步骤:工程迁移 → 静态检查 → 编译验证。若宿主机无编译环境(devecocli/ohpm/hvigor 不可用),必须在最终报告中标注并给出明确原因;只要环境可用,就必须执行并产出真实编译结论。详细操作、命令、修复策略和常见问题速查参见 [BUILD_VERIFICATION.md](references/BUILD_VERIFICATION.md)。
352
+
353
+ ### 7.1 工程迁移(migrate.cjs,必做不可跳过)
354
+
355
+ > 🔴 **禁止跳过**:无论工程类型和 SDK 版本是否匹配,都必须执行迁移脚本。源工程的 hvigor 文件、`oh-package.json5`、product 的 `runtimeOS`/`compatibleSdkVersion` 等配置仍可能不兼容当前构建环境。
356
+
357
+ **预迁移设备探测**(可选):`cmd /c "hdc list targets"`,若有设备再探测 `cmd /c "hdc shell param get const.ohos.apiversion"` 取 deviceApi。
358
+
359
+ ```powershell
360
+ # 有设备时
361
+ node {{skillDir}}/scripts/migrate.cjs --source {{sourcePath}} --compatible-api {deviceApi}
362
+
363
+ # 无设备时
364
+ node {{skillDir}}/scripts/migrate.cjs --source {{sourcePath}}
365
+ ```
366
+
367
+ **执行后强制校验**:输出以 `[migrate] 迁移完成。` 结尾 + `[migrate] SDK版本: ...` 行 + `runtimeOS=HarmonyOS`。`compatibleSdkVersion` 的 API 版本须 ≤ 设备 API(有设备时)或 = SDK API(无设备时)。未通过则重新执行。
368
+
369
+ > 迁移校验细节参见 [BUILD_VERIFICATION.md 1](references/BUILD_VERIFICATION.md)。
370
+
371
+ ### 7.2 Code Linter 静态检查(编译前必做)
372
+
373
+ ```powershell
374
+ node {{skillDir}}/scripts/code-linter.cjs --source {{sourcePath}} --target entry/src/ohosTest/ets/test
375
+ ```
376
+
377
+ | 退出码 | 含义 | 处理 |
378
+ |--------|------|------|
379
+ | 0 | 0 Error | 通过,进入编译验证 |
380
+ | 2 | 存在 Error | 逐条修复后重跑 |
381
+ | 1 | 环境不可用 | 标注跳过,进入编译验证 |
382
+
383
+ > 脚本行为、Warning 处理原则详见 [BUILD_VERIFICATION.md 2](references/BUILD_VERIFICATION.md)。
384
+
385
+ ### 7.3 编译验证(最多 5 轮修复)
386
+
387
+ > 🔴 **Windows 必须通过 build.ps1 执行**(直接调用 devecocli build 会阻塞 session)。
388
+ >
389
+ > **macOS/Linux 平台适配**:直接经 Bash 调用 `devecocli build`(hvigor daemon 后台运行不占用 shell 句柄,无 session 阻塞问题),以 Bash 工具的 timeout 参数做等效保护,编译结论与 Windows 同等有效:
390
+ > ```bash
391
+ > cd {{sourcePath}} && devecocli build clean
392
+ > cd {{sourcePath}} && devecocli build --modules entry@ohosTest
393
+ > ```
394
+
395
+ ```powershell
396
+ powershell -ExecutionPolicy Bypass -File "{{skillDir}}/scripts/build.ps1" -Cmd "cd /d {{sourcePath}} && devecocli build clean"
397
+ powershell -ExecutionPolicy Bypass -File "{{skillDir}}/scripts/build.ps1" -JavaHome -Cmd "cd /d {{sourcePath}} && devecocli build --modules entry@ohosTest"
398
+ ```
399
+
400
+ **提效策略**:按错误优先级批量修复(P0-P3 sed 批量 1 轮 + P4-P6 逐个 1 轮 = 2 轮而非 5 轮);首轮大量报错时先按根因聚类,同一根因的 N 个错误合并为一条修复动作。修复后**不要** `build clean`,hvigor 增量编译可节省 ~70% 时间。
401
+
402
+ **错误来源分级**:生成代码错误(按表修复 / 对照规格文档+源码 / 记录新模式)、源库错误(SDK/依赖 ✅ 修复 / ArkTS 类型 ⚠️ 仅机械性修正 / 业务逻辑 ❌ 不修复)。连续 2 轮源库不可修复 → 终止。
403
+
404
+ > 错误优先级完整表(P0-P6)、根因聚类、增量编译、ohpm 线上版本替换、降级流程详见 [BUILD_VERIFICATION.md 3-5](references/BUILD_VERIFICATION.md);常见编译错误速查见 [CODE_STANDARDS.md 八](references/CODE_STANDARDS.md)。
405
+
406
+ ---
407
+
408
+ ## Phase 8:输出与总结
409
+
410
+ ### 8.1 输出文件
411
+
412
+ `entry/src/ohosTest/ets/test/{LibraryName}XtsTest.test.ets`
413
+
414
+ ### 8.2 测试套件注册
415
+
416
+ 在 `entry/src/ohosTest/ets/test/List.test.ets` 中注册(已存在则追加,不覆盖)。import 路径不带 `.ets` 扩展名但保留 `.test` 部分。模板参见 [XTS_TEMPLATE.md 十三](references/XTS_TEMPLATE.md)。
417
+
418
+ ### 8.3 测试覆盖率统计
419
+
420
+ 在测试文件末尾添加覆盖率统计注释,格式参见 [XTS_TEMPLATE.md 十四](references/XTS_TEMPLATE.md)。
421
+
422
+ ### 8.4 生成XTS代码生成报告
423
+
424
+ `write_file` `{{outputDir}}/arktscoverage-xts-code-report.md`,报告内容包含:生成测试文件、测试套件注册、用例统计、分批模式说明、Code Linter 检查结果、编译验证结果(含 ohpm 替换情况如适用)、接口覆盖表、验证步骤。
425
+
426
+ > 完整报告模板参见 [report-template.md](assets/report-template.md)。
427
+
428
+ ---
429
+
430
+ ## 参考文档
431
+
432
+ | 文档 | 内容说明 |
433
+ |------|---------|
434
+ | [CODE_STANDARDS.md](references/CODE_STANDARDS.md) | 编码规范完整参考:文件命名、ArkTS 禁止项、日志/注释/错误处理规范、hypium 框架使用(含断言 API 速查)、代码质量检查清单、常见编译错误及修复 |
435
+ | [XTS_TEMPLATE.md](references/XTS_TEMPLATE.md) | 各类型测试函数模板:测试文件框架、单接口/多接口正向、空值、异常/边界值、反向、大数据量、异步(含超时)、类型判断、Mock、降级测试、interface 实例化、测试套件注册、覆盖率统计注释 |
436
+ | [SUBAGENT_PROMPT_TEMPLATE.md](references/SUBAGENT_PROMPT_TEMPLATE.md) | Subagent prompt 通用模板:系统 API 预检步骤、ArkTS 规则清单(含断言语法正反例)、access modifier 排除清单、输出要求、自检清单。Phase 4 分批模式下由 orchestrator 填充后发给 subagent |
437
+ | [SYSTEM_API_LOOKUP.md](references/SYSTEM_API_LOOKUP.md) | 系统 API 检索工具指南:`script_deveco_docs` 用法、常用系统 API 速查、降噪策略、检索边界 |
438
+ | [ACCESS_MODIFIER_PRECHECK.md](references/ACCESS_MODIFIER_PRECHECK.md) | 访问修饰符预检详细指南:脚本用法、排除清单格式、跳过规则、并行 Agent 注入模板 |
439
+ | [BUILD_VERIFICATION.md](references/BUILD_VERIFICATION.md) | 编译与运行验证详细指南:工程迁移、静态检查、5 轮修复策略、ohpm 线上版本替换、降级流程 |
440
+
441
+ ### 资源文件
442
+
443
+ | 文件 | 内容说明 |
444
+ |------|---------|
445
+ | [report-template.md](assets/report-template.md) | XTS 代码生成报告输出模板 |
446
+
447
+ ### 脚本清单
448
+
449
+ | 脚本 | 用途 | 调用时机 |
450
+ |------|------|---------|
451
+ | `scripts/precheck-access-modifiers.cjs` | 扫描库源码 private/protected 成员 | Phase 1.5(条件性,代码生成前) |
452
+ | `scripts/migrate.cjs` | 工程迁移至 HarmonyOS SDK | Phase 7.1(编译前) |
453
+ | `scripts/code-linter.cjs` | Code Linter 静态检查 | Phase 7.2(编译前) |
454
+ | `scripts/build.ps1` | 编译执行(防 session 阻塞) | Phase 7.3(编译验证) |
455
+ | `scripts/ohpm-switch.cjs` | ohpm 线上版本替换 | Phase 7.3(源库编译失败兜底) |
@@ -0,0 +1,60 @@
1
+ # XTS 代码生成报告模板
2
+
3
+ > Phase 8 输出时使用此模板生成最终报告文件 `{{outputDir}}/arktscoverage-xts-code-report.md`。
4
+
5
+ ---
6
+
7
+ ```markdown
8
+ ## XTS 代码生成完成
9
+
10
+ ### 生成测试文件
11
+ | 文件路径 | 说明 |
12
+ |---------|------|
13
+ | entry/src/ohosTest/ets/test/{LibraryName}XtsTest.test.ets | N 个测试用例 |
14
+
15
+ ### 测试套件注册
16
+ 已在 `entry/src/ohosTest/ets/test/List.test.ets` 中注册新测试套件。
17
+
18
+ ### 用例统计
19
+ - 总用例数:N
20
+ - 可测试接口数:M
21
+ - 降级/跳过接口数:D(需标注原因)
22
+
23
+ ### 分批模式说明
24
+ {分批模式:Subagent 分批(N 批) / 直接生成模式}
25
+ - Subagent 分批模式下:批次总数 N、每批用例数、dispatch 并行度
26
+ - 各批次 subagent 自检结果:{批次 1: ✓;批次 2: ✓;批次 3: ✗ → Orchestrator 回退补写;...}
27
+ - 回退情况:{无 / 批次 X 回退,原因:...}
28
+
29
+ ### Code Linter 检查
30
+ {结果:通过(0 Error)/ 有 Error(已修复)/ 环境不可用跳过}
31
+ - 引用 `{{sourcePath}}/code-linter-report.json`
32
+ - 关键 Warning 需人工确认:{如 @hw-stylistic/file-naming-convention 等,不阻塞编译}
33
+
34
+ ### 编译验证
35
+ {编译结果:通过 / 失败(X 轮修复后)}
36
+ - (若跳过编译验证必须注明)跳过原因:{宿主机无 devecocli/ohpm/hvigor 编译环境 / 其他原因}
37
+ - 编译修复轮数:{第 X 轮通过;失败则标注最终剩余错误数与原因}
38
+ - 编译输出引用:`{{sourcePath}}/build.log`(如保留)
39
+
40
+ (若已执行 ohpm 线上版本替换,需附加:)
41
+ - 源库本地原生编译失败:{原因简述}
42
+ - 已切换 ohpm 线上版本:`{库包名}@{版本号}`
43
+ - 依赖改动记录:{entry/oh-package.json5 的依赖变更、build-profile.json5 modules[] 移除的模块,可直接引用 `{{sourcePath}}/ohpm-switch-report.json`
44
+ - **版本降级 API 兼容核验**:{线上版本对照 library/index.ets 导出链的结果,所有 import 类型是否仍存在;缺失类型的降级处理}
45
+
46
+ ### 接口覆盖
47
+ | 接口 | 用例编号 | 类型 | 备注 |
48
+ |------|---------|------|------|
49
+ | interfaceA | 001 | 正向功能 | — |
50
+ | ... | ... | ... | ... |
51
+
52
+ ### 验证步骤(已执行动作核对清单)
53
+ > 🔴 以下逐项必须真实勾选,防止"跳过编译仍报成功"。
54
+ - [ ] 工程迁移执行:`migrate.cjs` → {结果:成功 / 跳过 + 原因}
55
+ - [ ] Code Linter 执行:`code-linter.cjs` → {0 Error / 已修复 / 环境不可用跳过}
56
+ - [ ] 编译验证执行:`build.ps1` → {通过 / 失败(X 轮修复后)/ 无法执行 + 原因}
57
+ - [ ] 测试套件已在 `List.test.ets` 注册
58
+ - [ ] 运行验证:{已在 DevEco Studio 构建运行 / 未运行 + 原因}
59
+ - 若勾选"未运行"或任一项跳过,必须在对应字段说明原因,否则视为跳过关键步骤,报告结论不可标记为"成功"。
60
+ ```
@@ -0,0 +1,76 @@
1
+ # 访问修饰符预检指南
2
+
3
+ > Phase 1 条件性子步骤(1.5)的详细参考文档。`private`/`protected` 成员属于非对外 API,已从覆盖率口径剔除,黑盒 XTS 测试无法直接引用。若测试代码直接调用 `private`/`protected` 成员,ArkTS 编译会报 `Property 'X' is private and only accessible within class` 错误。本预检用于建立禁止直接调用清单,生成代码时跳过这些成员。标准链路(interface-spec/xts-doc)已剔除 private/protected 时本子步骤可跳过。
4
+
5
+ ---
6
+
7
+ ## 1. 执行预检脚本
8
+
9
+ ```powershell
10
+ node {{skillDir}}/scripts/precheck-access-modifiers.cjs --source {{sourcePath}}
11
+ ```
12
+
13
+ 脚本行为:
14
+ - 递归扫描 `library/src/main/ets/` 下所有 `.ts`/`.ets` 源文件
15
+ - 提取每个类的 `private`/`protected` 属性和方法
16
+ - 按类分组输出 JSON 报告到 `{{sourcePath}}/precheck-access-modifiers.json`
17
+ - stdout 同时输出 JSON 供调用方读取
18
+
19
+ ---
20
+
21
+ ## 2. 生成排除清单
22
+
23
+ 读取 `precheck-access-modifiers.json`,建立**禁止直接调用清单**:
24
+
25
+ ```json
26
+ {
27
+ "AbstractDao": {
28
+ "properties": ["config", "db", "isStandardSQLite", "statements", "pkOrdinal", ...],
29
+ "methods": ["loadAllFromCursor", "loadCurrent", "readEntity", "bindValues", "attachEntity", ...]
30
+ },
31
+ "QueryBuilder": {
32
+ "properties": ["LOG_SQL", "isDistinct", "values", "joins", "limits", "offsets", ...],
33
+ "methods": ["checkOrderBuilder", "handlePropertyCondition", "createSelectSql", ...]
34
+ }
35
+ }
36
+ ```
37
+
38
+ ---
39
+
40
+ ## 3. 代码生成规则(强制)
41
+
42
+ 对清单中的每个 `private`/`protected` 成员,在生成代码时遵守以下规则:
43
+
44
+ | 场景 | 处理方式 | 示例 |
45
+ |------|---------|------|
46
+ | 测试用例**仅**涉及 private/protected 成员 | 跳过,不生成用例 | — |
47
+ | 测试用例**混合** public 和 private 成员 | 仅保留 public 部分,private 部分跳过 | — |
48
+ | private 成员有对应的 public 入口方法 | 通过 public 方法测试,注释说明调用链 | `insert()` 内部调用 `attachEntity()` |
49
+
50
+ ---
51
+
52
+ ## 4. 预检结果注入并行 Agent
53
+
54
+ > 当使用并行 Agent 生成多个测试文件时,将排除清单注入每个 Agent 的 prompt 中,确保所有 Agent 生成的代码**第一次就符合规范**。
55
+
56
+ 在 Agent prompt 中添加:
57
+
58
+ ```
59
+ ## 访问修饰符预检规则(必须遵守)
60
+ 以下成员为 private/protected,禁止直接调用:
61
+ - AbstractDao: config, db, statements, loadAllFromCursor, readEntity, bindValues, ...
62
+ - QueryBuilder: LOG_SQL, isDistinct, values, joins, checkOrderBuilder, ...
63
+ 跳过这些成员的测试,不生成用例。
64
+ ```
65
+
66
+ ---
67
+
68
+ ## 5. 预检后验证
69
+
70
+ | 检查项 | 通过条件 |
71
+ |--------|----------|
72
+ | 预检脚本已执行 | `precheck-access-modifiers.json` 已生成 |
73
+ | 排除清单已建立 | 所有 `private`/`protected` 成员已记录 |
74
+ | private 成员用例已跳过 | 未为 private/protected 成员生成任何用例 |
75
+ | 并行 Agent 规则已注入 | 每个 Agent 的 prompt 包含排除清单 |
76
+ | 无 private 编译错误残留 | 编译阶段无 `Property 'X' is private` 错误 |