@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,313 +1,313 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: arkts-library-stability-check
|
|
3
|
-
description: 对 ArkTS 鸿蒙化库核心实现代码进行稳定性检视,分析异常处理、资源释放、并发安全、生命周期管理、NAPI 跨语言调用、调用链完整性,排除 example/demo/sample/test 代码,生成严苛评分报告(0-100分)。作为 ArkTS 仓库检视流程第二阶段,依赖 library-interface-analyzer 输出。当需要对已鸿蒙化的 ArkTS 三方库进行稳定性评估时使用。
|
|
4
|
-
license: Apache-2.0
|
|
5
|
-
compatibility: 需要访问 Git 仓库、分析 ArkTS/ETS 和 C++ 源码
|
|
6
|
-
metadata:
|
|
7
|
-
version: "1.1.0"
|
|
8
|
-
category: harmonyos-testing
|
|
9
|
-
language: ArkTS/ETS/C++
|
|
10
|
-
invoked-by: LoopEngine
|
|
11
|
-
consumed-by: arkts-library-documentation-quality-check
|
|
12
|
-
upstream: arkts-library-interface-spec
|
|
13
|
-
---
|
|
14
|
-
|
|
15
|
-
# ArktsLibraryStabilityCheckSkill
|
|
16
|
-
|
|
17
|
-
对**已鸿蒙化的 ArkTS 库**的核心实现代码进行稳定性检视,评估异常处理、资源管理、并发安全、跨语言调用等关键稳定性指标,生成严苛评分报告。
|
|
18
|
-
|
|
19
|
-
> ⚠️ **核心原则**:本 SKILL **仅检视核心实现代码**(对外暴露的 API、核心业务逻辑、NAPI 绑定层),**排除 example、demo、sample 及 test 相关代码**。通过多维度特征扫描智能识别代码范围,而非依赖固定目录名称。
|
|
20
|
-
|
|
21
|
-
---
|
|
22
|
-
|
|
23
|
-
## 任务参数
|
|
24
|
-
|
|
25
|
-
| 参数 | 必需 | 说明 |
|
|
26
|
-
|------|------|------|
|
|
27
|
-
| `repoUrl` | ✅ | Git 仓库地址,支持分支参数 `?branch=xxx` |
|
|
28
|
-
| `outputDir` | ✅ | 输出目录绝对路径,存放检视报告 |
|
|
29
|
-
| `interfaceDocPath` | ✅ | 接口规格说明文档路径(由 library-interface-analyzer 生成) |
|
|
30
|
-
| `repoName` | ✅ | 仓库名称(用于报告标识) |
|
|
31
|
-
|
|
32
|
-
---
|
|
33
|
-
|
|
34
|
-
## 输入依赖
|
|
35
|
-
|
|
36
|
-
本 SKILL 是 ArkTS 仓库检视流程的**第二阶段**,依赖:
|
|
37
|
-
|
|
38
|
-
- **前置 SKILL**: `arkts-library-interface-spec`
|
|
39
|
-
- **输入文件**: `接口规格说明.md`(位于 outputDir)
|
|
40
|
-
- **仓库源码**: 已克隆到 `{outputDir}/source/`
|
|
41
|
-
|
|
42
|
-
---
|
|
43
|
-
|
|
44
|
-
## 工作流程概览
|
|
45
|
-
|
|
46
|
-
```
|
|
47
|
-
Phase 1: 鸿蒙代码智能定位 → Phase 2: ArkTS 核心层稳定性分析 → Phase 3: C++ Native 层稳定性分析 → Phase 4: 调用链完整性分析 → Phase 5: 严苛评分计算 → Phase 6: 报告生成
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## Phase 1:鸿蒙代码智能定位与范围识别
|
|
53
|
-
|
|
54
|
-
### 1.1 扫描策略(优先级递减)
|
|
55
|
-
|
|
56
|
-
| 扫描维度 | 特征模式 | 权重 | 说明 |
|
|
57
|
-
|----------|----------|------|------|
|
|
58
|
-
| **文件类型** | `*.ets` 文件 | ⭐⭐⭐ 高 | ArkTS/ETS 是鸿蒙化最强特征 |
|
|
59
|
-
| **配置文件** | `module.json5`、`oh-package.json5` | ⭐⭐⭐ 高 | 鸿蒙特有模块配置 |
|
|
60
|
-
| **API 调用** | `@ohos.*`、`napi_*`、`import from '@ohos'` | ⭐⭐ 中 | 鸿蒙 API 特征 |
|
|
61
|
-
| **C++ NAPI** | `napi_create_reference`、`napi_value` 等 | ⭐⭐ 中 | Native 层鸿蒙绑定 |
|
|
62
|
-
| **目录标识** | 目录名包含 `ohos`、`harmony`、`openharmony` | ⭐ 低 | 辅助参考 |
|
|
63
|
-
|
|
64
|
-
### 1.2 范围过滤(排除非核心代码)
|
|
65
|
-
|
|
66
|
-
**排除规则**:目录路径含 `example`/`demo`/`sample`/`test`/`tests`/`__test__`/`spec`/`unittest` 的全部排除。文件名含 `example`/`demo`/`sample` 的 `.ets`/`.ts` 文件也排除。
|
|
67
|
-
|
|
68
|
-
```bash
|
|
69
|
-
# 扫描核心 ArkTS/ETS 文件(排除非核心目录)
|
|
70
|
-
find {sourceDir} -name "*.ets" -type f \
|
|
71
|
-
-not -path "*/example*" -not -path "*/demo*" \
|
|
72
|
-
-not -path "*/sample*" -not -path "*/samples*" \
|
|
73
|
-
-not -path "*/test*" -not -path "*/__test__*" \
|
|
74
|
-
-not -path "*/spec*" -not -path "*/unittest*"
|
|
75
|
-
|
|
76
|
-
# 扫描核心鸿蒙配置文件
|
|
77
|
-
find {sourceDir} \( -name "module.json5" -o -name "oh-package.json5" \) -type f \
|
|
78
|
-
-not -path "*/example*" -not -path "*/demo*" \
|
|
79
|
-
-not -path "*/sample*" -not -path "*/test*"
|
|
80
|
-
|
|
81
|
-
# 扫描核心 NAPI C++ 文件
|
|
82
|
-
grep -r "napi_" --include="*.cpp" --include="*.h" {sourceDir} \
|
|
83
|
-
--exclude-dir="example" --exclude-dir="demo" \
|
|
84
|
-
--exclude-dir="sample" --exclude-dir="test" --exclude-dir="tests"
|
|
85
|
-
|
|
86
|
-
# 扫描核心 @ohos API 导入
|
|
87
|
-
grep -r "import.*@ohos" --include="*.ets" --include="*.ts" {sourceDir} \
|
|
88
|
-
--exclude-dir="example" --exclude-dir="demo" \
|
|
89
|
-
--exclude-dir="sample" --exclude-dir="test" --exclude-dir="tests"
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### 1.3 判定规则
|
|
93
|
-
|
|
94
|
-
| 扫描结果 | 判定 | 评分 | 后续操作 |
|
|
95
|
-
|----------|------|------|----------|
|
|
96
|
-
| 发现核心 `.ets` 文件 | ✅ 存在鸿蒙化 | 正常评分 | 进入 Phase 2 |
|
|
97
|
-
| 发现核心 `module.json5` + NAPI 代码 | ✅ 存在鸿蒙化 | 正常评分 | 进入 Phase 2 |
|
|
98
|
-
| 仅目录名含 `ohos` 但无代码文件 | ⚠️ 疑似未完成 | 0-30 分 | 标注"鸿蒙化代码疑似缺失" |
|
|
99
|
-
| 未发现任何鸿蒙特征(核心代码) | ❌ 未鸿蒙化 | 0 分 | 标注"未发现鸿蒙化核心实现代码" |
|
|
100
|
-
| 仅在 example/demo/sample/test 中发现鸿蒙代码 | ⚠️ 核心实现缺失 | 0 分 | 标注"鸿蒙化代码仅存在于示例中" |
|
|
101
|
-
| 无法访问源码目录 | ❌ 无法检视 | 0 分 | 标注"源码目录不可访问" |
|
|
102
|
-
|
|
103
|
-
> 详细检查清单参见 [references/CHECKLIST.md](references/CHECKLIST.md)
|
|
104
|
-
|
|
105
|
-
---
|
|
106
|
-
|
|
107
|
-
## Phase 2:ArkTS 核心实现层稳定性分析
|
|
108
|
-
|
|
109
|
-
**仅检视库核心实现代码**,不分析 example/demo/sample 及 test 代码。每个维度按检查项逐项检视并扣分。
|
|
110
|
-
|
|
111
|
-
### 2.1 异常处理完整性(25 分)
|
|
112
|
-
|
|
113
|
-
| # | 检查项 | 扣分 | 说明 |
|
|
114
|
-
|---|--------|------|------|
|
|
115
|
-
| E-01 | 核心公共 API 调用无 try-catch | **-10** | 涉及系统 API 调用但无异常捕获(不含 example/demo) |
|
|
116
|
-
| E-02 | Promise rejection 未处理 | **-8** | `.then()` 无 `.catch()` 或 await 无 try-catch |
|
|
117
|
-
| E-03 | 异常吞没 | **-7** | catch 块为空或仅 `console.log` |
|
|
118
|
-
| E-04 | 参数验证缺失 | **-5** | 公共 API 入口无类型/边界/空值检查 |
|
|
119
|
-
| E-05 | 异常类型窄化 | **-3** | 仅捕获特定类型,遗漏其他可能 |
|
|
120
|
-
| E-06 | finally 缺失 | **-2** | 资源操作无 finally 清理路径 |
|
|
121
|
-
|
|
122
|
-
### 2.2 资源释放安全性(25 分)
|
|
123
|
-
|
|
124
|
-
| # | 检查项 | 扣分 | 说明 |
|
|
125
|
-
|---|--------|------|------|
|
|
126
|
-
| R-01 | 系统资源未释放(sensor/location/network) | **-12** | 未调用 `unregister`/`disable`/`off` |
|
|
127
|
-
| R-02 | 事件订阅未取消 | **-8** | `on()` 无对应 `off()` |
|
|
128
|
-
| R-03 | Stream/Connection 泄露 | **-5** | 打开未关闭的 I/O 流或连接 |
|
|
129
|
-
| R-04 | Timer 未清理 | **-5** | `setInterval`/`setTimeout` 未清除 |
|
|
130
|
-
| R-05 | Worker 未终止 | **-5** | Worker 创建后未 `terminate()` |
|
|
131
|
-
|
|
132
|
-
### 2.3 并发安全(20 分)
|
|
133
|
-
|
|
134
|
-
| # | 检查项 | 扣分 | 说明 |
|
|
135
|
-
|---|--------|------|------|
|
|
136
|
-
| C-01 | 主线程阻塞 | **-10** | 核心 API 中存在耗时同步操作 |
|
|
137
|
-
| C-02 | 共享状态无同步保护 | **-7** | 多异步回调修改同一状态,无锁/队列 |
|
|
138
|
-
| C-03 | 回调重入 | **-3** | 缺少重入防护标志 |
|
|
139
|
-
|
|
140
|
-
### 2.4 ArkTS 生命周期管理(10 分)
|
|
141
|
-
|
|
142
|
-
| # | 检查项 | 扣分 | 说明 |
|
|
143
|
-
|---|--------|------|------|
|
|
144
|
-
| L-01 | aboutToDisappear 未清理 | **-8** | 销毁钩子未释放资源/移除监听 |
|
|
145
|
-
| L-02 | @State 持有大引用未释放 | **-2** | 组件销毁后大对象引用未释放 |
|
|
146
|
-
|
|
147
|
-
> 代码示例参见 [references/CODE_EXAMPLES.md](references/CODE_EXAMPLES.md)
|
|
148
|
-
|
|
149
|
-
---
|
|
150
|
-
|
|
151
|
-
## Phase 3:C++ Native 核心层稳定性分析
|
|
152
|
-
|
|
153
|
-
**仅检视库核心 NAPI 绑定和 C++ 实现代码**,不分析 example/demo/sample 及 test 代码。
|
|
154
|
-
|
|
155
|
-
### 3.1 NAPI 跨语言调用(15 分)
|
|
156
|
-
|
|
157
|
-
| # | 检查项 | 扣分 | 说明 |
|
|
158
|
-
|---|--------|------|------|
|
|
159
|
-
| N-01 | napi_ref 创建/释放不匹配 | **-10** | 创建和释放数量不匹配 |
|
|
160
|
-
| N-02 | napi_handle_scope 未清理 | **-8** | 无对应 `napi_close_handle_scope` |
|
|
161
|
-
| N-03 | napi_value 类型转换无边界检查 | **-5** | 缺少类型检查和边界验证 |
|
|
162
|
-
| N-04 | napi_create_async_work 缺少异常处理 | **-5** | 回调未检查返回值 |
|
|
163
|
-
| N-05 | Native 对象与 ArkTS 生命周期不一致 | **-3** | 未绑定 ArkTS 侧 GC 回调 |
|
|
164
|
-
|
|
165
|
-
### 3.2 C++ 内存管理安全(10 分)
|
|
166
|
-
|
|
167
|
-
| # | 检查项 | 扣分 | 说明 |
|
|
168
|
-
|---|--------|------|------|
|
|
169
|
-
| M-01 | malloc/new 与 free/delete 不匹配 | **-8** | 分配/释放不对称或双重释放 |
|
|
170
|
-
| M-02 | 异常路径资源未释放 | **-5** | try/catch 异常分支未释放 |
|
|
171
|
-
| M-03 | 未使用 RAII 管理资源 | **-3** | 可改用智能指针但未使用 |
|
|
172
|
-
|
|
173
|
-
> 代码示例参见 [references/CODE_EXAMPLES.md](references/CODE_EXAMPLES.md)
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
## Phase 4:核心功能调用链完整性分析
|
|
178
|
-
|
|
179
|
-
**仅追踪库对外暴露的核心功能调用链**,不分析 example/demo/sample 中展示的调用链。**必须追踪至少 3 个库核心功能的完整调用链**。
|
|
180
|
-
|
|
181
|
-
### 4.1 跨层级调用链追踪
|
|
182
|
-
|
|
183
|
-
追踪核心功能的完整调用链(ArkTS → Native),检查异常传播路径和资源释放节点:
|
|
184
|
-
|
|
185
|
-
```
|
|
186
|
-
调用链示例:
|
|
187
|
-
ArkTS 层 Native (C++) 层
|
|
188
|
-
├─ publicAPI.method() │
|
|
189
|
-
│ ├─ try-catch ✅/❌ ├─ NativeImpl::execute()
|
|
190
|
-
│ └─ invokeNative() │ ├─ napi_handle_scope ✅/❌
|
|
191
|
-
│ │ ├─ napi_ref 管理 ✅/❌
|
|
192
|
-
├─ callback/result │ └─ return result
|
|
193
|
-
│ ├─ 异常检查 ✅/❌ │
|
|
194
|
-
│ └─ return to caller │
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
### 4.2 异常传播链检查
|
|
198
|
-
|
|
199
|
-
| # | 检查项 | 扣分 | 说明 |
|
|
200
|
-
|---|--------|------|------|
|
|
201
|
-
| CH-01 | ArkTS → Native 异常传播断裂 | **-10** | Native 异常未通过 `napi_throw` 传播 |
|
|
202
|
-
| CH-02 | 跨模块调用异常未传播 | **-8** | 模块间异常被吞没 |
|
|
203
|
-
| CH-03 | 核心调用链缺失异常处理节点 | **-7** | 至少一个节点无异常处理 |
|
|
204
|
-
|
|
205
|
-
---
|
|
206
|
-
|
|
207
|
-
## Phase 5:严苛评分计算
|
|
208
|
-
|
|
209
|
-
### 5.1 维度评分规则
|
|
210
|
-
|
|
211
|
-
采用**严苛扣分制**,每个维度独立计算:
|
|
212
|
-
|
|
213
|
-
| 维度 | 基础分 | 扣分上限 |
|
|
214
|
-
|------|--------|----------|
|
|
215
|
-
| 异常处理完整性 | 25 | -25 |
|
|
216
|
-
| 资源释放安全性 | 25 | -25 |
|
|
217
|
-
| 并发安全 | 20 | -20 |
|
|
218
|
-
| ArkTS 生命周期 | 10 | -10 |
|
|
219
|
-
| NAPI 跨语言调用 | 15 | -15 |
|
|
220
|
-
| C++ 内存管理 | 10 | -10 |
|
|
221
|
-
| 调用链完整性 | 5 | -5 |
|
|
222
|
-
|
|
223
|
-
**维度得分** = max(0, 基础分 - 该维度累计扣分)
|
|
224
|
-
**综合评分** = Σ(各维度得分),范围 0-100
|
|
225
|
-
|
|
226
|
-
### 5.2 特殊归零规则
|
|
227
|
-
|
|
228
|
-
| 规则 | 条件 | 结果 |
|
|
229
|
-
|------|------|------|
|
|
230
|
-
| 归零规则 1 | Critical 问题 ≥ 5 个 | **0 分** |
|
|
231
|
-
| 归零规则 2 | Critical ≥ 3 个 + Major ≥ 4 个 | **0 分** |
|
|
232
|
-
| 归零规则 3 | 核心 API 异常处理完全缺失(≥ 3 个无 try-catch) | **0 分** |
|
|
233
|
-
| 归零规则 4 | NAPI 引用管理完全不匹配 | **0 分** |
|
|
234
|
-
| 归零规则 5 | 未发现鸿蒙化核心代码 | **0 分** |
|
|
235
|
-
| 归零规则 6 | 源码目录不可访问 | **0 分** |
|
|
236
|
-
|
|
237
|
-
> 详细评分规则、严重度映射、等级说明参见 [references/SCORING_RULES.md](references/SCORING_RULES.md)
|
|
238
|
-
|
|
239
|
-
---
|
|
240
|
-
|
|
241
|
-
## Phase 6:报告生成
|
|
242
|
-
|
|
243
|
-
在 `{outputDir}` 下生成 `稳定性检视报告.md`,须包含:
|
|
244
|
-
|
|
245
|
-
- **检视概览**:仓库名称、时间、文件数、范围摘要
|
|
246
|
-
- **综合评分**:`**综合评分:{score}/100**`(粗体、中文冒号,后端 `_parseArktsLibraryScore` 依赖此格式)
|
|
247
|
-
- **检视范围**:各维度文件数、检视/排除列表
|
|
248
|
-
- **维度明细**:7 个维度逐项列出发现、扣分和详情
|
|
249
|
-
- **调用链分析**:至少 3 个核心功能调用链图
|
|
250
|
-
- **问题清单**:文件、行号、编号、严重度、描述、修复建议
|
|
251
|
-
- **改进建议**:按 P0/P1/P2 优先级排列
|
|
252
|
-
|
|
253
|
-
> 完整报告模板参见 [assets/REPORT_TEMPLATE.md](assets/REPORT_TEMPLATE.md)
|
|
254
|
-
|
|
255
|
-
---
|
|
256
|
-
|
|
257
|
-
## 输出产物
|
|
258
|
-
|
|
259
|
-
| 产物 | 文件名 | 说明 |
|
|
260
|
-
|------|--------|------|
|
|
261
|
-
| 稳定性检视报告 | `稳定性检视报告.md` | 评分 + 维度明细 + 调用链 + 问题清单 + 修复建议 |
|
|
262
|
-
|
|
263
|
-
所有产物写入 `{outputDir}` 目录。
|
|
264
|
-
|
|
265
|
-
> ⚠️ **输出文件自检**:写入结果文件前,先确认 `稳定性检视报告.md` 已存在且内容完整(**独立文件,禁止只写入 result 执行结果文件**)。若报告内容仅在草稿中,必须先将其保存为上述独立文件。
|
|
266
|
-
|
|
267
|
-
### 结构化指标输出(必须执行)
|
|
268
|
-
|
|
269
|
-
执行环境会在任务 prompt 中下发一个**结构化指标文件输出路径**(`stepId{X}_loop{L}_meta_{N}.json`)。
|
|
270
|
-
检视完成后,**必须**将最终评分以下述 JSON 对象写入该路径:
|
|
271
|
-
|
|
272
|
-
```json
|
|
273
|
-
{
|
|
274
|
-
"stabilityScore": 85,
|
|
275
|
-
"scoreReason": "异常处理缺失2处-16等(一句话判定依据,≤50字;触发一票否决时必须注明)"
|
|
276
|
-
}
|
|
277
|
-
```
|
|
278
|
-
|
|
279
|
-
| 字段 | 类型 | 说明 |
|
|
280
|
-
|------|------|------|
|
|
281
|
-
| `stabilityScore` | number | 稳定性评分(0-100 整数,与报告中 `**综合评分:XX/100**` 的数值一致) |
|
|
282
|
-
| `scoreReason` | string | 评分判定依据摘要(可选,前端悬浮提示展示;0 分时强烈建议写明触发规则,如"Critical≥5 触发归零") |
|
|
283
|
-
|
|
284
|
-
**说明**:该文件由执行框架自动收割入库(前端/历史列表直接读取评分,无需解析报告文本)。若 prompt 未下发该路径则跳过本节。
|
|
285
|
-
|
|
286
|
-
---
|
|
287
|
-
|
|
288
|
-
## 特殊情况处理
|
|
289
|
-
|
|
290
|
-
| 情况 | 处理方式 | 评分 |
|
|
291
|
-
|------|----------|------|
|
|
292
|
-
| 未发现 `.ets` 核心文件和鸿蒙 API 特征(排除 example/test 后) | 报告标注"未发现鸿蒙化核心实现代码" | 0 分 |
|
|
293
|
-
| 仅在 example/demo/sample/test 中发现鸿蒙代码 | 报告标注"鸿蒙化代码仅存在于示例中" | 0 分 |
|
|
294
|
-
| 仅目录名含 `ohos` 但无代码文件 | 报告标注"鸿蒙化代码疑似缺失" | 0-30 分 |
|
|
295
|
-
| 发现鸿蒙核心代码但解析失败 | 报告标注"解析失败"并说明原因 | 0 分 |
|
|
296
|
-
| 扫描到 `.ets` 但不在 `ohos/` 目录 | 正常检视,标注实际路径 | 正常评分 |
|
|
297
|
-
|
|
298
|
-
---
|
|
299
|
-
|
|
300
|
-
## 评分权重
|
|
301
|
-
|
|
302
|
-
本 SKILL 在 ArkTS 仓库检视综合评分中权重为 **25%**。
|
|
303
|
-
|
|
304
|
-
---
|
|
305
|
-
|
|
306
|
-
## 详细参考
|
|
307
|
-
|
|
308
|
-
| 文档 | 内容 |
|
|
309
|
-
|------|------|
|
|
310
|
-
| [检查清单](references/CHECKLIST.md) | 各维度完整检查项、检查方式、判定规则 |
|
|
311
|
-
| [代码示例](references/CODE_EXAMPLES.md) | 各维度正确/错误代码示例对照 |
|
|
312
|
-
| [评分规则](references/SCORING_RULES.md) | 评分计算方式、归零规则、等级说明 |
|
|
1
|
+
---
|
|
2
|
+
name: arkts-library-stability-check
|
|
3
|
+
description: 对 ArkTS 鸿蒙化库核心实现代码进行稳定性检视,分析异常处理、资源释放、并发安全、生命周期管理、NAPI 跨语言调用、调用链完整性,排除 example/demo/sample/test 代码,生成严苛评分报告(0-100分)。作为 ArkTS 仓库检视流程第二阶段,依赖 library-interface-analyzer 输出。当需要对已鸿蒙化的 ArkTS 三方库进行稳定性评估时使用。
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
compatibility: 需要访问 Git 仓库、分析 ArkTS/ETS 和 C++ 源码
|
|
6
|
+
metadata:
|
|
7
|
+
version: "1.1.0"
|
|
8
|
+
category: harmonyos-testing
|
|
9
|
+
language: ArkTS/ETS/C++
|
|
10
|
+
invoked-by: LoopEngine
|
|
11
|
+
consumed-by: arkts-library-documentation-quality-check
|
|
12
|
+
upstream: arkts-library-interface-spec
|
|
13
|
+
---
|
|
14
|
+
|
|
15
|
+
# ArktsLibraryStabilityCheckSkill
|
|
16
|
+
|
|
17
|
+
对**已鸿蒙化的 ArkTS 库**的核心实现代码进行稳定性检视,评估异常处理、资源管理、并发安全、跨语言调用等关键稳定性指标,生成严苛评分报告。
|
|
18
|
+
|
|
19
|
+
> ⚠️ **核心原则**:本 SKILL **仅检视核心实现代码**(对外暴露的 API、核心业务逻辑、NAPI 绑定层),**排除 example、demo、sample 及 test 相关代码**。通过多维度特征扫描智能识别代码范围,而非依赖固定目录名称。
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 任务参数
|
|
24
|
+
|
|
25
|
+
| 参数 | 必需 | 说明 |
|
|
26
|
+
|------|------|------|
|
|
27
|
+
| `repoUrl` | ✅ | Git 仓库地址,支持分支参数 `?branch=xxx` |
|
|
28
|
+
| `outputDir` | ✅ | 输出目录绝对路径,存放检视报告 |
|
|
29
|
+
| `interfaceDocPath` | ✅ | 接口规格说明文档路径(由 library-interface-analyzer 生成) |
|
|
30
|
+
| `repoName` | ✅ | 仓库名称(用于报告标识) |
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
## 输入依赖
|
|
35
|
+
|
|
36
|
+
本 SKILL 是 ArkTS 仓库检视流程的**第二阶段**,依赖:
|
|
37
|
+
|
|
38
|
+
- **前置 SKILL**: `arkts-library-interface-spec`
|
|
39
|
+
- **输入文件**: `接口规格说明.md`(位于 outputDir)
|
|
40
|
+
- **仓库源码**: 已克隆到 `{outputDir}/source/`
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 工作流程概览
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
Phase 1: 鸿蒙代码智能定位 → Phase 2: ArkTS 核心层稳定性分析 → Phase 3: C++ Native 层稳定性分析 → Phase 4: 调用链完整性分析 → Phase 5: 严苛评分计算 → Phase 6: 报告生成
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Phase 1:鸿蒙代码智能定位与范围识别
|
|
53
|
+
|
|
54
|
+
### 1.1 扫描策略(优先级递减)
|
|
55
|
+
|
|
56
|
+
| 扫描维度 | 特征模式 | 权重 | 说明 |
|
|
57
|
+
|----------|----------|------|------|
|
|
58
|
+
| **文件类型** | `*.ets` 文件 | ⭐⭐⭐ 高 | ArkTS/ETS 是鸿蒙化最强特征 |
|
|
59
|
+
| **配置文件** | `module.json5`、`oh-package.json5` | ⭐⭐⭐ 高 | 鸿蒙特有模块配置 |
|
|
60
|
+
| **API 调用** | `@ohos.*`、`napi_*`、`import from '@ohos'` | ⭐⭐ 中 | 鸿蒙 API 特征 |
|
|
61
|
+
| **C++ NAPI** | `napi_create_reference`、`napi_value` 等 | ⭐⭐ 中 | Native 层鸿蒙绑定 |
|
|
62
|
+
| **目录标识** | 目录名包含 `ohos`、`harmony`、`openharmony` | ⭐ 低 | 辅助参考 |
|
|
63
|
+
|
|
64
|
+
### 1.2 范围过滤(排除非核心代码)
|
|
65
|
+
|
|
66
|
+
**排除规则**:目录路径含 `example`/`demo`/`sample`/`test`/`tests`/`__test__`/`spec`/`unittest` 的全部排除。文件名含 `example`/`demo`/`sample` 的 `.ets`/`.ts` 文件也排除。
|
|
67
|
+
|
|
68
|
+
```bash
|
|
69
|
+
# 扫描核心 ArkTS/ETS 文件(排除非核心目录)
|
|
70
|
+
find {sourceDir} -name "*.ets" -type f \
|
|
71
|
+
-not -path "*/example*" -not -path "*/demo*" \
|
|
72
|
+
-not -path "*/sample*" -not -path "*/samples*" \
|
|
73
|
+
-not -path "*/test*" -not -path "*/__test__*" \
|
|
74
|
+
-not -path "*/spec*" -not -path "*/unittest*"
|
|
75
|
+
|
|
76
|
+
# 扫描核心鸿蒙配置文件
|
|
77
|
+
find {sourceDir} \( -name "module.json5" -o -name "oh-package.json5" \) -type f \
|
|
78
|
+
-not -path "*/example*" -not -path "*/demo*" \
|
|
79
|
+
-not -path "*/sample*" -not -path "*/test*"
|
|
80
|
+
|
|
81
|
+
# 扫描核心 NAPI C++ 文件
|
|
82
|
+
grep -r "napi_" --include="*.cpp" --include="*.h" {sourceDir} \
|
|
83
|
+
--exclude-dir="example" --exclude-dir="demo" \
|
|
84
|
+
--exclude-dir="sample" --exclude-dir="test" --exclude-dir="tests"
|
|
85
|
+
|
|
86
|
+
# 扫描核心 @ohos API 导入
|
|
87
|
+
grep -r "import.*@ohos" --include="*.ets" --include="*.ts" {sourceDir} \
|
|
88
|
+
--exclude-dir="example" --exclude-dir="demo" \
|
|
89
|
+
--exclude-dir="sample" --exclude-dir="test" --exclude-dir="tests"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
### 1.3 判定规则
|
|
93
|
+
|
|
94
|
+
| 扫描结果 | 判定 | 评分 | 后续操作 |
|
|
95
|
+
|----------|------|------|----------|
|
|
96
|
+
| 发现核心 `.ets` 文件 | ✅ 存在鸿蒙化 | 正常评分 | 进入 Phase 2 |
|
|
97
|
+
| 发现核心 `module.json5` + NAPI 代码 | ✅ 存在鸿蒙化 | 正常评分 | 进入 Phase 2 |
|
|
98
|
+
| 仅目录名含 `ohos` 但无代码文件 | ⚠️ 疑似未完成 | 0-30 分 | 标注"鸿蒙化代码疑似缺失" |
|
|
99
|
+
| 未发现任何鸿蒙特征(核心代码) | ❌ 未鸿蒙化 | 0 分 | 标注"未发现鸿蒙化核心实现代码" |
|
|
100
|
+
| 仅在 example/demo/sample/test 中发现鸿蒙代码 | ⚠️ 核心实现缺失 | 0 分 | 标注"鸿蒙化代码仅存在于示例中" |
|
|
101
|
+
| 无法访问源码目录 | ❌ 无法检视 | 0 分 | 标注"源码目录不可访问" |
|
|
102
|
+
|
|
103
|
+
> 详细检查清单参见 [references/CHECKLIST.md](references/CHECKLIST.md)
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## Phase 2:ArkTS 核心实现层稳定性分析
|
|
108
|
+
|
|
109
|
+
**仅检视库核心实现代码**,不分析 example/demo/sample 及 test 代码。每个维度按检查项逐项检视并扣分。
|
|
110
|
+
|
|
111
|
+
### 2.1 异常处理完整性(25 分)
|
|
112
|
+
|
|
113
|
+
| # | 检查项 | 扣分 | 说明 |
|
|
114
|
+
|---|--------|------|------|
|
|
115
|
+
| E-01 | 核心公共 API 调用无 try-catch | **-10** | 涉及系统 API 调用但无异常捕获(不含 example/demo) |
|
|
116
|
+
| E-02 | Promise rejection 未处理 | **-8** | `.then()` 无 `.catch()` 或 await 无 try-catch |
|
|
117
|
+
| E-03 | 异常吞没 | **-7** | catch 块为空或仅 `console.log` |
|
|
118
|
+
| E-04 | 参数验证缺失 | **-5** | 公共 API 入口无类型/边界/空值检查 |
|
|
119
|
+
| E-05 | 异常类型窄化 | **-3** | 仅捕获特定类型,遗漏其他可能 |
|
|
120
|
+
| E-06 | finally 缺失 | **-2** | 资源操作无 finally 清理路径 |
|
|
121
|
+
|
|
122
|
+
### 2.2 资源释放安全性(25 分)
|
|
123
|
+
|
|
124
|
+
| # | 检查项 | 扣分 | 说明 |
|
|
125
|
+
|---|--------|------|------|
|
|
126
|
+
| R-01 | 系统资源未释放(sensor/location/network) | **-12** | 未调用 `unregister`/`disable`/`off` |
|
|
127
|
+
| R-02 | 事件订阅未取消 | **-8** | `on()` 无对应 `off()` |
|
|
128
|
+
| R-03 | Stream/Connection 泄露 | **-5** | 打开未关闭的 I/O 流或连接 |
|
|
129
|
+
| R-04 | Timer 未清理 | **-5** | `setInterval`/`setTimeout` 未清除 |
|
|
130
|
+
| R-05 | Worker 未终止 | **-5** | Worker 创建后未 `terminate()` |
|
|
131
|
+
|
|
132
|
+
### 2.3 并发安全(20 分)
|
|
133
|
+
|
|
134
|
+
| # | 检查项 | 扣分 | 说明 |
|
|
135
|
+
|---|--------|------|------|
|
|
136
|
+
| C-01 | 主线程阻塞 | **-10** | 核心 API 中存在耗时同步操作 |
|
|
137
|
+
| C-02 | 共享状态无同步保护 | **-7** | 多异步回调修改同一状态,无锁/队列 |
|
|
138
|
+
| C-03 | 回调重入 | **-3** | 缺少重入防护标志 |
|
|
139
|
+
|
|
140
|
+
### 2.4 ArkTS 生命周期管理(10 分)
|
|
141
|
+
|
|
142
|
+
| # | 检查项 | 扣分 | 说明 |
|
|
143
|
+
|---|--------|------|------|
|
|
144
|
+
| L-01 | aboutToDisappear 未清理 | **-8** | 销毁钩子未释放资源/移除监听 |
|
|
145
|
+
| L-02 | @State 持有大引用未释放 | **-2** | 组件销毁后大对象引用未释放 |
|
|
146
|
+
|
|
147
|
+
> 代码示例参见 [references/CODE_EXAMPLES.md](references/CODE_EXAMPLES.md)
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Phase 3:C++ Native 核心层稳定性分析
|
|
152
|
+
|
|
153
|
+
**仅检视库核心 NAPI 绑定和 C++ 实现代码**,不分析 example/demo/sample 及 test 代码。
|
|
154
|
+
|
|
155
|
+
### 3.1 NAPI 跨语言调用(15 分)
|
|
156
|
+
|
|
157
|
+
| # | 检查项 | 扣分 | 说明 |
|
|
158
|
+
|---|--------|------|------|
|
|
159
|
+
| N-01 | napi_ref 创建/释放不匹配 | **-10** | 创建和释放数量不匹配 |
|
|
160
|
+
| N-02 | napi_handle_scope 未清理 | **-8** | 无对应 `napi_close_handle_scope` |
|
|
161
|
+
| N-03 | napi_value 类型转换无边界检查 | **-5** | 缺少类型检查和边界验证 |
|
|
162
|
+
| N-04 | napi_create_async_work 缺少异常处理 | **-5** | 回调未检查返回值 |
|
|
163
|
+
| N-05 | Native 对象与 ArkTS 生命周期不一致 | **-3** | 未绑定 ArkTS 侧 GC 回调 |
|
|
164
|
+
|
|
165
|
+
### 3.2 C++ 内存管理安全(10 分)
|
|
166
|
+
|
|
167
|
+
| # | 检查项 | 扣分 | 说明 |
|
|
168
|
+
|---|--------|------|------|
|
|
169
|
+
| M-01 | malloc/new 与 free/delete 不匹配 | **-8** | 分配/释放不对称或双重释放 |
|
|
170
|
+
| M-02 | 异常路径资源未释放 | **-5** | try/catch 异常分支未释放 |
|
|
171
|
+
| M-03 | 未使用 RAII 管理资源 | **-3** | 可改用智能指针但未使用 |
|
|
172
|
+
|
|
173
|
+
> 代码示例参见 [references/CODE_EXAMPLES.md](references/CODE_EXAMPLES.md)
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## Phase 4:核心功能调用链完整性分析
|
|
178
|
+
|
|
179
|
+
**仅追踪库对外暴露的核心功能调用链**,不分析 example/demo/sample 中展示的调用链。**必须追踪至少 3 个库核心功能的完整调用链**。
|
|
180
|
+
|
|
181
|
+
### 4.1 跨层级调用链追踪
|
|
182
|
+
|
|
183
|
+
追踪核心功能的完整调用链(ArkTS → Native),检查异常传播路径和资源释放节点:
|
|
184
|
+
|
|
185
|
+
```
|
|
186
|
+
调用链示例:
|
|
187
|
+
ArkTS 层 Native (C++) 层
|
|
188
|
+
├─ publicAPI.method() │
|
|
189
|
+
│ ├─ try-catch ✅/❌ ├─ NativeImpl::execute()
|
|
190
|
+
│ └─ invokeNative() │ ├─ napi_handle_scope ✅/❌
|
|
191
|
+
│ │ ├─ napi_ref 管理 ✅/❌
|
|
192
|
+
├─ callback/result │ └─ return result
|
|
193
|
+
│ ├─ 异常检查 ✅/❌ │
|
|
194
|
+
│ └─ return to caller │
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### 4.2 异常传播链检查
|
|
198
|
+
|
|
199
|
+
| # | 检查项 | 扣分 | 说明 |
|
|
200
|
+
|---|--------|------|------|
|
|
201
|
+
| CH-01 | ArkTS → Native 异常传播断裂 | **-10** | Native 异常未通过 `napi_throw` 传播 |
|
|
202
|
+
| CH-02 | 跨模块调用异常未传播 | **-8** | 模块间异常被吞没 |
|
|
203
|
+
| CH-03 | 核心调用链缺失异常处理节点 | **-7** | 至少一个节点无异常处理 |
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## Phase 5:严苛评分计算
|
|
208
|
+
|
|
209
|
+
### 5.1 维度评分规则
|
|
210
|
+
|
|
211
|
+
采用**严苛扣分制**,每个维度独立计算:
|
|
212
|
+
|
|
213
|
+
| 维度 | 基础分 | 扣分上限 |
|
|
214
|
+
|------|--------|----------|
|
|
215
|
+
| 异常处理完整性 | 25 | -25 |
|
|
216
|
+
| 资源释放安全性 | 25 | -25 |
|
|
217
|
+
| 并发安全 | 20 | -20 |
|
|
218
|
+
| ArkTS 生命周期 | 10 | -10 |
|
|
219
|
+
| NAPI 跨语言调用 | 15 | -15 |
|
|
220
|
+
| C++ 内存管理 | 10 | -10 |
|
|
221
|
+
| 调用链完整性 | 5 | -5 |
|
|
222
|
+
|
|
223
|
+
**维度得分** = max(0, 基础分 - 该维度累计扣分)
|
|
224
|
+
**综合评分** = Σ(各维度得分),范围 0-100
|
|
225
|
+
|
|
226
|
+
### 5.2 特殊归零规则
|
|
227
|
+
|
|
228
|
+
| 规则 | 条件 | 结果 |
|
|
229
|
+
|------|------|------|
|
|
230
|
+
| 归零规则 1 | Critical 问题 ≥ 5 个 | **0 分** |
|
|
231
|
+
| 归零规则 2 | Critical ≥ 3 个 + Major ≥ 4 个 | **0 分** |
|
|
232
|
+
| 归零规则 3 | 核心 API 异常处理完全缺失(≥ 3 个无 try-catch) | **0 分** |
|
|
233
|
+
| 归零规则 4 | NAPI 引用管理完全不匹配 | **0 分** |
|
|
234
|
+
| 归零规则 5 | 未发现鸿蒙化核心代码 | **0 分** |
|
|
235
|
+
| 归零规则 6 | 源码目录不可访问 | **0 分** |
|
|
236
|
+
|
|
237
|
+
> 详细评分规则、严重度映射、等级说明参见 [references/SCORING_RULES.md](references/SCORING_RULES.md)
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## Phase 6:报告生成
|
|
242
|
+
|
|
243
|
+
在 `{outputDir}` 下生成 `稳定性检视报告.md`,须包含:
|
|
244
|
+
|
|
245
|
+
- **检视概览**:仓库名称、时间、文件数、范围摘要
|
|
246
|
+
- **综合评分**:`**综合评分:{score}/100**`(粗体、中文冒号,后端 `_parseArktsLibraryScore` 依赖此格式)
|
|
247
|
+
- **检视范围**:各维度文件数、检视/排除列表
|
|
248
|
+
- **维度明细**:7 个维度逐项列出发现、扣分和详情
|
|
249
|
+
- **调用链分析**:至少 3 个核心功能调用链图
|
|
250
|
+
- **问题清单**:文件、行号、编号、严重度、描述、修复建议
|
|
251
|
+
- **改进建议**:按 P0/P1/P2 优先级排列
|
|
252
|
+
|
|
253
|
+
> 完整报告模板参见 [assets/REPORT_TEMPLATE.md](assets/REPORT_TEMPLATE.md)
|
|
254
|
+
|
|
255
|
+
---
|
|
256
|
+
|
|
257
|
+
## 输出产物
|
|
258
|
+
|
|
259
|
+
| 产物 | 文件名 | 说明 |
|
|
260
|
+
|------|--------|------|
|
|
261
|
+
| 稳定性检视报告 | `稳定性检视报告.md` | 评分 + 维度明细 + 调用链 + 问题清单 + 修复建议 |
|
|
262
|
+
|
|
263
|
+
所有产物写入 `{outputDir}` 目录。
|
|
264
|
+
|
|
265
|
+
> ⚠️ **输出文件自检**:写入结果文件前,先确认 `稳定性检视报告.md` 已存在且内容完整(**独立文件,禁止只写入 result 执行结果文件**)。若报告内容仅在草稿中,必须先将其保存为上述独立文件。
|
|
266
|
+
|
|
267
|
+
### 结构化指标输出(必须执行)
|
|
268
|
+
|
|
269
|
+
执行环境会在任务 prompt 中下发一个**结构化指标文件输出路径**(`stepId{X}_loop{L}_meta_{N}.json`)。
|
|
270
|
+
检视完成后,**必须**将最终评分以下述 JSON 对象写入该路径:
|
|
271
|
+
|
|
272
|
+
```json
|
|
273
|
+
{
|
|
274
|
+
"stabilityScore": 85,
|
|
275
|
+
"scoreReason": "异常处理缺失2处-16等(一句话判定依据,≤50字;触发一票否决时必须注明)"
|
|
276
|
+
}
|
|
277
|
+
```
|
|
278
|
+
|
|
279
|
+
| 字段 | 类型 | 说明 |
|
|
280
|
+
|------|------|------|
|
|
281
|
+
| `stabilityScore` | number | 稳定性评分(0-100 整数,与报告中 `**综合评分:XX/100**` 的数值一致) |
|
|
282
|
+
| `scoreReason` | string | 评分判定依据摘要(可选,前端悬浮提示展示;0 分时强烈建议写明触发规则,如"Critical≥5 触发归零") |
|
|
283
|
+
|
|
284
|
+
**说明**:该文件由执行框架自动收割入库(前端/历史列表直接读取评分,无需解析报告文本)。若 prompt 未下发该路径则跳过本节。
|
|
285
|
+
|
|
286
|
+
---
|
|
287
|
+
|
|
288
|
+
## 特殊情况处理
|
|
289
|
+
|
|
290
|
+
| 情况 | 处理方式 | 评分 |
|
|
291
|
+
|------|----------|------|
|
|
292
|
+
| 未发现 `.ets` 核心文件和鸿蒙 API 特征(排除 example/test 后) | 报告标注"未发现鸿蒙化核心实现代码" | 0 分 |
|
|
293
|
+
| 仅在 example/demo/sample/test 中发现鸿蒙代码 | 报告标注"鸿蒙化代码仅存在于示例中" | 0 分 |
|
|
294
|
+
| 仅目录名含 `ohos` 但无代码文件 | 报告标注"鸿蒙化代码疑似缺失" | 0-30 分 |
|
|
295
|
+
| 发现鸿蒙核心代码但解析失败 | 报告标注"解析失败"并说明原因 | 0 分 |
|
|
296
|
+
| 扫描到 `.ets` 但不在 `ohos/` 目录 | 正常检视,标注实际路径 | 正常评分 |
|
|
297
|
+
|
|
298
|
+
---
|
|
299
|
+
|
|
300
|
+
## 评分权重
|
|
301
|
+
|
|
302
|
+
本 SKILL 在 ArkTS 仓库检视综合评分中权重为 **25%**。
|
|
303
|
+
|
|
304
|
+
---
|
|
305
|
+
|
|
306
|
+
## 详细参考
|
|
307
|
+
|
|
308
|
+
| 文档 | 内容 |
|
|
309
|
+
|------|------|
|
|
310
|
+
| [检查清单](references/CHECKLIST.md) | 各维度完整检查项、检查方式、判定规则 |
|
|
311
|
+
| [代码示例](references/CODE_EXAMPLES.md) | 各维度正确/错误代码示例对照 |
|
|
312
|
+
| [评分规则](references/SCORING_RULES.md) | 评分计算方式、归零规则、等级说明 |
|
|
313
313
|
| [报告模板](assets/REPORT_TEMPLATE.md) | 输出报告完整格式模板 |
|