@ohos-cpf/3rdloop 0.0.2 → 0.0.4
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.
- package/README.md +290 -244
- package/bin/3rdloop.mjs +46 -46
- package/lib/cli.js +781 -781
- package/lib/config-cmd.js +451 -451
- package/lib/config.js +318 -318
- package/lib/doctor.js +113 -113
- package/lib/exit-codes.js +30 -30
- package/lib/opencode.js +155 -155
- package/lib/orch.js +426 -426
- package/lib/queries.js +263 -263
- package/lib/step.js +325 -325
- package/lib/ui.js +222 -222
- package/lib/update.js +279 -279
- package/lib/workflow.js +308 -308
- package/lib/workflows.js +131 -131
- package/package.json +50 -50
- package/vendor/Server/Agent/SkillSelector/README.md +343 -343
- package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -207
- package/vendor/Server/Agent/SkillSelector/index.js +14 -14
- package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -313
- package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -161
- package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -144
- package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -433
- package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -382
- package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +59 -59
- package/vendor/Server/Brain/AnalysisStrategies.js +422 -422
- package/vendor/Server/Brain/Brain.js +686 -686
- package/vendor/Server/Brain/DecompositionStrategies.js +621 -621
- package/vendor/Server/Brain/PlanPersistence.js +196 -196
- package/vendor/Server/Brain/SkillExecutor.js +251 -251
- package/vendor/Server/Brain/index.js +11 -11
- package/vendor/Server/CLI/cli.js +275 -275
- package/vendor/Server/CLI/deveco-code/index.js +71 -71
- package/vendor/Server/CLI/deveco-code.js +5 -5
- package/vendor/Server/CLI/opencode/index.js +817 -818
- package/vendor/Server/CLI/opencode.js +5 -5
- package/vendor/Server/DbUse/MessageArchive.js +61 -61
- package/vendor/Server/DbUse/StorageManager.js +107 -107
- package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -94
- package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -114
- package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -157
- package/vendor/Server/DbUse/index.js +160 -160
- package/vendor/Server/DbUse/stores/SessionStore.js +279 -279
- package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -133
- package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -262
- package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -279
- package/vendor/Server/FlexRunner/FlexRunner.js +1759 -1759
- package/vendor/Server/FlexRunner/index.js +12 -12
- package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -523
- package/vendor/Server/Knowledge/KnowledgeManager.js +341 -341
- package/vendor/Server/Knowledge/index.js +33 -33
- package/vendor/Server/LoopEngine/LoopEngine.js +1133 -1133
- package/vendor/Server/LoopEngine/index.js +11 -11
- package/vendor/Server/Orchestrator/Orchestrator.js +0 -3
- package/vendor/Server/Orchestrator/StepNode.js +312 -312
- package/vendor/Server/Orchestrator/index.js +13 -13
- package/vendor/Server/Routes/controllers/BrainController.js +241 -241
- package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -1125
- package/vendor/Server/Routes/controllers/HealthController.js +44 -44
- package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -355
- package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -788
- package/vendor/Server/Routes/controllers/StatsController.js +57 -57
- package/vendor/Server/Routes/controllers/StreamController.js +67 -67
- package/vendor/Server/Routes/library/logger.js +179 -179
- package/vendor/Server/Routes/library/zipArchive.js +172 -172
- package/vendor/Server/Routes/router/Router.js +204 -204
- package/vendor/Server/Routes/routes/brain.js +47 -47
- package/vendor/Server/Routes/routes/flexrunner.js +72 -72
- package/vendor/Server/Routes/routes/health.js +28 -28
- package/vendor/Server/Routes/routes/index.js +57 -57
- package/vendor/Server/Routes/routes/knowledge.js +55 -55
- package/vendor/Server/Routes/routes/loopengine.js +58 -58
- package/vendor/Server/Routes/routes/orchestrator.js +61 -61
- package/vendor/Server/Routes/routes/registry.js +97 -97
- package/vendor/Server/Routes/routes/stats.js +23 -23
- package/vendor/Server/Routes/routes/stream.js +30 -30
- package/vendor/Server/Routes/server.js +203 -203
- package/vendor/Server/Routes/sse/SseHub.js +308 -308
- package/vendor/Server/Skills/acceptance-check/SKILL.md +191 -191
- package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -52
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -77
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_EVIDENCE_VERIFICATION.md +70 -70
- package/vendor/Server/Skills/arkts-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +210 -210
- package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +28 -28
- package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +233 -233
- package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +328 -328
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -291
- package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -68
- package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -184
- package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -337
- package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -400
- package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +98 -98
- package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -544
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -174
- package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -321
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -100
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -185
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +233 -233
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +102 -102
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -89
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -62
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +107 -107
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -124
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -90
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -57
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +391 -391
- package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -113
- package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +312 -312
- package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -154
- package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +165 -165
- package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +308 -308
- package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -90
- package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -282
- package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +360 -360
- package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +145 -145
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +252 -252
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +114 -114
- package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +262 -262
- package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -455
- package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -60
- package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -76
- package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -200
- package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +518 -518
- package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -276
- package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +92 -92
- package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -767
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -221
- package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +228 -228
- package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -194
- package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +575 -575
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +574 -574
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -182
- package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +490 -490
- package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -217
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -299
- package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -190
- package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +133 -133
- package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/flutter-interface/README.md +75 -75
- package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -291
- package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -336
- package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -190
- package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -258
- package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -254
- package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +517 -517
- package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +381 -381
- package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +341 -341
- package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -71
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +518 -518
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +406 -406
- package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +652 -652
- package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +396 -396
- package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +744 -744
- package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +720 -720
- package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -414
- package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -150
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -304
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -265
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -286
- package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -383
- package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -165
- package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -91
- package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +453 -301
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_CHECKLIST.md +151 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +257 -105
- package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +191 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +317 -208
- package/vendor/Server/Skills/rn-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +234 -234
- package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +188 -188
- package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +246 -246
- package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -198
- package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -40
- package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -78
- package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -70
- package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -47
- package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -252
- package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -176
- package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -5
- package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -35
- package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -137
- package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -33
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -40
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -429
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -105
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -90
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -213
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -73
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -258
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -341
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -67
- package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -299
- package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -293
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -857
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -856
- package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -157
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -801
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +683 -683
- package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -233
- package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -1373
- package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -220
- package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -245
- package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -414
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -413
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -355
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -115
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -139
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -586
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -57
- package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -259
- package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -301
- package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -148
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -118
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -168
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -176
- package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -274
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -45
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -25
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -61
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -165
- package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -239
- package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -96
- package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +57 -57
- package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -99
- package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -64
- package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +74 -74
- package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -164
- package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +356 -339
- package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +85 -83
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +905 -859
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +124 -122
- package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +287 -279
- package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -273
- package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -129
- package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -581
- package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -138
- package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -168
- package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +526 -506
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +321 -280
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -221
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +220 -209
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -325
- package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -279
- package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -404
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -185
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -265
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -189
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -203
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -147
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -148
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -165
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -195
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -249
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -161
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -413
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -245
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -282
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -251
- package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -469
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -310
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -303
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -421
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -358
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -114
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -274
- package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -185
- package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -191
- package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -216
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -107
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -120
- package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -108
- package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -237
- package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -261
- package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -112
- package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +497 -497
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -270
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -164
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -556
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -459
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -65
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -512
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -132
- package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -424
- package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -137
- package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -306
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -485
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -172
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -422
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -95
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -169
- package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -554
- package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -106
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -216
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -413
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -98
- package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -337
- package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -722
- package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -173
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -267
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -174
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -111
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -186
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -150
- package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -296
- package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -371
- package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -212
- package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -223
- package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -1053
- package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +295 -255
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +82 -77
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -224
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +175 -174
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -967
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -1798
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -5
- package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +180 -137
- package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -145
- package/vendor/Server/Skills/skill-generator/SKILL.md +365 -365
- package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -183
- package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -82
- package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -110
- package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -122
- package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -121
- package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/task-analysis/SKILL.md +234 -234
- package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -160
- package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -190
- package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -224
- package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -162
- package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -55
- package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -126
- package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -256
- package/vendor/Server/Skills/task-decomposition/SKILL.md +528 -528
- package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -451
- package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -179
- package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -152
- package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -175
- package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -195
- package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -226
- package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -263
- package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -29
- package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -376
- package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -259
- package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -216
- package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +424 -424
- package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -427
- package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -214
- package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -235
- package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -250
- package/vendor/Server/TestCheck/TestCheck.js +775 -775
- package/vendor/Server/TestCheck/index.js +11 -11
- package/vendor/Server/library/McpToolGuide.js +280 -280
- package/vendor/Server/library/StatsService.js +126 -126
- package/vendor/Server/library/cstTime.js +16 -16
- package/vendor/VERSION +3 -3
- package/workflows/pr-check.mjs +105 -105
- package/workflows/pr-push.mjs +192 -192
- package/vendor/Server/Agent/SkillSelector/types.js +0 -63
|
@@ -1,321 +1,321 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: arkts-code-check
|
|
3
|
-
description: 自动化检视 ArkTS 三方库 Pull Request,包括获取 PR 差异、深度分析代码变更、生成结构化检视报告。当用户需要对 ArkTS/OpenHarmony 三方库 PR 进行代码检视时调用。支持 GitCode、Gitee、GitHub、GitLab 平台。
|
|
4
|
-
license: Apache-2.0
|
|
5
|
-
compatibility: 需要 git、curl、网络访问代码仓库平台 API
|
|
6
|
-
metadata:
|
|
7
|
-
version: "1.1.0"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# ArkTsCodeCheckSkill — ArkTS 三方库 PR 代码检视
|
|
11
|
-
|
|
12
|
-
## 任务参数
|
|
13
|
-
|
|
14
|
-
| 参数 | 必需 | 说明 |
|
|
15
|
-
|------|------|------|
|
|
16
|
-
| `prUrl` | ✅ | PR 地址,如 `https://gitee.com/openharmony-tpc/community/pulls/123` |
|
|
17
|
-
| `outputDir` | ✅ | 输出目录绝对路径,如 `/path/to/codecheck/owner_repo_pr123` |
|
|
18
|
-
| `branch` | ❌ | 目标分支名;若提供则优先使用 |
|
|
19
|
-
| `accessToken` | ❌ | 平台 API 访问令牌 |
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## 工作流程概览
|
|
24
|
-
|
|
25
|
-
```
|
|
26
|
-
Phase 1: 信息收集(含范围识别) → Phase 2: 差异分析 → Phase 3: 代码检视 → Phase 4: 影响分析 → Phase 5: 报告生成
|
|
27
|
-
```
|
|
28
|
-
|
|
29
|
-
---
|
|
30
|
-
|
|
31
|
-
## Phase 1:信息收集
|
|
32
|
-
|
|
33
|
-
### 1.1 解析 PR 地址
|
|
34
|
-
|
|
35
|
-
从 `prUrl` 提取:`platform`、`owner`、`repo`、`prNumber`。
|
|
36
|
-
|
|
37
|
-
> 详细步骤参见 [信息收集指南](references/PHASE1_INFO_COLLECTION.md)
|
|
38
|
-
|
|
39
|
-
### 1.2 获取 PR 元数据
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/pulls/{prNumber}?access_token={accessToken}"
|
|
43
|
-
```
|
|
44
|
-
|
|
45
|
-
提取:`title`、`base.ref`、`head.sha`、`user.name`、`created_at`、`state`
|
|
46
|
-
|
|
47
|
-
### 1.3 获取 Commit Patch(仅供参考)
|
|
48
|
-
|
|
49
|
-
```bash
|
|
50
|
-
curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/commit/{head.sha}/patch?access_token={accessToken}" -o {outputDir}/pr.patch
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
返回最新 commit 的 patch,包含 commit 元数据(作者、日期、message)和单次 commit 的文件变更。
|
|
54
|
-
|
|
55
|
-
> **注意**:
|
|
56
|
-
> - 路径使用 `commit`(单数),不是 `commits`
|
|
57
|
-
> - 此 patch 仅包含 PR **最新一次 commit** 的差异,不代表 PR 全量变更
|
|
58
|
-
> - PR 若包含多个 commit,需使用 1.5 步骤的累积 diff 进行检视
|
|
59
|
-
|
|
60
|
-
### 1.4 克隆仓库(必须)
|
|
61
|
-
|
|
62
|
-
```bash
|
|
63
|
-
git clone --depth=50 --branch {targetBranch} https://gitcode.com/{owner}/{repo}.git {outputDir}/source/
|
|
64
|
-
```
|
|
65
|
-
|
|
66
|
-
克隆后必须 fetch PR HEAD 并生成累积 diff(见 1.5)。
|
|
67
|
-
|
|
68
|
-
### 1.5 获取 PR 累积差异(检视依据)
|
|
69
|
-
|
|
70
|
-
> **核心步骤**:必须基于累积 diff 进行检视,而非单次 commit patch。
|
|
71
|
-
|
|
72
|
-
```bash
|
|
73
|
-
# 1. fetch PR HEAD 到本地分支
|
|
74
|
-
cd {outputDir}/source/
|
|
75
|
-
git fetch origin refs/merge-requests/{prNumber}/head:pr{prNumber}
|
|
76
|
-
|
|
77
|
-
# 2. checkout PR 分支
|
|
78
|
-
git checkout pr{prNumber}
|
|
79
|
-
|
|
80
|
-
# 3. 生成累积 diff(base 分支 vs PR HEAD)
|
|
81
|
-
git diff {targetBranch}..pr{prNumber} > {outputDir}/pr-diff-raw.txt
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
**为什么需要累积 diff**:
|
|
85
|
-
- PR 可能包含多个 commit,单次 commit patch 无法反映全量变更
|
|
86
|
-
- 本次检视中,head.sha patch 仅 1 个文件,但累积 diff 实际包含 21 个文件
|
|
87
|
-
- 累积 diff 才是 PR 的真实变更范围
|
|
88
|
-
|
|
89
|
-
**PR 更新检测**:
|
|
90
|
-
- PR 推送新 commit 后 `head.sha` 会变化
|
|
91
|
-
- 若 1.2 步骤获取的 `head.sha` 与上次不同,必须重新 fetch 并重新生成 `pr-diff.txt`
|
|
92
|
-
- 已生成的报告文件也需重新生成
|
|
93
|
-
|
|
94
|
-
### 1.6 识别 PR 检视范围(关键步骤)
|
|
95
|
-
|
|
96
|
-
> **⚠️ 此步骤防止检视范围污染,是本次迭代新增的核心改进。**
|
|
97
|
-
|
|
98
|
-
Monorepo(如 `openharmony_tpc_samples` 包含多个三方库子目录)中,fork 分支的 master 通常通过 merge commit 合入了其他 PR 的变更。此时 `git diff {targetBranch}..pr{prNumber}` 的累积 diff 会包含**不属于本 PR 意图范围**的文件变更(其他库的修改、删除等),导致检视误判。
|
|
99
|
-
|
|
100
|
-
**识别方法**:
|
|
101
|
-
|
|
102
|
-
1. 从 PR 标题提取目标库名称(如 `eventsource: fix: ...` → 目标库为 `eventsource`)
|
|
103
|
-
2. 若标题不含库名,从 PR body(描述)或 commit message 中提取
|
|
104
|
-
3. 若仍无法确定,取 PR 标题中第一个冒号前的部分,或取变更文件中最深层公共父目录
|
|
105
|
-
|
|
106
|
-
**范围过滤**:
|
|
107
|
-
|
|
108
|
-
```bash
|
|
109
|
-
# 仅保留目标库目录下的 diff(关键:避免检视范围污染)
|
|
110
|
-
git diff {targetBranch}..pr{prNumber} -- {targetLibraryDir}/ > {outputDir}/pr-diff.txt
|
|
111
|
-
|
|
112
|
-
# 同时生成全量 diff 供参考(不用于检视,仅用于记录)
|
|
113
|
-
# pr-diff-raw.txt 已在 1.5 中生成
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
**实际案例**:
|
|
117
|
-
- PR #3042 标题为 `eventsource: fix: ...`,目标库为 `eventsource`
|
|
118
|
-
- 累积 diff 包含 113 个文件(ohos_rive、ohos_7zip、spinec、GstreamerDemo 等),但仅 18 个 eventsource 文件属于本 PR
|
|
119
|
-
- 若不过滤,ohos_rive 的内存安全回归会被误判为本 PR 的 Blocker,导致错误的 REJECT 结论
|
|
120
|
-
- 过滤后仅检视 18 个 eventsource 文件,结果为 PASS
|
|
121
|
-
|
|
122
|
-
**过滤后更新统计**:
|
|
123
|
-
|
|
124
|
-
```bash
|
|
125
|
-
# 重新统计(基于过滤后的 diff)
|
|
126
|
-
git diff --stat {targetBranch}..pr{prNumber} -- {targetLibraryDir}/
|
|
127
|
-
|
|
128
|
-
# 重新生成 changed-files.txt(基于过滤后的 diff)
|
|
129
|
-
# ⚠️ 禁止 sed 's/diff --git a\/.* b\/\//'(macOS BSD sed 不兼容会静默生成空文件),改用 awk 提取
|
|
130
|
-
grep "^diff --git" {outputDir}/pr-diff.txt | awk '{print $4}' | sed 's/^b\///' > {outputDir}/changed-files.txt
|
|
131
|
-
# 生成后必须校验非空(空文件 = 提取失败,禁止继续后续流程)
|
|
132
|
-
wc -l {outputDir}/changed-files.txt
|
|
133
|
-
```
|
|
134
|
-
|
|
135
|
-
> **原则**:检视应聚焦于 PR 的意图范围(单次提交涉及的目标库),不应将 fork 分支 divergent master 上的其他变更纳入检视和分级。
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
## Phase 2:差异分析
|
|
140
|
-
|
|
141
|
-
> **必须基于 `pr-diff.txt`(经过范围过滤的累积 diff)进行分析,而非 `pr-diff-raw.txt`(全量累积 diff)或 `pr.patch`(单次 commit patch)**
|
|
142
|
-
|
|
143
|
-
### 2.1 统计改动规模
|
|
144
|
-
|
|
145
|
-
- 文件数、新增/删除行数:从 `pr-diff.txt` 统计,或使用 `git diff --stat {targetBranch}..pr{prNumber}`
|
|
146
|
-
|
|
147
|
-
### 2.2 识别文件类型
|
|
148
|
-
|
|
149
|
-
| 扩展名 | 类型 | 检视重点 |
|
|
150
|
-
|--------|------|----------|
|
|
151
|
-
| `.ets` | ArkTS | 语言约束、装饰器、UI |
|
|
152
|
-
| `.ts` | TypeScript | 类型安全、异步 |
|
|
153
|
-
| `oh-package.json5` | 配置 | 依赖版本 |
|
|
154
|
-
| `module.json5` | 配置 | 权限、API Level |
|
|
155
|
-
|
|
156
|
-
> 完整分类参见 [文件类型指南](references/FILE_TYPE_GUIDE.md)
|
|
157
|
-
|
|
158
|
-
### 2.3 理解改动意图
|
|
159
|
-
|
|
160
|
-
结合 PR 标题、commit message、diff 上下文分析修改目的。
|
|
161
|
-
|
|
162
|
-
---
|
|
163
|
-
|
|
164
|
-
## Phase 3:代码深度检视
|
|
165
|
-
|
|
166
|
-
对每个 `.ets` / `.ts` 文件逐项检查。
|
|
167
|
-
|
|
168
|
-
### 3.1 核心检视维度
|
|
169
|
-
|
|
170
|
-
| 维度 | 检查要点 |
|
|
171
|
-
|------|----------|
|
|
172
|
-
| 非兼容变更 | 删除/修改公开 API、函数签名变更 |
|
|
173
|
-
| ArkTS 约束 | 无 `any`、无动态代码、装饰器正确 |
|
|
174
|
-
| API 兼容性 | minAPIVersion 匹配、权限正确 |
|
|
175
|
-
| 异步处理 | await 不遗漏、try/catch 完整 |
|
|
176
|
-
| 事件监听 | on/off 对称、生命周期正确 |
|
|
177
|
-
| 错误处理 | 错误码完整、return/break 正确 |
|
|
178
|
-
| 内存管理 | 监听器清理、定时器清除 |
|
|
179
|
-
| 安全性 | 无硬编码密钥、输入校验 |
|
|
180
|
-
|
|
181
|
-
> 完整检查清单参见 [代码检视指南](references/CODE_CHECK_GUIDE.md)
|
|
182
|
-
|
|
183
|
-
**专项检查规范**(详见指南 3.14 / 3.15 节):
|
|
184
|
-
- **静态检查工具(arkts_check)使用规范**:必须以绝对路径调用(相对路径会产生假阴性静默漏检);`Cannot find module '@ohos/*'` 为 ohpm 本地依赖解析的环境误报,不计入问题统计;采用**基线对照法**(对 master 既有文件跑同样检查)区分"PR 引入"与"历史存量"违规
|
|
185
|
-
- **测试型 PR 检查清单**:纯测试补充型 PR 须执行导入符号核验、构造函数签名比对、夹具数据解码核验、未使用导入检测、新文件 License 头一致性、测试脚手架与库内部契约链路确认
|
|
186
|
-
|
|
187
|
-
### 3.2 问题严重程度
|
|
188
|
-
|
|
189
|
-
| 级别 | 标识 | 说明 |
|
|
190
|
-
|------|------|------|
|
|
191
|
-
| Blocker | 🔴 | 必须修复,影响功能/安全/兼容 |
|
|
192
|
-
| Major | 🟡 | 建议修复,存在风险 |
|
|
193
|
-
| Minor | 🔵 | 优化建议 |
|
|
194
|
-
|
|
195
|
-
---
|
|
196
|
-
|
|
197
|
-
## Phase 4:影响分析
|
|
198
|
-
|
|
199
|
-
综合评估:
|
|
200
|
-
- **功能影响**:新功能或行为变更
|
|
201
|
-
- **兼容性影响**:接口向后兼容性
|
|
202
|
-
- **性能影响**:异步优化、对象创建等
|
|
203
|
-
- **安全影响**:修复或引入安全问题
|
|
204
|
-
|
|
205
|
-
---
|
|
206
|
-
|
|
207
|
-
## Phase 5:生成报告
|
|
208
|
-
|
|
209
|
-
输出文件:
|
|
210
|
-
- `{outputDir}/check-report.md` — 检视报告
|
|
211
|
-
- `{outputDir}/changed-files.txt` — 修改文件列表(基于范围过滤后的 diff 生成)
|
|
212
|
-
- `{outputDir}/pr-diff.txt` — PR 累积差异(目标库目录范围内,检视核心依据)
|
|
213
|
-
- `{outputDir}/pr-diff-raw.txt` — PR 全量累积差异(base → PR HEAD,仅供参考,不用于检视)
|
|
214
|
-
- `{outputDir}/pr.patch` — 最新 commit patch(仅供 commit 元数据参考)
|
|
215
|
-
- `{outputDir}/result.txt` — 合入建议分级结果
|
|
216
|
-
|
|
217
|
-
> 报告模板参见 [报告模板](references/REPORT_TEMPLATE.md)
|
|
218
|
-
|
|
219
|
-
### 5.1 合入建议分级标准
|
|
220
|
-
|
|
221
|
-
根据代码检视结果,将合入建议分为四个等级:
|
|
222
|
-
|
|
223
|
-
| 等级 | 标识 | 颜色建议 | 判断标准 | 举例场景 |
|
|
224
|
-
|------|------|----------|----------|----------|
|
|
225
|
-
| **建议合入** | ✅ `PASS` | 绿色 | 无或极少(≤2 Minor)修改引入问题,改动风险低,功能验证充分 | 纯文档更新、配置优化、已验证的 Bug 修复 |
|
|
226
|
-
| **条件合入** | ⚠️ `CONDITIONAL` | 黄色 | 存在少量(≤3 Major)可修复问题,在特定条件下可合入 | 需补充测试用例、需调整文档说明、非核心路径兼容性问题 |
|
|
227
|
-
| **修改后合入** | 🔧 `NEED_FIX` | 橙色 | 存在较多问题(≥1 Blocker 或 ≥4 Major),需修复后方可合入 | API 兼容性破坏、性能风险、内存泄漏、异步逻辑缺陷 |
|
|
228
|
-
| **不允许合入** | ❌ `REJECT` | 红色 | 存在严重问题(≥2 Blocker),影响功能/安全/稳定性,不建议合入 | 安全漏洞、严重兼容性破坏、架构缺陷、未验证的重大变更 |
|
|
229
|
-
|
|
230
|
-
**分级判断流程**:
|
|
231
|
-
|
|
232
|
-
```
|
|
233
|
-
统计问题数量:
|
|
234
|
-
- Blocker 级别问题数
|
|
235
|
-
- Major 级别问题数
|
|
236
|
-
- Minor 级别问题数
|
|
237
|
-
|
|
238
|
-
判断逻辑:
|
|
239
|
-
IF Blocker ≥ 2 → ❌ REJECT
|
|
240
|
-
IF Blocker ≥ 1 → 🔧 NEED_FIX
|
|
241
|
-
IF Major ≥ 4 → 🔧 NEED_FIX
|
|
242
|
-
IF Major ≥ 1 → ⚠️ CONDITIONAL
|
|
243
|
-
IF Minor ≤ 2 → ✅ PASS
|
|
244
|
-
ELSE → ⚠️ CONDITIONAL
|
|
245
|
-
```
|
|
246
|
-
|
|
247
|
-
### 5.2 result.txt 文件格式
|
|
248
|
-
|
|
249
|
-
`result.txt` 用于存储分级结果和统计信息,格式如下:
|
|
250
|
-
|
|
251
|
-
```txt
|
|
252
|
-
=== 合入建议分级报告 ===
|
|
253
|
-
PR 地址:{prUrl}
|
|
254
|
-
仓库:{owner}/{repo}
|
|
255
|
-
PR 编号:#{prNumber}
|
|
256
|
-
生成时间:{YYYY-MM-DD HH:mm:ss}
|
|
257
|
-
|
|
258
|
-
【合入建议】:✅ 建议合入
|
|
259
|
-
|
|
260
|
-
【问题统计】
|
|
261
|
-
- Blocker 级别:0 个
|
|
262
|
-
- Major 级别:0 个
|
|
263
|
-
- Minor 级别:2 个
|
|
264
|
-
|
|
265
|
-
【分级理由】
|
|
266
|
-
本次修改仅包含少量 Minor 级别优化建议,无功能性问题,改动风险低,建议直接合入。
|
|
267
|
-
|
|
268
|
-
【详细分析】
|
|
269
|
-
━━━ Minor 级别问题 ━━━
|
|
270
|
-
1. [文件类型:代码质量] 删除了无用变量 `pairFlag`,代码更简洁
|
|
271
|
-
2. [文件类型:可观测性] 错误信息从模糊描述改为包含 `e.code` 和 `e.message` 的格式
|
|
272
|
-
|
|
273
|
-
━━━ 合入建议 ━━━
|
|
274
|
-
建议合入:本次修改质量良好,无功能性风险。
|
|
275
|
-
|
|
276
|
-
=== 分级结束 ===
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
### 5.3 结构化指标输出(必须执行)
|
|
280
|
-
|
|
281
|
-
执行环境会在任务 prompt 中下发一个**结构化指标文件输出路径**(`stepId{X}_loop{L}_meta_{N}.json`)。
|
|
282
|
-
检视完成后,**必须**将分级结果以下述 JSON 对象写入该路径:
|
|
283
|
-
|
|
284
|
-
```json
|
|
285
|
-
{
|
|
286
|
-
"mergeLevel": "PASS | CONDITIONAL | NEED_FIX | REJECT",
|
|
287
|
-
"blocker": 0,
|
|
288
|
-
"major": 0,
|
|
289
|
-
"minor": 0
|
|
290
|
-
}
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
| 字段 | 类型 | 说明 |
|
|
294
|
-
|------|------|------|
|
|
295
|
-
| `mergeLevel` | string | 合入等级:PASS / CONDITIONAL / NEED_FIX / REJECT |
|
|
296
|
-
| `blocker` | number | Blocker 级别问题数 |
|
|
297
|
-
| `major` | number | Major 级别问题数 |
|
|
298
|
-
| `minor` | number | Minor 级别问题数 |
|
|
299
|
-
|
|
300
|
-
**说明**:该文件由执行框架自动收割入库(前端/历史列表直接读取,无需解析报告文本);详细的统计与理由已在 `result.txt` 中完整记录。若 prompt 未下发该路径则跳过本节。
|
|
301
|
-
|
|
302
|
-
---
|
|
303
|
-
|
|
304
|
-
## 注意事项
|
|
305
|
-
|
|
306
|
-
1. **必须克隆仓库**:用于深度检视和跨文件引用分析,不可仅凭 diff 下结论
|
|
307
|
-
2. **必须使用累积 diff 进行检视**:`pr.patch`(单次 commit patch)可能仅包含部分变更,必须使用 `git diff {targetBranch}..pr{prNumber}` 生成的累积 diff。实际案例中 pr.patch 仅 1 个文件,但累积 diff 有 21 个文件
|
|
308
|
-
3. **必须识别 PR 检视范围**(新增):Monorepo 中 fork 分支的累积 diff 可能包含不属于本 PR 的其他库变更,必须根据 PR 标题/描述识别目标库目录,将 diff 限定在该范围内。实际案例:PR #3042 标题为 `eventsource: fix:`,但累积 diff 包含 113 个文件(含 ohos_rive、ohos_7zip 等),不过滤会导致误判 REJECT
|
|
309
|
-
4. **克隆失败处理**:在报告中注明,继续基于 diff 完成分析
|
|
310
|
-
5. **Patch 过大**:优先分析 `.ets`/`.ts` 文件,其余按改动量排序
|
|
311
|
-
6. **PR 更新检测**:每次检视前重新获取 PR 元数据,对比 head.sha 是否变化;若变化,必须重新 fetch 并重新生成 pr-diff.txt 和所有报告
|
|
312
|
-
7. **所有操作记录日志**:方便问题排查
|
|
313
|
-
|
|
314
|
-
---
|
|
315
|
-
|
|
316
|
-
## 快速参考
|
|
317
|
-
|
|
318
|
-
- [信息收集详细指南](references/PHASE1_INFO_COLLECTION.md)
|
|
319
|
-
- [代码检视检查清单](references/CODE_CHECK_GUIDE.md)
|
|
320
|
-
- [检视报告模板](references/REPORT_TEMPLATE.md)
|
|
1
|
+
---
|
|
2
|
+
name: arkts-code-check
|
|
3
|
+
description: 自动化检视 ArkTS 三方库 Pull Request,包括获取 PR 差异、深度分析代码变更、生成结构化检视报告。当用户需要对 ArkTS/OpenHarmony 三方库 PR 进行代码检视时调用。支持 GitCode、Gitee、GitHub、GitLab 平台。
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
compatibility: 需要 git、curl、网络访问代码仓库平台 API
|
|
6
|
+
metadata:
|
|
7
|
+
version: "1.1.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ArkTsCodeCheckSkill — ArkTS 三方库 PR 代码检视
|
|
11
|
+
|
|
12
|
+
## 任务参数
|
|
13
|
+
|
|
14
|
+
| 参数 | 必需 | 说明 |
|
|
15
|
+
|------|------|------|
|
|
16
|
+
| `prUrl` | ✅ | PR 地址,如 `https://gitee.com/openharmony-tpc/community/pulls/123` |
|
|
17
|
+
| `outputDir` | ✅ | 输出目录绝对路径,如 `/path/to/codecheck/owner_repo_pr123` |
|
|
18
|
+
| `branch` | ❌ | 目标分支名;若提供则优先使用 |
|
|
19
|
+
| `accessToken` | ❌ | 平台 API 访问令牌 |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 工作流程概览
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
Phase 1: 信息收集(含范围识别) → Phase 2: 差异分析 → Phase 3: 代码检视 → Phase 4: 影响分析 → Phase 5: 报告生成
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
31
|
+
## Phase 1:信息收集
|
|
32
|
+
|
|
33
|
+
### 1.1 解析 PR 地址
|
|
34
|
+
|
|
35
|
+
从 `prUrl` 提取:`platform`、`owner`、`repo`、`prNumber`。
|
|
36
|
+
|
|
37
|
+
> 详细步骤参见 [信息收集指南](references/PHASE1_INFO_COLLECTION.md)
|
|
38
|
+
|
|
39
|
+
### 1.2 获取 PR 元数据
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/pulls/{prNumber}?access_token={accessToken}"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
提取:`title`、`base.ref`、`head.sha`、`user.name`、`created_at`、`state`
|
|
46
|
+
|
|
47
|
+
### 1.3 获取 Commit Patch(仅供参考)
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/commit/{head.sha}/patch?access_token={accessToken}" -o {outputDir}/pr.patch
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
返回最新 commit 的 patch,包含 commit 元数据(作者、日期、message)和单次 commit 的文件变更。
|
|
54
|
+
|
|
55
|
+
> **注意**:
|
|
56
|
+
> - 路径使用 `commit`(单数),不是 `commits`
|
|
57
|
+
> - 此 patch 仅包含 PR **最新一次 commit** 的差异,不代表 PR 全量变更
|
|
58
|
+
> - PR 若包含多个 commit,需使用 1.5 步骤的累积 diff 进行检视
|
|
59
|
+
|
|
60
|
+
### 1.4 克隆仓库(必须)
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
git clone --depth=50 --branch {targetBranch} https://gitcode.com/{owner}/{repo}.git {outputDir}/source/
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
克隆后必须 fetch PR HEAD 并生成累积 diff(见 1.5)。
|
|
67
|
+
|
|
68
|
+
### 1.5 获取 PR 累积差异(检视依据)
|
|
69
|
+
|
|
70
|
+
> **核心步骤**:必须基于累积 diff 进行检视,而非单次 commit patch。
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
# 1. fetch PR HEAD 到本地分支
|
|
74
|
+
cd {outputDir}/source/
|
|
75
|
+
git fetch origin refs/merge-requests/{prNumber}/head:pr{prNumber}
|
|
76
|
+
|
|
77
|
+
# 2. checkout PR 分支
|
|
78
|
+
git checkout pr{prNumber}
|
|
79
|
+
|
|
80
|
+
# 3. 生成累积 diff(base 分支 vs PR HEAD)
|
|
81
|
+
git diff {targetBranch}..pr{prNumber} > {outputDir}/pr-diff-raw.txt
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**为什么需要累积 diff**:
|
|
85
|
+
- PR 可能包含多个 commit,单次 commit patch 无法反映全量变更
|
|
86
|
+
- 本次检视中,head.sha patch 仅 1 个文件,但累积 diff 实际包含 21 个文件
|
|
87
|
+
- 累积 diff 才是 PR 的真实变更范围
|
|
88
|
+
|
|
89
|
+
**PR 更新检测**:
|
|
90
|
+
- PR 推送新 commit 后 `head.sha` 会变化
|
|
91
|
+
- 若 1.2 步骤获取的 `head.sha` 与上次不同,必须重新 fetch 并重新生成 `pr-diff.txt`
|
|
92
|
+
- 已生成的报告文件也需重新生成
|
|
93
|
+
|
|
94
|
+
### 1.6 识别 PR 检视范围(关键步骤)
|
|
95
|
+
|
|
96
|
+
> **⚠️ 此步骤防止检视范围污染,是本次迭代新增的核心改进。**
|
|
97
|
+
|
|
98
|
+
Monorepo(如 `openharmony_tpc_samples` 包含多个三方库子目录)中,fork 分支的 master 通常通过 merge commit 合入了其他 PR 的变更。此时 `git diff {targetBranch}..pr{prNumber}` 的累积 diff 会包含**不属于本 PR 意图范围**的文件变更(其他库的修改、删除等),导致检视误判。
|
|
99
|
+
|
|
100
|
+
**识别方法**:
|
|
101
|
+
|
|
102
|
+
1. 从 PR 标题提取目标库名称(如 `eventsource: fix: ...` → 目标库为 `eventsource`)
|
|
103
|
+
2. 若标题不含库名,从 PR body(描述)或 commit message 中提取
|
|
104
|
+
3. 若仍无法确定,取 PR 标题中第一个冒号前的部分,或取变更文件中最深层公共父目录
|
|
105
|
+
|
|
106
|
+
**范围过滤**:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
# 仅保留目标库目录下的 diff(关键:避免检视范围污染)
|
|
110
|
+
git diff {targetBranch}..pr{prNumber} -- {targetLibraryDir}/ > {outputDir}/pr-diff.txt
|
|
111
|
+
|
|
112
|
+
# 同时生成全量 diff 供参考(不用于检视,仅用于记录)
|
|
113
|
+
# pr-diff-raw.txt 已在 1.5 中生成
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**实际案例**:
|
|
117
|
+
- PR #3042 标题为 `eventsource: fix: ...`,目标库为 `eventsource`
|
|
118
|
+
- 累积 diff 包含 113 个文件(ohos_rive、ohos_7zip、spinec、GstreamerDemo 等),但仅 18 个 eventsource 文件属于本 PR
|
|
119
|
+
- 若不过滤,ohos_rive 的内存安全回归会被误判为本 PR 的 Blocker,导致错误的 REJECT 结论
|
|
120
|
+
- 过滤后仅检视 18 个 eventsource 文件,结果为 PASS
|
|
121
|
+
|
|
122
|
+
**过滤后更新统计**:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# 重新统计(基于过滤后的 diff)
|
|
126
|
+
git diff --stat {targetBranch}..pr{prNumber} -- {targetLibraryDir}/
|
|
127
|
+
|
|
128
|
+
# 重新生成 changed-files.txt(基于过滤后的 diff)
|
|
129
|
+
# ⚠️ 禁止 sed 's/diff --git a\/.* b\/\//'(macOS BSD sed 不兼容会静默生成空文件),改用 awk 提取
|
|
130
|
+
grep "^diff --git" {outputDir}/pr-diff.txt | awk '{print $4}' | sed 's/^b\///' > {outputDir}/changed-files.txt
|
|
131
|
+
# 生成后必须校验非空(空文件 = 提取失败,禁止继续后续流程)
|
|
132
|
+
wc -l {outputDir}/changed-files.txt
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
> **原则**:检视应聚焦于 PR 的意图范围(单次提交涉及的目标库),不应将 fork 分支 divergent master 上的其他变更纳入检视和分级。
|
|
136
|
+
|
|
137
|
+
---
|
|
138
|
+
|
|
139
|
+
## Phase 2:差异分析
|
|
140
|
+
|
|
141
|
+
> **必须基于 `pr-diff.txt`(经过范围过滤的累积 diff)进行分析,而非 `pr-diff-raw.txt`(全量累积 diff)或 `pr.patch`(单次 commit patch)**
|
|
142
|
+
|
|
143
|
+
### 2.1 统计改动规模
|
|
144
|
+
|
|
145
|
+
- 文件数、新增/删除行数:从 `pr-diff.txt` 统计,或使用 `git diff --stat {targetBranch}..pr{prNumber}`
|
|
146
|
+
|
|
147
|
+
### 2.2 识别文件类型
|
|
148
|
+
|
|
149
|
+
| 扩展名 | 类型 | 检视重点 |
|
|
150
|
+
|--------|------|----------|
|
|
151
|
+
| `.ets` | ArkTS | 语言约束、装饰器、UI |
|
|
152
|
+
| `.ts` | TypeScript | 类型安全、异步 |
|
|
153
|
+
| `oh-package.json5` | 配置 | 依赖版本 |
|
|
154
|
+
| `module.json5` | 配置 | 权限、API Level |
|
|
155
|
+
|
|
156
|
+
> 完整分类参见 [文件类型指南](references/FILE_TYPE_GUIDE.md)
|
|
157
|
+
|
|
158
|
+
### 2.3 理解改动意图
|
|
159
|
+
|
|
160
|
+
结合 PR 标题、commit message、diff 上下文分析修改目的。
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## Phase 3:代码深度检视
|
|
165
|
+
|
|
166
|
+
对每个 `.ets` / `.ts` 文件逐项检查。
|
|
167
|
+
|
|
168
|
+
### 3.1 核心检视维度
|
|
169
|
+
|
|
170
|
+
| 维度 | 检查要点 |
|
|
171
|
+
|------|----------|
|
|
172
|
+
| 非兼容变更 | 删除/修改公开 API、函数签名变更 |
|
|
173
|
+
| ArkTS 约束 | 无 `any`、无动态代码、装饰器正确 |
|
|
174
|
+
| API 兼容性 | minAPIVersion 匹配、权限正确 |
|
|
175
|
+
| 异步处理 | await 不遗漏、try/catch 完整 |
|
|
176
|
+
| 事件监听 | on/off 对称、生命周期正确 |
|
|
177
|
+
| 错误处理 | 错误码完整、return/break 正确 |
|
|
178
|
+
| 内存管理 | 监听器清理、定时器清除 |
|
|
179
|
+
| 安全性 | 无硬编码密钥、输入校验 |
|
|
180
|
+
|
|
181
|
+
> 完整检查清单参见 [代码检视指南](references/CODE_CHECK_GUIDE.md)
|
|
182
|
+
|
|
183
|
+
**专项检查规范**(详见指南 3.14 / 3.15 节):
|
|
184
|
+
- **静态检查工具(arkts_check)使用规范**:必须以绝对路径调用(相对路径会产生假阴性静默漏检);`Cannot find module '@ohos/*'` 为 ohpm 本地依赖解析的环境误报,不计入问题统计;采用**基线对照法**(对 master 既有文件跑同样检查)区分"PR 引入"与"历史存量"违规
|
|
185
|
+
- **测试型 PR 检查清单**:纯测试补充型 PR 须执行导入符号核验、构造函数签名比对、夹具数据解码核验、未使用导入检测、新文件 License 头一致性、测试脚手架与库内部契约链路确认
|
|
186
|
+
|
|
187
|
+
### 3.2 问题严重程度
|
|
188
|
+
|
|
189
|
+
| 级别 | 标识 | 说明 |
|
|
190
|
+
|------|------|------|
|
|
191
|
+
| Blocker | 🔴 | 必须修复,影响功能/安全/兼容 |
|
|
192
|
+
| Major | 🟡 | 建议修复,存在风险 |
|
|
193
|
+
| Minor | 🔵 | 优化建议 |
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## Phase 4:影响分析
|
|
198
|
+
|
|
199
|
+
综合评估:
|
|
200
|
+
- **功能影响**:新功能或行为变更
|
|
201
|
+
- **兼容性影响**:接口向后兼容性
|
|
202
|
+
- **性能影响**:异步优化、对象创建等
|
|
203
|
+
- **安全影响**:修复或引入安全问题
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Phase 5:生成报告
|
|
208
|
+
|
|
209
|
+
输出文件:
|
|
210
|
+
- `{outputDir}/check-report.md` — 检视报告
|
|
211
|
+
- `{outputDir}/changed-files.txt` — 修改文件列表(基于范围过滤后的 diff 生成)
|
|
212
|
+
- `{outputDir}/pr-diff.txt` — PR 累积差异(目标库目录范围内,检视核心依据)
|
|
213
|
+
- `{outputDir}/pr-diff-raw.txt` — PR 全量累积差异(base → PR HEAD,仅供参考,不用于检视)
|
|
214
|
+
- `{outputDir}/pr.patch` — 最新 commit patch(仅供 commit 元数据参考)
|
|
215
|
+
- `{outputDir}/result.txt` — 合入建议分级结果
|
|
216
|
+
|
|
217
|
+
> 报告模板参见 [报告模板](references/REPORT_TEMPLATE.md)
|
|
218
|
+
|
|
219
|
+
### 5.1 合入建议分级标准
|
|
220
|
+
|
|
221
|
+
根据代码检视结果,将合入建议分为四个等级:
|
|
222
|
+
|
|
223
|
+
| 等级 | 标识 | 颜色建议 | 判断标准 | 举例场景 |
|
|
224
|
+
|------|------|----------|----------|----------|
|
|
225
|
+
| **建议合入** | ✅ `PASS` | 绿色 | 无或极少(≤2 Minor)修改引入问题,改动风险低,功能验证充分 | 纯文档更新、配置优化、已验证的 Bug 修复 |
|
|
226
|
+
| **条件合入** | ⚠️ `CONDITIONAL` | 黄色 | 存在少量(≤3 Major)可修复问题,在特定条件下可合入 | 需补充测试用例、需调整文档说明、非核心路径兼容性问题 |
|
|
227
|
+
| **修改后合入** | 🔧 `NEED_FIX` | 橙色 | 存在较多问题(≥1 Blocker 或 ≥4 Major),需修复后方可合入 | API 兼容性破坏、性能风险、内存泄漏、异步逻辑缺陷 |
|
|
228
|
+
| **不允许合入** | ❌ `REJECT` | 红色 | 存在严重问题(≥2 Blocker),影响功能/安全/稳定性,不建议合入 | 安全漏洞、严重兼容性破坏、架构缺陷、未验证的重大变更 |
|
|
229
|
+
|
|
230
|
+
**分级判断流程**:
|
|
231
|
+
|
|
232
|
+
```
|
|
233
|
+
统计问题数量:
|
|
234
|
+
- Blocker 级别问题数
|
|
235
|
+
- Major 级别问题数
|
|
236
|
+
- Minor 级别问题数
|
|
237
|
+
|
|
238
|
+
判断逻辑:
|
|
239
|
+
IF Blocker ≥ 2 → ❌ REJECT
|
|
240
|
+
IF Blocker ≥ 1 → 🔧 NEED_FIX
|
|
241
|
+
IF Major ≥ 4 → 🔧 NEED_FIX
|
|
242
|
+
IF Major ≥ 1 → ⚠️ CONDITIONAL
|
|
243
|
+
IF Minor ≤ 2 → ✅ PASS
|
|
244
|
+
ELSE → ⚠️ CONDITIONAL
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
### 5.2 result.txt 文件格式
|
|
248
|
+
|
|
249
|
+
`result.txt` 用于存储分级结果和统计信息,格式如下:
|
|
250
|
+
|
|
251
|
+
```txt
|
|
252
|
+
=== 合入建议分级报告 ===
|
|
253
|
+
PR 地址:{prUrl}
|
|
254
|
+
仓库:{owner}/{repo}
|
|
255
|
+
PR 编号:#{prNumber}
|
|
256
|
+
生成时间:{YYYY-MM-DD HH:mm:ss}
|
|
257
|
+
|
|
258
|
+
【合入建议】:✅ 建议合入
|
|
259
|
+
|
|
260
|
+
【问题统计】
|
|
261
|
+
- Blocker 级别:0 个
|
|
262
|
+
- Major 级别:0 个
|
|
263
|
+
- Minor 级别:2 个
|
|
264
|
+
|
|
265
|
+
【分级理由】
|
|
266
|
+
本次修改仅包含少量 Minor 级别优化建议,无功能性问题,改动风险低,建议直接合入。
|
|
267
|
+
|
|
268
|
+
【详细分析】
|
|
269
|
+
━━━ Minor 级别问题 ━━━
|
|
270
|
+
1. [文件类型:代码质量] 删除了无用变量 `pairFlag`,代码更简洁
|
|
271
|
+
2. [文件类型:可观测性] 错误信息从模糊描述改为包含 `e.code` 和 `e.message` 的格式
|
|
272
|
+
|
|
273
|
+
━━━ 合入建议 ━━━
|
|
274
|
+
建议合入:本次修改质量良好,无功能性风险。
|
|
275
|
+
|
|
276
|
+
=== 分级结束 ===
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
### 5.3 结构化指标输出(必须执行)
|
|
280
|
+
|
|
281
|
+
执行环境会在任务 prompt 中下发一个**结构化指标文件输出路径**(`stepId{X}_loop{L}_meta_{N}.json`)。
|
|
282
|
+
检视完成后,**必须**将分级结果以下述 JSON 对象写入该路径:
|
|
283
|
+
|
|
284
|
+
```json
|
|
285
|
+
{
|
|
286
|
+
"mergeLevel": "PASS | CONDITIONAL | NEED_FIX | REJECT",
|
|
287
|
+
"blocker": 0,
|
|
288
|
+
"major": 0,
|
|
289
|
+
"minor": 0
|
|
290
|
+
}
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
| 字段 | 类型 | 说明 |
|
|
294
|
+
|------|------|------|
|
|
295
|
+
| `mergeLevel` | string | 合入等级:PASS / CONDITIONAL / NEED_FIX / REJECT |
|
|
296
|
+
| `blocker` | number | Blocker 级别问题数 |
|
|
297
|
+
| `major` | number | Major 级别问题数 |
|
|
298
|
+
| `minor` | number | Minor 级别问题数 |
|
|
299
|
+
|
|
300
|
+
**说明**:该文件由执行框架自动收割入库(前端/历史列表直接读取,无需解析报告文本);详细的统计与理由已在 `result.txt` 中完整记录。若 prompt 未下发该路径则跳过本节。
|
|
301
|
+
|
|
302
|
+
---
|
|
303
|
+
|
|
304
|
+
## 注意事项
|
|
305
|
+
|
|
306
|
+
1. **必须克隆仓库**:用于深度检视和跨文件引用分析,不可仅凭 diff 下结论
|
|
307
|
+
2. **必须使用累积 diff 进行检视**:`pr.patch`(单次 commit patch)可能仅包含部分变更,必须使用 `git diff {targetBranch}..pr{prNumber}` 生成的累积 diff。实际案例中 pr.patch 仅 1 个文件,但累积 diff 有 21 个文件
|
|
308
|
+
3. **必须识别 PR 检视范围**(新增):Monorepo 中 fork 分支的累积 diff 可能包含不属于本 PR 的其他库变更,必须根据 PR 标题/描述识别目标库目录,将 diff 限定在该范围内。实际案例:PR #3042 标题为 `eventsource: fix:`,但累积 diff 包含 113 个文件(含 ohos_rive、ohos_7zip 等),不过滤会导致误判 REJECT
|
|
309
|
+
4. **克隆失败处理**:在报告中注明,继续基于 diff 完成分析
|
|
310
|
+
5. **Patch 过大**:优先分析 `.ets`/`.ts` 文件,其余按改动量排序
|
|
311
|
+
6. **PR 更新检测**:每次检视前重新获取 PR 元数据,对比 head.sha 是否变化;若变化,必须重新 fetch 并重新生成 pr-diff.txt 和所有报告
|
|
312
|
+
7. **所有操作记录日志**:方便问题排查
|
|
313
|
+
|
|
314
|
+
---
|
|
315
|
+
|
|
316
|
+
## 快速参考
|
|
317
|
+
|
|
318
|
+
- [信息收集详细指南](references/PHASE1_INFO_COLLECTION.md)
|
|
319
|
+
- [代码检视检查清单](references/CODE_CHECK_GUIDE.md)
|
|
320
|
+
- [检视报告模板](references/REPORT_TEMPLATE.md)
|
|
321
321
|
- [文件类型识别指南](references/FILE_TYPE_GUIDE.md)
|