@ohos-cpf/3rdloop 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +244 -244
- package/bin/3rdloop.mjs +46 -46
- package/lib/cli.js +781 -781
- package/lib/config-cmd.js +451 -451
- package/lib/config.js +318 -318
- package/lib/doctor.js +113 -113
- package/lib/exit-codes.js +30 -30
- package/lib/opencode.js +155 -155
- package/lib/orch.js +426 -426
- package/lib/queries.js +263 -263
- package/lib/step.js +325 -325
- package/lib/ui.js +222 -222
- package/lib/update.js +279 -279
- package/lib/workflow.js +308 -308
- package/lib/workflows.js +131 -131
- package/package.json +50 -50
- package/vendor/Server/Agent/SkillSelector/README.md +343 -343
- package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -207
- package/vendor/Server/Agent/SkillSelector/index.js +14 -14
- package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -313
- package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -161
- package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -144
- package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -433
- package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -382
- package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +59 -59
- package/vendor/Server/Brain/AnalysisStrategies.js +422 -422
- package/vendor/Server/Brain/Brain.js +686 -686
- package/vendor/Server/Brain/DecompositionStrategies.js +621 -621
- package/vendor/Server/Brain/PlanPersistence.js +196 -196
- package/vendor/Server/Brain/SkillExecutor.js +251 -251
- package/vendor/Server/Brain/index.js +11 -11
- package/vendor/Server/CLI/cli.js +275 -275
- package/vendor/Server/CLI/deveco-code/index.js +71 -71
- package/vendor/Server/CLI/deveco-code.js +5 -5
- package/vendor/Server/CLI/opencode/index.js +817 -818
- package/vendor/Server/CLI/opencode.js +5 -5
- package/vendor/Server/DbUse/MessageArchive.js +61 -61
- package/vendor/Server/DbUse/StorageManager.js +107 -107
- package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -94
- package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -114
- package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -157
- package/vendor/Server/DbUse/index.js +160 -160
- package/vendor/Server/DbUse/stores/SessionStore.js +279 -279
- package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -133
- package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -262
- package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -279
- package/vendor/Server/FlexRunner/FlexRunner.js +1759 -1759
- package/vendor/Server/FlexRunner/index.js +12 -12
- package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -523
- package/vendor/Server/Knowledge/KnowledgeManager.js +341 -341
- package/vendor/Server/Knowledge/index.js +33 -33
- package/vendor/Server/LoopEngine/LoopEngine.js +1133 -1133
- package/vendor/Server/LoopEngine/index.js +11 -11
- package/vendor/Server/Orchestrator/Orchestrator.js +0 -3
- package/vendor/Server/Orchestrator/StepNode.js +312 -312
- package/vendor/Server/Orchestrator/index.js +13 -13
- package/vendor/Server/Routes/controllers/BrainController.js +241 -241
- package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -1125
- package/vendor/Server/Routes/controllers/HealthController.js +44 -44
- package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -355
- package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -788
- package/vendor/Server/Routes/controllers/StatsController.js +57 -57
- package/vendor/Server/Routes/controllers/StreamController.js +67 -67
- package/vendor/Server/Routes/library/logger.js +179 -179
- package/vendor/Server/Routes/library/zipArchive.js +172 -172
- package/vendor/Server/Routes/router/Router.js +204 -204
- package/vendor/Server/Routes/routes/brain.js +47 -47
- package/vendor/Server/Routes/routes/flexrunner.js +72 -72
- package/vendor/Server/Routes/routes/health.js +28 -28
- package/vendor/Server/Routes/routes/index.js +57 -57
- package/vendor/Server/Routes/routes/knowledge.js +55 -55
- package/vendor/Server/Routes/routes/loopengine.js +58 -58
- package/vendor/Server/Routes/routes/orchestrator.js +61 -61
- package/vendor/Server/Routes/routes/registry.js +97 -97
- package/vendor/Server/Routes/routes/stats.js +23 -23
- package/vendor/Server/Routes/routes/stream.js +30 -30
- package/vendor/Server/Routes/server.js +203 -203
- package/vendor/Server/Routes/sse/SseHub.js +308 -308
- package/vendor/Server/Skills/acceptance-check/SKILL.md +191 -191
- package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -52
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -77
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_EVIDENCE_VERIFICATION.md +70 -70
- package/vendor/Server/Skills/arkts-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +210 -210
- package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +28 -28
- package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +233 -233
- package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +328 -328
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -291
- package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -68
- package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -184
- package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -337
- package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -400
- package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +98 -98
- package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -544
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -174
- package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -321
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -100
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -185
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +233 -233
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +102 -102
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -89
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -62
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +107 -107
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -124
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -90
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -57
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +391 -391
- package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -113
- package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +312 -312
- package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -154
- package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +165 -165
- package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +308 -308
- package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -90
- package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -282
- package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +360 -360
- package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +145 -145
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +252 -252
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +114 -114
- package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +262 -262
- package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -455
- package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -60
- package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -76
- package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -200
- package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +518 -518
- package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -276
- package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +92 -92
- package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -767
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -221
- package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +228 -228
- package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -194
- package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +575 -575
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +574 -574
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -182
- package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +490 -490
- package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -217
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -299
- package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -190
- package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +133 -133
- package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/flutter-interface/README.md +75 -75
- package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -291
- package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -336
- package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -190
- package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -258
- package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -254
- package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +517 -517
- package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +381 -381
- package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +341 -341
- package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -71
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +518 -518
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +406 -406
- package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +652 -652
- package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +396 -396
- package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +744 -744
- package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +720 -720
- package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -414
- package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -150
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -304
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -265
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -286
- package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -383
- package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -165
- package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -91
- package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +453 -301
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_CHECKLIST.md +151 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +257 -105
- package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +191 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +317 -208
- package/vendor/Server/Skills/rn-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +234 -234
- package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +188 -188
- package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +246 -246
- package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -198
- package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -40
- package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -78
- package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -70
- package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -47
- package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -252
- package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -176
- package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -5
- package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -35
- package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -137
- package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -33
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -40
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -429
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -105
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -90
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -213
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -73
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -258
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -341
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -67
- package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -299
- package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -293
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -857
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -856
- package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -157
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -801
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +683 -683
- package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -233
- package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -1373
- package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -220
- package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -245
- package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -414
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -413
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -355
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -115
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -139
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -586
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -57
- package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -259
- package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -301
- package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -148
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -118
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -168
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -176
- package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -274
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -45
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -25
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -61
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -165
- package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -239
- package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -96
- package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +57 -57
- package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -99
- package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -64
- package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +74 -74
- package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -164
- package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +356 -339
- package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +85 -83
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +905 -859
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +124 -122
- package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +287 -279
- package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -273
- package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -129
- package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -581
- package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -138
- package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -168
- package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +526 -506
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +321 -280
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -221
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +220 -209
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -325
- package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -279
- package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -404
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -185
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -265
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -189
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -203
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -147
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -148
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -165
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -195
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -249
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -161
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -413
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -245
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -282
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -251
- package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -469
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -310
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -303
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -421
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -358
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -114
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -274
- package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -185
- package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -191
- package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -216
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -107
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -120
- package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -108
- package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -237
- package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -261
- package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -112
- package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +497 -497
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -270
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -164
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -556
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -459
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -65
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -512
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -132
- package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -424
- package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -137
- package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -306
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -485
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -172
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -422
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -95
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -169
- package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -554
- package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -106
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -216
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -413
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -98
- package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -337
- package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -722
- package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -173
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -267
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -174
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -111
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -186
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -150
- package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -296
- package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -371
- package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -212
- package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -223
- package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -1053
- package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +295 -255
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +82 -77
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -224
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +175 -174
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -967
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -1798
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -5
- package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +180 -137
- package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -145
- package/vendor/Server/Skills/skill-generator/SKILL.md +365 -365
- package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -183
- package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -82
- package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -110
- package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -122
- package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -121
- package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/task-analysis/SKILL.md +234 -234
- package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -160
- package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -190
- package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -224
- package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -162
- package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -55
- package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -126
- package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -256
- package/vendor/Server/Skills/task-decomposition/SKILL.md +528 -528
- package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -451
- package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -179
- package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -152
- package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -175
- package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -195
- package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -226
- package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -263
- package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -29
- package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -376
- package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -259
- package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -216
- package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +424 -424
- package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -427
- package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -214
- package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -235
- package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -250
- package/vendor/Server/TestCheck/TestCheck.js +775 -775
- package/vendor/Server/TestCheck/index.js +11 -11
- package/vendor/Server/library/McpToolGuide.js +280 -280
- package/vendor/Server/library/StatsService.js +126 -126
- package/vendor/Server/library/cstTime.js +16 -16
- package/vendor/VERSION +3 -3
- package/workflows/pr-check.mjs +105 -105
- package/workflows/pr-push.mjs +192 -192
- package/vendor/Server/Agent/SkillSelector/types.js +0 -63
|
@@ -1,291 +1,291 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: arkts-library-demo-code
|
|
3
|
-
description: 基于 Demo 场景文档(由 ArkTsLibraryDemoScenarioSkill 生成)生成可在 OpenHarmony/HarmonyOS 上编译运行的 ArkTS 测试 Demo 页面代码。页面统一平铺在 pages/ 目录({三位序号}_{PascalCase}Page.ets,多文档全局连续编号),由 DemoIndex 主页面统一导航,同步生成 base/zh_CN/en_US 三语字符串资源;接口签名逐个对照库源码与系统 API 文档查证,生成后执行工程迁移、Code Linter 与编译验证(5 轮修复 + ohpm 线上版本兜底)。当需要将 Demo 场景描述文档转化为可编译运行的鸿蒙 ArkTS Demo 代码时使用。
|
|
4
|
-
license: Apache-2.0
|
|
5
|
-
compatibility: 需要 Node.js、devecocli(docs/lint/build)、hdc(可选设备探测)、ohpm(可选兜底)、MCP Gateway 的 script_deveco_docs 工具(系统 API 查证);Windows 用 build.ps1 执行编译,macOS/Linux 用日志重定向等效命令
|
|
6
|
-
metadata:
|
|
7
|
-
author: lalhan
|
|
8
|
-
version: "1.2.0"
|
|
9
|
-
---
|
|
10
|
-
|
|
11
|
-
# 鸿蒙 ArkTS 原生库 Demo 代码生成
|
|
12
|
-
|
|
13
|
-
读取 Demo 场景文档,为每个 Demo 生成独立的 ArkTS 页面、统一的主导航页面与三语字符串资源,并通过迁移 → Linter → 编译验证闭环确保代码可在鸿蒙系统上编译运行。
|
|
14
|
-
|
|
15
|
-
> ⚠️ **核心约束(违反任一项视为任务失败)**:
|
|
16
|
-
> 1. **数量完整**:场景文档有 N 个 Demo → 必须生成 N 个页面,禁止合并、省略、跳过。
|
|
17
|
-
> 2. **不捏造接口**:只调用场景文档列出的接口;签名**以库源码为准**(逐接口 read_file 核对,场景文档签名可能过时)。
|
|
18
|
-
> 3. **命名与结构**:`{三位序号}_{PascalCase}Page.ets` 平铺于 `pages/`(严禁子目录);多文档全局连续编号。
|
|
19
|
-
> 4. **国际化**:UI 静态文本一律 `$r('app.string.xxx')`,base/zh_CN/en_US 三文件同步;`DemoEntry.title/description` 用 `Resource` 类型。
|
|
20
|
-
> 5. **@Builder 禁动态数据**:`@Builder` 参数按值快照,ArkUI 会跳过重渲染;动态 `@State` 节点必须内联在 `build()` 中。
|
|
21
|
-
|
|
22
|
-
---
|
|
23
|
-
|
|
24
|
-
## 任务参数
|
|
25
|
-
|
|
26
|
-
| 参数 | 必需 | 说明 |
|
|
27
|
-
|------|------|------|
|
|
28
|
-
| `sourcePath` | ✅ | 目标鸿蒙工程根目录(含 `entry/` 和 `library/` 模块) |
|
|
29
|
-
| `outputDir` | ✅ | 输出目录(场景文档和覆盖率报告所在目录) |
|
|
30
|
-
| `scenarioDocPath` | 可选 | 单个场景文档路径;未提供则从 `outputDir` 搜索所有 `*未覆盖接口Demo场景*.md` |
|
|
31
|
-
| `interfaceSpecPath` | 可选 | 接口规格文档路径(查询依赖类型的完整定义);未提供则从 `outputDir` 搜索 `arktscoverage-interface-spec.md` |
|
|
32
|
-
|
|
33
|
-
## 输入依赖
|
|
34
|
-
|
|
35
|
-
- 前置 SKILL:`ArkTsLibraryDemoScenarioSkill`(生成 Demo 场景文档)
|
|
36
|
-
- 输入文件:Demo 场景文档(`*未覆盖接口Demo场景*.md`)、库源码(`sourcePath/library/`)
|
|
37
|
-
- 场景文档"对应函数接口"列自带签名;依赖类型细节(回调字段、枚举成员、interface/class 区分)以接口规格文档 + 库源码核对为准
|
|
38
|
-
|
|
39
|
-
## 工作流程概览
|
|
40
|
-
|
|
41
|
-
```
|
|
42
|
-
阶段零 准备(解析场景文档 → 探查工程 → 文件规划)
|
|
43
|
-
→ 阶段一 逐 Demo 生成页面 ETS + 三语字符串资源
|
|
44
|
-
→ 阶段二 生成 DemoIndex 主导航 + 路由注册 + 入口改造
|
|
45
|
-
→ 阶段三 权限与系统能力适配
|
|
46
|
-
→ 阶段四 工程迁移 → Code Linter → 编译验证(5 轮修复 + ohpm 兜底)→ 自查
|
|
47
|
-
→ 阶段五 输出报告
|
|
48
|
-
```
|
|
49
|
-
|
|
50
|
-
---
|
|
51
|
-
|
|
52
|
-
## 阶段零:准备工作
|
|
53
|
-
|
|
54
|
-
### 0.1 解析场景文档
|
|
55
|
-
|
|
56
|
-
- 确定 `scenarioDocPath`(或搜索 `outputDir` 下 `*未覆盖接口Demo场景*.md`);多文档按文件名(一)(二)… 排序后全部读取
|
|
57
|
-
- 提取库名称(用于代码中的 TAG 等标识符);逐行解析"测试 Demo 描述列表"表格:文档内序号 / 名称 / 描述 / 步骤 / 预期结果 / 对应函数接口
|
|
58
|
-
- **跨文档全局编号**:按文档输入顺序连续递增(文档 A 5 个 → 001–005,文档 B 3 个 → 006–008),禁止各文档独立从 001 开始
|
|
59
|
-
- 解析"接口覆盖矩阵";统计 Demo 总数,规划生成文件列表(DemoIndex + N 个页面 + 3 个 string.json)
|
|
60
|
-
|
|
61
|
-
**错误处理**:缺必需字段的 Demo 跳过并在最终报告标注;文档缺"测试 Demo 描述列表"表格则立即停止并报告格式问题;接口签名缺失则标记"需手动验证接口",代码用占位注释提醒。
|
|
62
|
-
|
|
63
|
-
### 0.2 探查工程结构与类型词典
|
|
64
|
-
|
|
65
|
-
- 识别 entry/、library/ 模块;读取 `entry/src/main/ets/` 目录结构、`main_pages.json`(路由)、`module.json5`(已声明权限)、一个现有页面 ETS(代码风格与导入惯例)、zh_CN/en_US `string.json`(已有键名,避免冲突)
|
|
66
|
-
- 运行 `devecocli --version` 确认 CLI 可用
|
|
67
|
-
- **UI 组件装饰器预检**:读 `library/Index.ets` 导出的 `@Component` 源码,搜索 `@ObjectLink`/`@Prop`/`@Link`,确认关联类带 `@Observed` 装饰器(接口规格文档第 5 章如有兼容性表可直接对照);标注不兼容组件,场景规划时排除
|
|
68
|
-
- **建立依赖类型词典**(来源:`interfaceSpecPath` / `arktscoverage-interface-spec.md` + 库源码):
|
|
69
|
-
- 每个接口/类的**类型种类**:`(interface)` 不可 new / `(class)` 可 new / `@ObservedV2` 不可用于 `@State`
|
|
70
|
-
- 每个回调接口的**完整字段签名**(如 `OnLoadCallBack.onLoadFailed: (err: string, imageInfo: ImageInfo) => void`)
|
|
71
|
-
- 每个类的**属性名列表**(代码中只能使用列表内的属性名)
|
|
72
|
-
|
|
73
|
-
### 0.3 文件规划
|
|
74
|
-
|
|
75
|
-
建立内部规划表:`DemoIndex.ets` + N 个 `{序号}_{PascalCase}Page.ets`(全部平铺 `pages/`)+ base/zh_CN/en_US 三个 `string.json`。
|
|
76
|
-
|
|
77
|
-
---
|
|
78
|
-
|
|
79
|
-
## 阶段一:生成各 Demo 页面代码
|
|
80
|
-
|
|
81
|
-
### 1.1 文件命名
|
|
82
|
-
|
|
83
|
-
格式 `{三位序号}_{PascalCase功能描述}Page.ets`,如 `001_CheckSupportAndConfigPage.ets`、`010_PictureMetaPage.ets`。序号三位补零保证文件排序与 Demo 顺序一致;`main_pages.json` 路由与 `router.pushUrl` URL 均使用 `pages/001_XxxPage`(无子目录)。详见 [CODE_STANDARDS.md](references/CODE_STANDARDS.md) 第 1 节。
|
|
84
|
-
|
|
85
|
-
### 1.2 分析权限需求
|
|
86
|
-
|
|
87
|
-
按优先级推断各 Demo 所需权限:
|
|
88
|
-
|
|
89
|
-
1. 场景文档"步骤/描述"中的权限关键词(网络、文件、相册、位置、蓝牙等)
|
|
90
|
-
2. `library/` 源码 import 与 API 调用(`http` → `ohos.permission.INTERNET`;`photoAccessHelper` → `READ_MEDIA`;sensor/蓝牙同理)
|
|
91
|
-
3. `module.json5` 已声明清单(避免重复声明)
|
|
92
|
-
|
|
93
|
-
区分系统自动授权权限(声明即可)与用户授权权限(须运行时动态申请)。常见权限速查见 [CODE_STANDARDS.md](references/CODE_STANDARDS.md) 第 6 节。
|
|
94
|
-
|
|
95
|
-
### 1.3 接口与系统 API 预检(强制,未完成禁止生成代码)
|
|
96
|
-
|
|
97
|
-
对当前 Demo 涉及的**每一个接口**执行核心检查:
|
|
98
|
-
|
|
99
|
-
| 检查项 | 要点 |
|
|
100
|
-
|-------|------|
|
|
101
|
-
| 签名核对 | read_file 库源码逐接口确认参数/返回类型,**以源码为准**(场景文档签名可能过时:string/boolean/数字差异、容器类型、rest 参数差异) |
|
|
102
|
-
| 类型种类 | `(interface)` 不可 `new`(用对象字面量);`(class)` 可 `new`;`@ObservedV2` 类不可用于 `@State`/`@Prop`/`@Link`,改用 `@Local`/`@Param` |
|
|
103
|
-
| 回调与属性 | 回调字段名与参数类型逐字匹配;只使用依赖类型词典列出的属性名 |
|
|
104
|
-
| undefined 守卫 | 返回 `\| undefined` 或 `?:` 的调用须 `if (result)` 判空再访问属性 |
|
|
105
|
-
| import 链 | 每个 `import { X }` 必须在 `library/Index.ets` 导出链中;未导出类型用对象字面量匹配结构,禁止 import;库源码也无定义则降级 `Record<string, Object>` 并标注 |
|
|
106
|
-
| 结构化类型 | 禁止 `new Uint8Array([..]).buffer` 赋值给 `ArrayBuffer`(`arkts-no-structural-typing`),改用 `new ArrayBuffer(n)` + 视图逐元素写入 |
|
|
107
|
-
|
|
108
|
-
完整检查表(含错误示例、场景文档差异四类专项核对)参见 [API_SIGNATURE_CHECKS.md](references/API_SIGNATURE_CHECKS.md) 第 1、2 节。
|
|
109
|
-
|
|
110
|
-
**系统 API 强制查证**:Demo 涉及的每个系统 API 依赖(`@kit.*` / `@ohos.*` / `@hms.*` 的方法签名、参数/返回值、枚举成员名、import 路径、权限、系统能力)必须调用 MCP 工具 `script_deveco_docs`(action=search → action=read)确认,**禁止凭记忆猜测**;**检索边界**:库自身 API 不在系统语料中,返回"未找到"时不检索、直接按接口规格文档/库源码编写。用法详见 [SYSTEM_API_LOOKUP.md](references/SYSTEM_API_LOOKUP.md)。
|
|
111
|
-
|
|
112
|
-
**import 类型链追踪**:代码中每个 import 的类型须验证存在于 `library/Index.ets` 导出链;回调签名中的衍生类型(如 `ImageInfo`)须在库源码中定位定义,未导出则用对象字面量匹配结构,禁止 import。详见 [API_SIGNATURE_CHECKS.md](references/API_SIGNATURE_CHECKS.md) 第 1 节 #8。
|
|
113
|
-
|
|
114
|
-
### 1.4 生成页面 ETS 代码
|
|
115
|
-
|
|
116
|
-
按 [TEMPLATE.md](references/TEMPLATE.md) 第 1/2 节标准模板生成(无权限版 / 含动态权限版),结构要点:
|
|
117
|
-
|
|
118
|
-
- 文件头 JSDoc(功能说明、对应接口);`DOMAIN`/`TAG` 日志常量(TAG 格式 `{LibraryName}_{ComponentName}`)
|
|
119
|
-
- `@State` 状态变量具体类型;`aboutToAppear` 初始化,`aboutToDisappear` 释放资源(库实例、订阅、Timer)
|
|
120
|
-
- 核心方法:入口 `hilog.debug`、成功节点 `hilog.info`、异常 `hilog.error`;异步调用必须 `try/catch/finally`(finally 重置 Loading)
|
|
121
|
-
|
|
122
|
-
质量检查表:
|
|
123
|
-
|
|
124
|
-
| 要求 | 标准 |
|
|
125
|
-
|------|------|
|
|
126
|
-
| 日志覆盖 | 方法/事件回调入口 debug,成功节点 info,捕获异常 error |
|
|
127
|
-
| 错误处理 | 异步全部 try/catch;同步失败在 UI 展示错误信息 |
|
|
128
|
-
| 资源释放 | `aboutToDisappear` 释放库实例、取消订阅、清理 Timer |
|
|
129
|
-
| 类型安全 | 禁止 `any`/`unknown`/`ESObject`/`Object` |
|
|
130
|
-
| 权限申请 | 用户授权权限使用前通过 `abilityAccessCtrl.requestPermissionsFromUser` 动态申请 |
|
|
131
|
-
| 注释完整性 | 组件级 JSDoc + 核心方法 JSDoc + 关键逻辑行内注释 |
|
|
132
|
-
| UI 完整性 | 标题、操作控件、Loading/Error 状态指示、结果展示区域 |
|
|
133
|
-
| **@Builder 禁动态数据** | 展示动态 `@State`(耗时、计数器、状态标志)的节点必须内联在 `build()` 中;`@Builder` 仅用于不依赖 `@State` 的静态布局复用(如 DemoCard 传入静态数据对象属合法用法) |
|
|
134
|
-
|
|
135
|
-
ArkTS 编码规范(禁止项速查、日志格式、错误处理模式、资源生命周期、UI 规范)详见 [CODE_STANDARDS.md](references/CODE_STANDARDS.md)。
|
|
136
|
-
|
|
137
|
-
### 1.5 生成多语言字符串资源
|
|
138
|
-
|
|
139
|
-
键名规则 `demo_{三位序号}_{语义描述}`(如 `demo_001_title`、`demo_001_check_btn`);每个 Demo 额外添加 `demo_NNN_index_desc` 键(主导航列表描述),主导航标题用 `demo_index_title`。
|
|
140
|
-
|
|
141
|
-
> 🔴 **三文件同步(强制)**:每个 `$r('app.string.xxx')` 键必须同时在 `base/element/string.json`(默认值,建议中文)、`zh_CN/element/string.json`(值用【序号】前缀)、`en_US/element/string.json`(值用 Title Case)添加同名条目。遗漏 base 会报 `Warning: the string of 'xxx' does not have a base resource.`。键名以序号前缀隔离避免冲突。
|
|
142
|
-
|
|
143
|
-
- 动态文本(运行时错误信息 `this.resultText` 等)不属于静态字符串,不需要资源键,代码中直接赋值
|
|
144
|
-
- `reason` 等资源引用同理必须走 `$string:xxx`
|
|
145
|
-
|
|
146
|
-
### 1.6 复杂 Demo 辅助生成
|
|
147
|
-
|
|
148
|
-
满足任一条件时调用 `ohos-library-feature-adder` 技能辅助生成:涉及 PixelMap/AVPlayer/Camera 等重型系统 API、需实现复杂异步状态机、涉及 C/C++ NDK 接口调用。提供工程路径 + 功能描述(从场景文档提取的步骤和接口),生成后须按本技能规范(命名、日志、注释)二次校验和修改。
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## 阶段二:生成主页面导航
|
|
153
|
-
|
|
154
|
-
### 2.1 DemoIndex.ets
|
|
155
|
-
|
|
156
|
-
按 [TEMPLATE.md](references/TEMPLATE.md) 第 3 节模板生成。要点:
|
|
157
|
-
|
|
158
|
-
- `DemoEntry { id: string; title: Resource; description: Resource; route: string }`,title/description 用 `$r('app.string.demo_NNN_title')` / `$r('app.string.demo_NNN_index_desc')` 赋值,禁止硬编码字符串
|
|
159
|
-
- `DEMO_LIST` 覆盖全部 Demo(数量与场景文档一致),route 为 `pages/001_XxxPage`(带序号前缀、无子目录)
|
|
160
|
-
- 跳转使用 `this.getUIContext().getRouter().pushUrl({ url })`,`.catch` 记录 `hilog.error`
|
|
161
|
-
- 若工程已有原始库演示页面(如 `pages/Tab`,经 `pages/Index` 跳转),**必须**保留其入口:按 [TEMPLATE.md](references/TEMPLATE.md) 第 6 节 OriginalDemoCard 模板(橙色徽章与蓝色序号卡片视觉区分)追加,字符串键 `demo_original_title` / `demo_original_index_desc` 同样三文件同步
|
|
162
|
-
|
|
163
|
-
### 2.2 路由注册与入口改造
|
|
164
|
-
|
|
165
|
-
- `main_pages.json`:`pages/DemoIndex` 列首位,其余按序号顺序排列(模板见 TEMPLATE.md 第 4 节)
|
|
166
|
-
- **EntryAbility**:将 `entry/src/main/ets/entryability/EntryAbility.ts` 中 `onWindowStageCreate` 的 `loadContent` 路径改为 `pages/DemoIndex`。⚠️ 须在 DemoIndex 生成并注册路由**之后**执行,否则路由未注册导致运行时白屏
|
|
167
|
-
|
|
168
|
-
---
|
|
169
|
-
|
|
170
|
-
## 阶段三:权限与系统能力适配
|
|
171
|
-
|
|
172
|
-
- 汇总各 Demo 所需权限,更新 `module.json5` 的 `requestPermissions`(`reason` 必须引用 `$string:xxx` 资源并在 string.json 添加对应键;模板见 TEMPLATE.md 第 5 节)
|
|
173
|
-
- 用户授权权限在页面 `aboutToAppear` 中动态申请,标准代码模式见 [CODE_STANDARDS.md](references/CODE_STANDARDS.md) 第 6.2 节
|
|
174
|
-
|
|
175
|
-
---
|
|
176
|
-
|
|
177
|
-
## 阶段四:质量检查与编译验证
|
|
178
|
-
|
|
179
|
-
> 核心原则:**编译是验证生成代码质量的唯一方式**;源库问题也必须尝试修复(仅限机械性操作:SDK 版本、依赖、构建配置,不改业务逻辑)。详细操作手册(迁移校验细节、Linter 判定、源库错误修复表、ohpm 兜底全流程)参见 [BUILD_VALIDATION.md](references/BUILD_VALIDATION.md)。
|
|
180
|
-
|
|
181
|
-
### 4.1 工程迁移(migrate.cjs,必做不可跳过)
|
|
182
|
-
|
|
183
|
-
> 🔴 无论工程类型(OpenHarmony/HarmonyOS)、无论 `compileSdkVersion` 是否与已安装 SDK 匹配,都必须执行迁移——源工程 hvigor 文件、`oh-package.json5`、`runtimeOS`/`compatibleSdkVersion` 等配置仍可能不兼容当前构建环境。禁止自行判断跳过。
|
|
184
|
-
|
|
185
|
-
```bash
|
|
186
|
-
# 有设备:先探测设备 API 版本(记录作为 --compatible-api)
|
|
187
|
-
hdc list targets
|
|
188
|
-
hdc shell param get const.ohos.apiversion
|
|
189
|
-
|
|
190
|
-
node {{skillDir}}/scripts/migrate.cjs --source {{sourcePath}} --compatible-api {deviceApi}
|
|
191
|
-
|
|
192
|
-
# 无设备(脚本自动探测已安装 SDK API 版本)
|
|
193
|
-
node {{skillDir}}/scripts/migrate.cjs --source {{sourcePath}}
|
|
194
|
-
```
|
|
195
|
-
|
|
196
|
-
**执行后校验(未通过不得进入 4.2)**:输出以 `[migrate] 迁移完成。` 结尾;日志含 `[migrate] SDK版本: compatibleSdkVersion=...` 行;`build-profile.json5` 每个 product 的 `runtimeOS` 为 `HarmonyOS`;API 版本 ≤ 设备 API(有设备)或 = 已安装 SDK API(无设备)。任一项不满足 → 重新执行直至通过。
|
|
197
|
-
|
|
198
|
-
### 4.2 Code Linter 静态检查(编译前必做)
|
|
199
|
-
|
|
200
|
-
```bash
|
|
201
|
-
node {{skillDir}}/scripts/code-linter.cjs --source {{sourcePath}} --target entry/src/main/ets/pages
|
|
202
|
-
```
|
|
203
|
-
|
|
204
|
-
| 退出码 | 含义 | 处理 |
|
|
205
|
-
|-------|------|------|
|
|
206
|
-
| 0 | 0 Error | 进入 4.3 |
|
|
207
|
-
| 2 | 存在 Error | 逐条修复(生成代码错误按签名修正协议同源修复,见 API_SIGNATURE_CHECKS.md 第 3 节),重跑直至 0 Error,计入编译修复轮次 |
|
|
208
|
-
| 1 | 环境不可用(devecocli 不可用) | 标注"跳过",进入 4.3(编译同样依赖该环境,届时会暴露) |
|
|
209
|
-
|
|
210
|
-
Warning 不阻塞编译:`file-naming-convention`(数字前缀与大驼峰规则的固有冲突)属可接受项;`addTryCatch`/未使用变量等为 P2 优化项;`.ets` 的 any/unknown 由 ArkTS 编译器强制把关。
|
|
211
|
-
|
|
212
|
-
### 4.3 编译验证(5 轮修复循环)
|
|
213
|
-
|
|
214
|
-
> 🔴 必须通过 build.ps1 执行——直接调用 devecocli build 会因 hvigor daemon 继承 Agent 管道句柄导致 session 永久阻塞。
|
|
215
|
-
> macOS/Linux(无 PowerShell)等效替代:`devecocli build --modules entry > build.log 2>&1`(重定向到文件同样规避句柄继承,实测多轮无阻塞),错误从 build.log 读取。
|
|
216
|
-
|
|
217
|
-
```powershell
|
|
218
|
-
powershell -ExecutionPolicy Bypass -File "{{skillDir}}/scripts/build.ps1" -Cmd "devecocli build clean"
|
|
219
|
-
powershell -ExecutionPolicy Bypass -File "{{skillDir}}/scripts/build.ps1" -Cmd "devecocli build --modules entry"
|
|
220
|
-
```
|
|
221
|
-
|
|
222
|
-
编译通过 → 进入 4.4。失败则进入修复循环(最多 5 轮),每轮:
|
|
223
|
-
|
|
224
|
-
1. 逐条读取构建日志错误
|
|
225
|
-
2. **判断错误来源分级修复**:
|
|
226
|
-
- **生成代码错误**(文件在 `entry/src/main/ets/pages/0XX_*`、`DemoIndex.ets`):执行签名修正协议——按编译错误关键词对照 8 类修复表批量修正(见 [API_SIGNATURE_CHECKS.md](references/API_SIGNATURE_CHECKS.md) 第 3 节);同文件同类错误一次性批量替换
|
|
227
|
-
- **源库错误**(文件在 `library/`、源库原有 pages/、CMakeLists.txt、hvigorfile.ts、build-profile.json5):仅机械性修复(SDK 版本/依赖/构建配置,修复表见 BUILD_VALIDATION.md 第 3.3 节);业务逻辑错误不修复仅标注
|
|
228
|
-
3. 重新编译
|
|
229
|
-
|
|
230
|
-
**终止判定**:连续 2 轮错误均为源库不可修复错误 → 立即终止循环,标注原因后跳转 4.4。
|
|
231
|
-
|
|
232
|
-
**ohpm 线上版本兜底**(源库原生库 .so 需复杂构建导致编译失败时,触发条件与脚本行为详见 BUILD_VALIDATION.md 第 4 节):
|
|
233
|
-
|
|
234
|
-
```bash
|
|
235
|
-
node {{skillDir}}/scripts/ohpm-switch.cjs --source {{sourcePath}}
|
|
236
|
-
cd {{sourcePath}} && ohpm install
|
|
237
|
-
# 然后按上述方式重新编译
|
|
238
|
-
```
|
|
239
|
-
|
|
240
|
-
替换后**必须做版本降级 API 兼容核验**:对照 `library/index.ets` 导出链逐一确认生成代码 import 的类型/常量/枚举仍存在;缺失则换更接近版本重跑脚本,或降级为对象字面量并标注。改动保留不回滚,但在报告中如实记录(引用 `ohpm-switch-report.json`)。
|
|
241
|
-
|
|
242
|
-
**降级(5 轮仍失败 / 提前终止)**:编译验证标注"跳过",报告中分类列出未修复错误(需加入检查表 / 需源库作者修复 / 需 DevEco Studio 迁移工具升级项目结构);任务状态仍为"完成"(代码生成本身已完成)。
|
|
243
|
-
|
|
244
|
-
### 4.4 代码规范自查清单
|
|
245
|
-
|
|
246
|
-
| 检查项 | 标准 |
|
|
247
|
-
|-------|------|
|
|
248
|
-
| 文件命名 | `{三位序号}_{PascalCase}Page.ets`,平铺 `pages/` 无子目录,数量与场景文档一致 |
|
|
249
|
-
| 日志 | 每文件独立 TAG、工程统一 DOMAIN;方法入口/异常日志无遗漏 |
|
|
250
|
-
| 异步与资源 | 无裸 await(全部 try/catch);资源在 `aboutToDisappear` 释放 |
|
|
251
|
-
| 类型安全 | 无 any/ESObject/Object |
|
|
252
|
-
| 权限 | module.json5 声明 + 运行时动态申请齐全 |
|
|
253
|
-
| 国际化 | UI 文本全部 `$r()`;base/zh_CN/en_US 三文件键完全同步(含 `demo_NNN_index_desc`) |
|
|
254
|
-
| 主导航 | DEMO_LIST 数量一致;title/description 为 `Resource` 类型;main_pages.json 已注册全部路由;原始 Demo 入口已保留(如有) |
|
|
255
|
-
| 接口签名 | 全部对照库源码/规格文档验证,无猜测的属性名/回调参数/枚举成员(编译前快速兜底对照表见 [API_SIGNATURE_CHECKS.md](references/API_SIGNATURE_CHECKS.md)) |
|
|
256
|
-
|
|
257
|
-
### 4.5 功能验证点
|
|
258
|
-
|
|
259
|
-
按场景文档"预期结果",在代码中贴近产生该结果的代码行添加注释标记(规范见 CODE_STANDARDS.md 第 8 节):
|
|
260
|
-
|
|
261
|
-
```typescript
|
|
262
|
-
// ✅ 验证点 1: {从 Demo 预期结果提取的可观测指标}
|
|
263
|
-
// ✅ 验证点 2: {下一条预期结果}
|
|
264
|
-
```
|
|
265
|
-
|
|
266
|
-
---
|
|
267
|
-
|
|
268
|
-
## 阶段五:输出 Demo 代码生成报告
|
|
269
|
-
|
|
270
|
-
`write_file` 到 `{{outputDir}}/arkts-demo-code-report.md`,包含以下章节:
|
|
271
|
-
|
|
272
|
-
- **生成文件列表**:`DemoIndex.ets`(主导航)+ N 个 `{序号}_XxxPage.ets`(各 Demo 名称)
|
|
273
|
-
- **路由配置更新**:main_pages.json 新增 N 个路由(格式 `pages/{序号}_{PascalCaseName}Page`,无子目录)
|
|
274
|
-
- **字符串资源更新**:base / zh_CN / en_US 三个 string.json 新增键数量
|
|
275
|
-
- **权限变更**:module.json5 新增权限及用途说明
|
|
276
|
-
- **Code Linter 检查**:结果(通过 0 Error / 已修复 / 环境不可用跳过);引用 `{{sourcePath}}/code-linter-report.json`;需人工确认的 Warning(如 file-naming-convention)
|
|
277
|
-
- **编译验证**:通过 / ⚠️ 跳过(原因与修复建议)。若执行了 ohpm 替换,附加:源库原生编译失败原因、切换的 `{库包名}@{版本号}`、依赖改动记录(引用 `ohpm-switch-report.json`)、版本降级 API 兼容核验结论、base 资源同步检查结论
|
|
278
|
-
- **验证步骤**:DevEco Studio 打开工程运行到鸿蒙设备 → 主导航点击 [001] 验证 → 按各 Demo 页面内"验证点"注释检查功能
|
|
279
|
-
|
|
280
|
-
---
|
|
281
|
-
|
|
282
|
-
## 参考资料
|
|
283
|
-
|
|
284
|
-
| 文档 | 内容 |
|
|
285
|
-
|------|------|
|
|
286
|
-
| [references/CODE_STANDARDS.md](references/CODE_STANDARDS.md) | 命名规则、ArkTS 禁止项、日志/错误处理/资源管理/权限/UI 规范速查 |
|
|
287
|
-
| [references/TEMPLATE.md](references/TEMPLATE.md) | Demo 页面、主导航、OriginalDemoCard、路由、权限声明代码模板 |
|
|
288
|
-
| [references/API_SIGNATURE_CHECKS.md](references/API_SIGNATURE_CHECKS.md) | 接口签名预检表、场景文档差异四类核对、编译错误签名修正协议 |
|
|
289
|
-
| [references/BUILD_VALIDATION.md](references/BUILD_VALIDATION.md) | 工程迁移、Code Linter、编译修复循环、ohpm 线上版本兜底操作手册 |
|
|
290
|
-
| [references/SYSTEM_API_LOOKUP.md](references/SYSTEM_API_LOOKUP.md) | 系统 API 检索工具 `script_deveco_docs` 使用指南 |
|
|
291
|
-
| [references/EXAMPLES.md](references/EXAMPLES.md) | ohos-blur-kit 完整生成示例(输入文档 → 页面代码 → 资源文件) |
|
|
1
|
+
---
|
|
2
|
+
name: arkts-library-demo-code
|
|
3
|
+
description: 基于 Demo 场景文档(由 ArkTsLibraryDemoScenarioSkill 生成)生成可在 OpenHarmony/HarmonyOS 上编译运行的 ArkTS 测试 Demo 页面代码。页面统一平铺在 pages/ 目录({三位序号}_{PascalCase}Page.ets,多文档全局连续编号),由 DemoIndex 主页面统一导航,同步生成 base/zh_CN/en_US 三语字符串资源;接口签名逐个对照库源码与系统 API 文档查证,生成后执行工程迁移、Code Linter 与编译验证(5 轮修复 + ohpm 线上版本兜底)。当需要将 Demo 场景描述文档转化为可编译运行的鸿蒙 ArkTS Demo 代码时使用。
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
compatibility: 需要 Node.js、devecocli(docs/lint/build)、hdc(可选设备探测)、ohpm(可选兜底)、MCP Gateway 的 script_deveco_docs 工具(系统 API 查证);Windows 用 build.ps1 执行编译,macOS/Linux 用日志重定向等效命令
|
|
6
|
+
metadata:
|
|
7
|
+
author: lalhan
|
|
8
|
+
version: "1.2.0"
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
# 鸿蒙 ArkTS 原生库 Demo 代码生成
|
|
12
|
+
|
|
13
|
+
读取 Demo 场景文档,为每个 Demo 生成独立的 ArkTS 页面、统一的主导航页面与三语字符串资源,并通过迁移 → Linter → 编译验证闭环确保代码可在鸿蒙系统上编译运行。
|
|
14
|
+
|
|
15
|
+
> ⚠️ **核心约束(违反任一项视为任务失败)**:
|
|
16
|
+
> 1. **数量完整**:场景文档有 N 个 Demo → 必须生成 N 个页面,禁止合并、省略、跳过。
|
|
17
|
+
> 2. **不捏造接口**:只调用场景文档列出的接口;签名**以库源码为准**(逐接口 read_file 核对,场景文档签名可能过时)。
|
|
18
|
+
> 3. **命名与结构**:`{三位序号}_{PascalCase}Page.ets` 平铺于 `pages/`(严禁子目录);多文档全局连续编号。
|
|
19
|
+
> 4. **国际化**:UI 静态文本一律 `$r('app.string.xxx')`,base/zh_CN/en_US 三文件同步;`DemoEntry.title/description` 用 `Resource` 类型。
|
|
20
|
+
> 5. **@Builder 禁动态数据**:`@Builder` 参数按值快照,ArkUI 会跳过重渲染;动态 `@State` 节点必须内联在 `build()` 中。
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## 任务参数
|
|
25
|
+
|
|
26
|
+
| 参数 | 必需 | 说明 |
|
|
27
|
+
|------|------|------|
|
|
28
|
+
| `sourcePath` | ✅ | 目标鸿蒙工程根目录(含 `entry/` 和 `library/` 模块) |
|
|
29
|
+
| `outputDir` | ✅ | 输出目录(场景文档和覆盖率报告所在目录) |
|
|
30
|
+
| `scenarioDocPath` | 可选 | 单个场景文档路径;未提供则从 `outputDir` 搜索所有 `*未覆盖接口Demo场景*.md` |
|
|
31
|
+
| `interfaceSpecPath` | 可选 | 接口规格文档路径(查询依赖类型的完整定义);未提供则从 `outputDir` 搜索 `arktscoverage-interface-spec.md` |
|
|
32
|
+
|
|
33
|
+
## 输入依赖
|
|
34
|
+
|
|
35
|
+
- 前置 SKILL:`ArkTsLibraryDemoScenarioSkill`(生成 Demo 场景文档)
|
|
36
|
+
- 输入文件:Demo 场景文档(`*未覆盖接口Demo场景*.md`)、库源码(`sourcePath/library/`)
|
|
37
|
+
- 场景文档"对应函数接口"列自带签名;依赖类型细节(回调字段、枚举成员、interface/class 区分)以接口规格文档 + 库源码核对为准
|
|
38
|
+
|
|
39
|
+
## 工作流程概览
|
|
40
|
+
|
|
41
|
+
```
|
|
42
|
+
阶段零 准备(解析场景文档 → 探查工程 → 文件规划)
|
|
43
|
+
→ 阶段一 逐 Demo 生成页面 ETS + 三语字符串资源
|
|
44
|
+
→ 阶段二 生成 DemoIndex 主导航 + 路由注册 + 入口改造
|
|
45
|
+
→ 阶段三 权限与系统能力适配
|
|
46
|
+
→ 阶段四 工程迁移 → Code Linter → 编译验证(5 轮修复 + ohpm 兜底)→ 自查
|
|
47
|
+
→ 阶段五 输出报告
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## 阶段零:准备工作
|
|
53
|
+
|
|
54
|
+
### 0.1 解析场景文档
|
|
55
|
+
|
|
56
|
+
- 确定 `scenarioDocPath`(或搜索 `outputDir` 下 `*未覆盖接口Demo场景*.md`);多文档按文件名(一)(二)… 排序后全部读取
|
|
57
|
+
- 提取库名称(用于代码中的 TAG 等标识符);逐行解析"测试 Demo 描述列表"表格:文档内序号 / 名称 / 描述 / 步骤 / 预期结果 / 对应函数接口
|
|
58
|
+
- **跨文档全局编号**:按文档输入顺序连续递增(文档 A 5 个 → 001–005,文档 B 3 个 → 006–008),禁止各文档独立从 001 开始
|
|
59
|
+
- 解析"接口覆盖矩阵";统计 Demo 总数,规划生成文件列表(DemoIndex + N 个页面 + 3 个 string.json)
|
|
60
|
+
|
|
61
|
+
**错误处理**:缺必需字段的 Demo 跳过并在最终报告标注;文档缺"测试 Demo 描述列表"表格则立即停止并报告格式问题;接口签名缺失则标记"需手动验证接口",代码用占位注释提醒。
|
|
62
|
+
|
|
63
|
+
### 0.2 探查工程结构与类型词典
|
|
64
|
+
|
|
65
|
+
- 识别 entry/、library/ 模块;读取 `entry/src/main/ets/` 目录结构、`main_pages.json`(路由)、`module.json5`(已声明权限)、一个现有页面 ETS(代码风格与导入惯例)、zh_CN/en_US `string.json`(已有键名,避免冲突)
|
|
66
|
+
- 运行 `devecocli --version` 确认 CLI 可用
|
|
67
|
+
- **UI 组件装饰器预检**:读 `library/Index.ets` 导出的 `@Component` 源码,搜索 `@ObjectLink`/`@Prop`/`@Link`,确认关联类带 `@Observed` 装饰器(接口规格文档第 5 章如有兼容性表可直接对照);标注不兼容组件,场景规划时排除
|
|
68
|
+
- **建立依赖类型词典**(来源:`interfaceSpecPath` / `arktscoverage-interface-spec.md` + 库源码):
|
|
69
|
+
- 每个接口/类的**类型种类**:`(interface)` 不可 new / `(class)` 可 new / `@ObservedV2` 不可用于 `@State`
|
|
70
|
+
- 每个回调接口的**完整字段签名**(如 `OnLoadCallBack.onLoadFailed: (err: string, imageInfo: ImageInfo) => void`)
|
|
71
|
+
- 每个类的**属性名列表**(代码中只能使用列表内的属性名)
|
|
72
|
+
|
|
73
|
+
### 0.3 文件规划
|
|
74
|
+
|
|
75
|
+
建立内部规划表:`DemoIndex.ets` + N 个 `{序号}_{PascalCase}Page.ets`(全部平铺 `pages/`)+ base/zh_CN/en_US 三个 `string.json`。
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 阶段一:生成各 Demo 页面代码
|
|
80
|
+
|
|
81
|
+
### 1.1 文件命名
|
|
82
|
+
|
|
83
|
+
格式 `{三位序号}_{PascalCase功能描述}Page.ets`,如 `001_CheckSupportAndConfigPage.ets`、`010_PictureMetaPage.ets`。序号三位补零保证文件排序与 Demo 顺序一致;`main_pages.json` 路由与 `router.pushUrl` URL 均使用 `pages/001_XxxPage`(无子目录)。详见 [CODE_STANDARDS.md](references/CODE_STANDARDS.md) 第 1 节。
|
|
84
|
+
|
|
85
|
+
### 1.2 分析权限需求
|
|
86
|
+
|
|
87
|
+
按优先级推断各 Demo 所需权限:
|
|
88
|
+
|
|
89
|
+
1. 场景文档"步骤/描述"中的权限关键词(网络、文件、相册、位置、蓝牙等)
|
|
90
|
+
2. `library/` 源码 import 与 API 调用(`http` → `ohos.permission.INTERNET`;`photoAccessHelper` → `READ_MEDIA`;sensor/蓝牙同理)
|
|
91
|
+
3. `module.json5` 已声明清单(避免重复声明)
|
|
92
|
+
|
|
93
|
+
区分系统自动授权权限(声明即可)与用户授权权限(须运行时动态申请)。常见权限速查见 [CODE_STANDARDS.md](references/CODE_STANDARDS.md) 第 6 节。
|
|
94
|
+
|
|
95
|
+
### 1.3 接口与系统 API 预检(强制,未完成禁止生成代码)
|
|
96
|
+
|
|
97
|
+
对当前 Demo 涉及的**每一个接口**执行核心检查:
|
|
98
|
+
|
|
99
|
+
| 检查项 | 要点 |
|
|
100
|
+
|-------|------|
|
|
101
|
+
| 签名核对 | read_file 库源码逐接口确认参数/返回类型,**以源码为准**(场景文档签名可能过时:string/boolean/数字差异、容器类型、rest 参数差异) |
|
|
102
|
+
| 类型种类 | `(interface)` 不可 `new`(用对象字面量);`(class)` 可 `new`;`@ObservedV2` 类不可用于 `@State`/`@Prop`/`@Link`,改用 `@Local`/`@Param` |
|
|
103
|
+
| 回调与属性 | 回调字段名与参数类型逐字匹配;只使用依赖类型词典列出的属性名 |
|
|
104
|
+
| undefined 守卫 | 返回 `\| undefined` 或 `?:` 的调用须 `if (result)` 判空再访问属性 |
|
|
105
|
+
| import 链 | 每个 `import { X }` 必须在 `library/Index.ets` 导出链中;未导出类型用对象字面量匹配结构,禁止 import;库源码也无定义则降级 `Record<string, Object>` 并标注 |
|
|
106
|
+
| 结构化类型 | 禁止 `new Uint8Array([..]).buffer` 赋值给 `ArrayBuffer`(`arkts-no-structural-typing`),改用 `new ArrayBuffer(n)` + 视图逐元素写入 |
|
|
107
|
+
|
|
108
|
+
完整检查表(含错误示例、场景文档差异四类专项核对)参见 [API_SIGNATURE_CHECKS.md](references/API_SIGNATURE_CHECKS.md) 第 1、2 节。
|
|
109
|
+
|
|
110
|
+
**系统 API 强制查证**:Demo 涉及的每个系统 API 依赖(`@kit.*` / `@ohos.*` / `@hms.*` 的方法签名、参数/返回值、枚举成员名、import 路径、权限、系统能力)必须调用 MCP 工具 `script_deveco_docs`(action=search → action=read)确认,**禁止凭记忆猜测**;**检索边界**:库自身 API 不在系统语料中,返回"未找到"时不检索、直接按接口规格文档/库源码编写。用法详见 [SYSTEM_API_LOOKUP.md](references/SYSTEM_API_LOOKUP.md)。
|
|
111
|
+
|
|
112
|
+
**import 类型链追踪**:代码中每个 import 的类型须验证存在于 `library/Index.ets` 导出链;回调签名中的衍生类型(如 `ImageInfo`)须在库源码中定位定义,未导出则用对象字面量匹配结构,禁止 import。详见 [API_SIGNATURE_CHECKS.md](references/API_SIGNATURE_CHECKS.md) 第 1 节 #8。
|
|
113
|
+
|
|
114
|
+
### 1.4 生成页面 ETS 代码
|
|
115
|
+
|
|
116
|
+
按 [TEMPLATE.md](references/TEMPLATE.md) 第 1/2 节标准模板生成(无权限版 / 含动态权限版),结构要点:
|
|
117
|
+
|
|
118
|
+
- 文件头 JSDoc(功能说明、对应接口);`DOMAIN`/`TAG` 日志常量(TAG 格式 `{LibraryName}_{ComponentName}`)
|
|
119
|
+
- `@State` 状态变量具体类型;`aboutToAppear` 初始化,`aboutToDisappear` 释放资源(库实例、订阅、Timer)
|
|
120
|
+
- 核心方法:入口 `hilog.debug`、成功节点 `hilog.info`、异常 `hilog.error`;异步调用必须 `try/catch/finally`(finally 重置 Loading)
|
|
121
|
+
|
|
122
|
+
质量检查表:
|
|
123
|
+
|
|
124
|
+
| 要求 | 标准 |
|
|
125
|
+
|------|------|
|
|
126
|
+
| 日志覆盖 | 方法/事件回调入口 debug,成功节点 info,捕获异常 error |
|
|
127
|
+
| 错误处理 | 异步全部 try/catch;同步失败在 UI 展示错误信息 |
|
|
128
|
+
| 资源释放 | `aboutToDisappear` 释放库实例、取消订阅、清理 Timer |
|
|
129
|
+
| 类型安全 | 禁止 `any`/`unknown`/`ESObject`/`Object` |
|
|
130
|
+
| 权限申请 | 用户授权权限使用前通过 `abilityAccessCtrl.requestPermissionsFromUser` 动态申请 |
|
|
131
|
+
| 注释完整性 | 组件级 JSDoc + 核心方法 JSDoc + 关键逻辑行内注释 |
|
|
132
|
+
| UI 完整性 | 标题、操作控件、Loading/Error 状态指示、结果展示区域 |
|
|
133
|
+
| **@Builder 禁动态数据** | 展示动态 `@State`(耗时、计数器、状态标志)的节点必须内联在 `build()` 中;`@Builder` 仅用于不依赖 `@State` 的静态布局复用(如 DemoCard 传入静态数据对象属合法用法) |
|
|
134
|
+
|
|
135
|
+
ArkTS 编码规范(禁止项速查、日志格式、错误处理模式、资源生命周期、UI 规范)详见 [CODE_STANDARDS.md](references/CODE_STANDARDS.md)。
|
|
136
|
+
|
|
137
|
+
### 1.5 生成多语言字符串资源
|
|
138
|
+
|
|
139
|
+
键名规则 `demo_{三位序号}_{语义描述}`(如 `demo_001_title`、`demo_001_check_btn`);每个 Demo 额外添加 `demo_NNN_index_desc` 键(主导航列表描述),主导航标题用 `demo_index_title`。
|
|
140
|
+
|
|
141
|
+
> 🔴 **三文件同步(强制)**:每个 `$r('app.string.xxx')` 键必须同时在 `base/element/string.json`(默认值,建议中文)、`zh_CN/element/string.json`(值用【序号】前缀)、`en_US/element/string.json`(值用 Title Case)添加同名条目。遗漏 base 会报 `Warning: the string of 'xxx' does not have a base resource.`。键名以序号前缀隔离避免冲突。
|
|
142
|
+
|
|
143
|
+
- 动态文本(运行时错误信息 `this.resultText` 等)不属于静态字符串,不需要资源键,代码中直接赋值
|
|
144
|
+
- `reason` 等资源引用同理必须走 `$string:xxx`
|
|
145
|
+
|
|
146
|
+
### 1.6 复杂 Demo 辅助生成
|
|
147
|
+
|
|
148
|
+
满足任一条件时调用 `ohos-library-feature-adder` 技能辅助生成:涉及 PixelMap/AVPlayer/Camera 等重型系统 API、需实现复杂异步状态机、涉及 C/C++ NDK 接口调用。提供工程路径 + 功能描述(从场景文档提取的步骤和接口),生成后须按本技能规范(命名、日志、注释)二次校验和修改。
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 阶段二:生成主页面导航
|
|
153
|
+
|
|
154
|
+
### 2.1 DemoIndex.ets
|
|
155
|
+
|
|
156
|
+
按 [TEMPLATE.md](references/TEMPLATE.md) 第 3 节模板生成。要点:
|
|
157
|
+
|
|
158
|
+
- `DemoEntry { id: string; title: Resource; description: Resource; route: string }`,title/description 用 `$r('app.string.demo_NNN_title')` / `$r('app.string.demo_NNN_index_desc')` 赋值,禁止硬编码字符串
|
|
159
|
+
- `DEMO_LIST` 覆盖全部 Demo(数量与场景文档一致),route 为 `pages/001_XxxPage`(带序号前缀、无子目录)
|
|
160
|
+
- 跳转使用 `this.getUIContext().getRouter().pushUrl({ url })`,`.catch` 记录 `hilog.error`
|
|
161
|
+
- 若工程已有原始库演示页面(如 `pages/Tab`,经 `pages/Index` 跳转),**必须**保留其入口:按 [TEMPLATE.md](references/TEMPLATE.md) 第 6 节 OriginalDemoCard 模板(橙色徽章与蓝色序号卡片视觉区分)追加,字符串键 `demo_original_title` / `demo_original_index_desc` 同样三文件同步
|
|
162
|
+
|
|
163
|
+
### 2.2 路由注册与入口改造
|
|
164
|
+
|
|
165
|
+
- `main_pages.json`:`pages/DemoIndex` 列首位,其余按序号顺序排列(模板见 TEMPLATE.md 第 4 节)
|
|
166
|
+
- **EntryAbility**:将 `entry/src/main/ets/entryability/EntryAbility.ts` 中 `onWindowStageCreate` 的 `loadContent` 路径改为 `pages/DemoIndex`。⚠️ 须在 DemoIndex 生成并注册路由**之后**执行,否则路由未注册导致运行时白屏
|
|
167
|
+
|
|
168
|
+
---
|
|
169
|
+
|
|
170
|
+
## 阶段三:权限与系统能力适配
|
|
171
|
+
|
|
172
|
+
- 汇总各 Demo 所需权限,更新 `module.json5` 的 `requestPermissions`(`reason` 必须引用 `$string:xxx` 资源并在 string.json 添加对应键;模板见 TEMPLATE.md 第 5 节)
|
|
173
|
+
- 用户授权权限在页面 `aboutToAppear` 中动态申请,标准代码模式见 [CODE_STANDARDS.md](references/CODE_STANDARDS.md) 第 6.2 节
|
|
174
|
+
|
|
175
|
+
---
|
|
176
|
+
|
|
177
|
+
## 阶段四:质量检查与编译验证
|
|
178
|
+
|
|
179
|
+
> 核心原则:**编译是验证生成代码质量的唯一方式**;源库问题也必须尝试修复(仅限机械性操作:SDK 版本、依赖、构建配置,不改业务逻辑)。详细操作手册(迁移校验细节、Linter 判定、源库错误修复表、ohpm 兜底全流程)参见 [BUILD_VALIDATION.md](references/BUILD_VALIDATION.md)。
|
|
180
|
+
|
|
181
|
+
### 4.1 工程迁移(migrate.cjs,必做不可跳过)
|
|
182
|
+
|
|
183
|
+
> 🔴 无论工程类型(OpenHarmony/HarmonyOS)、无论 `compileSdkVersion` 是否与已安装 SDK 匹配,都必须执行迁移——源工程 hvigor 文件、`oh-package.json5`、`runtimeOS`/`compatibleSdkVersion` 等配置仍可能不兼容当前构建环境。禁止自行判断跳过。
|
|
184
|
+
|
|
185
|
+
```bash
|
|
186
|
+
# 有设备:先探测设备 API 版本(记录作为 --compatible-api)
|
|
187
|
+
hdc list targets
|
|
188
|
+
hdc shell param get const.ohos.apiversion
|
|
189
|
+
|
|
190
|
+
node {{skillDir}}/scripts/migrate.cjs --source {{sourcePath}} --compatible-api {deviceApi}
|
|
191
|
+
|
|
192
|
+
# 无设备(脚本自动探测已安装 SDK API 版本)
|
|
193
|
+
node {{skillDir}}/scripts/migrate.cjs --source {{sourcePath}}
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
**执行后校验(未通过不得进入 4.2)**:输出以 `[migrate] 迁移完成。` 结尾;日志含 `[migrate] SDK版本: compatibleSdkVersion=...` 行;`build-profile.json5` 每个 product 的 `runtimeOS` 为 `HarmonyOS`;API 版本 ≤ 设备 API(有设备)或 = 已安装 SDK API(无设备)。任一项不满足 → 重新执行直至通过。
|
|
197
|
+
|
|
198
|
+
### 4.2 Code Linter 静态检查(编译前必做)
|
|
199
|
+
|
|
200
|
+
```bash
|
|
201
|
+
node {{skillDir}}/scripts/code-linter.cjs --source {{sourcePath}} --target entry/src/main/ets/pages
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
| 退出码 | 含义 | 处理 |
|
|
205
|
+
|-------|------|------|
|
|
206
|
+
| 0 | 0 Error | 进入 4.3 |
|
|
207
|
+
| 2 | 存在 Error | 逐条修复(生成代码错误按签名修正协议同源修复,见 API_SIGNATURE_CHECKS.md 第 3 节),重跑直至 0 Error,计入编译修复轮次 |
|
|
208
|
+
| 1 | 环境不可用(devecocli 不可用) | 标注"跳过",进入 4.3(编译同样依赖该环境,届时会暴露) |
|
|
209
|
+
|
|
210
|
+
Warning 不阻塞编译:`file-naming-convention`(数字前缀与大驼峰规则的固有冲突)属可接受项;`addTryCatch`/未使用变量等为 P2 优化项;`.ets` 的 any/unknown 由 ArkTS 编译器强制把关。
|
|
211
|
+
|
|
212
|
+
### 4.3 编译验证(5 轮修复循环)
|
|
213
|
+
|
|
214
|
+
> 🔴 必须通过 build.ps1 执行——直接调用 devecocli build 会因 hvigor daemon 继承 Agent 管道句柄导致 session 永久阻塞。
|
|
215
|
+
> macOS/Linux(无 PowerShell)等效替代:`devecocli build --modules entry > build.log 2>&1`(重定向到文件同样规避句柄继承,实测多轮无阻塞),错误从 build.log 读取。
|
|
216
|
+
|
|
217
|
+
```powershell
|
|
218
|
+
powershell -ExecutionPolicy Bypass -File "{{skillDir}}/scripts/build.ps1" -Cmd "devecocli build clean"
|
|
219
|
+
powershell -ExecutionPolicy Bypass -File "{{skillDir}}/scripts/build.ps1" -Cmd "devecocli build --modules entry"
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
编译通过 → 进入 4.4。失败则进入修复循环(最多 5 轮),每轮:
|
|
223
|
+
|
|
224
|
+
1. 逐条读取构建日志错误
|
|
225
|
+
2. **判断错误来源分级修复**:
|
|
226
|
+
- **生成代码错误**(文件在 `entry/src/main/ets/pages/0XX_*`、`DemoIndex.ets`):执行签名修正协议——按编译错误关键词对照 8 类修复表批量修正(见 [API_SIGNATURE_CHECKS.md](references/API_SIGNATURE_CHECKS.md) 第 3 节);同文件同类错误一次性批量替换
|
|
227
|
+
- **源库错误**(文件在 `library/`、源库原有 pages/、CMakeLists.txt、hvigorfile.ts、build-profile.json5):仅机械性修复(SDK 版本/依赖/构建配置,修复表见 BUILD_VALIDATION.md 第 3.3 节);业务逻辑错误不修复仅标注
|
|
228
|
+
3. 重新编译
|
|
229
|
+
|
|
230
|
+
**终止判定**:连续 2 轮错误均为源库不可修复错误 → 立即终止循环,标注原因后跳转 4.4。
|
|
231
|
+
|
|
232
|
+
**ohpm 线上版本兜底**(源库原生库 .so 需复杂构建导致编译失败时,触发条件与脚本行为详见 BUILD_VALIDATION.md 第 4 节):
|
|
233
|
+
|
|
234
|
+
```bash
|
|
235
|
+
node {{skillDir}}/scripts/ohpm-switch.cjs --source {{sourcePath}}
|
|
236
|
+
cd {{sourcePath}} && ohpm install
|
|
237
|
+
# 然后按上述方式重新编译
|
|
238
|
+
```
|
|
239
|
+
|
|
240
|
+
替换后**必须做版本降级 API 兼容核验**:对照 `library/index.ets` 导出链逐一确认生成代码 import 的类型/常量/枚举仍存在;缺失则换更接近版本重跑脚本,或降级为对象字面量并标注。改动保留不回滚,但在报告中如实记录(引用 `ohpm-switch-report.json`)。
|
|
241
|
+
|
|
242
|
+
**降级(5 轮仍失败 / 提前终止)**:编译验证标注"跳过",报告中分类列出未修复错误(需加入检查表 / 需源库作者修复 / 需 DevEco Studio 迁移工具升级项目结构);任务状态仍为"完成"(代码生成本身已完成)。
|
|
243
|
+
|
|
244
|
+
### 4.4 代码规范自查清单
|
|
245
|
+
|
|
246
|
+
| 检查项 | 标准 |
|
|
247
|
+
|-------|------|
|
|
248
|
+
| 文件命名 | `{三位序号}_{PascalCase}Page.ets`,平铺 `pages/` 无子目录,数量与场景文档一致 |
|
|
249
|
+
| 日志 | 每文件独立 TAG、工程统一 DOMAIN;方法入口/异常日志无遗漏 |
|
|
250
|
+
| 异步与资源 | 无裸 await(全部 try/catch);资源在 `aboutToDisappear` 释放 |
|
|
251
|
+
| 类型安全 | 无 any/ESObject/Object |
|
|
252
|
+
| 权限 | module.json5 声明 + 运行时动态申请齐全 |
|
|
253
|
+
| 国际化 | UI 文本全部 `$r()`;base/zh_CN/en_US 三文件键完全同步(含 `demo_NNN_index_desc`) |
|
|
254
|
+
| 主导航 | DEMO_LIST 数量一致;title/description 为 `Resource` 类型;main_pages.json 已注册全部路由;原始 Demo 入口已保留(如有) |
|
|
255
|
+
| 接口签名 | 全部对照库源码/规格文档验证,无猜测的属性名/回调参数/枚举成员(编译前快速兜底对照表见 [API_SIGNATURE_CHECKS.md](references/API_SIGNATURE_CHECKS.md)) |
|
|
256
|
+
|
|
257
|
+
### 4.5 功能验证点
|
|
258
|
+
|
|
259
|
+
按场景文档"预期结果",在代码中贴近产生该结果的代码行添加注释标记(规范见 CODE_STANDARDS.md 第 8 节):
|
|
260
|
+
|
|
261
|
+
```typescript
|
|
262
|
+
// ✅ 验证点 1: {从 Demo 预期结果提取的可观测指标}
|
|
263
|
+
// ✅ 验证点 2: {下一条预期结果}
|
|
264
|
+
```
|
|
265
|
+
|
|
266
|
+
---
|
|
267
|
+
|
|
268
|
+
## 阶段五:输出 Demo 代码生成报告
|
|
269
|
+
|
|
270
|
+
`write_file` 到 `{{outputDir}}/arkts-demo-code-report.md`,包含以下章节:
|
|
271
|
+
|
|
272
|
+
- **生成文件列表**:`DemoIndex.ets`(主导航)+ N 个 `{序号}_XxxPage.ets`(各 Demo 名称)
|
|
273
|
+
- **路由配置更新**:main_pages.json 新增 N 个路由(格式 `pages/{序号}_{PascalCaseName}Page`,无子目录)
|
|
274
|
+
- **字符串资源更新**:base / zh_CN / en_US 三个 string.json 新增键数量
|
|
275
|
+
- **权限变更**:module.json5 新增权限及用途说明
|
|
276
|
+
- **Code Linter 检查**:结果(通过 0 Error / 已修复 / 环境不可用跳过);引用 `{{sourcePath}}/code-linter-report.json`;需人工确认的 Warning(如 file-naming-convention)
|
|
277
|
+
- **编译验证**:通过 / ⚠️ 跳过(原因与修复建议)。若执行了 ohpm 替换,附加:源库原生编译失败原因、切换的 `{库包名}@{版本号}`、依赖改动记录(引用 `ohpm-switch-report.json`)、版本降级 API 兼容核验结论、base 资源同步检查结论
|
|
278
|
+
- **验证步骤**:DevEco Studio 打开工程运行到鸿蒙设备 → 主导航点击 [001] 验证 → 按各 Demo 页面内"验证点"注释检查功能
|
|
279
|
+
|
|
280
|
+
---
|
|
281
|
+
|
|
282
|
+
## 参考资料
|
|
283
|
+
|
|
284
|
+
| 文档 | 内容 |
|
|
285
|
+
|------|------|
|
|
286
|
+
| [references/CODE_STANDARDS.md](references/CODE_STANDARDS.md) | 命名规则、ArkTS 禁止项、日志/错误处理/资源管理/权限/UI 规范速查 |
|
|
287
|
+
| [references/TEMPLATE.md](references/TEMPLATE.md) | Demo 页面、主导航、OriginalDemoCard、路由、权限声明代码模板 |
|
|
288
|
+
| [references/API_SIGNATURE_CHECKS.md](references/API_SIGNATURE_CHECKS.md) | 接口签名预检表、场景文档差异四类核对、编译错误签名修正协议 |
|
|
289
|
+
| [references/BUILD_VALIDATION.md](references/BUILD_VALIDATION.md) | 工程迁移、Code Linter、编译修复循环、ohpm 线上版本兜底操作手册 |
|
|
290
|
+
| [references/SYSTEM_API_LOOKUP.md](references/SYSTEM_API_LOOKUP.md) | 系统 API 检索工具 `script_deveco_docs` 使用指南 |
|
|
291
|
+
| [references/EXAMPLES.md](references/EXAMPLES.md) | ohos-blur-kit 完整生成示例(输入文档 → 页面代码 → 资源文件) |
|