@ohos-cpf/3rdloop 0.0.1 → 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 +245 -425
- package/bin/3rdloop.mjs +46 -46
- package/lib/cli.js +781 -740
- package/lib/config-cmd.js +452 -0
- package/lib/config.js +318 -317
- 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 +280 -0
- package/lib/workflow.js +308 -290
- 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 -243
- package/vendor/Server/CLI/deveco-code/index.js +71 -0
- package/vendor/Server/CLI/deveco-code.js +5 -0
- package/vendor/Server/CLI/opencode/index.js +817 -804
- 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 -202
- package/vendor/Server/Routes/sse/SseHub.js +308 -308
- package/vendor/Server/Skills/acceptance-check/SKILL.md +191 -174
- 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 -0
- package/vendor/Server/Skills/arkts-code-check/SKILL.md +320 -313
- package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +210 -159
- 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 -222
- 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 +193 -0
- package/vendor/Server/Agent/SkillSelector/types.js +0 -63
|
@@ -1,361 +1,361 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: arkts-library-test-coverage-check
|
|
3
|
-
description: 对 ArkTS 鸿蒙化库进行用例覆盖度检视,分析公开接口测试覆盖率、测试质量、鸿蒙化特性测试覆盖、测试分类覆盖、测试基础设施等维度,生成严苛评分报告(0-100分)。作为 ArkTS 仓库检视流程的第六阶段(最终 SKILL)。Use when 需要评估鸿蒙化 ArkTS 库的测试用例覆盖情况、测试质量或生成覆盖度评分报告。
|
|
4
|
-
license: Apache-2.0
|
|
5
|
-
compatibility: 需要访问 Git 仓库、分析测试文件、读取接口规格说明文档
|
|
6
|
-
metadata:
|
|
7
|
-
version: "1.0.0"
|
|
8
|
-
---
|
|
9
|
-
|
|
10
|
-
# ArktsLibraryTestCoverageCheckSkill
|
|
11
|
-
|
|
12
|
-
对**已鸿蒙化的 ArkTS 库**进行用例覆盖度检视,评估测试用例对公开接口的覆盖程度、测试质量、鸿蒙化特性测试覆盖等关键指标。
|
|
13
|
-
|
|
14
|
-
> ⚠️ **核心定位**:检视鸿蒙化库的**公开接口测试覆盖情况**,而非追求 100% 的代码行覆盖率。重点评估关键功能是否有测试保障。
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## 任务参数
|
|
19
|
-
|
|
20
|
-
| 参数 | 必需 | 说明 |
|
|
21
|
-
|------|------|------|
|
|
22
|
-
| `repoUrl` | ✅ | Git 仓库地址,支持分支参数 `?branch=xxx` |
|
|
23
|
-
| `outputDir` | ✅ | 输出目录绝对路径,存放检视报告 |
|
|
24
|
-
| `interfaceDocPath` | ✅ | 接口规格说明文档路径(由 library-interface-analyzer 生成) |
|
|
25
|
-
| `repoName` | ✅ | 仓库名称(用于报告标识) |
|
|
26
|
-
|
|
27
|
-
---
|
|
28
|
-
|
|
29
|
-
## 输入依赖
|
|
30
|
-
|
|
31
|
-
本 SKILL 是 ArkTS 仓库检视流程的**第六阶段**(最终 SKILL),依赖:
|
|
32
|
-
|
|
33
|
-
- **前置 SKILL**: `arkts-library-interface-spec`(接口规格说明已生成)
|
|
34
|
-
- **输入文件**: `接口规格说明.md`(位于 outputDir);`文档质量检视报告.md` 为**可选参考**(若与其他检视维度并发执行、该报告尚未生成,跳过该参考,独立完成检视)
|
|
35
|
-
- **仓库源码**: 已克隆到 `{outputDir}/source/`
|
|
36
|
-
|
|
37
|
-
> 💡 **利用前置报告**:若文档质量检视报告已存在,参考其中标记的文档缺失和接口描述不全问题,重点关注这些接口的测试覆盖情况——文档描述不全的接口往往也缺少测试。
|
|
38
|
-
|
|
39
|
-
---
|
|
40
|
-
|
|
41
|
-
## 工作流程概览
|
|
42
|
-
|
|
43
|
-
```
|
|
44
|
-
Phase 1: 测试范围识别与鸿蒙代码定位
|
|
45
|
-
↓
|
|
46
|
-
Phase 2: 用例覆盖度分析(支持 MCP 脚本自动计算接口覆盖率)
|
|
47
|
-
↓
|
|
48
|
-
Phase 3: 用例覆盖度评分计算
|
|
49
|
-
↓
|
|
50
|
-
Phase 4: 报告生成
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
---
|
|
54
|
-
|
|
55
|
-
## 工作流程
|
|
56
|
-
|
|
57
|
-
### Phase 1:测试范围识别与鸿蒙代码定位
|
|
58
|
-
|
|
59
|
-
**通过多维度特征扫描**,智能识别鸿蒙化代码和测试文件:
|
|
60
|
-
|
|
61
|
-
#### 1.1 扫描策略(优先级递减)
|
|
62
|
-
|
|
63
|
-
| 扫描维度 | 特征模式 | 权重 | 说明 |
|
|
64
|
-
|----------|----------|------|------|
|
|
65
|
-
| **测试文件类型** | `*test*.ets`、`*Test*.ets`、`*spec*.ets`、`*test*.ts`、`*Test*.ts` | ⭐⭐⭐ 高 | 鸿蒙测试文件特征 |
|
|
66
|
-
| **测试目录** | `test/`、`tests/`、`__tests__/`、`ohosTest/` | ⭐⭐⭐ 高 | 鸿蒙测试目录特征 |
|
|
67
|
-
| **鸿蒙源码** | `*.ets` 文件、`module.json5`、`@ohos.*` API | ⭐⭐⭐ 高 | 源码检视范围 |
|
|
68
|
-
| **C++ NAPI** | `napi_*` 相关文件 | ⭐⭐ 中 | Native 层绑定 |
|
|
69
|
-
| **测试框架配置** | `hypium`、`Devecotest` 配置文件 | ⭐ 低 | 测试框架标识 |
|
|
70
|
-
|
|
71
|
-
#### 1.2 扫描执行
|
|
72
|
-
|
|
73
|
-
```bash
|
|
74
|
-
# Step 1: 扫描测试文件
|
|
75
|
-
find {{outputDir}}/source -type f \( -name "*test*.ets" -o -name "*Test*.ets" -o -name "*spec*.ets" -o -name "*test*.ts" -o -name "*Test*.ts" \)
|
|
76
|
-
|
|
77
|
-
# Step 2: 找到测试目录
|
|
78
|
-
find {{outputDir}}/source -type d \( -name "test" -o -name "tests" -o -name "__tests__" -o -name "ohosTest" \)
|
|
79
|
-
|
|
80
|
-
# Step 2b: 找到 DEMO/示例目录(用于接口覆盖性评估)
|
|
81
|
-
find {{outputDir}}/source -type d \( -name "demo" -o -name "example" -o -name "sample" -o -name "demos" -o -name "examples" -o -name "samples" \)
|
|
82
|
-
|
|
83
|
-
# Step 3: 扫描鸿蒙源码(用于对照接口覆盖)
|
|
84
|
-
find {{outputDir}}/source -type f \( -name "*.ets" -o -name "*.ts" -o -name "*.json5" \)
|
|
85
|
-
|
|
86
|
-
# Step 4: 扫描 NAPI 相关 C++ 文件
|
|
87
|
-
grep -r "napi_" --include="*.cpp" --include="*.h" {{outputDir}}/source || true
|
|
88
|
-
```
|
|
89
|
-
|
|
90
|
-
> `workdir: "{{outputDir}}"`
|
|
91
|
-
|
|
92
|
-
#### 1.3 代码定位结果分类
|
|
93
|
-
|
|
94
|
-
```
|
|
95
|
-
检视范围判定:
|
|
96
|
-
├── 鸿蒙测试代码(必检视)
|
|
97
|
-
│ ├── *test*.ets / *Test*.ets # ArkTS 测试文件 ✅ 检视
|
|
98
|
-
│ ├── *test*.ts / *Test*.ts # TS 测试文件 ✅ 检视
|
|
99
|
-
│ ├── *spec*.ets / *spec*.ts # 规范测试文件 ✅ 检视
|
|
100
|
-
│ └── ohosTest 目录下文件 # 鸿蒙单元测试 ✅ 检视
|
|
101
|
-
├── DEMO/示例代码(接口覆盖评估)
|
|
102
|
-
│ ├── demo/ 目录下文件 # 示例代码 ✅ 检视
|
|
103
|
-
│ ├── example/ 目录下文件 # 示例代码 ✅ 检视
|
|
104
|
-
│ └── sample/ 目录下文件 # 示例代码 ✅ 检视
|
|
105
|
-
├── 鸿蒙源码(用于接口对照)
|
|
106
|
-
│ ├── *.ets 文件 # ArkTS 实现 ✅ 对照
|
|
107
|
-
│ ├── module.json5 # 模块配置 ✅ 对照
|
|
108
|
-
│ └── napi_*.cpp / *.cpp # Native NAPI 绑定 ✅ 对照
|
|
109
|
-
├── 非鸿蒙代码(不检视)
|
|
110
|
-
│ ├── 原平台测试文件 ❌ 不检视
|
|
111
|
-
│ └── 未包含鸿蒙特征的代码 ❌ 不检视
|
|
112
|
-
├── 疑似鸿蒙代码(需验证)
|
|
113
|
-
│ ├── 含部分 napi 调用但无完整结构 ⚠️ 进一步检查
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
#### 1.4 判定规则
|
|
117
|
-
|
|
118
|
-
| 扫描结果 | 判定 | 后续操作 |
|
|
119
|
-
|----------|------|----------|
|
|
120
|
-
| 发现鸿蒙测试文件 | ✅ 正常检视 | 提取测试覆盖接口清单 |
|
|
121
|
-
| 发现鸿蒙源码但无测试文件 | ⚠️ 无测试 | 标注"无鸿蒙化测试",所有接口视为未覆盖 |
|
|
122
|
-
| 仅发现非鸿蒙测试文件 | ⚠️ 测试不匹配 | 标注"仅有原平台测试",鸿蒙接口视为未覆盖 |
|
|
123
|
-
| 未发现鸿蒙特征代码 | ❌ 未鸿蒙化 | 标注"未发现鸿蒙化实现",评 0 分 |
|
|
124
|
-
| 无法访问源码目录 | ❌ 无法检视 | 标注"源码目录不可访问",评 0 分 |
|
|
125
|
-
|
|
126
|
-
同时读取 `接口规格说明.md`,提取所有公开接口列表,作为覆盖度评估基准。
|
|
127
|
-
|
|
128
|
-
---
|
|
129
|
-
|
|
130
|
-
### Phase 2:用例覆盖度分析
|
|
131
|
-
|
|
132
|
-
> **MCP 脚本辅助**:接口覆盖率计算可复用 MCP 脚本工具自动完成:
|
|
133
|
-
> - `script_arkts_analyze_demo_coverage`(`MCP/scripts/analyze-demo-coverage.cjs`)→ 计算 DEMO 目录接口覆盖率
|
|
134
|
-
> - `script_arkts_analyze_xts_coverage`(`MCP/scripts/analyze-xts-coverage.cjs`)→ 计算 test 目录接口覆盖率
|
|
135
|
-
>
|
|
136
|
-
> 详细调用方式参见 [MCP工具使用指南](references/MCP_TOOL_USAGE.md)
|
|
137
|
-
|
|
138
|
-
对测试文件进行覆盖度检视,重点关注以下 5 个维度:
|
|
139
|
-
|
|
140
|
-
#### 2.1 公开接口覆盖率(维度权重 40%)
|
|
141
|
-
|
|
142
|
-
> 本维度是覆盖度检视的**核心维度**,直接影响评分。
|
|
143
|
-
|
|
144
|
-
| # | 检查项 | 扣分 | 说明 |
|
|
145
|
-
|---|--------|------|------|
|
|
146
|
-
| TC-01 | 核心接口未覆盖 | **-15** | 公开核心功能接口(标注为必须/required)无任何测试 |
|
|
147
|
-
| TC-02 | 重要接口未覆盖 | **-10** | 重要公开接口缺少测试用例 |
|
|
148
|
-
| TC-03 | 边界场景缺失 | **-8** | 接口缺少边界值/异常输入测试 |
|
|
149
|
-
| TC-04 | 可选接口未覆盖 | **-3** | 可选功能接口未测试 |
|
|
150
|
-
| TC-05 | 接口参数组合未覆盖 | **-5** | 接口多参数组合场景未测试 |
|
|
151
|
-
|
|
152
|
-
> **覆盖率计算公式**:
|
|
153
|
-
> - 公开接口覆盖率 = (有测试的接口数 / 总公开接口数) × 100%
|
|
154
|
-
>
|
|
155
|
-
> **覆盖率来源双通道**:接口覆盖率可从以下两个来源分别计算,**任意一个达到 100% 即视为通过**:
|
|
156
|
-
> - **DEMO 目录**:DEMO 示例代码中调用的公开接口(通常位于 `demo/`、`example/`、`sample/` 等目录)
|
|
157
|
-
> - **test 目录**:测试代码中调用的公开接口(通常位于 `test/`、`tests/`、`__tests__/`、`ohosTest/` 等目录)
|
|
158
|
-
>
|
|
159
|
-
> 计算方式:分别统计 DEMO 目录和 test 目录中覆盖的公开接口,得到两个覆盖率。只要其中一个达到 100%,接口覆盖率即视为 100%。
|
|
160
|
-
>
|
|
161
|
-
> **扣分上限**:本维度扣分上限为 -40 分(维度基础分 40 分)
|
|
162
|
-
|
|
163
|
-
#### 2.2 测试质量(维度权重 20%)
|
|
164
|
-
|
|
165
|
-
| # | 检查项 | 扣分 | 说明 |
|
|
166
|
-
|---|--------|------|------|
|
|
167
|
-
| TC-06 | 断言缺失 | **-10** | 测试函数无 assert/expect 断言 |
|
|
168
|
-
| TC-07 | 断言过弱 | **-5** | 仅断言不抛异常,未验证正确输出 |
|
|
169
|
-
| TC-08 | 测试独立性 | **-8** | 测试间存在数据依赖,无法独立运行 |
|
|
170
|
-
| TC-09 | Mock 过度 | **-5** | 过多 Mock 导致测试脱离真实环境 |
|
|
171
|
-
| TC-10 | 负面测试缺失 | **-8** | 缺少异常/失败场景测试 |
|
|
172
|
-
| TC-11 | 测试数据硬编码 | **-3** | 测试数据全硬编码,未提取为 fixtures |
|
|
173
|
-
|
|
174
|
-
> **扣分上限**:本维度扣分上限为 -20 分(维度基础分 20 分)
|
|
175
|
-
|
|
176
|
-
#### 2.3 鸿蒙化特性测试覆盖(维度权重 20%)
|
|
177
|
-
|
|
178
|
-
| # | 检查项 | 扣分 | 说明 |
|
|
179
|
-
|---|--------|------|------|
|
|
180
|
-
| TC-12 | 鸿蒙 API 调用未测试 | **-12** | @ohos.* API 调用无测试覆盖 |
|
|
181
|
-
| TC-13 | 权限场景未测试 | **-8** | 需权限的 API 无权限场景测试 |
|
|
182
|
-
| TC-14 | Lifecycle 测试缺失 | **-10** | ArkTS 组件生命周期未测试 |
|
|
183
|
-
| TC-15 | NAPI 测试缺失 | **-10** | Native 模块接口无测试 |
|
|
184
|
-
| TC-16 | 跨设备场景未测试 | **-5** | 鸿蒙多设备场景无测试 |
|
|
185
|
-
| TC-17 | 鸿蒙配置测试缺失 | **-3** | module.json5 配置未测试 |
|
|
186
|
-
|
|
187
|
-
> **扣分上限**:本维度扣分上限为 -20 分(维度基础分 20 分)
|
|
188
|
-
|
|
189
|
-
#### 2.4 测试分类覆盖(维度权重 15%)
|
|
190
|
-
|
|
191
|
-
> 本维度评估测试的层次覆盖,区分不同类型的测试。
|
|
192
|
-
|
|
193
|
-
| # | 检查项 | 扣分 | 说明 |
|
|
194
|
-
|---|--------|------|------|
|
|
195
|
-
| TC-18 | 缺少单元测试 | **-8** | 对独立函数/方法无单元级测试 |
|
|
196
|
-
| TC-19 | 缺少集成测试 | **-5** | 对模块间交互无集成级测试 |
|
|
197
|
-
| TC-20 | 缺少端到端测试 | **-5** | 对完整功能流程无 E2E 测试 |
|
|
198
|
-
| TC-21 | 测试命名不规范 | **-3** | 测试文件/函数命名不符合规范(未含 test/Test/spec 关键词) |
|
|
199
|
-
| TC-22 | 测试分类标注缺失 | **-2** | 测试未标注类型(unit/integration/e2e) |
|
|
200
|
-
|
|
201
|
-
> **扣分上限**:本维度扣分上限为 -15 分(维度基础分 15 分)
|
|
202
|
-
|
|
203
|
-
#### 2.5 测试基础设施(维度权重 5%)
|
|
204
|
-
|
|
205
|
-
| # | 检查项 | 扣分 | 说明 |
|
|
206
|
-
|---|--------|------|------|
|
|
207
|
-
| TC-23 | 测试框架配置缺失 | **-5** | 缺少测试框架(如 @ohos/hypium)配置 |
|
|
208
|
-
| TC-24 | 测试脚本缺失 | **-3** | 无测试运行脚本 |
|
|
209
|
-
| TC-25 | CI 集成缺失 | **-3** | 无 CI/CD 测试流程配置 |
|
|
210
|
-
| TC-26 | 测试数据管理缺失 | **-2** | 缺少测试数据/fixtures 管理 |
|
|
211
|
-
|
|
212
|
-
> **扣分上限**:本维度扣分上限为 -5 分(维度基础分 5 分)
|
|
213
|
-
|
|
214
|
-
---
|
|
215
|
-
|
|
216
|
-
### Phase 3:用例覆盖度评分计算
|
|
217
|
-
|
|
218
|
-
基于检视结果进行**严苛评分**(0-100分),采用维度加权扣分制与零容忍规则:
|
|
219
|
-
|
|
220
|
-
#### 3.1 维度评分规则
|
|
221
|
-
|
|
222
|
-
| 维度 | 权重 | 基础分 | 扣分上限 | 检查项范围 |
|
|
223
|
-
|------|------|--------|----------|------------|
|
|
224
|
-
| 公开接口覆盖率 | 40% | 40 | -40 | TC-01~TC-05 |
|
|
225
|
-
| 测试质量 | 20% | 20 | -20 | TC-06~TC-11 |
|
|
226
|
-
| 鸿蒙化特性测试覆盖 | 20% | 20 | -20 | TC-12~TC-17 |
|
|
227
|
-
| 测试分类覆盖 | 15% | 15 | -15 | TC-18~TC-22 |
|
|
228
|
-
| 测试基础设施 | 5% | 5 | -5 | TC-23~TC-26 |
|
|
229
|
-
|
|
230
|
-
**维度得分** = max(0, 基础分 - 该维度累计扣分)
|
|
231
|
-
|
|
232
|
-
**综合评分** = Σ(各维度得分),范围 0-100
|
|
233
|
-
|
|
234
|
-
#### 3.2 零容忍归零规则(叠加于维度扣分之上)
|
|
235
|
-
|
|
236
|
-
| 规则 | 条件 | 结果 |
|
|
237
|
-
|------|------|------|
|
|
238
|
-
| 归零规则 1 | 核心接口完全无测试(TC-01 覆盖所有核心接口) | **直接评 0 分** |
|
|
239
|
-
| 归零规则 2 | 公开接口覆盖率 < 10%(几乎无接口有测试) | **直接评 0 分** |
|
|
240
|
-
| 归零规则 3 | 仓库无任何测试文件 | **直接评 0 分** |
|
|
241
|
-
| 归零规则 4 | 未发现鸿蒙化代码 | **0 分** |
|
|
242
|
-
| 归零规则 5 | 源码目录不可访问 | **0 分** |
|
|
243
|
-
| 归零规则 6 | 接口覆盖率未达 100%(DEMO 和 test 目录均未实现 100% 接口覆盖) | **直接评 0 分** |
|
|
244
|
-
|
|
245
|
-
#### 3.3 维度子评分独立计算
|
|
246
|
-
|
|
247
|
-
每个维度独立计算子评分(用于报告中明细展示):
|
|
248
|
-
|
|
249
|
-
```
|
|
250
|
-
维度子评分 = (维度得分 / 基础分) × 100
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
> 例如:公开接口覆盖率维度得分 28/40,则维度子评分 = 70/100
|
|
254
|
-
|
|
255
|
-
#### 3.4 严重度映射
|
|
256
|
-
|
|
257
|
-
问题严重度按扣分值映射:
|
|
258
|
-
|
|
259
|
-
| 严重度 | 扣分范围 | 说明 |
|
|
260
|
-
|--------|----------|------|
|
|
261
|
-
| **Critical** | ≥ 10 分 | 致命问题,核心接口无测试或鸿蒙特性无覆盖 |
|
|
262
|
-
| **Major** | 5-9 分 | 严重问题,重要测试缺失或测试质量差 |
|
|
263
|
-
| **Minor** | ≤ 4 分 | 轻微问题,测试规范性不足 |
|
|
264
|
-
|
|
265
|
-
#### 3.5 评分等级说明
|
|
266
|
-
|
|
267
|
-
| 分数区间 | 等级 | 说明 |
|
|
268
|
-
|----------|------|------|
|
|
269
|
-
| 90-100 分 | 优秀 | 接口覆盖率高、测试质量好、鸿蒙特性有测试保障 |
|
|
270
|
-
| 80-89 分 | 良好 | 主要接口有测试,质量尚可,部分鸿蒙特性有覆盖 |
|
|
271
|
-
| 70-79 分 | 一般 | 部分接口有测试,测试质量有不足,鸿蒙特性覆盖不充分 |
|
|
272
|
-
| 60-69 分 | 较差 | 覆盖率低或测试质量差,鸿蒙特性缺少测试 |
|
|
273
|
-
| 50-59 分 | 严重不足 | 核心接口缺少测试保障,鸿蒙化测试几乎缺失 |
|
|
274
|
-
| <50 分 | 不可用 | 触发归零规则或几乎所有接口无测试 |
|
|
275
|
-
| 0 分 | 完全缺失 | 无任何测试或触发归零规则 |
|
|
276
|
-
|
|
277
|
-
> ⚠️ **严苛标准**:测试覆盖度是库质量的最后防线。80 分以下即存在明显测试不足,50 分以下视为严重不可用。
|
|
278
|
-
|
|
279
|
-
---
|
|
280
|
-
|
|
281
|
-
### Phase 4:报告生成
|
|
282
|
-
|
|
283
|
-
在 `{outputDir}` 下生成 `用例覆盖度检视报告.md`,严格遵循 [assets/REPORT_TEMPLATE.md](assets/REPORT_TEMPLATE.md) 中的模板格式。
|
|
284
|
-
|
|
285
|
-
#### 报告模板结构
|
|
286
|
-
|
|
287
|
-
报告包含以下章节:
|
|
288
|
-
|
|
289
|
-
| 章节 | 内容 |
|
|
290
|
-
|------|------|
|
|
291
|
-
| 一、检视概览 | 仓库信息、接口总数、覆盖率、测试文件数 |
|
|
292
|
-
| 二、综合评分 | 综合评分 + 5维度评分表 + 扣分明细 |
|
|
293
|
-
| 三、检视范围 | 鸿蒙代码定位结果、文件列表 |
|
|
294
|
-
| 四、检视维度明细 | 每个维度的子评分和检查项明细 |
|
|
295
|
-
| 五、覆盖度明细 | 每个公开接口的覆盖状态 |
|
|
296
|
-
| 六、未覆盖接口清单 | 未覆盖接口列表及说明 |
|
|
297
|
-
| 七、改进建议 | P0/P1/P2 优先级改进建议 |
|
|
298
|
-
|
|
299
|
-
> **重要**:
|
|
300
|
-
> 1. 报告必须包含 `**综合评分:XX/100**` 格式(粗体标记、中文冒号),以便后端 `_parseArktsLibraryScore` 函数正确解析评分。
|
|
301
|
-
> 2. 每个维度必须包含 `**维度评分:XX/100**` 格式。
|
|
302
|
-
> 3. 覆盖度明细必须列出每个公开接口的覆盖状态。
|
|
303
|
-
|
|
304
|
-
#### 特殊情况处理
|
|
305
|
-
|
|
306
|
-
| 情况 | 处理方式 | 评分 |
|
|
307
|
-
|------|----------|------|
|
|
308
|
-
| 未发现任何测试文件 | 报告标注"无鸿蒙化测试文件" | 0 分 |
|
|
309
|
-
| 发现测试文件但无断言 | 报告标注"测试文件无有效断言" | 按维度扣分(TC-06) |
|
|
310
|
-
| 仅发现原平台测试文件 | 报告标注"仅有原平台测试,鸿蒙接口未覆盖" | 0-30 分 |
|
|
311
|
-
| 发现鸿蒙代码但无测试目录 | 报告标注"无测试目录结构" | 按维度扣分 |
|
|
312
|
-
| 公开接口覆盖率 < 10% | 报告标注"接口覆盖极低" | 0 分(归零规则) |
|
|
313
|
-
| DEMO 和 test 目录均未达 100% 接口覆盖 | 报告标注"接口覆盖率未达 100%",分别列出 DEMO 和 test 目录的覆盖率 | 0 分(归零规则 6) |
|
|
314
|
-
| 扫描到 `.ets` 测试但不在标准目录 | 正常检视,标注实际路径 | 正常评分 |
|
|
315
|
-
| 未发现鸿蒙化代码 | 报告标注"未发现鸿蒙化实现代码" | 0 分 |
|
|
316
|
-
| 源码目录不可访问 | 报告标注"源码目录不可访问" | 0 分 |
|
|
317
|
-
|
|
318
|
-
---
|
|
319
|
-
|
|
320
|
-
## 输出产物
|
|
321
|
-
|
|
322
|
-
| 产物 | 文件名 | 说明 |
|
|
323
|
-
|------|--------|------|
|
|
324
|
-
| 用例覆盖度检视报告 | `用例覆盖度检视报告.md` | 综合评分 + 5维度子评分 + 扣分明细 + 覆盖明细 + 未覆盖清单 + 改进建议 |
|
|
325
|
-
| DEMO 覆盖率报告(可选) | `demo-coverage-report.md` | MCP 脚本 `script_arkts_analyze_demo_coverage` 自动生成 |
|
|
326
|
-
| XTS 覆盖率报告(可选) | `xts-coverage-report.md` | MCP 脚本 `script_arkts_analyze_xts_coverage` 自动生成 |
|
|
327
|
-
|
|
328
|
-
所有产物写入 `{outputDir}` 目录。
|
|
329
|
-
|
|
330
|
-
> ⚠️ **输出文件自检**:写入结果文件前,先确认 `用例覆盖度检视报告.md` 已存在且内容完整(**独立文件,禁止只写入 result 执行结果文件**);若调用了 MCP 覆盖率脚本,同步确认脚本产物(`demo-coverage-report.md` / `xts-coverage-report.md`)已生成。若报告内容仅在草稿中,必须先将其保存为上述独立文件。
|
|
331
|
-
|
|
332
|
-
### 结构化指标输出(必须执行)
|
|
333
|
-
|
|
334
|
-
执行环境会在任务 prompt 中下发一个**结构化指标文件输出路径**(`stepId{X}_loop{L}_meta_{N}.json`)。
|
|
335
|
-
检视完成后,**必须**将最终评分以下述 JSON 对象写入该路径:
|
|
336
|
-
|
|
337
|
-
```json
|
|
338
|
-
{
|
|
339
|
-
"testCoverageScore": 85,
|
|
340
|
-
"scoreReason": "接口覆盖率72%-12、断言缺失-10等(一句话判定依据,≤50字;触发归零规则时必须注明)"
|
|
341
|
-
}
|
|
342
|
-
```
|
|
343
|
-
|
|
344
|
-
| 字段 | 类型 | 说明 |
|
|
345
|
-
|------|------|------|
|
|
346
|
-
| `testCoverageScore` | number | 用例覆盖度评分(0-100 整数,与报告中 `**综合评分:XX/100**` 的数值一致) |
|
|
347
|
-
| `scoreReason` | string | 评分判定依据摘要(可选,前端悬浮提示展示;0 分时强烈建议写明触发的归零规则,如"覆盖率未达100% 触发归零规则6") |
|
|
348
|
-
|
|
349
|
-
**说明**:该文件由执行框架自动收割入库(前端/历史列表直接读取评分,无需解析报告文本)。若 prompt 未下发该路径则跳过本节。
|
|
350
|
-
|
|
351
|
-
---
|
|
352
|
-
|
|
353
|
-
## 评分权重
|
|
354
|
-
|
|
355
|
-
本 SKILL 在 ArkTS 仓库检视综合评分中权重为 **15%**。
|
|
356
|
-
|
|
357
|
-
---
|
|
358
|
-
|
|
359
|
-
## 详细检查清单
|
|
360
|
-
|
|
1
|
+
---
|
|
2
|
+
name: arkts-library-test-coverage-check
|
|
3
|
+
description: 对 ArkTS 鸿蒙化库进行用例覆盖度检视,分析公开接口测试覆盖率、测试质量、鸿蒙化特性测试覆盖、测试分类覆盖、测试基础设施等维度,生成严苛评分报告(0-100分)。作为 ArkTS 仓库检视流程的第六阶段(最终 SKILL)。Use when 需要评估鸿蒙化 ArkTS 库的测试用例覆盖情况、测试质量或生成覆盖度评分报告。
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
compatibility: 需要访问 Git 仓库、分析测试文件、读取接口规格说明文档
|
|
6
|
+
metadata:
|
|
7
|
+
version: "1.0.0"
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# ArktsLibraryTestCoverageCheckSkill
|
|
11
|
+
|
|
12
|
+
对**已鸿蒙化的 ArkTS 库**进行用例覆盖度检视,评估测试用例对公开接口的覆盖程度、测试质量、鸿蒙化特性测试覆盖等关键指标。
|
|
13
|
+
|
|
14
|
+
> ⚠️ **核心定位**:检视鸿蒙化库的**公开接口测试覆盖情况**,而非追求 100% 的代码行覆盖率。重点评估关键功能是否有测试保障。
|
|
15
|
+
|
|
16
|
+
---
|
|
17
|
+
|
|
18
|
+
## 任务参数
|
|
19
|
+
|
|
20
|
+
| 参数 | 必需 | 说明 |
|
|
21
|
+
|------|------|------|
|
|
22
|
+
| `repoUrl` | ✅ | Git 仓库地址,支持分支参数 `?branch=xxx` |
|
|
23
|
+
| `outputDir` | ✅ | 输出目录绝对路径,存放检视报告 |
|
|
24
|
+
| `interfaceDocPath` | ✅ | 接口规格说明文档路径(由 library-interface-analyzer 生成) |
|
|
25
|
+
| `repoName` | ✅ | 仓库名称(用于报告标识) |
|
|
26
|
+
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
## 输入依赖
|
|
30
|
+
|
|
31
|
+
本 SKILL 是 ArkTS 仓库检视流程的**第六阶段**(最终 SKILL),依赖:
|
|
32
|
+
|
|
33
|
+
- **前置 SKILL**: `arkts-library-interface-spec`(接口规格说明已生成)
|
|
34
|
+
- **输入文件**: `接口规格说明.md`(位于 outputDir);`文档质量检视报告.md` 为**可选参考**(若与其他检视维度并发执行、该报告尚未生成,跳过该参考,独立完成检视)
|
|
35
|
+
- **仓库源码**: 已克隆到 `{outputDir}/source/`
|
|
36
|
+
|
|
37
|
+
> 💡 **利用前置报告**:若文档质量检视报告已存在,参考其中标记的文档缺失和接口描述不全问题,重点关注这些接口的测试覆盖情况——文档描述不全的接口往往也缺少测试。
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## 工作流程概览
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Phase 1: 测试范围识别与鸿蒙代码定位
|
|
45
|
+
↓
|
|
46
|
+
Phase 2: 用例覆盖度分析(支持 MCP 脚本自动计算接口覆盖率)
|
|
47
|
+
↓
|
|
48
|
+
Phase 3: 用例覆盖度评分计算
|
|
49
|
+
↓
|
|
50
|
+
Phase 4: 报告生成
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## 工作流程
|
|
56
|
+
|
|
57
|
+
### Phase 1:测试范围识别与鸿蒙代码定位
|
|
58
|
+
|
|
59
|
+
**通过多维度特征扫描**,智能识别鸿蒙化代码和测试文件:
|
|
60
|
+
|
|
61
|
+
#### 1.1 扫描策略(优先级递减)
|
|
62
|
+
|
|
63
|
+
| 扫描维度 | 特征模式 | 权重 | 说明 |
|
|
64
|
+
|----------|----------|------|------|
|
|
65
|
+
| **测试文件类型** | `*test*.ets`、`*Test*.ets`、`*spec*.ets`、`*test*.ts`、`*Test*.ts` | ⭐⭐⭐ 高 | 鸿蒙测试文件特征 |
|
|
66
|
+
| **测试目录** | `test/`、`tests/`、`__tests__/`、`ohosTest/` | ⭐⭐⭐ 高 | 鸿蒙测试目录特征 |
|
|
67
|
+
| **鸿蒙源码** | `*.ets` 文件、`module.json5`、`@ohos.*` API | ⭐⭐⭐ 高 | 源码检视范围 |
|
|
68
|
+
| **C++ NAPI** | `napi_*` 相关文件 | ⭐⭐ 中 | Native 层绑定 |
|
|
69
|
+
| **测试框架配置** | `hypium`、`Devecotest` 配置文件 | ⭐ 低 | 测试框架标识 |
|
|
70
|
+
|
|
71
|
+
#### 1.2 扫描执行
|
|
72
|
+
|
|
73
|
+
```bash
|
|
74
|
+
# Step 1: 扫描测试文件
|
|
75
|
+
find {{outputDir}}/source -type f \( -name "*test*.ets" -o -name "*Test*.ets" -o -name "*spec*.ets" -o -name "*test*.ts" -o -name "*Test*.ts" \)
|
|
76
|
+
|
|
77
|
+
# Step 2: 找到测试目录
|
|
78
|
+
find {{outputDir}}/source -type d \( -name "test" -o -name "tests" -o -name "__tests__" -o -name "ohosTest" \)
|
|
79
|
+
|
|
80
|
+
# Step 2b: 找到 DEMO/示例目录(用于接口覆盖性评估)
|
|
81
|
+
find {{outputDir}}/source -type d \( -name "demo" -o -name "example" -o -name "sample" -o -name "demos" -o -name "examples" -o -name "samples" \)
|
|
82
|
+
|
|
83
|
+
# Step 3: 扫描鸿蒙源码(用于对照接口覆盖)
|
|
84
|
+
find {{outputDir}}/source -type f \( -name "*.ets" -o -name "*.ts" -o -name "*.json5" \)
|
|
85
|
+
|
|
86
|
+
# Step 4: 扫描 NAPI 相关 C++ 文件
|
|
87
|
+
grep -r "napi_" --include="*.cpp" --include="*.h" {{outputDir}}/source || true
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
> `workdir: "{{outputDir}}"`
|
|
91
|
+
|
|
92
|
+
#### 1.3 代码定位结果分类
|
|
93
|
+
|
|
94
|
+
```
|
|
95
|
+
检视范围判定:
|
|
96
|
+
├── 鸿蒙测试代码(必检视)
|
|
97
|
+
│ ├── *test*.ets / *Test*.ets # ArkTS 测试文件 ✅ 检视
|
|
98
|
+
│ ├── *test*.ts / *Test*.ts # TS 测试文件 ✅ 检视
|
|
99
|
+
│ ├── *spec*.ets / *spec*.ts # 规范测试文件 ✅ 检视
|
|
100
|
+
│ └── ohosTest 目录下文件 # 鸿蒙单元测试 ✅ 检视
|
|
101
|
+
├── DEMO/示例代码(接口覆盖评估)
|
|
102
|
+
│ ├── demo/ 目录下文件 # 示例代码 ✅ 检视
|
|
103
|
+
│ ├── example/ 目录下文件 # 示例代码 ✅ 检视
|
|
104
|
+
│ └── sample/ 目录下文件 # 示例代码 ✅ 检视
|
|
105
|
+
├── 鸿蒙源码(用于接口对照)
|
|
106
|
+
│ ├── *.ets 文件 # ArkTS 实现 ✅ 对照
|
|
107
|
+
│ ├── module.json5 # 模块配置 ✅ 对照
|
|
108
|
+
│ └── napi_*.cpp / *.cpp # Native NAPI 绑定 ✅ 对照
|
|
109
|
+
├── 非鸿蒙代码(不检视)
|
|
110
|
+
│ ├── 原平台测试文件 ❌ 不检视
|
|
111
|
+
│ └── 未包含鸿蒙特征的代码 ❌ 不检视
|
|
112
|
+
├── 疑似鸿蒙代码(需验证)
|
|
113
|
+
│ ├── 含部分 napi 调用但无完整结构 ⚠️ 进一步检查
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
#### 1.4 判定规则
|
|
117
|
+
|
|
118
|
+
| 扫描结果 | 判定 | 后续操作 |
|
|
119
|
+
|----------|------|----------|
|
|
120
|
+
| 发现鸿蒙测试文件 | ✅ 正常检视 | 提取测试覆盖接口清单 |
|
|
121
|
+
| 发现鸿蒙源码但无测试文件 | ⚠️ 无测试 | 标注"无鸿蒙化测试",所有接口视为未覆盖 |
|
|
122
|
+
| 仅发现非鸿蒙测试文件 | ⚠️ 测试不匹配 | 标注"仅有原平台测试",鸿蒙接口视为未覆盖 |
|
|
123
|
+
| 未发现鸿蒙特征代码 | ❌ 未鸿蒙化 | 标注"未发现鸿蒙化实现",评 0 分 |
|
|
124
|
+
| 无法访问源码目录 | ❌ 无法检视 | 标注"源码目录不可访问",评 0 分 |
|
|
125
|
+
|
|
126
|
+
同时读取 `接口规格说明.md`,提取所有公开接口列表,作为覆盖度评估基准。
|
|
127
|
+
|
|
128
|
+
---
|
|
129
|
+
|
|
130
|
+
### Phase 2:用例覆盖度分析
|
|
131
|
+
|
|
132
|
+
> **MCP 脚本辅助**:接口覆盖率计算可复用 MCP 脚本工具自动完成:
|
|
133
|
+
> - `script_arkts_analyze_demo_coverage`(`MCP/scripts/analyze-demo-coverage.cjs`)→ 计算 DEMO 目录接口覆盖率
|
|
134
|
+
> - `script_arkts_analyze_xts_coverage`(`MCP/scripts/analyze-xts-coverage.cjs`)→ 计算 test 目录接口覆盖率
|
|
135
|
+
>
|
|
136
|
+
> 详细调用方式参见 [MCP工具使用指南](references/MCP_TOOL_USAGE.md)
|
|
137
|
+
|
|
138
|
+
对测试文件进行覆盖度检视,重点关注以下 5 个维度:
|
|
139
|
+
|
|
140
|
+
#### 2.1 公开接口覆盖率(维度权重 40%)
|
|
141
|
+
|
|
142
|
+
> 本维度是覆盖度检视的**核心维度**,直接影响评分。
|
|
143
|
+
|
|
144
|
+
| # | 检查项 | 扣分 | 说明 |
|
|
145
|
+
|---|--------|------|------|
|
|
146
|
+
| TC-01 | 核心接口未覆盖 | **-15** | 公开核心功能接口(标注为必须/required)无任何测试 |
|
|
147
|
+
| TC-02 | 重要接口未覆盖 | **-10** | 重要公开接口缺少测试用例 |
|
|
148
|
+
| TC-03 | 边界场景缺失 | **-8** | 接口缺少边界值/异常输入测试 |
|
|
149
|
+
| TC-04 | 可选接口未覆盖 | **-3** | 可选功能接口未测试 |
|
|
150
|
+
| TC-05 | 接口参数组合未覆盖 | **-5** | 接口多参数组合场景未测试 |
|
|
151
|
+
|
|
152
|
+
> **覆盖率计算公式**:
|
|
153
|
+
> - 公开接口覆盖率 = (有测试的接口数 / 总公开接口数) × 100%
|
|
154
|
+
>
|
|
155
|
+
> **覆盖率来源双通道**:接口覆盖率可从以下两个来源分别计算,**任意一个达到 100% 即视为通过**:
|
|
156
|
+
> - **DEMO 目录**:DEMO 示例代码中调用的公开接口(通常位于 `demo/`、`example/`、`sample/` 等目录)
|
|
157
|
+
> - **test 目录**:测试代码中调用的公开接口(通常位于 `test/`、`tests/`、`__tests__/`、`ohosTest/` 等目录)
|
|
158
|
+
>
|
|
159
|
+
> 计算方式:分别统计 DEMO 目录和 test 目录中覆盖的公开接口,得到两个覆盖率。只要其中一个达到 100%,接口覆盖率即视为 100%。
|
|
160
|
+
>
|
|
161
|
+
> **扣分上限**:本维度扣分上限为 -40 分(维度基础分 40 分)
|
|
162
|
+
|
|
163
|
+
#### 2.2 测试质量(维度权重 20%)
|
|
164
|
+
|
|
165
|
+
| # | 检查项 | 扣分 | 说明 |
|
|
166
|
+
|---|--------|------|------|
|
|
167
|
+
| TC-06 | 断言缺失 | **-10** | 测试函数无 assert/expect 断言 |
|
|
168
|
+
| TC-07 | 断言过弱 | **-5** | 仅断言不抛异常,未验证正确输出 |
|
|
169
|
+
| TC-08 | 测试独立性 | **-8** | 测试间存在数据依赖,无法独立运行 |
|
|
170
|
+
| TC-09 | Mock 过度 | **-5** | 过多 Mock 导致测试脱离真实环境 |
|
|
171
|
+
| TC-10 | 负面测试缺失 | **-8** | 缺少异常/失败场景测试 |
|
|
172
|
+
| TC-11 | 测试数据硬编码 | **-3** | 测试数据全硬编码,未提取为 fixtures |
|
|
173
|
+
|
|
174
|
+
> **扣分上限**:本维度扣分上限为 -20 分(维度基础分 20 分)
|
|
175
|
+
|
|
176
|
+
#### 2.3 鸿蒙化特性测试覆盖(维度权重 20%)
|
|
177
|
+
|
|
178
|
+
| # | 检查项 | 扣分 | 说明 |
|
|
179
|
+
|---|--------|------|------|
|
|
180
|
+
| TC-12 | 鸿蒙 API 调用未测试 | **-12** | @ohos.* API 调用无测试覆盖 |
|
|
181
|
+
| TC-13 | 权限场景未测试 | **-8** | 需权限的 API 无权限场景测试 |
|
|
182
|
+
| TC-14 | Lifecycle 测试缺失 | **-10** | ArkTS 组件生命周期未测试 |
|
|
183
|
+
| TC-15 | NAPI 测试缺失 | **-10** | Native 模块接口无测试 |
|
|
184
|
+
| TC-16 | 跨设备场景未测试 | **-5** | 鸿蒙多设备场景无测试 |
|
|
185
|
+
| TC-17 | 鸿蒙配置测试缺失 | **-3** | module.json5 配置未测试 |
|
|
186
|
+
|
|
187
|
+
> **扣分上限**:本维度扣分上限为 -20 分(维度基础分 20 分)
|
|
188
|
+
|
|
189
|
+
#### 2.4 测试分类覆盖(维度权重 15%)
|
|
190
|
+
|
|
191
|
+
> 本维度评估测试的层次覆盖,区分不同类型的测试。
|
|
192
|
+
|
|
193
|
+
| # | 检查项 | 扣分 | 说明 |
|
|
194
|
+
|---|--------|------|------|
|
|
195
|
+
| TC-18 | 缺少单元测试 | **-8** | 对独立函数/方法无单元级测试 |
|
|
196
|
+
| TC-19 | 缺少集成测试 | **-5** | 对模块间交互无集成级测试 |
|
|
197
|
+
| TC-20 | 缺少端到端测试 | **-5** | 对完整功能流程无 E2E 测试 |
|
|
198
|
+
| TC-21 | 测试命名不规范 | **-3** | 测试文件/函数命名不符合规范(未含 test/Test/spec 关键词) |
|
|
199
|
+
| TC-22 | 测试分类标注缺失 | **-2** | 测试未标注类型(unit/integration/e2e) |
|
|
200
|
+
|
|
201
|
+
> **扣分上限**:本维度扣分上限为 -15 分(维度基础分 15 分)
|
|
202
|
+
|
|
203
|
+
#### 2.5 测试基础设施(维度权重 5%)
|
|
204
|
+
|
|
205
|
+
| # | 检查项 | 扣分 | 说明 |
|
|
206
|
+
|---|--------|------|------|
|
|
207
|
+
| TC-23 | 测试框架配置缺失 | **-5** | 缺少测试框架(如 @ohos/hypium)配置 |
|
|
208
|
+
| TC-24 | 测试脚本缺失 | **-3** | 无测试运行脚本 |
|
|
209
|
+
| TC-25 | CI 集成缺失 | **-3** | 无 CI/CD 测试流程配置 |
|
|
210
|
+
| TC-26 | 测试数据管理缺失 | **-2** | 缺少测试数据/fixtures 管理 |
|
|
211
|
+
|
|
212
|
+
> **扣分上限**:本维度扣分上限为 -5 分(维度基础分 5 分)
|
|
213
|
+
|
|
214
|
+
---
|
|
215
|
+
|
|
216
|
+
### Phase 3:用例覆盖度评分计算
|
|
217
|
+
|
|
218
|
+
基于检视结果进行**严苛评分**(0-100分),采用维度加权扣分制与零容忍规则:
|
|
219
|
+
|
|
220
|
+
#### 3.1 维度评分规则
|
|
221
|
+
|
|
222
|
+
| 维度 | 权重 | 基础分 | 扣分上限 | 检查项范围 |
|
|
223
|
+
|------|------|--------|----------|------------|
|
|
224
|
+
| 公开接口覆盖率 | 40% | 40 | -40 | TC-01~TC-05 |
|
|
225
|
+
| 测试质量 | 20% | 20 | -20 | TC-06~TC-11 |
|
|
226
|
+
| 鸿蒙化特性测试覆盖 | 20% | 20 | -20 | TC-12~TC-17 |
|
|
227
|
+
| 测试分类覆盖 | 15% | 15 | -15 | TC-18~TC-22 |
|
|
228
|
+
| 测试基础设施 | 5% | 5 | -5 | TC-23~TC-26 |
|
|
229
|
+
|
|
230
|
+
**维度得分** = max(0, 基础分 - 该维度累计扣分)
|
|
231
|
+
|
|
232
|
+
**综合评分** = Σ(各维度得分),范围 0-100
|
|
233
|
+
|
|
234
|
+
#### 3.2 零容忍归零规则(叠加于维度扣分之上)
|
|
235
|
+
|
|
236
|
+
| 规则 | 条件 | 结果 |
|
|
237
|
+
|------|------|------|
|
|
238
|
+
| 归零规则 1 | 核心接口完全无测试(TC-01 覆盖所有核心接口) | **直接评 0 分** |
|
|
239
|
+
| 归零规则 2 | 公开接口覆盖率 < 10%(几乎无接口有测试) | **直接评 0 分** |
|
|
240
|
+
| 归零规则 3 | 仓库无任何测试文件 | **直接评 0 分** |
|
|
241
|
+
| 归零规则 4 | 未发现鸿蒙化代码 | **0 分** |
|
|
242
|
+
| 归零规则 5 | 源码目录不可访问 | **0 分** |
|
|
243
|
+
| 归零规则 6 | 接口覆盖率未达 100%(DEMO 和 test 目录均未实现 100% 接口覆盖) | **直接评 0 分** |
|
|
244
|
+
|
|
245
|
+
#### 3.3 维度子评分独立计算
|
|
246
|
+
|
|
247
|
+
每个维度独立计算子评分(用于报告中明细展示):
|
|
248
|
+
|
|
249
|
+
```
|
|
250
|
+
维度子评分 = (维度得分 / 基础分) × 100
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
> 例如:公开接口覆盖率维度得分 28/40,则维度子评分 = 70/100
|
|
254
|
+
|
|
255
|
+
#### 3.4 严重度映射
|
|
256
|
+
|
|
257
|
+
问题严重度按扣分值映射:
|
|
258
|
+
|
|
259
|
+
| 严重度 | 扣分范围 | 说明 |
|
|
260
|
+
|--------|----------|------|
|
|
261
|
+
| **Critical** | ≥ 10 分 | 致命问题,核心接口无测试或鸿蒙特性无覆盖 |
|
|
262
|
+
| **Major** | 5-9 分 | 严重问题,重要测试缺失或测试质量差 |
|
|
263
|
+
| **Minor** | ≤ 4 分 | 轻微问题,测试规范性不足 |
|
|
264
|
+
|
|
265
|
+
#### 3.5 评分等级说明
|
|
266
|
+
|
|
267
|
+
| 分数区间 | 等级 | 说明 |
|
|
268
|
+
|----------|------|------|
|
|
269
|
+
| 90-100 分 | 优秀 | 接口覆盖率高、测试质量好、鸿蒙特性有测试保障 |
|
|
270
|
+
| 80-89 分 | 良好 | 主要接口有测试,质量尚可,部分鸿蒙特性有覆盖 |
|
|
271
|
+
| 70-79 分 | 一般 | 部分接口有测试,测试质量有不足,鸿蒙特性覆盖不充分 |
|
|
272
|
+
| 60-69 分 | 较差 | 覆盖率低或测试质量差,鸿蒙特性缺少测试 |
|
|
273
|
+
| 50-59 分 | 严重不足 | 核心接口缺少测试保障,鸿蒙化测试几乎缺失 |
|
|
274
|
+
| <50 分 | 不可用 | 触发归零规则或几乎所有接口无测试 |
|
|
275
|
+
| 0 分 | 完全缺失 | 无任何测试或触发归零规则 |
|
|
276
|
+
|
|
277
|
+
> ⚠️ **严苛标准**:测试覆盖度是库质量的最后防线。80 分以下即存在明显测试不足,50 分以下视为严重不可用。
|
|
278
|
+
|
|
279
|
+
---
|
|
280
|
+
|
|
281
|
+
### Phase 4:报告生成
|
|
282
|
+
|
|
283
|
+
在 `{outputDir}` 下生成 `用例覆盖度检视报告.md`,严格遵循 [assets/REPORT_TEMPLATE.md](assets/REPORT_TEMPLATE.md) 中的模板格式。
|
|
284
|
+
|
|
285
|
+
#### 报告模板结构
|
|
286
|
+
|
|
287
|
+
报告包含以下章节:
|
|
288
|
+
|
|
289
|
+
| 章节 | 内容 |
|
|
290
|
+
|------|------|
|
|
291
|
+
| 一、检视概览 | 仓库信息、接口总数、覆盖率、测试文件数 |
|
|
292
|
+
| 二、综合评分 | 综合评分 + 5维度评分表 + 扣分明细 |
|
|
293
|
+
| 三、检视范围 | 鸿蒙代码定位结果、文件列表 |
|
|
294
|
+
| 四、检视维度明细 | 每个维度的子评分和检查项明细 |
|
|
295
|
+
| 五、覆盖度明细 | 每个公开接口的覆盖状态 |
|
|
296
|
+
| 六、未覆盖接口清单 | 未覆盖接口列表及说明 |
|
|
297
|
+
| 七、改进建议 | P0/P1/P2 优先级改进建议 |
|
|
298
|
+
|
|
299
|
+
> **重要**:
|
|
300
|
+
> 1. 报告必须包含 `**综合评分:XX/100**` 格式(粗体标记、中文冒号),以便后端 `_parseArktsLibraryScore` 函数正确解析评分。
|
|
301
|
+
> 2. 每个维度必须包含 `**维度评分:XX/100**` 格式。
|
|
302
|
+
> 3. 覆盖度明细必须列出每个公开接口的覆盖状态。
|
|
303
|
+
|
|
304
|
+
#### 特殊情况处理
|
|
305
|
+
|
|
306
|
+
| 情况 | 处理方式 | 评分 |
|
|
307
|
+
|------|----------|------|
|
|
308
|
+
| 未发现任何测试文件 | 报告标注"无鸿蒙化测试文件" | 0 分 |
|
|
309
|
+
| 发现测试文件但无断言 | 报告标注"测试文件无有效断言" | 按维度扣分(TC-06) |
|
|
310
|
+
| 仅发现原平台测试文件 | 报告标注"仅有原平台测试,鸿蒙接口未覆盖" | 0-30 分 |
|
|
311
|
+
| 发现鸿蒙代码但无测试目录 | 报告标注"无测试目录结构" | 按维度扣分 |
|
|
312
|
+
| 公开接口覆盖率 < 10% | 报告标注"接口覆盖极低" | 0 分(归零规则) |
|
|
313
|
+
| DEMO 和 test 目录均未达 100% 接口覆盖 | 报告标注"接口覆盖率未达 100%",分别列出 DEMO 和 test 目录的覆盖率 | 0 分(归零规则 6) |
|
|
314
|
+
| 扫描到 `.ets` 测试但不在标准目录 | 正常检视,标注实际路径 | 正常评分 |
|
|
315
|
+
| 未发现鸿蒙化代码 | 报告标注"未发现鸿蒙化实现代码" | 0 分 |
|
|
316
|
+
| 源码目录不可访问 | 报告标注"源码目录不可访问" | 0 分 |
|
|
317
|
+
|
|
318
|
+
---
|
|
319
|
+
|
|
320
|
+
## 输出产物
|
|
321
|
+
|
|
322
|
+
| 产物 | 文件名 | 说明 |
|
|
323
|
+
|------|--------|------|
|
|
324
|
+
| 用例覆盖度检视报告 | `用例覆盖度检视报告.md` | 综合评分 + 5维度子评分 + 扣分明细 + 覆盖明细 + 未覆盖清单 + 改进建议 |
|
|
325
|
+
| DEMO 覆盖率报告(可选) | `demo-coverage-report.md` | MCP 脚本 `script_arkts_analyze_demo_coverage` 自动生成 |
|
|
326
|
+
| XTS 覆盖率报告(可选) | `xts-coverage-report.md` | MCP 脚本 `script_arkts_analyze_xts_coverage` 自动生成 |
|
|
327
|
+
|
|
328
|
+
所有产物写入 `{outputDir}` 目录。
|
|
329
|
+
|
|
330
|
+
> ⚠️ **输出文件自检**:写入结果文件前,先确认 `用例覆盖度检视报告.md` 已存在且内容完整(**独立文件,禁止只写入 result 执行结果文件**);若调用了 MCP 覆盖率脚本,同步确认脚本产物(`demo-coverage-report.md` / `xts-coverage-report.md`)已生成。若报告内容仅在草稿中,必须先将其保存为上述独立文件。
|
|
331
|
+
|
|
332
|
+
### 结构化指标输出(必须执行)
|
|
333
|
+
|
|
334
|
+
执行环境会在任务 prompt 中下发一个**结构化指标文件输出路径**(`stepId{X}_loop{L}_meta_{N}.json`)。
|
|
335
|
+
检视完成后,**必须**将最终评分以下述 JSON 对象写入该路径:
|
|
336
|
+
|
|
337
|
+
```json
|
|
338
|
+
{
|
|
339
|
+
"testCoverageScore": 85,
|
|
340
|
+
"scoreReason": "接口覆盖率72%-12、断言缺失-10等(一句话判定依据,≤50字;触发归零规则时必须注明)"
|
|
341
|
+
}
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
| 字段 | 类型 | 说明 |
|
|
345
|
+
|------|------|------|
|
|
346
|
+
| `testCoverageScore` | number | 用例覆盖度评分(0-100 整数,与报告中 `**综合评分:XX/100**` 的数值一致) |
|
|
347
|
+
| `scoreReason` | string | 评分判定依据摘要(可选,前端悬浮提示展示;0 分时强烈建议写明触发的归零规则,如"覆盖率未达100% 触发归零规则6") |
|
|
348
|
+
|
|
349
|
+
**说明**:该文件由执行框架自动收割入库(前端/历史列表直接读取评分,无需解析报告文本)。若 prompt 未下发该路径则跳过本节。
|
|
350
|
+
|
|
351
|
+
---
|
|
352
|
+
|
|
353
|
+
## 评分权重
|
|
354
|
+
|
|
355
|
+
本 SKILL 在 ArkTS 仓库检视综合评分中权重为 **15%**。
|
|
356
|
+
|
|
357
|
+
---
|
|
358
|
+
|
|
359
|
+
## 详细检查清单
|
|
360
|
+
|
|
361
361
|
完整检查项参考参见 [references/CHECKLIST.md](references/CHECKLIST.md)
|