@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,233 +1,233 @@
|
|
|
1
|
-
# Phase 1:信息收集详细指南
|
|
2
|
-
|
|
3
|
-
本文档包含 ArkTS 代码检视第一阶段(输入解析与信息收集)的详细操作步骤。
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 1.1 解析 PR 地址
|
|
8
|
-
|
|
9
|
-
从 `prUrl` 中提取以下字段:
|
|
10
|
-
|
|
11
|
-
| 平台 | URL 模式 |
|
|
12
|
-
|------|----------|
|
|
13
|
-
| GitHub | `https://github.com/{owner}/{repo}/pull/{num}` |
|
|
14
|
-
| GitCode | `https://gitcode.com/{owner}/{repo}/pulls/{num}` |
|
|
15
|
-
| Gitee | `https://gitee.com/{owner}/{repo}/pulls/{num}` |
|
|
16
|
-
| GitLab | `https://gitlab.com/{owner}/{repo}/-/merge_requests/{num}` |
|
|
17
|
-
|
|
18
|
-
提取字段:`platform`、`owner`、`repo`、`prNumber`。
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## 1.2 获取 PR 元数据
|
|
23
|
-
|
|
24
|
-
调用平台 API 获取 PR 基本信息:
|
|
25
|
-
|
|
26
|
-
```bash
|
|
27
|
-
curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/pulls/{prNumber}?access_token={accessToken}"
|
|
28
|
-
```
|
|
29
|
-
|
|
30
|
-
从响应 JSON 提取:
|
|
31
|
-
|
|
32
|
-
| 字段 | JSON 路径 | 说明 |
|
|
33
|
-
|------|-----------|------|
|
|
34
|
-
| PR 标题 | `title` | |
|
|
35
|
-
| 目标分支 | `base.ref` | targetBranch |
|
|
36
|
-
| Head SHA | `head.sha` | PR 最新提交(用于获取 patch) |
|
|
37
|
-
| 作者 | `user.name` / `user.email` | |
|
|
38
|
-
| 创建时间 | `created_at` | |
|
|
39
|
-
| PR 状态 | `state` | open/merged/closed |
|
|
40
|
-
|
|
41
|
-
> ⚠️ 若用户已通过 `branch` 参数提供目标分支,直接使用,不覆盖。
|
|
42
|
-
|
|
43
|
-
---
|
|
44
|
-
|
|
45
|
-
## 1.3 获取 Commit Patch(仅供参考)
|
|
46
|
-
|
|
47
|
-
> 获取 PR 最新 commit 的 patch 文件,主要用于提取 commit 元数据(作者、日期、message)。
|
|
48
|
-
> **此 patch 仅包含单次 commit 的差异,不代表 PR 全量变更。**
|
|
49
|
-
|
|
50
|
-
```bash
|
|
51
|
-
curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/commit/{headSha}/patch?access_token={accessToken}" -o {outputDir}/pr.patch
|
|
52
|
-
```
|
|
53
|
-
|
|
54
|
-
**关键注意**:
|
|
55
|
-
- 路径使用 `commit`(单数),不是 `commits`(复数)
|
|
56
|
-
- `{headSha}` 从 PR 元数据的 `head.sha` 字段获取
|
|
57
|
-
- **pr.patch 仅包含最新一次 commit 的差异**,若 PR 有多个 commit,需使用 1.5 步骤的累积 diff
|
|
58
|
-
|
|
59
|
-
**Patch 文件格式**:
|
|
60
|
-
```
|
|
61
|
-
From <commit-hash> Mon Sep 17 00:00:00 2001
|
|
62
|
-
From: <author> <email>
|
|
63
|
-
Date: <date>
|
|
64
|
-
Subject: [PATCH] <commit message>
|
|
65
|
-
|
|
66
|
-
<file change statistics>
|
|
67
|
-
|
|
68
|
-
diff --git a/<file> b/<file>
|
|
69
|
-
...
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
**从 Patch 提取信息**:
|
|
73
|
-
- Commit 作者、日期、message(头部元数据)
|
|
74
|
-
- 修改文件列表(扫描 `diff --git a/<file> b/<file>` 行)
|
|
75
|
-
- 文件变更统计(`<file> | <added> +, <removed> -` 行)
|
|
76
|
-
- 具体代码变更(diff hunks)
|
|
77
|
-
|
|
78
|
-
> ⚠️ **仅凭 pr.patch 可能遗漏 PR 的大量变更**。例如:某 PR head.sha 的 patch 仅包含 1 个文件的修改,但该 PR 实际包含 21 个文件的累积变更。必须使用 1.5 步骤的累积 diff 进行完整检视。
|
|
79
|
-
|
|
80
|
-
---
|
|
81
|
-
|
|
82
|
-
## 1.4 克隆仓库获取完整上下文
|
|
83
|
-
|
|
84
|
-
> **必须克隆仓库**,用于深度检视和跨文件引用分析,同时用于生成累积 diff。
|
|
85
|
-
|
|
86
|
-
```bash
|
|
87
|
-
git clone --depth=50 --branch {targetBranch} https://gitcode.com/{owner}/{repo}.git {outputDir}/source/
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
**克隆失败处理**:
|
|
91
|
-
- 若指定分支克隆失败,去掉 `--branch` 参数克隆默认分支
|
|
92
|
-
- 克隆后通过 `git ls-remote origin` 查找 `refs/merge-requests/{prNumber}/head`
|
|
93
|
-
- 再用 `git fetch origin refs/merge-requests/{prNumber}/head:pr{prNumber}` 拉取 PR HEAD
|
|
94
|
-
- 若克隆完全失败,在报告中注明"未能获取完整仓库上下文"并继续分析
|
|
95
|
-
|
|
96
|
-
**需要查阅完整源码的场景**:
|
|
97
|
-
- diff 删除了成员变量赋值 → 搜索该变量所有引用
|
|
98
|
-
- diff 修改了方法参数 → 查看函数定义确认签名
|
|
99
|
-
- diff 修改了 null 判断逻辑 → 追踪变量赋值路径
|
|
100
|
-
- diff 新增/删除事件监听 → 查阅完整类确认生命周期
|
|
101
|
-
|
|
102
|
-
---
|
|
103
|
-
|
|
104
|
-
## 1.5 获取 PR 累积差异(检视核心依据)
|
|
105
|
-
|
|
106
|
-
> **⚠️ 此步骤为检视的核心数据来源。必须基于累积 diff 进行检视,而非单次 commit patch。**
|
|
107
|
-
|
|
108
|
-
克隆仓库并 fetch PR HEAD 后,必须生成从 base 分支到 PR HEAD 的累积 diff:
|
|
109
|
-
|
|
110
|
-
```bash
|
|
111
|
-
cd {outputDir}/source/
|
|
112
|
-
|
|
113
|
-
# 1. fetch PR HEAD(若已在 1.4 中执行则跳过)
|
|
114
|
-
git fetch origin refs/merge-requests/{prNumber}/head:pr{prNumber}
|
|
115
|
-
|
|
116
|
-
# 2. checkout PR 分支
|
|
117
|
-
git checkout pr{prNumber}
|
|
118
|
-
|
|
119
|
-
# 3. 生成全量累积 diff(保存原始全量用于参考)
|
|
120
|
-
git diff {targetBranch}..pr{prNumber} > {outputDir}/pr-diff-raw.txt
|
|
121
|
-
|
|
122
|
-
# 4. 统计全量变更规模(用于对比和记录)
|
|
123
|
-
git diff --stat {targetBranch}..pr{prNumber}
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
**为什么必须使用累积 diff**:
|
|
127
|
-
- PR 可能包含多个 commit,单次 commit patch(pr.patch)无法反映全量变更
|
|
128
|
-
- 实际案例:某 PR 的 head.sha patch 仅包含 1 个文件修改(魔法数字替换),但累积 diff 包含 21 个文件变更(6处内存泄漏修复、8处null安全、测试新增等)
|
|
129
|
-
- 若仅基于 pr.patch 检视,会遗漏大量关键变更
|
|
130
|
-
|
|
131
|
-
**⚠️ 全量累积 diff 可能包含非 PR 意图范围的变更**:
|
|
132
|
-
- 在 Monorepo(如 `openharmony_tpc_samples`)中,fork 分支的 master 通过 merge commit 合入了其他 PR 的变更
|
|
133
|
-
- `git diff {targetBranch}..pr{prNumber}` 比较的是主仓库 master vs fork 的完整历史,包含所有分歧变更
|
|
134
|
-
- 实际案例:PR #3042 累积 diff 包含 113 个文件(ohos_rive、ohos_7zip、spinec、GstreamerDemo 等),但仅 18 个 eventsource 文件属于本 PR
|
|
135
|
-
- 必须在 1.6 步骤进行范围过滤,否则会将其他库的问题误判为本 PR 的 Blocker
|
|
136
|
-
|
|
137
|
-
**PR 更新检测**:
|
|
138
|
-
- PR 推送新 commit 后,`head.sha` 会变化(本次案例:从 `cb3b3235` 变为 `581a1c3`)
|
|
139
|
-
- **每次检视前必须重新获取 PR 元数据,对比 head.sha 是否变化**
|
|
140
|
-
- 若 head.sha 变化,必须:
|
|
141
|
-
1. 重新 fetch PR HEAD:`git fetch origin refs/merge-requests/{prNumber}/head:pr{prNumber}`
|
|
142
|
-
2. 重新 checkout 并生成 pr-diff-raw.txt 和 pr-diff.txt
|
|
143
|
-
3. 重新生成所有报告文件
|
|
144
|
-
|
|
145
|
-
---
|
|
146
|
-
|
|
147
|
-
## 1.6 识别 PR 检视范围并过滤 diff(关键步骤)
|
|
148
|
-
|
|
149
|
-
> **⚠️ 此步骤防止检视范围污染,是 v2.1 新增的核心改进。**
|
|
150
|
-
|
|
151
|
-
### 问题背景
|
|
152
|
-
|
|
153
|
-
Monorepo(包含多个三方库子目录的仓库,如 `openharmony_tpc_samples`)中,fork 分支的 master 通常通过 merge commit 合入了其他 PR 的变更。此时全量累积 diff `git diff {targetBranch}..pr{prNumber}` 会包含**不属于本 PR 意图范围**的文件变更,导致检视范围污染。
|
|
154
|
-
|
|
155
|
-
**实际案例**(PR #3042):
|
|
156
|
-
- PR 标题:`eventsource: fix: 资源泄漏修复、错误处理增强`
|
|
157
|
-
- 全量累积 diff:113 个文件,包含 ohos_rive(18 文件)、ohos_7zip(17 文件)、spinec(6 文件)、GstreamerDemo(54 文件删除)
|
|
158
|
-
- PR 实际意图范围:仅 eventsource(18 文件)
|
|
159
|
-
- **后果**:若不过滤,ohos_rive 的内存安全回归会被误判为本 PR 的 3 个 Blocker,导致错误的 REJECT 结论
|
|
160
|
-
- 过滤后仅检视 18 个 eventsource 文件,正确结论为 PASS
|
|
161
|
-
|
|
162
|
-
### 识别方法
|
|
163
|
-
|
|
164
|
-
按优先级依次尝试:
|
|
165
|
-
|
|
166
|
-
| 方法 | 说明 | 示例 |
|
|
167
|
-
|------|------|------|
|
|
168
|
-
| PR 标题前缀 | 标题中冒号前的库名 | `eventsource: fix: ...` → `eventsource` |
|
|
169
|
-
| PR body 描述 | 描述中提及的目标库 | "修复 eventsource 的资源泄漏" → `eventsource` |
|
|
170
|
-
| Commit message | commit 中提及的目标库 | `fix: 代码质量加固` → 需结合变更文件判断 |
|
|
171
|
-
| 变更文件公共父目录 | 最深层公共父目录名 | 所有变更在 `eventsource/` 下 → `eventsource` |
|
|
172
|
-
|
|
173
|
-
**提取逻辑**:
|
|
174
|
-
```
|
|
175
|
-
1. 检查 PR title 是否包含 "库名:" 格式 → 提取库名
|
|
176
|
-
2. 检查 PR body 是否提及库名 → 提取库名
|
|
177
|
-
3. 分析变更文件列表,取公共父目录(去掉 source/ 等前缀)
|
|
178
|
-
4. 若多个库都有变更,优先取 PR 标题/body 指定的库
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
### 过滤操作
|
|
182
|
-
|
|
183
|
-
```bash
|
|
184
|
-
cd {outputDir}/source/
|
|
185
|
-
|
|
186
|
-
# 仅保留目标库目录下的 diff(关键:避免检视范围污染)
|
|
187
|
-
git diff {targetBranch}..pr{prNumber} -- {targetLibraryDir}/ > {outputDir}/pr-diff.txt
|
|
188
|
-
|
|
189
|
-
# 重新统计(基于过滤后的 diff)
|
|
190
|
-
git diff --stat {targetBranch}..pr{prNumber} -- {targetLibraryDir}/
|
|
191
|
-
|
|
192
|
-
# 重新生成 changed-files.txt(基于过滤后的 diff)
|
|
193
|
-
# ⚠️ 禁止使用 sed 's/diff --git a\/.* b\/\//' —— macOS BSD sed 对该转义组合不兼容,
|
|
194
|
-
# 会报 "unterminated substitute in regular expression" 并静默生成 0 字节空文件
|
|
195
|
-
grep "^diff --git" {outputDir}/pr-diff.txt | awk '{print $4}' | sed 's/^b\///' > {outputDir}/changed-files.txt
|
|
196
|
-
|
|
197
|
-
# 生成后必须校验非空(0 字节空文件 = 提取失败,会导致后续检视范围判断失据,且收尾前不易察觉)
|
|
198
|
-
wc -l {outputDir}/changed-files.txt
|
|
199
|
-
```
|
|
200
|
-
|
|
201
|
-
### 边界情况
|
|
202
|
-
|
|
203
|
-
| 场景 | 处理方式 |
|
|
204
|
-
|------|----------|
|
|
205
|
-
| PR 标题不含库名 | 使用变更文件公共父目录 |
|
|
206
|
-
| PR 跨多个库修改 | 检视所有涉及的库目录,但每个库独立检视 |
|
|
207
|
-
| PR 仅修改配置/根文件(不涉及子库) | 不做目录过滤,全量检视 |
|
|
208
|
-
| fork 分支与主仓库 master 无分歧 | 全量 diff = 目标范围 diff,过滤无影响 |
|
|
209
|
-
|
|
210
|
-
---
|
|
211
|
-
|
|
212
|
-
## 1.7 保存输出文件
|
|
213
|
-
|
|
214
|
-
| 文件 | 内容 | 用途 |
|
|
215
|
-
|------|------|------|
|
|
216
|
-
| `{outputDir}/pr.patch` | 最新 commit 的 patch(unified diff 格式) | 参考:commit 元数据提取 |
|
|
217
|
-
| `{outputDir}/pr-diff-raw.txt` | PR 全量累积 diff(base → PR HEAD,所有文件) | 参考:记录全量变更,不用于检视 |
|
|
218
|
-
| `{outputDir}/pr-diff.txt` | PR 累积 diff(目标库目录范围内) | **检视核心依据** |
|
|
219
|
-
| `{outputDir}/changed-files.txt` | 修改文件列表(基于范围过滤后的 diff) | 文件清单 |
|
|
220
|
-
|
|
221
|
-
**生成 changed-files.txt**:
|
|
222
|
-
```bash
|
|
223
|
-
# 基于范围过滤后的 diff 生成(而非 pr-diff-raw.txt 或 pr.patch)
|
|
224
|
-
# ⚠️ 禁止使用 sed 's/diff --git a\/.* b\/\//' —— macOS BSD sed 不兼容该转义组合,
|
|
225
|
-
# 会静默生成 0 字节空文件;改用 awk 提取第 4 列再去掉 b/ 前缀
|
|
226
|
-
grep "^diff --git" {outputDir}/pr-diff.txt | awk '{print $4}' | sed 's/^b\///' > {outputDir}/changed-files.txt
|
|
227
|
-
|
|
228
|
-
# 生成后必须校验非空(自检步骤:空文件意味着提取失败,必须立即发现而非收尾时)
|
|
229
|
-
wc -l {outputDir}/changed-files.txt
|
|
230
|
-
```
|
|
231
|
-
|
|
232
|
-
> **注意**:changed-files.txt 必须基于 `pr-diff.txt`(范围过滤后的累积 diff)生成,而非 `pr-diff-raw.txt`(全量累积 diff)或 `pr.patch`(单次 commit)。
|
|
233
|
-
> **自检要求**:`wc -l` 结果为 0 行时禁止继续后续流程,必须先排查 diff 生成与提取命令是否失败(实际案例:mp3agic PR #53 中 BSD sed 静默失败生成空文件,直至收尾才发现,险些遗漏检视范围)。
|
|
1
|
+
# Phase 1:信息收集详细指南
|
|
2
|
+
|
|
3
|
+
本文档包含 ArkTS 代码检视第一阶段(输入解析与信息收集)的详细操作步骤。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1.1 解析 PR 地址
|
|
8
|
+
|
|
9
|
+
从 `prUrl` 中提取以下字段:
|
|
10
|
+
|
|
11
|
+
| 平台 | URL 模式 |
|
|
12
|
+
|------|----------|
|
|
13
|
+
| GitHub | `https://github.com/{owner}/{repo}/pull/{num}` |
|
|
14
|
+
| GitCode | `https://gitcode.com/{owner}/{repo}/pulls/{num}` |
|
|
15
|
+
| Gitee | `https://gitee.com/{owner}/{repo}/pulls/{num}` |
|
|
16
|
+
| GitLab | `https://gitlab.com/{owner}/{repo}/-/merge_requests/{num}` |
|
|
17
|
+
|
|
18
|
+
提取字段:`platform`、`owner`、`repo`、`prNumber`。
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 1.2 获取 PR 元数据
|
|
23
|
+
|
|
24
|
+
调用平台 API 获取 PR 基本信息:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/pulls/{prNumber}?access_token={accessToken}"
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
从响应 JSON 提取:
|
|
31
|
+
|
|
32
|
+
| 字段 | JSON 路径 | 说明 |
|
|
33
|
+
|------|-----------|------|
|
|
34
|
+
| PR 标题 | `title` | |
|
|
35
|
+
| 目标分支 | `base.ref` | targetBranch |
|
|
36
|
+
| Head SHA | `head.sha` | PR 最新提交(用于获取 patch) |
|
|
37
|
+
| 作者 | `user.name` / `user.email` | |
|
|
38
|
+
| 创建时间 | `created_at` | |
|
|
39
|
+
| PR 状态 | `state` | open/merged/closed |
|
|
40
|
+
|
|
41
|
+
> ⚠️ 若用户已通过 `branch` 参数提供目标分支,直接使用,不覆盖。
|
|
42
|
+
|
|
43
|
+
---
|
|
44
|
+
|
|
45
|
+
## 1.3 获取 Commit Patch(仅供参考)
|
|
46
|
+
|
|
47
|
+
> 获取 PR 最新 commit 的 patch 文件,主要用于提取 commit 元数据(作者、日期、message)。
|
|
48
|
+
> **此 patch 仅包含单次 commit 的差异,不代表 PR 全量变更。**
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
curl -s "https://api.gitcode.com/api/v5/repos/{owner}/{repo}/commit/{headSha}/patch?access_token={accessToken}" -o {outputDir}/pr.patch
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
**关键注意**:
|
|
55
|
+
- 路径使用 `commit`(单数),不是 `commits`(复数)
|
|
56
|
+
- `{headSha}` 从 PR 元数据的 `head.sha` 字段获取
|
|
57
|
+
- **pr.patch 仅包含最新一次 commit 的差异**,若 PR 有多个 commit,需使用 1.5 步骤的累积 diff
|
|
58
|
+
|
|
59
|
+
**Patch 文件格式**:
|
|
60
|
+
```
|
|
61
|
+
From <commit-hash> Mon Sep 17 00:00:00 2001
|
|
62
|
+
From: <author> <email>
|
|
63
|
+
Date: <date>
|
|
64
|
+
Subject: [PATCH] <commit message>
|
|
65
|
+
|
|
66
|
+
<file change statistics>
|
|
67
|
+
|
|
68
|
+
diff --git a/<file> b/<file>
|
|
69
|
+
...
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**从 Patch 提取信息**:
|
|
73
|
+
- Commit 作者、日期、message(头部元数据)
|
|
74
|
+
- 修改文件列表(扫描 `diff --git a/<file> b/<file>` 行)
|
|
75
|
+
- 文件变更统计(`<file> | <added> +, <removed> -` 行)
|
|
76
|
+
- 具体代码变更(diff hunks)
|
|
77
|
+
|
|
78
|
+
> ⚠️ **仅凭 pr.patch 可能遗漏 PR 的大量变更**。例如:某 PR head.sha 的 patch 仅包含 1 个文件的修改,但该 PR 实际包含 21 个文件的累积变更。必须使用 1.5 步骤的累积 diff 进行完整检视。
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 1.4 克隆仓库获取完整上下文
|
|
83
|
+
|
|
84
|
+
> **必须克隆仓库**,用于深度检视和跨文件引用分析,同时用于生成累积 diff。
|
|
85
|
+
|
|
86
|
+
```bash
|
|
87
|
+
git clone --depth=50 --branch {targetBranch} https://gitcode.com/{owner}/{repo}.git {outputDir}/source/
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**克隆失败处理**:
|
|
91
|
+
- 若指定分支克隆失败,去掉 `--branch` 参数克隆默认分支
|
|
92
|
+
- 克隆后通过 `git ls-remote origin` 查找 `refs/merge-requests/{prNumber}/head`
|
|
93
|
+
- 再用 `git fetch origin refs/merge-requests/{prNumber}/head:pr{prNumber}` 拉取 PR HEAD
|
|
94
|
+
- 若克隆完全失败,在报告中注明"未能获取完整仓库上下文"并继续分析
|
|
95
|
+
|
|
96
|
+
**需要查阅完整源码的场景**:
|
|
97
|
+
- diff 删除了成员变量赋值 → 搜索该变量所有引用
|
|
98
|
+
- diff 修改了方法参数 → 查看函数定义确认签名
|
|
99
|
+
- diff 修改了 null 判断逻辑 → 追踪变量赋值路径
|
|
100
|
+
- diff 新增/删除事件监听 → 查阅完整类确认生命周期
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## 1.5 获取 PR 累积差异(检视核心依据)
|
|
105
|
+
|
|
106
|
+
> **⚠️ 此步骤为检视的核心数据来源。必须基于累积 diff 进行检视,而非单次 commit patch。**
|
|
107
|
+
|
|
108
|
+
克隆仓库并 fetch PR HEAD 后,必须生成从 base 分支到 PR HEAD 的累积 diff:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
cd {outputDir}/source/
|
|
112
|
+
|
|
113
|
+
# 1. fetch PR HEAD(若已在 1.4 中执行则跳过)
|
|
114
|
+
git fetch origin refs/merge-requests/{prNumber}/head:pr{prNumber}
|
|
115
|
+
|
|
116
|
+
# 2. checkout PR 分支
|
|
117
|
+
git checkout pr{prNumber}
|
|
118
|
+
|
|
119
|
+
# 3. 生成全量累积 diff(保存原始全量用于参考)
|
|
120
|
+
git diff {targetBranch}..pr{prNumber} > {outputDir}/pr-diff-raw.txt
|
|
121
|
+
|
|
122
|
+
# 4. 统计全量变更规模(用于对比和记录)
|
|
123
|
+
git diff --stat {targetBranch}..pr{prNumber}
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
**为什么必须使用累积 diff**:
|
|
127
|
+
- PR 可能包含多个 commit,单次 commit patch(pr.patch)无法反映全量变更
|
|
128
|
+
- 实际案例:某 PR 的 head.sha patch 仅包含 1 个文件修改(魔法数字替换),但累积 diff 包含 21 个文件变更(6处内存泄漏修复、8处null安全、测试新增等)
|
|
129
|
+
- 若仅基于 pr.patch 检视,会遗漏大量关键变更
|
|
130
|
+
|
|
131
|
+
**⚠️ 全量累积 diff 可能包含非 PR 意图范围的变更**:
|
|
132
|
+
- 在 Monorepo(如 `openharmony_tpc_samples`)中,fork 分支的 master 通过 merge commit 合入了其他 PR 的变更
|
|
133
|
+
- `git diff {targetBranch}..pr{prNumber}` 比较的是主仓库 master vs fork 的完整历史,包含所有分歧变更
|
|
134
|
+
- 实际案例:PR #3042 累积 diff 包含 113 个文件(ohos_rive、ohos_7zip、spinec、GstreamerDemo 等),但仅 18 个 eventsource 文件属于本 PR
|
|
135
|
+
- 必须在 1.6 步骤进行范围过滤,否则会将其他库的问题误判为本 PR 的 Blocker
|
|
136
|
+
|
|
137
|
+
**PR 更新检测**:
|
|
138
|
+
- PR 推送新 commit 后,`head.sha` 会变化(本次案例:从 `cb3b3235` 变为 `581a1c3`)
|
|
139
|
+
- **每次检视前必须重新获取 PR 元数据,对比 head.sha 是否变化**
|
|
140
|
+
- 若 head.sha 变化,必须:
|
|
141
|
+
1. 重新 fetch PR HEAD:`git fetch origin refs/merge-requests/{prNumber}/head:pr{prNumber}`
|
|
142
|
+
2. 重新 checkout 并生成 pr-diff-raw.txt 和 pr-diff.txt
|
|
143
|
+
3. 重新生成所有报告文件
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 1.6 识别 PR 检视范围并过滤 diff(关键步骤)
|
|
148
|
+
|
|
149
|
+
> **⚠️ 此步骤防止检视范围污染,是 v2.1 新增的核心改进。**
|
|
150
|
+
|
|
151
|
+
### 问题背景
|
|
152
|
+
|
|
153
|
+
Monorepo(包含多个三方库子目录的仓库,如 `openharmony_tpc_samples`)中,fork 分支的 master 通常通过 merge commit 合入了其他 PR 的变更。此时全量累积 diff `git diff {targetBranch}..pr{prNumber}` 会包含**不属于本 PR 意图范围**的文件变更,导致检视范围污染。
|
|
154
|
+
|
|
155
|
+
**实际案例**(PR #3042):
|
|
156
|
+
- PR 标题:`eventsource: fix: 资源泄漏修复、错误处理增强`
|
|
157
|
+
- 全量累积 diff:113 个文件,包含 ohos_rive(18 文件)、ohos_7zip(17 文件)、spinec(6 文件)、GstreamerDemo(54 文件删除)
|
|
158
|
+
- PR 实际意图范围:仅 eventsource(18 文件)
|
|
159
|
+
- **后果**:若不过滤,ohos_rive 的内存安全回归会被误判为本 PR 的 3 个 Blocker,导致错误的 REJECT 结论
|
|
160
|
+
- 过滤后仅检视 18 个 eventsource 文件,正确结论为 PASS
|
|
161
|
+
|
|
162
|
+
### 识别方法
|
|
163
|
+
|
|
164
|
+
按优先级依次尝试:
|
|
165
|
+
|
|
166
|
+
| 方法 | 说明 | 示例 |
|
|
167
|
+
|------|------|------|
|
|
168
|
+
| PR 标题前缀 | 标题中冒号前的库名 | `eventsource: fix: ...` → `eventsource` |
|
|
169
|
+
| PR body 描述 | 描述中提及的目标库 | "修复 eventsource 的资源泄漏" → `eventsource` |
|
|
170
|
+
| Commit message | commit 中提及的目标库 | `fix: 代码质量加固` → 需结合变更文件判断 |
|
|
171
|
+
| 变更文件公共父目录 | 最深层公共父目录名 | 所有变更在 `eventsource/` 下 → `eventsource` |
|
|
172
|
+
|
|
173
|
+
**提取逻辑**:
|
|
174
|
+
```
|
|
175
|
+
1. 检查 PR title 是否包含 "库名:" 格式 → 提取库名
|
|
176
|
+
2. 检查 PR body 是否提及库名 → 提取库名
|
|
177
|
+
3. 分析变更文件列表,取公共父目录(去掉 source/ 等前缀)
|
|
178
|
+
4. 若多个库都有变更,优先取 PR 标题/body 指定的库
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
### 过滤操作
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
cd {outputDir}/source/
|
|
185
|
+
|
|
186
|
+
# 仅保留目标库目录下的 diff(关键:避免检视范围污染)
|
|
187
|
+
git diff {targetBranch}..pr{prNumber} -- {targetLibraryDir}/ > {outputDir}/pr-diff.txt
|
|
188
|
+
|
|
189
|
+
# 重新统计(基于过滤后的 diff)
|
|
190
|
+
git diff --stat {targetBranch}..pr{prNumber} -- {targetLibraryDir}/
|
|
191
|
+
|
|
192
|
+
# 重新生成 changed-files.txt(基于过滤后的 diff)
|
|
193
|
+
# ⚠️ 禁止使用 sed 's/diff --git a\/.* b\/\//' —— macOS BSD sed 对该转义组合不兼容,
|
|
194
|
+
# 会报 "unterminated substitute in regular expression" 并静默生成 0 字节空文件
|
|
195
|
+
grep "^diff --git" {outputDir}/pr-diff.txt | awk '{print $4}' | sed 's/^b\///' > {outputDir}/changed-files.txt
|
|
196
|
+
|
|
197
|
+
# 生成后必须校验非空(0 字节空文件 = 提取失败,会导致后续检视范围判断失据,且收尾前不易察觉)
|
|
198
|
+
wc -l {outputDir}/changed-files.txt
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
### 边界情况
|
|
202
|
+
|
|
203
|
+
| 场景 | 处理方式 |
|
|
204
|
+
|------|----------|
|
|
205
|
+
| PR 标题不含库名 | 使用变更文件公共父目录 |
|
|
206
|
+
| PR 跨多个库修改 | 检视所有涉及的库目录,但每个库独立检视 |
|
|
207
|
+
| PR 仅修改配置/根文件(不涉及子库) | 不做目录过滤,全量检视 |
|
|
208
|
+
| fork 分支与主仓库 master 无分歧 | 全量 diff = 目标范围 diff,过滤无影响 |
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## 1.7 保存输出文件
|
|
213
|
+
|
|
214
|
+
| 文件 | 内容 | 用途 |
|
|
215
|
+
|------|------|------|
|
|
216
|
+
| `{outputDir}/pr.patch` | 最新 commit 的 patch(unified diff 格式) | 参考:commit 元数据提取 |
|
|
217
|
+
| `{outputDir}/pr-diff-raw.txt` | PR 全量累积 diff(base → PR HEAD,所有文件) | 参考:记录全量变更,不用于检视 |
|
|
218
|
+
| `{outputDir}/pr-diff.txt` | PR 累积 diff(目标库目录范围内) | **检视核心依据** |
|
|
219
|
+
| `{outputDir}/changed-files.txt` | 修改文件列表(基于范围过滤后的 diff) | 文件清单 |
|
|
220
|
+
|
|
221
|
+
**生成 changed-files.txt**:
|
|
222
|
+
```bash
|
|
223
|
+
# 基于范围过滤后的 diff 生成(而非 pr-diff-raw.txt 或 pr.patch)
|
|
224
|
+
# ⚠️ 禁止使用 sed 's/diff --git a\/.* b\/\//' —— macOS BSD sed 不兼容该转义组合,
|
|
225
|
+
# 会静默生成 0 字节空文件;改用 awk 提取第 4 列再去掉 b/ 前缀
|
|
226
|
+
grep "^diff --git" {outputDir}/pr-diff.txt | awk '{print $4}' | sed 's/^b\///' > {outputDir}/changed-files.txt
|
|
227
|
+
|
|
228
|
+
# 生成后必须校验非空(自检步骤:空文件意味着提取失败,必须立即发现而非收尾时)
|
|
229
|
+
wc -l {outputDir}/changed-files.txt
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
> **注意**:changed-files.txt 必须基于 `pr-diff.txt`(范围过滤后的累积 diff)生成,而非 `pr-diff-raw.txt`(全量累积 diff)或 `pr.patch`(单次 commit)。
|
|
233
|
+
> **自检要求**:`wc -l` 结果为 0 行时禁止继续后续流程,必须先排查 diff 生成与提取命令是否失败(实际案例:mp3agic PR #53 中 BSD sed 静默失败生成空文件,直至收尾才发现,险些遗漏检视范围)。
|