@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,253 @@
1
+ # ArktsLibraryTestCoverageCheckSkill 详细检查清单
2
+
3
+ 本文件为 SKILL.md 中各维度的详细检查项展开说明,供执行检视时逐项对照。
4
+
5
+ ---
6
+
7
+ ## 维度 1:公开接口覆盖率(TC-01~TC-05)
8
+
9
+ ### TC-01 核心接口未覆盖(Critical,-15 分)
10
+
11
+ **定义**:公开核心功能接口(标注为必须/required)无任何测试用例。
12
+
13
+ **检查方法**:
14
+ 1. 从 `接口规格说明.md` 提取所有标注为 required/必须 的公开接口
15
+ 2. 扫描所有测试文件,查找对这些接口的直接调用或间接测试
16
+ 3. 核心接口包括但不限于:
17
+ - 库的主入口方法
18
+ - 文档标注为必须的功能
19
+ - README 中列为核心功能的接口
20
+
21
+ **判定标准**:
22
+ - ✅ 有至少一个测试函数直接测试该接口 → 已覆盖
23
+ - ⚠️ 仅在其他测试中间接调用但未专门测试 → 需评估
24
+ - ❌ 无任何测试函数涉及该接口 → 未覆盖
25
+
26
+ > **归零规则 6 关联**:当 DEMO 目录和 test 目录均未对全部公开接口实现 100% 覆盖时,触发归零规则 6,综合评分直接为 0 分。只要 DEMO 或 test 目录中任意一个达到 100% 接口覆盖,即不触发此归零规则。
27
+
28
+ ### TC-02 重要接口未覆盖(Major,-10 分)
29
+
30
+ **定义**:重要公开接口缺少测试用例(非核心但影响主要功能流程)。
31
+
32
+ **检查方法**:同 TC-01,但针对文档标注为推荐/可选的重要接口。
33
+
34
+ ### TC-03 边界场景缺失(Major,-8 分)
35
+
36
+ **定义**:有测试的接口但缺少边界值/异常输入测试。
37
+
38
+ **典型缺失场景**:
39
+ - 数值参数:缺少极大值、极小值、零值、负值测试
40
+ - 字符串参数:缺少空字符串、超长字符串、特殊字符测试
41
+ - 数组参数:缺少空数组、超大数组测试
42
+ - 对象参数:缺少 null、空对象、缺失字段测试
43
+ - Promise 返回:缺少 reject 场景测试
44
+
45
+ ### TC-04 可选接口未覆盖(Minor,-3 分)
46
+
47
+ **定义**:可选功能接口(标注为 optional)未测试。
48
+
49
+ ### TC-05 接口参数组合未覆盖(Major,-5 分)
50
+
51
+ **定义**:接口有多参数时,仅测试了部分参数组合,缺少全组合覆盖。
52
+
53
+ ---
54
+
55
+ ## 归零规则 6 详细说明:接口覆盖率 100% 要求
56
+
57
+ **触发条件**:DEMO 目录和 test 目录的公开接口覆盖率**均未达到 100%**。
58
+
59
+ **不触发条件**(满足其一即可):
60
+ - DEMO 目录(`demo/`、`example/`、`sample/` 等)中的代码调用了全部公开接口 → DEMO 覆盖率 100%
61
+ - test 目录(`test/`、`tests/`、`__tests__/`、`ohosTest/` 等)中的测试覆盖了全部公开接口 → test 覆盖率 100%
62
+
63
+ **计算方法**:
64
+ 1. 从 `接口规格说明.md` 提取全部公开接口列表(设为 N 个)
65
+ 2. 扫描 DEMO 目录,统计其中调用的公开接口数(D 个),DEMO 覆盖率 = D/N × 100%
66
+ 3. 扫描 test 目录,统计其中覆盖的公开接口数(T 个),test 覆盖率 = T/N × 100%
67
+ 4. 若 max(DEMO覆盖率, test覆盖率) = 100%,则不触发归零;否则触发
68
+
69
+ **注意**:此归零规则叠加于维度扣分之上,即使维度扣分后仍有剩余分数,只要触发此规则,综合评分直接为 0 分。
70
+
71
+ ---
72
+
73
+ ## 维度 2:测试质量(TC-06~TC-11)
74
+
75
+ ### TC-06 断言缺失(Critical,-10 分)
76
+
77
+ **定义**:测试函数中无任何 assert/expect 断言语句。
78
+
79
+ **检查方法**:
80
+ 1. 逐个扫描测试函数体
81
+ 2. 查找 `assert*`、`expect*`、`chai.expect`、`should.*` 等断言调用
82
+ 3. 仅包含 `console.log` 而无断言的测试视为断言缺失
83
+
84
+ **判定标准**:
85
+ - ✅ 有至少一个非空断言 → 通过
86
+ - ❌ 无任何断言或仅有 `console.log` → 断言缺失
87
+
88
+ ### TC-07 断言过弱(Minor,-5 分)
89
+
90
+ **定义**:测试仅有断言"不抛异常",未验证正确输出。
91
+
92
+ **典型模式**:
93
+ ```typescript
94
+ // ❌ 断言过弱
95
+ it('should work', () => {
96
+ expect(() => myFunction()).not.toThrow(); // 仅验证不抛异常
97
+ });
98
+
99
+ // ✅ 正确断言
100
+ it('should work', () => {
101
+ const result = myFunction();
102
+ expect(result).toBe(expectedValue); // 验证输出
103
+ });
104
+ ```
105
+
106
+ ### TC-08 测试独立性(Major,-8 分)
107
+
108
+ **定义**:测试间存在数据依赖,无法独立运行。
109
+
110
+ **典型问题**:
111
+ - 测试 A 修改全局状态,测试 B 依赖该状态
112
+ - 测试使用共享 mock 数据且未在 afterEach 中清理
113
+ - 测试顺序影响结果(换顺序就失败)
114
+
115
+ ### TC-09 Mock 过度(Minor,-5 分)
116
+
117
+ **定义**:测试中 Mock 占比过高,导致测试脱离真实环境。
118
+
119
+ **判定标准**:
120
+ - Mock 数量 > 被测代码调用数的 50% → Mock 过度
121
+ - 关键鸿蒙 API 全部 Mock → Mock 过度
122
+ - 自身逻辑内部方法也被 Mock → Mock 过度
123
+
124
+ ### TC-10 负面测试缺失(Major,-8 分)
125
+
126
+ **定义**:缺少异常/失败场景测试。
127
+
128
+ **应覆盖的负面场景**:
129
+ - 输入参数为 null/undefined/非法值
130
+ - 网络请求失败
131
+ - 权限不足
132
+ - 资源不可用
133
+
134
+ ### TC-11 测试数据硬编码(Minor,-3 分)
135
+
136
+ **定义**:测试数据全硬编码,未提取为 fixtures/常量/工厂函数。
137
+
138
+ ---
139
+
140
+ ## 维度 3:鸿蒙化特性测试覆盖(TC-12~TC-17)
141
+
142
+ ### TC-12 鸿蒙 API 调用未测试(Critical,-12 分)
143
+
144
+ **定义**:源码中调用的 @ohos.* API 在测试中无覆盖。
145
+
146
+ **检查方法**:
147
+ 1. 在源码中扫描所有 `import from '@ohos.*'` 和直接调用 `@ohos.*` 的位置
148
+ 2. 在测试文件中查找对应 API 的测试覆盖
149
+ 3. 每个使用的 @ohos API 应有至少一个测试
150
+
151
+ **关键鸿蒙 API 类别**:
152
+ - 系统服务:@ohos.bluetooth、@ohos.network 等
153
+ - UI 框架:@ohos.arkui.* 等
154
+ - 存储:@ohos.data.* 等
155
+ - 设备:@ohos.deviceInfo 等
156
+
157
+ ### TC-13 权限场景未测试(Major,-8 分)
158
+
159
+ **定义**:需权限的 API 无权限授予/拒绝场景测试。
160
+
161
+ ### TC-14 Lifecycle 测试缺失(Major,-10 分)
162
+
163
+ **定义**:ArkTS 组件生命周期方法无测试覆盖。
164
+
165
+ **应覆盖的生命周期**:
166
+ - aboutToAppear / aboutToDisappear
167
+ - onPageShow / onPageHide
168
+ - onBackPress
169
+ - onActive / onInactive
170
+
171
+ ### TC-15 NAPI 测试缺失(Major,-10 分)
172
+
173
+ **定义**:Native 模块通过 NAPI 暴露的接口无测试覆盖。
174
+
175
+ **检查方法**:
176
+ 1. 找到所有 `napi_define_class` / `napi_define_properties` 暴露的方法
177
+ 2. 在测试中查找对这些方法的调用测试
178
+
179
+ ### TC-16 跨设备场景未测试(Minor,-5 分)
180
+
181
+ **定义**:鸿蒙多设备/分布式场景无测试。
182
+
183
+ ### TC-17 鸿蒙配置测试缺失(Minor,-3 分)
184
+
185
+ **定义**:module.json5 中的关键配置(权限、设备类型等)未在测试中验证。
186
+
187
+ ---
188
+
189
+ ## 维度 4:测试分类覆盖(TC-18~TC-22)
190
+
191
+ ### TC-18 缺少单元测试(Major,-8 分)
192
+
193
+ **定义**:对独立函数/方法无单元级测试(测试最小功能单元)。
194
+
195
+ **判定标准**:
196
+ - 检查是否有针对单个方法/函数的独立测试
197
+ - 单元测试应不依赖外部系统或 Mock 较少
198
+
199
+ ### TC-19 缺少集成测试(Minor,-5 分)
200
+
201
+ **定义**:对模块间交互无集成级测试。
202
+
203
+ ### TC-20 缺少端到端测试(Minor,-5 分)
204
+
205
+ **定义**:对完整功能流程无 E2E 测试(从用户视角验证完整链路)。
206
+
207
+ ### TC-21 测试命名不规范(Minor,-3 分)
208
+
209
+ **定义**:测试文件/函数命名不符合规范。
210
+
211
+ **命名规范**:
212
+ - 测试文件必须包含 test/Test/spec 关键词
213
+ - 测试函数描述应清晰表达测试意图
214
+ - 建议格式:`it('should {预期行为} when {条件}')`
215
+
216
+ ### TC-22 测试分类标注缺失(Minor,-2 分)
217
+
218
+ **定义**:测试未标注类型(unit/integration/e2e)。
219
+
220
+ ---
221
+
222
+ ## 维度 5:测试基础设施(TC-23~TC-26)
223
+
224
+ ### TC-23 测试框架配置缺失(Major,-5 分)
225
+
226
+ **定义**:缺少鸿蒙测试框架配置。
227
+
228
+ **检查项**:
229
+ - 是否存在 @ohos/hypium 依赖配置
230
+ - 是否有测试运行配置文件
231
+ - oh-package.json5 中是否声明测试依赖
232
+
233
+ ### TC-24 测试脚本缺失(Minor,-3 分)
234
+
235
+ **定义**:无测试运行脚本(如 hvigorw test 或自定义脚本)。
236
+
237
+ ### TC-25 CI 集成缺失(Minor,-3 分)
238
+
239
+ **定义**:无 CI/CD 测试流程配置(如 .github/workflows 或 CI 脚本)。
240
+
241
+ ### TC-26 测试数据管理缺失(Minor,-2 分)
242
+
243
+ **定义**:缺少测试数据/fixtures 的统一管理。
244
+
245
+ ---
246
+
247
+ ## 归零规则检查要点
248
+
249
+ 1. **核心接口完全无测试**:逐一确认所有 required 接口均无测试 → 触发归零规则 1
250
+ 2. **覆盖率 < 10%**:计算覆盖率后判定 → 触发归零规则 2
251
+ 3. **无测试文件**:扫描结果为空 → 触发归零规则 3
252
+ 4. **未发现鸿蒙化代码**:Phase 1 扫描无结果 → 触发归零规则 4
253
+ 5. **源码不可访问**:目录不存在或无权限 → 触发归零规则 5
@@ -0,0 +1,115 @@
1
+ # MCP 工具使用指南
2
+
3
+ 本文档说明本 SKILL 可复用的 MCP 脚本工具,用于接口覆盖率分析和测试文件扫描,避免重复造轮子。
4
+
5
+ ---
6
+
7
+ ## 可用 MCP 脚本工具
8
+
9
+ ### 1. `script_arkts_analyze_demo_coverage` — Demo 接口覆盖率分析
10
+
11
+ **脚本路径**: `MCP/scripts/analyze-demo-coverage.cjs`
12
+
13
+ **功能**:无需手工提取接口规格,直接一步完成接口提取、Demo 覆盖率匹配和 Markdown 报告生成。
14
+
15
+ **适用场景**:本 SKILL Phase 2 的公开接口覆盖率评估中,用于计算 DEMO 目录的接口覆盖率。
16
+
17
+ **调用方式**:
18
+
19
+ ```bash
20
+ node "{{workspaceRoot}}/MCP/scripts/analyze-demo-coverage.cjs" \
21
+ --libroot "{{libroot}}" \
22
+ --output "{{outputDir}}/demo-coverage-report.md"
23
+ ```
24
+
25
+ **参数说明**:
26
+
27
+ | 参数 | 必填 | 说明 |
28
+ |------|------|------|
29
+ | `--libroot` | ✅ | 库源码根目录绝对路径(含 `library/` 和 `entry/src/main/ets/`) |
30
+ | `--spec` | ❌ | 已有的 `interface-spec.json` 路径(由 `extract-interfaces.cjs` 生成) |
31
+ | `--output` | ❌ | 输出 Markdown 报告路径,默认 `02-{库名}-Demo覆盖率报告.md` |
32
+ | `--mode` | ❌ | 匹配模式:`auto`(默认) \| `ast` \| `regex` |
33
+ | `--lib` | ❌ | 库名覆盖 |
34
+
35
+ **自动完成**:
36
+ 1. 获取接口规格(从 `--spec` JSON 读取,或从 `libroot` 源码自动提取)
37
+ 2. 递归扫描 `entry/src/main/ets/` 下的 `.ets` 文件
38
+ 3. AST/正则双层匹配接口调用
39
+ 4. 直接生成最终 Markdown 覆盖率报告
40
+
41
+ ### 2. `script_arkts_analyze_xts_coverage` — XTS 覆盖率分析
42
+
43
+ **脚本路径**: `MCP/scripts/analyze-xts-coverage.cjs`
44
+
45
+ **功能**:分析 XTS 测试用例对接口的覆盖情况,一步完成接口提取、XTS 覆盖率匹配和报告生成。
46
+
47
+ **适用场景**:本 SKILL Phase 2 的公开接口覆盖率评估中,用于计算 test 目录的接口覆盖率。
48
+
49
+ **调用方式**:
50
+
51
+ ```bash
52
+ node "{{workspaceRoot}}/MCP/scripts/analyze-xts-coverage.cjs" \
53
+ --libroot "{{libroot}}" \
54
+ --output "{{outputDir}}/xts-coverage-report.md"
55
+ ```
56
+
57
+ **参数说明**:
58
+
59
+ | 参数 | 必填 | 说明 |
60
+ |------|------|------|
61
+ | `--libroot` | ✅* | 库源码根目录路径(含 `library/` 和 `entry/src/ohosTest/`) |
62
+ | `--spec` | ✅* | 已有的 `interface-spec.json` 路径(与 `libroot` 二选一) |
63
+ | `--output` | ❌ | 输出 Markdown 报告路径,默认 `03-{库名}-XTS覆盖率报告.md` |
64
+ | `--mode` | ❌ | 匹配模式:`auto`(默认) \| `ast` \| `regex` |
65
+
66
+ > `libroot` 与 `spec` 至少提供一个。提供 `spec` 时跳过接口提取步骤。
67
+
68
+ **扫描范围**:`entry/src/ohosTest/` 下所有 `.ets` 和 `.ts` 测试文件。
69
+
70
+ ### 3. `script_extract_interfaces` — 接口规格提取
71
+
72
+ **脚本路径**: `MCP/scripts/extract-interfaces.cjs`
73
+
74
+ **功能**:从库源码提取公开接口规格,生成 JSON 格式的接口规格文件。
75
+
76
+ **适用场景**:当需要手动补充接口规格时使用。本 SKILL 通常直接使用 `--spec` 参数传入已有 JSON。
77
+
78
+ ---
79
+
80
+ ## 在本 SKILL 中的使用方式
81
+
82
+ ### 覆盖率计算流程
83
+
84
+ ```
85
+ Phase 1: 扫描测试文件和鸿蒙代码
86
+
87
+ Phase 2: 调用 MCP 脚本计算覆盖率
88
+ ├── DEMO 覆盖率 → analyze-demo-coverage.cjs
89
+ │ (扫描 entry/src/main/ets/ 下的接口调用)
90
+ └── test 覆盖率 → analyze-xts-coverage.cjs
91
+ (扫描 entry/src/ohosTest/ 下的接口调用)
92
+
93
+ Phase 3: 综合评分(结合 MCP 报告 + 手动检视项)
94
+
95
+ Phase 4: 生成最终报告
96
+ ```
97
+
98
+ ### 脚本身份验证
99
+
100
+ 执行脚本后,检查退出码和输出文件:
101
+
102
+ - 退出码 `0` → 成功,继续流程
103
+ - 退出码非 `0` → 失败,回退到手工扫描流程
104
+
105
+ ### 脚本与手工结合的检视项
106
+
107
+ MCP 脚本自动完成**接口覆盖率计算**(维度 1 的基础数据),但以下检视项仍需人工分析:
108
+
109
+ | 维度 | 脚本自动 | 人工分析 |
110
+ |------|----------|----------|
111
+ | 公开接口覆盖率 | 覆盖率百分比(TC-01~TC-05 基础数据) | 边界场景、参数组合覆盖判定 |
112
+ | 测试质量 | — | 断言质量、Mock 过度、负面测试等 |
113
+ | 鸿蒙化特性测试 | — | 鸿蒙 API 调用测试、权限场景等 |
114
+ | 测试分类覆盖 | — | 单元/集成/E2E 分类判断 |
115
+ | 测试基础设施 | — | 框架配置、CI 集成等 |
@@ -0,0 +1,263 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * @tool validate-skill
4
+ * @description 校验 SKILL 目录是否符合 Agent Skills 规范,检查 frontmatter、结构、渐进式披露。跨平台(Windows/macOS/Linux),仅需 Node.js。
5
+ * @param skillDir: string - SKILL 目录绝对路径
6
+ * @hidden
7
+ *
8
+ * 用法:
9
+ * # CLI 模式
10
+ * node validate-skill.cjs /path/to/skill
11
+ *
12
+ * # MCP Gateway 模式(第一个参数为 JSON 字符串)
13
+ * node validate-skill.cjs '{"skillDir":"/path/to/skill"}'
14
+ */
15
+
16
+ 'use strict';
17
+
18
+ const fs = require('node:fs');
19
+ const path = require('node:path');
20
+
21
+ // ── 参数解析(兼容 MCP Gateway JSON 模式与 CLI 模式) ──────
22
+
23
+ function parseArgs(argv) {
24
+ if (argv.length === 0) return {};
25
+ const first = argv[0];
26
+ if (typeof first === 'string' && first.startsWith('{')) {
27
+ try { return JSON.parse(first); } catch (e) { return {}; }
28
+ }
29
+ return { skillDir: first };
30
+ }
31
+
32
+ // ── 输出统计 ─────────────────────────────────────────────
33
+
34
+ let PASS = 0;
35
+ let FAIL = 0;
36
+ let WARNINGS = 0;
37
+
38
+ function checkPass(msg) { console.log(` ✅ ${msg}`); PASS += 1; }
39
+ function checkFail(msg) { console.log(` ❌ ${msg}`); FAIL += 1; }
40
+ function checkWarn(msg) { console.log(` ⚠️ ${msg}`); WARNINGS += 1; }
41
+
42
+ // ── Frontmatter 解析 ─────────────────────────────────────
43
+
44
+ function parseFrontmatter(content) {
45
+ const lines = content.split(/\r?\n/);
46
+ if (!lines[0] || lines[0].trim() !== '---') {
47
+ return { frontmatter: null, bodyLines: lines };
48
+ }
49
+ let end = -1;
50
+ for (let i = 1; i < lines.length; i++) {
51
+ if (lines[i].trim() === '---') { end = i; break; }
52
+ }
53
+ if (end === -1) {
54
+ return { frontmatter: null, bodyLines: lines };
55
+ }
56
+ const fmLines = lines.slice(1, end);
57
+ const fm = {};
58
+ let currentKey = null;
59
+ for (const line of fmLines) {
60
+ const m = line.match(/^([a-zA-Z_][\w-]*):\s*(.*)$/);
61
+ if (m) {
62
+ currentKey = m[1];
63
+ fm[currentKey] = m[2].trim();
64
+ } else if (currentKey && /^\s+\S/.test(line)) {
65
+ fm[currentKey] += '\n' + line.trim();
66
+ }
67
+ }
68
+ return { frontmatter: fm, bodyLines: lines.slice(end + 1) };
69
+ }
70
+
71
+ // ── 主流程 ───────────────────────────────────────────────
72
+
73
+ function main() {
74
+ const args = parseArgs(process.argv.slice(2));
75
+ const skillDir = args.skillDir || '';
76
+
77
+ if (!skillDir) {
78
+ console.log('Usage: node validate-skill.cjs <skillDir>');
79
+ console.log('Error: skillDir parameter is required');
80
+ process.exit(1);
81
+ }
82
+
83
+ if (!fs.existsSync(skillDir) || !fs.statSync(skillDir).isDirectory()) {
84
+ console.log(`Error: Directory does not exist: ${skillDir}`);
85
+ process.exit(1);
86
+ }
87
+
88
+ console.log('=== SKILL 规范校验 ===');
89
+ console.log(`目录: ${skillDir}`);
90
+ console.log('');
91
+
92
+ // ─── 1. SKILL.md 存在性 ───
93
+ console.log('--- 1. 文件结构检查 ---');
94
+ const skillFile = path.join(skillDir, 'SKILL.md');
95
+ if (fs.existsSync(skillFile) && fs.statSync(skillFile).isFile()) {
96
+ checkPass('SKILL.md 存在');
97
+ } else {
98
+ checkFail('SKILL.md 不存在');
99
+ console.log('无法继续校验,SKILL.md 是必需文件');
100
+ process.exit(1);
101
+ }
102
+
103
+ const content = fs.readFileSync(skillFile, 'utf-8');
104
+ const { frontmatter, bodyLines } = parseFrontmatter(content);
105
+
106
+ // ─── 2. Frontmatter 检查 ───
107
+ console.log('');
108
+ console.log('--- 2. Frontmatter 检查 ---');
109
+
110
+ if (frontmatter) {
111
+ checkPass('YAML frontmatter 存在');
112
+ } else {
113
+ checkFail('缺少 YAML frontmatter(文件应以 --- 开头并以 --- 结束头部)');
114
+ }
115
+
116
+ const nameField = frontmatter ? String(frontmatter.name || '') : '';
117
+ if (nameField) {
118
+ checkPass(`name 字段存在: ${nameField}`);
119
+
120
+ // name 字符集校验
121
+ if (/^[a-z0-9]+(-[a-z0-9]+)*$/.test(nameField)) {
122
+ checkPass('name 字符集合规(仅小写字母/数字/连字符)');
123
+ } else {
124
+ checkFail('name 字符集不合规:应仅含 a-z/0-9/-,不能首尾连字符或连续连字符');
125
+ }
126
+
127
+ // name 长度校验
128
+ const nameLen = nameField.length;
129
+ if (nameLen >= 1 && nameLen <= 64) {
130
+ checkPass(`name 长度合规 (${nameLen} 字符)`);
131
+ } else {
132
+ checkFail(`name 长度不合规:应在 1-64 字符之间(当前 ${nameLen})`);
133
+ }
134
+
135
+ // name 匹配目录名
136
+ const dirName = path.basename(path.resolve(skillDir));
137
+ if (nameField === dirName) {
138
+ checkPass(`name 匹配父目录名 (${dirName})`);
139
+ } else {
140
+ checkFail(`name 不匹配父目录名:name='${nameField}' vs 目录='${dirName}'`);
141
+ }
142
+ } else {
143
+ checkFail('name 字段缺失');
144
+ }
145
+
146
+ const descField = frontmatter ? String(frontmatter.description || '') : '';
147
+ if (descField) {
148
+ const descLen = descField.length;
149
+ if (descLen <= 1024) {
150
+ checkPass(`description 长度合规 (${descLen} 字符)`);
151
+ } else {
152
+ checkFail(`description 过长:应 ≤1024 字符(当前 ${descLen})`);
153
+ }
154
+ } else {
155
+ checkFail('description 字段缺失或为空');
156
+ }
157
+
158
+ if (frontmatter && frontmatter.license) {
159
+ checkPass('license 字段存在');
160
+ } else {
161
+ checkWarn('license 字段缺失(推荐添加)');
162
+ }
163
+
164
+ if (frontmatter && frontmatter.metadata) {
165
+ checkPass('metadata 字段存在');
166
+ } else {
167
+ checkWarn('metadata 字段缺失(推荐添加 author/version)');
168
+ }
169
+
170
+ // ─── 3. Body 检查 ───
171
+ console.log('');
172
+ console.log('--- 3. Body 内容检查 ---');
173
+
174
+ const bodyLineCount = bodyLines.length;
175
+ if (bodyLineCount <= 500) {
176
+ checkPass(`body 行数合规 (${bodyLineCount} 行, ≤500)`);
177
+ } else {
178
+ checkWarn(`body 行数较多 (${bodyLineCount} 行,推荐 < 500,考虑拆分到 references/)`);
179
+ }
180
+
181
+ // 检查任务参数表
182
+ if (/任务参数|## .*参数|\|\s*参数/.test(content)) {
183
+ checkPass('包含任务参数说明');
184
+ } else {
185
+ checkWarn('未找到任务参数表(推荐添加)');
186
+ }
187
+
188
+ // 检查工作流程概览
189
+ if (/工作流程概览|Phase|## .*流程/.test(content)) {
190
+ checkPass('包含工作流程概览');
191
+ } else {
192
+ checkWarn('未找到工作流程概览(推荐添加)');
193
+ }
194
+
195
+ // 检查 MCP 工具引用
196
+ if (/script_|gateway_|kb-server_|MCP\/scripts/i.test(content)) {
197
+ checkPass('引用了 MCP 工具或脚本');
198
+ } else {
199
+ checkWarn('未引用任何 MCP 工具(推荐复用 MCP 能力)');
200
+ }
201
+
202
+ // ─── 4. 渐进式披露检查 ───
203
+ console.log('');
204
+ console.log('--- 4. 渐进式披露检查 ---');
205
+
206
+ const refsDir = path.join(skillDir, 'references');
207
+ if (fs.existsSync(refsDir) && fs.statSync(refsDir).isDirectory()) {
208
+ const refFiles = fs.readdirSync(refsDir)
209
+ .filter((f) => f.endsWith('.md') && fs.statSync(path.join(refsDir, f)).isFile());
210
+ checkPass(`references/ 目录存在 (${refFiles.length} 个文档)`);
211
+
212
+ // 检查引用深度(一层)
213
+ const nestedDirs = fs.readdirSync(refsDir, { withFileTypes: true })
214
+ .filter((d) => d.isDirectory()).length;
215
+ if (nestedDirs === 0) {
216
+ checkPass('references 保持一层深度');
217
+ } else {
218
+ checkFail(`references 存在嵌套子目录 (${nestedDirs} 个),应保持一层深度`);
219
+ }
220
+ } else {
221
+ checkWarn('无 references/ 目录(详细内容建议拆分到此目录)');
222
+ }
223
+
224
+ const assetsDir = path.join(skillDir, 'assets');
225
+ if (fs.existsSync(assetsDir) && fs.statSync(assetsDir).isDirectory()) {
226
+ checkPass('assets/ 目录存在');
227
+ } else {
228
+ checkWarn('无 assets/ 目录(如需模板/资源可添加)');
229
+ }
230
+
231
+ const scriptsDir = path.join(skillDir, 'scripts');
232
+ if (fs.existsSync(scriptsDir) && fs.statSync(scriptsDir).isDirectory()) {
233
+ checkPass('scripts/ 目录存在');
234
+ } else {
235
+ checkWarn('无 scripts/ 目录(如需可执行脚本可添加)');
236
+ }
237
+
238
+ // 检查文件引用使用相对路径
239
+ const absRefs = (content.match(/\]\(\/[^)]+\)/g) || []).length;
240
+ if (absRefs === 0) {
241
+ checkPass('文件引用使用相对路径');
242
+ } else {
243
+ checkFail(`发现 ${absRefs} 个绝对路径引用,应使用相对路径`);
244
+ }
245
+
246
+ // ─── 5. 总结 ───
247
+ console.log('');
248
+ console.log('=== 校验总结 ===');
249
+ console.log(` ✅ 通过: ${PASS}`);
250
+ console.log(` ❌ 失败: ${FAIL}`);
251
+ console.log(` ⚠️ 警告: ${WARNINGS}`);
252
+ console.log('');
253
+
254
+ if (FAIL === 0) {
255
+ console.log('ALL CHECKS PASSED');
256
+ process.exit(0);
257
+ } else {
258
+ console.log(`VALIDATION FAILED: ${FAIL} 个必须修复的问题`);
259
+ process.exit(1);
260
+ }
261
+ }
262
+
263
+ main();