@ohos-cpf/3rdloop 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +244 -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: rn-code-check
|
|
3
|
-
description: React Native 三方库 PR 自动化代码检视,重点检查鸿蒙平台实现(harmony/ 目录下的 CAPI/ArkTS 代码)的内存安全、线程安全和 NAPI 规范。支持 GitCode/Gitee/GitHub/GitLab 平台,生成结构化检视报告。适用于 React Native OpenHarmony 适配项目的 PR review。
|
|
4
|
-
license: Apache-2.0
|
|
5
|
-
compatibility: 需要 git、curl、网络访问(GitHub/GitCode/Gitee API)
|
|
6
|
-
metadata:
|
|
7
|
-
version: "1.0.0"
|
|
8
|
-
platform: gitcode, gitee, github, gitlab
|
|
9
|
-
libraryType: rn
|
|
10
|
-
---
|
|
11
|
-
|
|
12
|
-
# RNCodeCheckSkill — React Native 三方库 PR 代码检视
|
|
13
|
-
|
|
14
|
-
## 概述
|
|
15
|
-
|
|
16
|
-
本 Skill 负责对 React Native(OpenHarmony 平台适配)三方库的 Pull Request 进行自动化代码检视,包括获取 PR 差异内容、深度分析修改点、生成结构化检视报告。重点关注鸿蒙平台侧实现(`harmony/` 目录下的 CAPI/ArkTS 代码)以及 JS/TS 接口层。
|
|
17
|
-
|
|
18
|
-
**关键特性**:
|
|
19
|
-
- GitCode 平台优先使用 REST API 快速获取结构化 diff 数据
|
|
20
|
-
- **必须 git clone 原仓库**获取完整源码上下文,用于深度检视和跨文件引用分析
|
|
21
|
-
- 重点检查线程安全、内存管理、NAPI 规范等易出错的严重问题
|
|
22
|
-
|
|
23
|
-
---
|
|
24
|
-
|
|
25
|
-
## 任务参数
|
|
26
|
-
|
|
27
|
-
| 参数 | 必需 | 说明 |
|
|
28
|
-
|------|------|------|
|
|
29
|
-
| `prUrl` | ✅ | PR 地址,如 `https://gitee.com/react-native-oh-library/react-native-camera/pulls/8` |
|
|
30
|
-
| `outputDir` | ✅ | 输出目录绝对路径,如 `/path/to/codecheck/owner_repo_pr8` |
|
|
31
|
-
| `libraryType` | ❌ | 固定为 `rn` |
|
|
32
|
-
| `branch` | ❌ | 目标分支名;若提供则优先使用 |
|
|
33
|
-
| `accessToken` | ❌ | GitCode/Gitee PAT;GitCode API 强烈建议提供 |
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## 工作流程
|
|
38
|
-
|
|
39
|
-
### Phase 1:输入解析与信息收集
|
|
40
|
-
|
|
41
|
-
#### 1.1 解析 PR 地址
|
|
42
|
-
|
|
43
|
-
从 `prUrl` 提取:`platform`、`owner`、`repo`、`prNumber`。
|
|
44
|
-
|
|
45
|
-
| 平台 | URL 模式 | API 支持 |
|
|
46
|
-
|------|----------|----------|
|
|
47
|
-
| GitHub | `github.com/{owner}/{repo}/pull/{num}` | patch 下载 |
|
|
48
|
-
| GitCode | `gitcode.com/{owner}/{repo}/pulls/{num}` | ✅ **API 优先** |
|
|
49
|
-
| Gitee | `gitee.com/{owner}/{repo}/pulls/{num}` | 部分 API |
|
|
50
|
-
| GitLab | `gitlab.com/{owner}/{repo}/-/merge_requests/{num}` | patch 下载 |
|
|
51
|
-
|
|
52
|
-
#### 1.2 GitCode 平台:API 加速(推荐)
|
|
53
|
-
|
|
54
|
-
**适用条件**:平台为 GitCode 且提供 `accessToken`。
|
|
55
|
-
|
|
56
|
-
**详细 API 使用方法见**:[API-GUIDE.md](references/API-GUIDE.md)
|
|
57
|
-
|
|
58
|
-
**核心步骤**:
|
|
59
|
-
1. 调用 PR 元数据 API 获取 `title`、`base.ref`、`head.sha`
|
|
60
|
-
2. 调用文件变更 API 获取结构化 diff(`diffs[].content.text`)
|
|
61
|
-
3. 将 API diff 重建为 unified diff 格式保存至 `{outputDir}/pr.diff`
|
|
62
|
-
4. 将改动文件列表写入 `{outputDir}/changed-files.txt`
|
|
63
|
-
|
|
64
|
-
#### 1.3 其他平台:传统 Patch 路径
|
|
65
|
-
|
|
66
|
-
**适用条件**:非 GitCode 或无 `accessToken`。
|
|
67
|
-
|
|
68
|
-
**详细操作见**:[API-GUIDE.md](references/API-GUIDE.md)
|
|
69
|
-
|
|
70
|
-
**核心步骤**:
|
|
71
|
-
1. 下载 `.patch` 或 `.diff` 文件
|
|
72
|
-
2. 解析 patch 头部提取元数据
|
|
73
|
-
3. 调用平台 API 获取目标分支(或使用用户提供的 `branch`)
|
|
74
|
-
4. 统计新增/删除行数、文件列表
|
|
75
|
-
|
|
76
|
-
#### 1.4 克隆仓库(必要步骤)
|
|
77
|
-
|
|
78
|
-
> ⚠️ **必须执行**,用于查阅原始代码上下文和跨文件引用分析
|
|
79
|
-
|
|
80
|
-
```bash
|
|
81
|
-
git clone --depth=50 --branch {targetBranch} https://{platform}/{owner}/{repo}.git {outputDir}/source/
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
**典型查阅场景**:
|
|
85
|
-
- diff 修改了 C++ NAPI 函数签名 → 需读取 ArkTS 胶水层确认调用侧是否同步更新
|
|
86
|
-
- diff 删除了 `napi_delete_reference` → 需追踪 ref 创建位置确认泄漏
|
|
87
|
-
- diff 新增跨线程回调 → 需确认是否使用了 `napi_threadsafe_function`
|
|
88
|
-
|
|
89
|
-
若克隆失败,在报告中注明"未能获取完整仓库上下文"并继续分析。
|
|
90
|
-
|
|
91
|
-
---
|
|
92
|
-
|
|
93
|
-
### Phase 2:Patch 差异分析
|
|
94
|
-
|
|
95
|
-
#### 2.1 识别修改文件类型
|
|
96
|
-
|
|
97
|
-
**RN 三方库典型结构**:
|
|
98
|
-
```
|
|
99
|
-
harmony/ # 鸿蒙实现(重点检视)
|
|
100
|
-
src/main/
|
|
101
|
-
cpp/ # C++ CAPI
|
|
102
|
-
ets/ # ArkTS 胶水层
|
|
103
|
-
src/ # JS/TS 接口层
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
**检视优先级**:
|
|
107
|
-
1. `harmony/src/main/cpp/**` - C++ CAPI(NAPI、内存、线程安全)
|
|
108
|
-
2. `harmony/src/main/ets/**/*.ets` - ArkTS 胶水层(TurboModule、Fabric)
|
|
109
|
-
3. `src/**/*.ts` - JS/TS 接口层(类型声明、平台判断)
|
|
110
|
-
4. `harmony/CMakeLists.txt` / `oh-package.json5` - 构建配置
|
|
111
|
-
|
|
112
|
-
#### 2.2 统计改动规模
|
|
113
|
-
|
|
114
|
-
**GitCode API 路径**:直接从响应读取 `count`、`added_lines`、`remove_lines`。
|
|
115
|
-
|
|
116
|
-
**传统路径**:从 diff 文件统计。
|
|
117
|
-
|
|
118
|
-
---
|
|
119
|
-
|
|
120
|
-
### Phase 3:代码深度检视
|
|
121
|
-
|
|
122
|
-
> ⚠️ **线程安全问题是 RN Native 模块最常见的严重问题,必须重点检查**
|
|
123
|
-
|
|
124
|
-
**详细检视清单见**:[CHECKLIST.md](references/CHECKLIST.md)
|
|
125
|
-
|
|
126
|
-
#### 3.1 重点检视项(易出错的严重问题)
|
|
127
|
-
|
|
128
|
-
**线程安全(CRITICAL 优先级)**:
|
|
129
|
-
- 子线程中不直接调用 NAPI 函数(必须使用 `napi_threadsafe_function`)
|
|
130
|
-
- 主 JS 线程与 C++ 线程间共享数据有锁保护
|
|
131
|
-
- `napi_threadsafe_function` 在不再使用时正确释放
|
|
132
|
-
|
|
133
|
-
**内存管理**:
|
|
134
|
-
- `napi_create_*` 创建的对象正确释放
|
|
135
|
-
- `napi_ref` 在不需要时调用 `napi_delete_reference`
|
|
136
|
-
- 无内存泄漏(`malloc`/`new` 有对应 `free`/`delete`)
|
|
137
|
-
|
|
138
|
-
**NAPI 规范**:
|
|
139
|
-
- TurboModule 正确实现 `getTurboModule()` 工厂函数
|
|
140
|
-
- NAPI 函数签名与 JS 声明一致
|
|
141
|
-
- 所有 NAPI API 返回值检查(`napi_status`)
|
|
142
|
-
|
|
143
|
-
#### 3.2 ArkTS 胶水层检视
|
|
144
|
-
|
|
145
|
-
- TurboModule 正确注册
|
|
146
|
-
- 无 `any` 类型使用(ArkTS 禁止)
|
|
147
|
-
- 日志使用 `RNLog` 而非 `console.log`
|
|
148
|
-
|
|
149
|
-
#### 3.3 JS/TS 接口层检视
|
|
150
|
-
|
|
151
|
-
- 方法类型声明完整(`Promise<T>`)
|
|
152
|
-
- 包含鸿蒙平台判断 `Platform.OS === 'harmony'`
|
|
153
|
-
|
|
154
|
-
#### 3.4 跨平台一致性对比(重点维度)
|
|
155
|
-
|
|
156
|
-
> PR 中通常仅包含 harmony 代码提交,需从克隆的仓库中读取 `android/` 和 `ios/` 的已有实现,与 harmony 变更进行对比。**这是 RN 三方库 PR 检视最关键的质量维度之一**——如果 harmony 的方法路由、参数类型、返回值格式与 Android 不一致,JS 侧调用同一 Native Module 时在鸿蒙平台上行为会异常。
|
|
157
|
-
|
|
158
|
-
**对比方法**:在克隆的 `{outputDir}/source/` 中定位 Android/iOS 的 Native Module 实现文件,逐方法对比。
|
|
159
|
-
|
|
160
|
-
| 对比项 | 说明 | 问题等级 |
|
|
161
|
-
|--------|------|----------|
|
|
162
|
-
| TurboModule 方法路由一致性 | harmony 的 TurboModule 方法列表是否与 Android NativeModule 完全对应,缺失方法 = 功能缺失 | 🔴 Critical |
|
|
163
|
-
| TurboModule 名称一致性 | harmony 注册的 TurboModule 名是否与 Android 注册名一致(JS 侧共用同一模块名) | 🔴 Critical |
|
|
164
|
-
| 参数类型映射一致性 | 同一 TurboModule 方法,harmony 解析的参数类型是否与 Android 一致(如 `bool` vs `string`) | 🔴 Critical |
|
|
165
|
-
| 返回值格式一致性 | `resolve()`/`reject()` 返回的数据结构是否与 Android 对齐 | 🟠 Major |
|
|
166
|
-
| 错误码/错误消息一致性 | `reject()` 的 code/message 是否与 Android 对齐 | 🟠 Major |
|
|
167
|
-
| 功能实现完整性 | Android 有实现但 harmony 为 Stub(返回固定值无实际操作)或完全缺失 | 🔴 Critical |
|
|
168
|
-
| EventEmitter 事件名一致性 | harmony 发送的事件名和数据格式是否与 Android 对齐 | 🟠 Major |
|
|
169
|
-
|
|
170
|
-
**对比操作步骤**:
|
|
171
|
-
|
|
172
|
-
1. 从 PR diff 中提取 harmony 变更涉及的所有 TurboModule 方法 / NAPI 函数名称
|
|
173
|
-
2. 在 `{outputDir}/source/android/` 中定位对应的 NativeModule 实现文件(通常为 `*Module.java` 或 `*Module.kt`,TurboModule 项目为 `*TurboModule.java`)
|
|
174
|
-
3. 逐方法对比:方法是否存在 → 参数类型是否一致 → 返回值格式是否一致 → 错误处理是否对齐
|
|
175
|
-
4. 对于 EventEmitter,对比事件名和事件数据格式
|
|
176
|
-
5. 将对比结果记录到报告的"跨平台一致性"章节
|
|
177
|
-
|
|
178
|
-
> **注意**:本 SKILL 的一致性对比仅针对 PR diff 涉及的方法,不是全量对比。全量一致性评估由 `rn-library-consistency-check` SKILL 负责。
|
|
179
|
-
|
|
180
|
-
---
|
|
181
|
-
|
|
182
|
-
### Phase 4:影响分析
|
|
183
|
-
|
|
184
|
-
分析本次改动对以下方面的影响:
|
|
185
|
-
- **功能影响**:是否引入新功能或修改现有行为
|
|
186
|
-
- **兼容性影响**:TurboModule API 是否向后兼容
|
|
187
|
-
- **性能影响**:是否优化跨线程调用或内存占用
|
|
188
|
-
- **安全影响**:是否修复或引入内存/线程安全问题
|
|
189
|
-
|
|
190
|
-
---
|
|
191
|
-
|
|
192
|
-
### Phase 5:生成检视报告
|
|
193
|
-
|
|
194
|
-
**报告模板见**:[REPORT-TEMPLATE.md](references/REPORT-TEMPLATE.md)
|
|
195
|
-
|
|
196
|
-
**生成要求**:
|
|
197
|
-
- 文件名必须为 `check-report.md`,路径在 `{outputDir}` 下
|
|
198
|
-
- 同时生成 `changed-files.txt`(每行一个文件路径)
|
|
199
|
-
- 同时生成 `result.txt`(合入建议分级结果)
|
|
200
|
-
- 若 PR 只修改 `android/` 或 `ios/`,注明"本次 PR 无鸿蒙平台代码变更"并 APPROVED
|
|
201
|
-
- 对 C++ CAPI 的内存安全和线程安全问题标记为 CRITICAL
|
|
202
|
-
|
|
203
|
-
### 5.1 合入建议分级标准
|
|
204
|
-
|
|
205
|
-
根据代码检视结果,将合入建议分为四个等级:
|
|
206
|
-
|
|
207
|
-
| 等级 | 标识 | 颜色建议 | 判断标准 | 举例场景 |
|
|
208
|
-
|------|------|----------|----------|----------|
|
|
209
|
-
| **建议合入** | ✅ `PASS` | 绿色 | 无或极少(≤2 Minor)修改引入问题,改动风险低,功能验证充分 | 纯文档更新、配置优化、已验证的 Bug 修复 |
|
|
210
|
-
| **条件合入** | ⚠️ `CONDITIONAL` | 黄色 | 存在少量(≤3 Major)可修复问题,在特定条件下可合入 | 需补充测试用例、需调整文档说明、非核心路径兼容性问题 |
|
|
211
|
-
| **修改后合入** | 🔧 `NEED_FIX` | 橙色 | 存在较多问题(≥1 Critical 或 ≥4 Major),需修复后方可合入 | TurboModule API 兼容性破坏、线程安全问题、NAPI 内存泄漏 |
|
|
212
|
-
| **不允许合入** | ❌ `REJECT` | 红色 | 存在严重问题(≥2 Critical),影响功能/安全/稳定性,不建议合入 | 安全漏洞、子线程直接调用 NAPI 导致崩溃风险、严重内存问题 |
|
|
213
|
-
|
|
214
|
-
**分级判断流程**:
|
|
215
|
-
|
|
216
|
-
```
|
|
217
|
-
统计问题数量:
|
|
218
|
-
- Critical 级别问题数
|
|
219
|
-
- Major 级别问题数
|
|
220
|
-
- Minor 级别问题数
|
|
221
|
-
|
|
222
|
-
判断逻辑:
|
|
223
|
-
IF Critical ≥ 2 → ❌ REJECT
|
|
224
|
-
IF Critical ≥ 1 → 🔧 NEED_FIX
|
|
225
|
-
IF Major ≥ 4 → 🔧 NEED_FIX
|
|
226
|
-
IF Major ≥ 1 → ⚠️ CONDITIONAL
|
|
227
|
-
IF Minor ≤ 2 → ✅ PASS
|
|
228
|
-
ELSE → ⚠️ CONDITIONAL
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
### 5.2 result.txt 文件格式
|
|
232
|
-
|
|
233
|
-
`result.txt` 用于存储分级结果和统计信息,格式如下:
|
|
234
|
-
|
|
235
|
-
```txt
|
|
236
|
-
=== 合入建议分级报告 ===
|
|
237
|
-
PR 地址:{prUrl}
|
|
238
|
-
仓库:{owner}/{repo}
|
|
239
|
-
PR 编号:#{prNumber}
|
|
240
|
-
生成时间:{YYYY-MM-DD HH:mm:ss}
|
|
241
|
-
|
|
242
|
-
【合入建议】:✅ 建议合入
|
|
243
|
-
|
|
244
|
-
【问题统计】
|
|
245
|
-
- Critical 级别:0 个
|
|
246
|
-
- Major 级别:0 个
|
|
247
|
-
- Minor 级别:2 个
|
|
248
|
-
- Suggest 级别:1 个
|
|
249
|
-
|
|
250
|
-
【分级理由】
|
|
251
|
-
本次修改仅包含少量 Minor 级别优化建议,无功能性问题,改动风险低,建议直接合入。
|
|
252
|
-
|
|
253
|
-
【详细分析】
|
|
254
|
-
━━━ Critical 级别问题 ━━━
|
|
255
|
-
{列出所有 Critical 问题,每个占一行,重点关注线程安全/内存/跨平台一致性问题}
|
|
256
|
-
|
|
257
|
-
━━━ Major 级别问题 ━━━
|
|
258
|
-
{列出所有 Major 问题,每个占一行}
|
|
259
|
-
|
|
260
|
-
━━━ Minor 级别问题 ━━━
|
|
261
|
-
1. [文件类型:代码质量] 删除了无用导入,代码更简洁
|
|
262
|
-
2. [文件类型:可观测性] RNLog 日志添加了详细上下文信息
|
|
263
|
-
|
|
264
|
-
━━━ Suggest 级别问题 ━━━
|
|
265
|
-
1. [文件类型:代码规范] 建议补充 JSDoc 注释
|
|
266
|
-
|
|
267
|
-
━━━ 合入建议 ━━━
|
|
268
|
-
建议合入:本次修改质量良好,无功能性风险。
|
|
269
|
-
|
|
270
|
-
=== 分级结束 ===
|
|
271
|
-
```
|
|
272
|
-
|
|
273
|
-
### 5.3 结构化指标输出(必须执行)
|
|
274
|
-
|
|
275
|
-
执行环境会在任务 prompt 中下发一个**结构化指标文件输出路径**(`stepId{X}_loop{L}_meta_{N}.json`)。
|
|
276
|
-
检视完成后,**必须**将分级结果以下述 JSON 对象写入该路径:
|
|
277
|
-
|
|
278
|
-
```json
|
|
279
|
-
{
|
|
280
|
-
"mergeLevel": "PASS | CONDITIONAL | NEED_FIX | REJECT",
|
|
281
|
-
"critical": 0,
|
|
282
|
-
"major": 0,
|
|
283
|
-
"minor": 0,
|
|
284
|
-
"suggest": 0
|
|
285
|
-
}
|
|
286
|
-
```
|
|
287
|
-
|
|
288
|
-
| 字段 | 类型 | 说明 |
|
|
289
|
-
|------|------|------|
|
|
290
|
-
| `mergeLevel` | string | 合入等级:PASS / CONDITIONAL / NEED_FIX / REJECT |
|
|
291
|
-
| `critical` | number | Critical 级别问题数 |
|
|
292
|
-
| `major` | number | Major 级别问题数 |
|
|
293
|
-
| `minor` | number | Minor 级别问题数 |
|
|
294
|
-
| `suggest` | number | Suggest 级别问题数 |
|
|
295
|
-
|
|
296
|
-
**说明**:该文件由执行框架自动收割入库(前端/历史列表直接读取,无需解析报告文本);详细的统计与理由已在 `result.txt` 中完整记录。若 prompt 未下发该路径则跳过本节。
|
|
297
|
-
|
|
298
|
-
---
|
|
299
|
-
|
|
300
|
-
## 注意事项
|
|
301
|
-
|
|
302
|
-
1. **GitCode API 优先**:减少 patch 解析时间,但仍需 clone 获取上下文
|
|
303
|
-
2. **线程安全最高优先级**:子线程直接调用 NAPI 会导致崩溃,必须使用 `napi_threadsafe_function`
|
|
304
|
-
3. **必须克隆仓库**:用于跨文件引用分析、上下文理解,以及跨平台一致性对比
|
|
305
|
-
4. **交叉验证**:若 PR 同时修改 `harmony/` 和 `src/`,需验证 NAPI 函数名与 JS 声明一致
|
|
306
|
-
5. **报告路径**:`check-report.md` 必须在 `outputDir` 下,不能在其他路径
|
|
307
|
-
6. **跨平台一致性**:PR diff 涉及的 TurboModule 方法必须与 Android/iOS 实现对比,缺失或行为不一致标记为 CRITICAL/MAJOR
|
|
308
|
-
7. **大 PR 处理策略**:当 PR 涉及文件数超过 30 个时,按优先级分批检视:
|
|
309
|
-
- **第一批(必检视)**:`harmony/src/main/cpp/**` — C++ CAPI(NAPI、内存、线程安全、跨平台一致性)
|
|
310
|
-
- **第二批(必检视)**:`harmony/src/main/ets/**/*.ets` — ArkTS 胶水层(TurboModule 注册、跨平台一致性)
|
|
311
|
-
- **第三批(按需检视)**:`src/**/*.ts` — JS/TS 接口层 + 构建配置文件
|
|
312
|
-
- **跳过**:`android/`、`ios/`、`example/`、`docs/` 等非鸿蒙代码
|
|
313
|
-
- 在报告开头标注"本次 PR 涉及 N 个文件,已按优先级分批检视,第三批文件已简化检视"
|
|
314
|
-
|
|
315
|
-
---
|
|
316
|
-
|
|
317
|
-
## 文件引用
|
|
318
|
-
|
|
319
|
-
- **详细检视清单**:[references/CHECKLIST.md](references/CHECKLIST.md)
|
|
320
|
-
- **平台 API 指南**:[references/API-GUIDE.md](references/API-GUIDE.md)
|
|
1
|
+
---
|
|
2
|
+
name: rn-code-check
|
|
3
|
+
description: React Native 三方库 PR 自动化代码检视,重点检查鸿蒙平台实现(harmony/ 目录下的 CAPI/ArkTS 代码)的内存安全、线程安全和 NAPI 规范。支持 GitCode/Gitee/GitHub/GitLab 平台,生成结构化检视报告。适用于 React Native OpenHarmony 适配项目的 PR review。
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
compatibility: 需要 git、curl、网络访问(GitHub/GitCode/Gitee API)
|
|
6
|
+
metadata:
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
platform: gitcode, gitee, github, gitlab
|
|
9
|
+
libraryType: rn
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# RNCodeCheckSkill — React Native 三方库 PR 代码检视
|
|
13
|
+
|
|
14
|
+
## 概述
|
|
15
|
+
|
|
16
|
+
本 Skill 负责对 React Native(OpenHarmony 平台适配)三方库的 Pull Request 进行自动化代码检视,包括获取 PR 差异内容、深度分析修改点、生成结构化检视报告。重点关注鸿蒙平台侧实现(`harmony/` 目录下的 CAPI/ArkTS 代码)以及 JS/TS 接口层。
|
|
17
|
+
|
|
18
|
+
**关键特性**:
|
|
19
|
+
- GitCode 平台优先使用 REST API 快速获取结构化 diff 数据
|
|
20
|
+
- **必须 git clone 原仓库**获取完整源码上下文,用于深度检视和跨文件引用分析
|
|
21
|
+
- 重点检查线程安全、内存管理、NAPI 规范等易出错的严重问题
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 任务参数
|
|
26
|
+
|
|
27
|
+
| 参数 | 必需 | 说明 |
|
|
28
|
+
|------|------|------|
|
|
29
|
+
| `prUrl` | ✅ | PR 地址,如 `https://gitee.com/react-native-oh-library/react-native-camera/pulls/8` |
|
|
30
|
+
| `outputDir` | ✅ | 输出目录绝对路径,如 `/path/to/codecheck/owner_repo_pr8` |
|
|
31
|
+
| `libraryType` | ❌ | 固定为 `rn` |
|
|
32
|
+
| `branch` | ❌ | 目标分支名;若提供则优先使用 |
|
|
33
|
+
| `accessToken` | ❌ | GitCode/Gitee PAT;GitCode API 强烈建议提供 |
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## 工作流程
|
|
38
|
+
|
|
39
|
+
### Phase 1:输入解析与信息收集
|
|
40
|
+
|
|
41
|
+
#### 1.1 解析 PR 地址
|
|
42
|
+
|
|
43
|
+
从 `prUrl` 提取:`platform`、`owner`、`repo`、`prNumber`。
|
|
44
|
+
|
|
45
|
+
| 平台 | URL 模式 | API 支持 |
|
|
46
|
+
|------|----------|----------|
|
|
47
|
+
| GitHub | `github.com/{owner}/{repo}/pull/{num}` | patch 下载 |
|
|
48
|
+
| GitCode | `gitcode.com/{owner}/{repo}/pulls/{num}` | ✅ **API 优先** |
|
|
49
|
+
| Gitee | `gitee.com/{owner}/{repo}/pulls/{num}` | 部分 API |
|
|
50
|
+
| GitLab | `gitlab.com/{owner}/{repo}/-/merge_requests/{num}` | patch 下载 |
|
|
51
|
+
|
|
52
|
+
#### 1.2 GitCode 平台:API 加速(推荐)
|
|
53
|
+
|
|
54
|
+
**适用条件**:平台为 GitCode 且提供 `accessToken`。
|
|
55
|
+
|
|
56
|
+
**详细 API 使用方法见**:[API-GUIDE.md](references/API-GUIDE.md)
|
|
57
|
+
|
|
58
|
+
**核心步骤**:
|
|
59
|
+
1. 调用 PR 元数据 API 获取 `title`、`base.ref`、`head.sha`
|
|
60
|
+
2. 调用文件变更 API 获取结构化 diff(`diffs[].content.text`)
|
|
61
|
+
3. 将 API diff 重建为 unified diff 格式保存至 `{outputDir}/pr.diff`
|
|
62
|
+
4. 将改动文件列表写入 `{outputDir}/changed-files.txt`
|
|
63
|
+
|
|
64
|
+
#### 1.3 其他平台:传统 Patch 路径
|
|
65
|
+
|
|
66
|
+
**适用条件**:非 GitCode 或无 `accessToken`。
|
|
67
|
+
|
|
68
|
+
**详细操作见**:[API-GUIDE.md](references/API-GUIDE.md)
|
|
69
|
+
|
|
70
|
+
**核心步骤**:
|
|
71
|
+
1. 下载 `.patch` 或 `.diff` 文件
|
|
72
|
+
2. 解析 patch 头部提取元数据
|
|
73
|
+
3. 调用平台 API 获取目标分支(或使用用户提供的 `branch`)
|
|
74
|
+
4. 统计新增/删除行数、文件列表
|
|
75
|
+
|
|
76
|
+
#### 1.4 克隆仓库(必要步骤)
|
|
77
|
+
|
|
78
|
+
> ⚠️ **必须执行**,用于查阅原始代码上下文和跨文件引用分析
|
|
79
|
+
|
|
80
|
+
```bash
|
|
81
|
+
git clone --depth=50 --branch {targetBranch} https://{platform}/{owner}/{repo}.git {outputDir}/source/
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
**典型查阅场景**:
|
|
85
|
+
- diff 修改了 C++ NAPI 函数签名 → 需读取 ArkTS 胶水层确认调用侧是否同步更新
|
|
86
|
+
- diff 删除了 `napi_delete_reference` → 需追踪 ref 创建位置确认泄漏
|
|
87
|
+
- diff 新增跨线程回调 → 需确认是否使用了 `napi_threadsafe_function`
|
|
88
|
+
|
|
89
|
+
若克隆失败,在报告中注明"未能获取完整仓库上下文"并继续分析。
|
|
90
|
+
|
|
91
|
+
---
|
|
92
|
+
|
|
93
|
+
### Phase 2:Patch 差异分析
|
|
94
|
+
|
|
95
|
+
#### 2.1 识别修改文件类型
|
|
96
|
+
|
|
97
|
+
**RN 三方库典型结构**:
|
|
98
|
+
```
|
|
99
|
+
harmony/ # 鸿蒙实现(重点检视)
|
|
100
|
+
src/main/
|
|
101
|
+
cpp/ # C++ CAPI
|
|
102
|
+
ets/ # ArkTS 胶水层
|
|
103
|
+
src/ # JS/TS 接口层
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
**检视优先级**:
|
|
107
|
+
1. `harmony/src/main/cpp/**` - C++ CAPI(NAPI、内存、线程安全)
|
|
108
|
+
2. `harmony/src/main/ets/**/*.ets` - ArkTS 胶水层(TurboModule、Fabric)
|
|
109
|
+
3. `src/**/*.ts` - JS/TS 接口层(类型声明、平台判断)
|
|
110
|
+
4. `harmony/CMakeLists.txt` / `oh-package.json5` - 构建配置
|
|
111
|
+
|
|
112
|
+
#### 2.2 统计改动规模
|
|
113
|
+
|
|
114
|
+
**GitCode API 路径**:直接从响应读取 `count`、`added_lines`、`remove_lines`。
|
|
115
|
+
|
|
116
|
+
**传统路径**:从 diff 文件统计。
|
|
117
|
+
|
|
118
|
+
---
|
|
119
|
+
|
|
120
|
+
### Phase 3:代码深度检视
|
|
121
|
+
|
|
122
|
+
> ⚠️ **线程安全问题是 RN Native 模块最常见的严重问题,必须重点检查**
|
|
123
|
+
|
|
124
|
+
**详细检视清单见**:[CHECKLIST.md](references/CHECKLIST.md)
|
|
125
|
+
|
|
126
|
+
#### 3.1 重点检视项(易出错的严重问题)
|
|
127
|
+
|
|
128
|
+
**线程安全(CRITICAL 优先级)**:
|
|
129
|
+
- 子线程中不直接调用 NAPI 函数(必须使用 `napi_threadsafe_function`)
|
|
130
|
+
- 主 JS 线程与 C++ 线程间共享数据有锁保护
|
|
131
|
+
- `napi_threadsafe_function` 在不再使用时正确释放
|
|
132
|
+
|
|
133
|
+
**内存管理**:
|
|
134
|
+
- `napi_create_*` 创建的对象正确释放
|
|
135
|
+
- `napi_ref` 在不需要时调用 `napi_delete_reference`
|
|
136
|
+
- 无内存泄漏(`malloc`/`new` 有对应 `free`/`delete`)
|
|
137
|
+
|
|
138
|
+
**NAPI 规范**:
|
|
139
|
+
- TurboModule 正确实现 `getTurboModule()` 工厂函数
|
|
140
|
+
- NAPI 函数签名与 JS 声明一致
|
|
141
|
+
- 所有 NAPI API 返回值检查(`napi_status`)
|
|
142
|
+
|
|
143
|
+
#### 3.2 ArkTS 胶水层检视
|
|
144
|
+
|
|
145
|
+
- TurboModule 正确注册
|
|
146
|
+
- 无 `any` 类型使用(ArkTS 禁止)
|
|
147
|
+
- 日志使用 `RNLog` 而非 `console.log`
|
|
148
|
+
|
|
149
|
+
#### 3.3 JS/TS 接口层检视
|
|
150
|
+
|
|
151
|
+
- 方法类型声明完整(`Promise<T>`)
|
|
152
|
+
- 包含鸿蒙平台判断 `Platform.OS === 'harmony'`
|
|
153
|
+
|
|
154
|
+
#### 3.4 跨平台一致性对比(重点维度)
|
|
155
|
+
|
|
156
|
+
> PR 中通常仅包含 harmony 代码提交,需从克隆的仓库中读取 `android/` 和 `ios/` 的已有实现,与 harmony 变更进行对比。**这是 RN 三方库 PR 检视最关键的质量维度之一**——如果 harmony 的方法路由、参数类型、返回值格式与 Android 不一致,JS 侧调用同一 Native Module 时在鸿蒙平台上行为会异常。
|
|
157
|
+
|
|
158
|
+
**对比方法**:在克隆的 `{outputDir}/source/` 中定位 Android/iOS 的 Native Module 实现文件,逐方法对比。
|
|
159
|
+
|
|
160
|
+
| 对比项 | 说明 | 问题等级 |
|
|
161
|
+
|--------|------|----------|
|
|
162
|
+
| TurboModule 方法路由一致性 | harmony 的 TurboModule 方法列表是否与 Android NativeModule 完全对应,缺失方法 = 功能缺失 | 🔴 Critical |
|
|
163
|
+
| TurboModule 名称一致性 | harmony 注册的 TurboModule 名是否与 Android 注册名一致(JS 侧共用同一模块名) | 🔴 Critical |
|
|
164
|
+
| 参数类型映射一致性 | 同一 TurboModule 方法,harmony 解析的参数类型是否与 Android 一致(如 `bool` vs `string`) | 🔴 Critical |
|
|
165
|
+
| 返回值格式一致性 | `resolve()`/`reject()` 返回的数据结构是否与 Android 对齐 | 🟠 Major |
|
|
166
|
+
| 错误码/错误消息一致性 | `reject()` 的 code/message 是否与 Android 对齐 | 🟠 Major |
|
|
167
|
+
| 功能实现完整性 | Android 有实现但 harmony 为 Stub(返回固定值无实际操作)或完全缺失 | 🔴 Critical |
|
|
168
|
+
| EventEmitter 事件名一致性 | harmony 发送的事件名和数据格式是否与 Android 对齐 | 🟠 Major |
|
|
169
|
+
|
|
170
|
+
**对比操作步骤**:
|
|
171
|
+
|
|
172
|
+
1. 从 PR diff 中提取 harmony 变更涉及的所有 TurboModule 方法 / NAPI 函数名称
|
|
173
|
+
2. 在 `{outputDir}/source/android/` 中定位对应的 NativeModule 实现文件(通常为 `*Module.java` 或 `*Module.kt`,TurboModule 项目为 `*TurboModule.java`)
|
|
174
|
+
3. 逐方法对比:方法是否存在 → 参数类型是否一致 → 返回值格式是否一致 → 错误处理是否对齐
|
|
175
|
+
4. 对于 EventEmitter,对比事件名和事件数据格式
|
|
176
|
+
5. 将对比结果记录到报告的"跨平台一致性"章节
|
|
177
|
+
|
|
178
|
+
> **注意**:本 SKILL 的一致性对比仅针对 PR diff 涉及的方法,不是全量对比。全量一致性评估由 `rn-library-consistency-check` SKILL 负责。
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
### Phase 4:影响分析
|
|
183
|
+
|
|
184
|
+
分析本次改动对以下方面的影响:
|
|
185
|
+
- **功能影响**:是否引入新功能或修改现有行为
|
|
186
|
+
- **兼容性影响**:TurboModule API 是否向后兼容
|
|
187
|
+
- **性能影响**:是否优化跨线程调用或内存占用
|
|
188
|
+
- **安全影响**:是否修复或引入内存/线程安全问题
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
### Phase 5:生成检视报告
|
|
193
|
+
|
|
194
|
+
**报告模板见**:[REPORT-TEMPLATE.md](references/REPORT-TEMPLATE.md)
|
|
195
|
+
|
|
196
|
+
**生成要求**:
|
|
197
|
+
- 文件名必须为 `check-report.md`,路径在 `{outputDir}` 下
|
|
198
|
+
- 同时生成 `changed-files.txt`(每行一个文件路径)
|
|
199
|
+
- 同时生成 `result.txt`(合入建议分级结果)
|
|
200
|
+
- 若 PR 只修改 `android/` 或 `ios/`,注明"本次 PR 无鸿蒙平台代码变更"并 APPROVED
|
|
201
|
+
- 对 C++ CAPI 的内存安全和线程安全问题标记为 CRITICAL
|
|
202
|
+
|
|
203
|
+
### 5.1 合入建议分级标准
|
|
204
|
+
|
|
205
|
+
根据代码检视结果,将合入建议分为四个等级:
|
|
206
|
+
|
|
207
|
+
| 等级 | 标识 | 颜色建议 | 判断标准 | 举例场景 |
|
|
208
|
+
|------|------|----------|----------|----------|
|
|
209
|
+
| **建议合入** | ✅ `PASS` | 绿色 | 无或极少(≤2 Minor)修改引入问题,改动风险低,功能验证充分 | 纯文档更新、配置优化、已验证的 Bug 修复 |
|
|
210
|
+
| **条件合入** | ⚠️ `CONDITIONAL` | 黄色 | 存在少量(≤3 Major)可修复问题,在特定条件下可合入 | 需补充测试用例、需调整文档说明、非核心路径兼容性问题 |
|
|
211
|
+
| **修改后合入** | 🔧 `NEED_FIX` | 橙色 | 存在较多问题(≥1 Critical 或 ≥4 Major),需修复后方可合入 | TurboModule API 兼容性破坏、线程安全问题、NAPI 内存泄漏 |
|
|
212
|
+
| **不允许合入** | ❌ `REJECT` | 红色 | 存在严重问题(≥2 Critical),影响功能/安全/稳定性,不建议合入 | 安全漏洞、子线程直接调用 NAPI 导致崩溃风险、严重内存问题 |
|
|
213
|
+
|
|
214
|
+
**分级判断流程**:
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
统计问题数量:
|
|
218
|
+
- Critical 级别问题数
|
|
219
|
+
- Major 级别问题数
|
|
220
|
+
- Minor 级别问题数
|
|
221
|
+
|
|
222
|
+
判断逻辑:
|
|
223
|
+
IF Critical ≥ 2 → ❌ REJECT
|
|
224
|
+
IF Critical ≥ 1 → 🔧 NEED_FIX
|
|
225
|
+
IF Major ≥ 4 → 🔧 NEED_FIX
|
|
226
|
+
IF Major ≥ 1 → ⚠️ CONDITIONAL
|
|
227
|
+
IF Minor ≤ 2 → ✅ PASS
|
|
228
|
+
ELSE → ⚠️ CONDITIONAL
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
### 5.2 result.txt 文件格式
|
|
232
|
+
|
|
233
|
+
`result.txt` 用于存储分级结果和统计信息,格式如下:
|
|
234
|
+
|
|
235
|
+
```txt
|
|
236
|
+
=== 合入建议分级报告 ===
|
|
237
|
+
PR 地址:{prUrl}
|
|
238
|
+
仓库:{owner}/{repo}
|
|
239
|
+
PR 编号:#{prNumber}
|
|
240
|
+
生成时间:{YYYY-MM-DD HH:mm:ss}
|
|
241
|
+
|
|
242
|
+
【合入建议】:✅ 建议合入
|
|
243
|
+
|
|
244
|
+
【问题统计】
|
|
245
|
+
- Critical 级别:0 个
|
|
246
|
+
- Major 级别:0 个
|
|
247
|
+
- Minor 级别:2 个
|
|
248
|
+
- Suggest 级别:1 个
|
|
249
|
+
|
|
250
|
+
【分级理由】
|
|
251
|
+
本次修改仅包含少量 Minor 级别优化建议,无功能性问题,改动风险低,建议直接合入。
|
|
252
|
+
|
|
253
|
+
【详细分析】
|
|
254
|
+
━━━ Critical 级别问题 ━━━
|
|
255
|
+
{列出所有 Critical 问题,每个占一行,重点关注线程安全/内存/跨平台一致性问题}
|
|
256
|
+
|
|
257
|
+
━━━ Major 级别问题 ━━━
|
|
258
|
+
{列出所有 Major 问题,每个占一行}
|
|
259
|
+
|
|
260
|
+
━━━ Minor 级别问题 ━━━
|
|
261
|
+
1. [文件类型:代码质量] 删除了无用导入,代码更简洁
|
|
262
|
+
2. [文件类型:可观测性] RNLog 日志添加了详细上下文信息
|
|
263
|
+
|
|
264
|
+
━━━ Suggest 级别问题 ━━━
|
|
265
|
+
1. [文件类型:代码规范] 建议补充 JSDoc 注释
|
|
266
|
+
|
|
267
|
+
━━━ 合入建议 ━━━
|
|
268
|
+
建议合入:本次修改质量良好,无功能性风险。
|
|
269
|
+
|
|
270
|
+
=== 分级结束 ===
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
### 5.3 结构化指标输出(必须执行)
|
|
274
|
+
|
|
275
|
+
执行环境会在任务 prompt 中下发一个**结构化指标文件输出路径**(`stepId{X}_loop{L}_meta_{N}.json`)。
|
|
276
|
+
检视完成后,**必须**将分级结果以下述 JSON 对象写入该路径:
|
|
277
|
+
|
|
278
|
+
```json
|
|
279
|
+
{
|
|
280
|
+
"mergeLevel": "PASS | CONDITIONAL | NEED_FIX | REJECT",
|
|
281
|
+
"critical": 0,
|
|
282
|
+
"major": 0,
|
|
283
|
+
"minor": 0,
|
|
284
|
+
"suggest": 0
|
|
285
|
+
}
|
|
286
|
+
```
|
|
287
|
+
|
|
288
|
+
| 字段 | 类型 | 说明 |
|
|
289
|
+
|------|------|------|
|
|
290
|
+
| `mergeLevel` | string | 合入等级:PASS / CONDITIONAL / NEED_FIX / REJECT |
|
|
291
|
+
| `critical` | number | Critical 级别问题数 |
|
|
292
|
+
| `major` | number | Major 级别问题数 |
|
|
293
|
+
| `minor` | number | Minor 级别问题数 |
|
|
294
|
+
| `suggest` | number | Suggest 级别问题数 |
|
|
295
|
+
|
|
296
|
+
**说明**:该文件由执行框架自动收割入库(前端/历史列表直接读取,无需解析报告文本);详细的统计与理由已在 `result.txt` 中完整记录。若 prompt 未下发该路径则跳过本节。
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## 注意事项
|
|
301
|
+
|
|
302
|
+
1. **GitCode API 优先**:减少 patch 解析时间,但仍需 clone 获取上下文
|
|
303
|
+
2. **线程安全最高优先级**:子线程直接调用 NAPI 会导致崩溃,必须使用 `napi_threadsafe_function`
|
|
304
|
+
3. **必须克隆仓库**:用于跨文件引用分析、上下文理解,以及跨平台一致性对比
|
|
305
|
+
4. **交叉验证**:若 PR 同时修改 `harmony/` 和 `src/`,需验证 NAPI 函数名与 JS 声明一致
|
|
306
|
+
5. **报告路径**:`check-report.md` 必须在 `outputDir` 下,不能在其他路径
|
|
307
|
+
6. **跨平台一致性**:PR diff 涉及的 TurboModule 方法必须与 Android/iOS 实现对比,缺失或行为不一致标记为 CRITICAL/MAJOR
|
|
308
|
+
7. **大 PR 处理策略**:当 PR 涉及文件数超过 30 个时,按优先级分批检视:
|
|
309
|
+
- **第一批(必检视)**:`harmony/src/main/cpp/**` — C++ CAPI(NAPI、内存、线程安全、跨平台一致性)
|
|
310
|
+
- **第二批(必检视)**:`harmony/src/main/ets/**/*.ets` — ArkTS 胶水层(TurboModule 注册、跨平台一致性)
|
|
311
|
+
- **第三批(按需检视)**:`src/**/*.ts` — JS/TS 接口层 + 构建配置文件
|
|
312
|
+
- **跳过**:`android/`、`ios/`、`example/`、`docs/` 等非鸿蒙代码
|
|
313
|
+
- 在报告开头标注"本次 PR 涉及 N 个文件,已按优先级分批检视,第三批文件已简化检视"
|
|
314
|
+
|
|
315
|
+
---
|
|
316
|
+
|
|
317
|
+
## 文件引用
|
|
318
|
+
|
|
319
|
+
- **详细检视清单**:[references/CHECKLIST.md](references/CHECKLIST.md)
|
|
320
|
+
- **平台 API 指南**:[references/API-GUIDE.md](references/API-GUIDE.md)
|
|
321
321
|
- **报告模板**:[references/REPORT-TEMPLATE.md](references/REPORT-TEMPLATE.md)
|