@ohos-cpf/3rdloop 0.0.2 → 0.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (393) hide show
  1. package/README.md +244 -244
  2. package/bin/3rdloop.mjs +46 -46
  3. package/lib/cli.js +781 -781
  4. package/lib/config-cmd.js +451 -451
  5. package/lib/config.js +318 -318
  6. package/lib/doctor.js +113 -113
  7. package/lib/exit-codes.js +30 -30
  8. package/lib/opencode.js +155 -155
  9. package/lib/orch.js +426 -426
  10. package/lib/queries.js +263 -263
  11. package/lib/step.js +325 -325
  12. package/lib/ui.js +222 -222
  13. package/lib/update.js +279 -279
  14. package/lib/workflow.js +308 -308
  15. package/lib/workflows.js +131 -131
  16. package/package.json +50 -50
  17. package/vendor/Server/Agent/SkillSelector/README.md +343 -343
  18. package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -207
  19. package/vendor/Server/Agent/SkillSelector/index.js +14 -14
  20. package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -313
  21. package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -161
  22. package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -144
  23. package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -433
  24. package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -382
  25. package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +59 -59
  26. package/vendor/Server/Brain/AnalysisStrategies.js +422 -422
  27. package/vendor/Server/Brain/Brain.js +686 -686
  28. package/vendor/Server/Brain/DecompositionStrategies.js +621 -621
  29. package/vendor/Server/Brain/PlanPersistence.js +196 -196
  30. package/vendor/Server/Brain/SkillExecutor.js +251 -251
  31. package/vendor/Server/Brain/index.js +11 -11
  32. package/vendor/Server/CLI/cli.js +275 -275
  33. package/vendor/Server/CLI/deveco-code/index.js +71 -71
  34. package/vendor/Server/CLI/deveco-code.js +5 -5
  35. package/vendor/Server/CLI/opencode/index.js +817 -818
  36. package/vendor/Server/CLI/opencode.js +5 -5
  37. package/vendor/Server/DbUse/MessageArchive.js +61 -61
  38. package/vendor/Server/DbUse/StorageManager.js +107 -107
  39. package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -94
  40. package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -138
  41. package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -138
  42. package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -114
  43. package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -157
  44. package/vendor/Server/DbUse/index.js +160 -160
  45. package/vendor/Server/DbUse/stores/SessionStore.js +279 -279
  46. package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -133
  47. package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -262
  48. package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -279
  49. package/vendor/Server/FlexRunner/FlexRunner.js +1759 -1759
  50. package/vendor/Server/FlexRunner/index.js +12 -12
  51. package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -523
  52. package/vendor/Server/Knowledge/KnowledgeManager.js +341 -341
  53. package/vendor/Server/Knowledge/index.js +33 -33
  54. package/vendor/Server/LoopEngine/LoopEngine.js +1133 -1133
  55. package/vendor/Server/LoopEngine/index.js +11 -11
  56. package/vendor/Server/Orchestrator/Orchestrator.js +0 -3
  57. package/vendor/Server/Orchestrator/StepNode.js +312 -312
  58. package/vendor/Server/Orchestrator/index.js +13 -13
  59. package/vendor/Server/Routes/controllers/BrainController.js +241 -241
  60. package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -1125
  61. package/vendor/Server/Routes/controllers/HealthController.js +44 -44
  62. package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -355
  63. package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -788
  64. package/vendor/Server/Routes/controllers/StatsController.js +57 -57
  65. package/vendor/Server/Routes/controllers/StreamController.js +67 -67
  66. package/vendor/Server/Routes/library/logger.js +179 -179
  67. package/vendor/Server/Routes/library/zipArchive.js +172 -172
  68. package/vendor/Server/Routes/router/Router.js +204 -204
  69. package/vendor/Server/Routes/routes/brain.js +47 -47
  70. package/vendor/Server/Routes/routes/flexrunner.js +72 -72
  71. package/vendor/Server/Routes/routes/health.js +28 -28
  72. package/vendor/Server/Routes/routes/index.js +57 -57
  73. package/vendor/Server/Routes/routes/knowledge.js +55 -55
  74. package/vendor/Server/Routes/routes/loopengine.js +58 -58
  75. package/vendor/Server/Routes/routes/orchestrator.js +61 -61
  76. package/vendor/Server/Routes/routes/registry.js +97 -97
  77. package/vendor/Server/Routes/routes/stats.js +23 -23
  78. package/vendor/Server/Routes/routes/stream.js +30 -30
  79. package/vendor/Server/Routes/server.js +203 -203
  80. package/vendor/Server/Routes/sse/SseHub.js +308 -308
  81. package/vendor/Server/Skills/acceptance-check/SKILL.md +191 -191
  82. package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -52
  83. package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -77
  84. package/vendor/Server/Skills/acceptance-check/references/PHASE2_EVIDENCE_VERIFICATION.md +70 -70
  85. package/vendor/Server/Skills/arkts-code-check/SKILL.md +320 -320
  86. package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +210 -210
  87. package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +28 -28
  88. package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +233 -233
  89. package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +219 -219
  90. package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +328 -328
  91. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -93
  92. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +432 -432
  93. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -851
  94. package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +788 -788
  95. package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -291
  96. package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -68
  97. package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -184
  98. package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -337
  99. package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -400
  100. package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +98 -98
  101. package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -544
  102. package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -93
  103. package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +432 -432
  104. package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -851
  105. package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +788 -788
  106. package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -174
  107. package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -321
  108. package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -100
  109. package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -185
  110. package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +233 -233
  111. package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +102 -102
  112. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -89
  113. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -62
  114. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +107 -107
  115. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -124
  116. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -90
  117. package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -57
  118. package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -259
  119. package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -97
  120. package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +391 -391
  121. package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -113
  122. package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +312 -312
  123. package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -154
  124. package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +165 -165
  125. package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +308 -308
  126. package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -90
  127. package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -282
  128. package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +360 -360
  129. package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +145 -145
  130. package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +252 -252
  131. package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +114 -114
  132. package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +262 -262
  133. package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -455
  134. package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -60
  135. package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -76
  136. package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -200
  137. package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +518 -518
  138. package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -276
  139. package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +92 -92
  140. package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -767
  141. package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -93
  142. package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +432 -432
  143. package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -851
  144. package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +788 -788
  145. package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -221
  146. package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +228 -228
  147. package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -97
  148. package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -194
  149. package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +575 -575
  150. package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +574 -574
  151. package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -182
  152. package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +490 -490
  153. package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -217
  154. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -93
  155. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +432 -432
  156. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -851
  157. package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +788 -788
  158. package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -299
  159. package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +311 -311
  160. package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -190
  161. package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +133 -133
  162. package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -259
  163. package/vendor/Server/Skills/flutter-interface/README.md +75 -75
  164. package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -291
  165. package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -336
  166. package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -190
  167. package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -258
  168. package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -254
  169. package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +517 -517
  170. package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +381 -381
  171. package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +341 -341
  172. package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -71
  173. package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +518 -518
  174. package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +406 -406
  175. package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +652 -652
  176. package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +396 -396
  177. package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +744 -744
  178. package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +720 -720
  179. package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -414
  180. package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -150
  181. package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -304
  182. package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -265
  183. package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -286
  184. package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -383
  185. package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -165
  186. package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -91
  187. package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -127
  188. package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +453 -301
  189. package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_CHECKLIST.md +151 -0
  190. package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +257 -105
  191. package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +191 -127
  192. package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +317 -208
  193. package/vendor/Server/Skills/rn-code-check/SKILL.md +320 -320
  194. package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +234 -234
  195. package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +188 -188
  196. package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +246 -246
  197. package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -198
  198. package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -40
  199. package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -78
  200. package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -70
  201. package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -47
  202. package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -252
  203. package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -176
  204. package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -5
  205. package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -35
  206. package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -137
  207. package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -33
  208. package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -40
  209. package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -429
  210. package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -105
  211. package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -90
  212. package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -213
  213. package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -73
  214. package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -258
  215. package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -341
  216. package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -67
  217. package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -299
  218. package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -293
  219. package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -857
  220. package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -856
  221. package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -157
  222. package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -801
  223. package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +683 -683
  224. package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -233
  225. package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -1373
  226. package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -220
  227. package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -245
  228. package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -263
  229. package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -414
  230. package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -413
  231. package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -311
  232. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -355
  233. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -115
  234. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -139
  235. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -586
  236. package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -57
  237. package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -259
  238. package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -301
  239. package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -148
  240. package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -118
  241. package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -168
  242. package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -176
  243. package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -274
  244. package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -45
  245. package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -25
  246. package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -61
  247. package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -165
  248. package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -239
  249. package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -263
  250. package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -96
  251. package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +57 -57
  252. package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -99
  253. package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -64
  254. package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +74 -74
  255. package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -164
  256. package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +356 -339
  257. package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +85 -83
  258. package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +905 -859
  259. package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +124 -122
  260. package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +287 -279
  261. package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -273
  262. package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -129
  263. package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -581
  264. package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -138
  265. package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -168
  266. package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +526 -506
  267. package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +321 -280
  268. package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -221
  269. package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +220 -209
  270. package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -325
  271. package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -279
  272. package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -404
  273. package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -185
  274. package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -265
  275. package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -189
  276. package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -203
  277. package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -147
  278. package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -148
  279. package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -165
  280. package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -195
  281. package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -249
  282. package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -235
  283. package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -161
  284. package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -413
  285. package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -235
  286. package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -245
  287. package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -282
  288. package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -251
  289. package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -469
  290. package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -310
  291. package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -303
  292. package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -421
  293. package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -358
  294. package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -114
  295. package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -274
  296. package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -185
  297. package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -191
  298. package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -216
  299. package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -107
  300. package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -120
  301. package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -108
  302. package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -237
  303. package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -261
  304. package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -112
  305. package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +497 -497
  306. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -270
  307. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -164
  308. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -556
  309. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -459
  310. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -65
  311. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -512
  312. package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -132
  313. package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -424
  314. package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -137
  315. package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -306
  316. package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -485
  317. package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -172
  318. package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -422
  319. package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -95
  320. package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -169
  321. package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -554
  322. package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -106
  323. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -216
  324. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -413
  325. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -269
  326. package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -98
  327. package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -337
  328. package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -722
  329. package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -219
  330. package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -345
  331. package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -269
  332. package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -173
  333. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -267
  334. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -174
  335. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -111
  336. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -186
  337. package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -150
  338. package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -296
  339. package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -371
  340. package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -212
  341. package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -345
  342. package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -223
  343. package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -1053
  344. package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +295 -255
  345. package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +82 -77
  346. package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -224
  347. package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +175 -174
  348. package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -967
  349. package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -1798
  350. package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -5
  351. package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +180 -137
  352. package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -145
  353. package/vendor/Server/Skills/skill-generator/SKILL.md +365 -365
  354. package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -183
  355. package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -82
  356. package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -110
  357. package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -122
  358. package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -121
  359. package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -259
  360. package/vendor/Server/Skills/task-analysis/SKILL.md +234 -234
  361. package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -160
  362. package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -190
  363. package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -224
  364. package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -162
  365. package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -55
  366. package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -126
  367. package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -256
  368. package/vendor/Server/Skills/task-decomposition/SKILL.md +528 -528
  369. package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -451
  370. package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -179
  371. package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -152
  372. package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -175
  373. package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -195
  374. package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -226
  375. package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -263
  376. package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -29
  377. package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -376
  378. package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -259
  379. package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -216
  380. package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +424 -424
  381. package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -427
  382. package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -214
  383. package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -235
  384. package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -250
  385. package/vendor/Server/TestCheck/TestCheck.js +775 -775
  386. package/vendor/Server/TestCheck/index.js +11 -11
  387. package/vendor/Server/library/McpToolGuide.js +280 -280
  388. package/vendor/Server/library/StatsService.js +126 -126
  389. package/vendor/Server/library/cstTime.js +16 -16
  390. package/vendor/VERSION +3 -3
  391. package/workflows/pr-check.mjs +105 -105
  392. package/workflows/pr-push.mjs +192 -192
  393. package/vendor/Server/Agent/SkillSelector/types.js +0 -63
@@ -1,427 +1,427 @@
1
- ---
2
- name: tpc-cpp-check
3
- description: 检视 tpc_c_cplusplus 仓库适配库 PR 的规范性,包括编译脚本(HPKBUILD)、文档格式、目录结构、SHA512SUM 等,并输出结构化检视报告。当用户需要对 C/C++ 三方库 PR 进行规范性检视时调用。支持 GitCode 平台。仅基于 PR 差异和 API 获取文件内容进行检视,无需克隆整个仓库。
4
- license: Apache-2.0
5
- compatibility: 需要 curl、网络访问 GitCode API 的权限,无需 git clone
6
- metadata:
7
- version: "1.0.0"
8
- platform: gitcode
9
- libraryType: tpccplus
10
- ---
11
- # TpcCheckSkill — tpc_c_cplusplus 适配库 PR 规范性检视
12
-
13
- ## 概述
14
-
15
- 本 Skill 负责对 tpc_c_cplusplus 仓库中适配库 PR 进行规范性检视,包括编译脚本(HPKBUILD)、文档格式(README_zh.md、hap_integrate.md)、目录结构、SHA512SUM、README.OpenSource 等的合规性检查,输出结构化检视报告。
16
-
17
- **核心设计原则:仅基于 PR 内容进行检视,不克隆整个仓库。** 所有文件内容通过 GitCode API 按需获取,只审查 PR 中实际变更的文件。
18
-
19
- **关键特性**:
20
- - **零克隆**:通过 GitCode API 获取 PR diff 和文件内容,无需 `git clone`,大幅减少时间和资源消耗
21
- - 支持**增量检视**(已有库修改)和**全量检视**(新增库)两种模式
22
- - 重点检查 HPKBUILD 编译脚本的字段完整性、函数规范性、构建类型合规性
23
- - 检查文档格式与内容、SHA512SUM 校验、Patch 命名等
24
- - 输出按严重程度分级的结构化报告
25
-
26
- **重要:所有输出文档必须使用中文。**
27
-
28
- ---
29
-
30
- ## 任务参数
31
-
32
- | 参数 | 必需 | 说明 |
33
- |------|------|------|
34
- | `prUrl` | ✅ | PR 地址,如 `https://gitcode.com/tpc_c_cplusplus/thirdparty/pulls/123` |
35
- | `outputDir` | ✅ | 输出目录绝对路径,如 `/path/to/codecheck/owner_repo_pr123` |
36
- | `libraryType` | ❌ | 固定为 `tpccplus` |
37
- | `accessToken` | ❌ | GitCode API 访问令牌;GitCode API 强烈建议提供 |
38
- | `branch` | ❌ | 目标分支名;若提供则优先使用 |
39
-
40
- ---
41
-
42
- ## 工作流程
43
-
44
- ### Phase 1:信息收集(仅 API 调用,不克隆仓库)
45
-
46
- #### 1.1 解析 PR 地址
47
-
48
- 从 `prUrl` 提取:`platform`、`owner`、`repo`、`prNumber`。
49
-
50
- | 平台 | URL 模式 | API 支持 |
51
- |------|----------|----------|
52
- | GitCode | `https://gitcode.com/{owner}/{repo}/pulls/{num}` | ✅ **API 优先** |
53
- | Gitee | `https://gitee.com/{owner}/{repo}/pulls/{num}` | 部分 API |
54
- | GitHub | `https://github.com/{owner}/{repo}/pull/{num}` | API diff |
55
- | GitLab | `https://gitlab.com/{owner}/{repo}/-/merge_requests/{num}` | API diff |
56
-
57
- #### 1.2 获取 PR 元数据
58
-
59
- ```bash
60
- curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/pulls/{prNumber}?access_token={accessToken}"
61
- ```
62
-
63
- 提取:`title`、`base.ref`(目标分支)、`head.sha`、`user.name`、`created_at`、`state`
64
-
65
- #### 1.3 获取 PR 文件变更列表
66
-
67
- ```bash
68
- curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/pulls/{prNumber}/files?access_token={accessToken}&per_page=100"
69
- ```
70
-
71
- 返回 PR 中所有变更文件的列表,每个条目包含:
72
- - `filename`:文件路径
73
- - `status`:变更类型(added / modified / removed / renamed)
74
- - `additions`:新增行数
75
- - `deletions`:删除行数
76
- - `patch`:文件 diff 内容(若文件不大)
77
-
78
- > **分页处理**:若文件数超过 100,使用 `page` 参数翻页获取全部。
79
-
80
- #### 1.4 获取 PR Diff(完整补丁)
81
-
82
- ```bash
83
- curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/pulls/{prNumber}/diff?access_token={accessToken}" -o {outputDir}/pr.diff
84
- ```
85
-
86
- 或通过 commit patch 获取(适用于 squash merge 场景):
87
-
88
- ```bash
89
- curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/commit/{head.sha}/patch?access_token={accessToken}" -o {outputDir}/pr.patch
90
- ```
91
-
92
- > **注意**:commit 路径使用 `commit`(单数),不是 `commits`
93
-
94
- 将 diff/patch 保存到 `{outputDir}/pr.diff` 供后续分析。
95
-
96
- #### 1.5 按需获取文件内容(替代 git clone)
97
-
98
- **核心机制:只获取 PR 中变更的文件内容,不克隆整个仓库。**
99
-
100
- 对 PR 中每个变更的文件,通过 API 获取其内容:
101
-
102
- ```bash
103
- # 获取 PR head 分支上的文件内容(变更后的版本)
104
- curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/contents/{filePath}?ref={head.sha}&access_token={accessToken}"
105
- ```
106
-
107
- 返回 JSON 包含 `content` 字段(Base64 编码),解码后得到文件内容:
108
-
109
- ```bash
110
- echo "{content}" | base64 -d > {outputDir}/files/{filePath}
111
- ```
112
-
113
- > **大文件处理**:若文件超过 1MB,API 可能返回错误,此时使用 `?ref={head.sha}&download=true` 参数直接获取原始内容。
114
-
115
- 对于需要对比的情况(检查删除/修改的旧内容),可获取 base 分支上的文件:
116
-
117
- ```bash
118
- # 获取目标分支上的文件内容(变更前的版本)
119
- curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/contents/{filePath}?ref={base.ref}&access_token={accessToken}"
120
- ```
121
-
122
- #### 1.6 获取适配库目录结构(仅目录列表,不下载文件)
123
-
124
- 判断检视策略时需要知道 base 分支上是否已存在该库目录:
125
-
126
- ```bash
127
- # 查询 base 分支上的目录结构
128
- curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/contents/{libDir}?ref={base.ref}&access_token={accessToken}"
129
- ```
130
-
131
- 返回目录下的文件和子目录列表(仅名称和类型,不下载内容),用于:
132
- - 判断是**增量检视**还是**全量检视**
133
- - 增量检视时了解未变更文件是否存在(不获取其内容)
134
-
135
- > **注意**:API 返回的目录列表可能不完整(子目录深度有限),若需检查深层目录(如 `docs/pic/`),可单独请求子目录。
136
-
137
- ---
138
-
139
- ### Phase 2:差异分析与检视策略判断
140
-
141
- #### 2.1 识别变更的适配库目录
142
-
143
- 从 PR 文件变更列表(1.3 的返回结果)中提取变更文件路径,识别涉及的适配库目录:
144
- - `thirdparty/<libname>/` → thirdparty 类型的适配库
145
- - `community/<libname>/` → community 类型的适配库
146
-
147
- 若 PR 涉及多个适配库目录,需分别对每个库独立检视。
148
-
149
- #### 2.2 判断检视策略:增量 vs 全量
150
-
151
- **判断方法**:通过 1.6 步骤获取的 base 分支目录列表,判断该库目录是否已存在:
152
-
153
- - **目录存在** → 已有库的修改 → **增量检视**:仅检查 PR 中变更的文件的规范性
154
- - **目录不存在** → 新增库 → **全量检视**:对所有必需文件和可选文件进行完整合规性检查
155
-
156
- > **全量检视时的文件获取**:全量检视需要检查所有必需文件,对 PR 中未变更的必需文件,需通过 API 单独获取其内容进行审查。但若某必需文件既不在 PR 变更中,也不在 base 分支上,则记录为"缺失"问题。
157
-
158
- #### 2.3 统计改动规模
159
-
160
- 从 PR 文件变更列表统计:文件数、新增/删除行数、变更类型分布。
161
-
162
- #### 2.4 获取变更文件的完整内容
163
-
164
- 对 Phase 3 检视需要审查的每个文件,按 1.5 的方法获取其完整内容并保存到 `{outputDir}/files/` 目录下。
165
-
166
- **按需获取原则**:
167
- - HPKBUILD:必须获取完整内容
168
- - SHA512SUM:必须获取完整内容
169
- - README.OpenSource:必须获取完整内容
170
- - README_zh.md:必须获取完整内容
171
- - docs/hap_integrate.md:若 PR 变更了此文件或为全量检视,获取完整内容
172
- - HPKCHECK:若存在,获取完整内容
173
- - OAT.xml:仅检查是否存在,不获取内容
174
- - Patch 文件:若 PR 变更了 patch,获取完整内容
175
-
176
- ---
177
-
178
- ### Phase 3:规范性检视
179
-
180
- > 详细检查项参见 [references/CHECKLIST.md](references/CHECKLIST.md)
181
-
182
- #### 3.1 目录结构检查
183
-
184
- **thirdparty 适配库必需文件**:
185
-
186
- | 文件 | 必需性 | 检查方式 |
187
- |------|--------|----------|
188
- | HPKBUILD | **必需** | PR 变更内容 + API |
189
- | SHA512SUM | **必需** | PR 变更内容 + API |
190
- | README.OpenSource | **必需** | PR 变更内容 + API |
191
- | README_zh.md | **必需** | PR 变更内容 + API |
192
- | docs/ | **必需** | 目录列表 API |
193
- | docs/hap_integrate.md | **必需** | PR 变更内容 + API |
194
- | docs/pic/ | 有文档时必需 | 目录列表 API |
195
- | HPKCHECK | 建议 | 目录列表 API |
196
- | OAT.xml | 建议 | 目录列表 API |
197
-
198
- **community 适配库必需文件**:
199
-
200
- | 文件 | 必需性 | 检查方式 |
201
- |------|--------|----------|
202
- | HPKBUILD | **必需** | PR 变更内容 + API |
203
- | SHA512SUM | **必需** | PR 变更内容 + API |
204
-
205
- 其余文件为可选但建议有。
206
-
207
- > **增量检视**:仅检查 PR 中变更的文件是否存在规范性问题,不对未变更的文件提出缺失问题。
208
- >
209
- > **全量检视**:对所有必需文件进行完整性检查,缺失的必需文件记为 Critical 问题。
210
-
211
- #### 3.2 HPKBUILD 检查(重点维度)
212
-
213
- 读取通过 API 获取的 HPKBUILD 文件完整内容,逐项检查。
214
-
215
- **必需字段**:
216
-
217
- | 字段 | 必需 | 说明 |
218
- |------|------|------|
219
- | `pkgname` | 必需 | 与目录名一致 |
220
- | `pkgver` | 必需 | 上游版本号,与上游 tag 一致;**不能是 `master`** |
221
- | `pkgrel` | 必需 | 发布号,默认 0 |
222
- | `pkgdesc` | 必需 | 简短描述 |
223
- | `url` | 必需 | 上游官网链接 |
224
- | `archs` | 必需 | 必须包含 `armeabi-v7a` `arm64-v8a` `x86_64` |
225
- | `license` | 必需 | 许可证数组 |
226
- | `depends` | 必需 | 依赖库名数组 |
227
- | `makedepends` | 必需 | 构建依赖数组 |
228
- | `source` | 必需 | 源码下载链接 |
229
- | `downloadpackage` | 必需 | true/false |
230
- | `autounpack` | 必需 | true/false |
231
- | `builddir` | 必需 | 解压后目录名 |
232
- | `packagename` | 必需 | 压缩包名 |
233
-
234
- **pkgver 版本号规范**:
235
- 1. 必须与上游 tag 名称一致(含 `v` 前缀)
236
- 2. 不能是 `master`,无合适 release tag 时应使用 commit hash
237
- 3. commit hash 作为 pkgver 时,不应使用额外的 `commitid` 变量
238
- 4. pkgver 与 builddir 的关系:不带 `v` → `builddir=$pkgname-${pkgver}`;带 `v` → `builddir=$pkgname-${pkgver:1}`
239
-
240
- **必需函数**:`prepare()`、`build()`、`package()`、`check()`、`cleanbuild()`
241
-
242
- **构建类型检查**:
243
-
244
- | buildtools | 必须包含 |
245
- |------------|----------|
246
- | cmake | 使用 `${OHOS_SDK}/native/build-tools/cmake/bin/cmake`,`-DOHOS_ARCH=$ARCH` |
247
- | configure | `source envset.sh`,`setXXXENV`/`unsetXXXENV` |
248
- | automake | `source envset.sh`,`setXXXENV`/`unsetXXXENV` |
249
- | make | `source envset.sh`,使用 `$CC` |
250
- | meson | `source envset.sh`,`--cross-file`,`ninja -C` |
251
-
252
- **必需头部**:Apache 2.0 许可证头部 + Contributor/Maintainer 信息
253
-
254
- > 详细检查项参见 [references/HPKBUILD_GUIDE.md](references/HPKBUILD_GUIDE.md)
255
-
256
- #### 3.3 SHA512SUM 检查
257
-
258
- 读取通过 API 获取的 SHA512SUM 文件完整内容,检查:
259
-
260
- - 每行格式:`<128字符SHA512哈希> <文件名>`
261
- - 必须包含源码压缩包校验值
262
- - 如有 patch 文件,也必须包含其校验值
263
-
264
- #### 3.4 README.OpenSource 检查
265
-
266
- 读取通过 API 获取的 README.OpenSource 文件完整内容,检查:
267
-
268
- - 必须是合法 JSON 数组
269
- - 每个对象必须包含:Name、License、License File、Version Number、Owner、Upstream URL、Description
270
- - Name 应与 pkgname 一致,Version Number 应与 pkgver 对应
271
-
272
- #### 3.5 README_zh.md 检查
273
-
274
- 读取通过 API 获取的 README_zh.md 文件完整内容,检查:
275
-
276
- 必须包含章节:功能简介、三方库版本、已适配功能、使用约束(链接到 `../../docs/constraint.md`)、集成方式(链接到 `docs/hap_integrate.md`)
277
-
278
- #### 3.6 docs/hap_integrate.md 检查
279
-
280
- 读取通过 API 获取的 docs/hap_integrate.md 文件完整内容,检查:
281
-
282
- 必须包含章节:准备应用工程、准备应用开发环境(链接到 `../../../docs/hap_integrate_environment.md`)、增加构建脚本及配置文件、准备三方库源码、应用中使用三方库、编译工程、运行效果、参考资料
283
-
284
- #### 3.7 可选文件检查
285
-
286
- - **OAT.xml**:仅通过目录列表 API 检查文件是否存在
287
- - **HPKCHECK**:若存在,通过 API 获取完整内容,检查 `source HPKBUILD` 行、`openharmonycheck()` 函数名、`cd $OLDPWD` 和 `return $res`
288
- - **Patch 文件**:命名格式 `<libname>_oh_pkg.patch` / `<libname>_oh_test.patch`,SHA512SUM 中有校验值
289
-
290
- ---
291
-
292
- ### Phase 4:问题分级与影响分析
293
-
294
- #### 4.1 严重程度定义
295
-
296
- | 级别 | 含义 | 合入影响 |
297
- |------|------|----------|
298
- | **严重 (Critical)** | 缺失必需文件、JSON/XML 格式错误、构建脚本核心函数缺失或错误 | **阻断合入** |
299
- | **重要 (Major)** | 必需字段缺失或值不正确、文档章节缺失、链接路径错误 | **阻断合入** |
300
- | **一般 (Minor)** | 建议项缺失(如 HPKCHECK、OAT.xml)、描述不够详尽 | 可后续迭代 |
301
- | **表面 (Cosmetic)** | 拼写小错误、格式风格不一致 | 可后续迭代 |
302
-
303
- #### 4.2 合入阻断规则
304
-
305
- **严重 (Critical) 和重要 (Major) 问题为合入前置条件,必须在 PR 合入前全部修复,否则不予批准合入。**
306
-
307
- ---
308
-
309
- ### Phase 5:生成检视报告
310
-
311
- 输出文件:
312
- - `{outputDir}/check-report.md` — 检视报告
313
- - `{outputDir}/changed-files.txt` — 修改文件列表
314
- - `{outputDir}/result.txt` — 合入建议分级结果
315
-
316
- > 报告格式参见 [references/REPORT_TEMPLATE.md](references/REPORT_TEMPLATE.md)
317
-
318
- #### 5.1 合入建议分级标准
319
-
320
- 根据检视结果,将合入建议分为四个等级:
321
-
322
- | 等级 | 标识 | 颜色建议 | 判断标准 | 举例场景 |
323
- |------|------|----------|----------|----------|
324
- | **建议合入** | ✅ `PASS` | 绿色 | 无或极少(≤2 Minor)问题,改动风险低 | 纯文档更新、配置优化 |
325
- | **条件合入** | ⚠️ `CONDITIONAL` | 黄色 | 存在少量(≤3 Major)可修复问题 | 需补充文档章节、链接路径错误 |
326
- | **修改后合入** | 🔧 `NEED_FIX` | 橙色 | 存在较多问题(≥1 Critical 或 ≥4 Major),需修复后方可合入 | HPKBUILD 核心函数缺失、必需文件缺失 |
327
- | **不允许合入** | ❌ `REJECT` | 红色 | 存在严重问题(≥2 Critical),影响构建/功能/安全 | 多个必需文件缺失、构建脚本严重错误 |
328
-
329
- **分级判断流程**:
330
-
331
- ```
332
- 统计问题数量:
333
- - Critical 级别问题数
334
- - Major 级别问题数
335
- - Minor 级别问题数
336
-
337
- 判断逻辑:
338
- IF Critical ≥ 2 → ❌ REJECT
339
- IF Critical ≥ 1 → 🔧 NEED_FIX
340
- IF Major ≥ 4 → 🔧 NEED_FIX
341
- IF Major ≥ 1 → ⚠️ CONDITIONAL
342
- IF Minor ≤ 2 → ✅ PASS
343
- ELSE → ⚠️ CONDITIONAL
344
- ```
345
-
346
- #### 5.2 result.txt 文件格式
347
-
348
- `result.txt` 用于存储分级结果和统计信息,格式如下:
349
-
350
- ```txt
351
- === 合入建议分级报告 ===
352
- PR 地址:{prUrl}
353
- 仓库:{owner}/{repo}
354
- PR 编号:#{prNumber}
355
- 生成时间:{YYYY-MM-DD HH:mm:ss}
356
-
357
- 【合入建议】:✅ 建议合入
358
-
359
- 【问题统计】
360
- - Critical 级别:0 个
361
- - Major 级别:0 个
362
- - Minor 级别:2 个
363
-
364
- 【分级理由】
365
- 本次修改仅包含少量 Minor 级别优化建议,无功能性问题,改动风险低,建议直接合入。
366
-
367
- 【详细分析】
368
- ━━━ Critical 级别问题 ━━━
369
- {列出所有 Critical 问题,每个占一行}
370
-
371
- ━━━ Major 级别问题 ━━━
372
- {列出所有 Major 问题,每个占一行}
373
-
374
- ━━━ Minor 级别问题 ━━━
375
- 1. [文件类型:建议项] 缺少 HPKCHECK 测试脚本(建议补充)
376
- 2. [文件类型:建议项] 缺少 OAT.xml 合规审计配置(建议补充)
377
-
378
- ━━━ 合入建议 ━━━
379
- 建议合入:本次修改质量良好,无功能性风险。
380
-
381
- === 分级结束 ===
382
- ```
383
-
384
- #### 5.3 结构化指标输出(必须执行)
385
-
386
- 执行环境会在任务 prompt 中下发一个**结构化指标文件输出路径**(`stepId{X}_loop{L}_meta_{N}.json`)。
387
- 检视完成后,**必须**将分级结果以下述 JSON 对象写入该路径:
388
-
389
- ```json
390
- {
391
- "mergeLevel": "PASS | CONDITIONAL | NEED_FIX | REJECT",
392
- "critical": 0,
393
- "major": 0,
394
- "minor": 0
395
- }
396
- ```
397
-
398
- | 字段 | 类型 | 说明 |
399
- |------|------|------|
400
- | `mergeLevel` | string | 合入等级:PASS / CONDITIONAL / NEED_FIX / REJECT |
401
- | `critical` | number | Critical 级别问题数 |
402
- | `major` | number | Major 级别问题数 |
403
- | `minor` | number | Minor 级别问题数 |
404
-
405
- **说明**:该文件由执行框架自动收割入库(前端/历史列表直接读取,无需解析报告文本);详细的统计与理由已在 `result.txt` 中完整记录。若 prompt 未下发该路径则跳过本节。
406
-
407
- ---
408
-
409
- ## 注意事项
410
-
411
- 1. **不克隆仓库**:所有文件内容通过 GitCode API 按需获取,只获取 PR 中变更的文件和检视必需的文件,大幅减少时间和资源消耗
412
- 2. **API 限流**:GitCode API 有调用频率限制,建议提供 `accessToken` 以提高限额;无 Token 时注意控制请求频率
413
- 3. **增量检视范围**:仅检查 PR 变更的文件,不对未修改的文件提出缺失问题
414
- 4. **预存问题不在增量检视范围内**:增量检视不纳入仓库中已存在的问题
415
- 5. **报告文件名必须是 `check-report.md`**,路径在 `{outputDir}` 下
416
- 6. **所有输出文档必须使用中文**
417
- 7. **pkgver 不能是 `master`**:这是历史遗留模式,新增或修改的适配库不应再使用
418
- 8. **大文件处理**:若 API 返回的文件内容为 Base64 编码且超过 1MB,应使用 download 参数获取原始内容
419
- 9. **Base64 解码**:GitCode API contents 端点返回的 `content` 字段为 Base64 编码,需解码后才是文件原始内容
420
-
421
- ---
422
-
423
- ## 参考文档
424
-
425
- - [规范性检查清单](references/CHECKLIST.md)
426
- - [HPKBUILD 详细检查指南](references/HPKBUILD_GUIDE.md)
427
- - [检视报告模板](references/REPORT_TEMPLATE.md)
1
+ ---
2
+ name: tpc-cpp-check
3
+ description: 检视 tpc_c_cplusplus 仓库适配库 PR 的规范性,包括编译脚本(HPKBUILD)、文档格式、目录结构、SHA512SUM 等,并输出结构化检视报告。当用户需要对 C/C++ 三方库 PR 进行规范性检视时调用。支持 GitCode 平台。仅基于 PR 差异和 API 获取文件内容进行检视,无需克隆整个仓库。
4
+ license: Apache-2.0
5
+ compatibility: 需要 curl、网络访问 GitCode API 的权限,无需 git clone
6
+ metadata:
7
+ version: "1.0.0"
8
+ platform: gitcode
9
+ libraryType: tpccplus
10
+ ---
11
+ # TpcCheckSkill — tpc_c_cplusplus 适配库 PR 规范性检视
12
+
13
+ ## 概述
14
+
15
+ 本 Skill 负责对 tpc_c_cplusplus 仓库中适配库 PR 进行规范性检视,包括编译脚本(HPKBUILD)、文档格式(README_zh.md、hap_integrate.md)、目录结构、SHA512SUM、README.OpenSource 等的合规性检查,输出结构化检视报告。
16
+
17
+ **核心设计原则:仅基于 PR 内容进行检视,不克隆整个仓库。** 所有文件内容通过 GitCode API 按需获取,只审查 PR 中实际变更的文件。
18
+
19
+ **关键特性**:
20
+ - **零克隆**:通过 GitCode API 获取 PR diff 和文件内容,无需 `git clone`,大幅减少时间和资源消耗
21
+ - 支持**增量检视**(已有库修改)和**全量检视**(新增库)两种模式
22
+ - 重点检查 HPKBUILD 编译脚本的字段完整性、函数规范性、构建类型合规性
23
+ - 检查文档格式与内容、SHA512SUM 校验、Patch 命名等
24
+ - 输出按严重程度分级的结构化报告
25
+
26
+ **重要:所有输出文档必须使用中文。**
27
+
28
+ ---
29
+
30
+ ## 任务参数
31
+
32
+ | 参数 | 必需 | 说明 |
33
+ |------|------|------|
34
+ | `prUrl` | ✅ | PR 地址,如 `https://gitcode.com/tpc_c_cplusplus/thirdparty/pulls/123` |
35
+ | `outputDir` | ✅ | 输出目录绝对路径,如 `/path/to/codecheck/owner_repo_pr123` |
36
+ | `libraryType` | ❌ | 固定为 `tpccplus` |
37
+ | `accessToken` | ❌ | GitCode API 访问令牌;GitCode API 强烈建议提供 |
38
+ | `branch` | ❌ | 目标分支名;若提供则优先使用 |
39
+
40
+ ---
41
+
42
+ ## 工作流程
43
+
44
+ ### Phase 1:信息收集(仅 API 调用,不克隆仓库)
45
+
46
+ #### 1.1 解析 PR 地址
47
+
48
+ 从 `prUrl` 提取:`platform`、`owner`、`repo`、`prNumber`。
49
+
50
+ | 平台 | URL 模式 | API 支持 |
51
+ |------|----------|----------|
52
+ | GitCode | `https://gitcode.com/{owner}/{repo}/pulls/{num}` | ✅ **API 优先** |
53
+ | Gitee | `https://gitee.com/{owner}/{repo}/pulls/{num}` | 部分 API |
54
+ | GitHub | `https://github.com/{owner}/{repo}/pull/{num}` | API diff |
55
+ | GitLab | `https://gitlab.com/{owner}/{repo}/-/merge_requests/{num}` | API diff |
56
+
57
+ #### 1.2 获取 PR 元数据
58
+
59
+ ```bash
60
+ curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/pulls/{prNumber}?access_token={accessToken}"
61
+ ```
62
+
63
+ 提取:`title`、`base.ref`(目标分支)、`head.sha`、`user.name`、`created_at`、`state`
64
+
65
+ #### 1.3 获取 PR 文件变更列表
66
+
67
+ ```bash
68
+ curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/pulls/{prNumber}/files?access_token={accessToken}&per_page=100"
69
+ ```
70
+
71
+ 返回 PR 中所有变更文件的列表,每个条目包含:
72
+ - `filename`:文件路径
73
+ - `status`:变更类型(added / modified / removed / renamed)
74
+ - `additions`:新增行数
75
+ - `deletions`:删除行数
76
+ - `patch`:文件 diff 内容(若文件不大)
77
+
78
+ > **分页处理**:若文件数超过 100,使用 `page` 参数翻页获取全部。
79
+
80
+ #### 1.4 获取 PR Diff(完整补丁)
81
+
82
+ ```bash
83
+ curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/pulls/{prNumber}/diff?access_token={accessToken}" -o {outputDir}/pr.diff
84
+ ```
85
+
86
+ 或通过 commit patch 获取(适用于 squash merge 场景):
87
+
88
+ ```bash
89
+ curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/commit/{head.sha}/patch?access_token={accessToken}" -o {outputDir}/pr.patch
90
+ ```
91
+
92
+ > **注意**:commit 路径使用 `commit`(单数),不是 `commits`
93
+
94
+ 将 diff/patch 保存到 `{outputDir}/pr.diff` 供后续分析。
95
+
96
+ #### 1.5 按需获取文件内容(替代 git clone)
97
+
98
+ **核心机制:只获取 PR 中变更的文件内容,不克隆整个仓库。**
99
+
100
+ 对 PR 中每个变更的文件,通过 API 获取其内容:
101
+
102
+ ```bash
103
+ # 获取 PR head 分支上的文件内容(变更后的版本)
104
+ curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/contents/{filePath}?ref={head.sha}&access_token={accessToken}"
105
+ ```
106
+
107
+ 返回 JSON 包含 `content` 字段(Base64 编码),解码后得到文件内容:
108
+
109
+ ```bash
110
+ echo "{content}" | base64 -d > {outputDir}/files/{filePath}
111
+ ```
112
+
113
+ > **大文件处理**:若文件超过 1MB,API 可能返回错误,此时使用 `?ref={head.sha}&download=true` 参数直接获取原始内容。
114
+
115
+ 对于需要对比的情况(检查删除/修改的旧内容),可获取 base 分支上的文件:
116
+
117
+ ```bash
118
+ # 获取目标分支上的文件内容(变更前的版本)
119
+ curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/contents/{filePath}?ref={base.ref}&access_token={accessToken}"
120
+ ```
121
+
122
+ #### 1.6 获取适配库目录结构(仅目录列表,不下载文件)
123
+
124
+ 判断检视策略时需要知道 base 分支上是否已存在该库目录:
125
+
126
+ ```bash
127
+ # 查询 base 分支上的目录结构
128
+ curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/contents/{libDir}?ref={base.ref}&access_token={accessToken}"
129
+ ```
130
+
131
+ 返回目录下的文件和子目录列表(仅名称和类型,不下载内容),用于:
132
+ - 判断是**增量检视**还是**全量检视**
133
+ - 增量检视时了解未变更文件是否存在(不获取其内容)
134
+
135
+ > **注意**:API 返回的目录列表可能不完整(子目录深度有限),若需检查深层目录(如 `docs/pic/`),可单独请求子目录。
136
+
137
+ ---
138
+
139
+ ### Phase 2:差异分析与检视策略判断
140
+
141
+ #### 2.1 识别变更的适配库目录
142
+
143
+ 从 PR 文件变更列表(1.3 的返回结果)中提取变更文件路径,识别涉及的适配库目录:
144
+ - `thirdparty/<libname>/` → thirdparty 类型的适配库
145
+ - `community/<libname>/` → community 类型的适配库
146
+
147
+ 若 PR 涉及多个适配库目录,需分别对每个库独立检视。
148
+
149
+ #### 2.2 判断检视策略:增量 vs 全量
150
+
151
+ **判断方法**:通过 1.6 步骤获取的 base 分支目录列表,判断该库目录是否已存在:
152
+
153
+ - **目录存在** → 已有库的修改 → **增量检视**:仅检查 PR 中变更的文件的规范性
154
+ - **目录不存在** → 新增库 → **全量检视**:对所有必需文件和可选文件进行完整合规性检查
155
+
156
+ > **全量检视时的文件获取**:全量检视需要检查所有必需文件,对 PR 中未变更的必需文件,需通过 API 单独获取其内容进行审查。但若某必需文件既不在 PR 变更中,也不在 base 分支上,则记录为"缺失"问题。
157
+
158
+ #### 2.3 统计改动规模
159
+
160
+ 从 PR 文件变更列表统计:文件数、新增/删除行数、变更类型分布。
161
+
162
+ #### 2.4 获取变更文件的完整内容
163
+
164
+ 对 Phase 3 检视需要审查的每个文件,按 1.5 的方法获取其完整内容并保存到 `{outputDir}/files/` 目录下。
165
+
166
+ **按需获取原则**:
167
+ - HPKBUILD:必须获取完整内容
168
+ - SHA512SUM:必须获取完整内容
169
+ - README.OpenSource:必须获取完整内容
170
+ - README_zh.md:必须获取完整内容
171
+ - docs/hap_integrate.md:若 PR 变更了此文件或为全量检视,获取完整内容
172
+ - HPKCHECK:若存在,获取完整内容
173
+ - OAT.xml:仅检查是否存在,不获取内容
174
+ - Patch 文件:若 PR 变更了 patch,获取完整内容
175
+
176
+ ---
177
+
178
+ ### Phase 3:规范性检视
179
+
180
+ > 详细检查项参见 [references/CHECKLIST.md](references/CHECKLIST.md)
181
+
182
+ #### 3.1 目录结构检查
183
+
184
+ **thirdparty 适配库必需文件**:
185
+
186
+ | 文件 | 必需性 | 检查方式 |
187
+ |------|--------|----------|
188
+ | HPKBUILD | **必需** | PR 变更内容 + API |
189
+ | SHA512SUM | **必需** | PR 变更内容 + API |
190
+ | README.OpenSource | **必需** | PR 变更内容 + API |
191
+ | README_zh.md | **必需** | PR 变更内容 + API |
192
+ | docs/ | **必需** | 目录列表 API |
193
+ | docs/hap_integrate.md | **必需** | PR 变更内容 + API |
194
+ | docs/pic/ | 有文档时必需 | 目录列表 API |
195
+ | HPKCHECK | 建议 | 目录列表 API |
196
+ | OAT.xml | 建议 | 目录列表 API |
197
+
198
+ **community 适配库必需文件**:
199
+
200
+ | 文件 | 必需性 | 检查方式 |
201
+ |------|--------|----------|
202
+ | HPKBUILD | **必需** | PR 变更内容 + API |
203
+ | SHA512SUM | **必需** | PR 变更内容 + API |
204
+
205
+ 其余文件为可选但建议有。
206
+
207
+ > **增量检视**:仅检查 PR 中变更的文件是否存在规范性问题,不对未变更的文件提出缺失问题。
208
+ >
209
+ > **全量检视**:对所有必需文件进行完整性检查,缺失的必需文件记为 Critical 问题。
210
+
211
+ #### 3.2 HPKBUILD 检查(重点维度)
212
+
213
+ 读取通过 API 获取的 HPKBUILD 文件完整内容,逐项检查。
214
+
215
+ **必需字段**:
216
+
217
+ | 字段 | 必需 | 说明 |
218
+ |------|------|------|
219
+ | `pkgname` | 必需 | 与目录名一致 |
220
+ | `pkgver` | 必需 | 上游版本号,与上游 tag 一致;**不能是 `master`** |
221
+ | `pkgrel` | 必需 | 发布号,默认 0 |
222
+ | `pkgdesc` | 必需 | 简短描述 |
223
+ | `url` | 必需 | 上游官网链接 |
224
+ | `archs` | 必需 | 必须包含 `armeabi-v7a` `arm64-v8a` `x86_64` |
225
+ | `license` | 必需 | 许可证数组 |
226
+ | `depends` | 必需 | 依赖库名数组 |
227
+ | `makedepends` | 必需 | 构建依赖数组 |
228
+ | `source` | 必需 | 源码下载链接 |
229
+ | `downloadpackage` | 必需 | true/false |
230
+ | `autounpack` | 必需 | true/false |
231
+ | `builddir` | 必需 | 解压后目录名 |
232
+ | `packagename` | 必需 | 压缩包名 |
233
+
234
+ **pkgver 版本号规范**:
235
+ 1. 必须与上游 tag 名称一致(含 `v` 前缀)
236
+ 2. 不能是 `master`,无合适 release tag 时应使用 commit hash
237
+ 3. commit hash 作为 pkgver 时,不应使用额外的 `commitid` 变量
238
+ 4. pkgver 与 builddir 的关系:不带 `v` → `builddir=$pkgname-${pkgver}`;带 `v` → `builddir=$pkgname-${pkgver:1}`
239
+
240
+ **必需函数**:`prepare()`、`build()`、`package()`、`check()`、`cleanbuild()`
241
+
242
+ **构建类型检查**:
243
+
244
+ | buildtools | 必须包含 |
245
+ |------------|----------|
246
+ | cmake | 使用 `${OHOS_SDK}/native/build-tools/cmake/bin/cmake`,`-DOHOS_ARCH=$ARCH` |
247
+ | configure | `source envset.sh`,`setXXXENV`/`unsetXXXENV` |
248
+ | automake | `source envset.sh`,`setXXXENV`/`unsetXXXENV` |
249
+ | make | `source envset.sh`,使用 `$CC` |
250
+ | meson | `source envset.sh`,`--cross-file`,`ninja -C` |
251
+
252
+ **必需头部**:Apache 2.0 许可证头部 + Contributor/Maintainer 信息
253
+
254
+ > 详细检查项参见 [references/HPKBUILD_GUIDE.md](references/HPKBUILD_GUIDE.md)
255
+
256
+ #### 3.3 SHA512SUM 检查
257
+
258
+ 读取通过 API 获取的 SHA512SUM 文件完整内容,检查:
259
+
260
+ - 每行格式:`<128字符SHA512哈希> <文件名>`
261
+ - 必须包含源码压缩包校验值
262
+ - 如有 patch 文件,也必须包含其校验值
263
+
264
+ #### 3.4 README.OpenSource 检查
265
+
266
+ 读取通过 API 获取的 README.OpenSource 文件完整内容,检查:
267
+
268
+ - 必须是合法 JSON 数组
269
+ - 每个对象必须包含:Name、License、License File、Version Number、Owner、Upstream URL、Description
270
+ - Name 应与 pkgname 一致,Version Number 应与 pkgver 对应
271
+
272
+ #### 3.5 README_zh.md 检查
273
+
274
+ 读取通过 API 获取的 README_zh.md 文件完整内容,检查:
275
+
276
+ 必须包含章节:功能简介、三方库版本、已适配功能、使用约束(链接到 `../../docs/constraint.md`)、集成方式(链接到 `docs/hap_integrate.md`)
277
+
278
+ #### 3.6 docs/hap_integrate.md 检查
279
+
280
+ 读取通过 API 获取的 docs/hap_integrate.md 文件完整内容,检查:
281
+
282
+ 必须包含章节:准备应用工程、准备应用开发环境(链接到 `../../../docs/hap_integrate_environment.md`)、增加构建脚本及配置文件、准备三方库源码、应用中使用三方库、编译工程、运行效果、参考资料
283
+
284
+ #### 3.7 可选文件检查
285
+
286
+ - **OAT.xml**:仅通过目录列表 API 检查文件是否存在
287
+ - **HPKCHECK**:若存在,通过 API 获取完整内容,检查 `source HPKBUILD` 行、`openharmonycheck()` 函数名、`cd $OLDPWD` 和 `return $res`
288
+ - **Patch 文件**:命名格式 `<libname>_oh_pkg.patch` / `<libname>_oh_test.patch`,SHA512SUM 中有校验值
289
+
290
+ ---
291
+
292
+ ### Phase 4:问题分级与影响分析
293
+
294
+ #### 4.1 严重程度定义
295
+
296
+ | 级别 | 含义 | 合入影响 |
297
+ |------|------|----------|
298
+ | **严重 (Critical)** | 缺失必需文件、JSON/XML 格式错误、构建脚本核心函数缺失或错误 | **阻断合入** |
299
+ | **重要 (Major)** | 必需字段缺失或值不正确、文档章节缺失、链接路径错误 | **阻断合入** |
300
+ | **一般 (Minor)** | 建议项缺失(如 HPKCHECK、OAT.xml)、描述不够详尽 | 可后续迭代 |
301
+ | **表面 (Cosmetic)** | 拼写小错误、格式风格不一致 | 可后续迭代 |
302
+
303
+ #### 4.2 合入阻断规则
304
+
305
+ **严重 (Critical) 和重要 (Major) 问题为合入前置条件,必须在 PR 合入前全部修复,否则不予批准合入。**
306
+
307
+ ---
308
+
309
+ ### Phase 5:生成检视报告
310
+
311
+ 输出文件:
312
+ - `{outputDir}/check-report.md` — 检视报告
313
+ - `{outputDir}/changed-files.txt` — 修改文件列表
314
+ - `{outputDir}/result.txt` — 合入建议分级结果
315
+
316
+ > 报告格式参见 [references/REPORT_TEMPLATE.md](references/REPORT_TEMPLATE.md)
317
+
318
+ #### 5.1 合入建议分级标准
319
+
320
+ 根据检视结果,将合入建议分为四个等级:
321
+
322
+ | 等级 | 标识 | 颜色建议 | 判断标准 | 举例场景 |
323
+ |------|------|----------|----------|----------|
324
+ | **建议合入** | ✅ `PASS` | 绿色 | 无或极少(≤2 Minor)问题,改动风险低 | 纯文档更新、配置优化 |
325
+ | **条件合入** | ⚠️ `CONDITIONAL` | 黄色 | 存在少量(≤3 Major)可修复问题 | 需补充文档章节、链接路径错误 |
326
+ | **修改后合入** | 🔧 `NEED_FIX` | 橙色 | 存在较多问题(≥1 Critical 或 ≥4 Major),需修复后方可合入 | HPKBUILD 核心函数缺失、必需文件缺失 |
327
+ | **不允许合入** | ❌ `REJECT` | 红色 | 存在严重问题(≥2 Critical),影响构建/功能/安全 | 多个必需文件缺失、构建脚本严重错误 |
328
+
329
+ **分级判断流程**:
330
+
331
+ ```
332
+ 统计问题数量:
333
+ - Critical 级别问题数
334
+ - Major 级别问题数
335
+ - Minor 级别问题数
336
+
337
+ 判断逻辑:
338
+ IF Critical ≥ 2 → ❌ REJECT
339
+ IF Critical ≥ 1 → 🔧 NEED_FIX
340
+ IF Major ≥ 4 → 🔧 NEED_FIX
341
+ IF Major ≥ 1 → ⚠️ CONDITIONAL
342
+ IF Minor ≤ 2 → ✅ PASS
343
+ ELSE → ⚠️ CONDITIONAL
344
+ ```
345
+
346
+ #### 5.2 result.txt 文件格式
347
+
348
+ `result.txt` 用于存储分级结果和统计信息,格式如下:
349
+
350
+ ```txt
351
+ === 合入建议分级报告 ===
352
+ PR 地址:{prUrl}
353
+ 仓库:{owner}/{repo}
354
+ PR 编号:#{prNumber}
355
+ 生成时间:{YYYY-MM-DD HH:mm:ss}
356
+
357
+ 【合入建议】:✅ 建议合入
358
+
359
+ 【问题统计】
360
+ - Critical 级别:0 个
361
+ - Major 级别:0 个
362
+ - Minor 级别:2 个
363
+
364
+ 【分级理由】
365
+ 本次修改仅包含少量 Minor 级别优化建议,无功能性问题,改动风险低,建议直接合入。
366
+
367
+ 【详细分析】
368
+ ━━━ Critical 级别问题 ━━━
369
+ {列出所有 Critical 问题,每个占一行}
370
+
371
+ ━━━ Major 级别问题 ━━━
372
+ {列出所有 Major 问题,每个占一行}
373
+
374
+ ━━━ Minor 级别问题 ━━━
375
+ 1. [文件类型:建议项] 缺少 HPKCHECK 测试脚本(建议补充)
376
+ 2. [文件类型:建议项] 缺少 OAT.xml 合规审计配置(建议补充)
377
+
378
+ ━━━ 合入建议 ━━━
379
+ 建议合入:本次修改质量良好,无功能性风险。
380
+
381
+ === 分级结束 ===
382
+ ```
383
+
384
+ #### 5.3 结构化指标输出(必须执行)
385
+
386
+ 执行环境会在任务 prompt 中下发一个**结构化指标文件输出路径**(`stepId{X}_loop{L}_meta_{N}.json`)。
387
+ 检视完成后,**必须**将分级结果以下述 JSON 对象写入该路径:
388
+
389
+ ```json
390
+ {
391
+ "mergeLevel": "PASS | CONDITIONAL | NEED_FIX | REJECT",
392
+ "critical": 0,
393
+ "major": 0,
394
+ "minor": 0
395
+ }
396
+ ```
397
+
398
+ | 字段 | 类型 | 说明 |
399
+ |------|------|------|
400
+ | `mergeLevel` | string | 合入等级:PASS / CONDITIONAL / NEED_FIX / REJECT |
401
+ | `critical` | number | Critical 级别问题数 |
402
+ | `major` | number | Major 级别问题数 |
403
+ | `minor` | number | Minor 级别问题数 |
404
+
405
+ **说明**:该文件由执行框架自动收割入库(前端/历史列表直接读取,无需解析报告文本);详细的统计与理由已在 `result.txt` 中完整记录。若 prompt 未下发该路径则跳过本节。
406
+
407
+ ---
408
+
409
+ ## 注意事项
410
+
411
+ 1. **不克隆仓库**:所有文件内容通过 GitCode API 按需获取,只获取 PR 中变更的文件和检视必需的文件,大幅减少时间和资源消耗
412
+ 2. **API 限流**:GitCode API 有调用频率限制,建议提供 `accessToken` 以提高限额;无 Token 时注意控制请求频率
413
+ 3. **增量检视范围**:仅检查 PR 变更的文件,不对未修改的文件提出缺失问题
414
+ 4. **预存问题不在增量检视范围内**:增量检视不纳入仓库中已存在的问题
415
+ 5. **报告文件名必须是 `check-report.md`**,路径在 `{outputDir}` 下
416
+ 6. **所有输出文档必须使用中文**
417
+ 7. **pkgver 不能是 `master`**:这是历史遗留模式,新增或修改的适配库不应再使用
418
+ 8. **大文件处理**:若 API 返回的文件内容为 Base64 编码且超过 1MB,应使用 download 参数获取原始内容
419
+ 9. **Base64 解码**:GitCode API contents 端点返回的 `content` 字段为 Base64 编码,需解码后才是文件原始内容
420
+
421
+ ---
422
+
423
+ ## 参考文档
424
+
425
+ - [规范性检查清单](references/CHECKLIST.md)
426
+ - [HPKBUILD 详细检查指南](references/HPKBUILD_GUIDE.md)
427
+ - [检视报告模板](references/REPORT_TEMPLATE.md)