@ohos-cpf/3rdloop 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +290 -244
- package/bin/3rdloop.mjs +46 -46
- package/lib/cli.js +781 -781
- package/lib/config-cmd.js +451 -451
- package/lib/config.js +318 -318
- package/lib/doctor.js +113 -113
- package/lib/exit-codes.js +30 -30
- package/lib/opencode.js +155 -155
- package/lib/orch.js +426 -426
- package/lib/queries.js +263 -263
- package/lib/step.js +325 -325
- package/lib/ui.js +222 -222
- package/lib/update.js +279 -279
- package/lib/workflow.js +308 -308
- package/lib/workflows.js +131 -131
- package/package.json +50 -50
- package/vendor/Server/Agent/SkillSelector/README.md +343 -343
- package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -207
- package/vendor/Server/Agent/SkillSelector/index.js +14 -14
- package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -313
- package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -161
- package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -144
- package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -433
- package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -382
- package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +59 -59
- package/vendor/Server/Brain/AnalysisStrategies.js +422 -422
- package/vendor/Server/Brain/Brain.js +686 -686
- package/vendor/Server/Brain/DecompositionStrategies.js +621 -621
- package/vendor/Server/Brain/PlanPersistence.js +196 -196
- package/vendor/Server/Brain/SkillExecutor.js +251 -251
- package/vendor/Server/Brain/index.js +11 -11
- package/vendor/Server/CLI/cli.js +275 -275
- package/vendor/Server/CLI/deveco-code/index.js +71 -71
- package/vendor/Server/CLI/deveco-code.js +5 -5
- package/vendor/Server/CLI/opencode/index.js +817 -818
- package/vendor/Server/CLI/opencode.js +5 -5
- package/vendor/Server/DbUse/MessageArchive.js +61 -61
- package/vendor/Server/DbUse/StorageManager.js +107 -107
- package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -94
- package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -114
- package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -157
- package/vendor/Server/DbUse/index.js +160 -160
- package/vendor/Server/DbUse/stores/SessionStore.js +279 -279
- package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -133
- package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -262
- package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -279
- package/vendor/Server/FlexRunner/FlexRunner.js +1759 -1759
- package/vendor/Server/FlexRunner/index.js +12 -12
- package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -523
- package/vendor/Server/Knowledge/KnowledgeManager.js +341 -341
- package/vendor/Server/Knowledge/index.js +33 -33
- package/vendor/Server/LoopEngine/LoopEngine.js +1133 -1133
- package/vendor/Server/LoopEngine/index.js +11 -11
- package/vendor/Server/Orchestrator/Orchestrator.js +0 -3
- package/vendor/Server/Orchestrator/StepNode.js +312 -312
- package/vendor/Server/Orchestrator/index.js +13 -13
- package/vendor/Server/Routes/controllers/BrainController.js +241 -241
- package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -1125
- package/vendor/Server/Routes/controllers/HealthController.js +44 -44
- package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -355
- package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -788
- package/vendor/Server/Routes/controllers/StatsController.js +57 -57
- package/vendor/Server/Routes/controllers/StreamController.js +67 -67
- package/vendor/Server/Routes/library/logger.js +179 -179
- package/vendor/Server/Routes/library/zipArchive.js +172 -172
- package/vendor/Server/Routes/router/Router.js +204 -204
- package/vendor/Server/Routes/routes/brain.js +47 -47
- package/vendor/Server/Routes/routes/flexrunner.js +72 -72
- package/vendor/Server/Routes/routes/health.js +28 -28
- package/vendor/Server/Routes/routes/index.js +57 -57
- package/vendor/Server/Routes/routes/knowledge.js +55 -55
- package/vendor/Server/Routes/routes/loopengine.js +58 -58
- package/vendor/Server/Routes/routes/orchestrator.js +61 -61
- package/vendor/Server/Routes/routes/registry.js +97 -97
- package/vendor/Server/Routes/routes/stats.js +23 -23
- package/vendor/Server/Routes/routes/stream.js +30 -30
- package/vendor/Server/Routes/server.js +203 -203
- package/vendor/Server/Routes/sse/SseHub.js +308 -308
- package/vendor/Server/Skills/acceptance-check/SKILL.md +191 -191
- package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -52
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -77
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_EVIDENCE_VERIFICATION.md +70 -70
- package/vendor/Server/Skills/arkts-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +210 -210
- package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +28 -28
- package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +233 -233
- package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +328 -328
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -291
- package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -68
- package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -184
- package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -337
- package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -400
- package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +98 -98
- package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -544
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -174
- package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -321
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -100
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -185
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +233 -233
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +102 -102
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -89
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -62
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +107 -107
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -124
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -90
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -57
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +391 -391
- package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -113
- package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +312 -312
- package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -154
- package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +165 -165
- package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +308 -308
- package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -90
- package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -282
- package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +360 -360
- package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +145 -145
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +252 -252
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +114 -114
- package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +262 -262
- package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -455
- package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -60
- package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -76
- package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -200
- package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +518 -518
- package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -276
- package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +92 -92
- package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -767
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -221
- package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +228 -228
- package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -194
- package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +575 -575
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +574 -574
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -182
- package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +490 -490
- package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -217
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -299
- package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -190
- package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +133 -133
- package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/flutter-interface/README.md +75 -75
- package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -291
- package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -336
- package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -190
- package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -258
- package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -254
- package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +517 -517
- package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +381 -381
- package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +341 -341
- package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -71
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +518 -518
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +406 -406
- package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +652 -652
- package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +396 -396
- package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +744 -744
- package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +720 -720
- package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -414
- package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -150
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -304
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -265
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -286
- package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -383
- package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -165
- package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -91
- package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +453 -301
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_CHECKLIST.md +151 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +257 -105
- package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +191 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +317 -208
- package/vendor/Server/Skills/rn-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +234 -234
- package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +188 -188
- package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +246 -246
- package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -198
- package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -40
- package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -78
- package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -70
- package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -47
- package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -252
- package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -176
- package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -5
- package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -35
- package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -137
- package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -33
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -40
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -429
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -105
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -90
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -213
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -73
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -258
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -341
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -67
- package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -299
- package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -293
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -857
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -856
- package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -157
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -801
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +683 -683
- package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -233
- package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -1373
- package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -220
- package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -245
- package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -414
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -413
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -355
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -115
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -139
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -586
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -57
- package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -259
- package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -301
- package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -148
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -118
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -168
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -176
- package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -274
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -45
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -25
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -61
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -165
- package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -239
- package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -96
- package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +57 -57
- package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -99
- package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -64
- package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +74 -74
- package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -164
- package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +356 -339
- package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +85 -83
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +905 -859
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +124 -122
- package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +287 -279
- package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -273
- package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -129
- package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -581
- package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -138
- package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -168
- package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +526 -506
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +321 -280
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -221
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +220 -209
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -325
- package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -279
- package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -404
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -185
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -265
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -189
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -203
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -147
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -148
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -165
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -195
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -249
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -161
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -413
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -245
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -282
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -251
- package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -469
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -310
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -303
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -421
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -358
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -114
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -274
- package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -185
- package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -191
- package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -216
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -107
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -120
- package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -108
- package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -237
- package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -261
- package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -112
- package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +497 -497
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -270
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -164
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -556
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -459
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -65
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -512
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -132
- package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -424
- package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -137
- package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -306
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -485
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -172
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -422
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -95
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -169
- package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -554
- package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -106
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -216
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -413
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -98
- package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -337
- package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -722
- package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -173
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -267
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -174
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -111
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -186
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -150
- package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -296
- package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -371
- package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -212
- package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -223
- package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -1053
- package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +295 -255
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +82 -77
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -224
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +175 -174
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -967
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -1798
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -5
- package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +180 -137
- package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -145
- package/vendor/Server/Skills/skill-generator/SKILL.md +365 -365
- package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -183
- package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -82
- package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -110
- package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -122
- package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -121
- package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/task-analysis/SKILL.md +234 -234
- package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -160
- package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -190
- package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -224
- package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -162
- package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -55
- package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -126
- package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -256
- package/vendor/Server/Skills/task-decomposition/SKILL.md +528 -528
- package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -451
- package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -179
- package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -152
- package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -175
- package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -195
- package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -226
- package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -263
- package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -29
- package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -376
- package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -259
- package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -216
- package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +424 -424
- package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -427
- package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -214
- package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -235
- package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -250
- package/vendor/Server/TestCheck/TestCheck.js +775 -775
- package/vendor/Server/TestCheck/index.js +11 -11
- package/vendor/Server/library/McpToolGuide.js +280 -280
- package/vendor/Server/library/StatsService.js +126 -126
- package/vendor/Server/library/cstTime.js +16 -16
- package/vendor/VERSION +3 -3
- package/workflows/pr-check.mjs +105 -105
- package/workflows/pr-push.mjs +192 -192
- package/vendor/Server/Agent/SkillSelector/types.js +0 -63
|
@@ -1,321 +1,321 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: arkts-library-demo-scenario
|
|
3
|
-
description: 基于覆盖率报告,为未覆盖接口生成 ArkTS 测试 Demo 描述文档。读取覆盖率报告中的未覆盖接口清单(含签名和功能描述),以接口为单位生成测试 Demo 描述(名称、描述、步骤、预期结果),并以表格形式汇总输出。允许将存在直接调用关系或属于同一功能模块的接口合并到同一个 Demo 中。当需要对鸿蒙原生库进行 Demo 覆盖率缺口填补、未覆盖接口场景规划时调用。
|
|
4
|
-
license: Apache-2.0
|
|
5
|
-
metadata:
|
|
6
|
-
version: "1.0.0"
|
|
7
|
-
category: harmonyos-development
|
|
8
|
-
language: ArkTS/ETS
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# 鸿蒙ArkTs原生库未覆盖接口 Demo 场景生成
|
|
12
|
-
|
|
13
|
-
本 Skill 读取覆盖率报告中的未覆盖接口清单,以接口为单位自动生成测试 Demo 描述,输出为标准 Markdown 表格文档,使接口覆盖率达到 100%。
|
|
14
|
-
|
|
15
|
-
> ⚠️ **核心约束**:
|
|
16
|
-
> 1. 只生成覆盖率报告"未覆盖接口清单"中列出的接口场景
|
|
17
|
-
> 2. 所有内容必须基于覆盖率报告中真实存在的接口签名和功能描述
|
|
18
|
-
> 3. 严禁捏造不存在的接口、参数或行为
|
|
19
|
-
|
|
20
|
-
---
|
|
21
|
-
|
|
22
|
-
## 文档模式选择
|
|
23
|
-
|
|
24
|
-
**选择规则(按顺序判断):**
|
|
25
|
-
|
|
26
|
-
1. **统计未覆盖接口数量和 Demo 预估数量**
|
|
27
|
-
2. **判断模式**:若未覆盖接口 ≤ 25 个 **且** Demo ≤ 8 个 → 使用单文档模式
|
|
28
|
-
3. **否则** → 使用多文档拆分模式
|
|
29
|
-
|
|
30
|
-
| 模式 | 文件命名 | 适用条件 |
|
|
31
|
-
|-----|---------|---------|
|
|
32
|
-
| 单文档 | `{库名}未覆盖接口Demo场景.md` | 未覆盖接口 ≤ 25 个且 Demo ≤ 8 个 |
|
|
33
|
-
| 多文档拆分 | `{库名}未覆盖接口Demo场景(一){模块主题}.md`、`(二)...` | 接口 > 25 个或 Demo > 8 个 |
|
|
34
|
-
|
|
35
|
-
> ⚠️ **多文档模式注意**:Demo 序号和接口覆盖矩阵序号在所有文档间保持全局连续。
|
|
36
|
-
|
|
37
|
-
## 核心约束概览
|
|
38
|
-
|
|
39
|
-
| 约束类别 | 关键规则 |
|
|
40
|
-
|---------|---------|
|
|
41
|
-
| **内容真实性** | 所有内容必须基于覆盖率报告中真实存在的接口签名和功能描述,严禁凭空捏造 |
|
|
42
|
-
| **接口覆盖** | 每个未覆盖接口必须被至少一个 Demo 覆盖,补充后覆盖率达到 100% |
|
|
43
|
-
| **Demo 分组** | 存在直接调用关系或属于同一功能模块的接口可合并;不同功能方向、无调用关系的接口禁止强行合并 |
|
|
44
|
-
| **可验证性** | 每个按钮/步骤必须对应至少一条设备可观测的预期结果;依赖平台事件且已知不触发的接口改为平台限制说明 |
|
|
45
|
-
| **ArkUI 响应式** | 计数器、状态标志变量必须声明为 `@State`;异步回调链须规划双计数器 |
|
|
46
|
-
| **命名规范** | Demo 名称格式:`[功能动词][操作对象][特征/场景]Demo`,不超过 20 字 |
|
|
47
|
-
| **输出格式** | 步骤和预期结果为编号列表;接口签名格式:`` `函数名(参数类型): 返回类型` `` |
|
|
48
|
-
|
|
49
|
-
---
|
|
50
|
-
|
|
51
|
-
## 适用场景
|
|
52
|
-
|
|
53
|
-
- 为已 ohos 化鸿蒙原生库填补 Demo 覆盖率缺口
|
|
54
|
-
- 生成开发者可直接参考的测试 Demo 描述文档
|
|
55
|
-
- 为 QA / 开发团队提供可执行的 Demo 实现指导
|
|
56
|
-
- 配合 ArkTsLibraryInterfaceSpecSkill + ArkTsLibraryDemoCoverageSkill 实现"接口分析 → 覆盖率分析 → 缺口场景规划"完整链路
|
|
57
|
-
|
|
58
|
-
---
|
|
59
|
-
|
|
60
|
-
## 任务参数
|
|
61
|
-
|
|
62
|
-
| 参数 | 必需 | 说明 |
|
|
63
|
-
|------|------|------|
|
|
64
|
-
| `coverageReportPath` | ✅ | 覆盖率报告绝对路径(由 ArkTsLibraryDemoCoverageSkill 生成,含未覆盖接口清单及签名) |
|
|
65
|
-
| `sourcePath` | 可选 | 源码根目录(提供后可探查现有 demo 风格作为参考) |
|
|
66
|
-
| `outputDir` | 可选 | 输出目录,默认放置在覆盖率报告所在目录 |
|
|
67
|
-
|
|
68
|
-
### 输入异常处理
|
|
69
|
-
|
|
70
|
-
| 异常情况 | 处理方式 |
|
|
71
|
-
|---------|---------|
|
|
72
|
-
| 覆盖率报告不存在或无法读取 | 停止执行,向用户提示错误并请求提供有效文档路径 |
|
|
73
|
-
| 覆盖率报告格式异常(非 Markdown 或无法解析) | 停止执行,向用户说明问题并请求提供正确格式的文档 |
|
|
74
|
-
| 未覆盖接口清单为空(覆盖率 100%) | 生成空场景文档,标注"所有接口已覆盖,无需补充" |
|
|
75
|
-
| 无法确定库名称 | 使用默认命名 `Unknown未覆盖接口Demo场景.md`,并向用户说明情况 |
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
---
|
|
80
|
-
|
|
81
|
-
## 工作流程
|
|
82
|
-
|
|
83
|
-
### 阶段一:读取覆盖率报告并提取未覆盖接口
|
|
84
|
-
|
|
85
|
-
#### 1.1 读取覆盖率报告
|
|
86
|
-
|
|
87
|
-
```
|
|
88
|
-
执行步骤:
|
|
89
|
-
1. 使用 read_file 读取 {{coverageReportPath}} 全文
|
|
90
|
-
2. 提取库名称(用于输出文件命名)
|
|
91
|
-
3. 提取当前覆盖率(用于概述中标注补充前后对比)
|
|
92
|
-
```
|
|
93
|
-
|
|
94
|
-
#### 1.2 提取未覆盖接口清单
|
|
95
|
-
|
|
96
|
-
定位覆盖率报告「## 5. 未覆盖接口清单」章节,提取每个未覆盖接口:
|
|
97
|
-
|
|
98
|
-
| 提取字段 | 来源列 | 用途 |
|
|
99
|
-
|---------|--------|------|
|
|
100
|
-
| 接口名称 | `方法/属性` 列 | Demo 命名和步骤描述 |
|
|
101
|
-
| 完整签名 | `签名` 列 | 步骤中标注精确调用方式 |
|
|
102
|
-
| 接口类型 | `类型` 列 | 确定调用方式(method/property/field) |
|
|
103
|
-
| 功能描述 | `功能描述` 列 | Demo 描述和预期结果的依据 |
|
|
104
|
-
| 所属类 | `### {ClassName}` 子标题 | 分组依据 |
|
|
105
|
-
|
|
106
|
-
覆盖率报告本身已按类分组,同一类下的未覆盖接口天然属于同一功能模块。
|
|
107
|
-
|
|
108
|
-
> ⚠️ **低价值常量跳过规则(强制)**:覆盖率报告已过滤 `public static readonly` 常量(`lowValue === true`)与类型别名(`kind === 'type'`),这些不会出现在未覆盖清单中。若覆盖率报告的「基本信息」章节标注了「过滤低价值常量 > 0」,说明库含纯常量类(如 `BleMsg`、`BluetoothGattCharacteristic`),**禁止为这些类规划独立的"常量展示页"Demo**。常量无行为逻辑、无运行时回归价值,仅作 `import` 引用即可,不纳入 Demo 覆盖目标。
|
|
109
|
-
|
|
110
|
-
#### 1.3 建立未覆盖接口能力清单(内部工作记录)
|
|
111
|
-
|
|
112
|
-
```
|
|
113
|
-
未覆盖接口清单示例(不写入输出文件):
|
|
114
|
-
┌─────────────────────────────────────────────────────┐
|
|
115
|
-
│ 类 ImageKnife │
|
|
116
|
-
│ - 方法 preload(loadSrc: ...): ImageKnifeRequest │
|
|
117
|
-
│ 功能: 图片预加载 │
|
|
118
|
-
│ - 方法 cancel(request: ImageKnifeRequest) │
|
|
119
|
-
│ 功能: 取消预加载请求 │
|
|
120
|
-
│ 类 ImageKnifeOption │
|
|
121
|
-
│ - 属性 onlyRetrieveFromCache: boolean │
|
|
122
|
-
│ 功能: 仅从缓存加载图片 │
|
|
123
|
-
│ ... │
|
|
124
|
-
│ │
|
|
125
|
-
│ 未覆盖接口总数: N │
|
|
126
|
-
│ 当前覆盖率: X% │
|
|
127
|
-
│ 补充后预期覆盖率: 100% │
|
|
128
|
-
└─────────────────────────────────────────────────────┘
|
|
129
|
-
```
|
|
130
|
-
|
|
131
|
-
---
|
|
132
|
-
|
|
133
|
-
### 阶段二:生成测试 Demo 描述
|
|
134
|
-
|
|
135
|
-
#### 2.1 Demo 分组原则
|
|
136
|
-
|
|
137
|
-
**原则一:一接口至少一个 Demo**
|
|
138
|
-
每个未覆盖接口必须被至少一个 Demo 覆盖。
|
|
139
|
-
|
|
140
|
-
**原则二:关联接口可合并**
|
|
141
|
-
满足以下任一条件的接口可合并到同一 Demo:
|
|
142
|
-
- 存在明确的调用依赖关系(如 `init()` → `execute()` → `destroy()`)
|
|
143
|
-
- 共同完成一个完整的业务场景(如"创建 → 配置 → 执行 → 获取结果")
|
|
144
|
-
- 属于同一主题功能簇(如所有图像处理相关方法)
|
|
145
|
-
- 一个接口的输出是另一个接口的输入
|
|
146
|
-
|
|
147
|
-
**原则三:禁止无关合并**
|
|
148
|
-
不同功能方向、无调用关系的接口不得强行合并到同一 Demo。
|
|
149
|
-
|
|
150
|
-
#### 2.2 Demo 描述要素
|
|
151
|
-
|
|
152
|
-
每个测试 Demo 包含以下五个要素:
|
|
153
|
-
|
|
154
|
-
**① 测试 Demo 名称**
|
|
155
|
-
- 以功能描述为基础简要命名
|
|
156
|
-
- 命名格式:`[功能动词][操作对象][特征/场景]Demo`
|
|
157
|
-
- 示例:`图片模糊处理Demo`、`配置初始化与销毁Demo`、`异步任务执行Demo`
|
|
158
|
-
|
|
159
|
-
**② 测试 Demo 描述**
|
|
160
|
-
- 对该 Demo 的功能和目的进行详细描述
|
|
161
|
-
- 说明该 Demo 展示了哪些接口能力
|
|
162
|
-
- 说明开发者通过该 Demo 能理解什么
|
|
163
|
-
|
|
164
|
-
**③ 测试 Demo 步骤**
|
|
165
|
-
- 以 Demo 页面为载体,列出具体可执行步骤
|
|
166
|
-
- 步骤需包含:页面构建、UI 交互操作、接口调用时机、结果展示方式
|
|
167
|
-
- 示例格式:
|
|
168
|
-
```
|
|
169
|
-
1. 创建 Demo 页面,添加 [操作按钮] 和 [结果展示区域]
|
|
170
|
-
2. 点击按钮触发 xxx() 调用,传入参数 ...
|
|
171
|
-
3. 在结果区域展示返回值 / 状态变化
|
|
172
|
-
4. 验证 ...
|
|
173
|
-
```
|
|
174
|
-
|
|
175
|
-
**④ 测试 Demo 预期结果**
|
|
176
|
-
- 列出验证该 Demo 是否成功的具体可观测指标
|
|
177
|
-
- 包括:UI 展示内容、返回值格式、状态变化、无异常崩溃等
|
|
178
|
-
|
|
179
|
-
**⑤ 对应函数接口**
|
|
180
|
-
- 列出该 Demo 涉及的所有未覆盖接口的完整签名
|
|
181
|
-
- 签名来源于覆盖率报告的"签名"列
|
|
182
|
-
- 格式:`` `函数名(参数类型): 返回类型` ``
|
|
183
|
-
|
|
184
|
-
> ⚠️ **可验证性前置规则(强制)**:在为任何接口编写步骤和预期结果之前,必须先判断:**该接口在目标设备上能否产生可被用户观测到的输出?**
|
|
185
|
-
>
|
|
186
|
-
> | 情况 | 处理方式 |
|
|
187
|
-
> |-----|----------|
|
|
188
|
-
> | 接口有直接返回值、状态变更或 UI 更新 | 正常作为主步骤,预期结果描述可观测指标 |
|
|
189
|
-
> | 接口依赖平台事件回调,且该事件在测试设备上已知不触发 | **禁止**作为主步骤;在 Demo 步骤中标注「平台限制」,建议通过 `dispatchXxx` 桥接方法间接验证 |
|
|
190
|
-
> | 接口无任何可观测输出(无返回值、无回调、无 UI 变更) | 合并到相关流程 Demo 中,通过其他接口的状态变化间接验证 |
|
|
191
|
-
>
|
|
192
|
-
> **禁止「死按钮」**:Demo 中每个按钮(每个步骤中调用的接口)必须对应至少一条 UI 上可观测的预期结果。若无法提供,该按钮/步骤必须删除或改为平台限制说明。
|
|
193
|
-
>
|
|
194
|
-
> 🎯 **ArkUI `@State` 强制规则**:Demo 步骤中包含「计数器(如回调次数、调用次数)」或「状态标志(如是否已初始化)」等运行时变化量时,在步骤或预期结果描述中必须注明:**该变量须声明为 `@State`**,否则 ArkUI 不会触发重渲染,计数器将始终显示初始值(如永远显示 0),导致 Demo 验证逻辑完全失效。
|
|
195
|
-
|
|
196
|
-
#### 2.3 生成策略
|
|
197
|
-
|
|
198
|
-
按以下优先级顺序生成 Demo:
|
|
199
|
-
|
|
200
|
-
1. **核心功能 Demo**(P0):覆盖库最主要的功能接口,每个核心功能至少一个 Demo
|
|
201
|
-
2. **完整流程 Demo**(P1):展示"初始化 → 核心操作 → 销毁"完整生命周期
|
|
202
|
-
3. **参数变体 Demo**(P2):对同一接口的不同参数组合进行展示(可选)
|
|
203
|
-
4. **组合能力 Demo**(P1):将相关联接口合并,展示完整使用链路
|
|
204
|
-
|
|
205
|
-
#### 2.4 异步回调链双计数器诊断模式(强制)
|
|
206
|
-
|
|
207
|
-
对任何 Demo 中涉及「调用库函数 → 等待回调」的异步链路,**必须**在 Demo 设计中规划双计数器:
|
|
208
|
-
|
|
209
|
-
| 计数器位置 | 变量名建议 | 含义 |
|
|
210
|
-
|-----------|----------|------|
|
|
211
|
-
| 调用/分发前(在触发代码中) | `xxxDispatchCount` | 调用/触发动作的执行次数 |
|
|
212
|
-
| 回调内部(在 `onXxx` 回调方法中) | `xxxCallbackCount` | 回调实际被触发的次数 |
|
|
213
|
-
|
|
214
|
-
两个计数器都必须在 Demo 页面的**验证区域**中展示(Text 组件),且**必须声明为 `@State`**。
|
|
215
|
-
|
|
216
|
-
诊断规则:
|
|
217
|
-
- `dispatchCount > 0` 且 `callbackCount = 0` → 调用成功但回调未触发,问题在回调注册或平台事件链
|
|
218
|
-
- `dispatchCount = 0` → 触发代码未执行,问题在 Demo 的触发逻辑
|
|
219
|
-
- `dispatchCount = callbackCount > 0` → 链路完全正常
|
|
220
|
-
|
|
221
|
-
---
|
|
222
|
-
|
|
223
|
-
### 阶段三:生成输出文档
|
|
224
|
-
|
|
225
|
-
#### 3.1 文档拆分执行
|
|
226
|
-
|
|
227
|
-
根据"文档模式选择"部分的规则已确定输出模式,执行以下步骤:
|
|
228
|
-
|
|
229
|
-
**多文档拆分原则(仅在多文档模式下执行):**
|
|
230
|
-
|
|
231
|
-
1. **按功能模块拆分**:每个文档对应一个或几个功能内聚的模块
|
|
232
|
-
2. **全局连续编号(强制)**:Demo 序号和接口覆盖矩阵序号在所有文档中保持全局唯一且连续
|
|
233
|
-
3. **每个文档独立完整**:每个拆分文档都包含完整的"概述 → Demo 总览 → 测试 Demo 描述列表 → 接口覆盖矩阵"结构
|
|
234
|
-
4. **概述中标注分册信息**:注明当前文档是第几部分、覆盖哪些模块,以及其他部分的文件名
|
|
235
|
-
|
|
236
|
-
#### 3.2 输出文件结构
|
|
237
|
-
|
|
238
|
-
**单文档模式文件名**:`{库名}未覆盖接口Demo场景.md`(与覆盖率报告同目录)
|
|
239
|
-
|
|
240
|
-
**多文档模式文件名**:`{库名}未覆盖接口Demo场景({中文数字}){模块主题}.md`
|
|
241
|
-
|
|
242
|
-
**文档结构(每个文档均遵循):**
|
|
243
|
-
|
|
244
|
-
```markdown
|
|
245
|
-
# {库名} 未覆盖接口 Demo 场景[({分册编号}){模块主题}]
|
|
246
|
-
|
|
247
|
-
## 概述
|
|
248
|
-
|
|
249
|
-
简要说明本文档基于覆盖率报告({覆盖率报告文件名},当前覆盖率 {X}%)生成,
|
|
250
|
-
规划 {N} 个未覆盖接口的 Demo 场景,补充后覆盖率达到 100%。
|
|
251
|
-
[多文档模式] 注明:本文档为第 X 部分,共 Y 部分,覆盖 {模块名} 模块。
|
|
252
|
-
|
|
253
|
-
## Demo 总览
|
|
254
|
-
|
|
255
|
-
| Demo 数量 | 覆盖接口数量 | 补充前覆盖率 | 补充后覆盖率 | 生成日期 |
|
|
256
|
-
|----------|------------|------------|------------|---------|
|
|
257
|
-
| N 个 | M 个 | {X}% | 100% | YYYY-MM-DD |
|
|
258
|
-
|
|
259
|
-
## 测试 Demo 描述列表
|
|
260
|
-
|
|
261
|
-
| 序号 | 测试 Demo 名称 | 测试 Demo 描述 | 测试 Demo 步骤 | 测试 Demo 预期结果 | 对应函数接口 |
|
|
262
|
-
|-----|--------------|--------------|--------------|-----------------|------------|
|
|
263
|
-
| {全局起始序号} | ... | ... | ... | ... | ... |
|
|
264
|
-
|
|
265
|
-
## 接口覆盖矩阵
|
|
266
|
-
|
|
267
|
-
| 序号 | 接口签名 | 接口类型 | 所在 Demo | 覆盖状态 |
|
|
268
|
-
|-----|---------|---------|----------|---------|
|
|
269
|
-
| {全局起始序号} | `{签名}` | {类型} | {Demo名称} | ✅ 已规划Demo |
|
|
270
|
-
```
|
|
271
|
-
|
|
272
|
-
#### 3.3 表格内容规范
|
|
273
|
-
|
|
274
|
-
- **序号**:全局自增整数,单文档模式从 1 开始;多文档模式保持全局唯一且连续
|
|
275
|
-
- **测试 Demo 名称**:简洁明了,不超过 20 字
|
|
276
|
-
- **测试 Demo 描述**:2-4 句话,说明功能、目的和覆盖接口
|
|
277
|
-
- **测试 Demo 步骤**:编号列表,每步骤一行,具体可执行,含接口调用位置
|
|
278
|
-
- **测试 Demo 预期结果**:编号列表,具体可验证的观测指标
|
|
279
|
-
- **对应函数接口**:列出所有相关接口的完整签名(来自覆盖率报告"签名"列)
|
|
280
|
-
|
|
281
|
-
#### 3.4 步骤写作规范
|
|
282
|
-
|
|
283
|
-
步骤描述必须以"Demo 页面"为视角,包含以下维度:
|
|
284
|
-
|
|
285
|
-
```
|
|
286
|
-
- 页面构建:构建什么样的页面(按钮、输入框、展示区)
|
|
287
|
-
- 交互触发:点击什么触发哪个接口调用
|
|
288
|
-
- 参数传递:传入什么参数
|
|
289
|
-
- 结果展示:如何在页面上展示接口返回结果
|
|
290
|
-
- 验证方式:如何判断接口行为符合预期
|
|
291
|
-
```
|
|
292
|
-
|
|
293
|
-
---
|
|
294
|
-
|
|
295
|
-
### 阶段四:质量校验
|
|
296
|
-
|
|
297
|
-
生成文档前完成以下检查:
|
|
298
|
-
|
|
299
|
-
| 检查项 | 标准 |
|
|
300
|
-
|-------|------|
|
|
301
|
-
| 接口覆盖完整性 | 覆盖率报告中每个未覆盖接口至少被一个 Demo 覆盖,补充后覆盖率达到 100% |
|
|
302
|
-
| 内容真实性 | 所有接口签名、功能描述与覆盖率报告严格一致 |
|
|
303
|
-
| 步骤可执行性 | 步骤描述足够具体,开发者可按步骤实现 |
|
|
304
|
-
| 预期结果可验证 | 每条预期结果可观测、可判断 |
|
|
305
|
-
| 无死按钮 | Demo 中每个可触发接口调用的按钮都有设备可观测的预期结果 |
|
|
306
|
-
| @State 完整性 | 所有计数器、状态标志变量都注明须声明为 `@State`;异步回调链已规划双计数器 |
|
|
307
|
-
| Demo 名称清晰 | 名称能准确反映 Demo 的核心目的 |
|
|
308
|
-
| 无遗漏未覆盖接口 | 接口覆盖矩阵中所有未覆盖接口均已标记「✅ 已规划Demo」 |
|
|
309
|
-
|
|
310
|
-
---
|
|
311
|
-
|
|
312
|
-
## 注意事项
|
|
313
|
-
|
|
314
|
-
1. **只覆盖未覆盖接口**:严格对照覆盖率报告中的"未覆盖接口清单",不重复设计已有 demo 覆盖的接口
|
|
315
|
-
2. **签名准确**:涉及的功能点中接口签名必须与覆盖率报告"签名"列完全一致,不自行推断参数
|
|
316
|
-
3. **场景可执行**:每个 Demo 的步骤描述必须能转化为可运行的 ArkTS 代码
|
|
317
|
-
4. **合并合理**:存在明确调用依赖关系的接口可合并到一个场景;不同功能方向的接口必须独立场景
|
|
318
|
-
5. **Native 跳过**:`lib*.so` 导出的 Native 模块接口不纳入场景生成范围
|
|
319
|
-
6. **常量类不规划独立 Demo**:纯常量类(如 `BleMsg`、`BluetoothGattCharacteristic` 等 `public static readonly` 常量集合)已被覆盖率报告过滤,禁止为其规划"常量展示页"Demo。常量无行为逻辑、无运行时回归价值,开发者通过 `import` 引用即可,不纳入 Demo 覆盖目标
|
|
320
|
-
7. **覆盖率报告自包含**:覆盖率报告的未覆盖清单已包含签名和功能描述,无需额外读取接口规格文档
|
|
321
|
-
8. **输出目录默认**:若未指定 `outputDir`,输出至覆盖率报告所在目录
|
|
1
|
+
---
|
|
2
|
+
name: arkts-library-demo-scenario
|
|
3
|
+
description: 基于覆盖率报告,为未覆盖接口生成 ArkTS 测试 Demo 描述文档。读取覆盖率报告中的未覆盖接口清单(含签名和功能描述),以接口为单位生成测试 Demo 描述(名称、描述、步骤、预期结果),并以表格形式汇总输出。允许将存在直接调用关系或属于同一功能模块的接口合并到同一个 Demo 中。当需要对鸿蒙原生库进行 Demo 覆盖率缺口填补、未覆盖接口场景规划时调用。
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
metadata:
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
category: harmonyos-development
|
|
8
|
+
language: ArkTS/ETS
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 鸿蒙ArkTs原生库未覆盖接口 Demo 场景生成
|
|
12
|
+
|
|
13
|
+
本 Skill 读取覆盖率报告中的未覆盖接口清单,以接口为单位自动生成测试 Demo 描述,输出为标准 Markdown 表格文档,使接口覆盖率达到 100%。
|
|
14
|
+
|
|
15
|
+
> ⚠️ **核心约束**:
|
|
16
|
+
> 1. 只生成覆盖率报告"未覆盖接口清单"中列出的接口场景
|
|
17
|
+
> 2. 所有内容必须基于覆盖率报告中真实存在的接口签名和功能描述
|
|
18
|
+
> 3. 严禁捏造不存在的接口、参数或行为
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 文档模式选择
|
|
23
|
+
|
|
24
|
+
**选择规则(按顺序判断):**
|
|
25
|
+
|
|
26
|
+
1. **统计未覆盖接口数量和 Demo 预估数量**
|
|
27
|
+
2. **判断模式**:若未覆盖接口 ≤ 25 个 **且** Demo ≤ 8 个 → 使用单文档模式
|
|
28
|
+
3. **否则** → 使用多文档拆分模式
|
|
29
|
+
|
|
30
|
+
| 模式 | 文件命名 | 适用条件 |
|
|
31
|
+
|-----|---------|---------|
|
|
32
|
+
| 单文档 | `{库名}未覆盖接口Demo场景.md` | 未覆盖接口 ≤ 25 个且 Demo ≤ 8 个 |
|
|
33
|
+
| 多文档拆分 | `{库名}未覆盖接口Demo场景(一){模块主题}.md`、`(二)...` | 接口 > 25 个或 Demo > 8 个 |
|
|
34
|
+
|
|
35
|
+
> ⚠️ **多文档模式注意**:Demo 序号和接口覆盖矩阵序号在所有文档间保持全局连续。
|
|
36
|
+
|
|
37
|
+
## 核心约束概览
|
|
38
|
+
|
|
39
|
+
| 约束类别 | 关键规则 |
|
|
40
|
+
|---------|---------|
|
|
41
|
+
| **内容真实性** | 所有内容必须基于覆盖率报告中真实存在的接口签名和功能描述,严禁凭空捏造 |
|
|
42
|
+
| **接口覆盖** | 每个未覆盖接口必须被至少一个 Demo 覆盖,补充后覆盖率达到 100% |
|
|
43
|
+
| **Demo 分组** | 存在直接调用关系或属于同一功能模块的接口可合并;不同功能方向、无调用关系的接口禁止强行合并 |
|
|
44
|
+
| **可验证性** | 每个按钮/步骤必须对应至少一条设备可观测的预期结果;依赖平台事件且已知不触发的接口改为平台限制说明 |
|
|
45
|
+
| **ArkUI 响应式** | 计数器、状态标志变量必须声明为 `@State`;异步回调链须规划双计数器 |
|
|
46
|
+
| **命名规范** | Demo 名称格式:`[功能动词][操作对象][特征/场景]Demo`,不超过 20 字 |
|
|
47
|
+
| **输出格式** | 步骤和预期结果为编号列表;接口签名格式:`` `函数名(参数类型): 返回类型` `` |
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 适用场景
|
|
52
|
+
|
|
53
|
+
- 为已 ohos 化鸿蒙原生库填补 Demo 覆盖率缺口
|
|
54
|
+
- 生成开发者可直接参考的测试 Demo 描述文档
|
|
55
|
+
- 为 QA / 开发团队提供可执行的 Demo 实现指导
|
|
56
|
+
- 配合 ArkTsLibraryInterfaceSpecSkill + ArkTsLibraryDemoCoverageSkill 实现"接口分析 → 覆盖率分析 → 缺口场景规划"完整链路
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 任务参数
|
|
61
|
+
|
|
62
|
+
| 参数 | 必需 | 说明 |
|
|
63
|
+
|------|------|------|
|
|
64
|
+
| `coverageReportPath` | ✅ | 覆盖率报告绝对路径(由 ArkTsLibraryDemoCoverageSkill 生成,含未覆盖接口清单及签名) |
|
|
65
|
+
| `sourcePath` | 可选 | 源码根目录(提供后可探查现有 demo 风格作为参考) |
|
|
66
|
+
| `outputDir` | 可选 | 输出目录,默认放置在覆盖率报告所在目录 |
|
|
67
|
+
|
|
68
|
+
### 输入异常处理
|
|
69
|
+
|
|
70
|
+
| 异常情况 | 处理方式 |
|
|
71
|
+
|---------|---------|
|
|
72
|
+
| 覆盖率报告不存在或无法读取 | 停止执行,向用户提示错误并请求提供有效文档路径 |
|
|
73
|
+
| 覆盖率报告格式异常(非 Markdown 或无法解析) | 停止执行,向用户说明问题并请求提供正确格式的文档 |
|
|
74
|
+
| 未覆盖接口清单为空(覆盖率 100%) | 生成空场景文档,标注"所有接口已覆盖,无需补充" |
|
|
75
|
+
| 无法确定库名称 | 使用默认命名 `Unknown未覆盖接口Demo场景.md`,并向用户说明情况 |
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 工作流程
|
|
82
|
+
|
|
83
|
+
### 阶段一:读取覆盖率报告并提取未覆盖接口
|
|
84
|
+
|
|
85
|
+
#### 1.1 读取覆盖率报告
|
|
86
|
+
|
|
87
|
+
```
|
|
88
|
+
执行步骤:
|
|
89
|
+
1. 使用 read_file 读取 {{coverageReportPath}} 全文
|
|
90
|
+
2. 提取库名称(用于输出文件命名)
|
|
91
|
+
3. 提取当前覆盖率(用于概述中标注补充前后对比)
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
#### 1.2 提取未覆盖接口清单
|
|
95
|
+
|
|
96
|
+
定位覆盖率报告「## 5. 未覆盖接口清单」章节,提取每个未覆盖接口:
|
|
97
|
+
|
|
98
|
+
| 提取字段 | 来源列 | 用途 |
|
|
99
|
+
|---------|--------|------|
|
|
100
|
+
| 接口名称 | `方法/属性` 列 | Demo 命名和步骤描述 |
|
|
101
|
+
| 完整签名 | `签名` 列 | 步骤中标注精确调用方式 |
|
|
102
|
+
| 接口类型 | `类型` 列 | 确定调用方式(method/property/field) |
|
|
103
|
+
| 功能描述 | `功能描述` 列 | Demo 描述和预期结果的依据 |
|
|
104
|
+
| 所属类 | `### {ClassName}` 子标题 | 分组依据 |
|
|
105
|
+
|
|
106
|
+
覆盖率报告本身已按类分组,同一类下的未覆盖接口天然属于同一功能模块。
|
|
107
|
+
|
|
108
|
+
> ⚠️ **低价值常量跳过规则(强制)**:覆盖率报告已过滤 `public static readonly` 常量(`lowValue === true`)与类型别名(`kind === 'type'`),这些不会出现在未覆盖清单中。若覆盖率报告的「基本信息」章节标注了「过滤低价值常量 > 0」,说明库含纯常量类(如 `BleMsg`、`BluetoothGattCharacteristic`),**禁止为这些类规划独立的"常量展示页"Demo**。常量无行为逻辑、无运行时回归价值,仅作 `import` 引用即可,不纳入 Demo 覆盖目标。
|
|
109
|
+
|
|
110
|
+
#### 1.3 建立未覆盖接口能力清单(内部工作记录)
|
|
111
|
+
|
|
112
|
+
```
|
|
113
|
+
未覆盖接口清单示例(不写入输出文件):
|
|
114
|
+
┌─────────────────────────────────────────────────────┐
|
|
115
|
+
│ 类 ImageKnife │
|
|
116
|
+
│ - 方法 preload(loadSrc: ...): ImageKnifeRequest │
|
|
117
|
+
│ 功能: 图片预加载 │
|
|
118
|
+
│ - 方法 cancel(request: ImageKnifeRequest) │
|
|
119
|
+
│ 功能: 取消预加载请求 │
|
|
120
|
+
│ 类 ImageKnifeOption │
|
|
121
|
+
│ - 属性 onlyRetrieveFromCache: boolean │
|
|
122
|
+
│ 功能: 仅从缓存加载图片 │
|
|
123
|
+
│ ... │
|
|
124
|
+
│ │
|
|
125
|
+
│ 未覆盖接口总数: N │
|
|
126
|
+
│ 当前覆盖率: X% │
|
|
127
|
+
│ 补充后预期覆盖率: 100% │
|
|
128
|
+
└─────────────────────────────────────────────────────┘
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
### 阶段二:生成测试 Demo 描述
|
|
134
|
+
|
|
135
|
+
#### 2.1 Demo 分组原则
|
|
136
|
+
|
|
137
|
+
**原则一:一接口至少一个 Demo**
|
|
138
|
+
每个未覆盖接口必须被至少一个 Demo 覆盖。
|
|
139
|
+
|
|
140
|
+
**原则二:关联接口可合并**
|
|
141
|
+
满足以下任一条件的接口可合并到同一 Demo:
|
|
142
|
+
- 存在明确的调用依赖关系(如 `init()` → `execute()` → `destroy()`)
|
|
143
|
+
- 共同完成一个完整的业务场景(如"创建 → 配置 → 执行 → 获取结果")
|
|
144
|
+
- 属于同一主题功能簇(如所有图像处理相关方法)
|
|
145
|
+
- 一个接口的输出是另一个接口的输入
|
|
146
|
+
|
|
147
|
+
**原则三:禁止无关合并**
|
|
148
|
+
不同功能方向、无调用关系的接口不得强行合并到同一 Demo。
|
|
149
|
+
|
|
150
|
+
#### 2.2 Demo 描述要素
|
|
151
|
+
|
|
152
|
+
每个测试 Demo 包含以下五个要素:
|
|
153
|
+
|
|
154
|
+
**① 测试 Demo 名称**
|
|
155
|
+
- 以功能描述为基础简要命名
|
|
156
|
+
- 命名格式:`[功能动词][操作对象][特征/场景]Demo`
|
|
157
|
+
- 示例:`图片模糊处理Demo`、`配置初始化与销毁Demo`、`异步任务执行Demo`
|
|
158
|
+
|
|
159
|
+
**② 测试 Demo 描述**
|
|
160
|
+
- 对该 Demo 的功能和目的进行详细描述
|
|
161
|
+
- 说明该 Demo 展示了哪些接口能力
|
|
162
|
+
- 说明开发者通过该 Demo 能理解什么
|
|
163
|
+
|
|
164
|
+
**③ 测试 Demo 步骤**
|
|
165
|
+
- 以 Demo 页面为载体,列出具体可执行步骤
|
|
166
|
+
- 步骤需包含:页面构建、UI 交互操作、接口调用时机、结果展示方式
|
|
167
|
+
- 示例格式:
|
|
168
|
+
```
|
|
169
|
+
1. 创建 Demo 页面,添加 [操作按钮] 和 [结果展示区域]
|
|
170
|
+
2. 点击按钮触发 xxx() 调用,传入参数 ...
|
|
171
|
+
3. 在结果区域展示返回值 / 状态变化
|
|
172
|
+
4. 验证 ...
|
|
173
|
+
```
|
|
174
|
+
|
|
175
|
+
**④ 测试 Demo 预期结果**
|
|
176
|
+
- 列出验证该 Demo 是否成功的具体可观测指标
|
|
177
|
+
- 包括:UI 展示内容、返回值格式、状态变化、无异常崩溃等
|
|
178
|
+
|
|
179
|
+
**⑤ 对应函数接口**
|
|
180
|
+
- 列出该 Demo 涉及的所有未覆盖接口的完整签名
|
|
181
|
+
- 签名来源于覆盖率报告的"签名"列
|
|
182
|
+
- 格式:`` `函数名(参数类型): 返回类型` ``
|
|
183
|
+
|
|
184
|
+
> ⚠️ **可验证性前置规则(强制)**:在为任何接口编写步骤和预期结果之前,必须先判断:**该接口在目标设备上能否产生可被用户观测到的输出?**
|
|
185
|
+
>
|
|
186
|
+
> | 情况 | 处理方式 |
|
|
187
|
+
> |-----|----------|
|
|
188
|
+
> | 接口有直接返回值、状态变更或 UI 更新 | 正常作为主步骤,预期结果描述可观测指标 |
|
|
189
|
+
> | 接口依赖平台事件回调,且该事件在测试设备上已知不触发 | **禁止**作为主步骤;在 Demo 步骤中标注「平台限制」,建议通过 `dispatchXxx` 桥接方法间接验证 |
|
|
190
|
+
> | 接口无任何可观测输出(无返回值、无回调、无 UI 变更) | 合并到相关流程 Demo 中,通过其他接口的状态变化间接验证 |
|
|
191
|
+
>
|
|
192
|
+
> **禁止「死按钮」**:Demo 中每个按钮(每个步骤中调用的接口)必须对应至少一条 UI 上可观测的预期结果。若无法提供,该按钮/步骤必须删除或改为平台限制说明。
|
|
193
|
+
>
|
|
194
|
+
> 🎯 **ArkUI `@State` 强制规则**:Demo 步骤中包含「计数器(如回调次数、调用次数)」或「状态标志(如是否已初始化)」等运行时变化量时,在步骤或预期结果描述中必须注明:**该变量须声明为 `@State`**,否则 ArkUI 不会触发重渲染,计数器将始终显示初始值(如永远显示 0),导致 Demo 验证逻辑完全失效。
|
|
195
|
+
|
|
196
|
+
#### 2.3 生成策略
|
|
197
|
+
|
|
198
|
+
按以下优先级顺序生成 Demo:
|
|
199
|
+
|
|
200
|
+
1. **核心功能 Demo**(P0):覆盖库最主要的功能接口,每个核心功能至少一个 Demo
|
|
201
|
+
2. **完整流程 Demo**(P1):展示"初始化 → 核心操作 → 销毁"完整生命周期
|
|
202
|
+
3. **参数变体 Demo**(P2):对同一接口的不同参数组合进行展示(可选)
|
|
203
|
+
4. **组合能力 Demo**(P1):将相关联接口合并,展示完整使用链路
|
|
204
|
+
|
|
205
|
+
#### 2.4 异步回调链双计数器诊断模式(强制)
|
|
206
|
+
|
|
207
|
+
对任何 Demo 中涉及「调用库函数 → 等待回调」的异步链路,**必须**在 Demo 设计中规划双计数器:
|
|
208
|
+
|
|
209
|
+
| 计数器位置 | 变量名建议 | 含义 |
|
|
210
|
+
|-----------|----------|------|
|
|
211
|
+
| 调用/分发前(在触发代码中) | `xxxDispatchCount` | 调用/触发动作的执行次数 |
|
|
212
|
+
| 回调内部(在 `onXxx` 回调方法中) | `xxxCallbackCount` | 回调实际被触发的次数 |
|
|
213
|
+
|
|
214
|
+
两个计数器都必须在 Demo 页面的**验证区域**中展示(Text 组件),且**必须声明为 `@State`**。
|
|
215
|
+
|
|
216
|
+
诊断规则:
|
|
217
|
+
- `dispatchCount > 0` 且 `callbackCount = 0` → 调用成功但回调未触发,问题在回调注册或平台事件链
|
|
218
|
+
- `dispatchCount = 0` → 触发代码未执行,问题在 Demo 的触发逻辑
|
|
219
|
+
- `dispatchCount = callbackCount > 0` → 链路完全正常
|
|
220
|
+
|
|
221
|
+
---
|
|
222
|
+
|
|
223
|
+
### 阶段三:生成输出文档
|
|
224
|
+
|
|
225
|
+
#### 3.1 文档拆分执行
|
|
226
|
+
|
|
227
|
+
根据"文档模式选择"部分的规则已确定输出模式,执行以下步骤:
|
|
228
|
+
|
|
229
|
+
**多文档拆分原则(仅在多文档模式下执行):**
|
|
230
|
+
|
|
231
|
+
1. **按功能模块拆分**:每个文档对应一个或几个功能内聚的模块
|
|
232
|
+
2. **全局连续编号(强制)**:Demo 序号和接口覆盖矩阵序号在所有文档中保持全局唯一且连续
|
|
233
|
+
3. **每个文档独立完整**:每个拆分文档都包含完整的"概述 → Demo 总览 → 测试 Demo 描述列表 → 接口覆盖矩阵"结构
|
|
234
|
+
4. **概述中标注分册信息**:注明当前文档是第几部分、覆盖哪些模块,以及其他部分的文件名
|
|
235
|
+
|
|
236
|
+
#### 3.2 输出文件结构
|
|
237
|
+
|
|
238
|
+
**单文档模式文件名**:`{库名}未覆盖接口Demo场景.md`(与覆盖率报告同目录)
|
|
239
|
+
|
|
240
|
+
**多文档模式文件名**:`{库名}未覆盖接口Demo场景({中文数字}){模块主题}.md`
|
|
241
|
+
|
|
242
|
+
**文档结构(每个文档均遵循):**
|
|
243
|
+
|
|
244
|
+
```markdown
|
|
245
|
+
# {库名} 未覆盖接口 Demo 场景[({分册编号}){模块主题}]
|
|
246
|
+
|
|
247
|
+
## 概述
|
|
248
|
+
|
|
249
|
+
简要说明本文档基于覆盖率报告({覆盖率报告文件名},当前覆盖率 {X}%)生成,
|
|
250
|
+
规划 {N} 个未覆盖接口的 Demo 场景,补充后覆盖率达到 100%。
|
|
251
|
+
[多文档模式] 注明:本文档为第 X 部分,共 Y 部分,覆盖 {模块名} 模块。
|
|
252
|
+
|
|
253
|
+
## Demo 总览
|
|
254
|
+
|
|
255
|
+
| Demo 数量 | 覆盖接口数量 | 补充前覆盖率 | 补充后覆盖率 | 生成日期 |
|
|
256
|
+
|----------|------------|------------|------------|---------|
|
|
257
|
+
| N 个 | M 个 | {X}% | 100% | YYYY-MM-DD |
|
|
258
|
+
|
|
259
|
+
## 测试 Demo 描述列表
|
|
260
|
+
|
|
261
|
+
| 序号 | 测试 Demo 名称 | 测试 Demo 描述 | 测试 Demo 步骤 | 测试 Demo 预期结果 | 对应函数接口 |
|
|
262
|
+
|-----|--------------|--------------|--------------|-----------------|------------|
|
|
263
|
+
| {全局起始序号} | ... | ... | ... | ... | ... |
|
|
264
|
+
|
|
265
|
+
## 接口覆盖矩阵
|
|
266
|
+
|
|
267
|
+
| 序号 | 接口签名 | 接口类型 | 所在 Demo | 覆盖状态 |
|
|
268
|
+
|-----|---------|---------|----------|---------|
|
|
269
|
+
| {全局起始序号} | `{签名}` | {类型} | {Demo名称} | ✅ 已规划Demo |
|
|
270
|
+
```
|
|
271
|
+
|
|
272
|
+
#### 3.3 表格内容规范
|
|
273
|
+
|
|
274
|
+
- **序号**:全局自增整数,单文档模式从 1 开始;多文档模式保持全局唯一且连续
|
|
275
|
+
- **测试 Demo 名称**:简洁明了,不超过 20 字
|
|
276
|
+
- **测试 Demo 描述**:2-4 句话,说明功能、目的和覆盖接口
|
|
277
|
+
- **测试 Demo 步骤**:编号列表,每步骤一行,具体可执行,含接口调用位置
|
|
278
|
+
- **测试 Demo 预期结果**:编号列表,具体可验证的观测指标
|
|
279
|
+
- **对应函数接口**:列出所有相关接口的完整签名(来自覆盖率报告"签名"列)
|
|
280
|
+
|
|
281
|
+
#### 3.4 步骤写作规范
|
|
282
|
+
|
|
283
|
+
步骤描述必须以"Demo 页面"为视角,包含以下维度:
|
|
284
|
+
|
|
285
|
+
```
|
|
286
|
+
- 页面构建:构建什么样的页面(按钮、输入框、展示区)
|
|
287
|
+
- 交互触发:点击什么触发哪个接口调用
|
|
288
|
+
- 参数传递:传入什么参数
|
|
289
|
+
- 结果展示:如何在页面上展示接口返回结果
|
|
290
|
+
- 验证方式:如何判断接口行为符合预期
|
|
291
|
+
```
|
|
292
|
+
|
|
293
|
+
---
|
|
294
|
+
|
|
295
|
+
### 阶段四:质量校验
|
|
296
|
+
|
|
297
|
+
生成文档前完成以下检查:
|
|
298
|
+
|
|
299
|
+
| 检查项 | 标准 |
|
|
300
|
+
|-------|------|
|
|
301
|
+
| 接口覆盖完整性 | 覆盖率报告中每个未覆盖接口至少被一个 Demo 覆盖,补充后覆盖率达到 100% |
|
|
302
|
+
| 内容真实性 | 所有接口签名、功能描述与覆盖率报告严格一致 |
|
|
303
|
+
| 步骤可执行性 | 步骤描述足够具体,开发者可按步骤实现 |
|
|
304
|
+
| 预期结果可验证 | 每条预期结果可观测、可判断 |
|
|
305
|
+
| 无死按钮 | Demo 中每个可触发接口调用的按钮都有设备可观测的预期结果 |
|
|
306
|
+
| @State 完整性 | 所有计数器、状态标志变量都注明须声明为 `@State`;异步回调链已规划双计数器 |
|
|
307
|
+
| Demo 名称清晰 | 名称能准确反映 Demo 的核心目的 |
|
|
308
|
+
| 无遗漏未覆盖接口 | 接口覆盖矩阵中所有未覆盖接口均已标记「✅ 已规划Demo」 |
|
|
309
|
+
|
|
310
|
+
---
|
|
311
|
+
|
|
312
|
+
## 注意事项
|
|
313
|
+
|
|
314
|
+
1. **只覆盖未覆盖接口**:严格对照覆盖率报告中的"未覆盖接口清单",不重复设计已有 demo 覆盖的接口
|
|
315
|
+
2. **签名准确**:涉及的功能点中接口签名必须与覆盖率报告"签名"列完全一致,不自行推断参数
|
|
316
|
+
3. **场景可执行**:每个 Demo 的步骤描述必须能转化为可运行的 ArkTS 代码
|
|
317
|
+
4. **合并合理**:存在明确调用依赖关系的接口可合并到一个场景;不同功能方向的接口必须独立场景
|
|
318
|
+
5. **Native 跳过**:`lib*.so` 导出的 Native 模块接口不纳入场景生成范围
|
|
319
|
+
6. **常量类不规划独立 Demo**:纯常量类(如 `BleMsg`、`BluetoothGattCharacteristic` 等 `public static readonly` 常量集合)已被覆盖率报告过滤,禁止为其规划"常量展示页"Demo。常量无行为逻辑、无运行时回归价值,开发者通过 `import` 引用即可,不纳入 Demo 覆盖目标
|
|
320
|
+
7. **覆盖率报告自包含**:覆盖率报告的未覆盖清单已包含签名和功能描述,无需额外读取接口规格文档
|
|
321
|
+
8. **输出目录默认**:若未指定 `outputDir`,输出至覆盖率报告所在目录
|