@ohos-cpf/3rdloop 0.0.1 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +245 -425
- package/bin/3rdloop.mjs +46 -46
- package/lib/cli.js +781 -740
- package/lib/config-cmd.js +452 -0
- package/lib/config.js +318 -317
- package/lib/doctor.js +113 -113
- package/lib/exit-codes.js +30 -30
- package/lib/opencode.js +155 -155
- package/lib/orch.js +426 -426
- package/lib/queries.js +263 -263
- package/lib/step.js +325 -325
- package/lib/ui.js +222 -222
- package/lib/update.js +280 -0
- package/lib/workflow.js +308 -290
- package/lib/workflows.js +131 -131
- package/package.json +50 -50
- package/vendor/Server/Agent/SkillSelector/README.md +343 -343
- package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -207
- package/vendor/Server/Agent/SkillSelector/index.js +14 -14
- package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -313
- package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -161
- package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -144
- package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -433
- package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -382
- package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +59 -59
- package/vendor/Server/Brain/AnalysisStrategies.js +422 -422
- package/vendor/Server/Brain/Brain.js +686 -686
- package/vendor/Server/Brain/DecompositionStrategies.js +621 -621
- package/vendor/Server/Brain/PlanPersistence.js +196 -196
- package/vendor/Server/Brain/SkillExecutor.js +251 -251
- package/vendor/Server/Brain/index.js +11 -11
- package/vendor/Server/CLI/cli.js +275 -243
- package/vendor/Server/CLI/deveco-code/index.js +71 -0
- package/vendor/Server/CLI/deveco-code.js +5 -0
- package/vendor/Server/CLI/opencode/index.js +817 -804
- package/vendor/Server/CLI/opencode.js +5 -5
- package/vendor/Server/DbUse/MessageArchive.js +61 -61
- package/vendor/Server/DbUse/StorageManager.js +107 -107
- package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -94
- package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -114
- package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -157
- package/vendor/Server/DbUse/index.js +160 -160
- package/vendor/Server/DbUse/stores/SessionStore.js +279 -279
- package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -133
- package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -262
- package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -279
- package/vendor/Server/FlexRunner/FlexRunner.js +1759 -1759
- package/vendor/Server/FlexRunner/index.js +12 -12
- package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -523
- package/vendor/Server/Knowledge/KnowledgeManager.js +341 -341
- package/vendor/Server/Knowledge/index.js +33 -33
- package/vendor/Server/LoopEngine/LoopEngine.js +1133 -1133
- package/vendor/Server/LoopEngine/index.js +11 -11
- package/vendor/Server/Orchestrator/Orchestrator.js +0 -3
- package/vendor/Server/Orchestrator/StepNode.js +312 -312
- package/vendor/Server/Orchestrator/index.js +13 -13
- package/vendor/Server/Routes/controllers/BrainController.js +241 -241
- package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -1125
- package/vendor/Server/Routes/controllers/HealthController.js +44 -44
- package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -355
- package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -788
- package/vendor/Server/Routes/controllers/StatsController.js +57 -57
- package/vendor/Server/Routes/controllers/StreamController.js +67 -67
- package/vendor/Server/Routes/library/logger.js +179 -179
- package/vendor/Server/Routes/library/zipArchive.js +172 -172
- package/vendor/Server/Routes/router/Router.js +204 -204
- package/vendor/Server/Routes/routes/brain.js +47 -47
- package/vendor/Server/Routes/routes/flexrunner.js +72 -72
- package/vendor/Server/Routes/routes/health.js +28 -28
- package/vendor/Server/Routes/routes/index.js +57 -57
- package/vendor/Server/Routes/routes/knowledge.js +55 -55
- package/vendor/Server/Routes/routes/loopengine.js +58 -58
- package/vendor/Server/Routes/routes/orchestrator.js +61 -61
- package/vendor/Server/Routes/routes/registry.js +97 -97
- package/vendor/Server/Routes/routes/stats.js +23 -23
- package/vendor/Server/Routes/routes/stream.js +30 -30
- package/vendor/Server/Routes/server.js +203 -202
- package/vendor/Server/Routes/sse/SseHub.js +308 -308
- package/vendor/Server/Skills/acceptance-check/SKILL.md +191 -174
- package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -52
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -77
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_EVIDENCE_VERIFICATION.md +70 -0
- package/vendor/Server/Skills/arkts-code-check/SKILL.md +320 -313
- package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +210 -159
- package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +28 -28
- package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +233 -222
- package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +328 -328
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -291
- package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -68
- package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -184
- package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -337
- package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -400
- package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +98 -98
- package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -544
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -174
- package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -321
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -100
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -185
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +233 -233
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +102 -102
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -89
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -62
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +107 -107
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -124
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -90
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -57
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +391 -391
- package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -113
- package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +312 -312
- package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -154
- package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +165 -165
- package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +308 -308
- package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -90
- package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -282
- package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +360 -360
- package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +145 -145
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +252 -252
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +114 -114
- package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +262 -262
- package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -455
- package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -60
- package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -76
- package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -200
- package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +518 -518
- package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -276
- package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +92 -92
- package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -767
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -221
- package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +228 -228
- package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -194
- package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +575 -575
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +574 -574
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -182
- package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +490 -490
- package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -217
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -299
- package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -190
- package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +133 -133
- package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/flutter-interface/README.md +75 -75
- package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -291
- package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -336
- package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -190
- package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -258
- package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -254
- package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +517 -517
- package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +381 -381
- package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +341 -341
- package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -71
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +518 -518
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +406 -406
- package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +652 -652
- package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +396 -396
- package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +744 -744
- package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +720 -720
- package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -414
- package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -150
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -304
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -265
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -286
- package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -383
- package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -165
- package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -91
- package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +453 -301
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_CHECKLIST.md +151 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +257 -105
- package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +191 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +317 -208
- package/vendor/Server/Skills/rn-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +234 -234
- package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +188 -188
- package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +246 -246
- package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -198
- package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -40
- package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -78
- package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -70
- package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -47
- package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -252
- package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -176
- package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -5
- package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -35
- package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -137
- package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -33
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -40
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -429
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -105
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -90
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -213
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -73
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -258
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -341
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -67
- package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -299
- package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -293
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -857
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -856
- package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -157
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -801
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +683 -683
- package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -233
- package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -1373
- package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -220
- package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -245
- package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -414
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -413
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -355
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -115
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -139
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -586
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -57
- package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -259
- package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -301
- package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -148
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -118
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -168
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -176
- package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -274
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -45
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -25
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -61
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -165
- package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -239
- package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -96
- package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +57 -57
- package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -99
- package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -64
- package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +74 -74
- package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -164
- package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +356 -339
- package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +85 -83
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +905 -859
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +124 -122
- package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +287 -279
- package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -273
- package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -129
- package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -581
- package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -138
- package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -168
- package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +526 -506
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +321 -280
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -221
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +220 -209
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -325
- package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -279
- package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -404
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -185
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -265
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -189
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -203
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -147
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -148
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -165
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -195
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -249
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -161
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -413
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -245
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -282
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -251
- package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -469
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -310
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -303
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -421
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -358
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -114
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -274
- package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -185
- package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -191
- package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -216
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -107
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -120
- package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -108
- package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -237
- package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -261
- package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -112
- package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +497 -497
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -270
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -164
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -556
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -459
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -65
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -512
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -132
- package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -424
- package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -137
- package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -306
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -485
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -172
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -422
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -95
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -169
- package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -554
- package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -106
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -216
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -413
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -98
- package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -337
- package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -722
- package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -173
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -267
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -174
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -111
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -186
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -150
- package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -296
- package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -371
- package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -212
- package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -223
- package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -1053
- package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +295 -255
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +82 -77
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -224
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +175 -174
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -967
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -1798
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -5
- package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +180 -137
- package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -145
- package/vendor/Server/Skills/skill-generator/SKILL.md +365 -365
- package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -183
- package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -82
- package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -110
- package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -122
- package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -121
- package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/task-analysis/SKILL.md +234 -234
- package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -160
- package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -190
- package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -224
- package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -162
- package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -55
- package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -126
- package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -256
- package/vendor/Server/Skills/task-decomposition/SKILL.md +528 -528
- package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -451
- package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -179
- package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -152
- package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -175
- package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -195
- package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -226
- package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -263
- package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -29
- package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -376
- package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -259
- package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -216
- package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +424 -424
- package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -427
- package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -214
- package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -235
- package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -250
- package/vendor/Server/TestCheck/TestCheck.js +775 -775
- package/vendor/Server/TestCheck/index.js +11 -11
- package/vendor/Server/library/McpToolGuide.js +280 -280
- package/vendor/Server/library/StatsService.js +126 -126
- package/vendor/Server/library/cstTime.js +16 -16
- package/vendor/VERSION +3 -3
- package/workflows/pr-check.mjs +105 -105
- package/workflows/pr-push.mjs +193 -0
- package/vendor/Server/Agent/SkillSelector/types.js +0 -63
|
@@ -1,269 +1,269 @@
|
|
|
1
|
-
# 迁移验证与边界情况
|
|
2
|
-
|
|
3
|
-
> 本文档列出 demo 迁移的验证检查清单与常见边界情况的处理策略。
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 1. 迁移验证检查清单
|
|
8
|
-
|
|
9
|
-
迁移完成后,**逐项**确认以下检查通过。未通过项列入报告「待人工确认」。
|
|
10
|
-
|
|
11
|
-
### 1.1 文件完整性
|
|
12
|
-
|
|
13
|
-
| # | 检查项 | 命令 | 通过标准 |
|
|
14
|
-
|---|--------|------|---------|
|
|
15
|
-
| 1.1.1 | demo 新增文件全部迁移 | `diff <(cd <demoPath> && find . -type f -not -path './node_modules/*' -not -path './build/*' | sort) <(cd <targetExampleSrc> && find . -type f -not -path './node_modules/*' -not -path './build/*' | sort)` | **本次新增文件**全部到位(冲突文件保留目标版本,不计入缺失) |
|
|
16
|
-
| 1.1.2 | 入口文件存在 | `find <targetExampleSrc> -name "App.tsx" -o -name "index.tsx"` | 两个文件都存在(可在嵌套子目录中) |
|
|
17
|
-
| 1.1.3 | testerino 注册存在 | `find <targetExampleSrc> -path "*/Test/index.tsx" -o -path "*/tests/index.tsx"` | 退出码 0(路径可为嵌套) |
|
|
18
|
-
| 1.1.4 | 无排除项残留 | `ls <targetExampleSrc>/node_modules 2>/dev/null` | 无输出(应被排除) |
|
|
19
|
-
| 1.1.5 | index.tsx 引用 demo 入口 | `grep -r "testCase/App\|demo/App\|./App" <targetExampleSrc>/index.tsx` | index.tsx 已接入 demo 入口(若为已有文件未接入,标注待人工确认) |
|
|
20
|
-
|
|
21
|
-
### 1.2 路径正确性
|
|
22
|
-
|
|
23
|
-
| # | 检查项 | 命令 | 通过标准 |
|
|
24
|
-
|---|--------|------|---------|
|
|
25
|
-
| 1.2.1 | 子目录下无错误相对路径 | `grep -rn "from '\./" <targetExampleSrc>/testCase/Test/ <targetExampleSrc>/tests/` | 无同级引用应为 `../` 的情况 |
|
|
26
|
-
| 1.2.2 | 所有 import 路径可解析 | 静态分析(Agent 读取每个 .tsx 文件) | 无 `Cannot find module` 风险 |
|
|
27
|
-
|
|
28
|
-
### 1.3 引用一致性
|
|
29
|
-
|
|
30
|
-
| # | 检查项 | 命令 | 通过标准 |
|
|
31
|
-
|---|--------|------|---------|
|
|
32
|
-
| 1.3.1 | 目标库引用方式一致 | `grep -rn "import.*from.*'<alias>\|<packageName>'" <targetExampleSrc>/` | 引用方式统一(全部用 alias 或全部用 packageName),仅检查本次新增文件 |
|
|
33
|
-
| 1.3.2 | displayName 存在 | `grep -rn "displayName" <targetExampleSrc>/` | 存在且与 demo 名称一致 |
|
|
34
|
-
| 1.3.3 | 无硬编码其他库标题 | `grep -rn "RN.*Tester" <targetExampleSrc>/` | 本次新增文件无遗留的其他库名称(Phase 6.5 已修正);已有文件中的硬编码标题标注为待人工处理 |
|
|
35
|
-
|
|
36
|
-
### 1.4 依赖完整性
|
|
37
|
-
|
|
38
|
-
| # | 检查项 | 方法 | 通过标准 |
|
|
39
|
-
|---|--------|------|---------|
|
|
40
|
-
| 1.4.1 | 所有外部依赖已列出 | 对比 `analyze-demo-deps.cjs` 输出与报告「依赖增量」章节 | 全部列出 |
|
|
41
|
-
| 1.4.2 | 无未识别的 require | `grep -rn "require(" <targetExampleSrc>/` | 所有 require 参数是字符串字面量且已分类 |
|
|
42
|
-
| 1.4.3 | **外部依赖已在 example/package.json 声明** | 对比 `externalDeps` 与 `example/package.json` 的 dependencies/devDependencies | 所有外部依赖已声明;未声明的在报告中标注为高优先级缺失项(Phase 4.1) |
|
|
43
|
-
|
|
44
|
-
### 1.5 Demo 可访问性
|
|
45
|
-
|
|
46
|
-
| # | 检查项 | 方法 | 通过标准 |
|
|
47
|
-
|---|--------|------|---------|
|
|
48
|
-
| 1.5.1 | **无孤立文件** | 对比迁移文件列表与 `index.tsx` 的 `demos` 数组 | 所有有 `export` 的 `.tsx`/`.ts` 文件都被入口直接/间接引用(Phase 6.6) |
|
|
49
|
-
| 1.5.2 | **菜单可滚动** | 检查 `demos` 条目数与菜单容器类型 | 条目 > 5 时菜单容器为 `<ScrollView>`(Phase 6.7) |
|
|
50
|
-
| 1.5.3 | **原有 App.tsx 可访问** | 检查 `index.tsx` 是否包含原有 `App.tsx` 的菜单项 | 原有 demo 入口未丢失(Phase 6.8) |
|
|
51
|
-
| 1.5.4 | **入口链路完整** | 追踪 `index.js` → `src/index.tsx` → `demos` → 各组件 → `./demo/` | 全链路可导入,无断裂(Phase 6.9) |
|
|
52
|
-
|
|
53
|
-
### 1.6 构建前置
|
|
54
|
-
|
|
55
|
-
| # | 检查项 | 方法 | 通过标准 |
|
|
56
|
-
|---|--------|------|---------|
|
|
57
|
-
| 1.6.1 | **build-profile 无越界路径** | 检查 `modules[].srcPath` 是否以 `../` 开头 | 所有路径在 `example/harmony/` 工程内(Phase 5.1) |
|
|
58
|
-
| 1.6.2 | **.har 文件路径有效** | 逐一 `ls -la` 验证 `oh-package.json5` 中的 `file:` 引用 | 所有 `.har` 文件存在于指定路径(Phase 5.2) |
|
|
59
|
-
|
|
60
|
-
### 1.7 版本一致性
|
|
61
|
-
|
|
62
|
-
| # | 检查项 | 方法 | 通过标准 |
|
|
63
|
-
|---|--------|------|---------|
|
|
64
|
-
| 1.5.1 | 库与 rnt 版本一致 | `detect-rnoh-version.cjs` 输出对比 | 版本号相同 |
|
|
65
|
-
| 1.5.2 | example/package.json 版本匹配 | 检查 react-native / react-native-harmony 版本 | 与目标 RNOH 版本一致 |
|
|
66
|
-
|
|
67
|
-
---
|
|
68
|
-
|
|
69
|
-
## 2. 边界情况与处理策略
|
|
70
|
-
|
|
71
|
-
### 2.1 目标 example/ 不存在
|
|
72
|
-
|
|
73
|
-
**场景**:`libPath/example/` 目录不存在。
|
|
74
|
-
|
|
75
|
-
**处理**:
|
|
76
|
-
1. 终止本 SKILL
|
|
77
|
-
2. 输出提示:「目标 RN 工程 `example/` 目录不存在,请先执行 `rn-lib-add-example` 创建模板」
|
|
78
|
-
3. 在报告中记录阻塞原因
|
|
79
|
-
|
|
80
|
-
> 本 SKILL 不创建 example 模板,职责边界清晰。
|
|
81
|
-
|
|
82
|
-
### 2.2 rnt 工程无 rn-tester/examples/
|
|
83
|
-
|
|
84
|
-
**场景**:`{rnt-root}/*/rn-tester/examples/` 路径不存在。
|
|
85
|
-
|
|
86
|
-
**处理**:
|
|
87
|
-
1. 检查 rnt 根路径是否正确
|
|
88
|
-
2. 列出 `{rnt-root}` 下的子目录,提示用户确认 rnt 根路径
|
|
89
|
-
3. 询问是否换一个 rnt 工程根路径
|
|
90
|
-
|
|
91
|
-
### 2.3 demo 与已有 example/src 内容冲突
|
|
92
|
-
|
|
93
|
-
**场景**:迁移时发现 `targetExampleSrc` 已有同名文件。
|
|
94
|
-
|
|
95
|
-
**处理**:
|
|
96
|
-
- **默认(无 --clean)**:**增量添加,不覆盖**。列出冲突文件清单,**保留目标版本**,demo 版本不写入(`rsync --ignore-existing`),在报告中标注冲突项供人工确认是否合并
|
|
97
|
-
- **--clean 启用**:直接清空目标,但**必须**用户明确同意
|
|
98
|
-
|
|
99
|
-
**通用组件保留**:
|
|
100
|
-
- `components/Navigation.tsx` 等 example 模板通用组件,若 demo 仍引用,**保留**
|
|
101
|
-
- 脚本默认 `--clean` 时不清除 `components/Navigation.tsx`,可通过 `--clean-all` 强制全清
|
|
102
|
-
|
|
103
|
-
**冲突文件后续处理**:
|
|
104
|
-
- Agent 在报告中列出冲突文件清单
|
|
105
|
-
- 询问用户是否需要手动合并(demo 版本 vs 目标版本的差异)
|
|
106
|
-
- 若用户不需要合并,保持目标版本即可
|
|
107
|
-
|
|
108
|
-
### 2.4 demo 引用目标库内部路径
|
|
109
|
-
|
|
110
|
-
**场景**:demo 中出现 `import { X } from 'react-native-camera-kit/src/internal'`。
|
|
111
|
-
|
|
112
|
-
**处理**:
|
|
113
|
-
1. 列入报告「待人工确认」清单
|
|
114
|
-
2. 不自动改写(内部路径可能依赖库源码结构)
|
|
115
|
-
3. 提示用户:可能需要调整 demo 改用公开导出,或调整 example 配置
|
|
116
|
-
|
|
117
|
-
### 2.5 demo 含原生代码
|
|
118
|
-
|
|
119
|
-
**场景**:demo 目录含 `.ets` / `.cpp` / `.h` 文件。
|
|
120
|
-
|
|
121
|
-
**处理**:
|
|
122
|
-
1. JS/TS 文件正常迁移到 `example/src/`
|
|
123
|
-
2. 原生文件**不迁移**到 `example/src/`(应放到 `example/harmony/` 下,由 `rn-lib-add-example` 壳层适配处理)
|
|
124
|
-
3. 在报告中标注:「demo 含原生代码 <文件列表>,需由 `rn-lib-add-example` 处理壳层适配」
|
|
125
|
-
|
|
126
|
-
### 2.6 rnt 工程路径跨盘/网络挂载
|
|
127
|
-
|
|
128
|
-
**场景**:rnt 工程在 NFS / SMB / iCloud 等网络挂载盘上,`rsync` / `find` 较慢。
|
|
129
|
-
|
|
130
|
-
**处理**:
|
|
131
|
-
1. 检测路径是否为网络挂载(`mount | grep <rntPath>`)
|
|
132
|
-
2. 若是,提示用户:「rnt 工程在网络挂载盘上,扫描/迁移可能较慢,建议本地拷贝后执行」
|
|
133
|
-
3. 不强制终止,由用户决定
|
|
134
|
-
|
|
135
|
-
### 2.7 候选名匹配到多个不同库
|
|
136
|
-
|
|
137
|
-
**场景**:`searchNames` 中的短名匹配到多个不同库的 demo(如 `react-native-svg` 匹配 `react-native-svg-uri`、`react-native-svg-transformer`)。
|
|
138
|
-
|
|
139
|
-
**处理**:
|
|
140
|
-
1. `find-rnt-demo.sh` 退出码 2(多个命中)
|
|
141
|
-
2. 列出所有命中路径与对应的库候选名
|
|
142
|
-
3. 自动选择第一个命中项,在报告中标注全部命中路径
|
|
143
|
-
4. 用户可通过 `--demo-path` 参数指定其他 demo
|
|
144
|
-
|
|
145
|
-
### 2.8 demo 入口文件缺失
|
|
146
|
-
|
|
147
|
-
**场景**:demo 目录无 `App.tsx` 或 `index.tsx`。
|
|
148
|
-
|
|
149
|
-
**处理**:
|
|
150
|
-
1. 检查是否有其他入口文件(`Main.tsx`、`Demo.tsx`、`index.js`)
|
|
151
|
-
2. 若有,在报告中标注实际入口文件
|
|
152
|
-
3. 若无任何入口文件,列入「待人工确认」,提示用户检查 demo 完整性
|
|
153
|
-
|
|
154
|
-
### 2.9 demo 引用 rnt 工程特有的全局变量/组件
|
|
155
|
-
|
|
156
|
-
**场景**:demo 中引用了 rnt 工程全局注入的组件(如 `__rntTesterGlobals`、特殊的 `Navigation`)。
|
|
157
|
-
|
|
158
|
-
**处理**:
|
|
159
|
-
1. 通过 `analyze-demo-deps.cjs` 的 `libReferences` 分析识别非标准引用
|
|
160
|
-
2. 列入报告「待人工确认」
|
|
161
|
-
3. 提示用户:可能需要移除或替换为 example 工程的等价物
|
|
162
|
-
|
|
163
|
-
### 2.10 大量 demo 文件导致迁移耗时
|
|
164
|
-
|
|
165
|
-
**场景**:demo 文件数 > 100,`rsync` 耗时较长。
|
|
166
|
-
|
|
167
|
-
**处理**:
|
|
168
|
-
1. 报告文件数与预估耗时
|
|
169
|
-
2. 正常执行(`rsync` 通常足够快,秒级完成)
|
|
170
|
-
3. 若超过 30 秒,检查是否有意外的大文件或排除项失效
|
|
171
|
-
|
|
172
|
-
### 2.11 demo 引用 rnt 特有外部依赖(如 @rnoh/testerino)
|
|
173
|
-
|
|
174
|
-
**场景**:demo 引用了 `@rnoh/testerino` 等 rnt 工程特有的包,但 `example/package.json` 未声明。
|
|
175
|
-
|
|
176
|
-
**影响**:所有使用该依赖的组件(如 `Tester`、`TestCase`、`TestSuite`)运行时崩溃,白屏。
|
|
177
|
-
|
|
178
|
-
**处理**:
|
|
179
|
-
1. Phase 4.1 检测到缺失依赖后,从 rnt 工程的 `package.json` 中提取版本与引用方式
|
|
180
|
-
2. 将 rnt 工程中的 tgz 文件复制到 example 目录
|
|
181
|
-
3. 在报告依赖增量清单中给出建议写入值(如 `"@rnoh/testerino": "file:./rnoh-testerino-0.0.12.tgz"`)
|
|
182
|
-
4. 由 `rn-lib-add-example` 或 Agent 写入 `example/package.json`
|
|
183
|
-
|
|
184
|
-
### 2.12 build-profile.json5 模块路径越界
|
|
185
|
-
|
|
186
|
-
**场景**:`build-profile.json5` 中 `modules[].srcPath` 为 `../../harmony/safe_area` 等越界路径。
|
|
187
|
-
|
|
188
|
-
**影响**:hvigor 报错 `Path escapes project root`,编译失败。
|
|
189
|
-
|
|
190
|
-
**处理**:
|
|
191
|
-
1. Phase 5.1 检测到越界路径
|
|
192
|
-
2. 物理复制模块目录到 `example/harmony/` 下
|
|
193
|
-
3. 修改 `srcPath` 为工程内路径(如 `./safe_area`)
|
|
194
|
-
4. 同步修正被复制模块的 `oh-package.json5` 中的 `.har` 路径
|
|
195
|
-
5. ⚠️ 符号链接不可行(hvigor 不跟随 symlink)
|
|
196
|
-
|
|
197
|
-
### 2.13 oh-package.json5 中 .har 路径错误
|
|
198
|
-
|
|
199
|
-
**场景**:模块的 `oh-package.json5` 中 `file:` 引用的 `.har` 路径多/少一层子目录。
|
|
200
|
-
|
|
201
|
-
**影响**:`ohpm install` 静默跳过该依赖,编译时报 `Cannot find module`。
|
|
202
|
-
|
|
203
|
-
**处理**:
|
|
204
|
-
1. Phase 5.2 逐一验证 `.har` 文件存在性
|
|
205
|
-
2. 修正 `oh-package.json5` 中的路径,使其指向实际 `.har` 文件位置
|
|
206
|
-
|
|
207
|
-
### 2.14 迁移的独立 demo 文件未被入口引用
|
|
208
|
-
|
|
209
|
-
**场景**:`demo03.tsx`、`demo05.tsx` 等文件已迁移到 `example/src/`,但未被 `index.tsx` 的 `demos` 数组引用。
|
|
210
|
-
|
|
211
|
-
**影响**:用户无法通过菜单导航访问这些 demo,文件虽存在但运行时不加载。
|
|
212
|
-
|
|
213
|
-
**处理**:
|
|
214
|
-
1. Phase 6.6 检测孤立文件
|
|
215
|
-
2. 将组件加入 `demos` 数组,确保用户可导航到
|
|
216
|
-
|
|
217
|
-
### 2.15 菜单条目过多无法滚动
|
|
218
|
-
|
|
219
|
-
**场景**:`demos` 数组条目 > 5,菜单容器为 `<View>`(不支持滚动)。
|
|
220
|
-
|
|
221
|
-
**影响**:底部 demo 条目不可见、不可点击,用户无法访问。
|
|
222
|
-
|
|
223
|
-
**处理**:
|
|
224
|
-
1. Phase 6.7 检测条目数与容器类型
|
|
225
|
-
2. 将 `<View>` 改为 `<ScrollView>`
|
|
226
|
-
|
|
227
|
-
### 2.16 替换入口丢失原有 App.tsx demo
|
|
228
|
-
|
|
229
|
-
**场景**:`index.js` 从 `./src/App` 改为 `./src/index` 后,原有 `App.tsx` 的 demo 不可访问。
|
|
230
|
-
|
|
231
|
-
**影响**:原有 demo(如 SafeAreaView、Hooks、Listener 等)完全丢失。
|
|
232
|
-
|
|
233
|
-
**处理**:
|
|
234
|
-
1. Phase 6.8 检查原有 `App.tsx` 是否仍可访问
|
|
235
|
-
2. 将原有 `App.tsx` 作为菜单项接入 `index.tsx` 的 `demos` 数组
|
|
236
|
-
|
|
237
|
-
---
|
|
238
|
-
|
|
239
|
-
## 3. 验证失败处理
|
|
240
|
-
|
|
241
|
-
| 失败项 | 处理 |
|
|
242
|
-
|--------|------|
|
|
243
|
-
| 文件完整性失败 | 重新执行 `port-demo.sh`,检查排除项配置(冲突文件保留目标版本属正常,不计入失败) |
|
|
244
|
-
| 路径错误 | Agent 用 `Edit` 工具逐个修正(仅本次新增文件) |
|
|
245
|
-
| 引用不一致 | 在报告中标注,由 `rn-lib-add-example` 配置 alias 时统一 |
|
|
246
|
-
| 依赖未列出 | 重新运行 `analyze-demo-deps.cjs`,检查 demo 新增的 import |
|
|
247
|
-
| displayName 冲突 | 询问用户保留哪个 |
|
|
248
|
-
| 冲突文件需合并 | 列出 demo 版本与目标版本差异,由用户决策是否手动合并 |
|
|
249
|
-
|
|
250
|
-
---
|
|
251
|
-
|
|
252
|
-
## 4. 报告必含字段
|
|
253
|
-
|
|
254
|
-
迁移报告**必须**包含以下字段,缺失则视为迁移未完成:
|
|
255
|
-
|
|
256
|
-
| 字段 | 说明 |
|
|
257
|
-
|------|------|
|
|
258
|
-
| demo 来源路径 | rnt 工程路径 + demo 子目录 |
|
|
259
|
-
| 命中候选名 | `searchNames` 中实际匹配到的名称 |
|
|
260
|
-
| 迁移文件清单 | 相对路径列表 + 文件总数(区分「本次新增」与「冲突保留」) |
|
|
261
|
-
| 冲突文件清单 | demo 与目标同名文件列表,标注「目标版本已保留,demo 版本未写入」 |
|
|
262
|
-
| 依赖增量清单 | 分类列表(目标库 / RNOH / RN 通用 / 待确认);**标注 example/package.json 中缺失的依赖及建议写入值** |
|
|
263
|
-
| 路径修正记录 | 修正的文件 + 改动内容(仅本次新增文件) |
|
|
264
|
-
| 入口文件信息 | App.tsx / index.tsx 路径 + displayName |
|
|
265
|
-
| **构建前置检查结果** | build-profile 路径越界检查、.har 路径验证、外部依赖缺失清单、入口链路验证结果 |
|
|
266
|
-
| **Demo 可访问性验证** | 孤立文件检测、菜单 ScrollView 适配、原有 App.tsx 保留、入口链路端到端验证 |
|
|
267
|
-
| 待人工确认项 | 业务无关依赖、冲突文件合并、入口文件接入、原生代码、特殊引用 |
|
|
268
|
-
| 验证检查结果 | 1.1-1.6 各项通过/失败状态 |
|
|
269
|
-
| 后续步骤建议 | 引导执行 `rn-lib-add-example` 完成壳层适配;执行 `npm i` → `ohpm install` → `npm run dev` → `devecocli build` 编译验证 |
|
|
1
|
+
# 迁移验证与边界情况
|
|
2
|
+
|
|
3
|
+
> 本文档列出 demo 迁移的验证检查清单与常见边界情况的处理策略。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. 迁移验证检查清单
|
|
8
|
+
|
|
9
|
+
迁移完成后,**逐项**确认以下检查通过。未通过项列入报告「待人工确认」。
|
|
10
|
+
|
|
11
|
+
### 1.1 文件完整性
|
|
12
|
+
|
|
13
|
+
| # | 检查项 | 命令 | 通过标准 |
|
|
14
|
+
|---|--------|------|---------|
|
|
15
|
+
| 1.1.1 | demo 新增文件全部迁移 | `diff <(cd <demoPath> && find . -type f -not -path './node_modules/*' -not -path './build/*' | sort) <(cd <targetExampleSrc> && find . -type f -not -path './node_modules/*' -not -path './build/*' | sort)` | **本次新增文件**全部到位(冲突文件保留目标版本,不计入缺失) |
|
|
16
|
+
| 1.1.2 | 入口文件存在 | `find <targetExampleSrc> -name "App.tsx" -o -name "index.tsx"` | 两个文件都存在(可在嵌套子目录中) |
|
|
17
|
+
| 1.1.3 | testerino 注册存在 | `find <targetExampleSrc> -path "*/Test/index.tsx" -o -path "*/tests/index.tsx"` | 退出码 0(路径可为嵌套) |
|
|
18
|
+
| 1.1.4 | 无排除项残留 | `ls <targetExampleSrc>/node_modules 2>/dev/null` | 无输出(应被排除) |
|
|
19
|
+
| 1.1.5 | index.tsx 引用 demo 入口 | `grep -r "testCase/App\|demo/App\|./App" <targetExampleSrc>/index.tsx` | index.tsx 已接入 demo 入口(若为已有文件未接入,标注待人工确认) |
|
|
20
|
+
|
|
21
|
+
### 1.2 路径正确性
|
|
22
|
+
|
|
23
|
+
| # | 检查项 | 命令 | 通过标准 |
|
|
24
|
+
|---|--------|------|---------|
|
|
25
|
+
| 1.2.1 | 子目录下无错误相对路径 | `grep -rn "from '\./" <targetExampleSrc>/testCase/Test/ <targetExampleSrc>/tests/` | 无同级引用应为 `../` 的情况 |
|
|
26
|
+
| 1.2.2 | 所有 import 路径可解析 | 静态分析(Agent 读取每个 .tsx 文件) | 无 `Cannot find module` 风险 |
|
|
27
|
+
|
|
28
|
+
### 1.3 引用一致性
|
|
29
|
+
|
|
30
|
+
| # | 检查项 | 命令 | 通过标准 |
|
|
31
|
+
|---|--------|------|---------|
|
|
32
|
+
| 1.3.1 | 目标库引用方式一致 | `grep -rn "import.*from.*'<alias>\|<packageName>'" <targetExampleSrc>/` | 引用方式统一(全部用 alias 或全部用 packageName),仅检查本次新增文件 |
|
|
33
|
+
| 1.3.2 | displayName 存在 | `grep -rn "displayName" <targetExampleSrc>/` | 存在且与 demo 名称一致 |
|
|
34
|
+
| 1.3.3 | 无硬编码其他库标题 | `grep -rn "RN.*Tester" <targetExampleSrc>/` | 本次新增文件无遗留的其他库名称(Phase 6.5 已修正);已有文件中的硬编码标题标注为待人工处理 |
|
|
35
|
+
|
|
36
|
+
### 1.4 依赖完整性
|
|
37
|
+
|
|
38
|
+
| # | 检查项 | 方法 | 通过标准 |
|
|
39
|
+
|---|--------|------|---------|
|
|
40
|
+
| 1.4.1 | 所有外部依赖已列出 | 对比 `analyze-demo-deps.cjs` 输出与报告「依赖增量」章节 | 全部列出 |
|
|
41
|
+
| 1.4.2 | 无未识别的 require | `grep -rn "require(" <targetExampleSrc>/` | 所有 require 参数是字符串字面量且已分类 |
|
|
42
|
+
| 1.4.3 | **外部依赖已在 example/package.json 声明** | 对比 `externalDeps` 与 `example/package.json` 的 dependencies/devDependencies | 所有外部依赖已声明;未声明的在报告中标注为高优先级缺失项(Phase 4.1) |
|
|
43
|
+
|
|
44
|
+
### 1.5 Demo 可访问性
|
|
45
|
+
|
|
46
|
+
| # | 检查项 | 方法 | 通过标准 |
|
|
47
|
+
|---|--------|------|---------|
|
|
48
|
+
| 1.5.1 | **无孤立文件** | 对比迁移文件列表与 `index.tsx` 的 `demos` 数组 | 所有有 `export` 的 `.tsx`/`.ts` 文件都被入口直接/间接引用(Phase 6.6) |
|
|
49
|
+
| 1.5.2 | **菜单可滚动** | 检查 `demos` 条目数与菜单容器类型 | 条目 > 5 时菜单容器为 `<ScrollView>`(Phase 6.7) |
|
|
50
|
+
| 1.5.3 | **原有 App.tsx 可访问** | 检查 `index.tsx` 是否包含原有 `App.tsx` 的菜单项 | 原有 demo 入口未丢失(Phase 6.8) |
|
|
51
|
+
| 1.5.4 | **入口链路完整** | 追踪 `index.js` → `src/index.tsx` → `demos` → 各组件 → `./demo/` | 全链路可导入,无断裂(Phase 6.9) |
|
|
52
|
+
|
|
53
|
+
### 1.6 构建前置
|
|
54
|
+
|
|
55
|
+
| # | 检查项 | 方法 | 通过标准 |
|
|
56
|
+
|---|--------|------|---------|
|
|
57
|
+
| 1.6.1 | **build-profile 无越界路径** | 检查 `modules[].srcPath` 是否以 `../` 开头 | 所有路径在 `example/harmony/` 工程内(Phase 5.1) |
|
|
58
|
+
| 1.6.2 | **.har 文件路径有效** | 逐一 `ls -la` 验证 `oh-package.json5` 中的 `file:` 引用 | 所有 `.har` 文件存在于指定路径(Phase 5.2) |
|
|
59
|
+
|
|
60
|
+
### 1.7 版本一致性
|
|
61
|
+
|
|
62
|
+
| # | 检查项 | 方法 | 通过标准 |
|
|
63
|
+
|---|--------|------|---------|
|
|
64
|
+
| 1.5.1 | 库与 rnt 版本一致 | `detect-rnoh-version.cjs` 输出对比 | 版本号相同 |
|
|
65
|
+
| 1.5.2 | example/package.json 版本匹配 | 检查 react-native / react-native-harmony 版本 | 与目标 RNOH 版本一致 |
|
|
66
|
+
|
|
67
|
+
---
|
|
68
|
+
|
|
69
|
+
## 2. 边界情况与处理策略
|
|
70
|
+
|
|
71
|
+
### 2.1 目标 example/ 不存在
|
|
72
|
+
|
|
73
|
+
**场景**:`libPath/example/` 目录不存在。
|
|
74
|
+
|
|
75
|
+
**处理**:
|
|
76
|
+
1. 终止本 SKILL
|
|
77
|
+
2. 输出提示:「目标 RN 工程 `example/` 目录不存在,请先执行 `rn-lib-add-example` 创建模板」
|
|
78
|
+
3. 在报告中记录阻塞原因
|
|
79
|
+
|
|
80
|
+
> 本 SKILL 不创建 example 模板,职责边界清晰。
|
|
81
|
+
|
|
82
|
+
### 2.2 rnt 工程无 rn-tester/examples/
|
|
83
|
+
|
|
84
|
+
**场景**:`{rnt-root}/*/rn-tester/examples/` 路径不存在。
|
|
85
|
+
|
|
86
|
+
**处理**:
|
|
87
|
+
1. 检查 rnt 根路径是否正确
|
|
88
|
+
2. 列出 `{rnt-root}` 下的子目录,提示用户确认 rnt 根路径
|
|
89
|
+
3. 询问是否换一个 rnt 工程根路径
|
|
90
|
+
|
|
91
|
+
### 2.3 demo 与已有 example/src 内容冲突
|
|
92
|
+
|
|
93
|
+
**场景**:迁移时发现 `targetExampleSrc` 已有同名文件。
|
|
94
|
+
|
|
95
|
+
**处理**:
|
|
96
|
+
- **默认(无 --clean)**:**增量添加,不覆盖**。列出冲突文件清单,**保留目标版本**,demo 版本不写入(`rsync --ignore-existing`),在报告中标注冲突项供人工确认是否合并
|
|
97
|
+
- **--clean 启用**:直接清空目标,但**必须**用户明确同意
|
|
98
|
+
|
|
99
|
+
**通用组件保留**:
|
|
100
|
+
- `components/Navigation.tsx` 等 example 模板通用组件,若 demo 仍引用,**保留**
|
|
101
|
+
- 脚本默认 `--clean` 时不清除 `components/Navigation.tsx`,可通过 `--clean-all` 强制全清
|
|
102
|
+
|
|
103
|
+
**冲突文件后续处理**:
|
|
104
|
+
- Agent 在报告中列出冲突文件清单
|
|
105
|
+
- 询问用户是否需要手动合并(demo 版本 vs 目标版本的差异)
|
|
106
|
+
- 若用户不需要合并,保持目标版本即可
|
|
107
|
+
|
|
108
|
+
### 2.4 demo 引用目标库内部路径
|
|
109
|
+
|
|
110
|
+
**场景**:demo 中出现 `import { X } from 'react-native-camera-kit/src/internal'`。
|
|
111
|
+
|
|
112
|
+
**处理**:
|
|
113
|
+
1. 列入报告「待人工确认」清单
|
|
114
|
+
2. 不自动改写(内部路径可能依赖库源码结构)
|
|
115
|
+
3. 提示用户:可能需要调整 demo 改用公开导出,或调整 example 配置
|
|
116
|
+
|
|
117
|
+
### 2.5 demo 含原生代码
|
|
118
|
+
|
|
119
|
+
**场景**:demo 目录含 `.ets` / `.cpp` / `.h` 文件。
|
|
120
|
+
|
|
121
|
+
**处理**:
|
|
122
|
+
1. JS/TS 文件正常迁移到 `example/src/`
|
|
123
|
+
2. 原生文件**不迁移**到 `example/src/`(应放到 `example/harmony/` 下,由 `rn-lib-add-example` 壳层适配处理)
|
|
124
|
+
3. 在报告中标注:「demo 含原生代码 <文件列表>,需由 `rn-lib-add-example` 处理壳层适配」
|
|
125
|
+
|
|
126
|
+
### 2.6 rnt 工程路径跨盘/网络挂载
|
|
127
|
+
|
|
128
|
+
**场景**:rnt 工程在 NFS / SMB / iCloud 等网络挂载盘上,`rsync` / `find` 较慢。
|
|
129
|
+
|
|
130
|
+
**处理**:
|
|
131
|
+
1. 检测路径是否为网络挂载(`mount | grep <rntPath>`)
|
|
132
|
+
2. 若是,提示用户:「rnt 工程在网络挂载盘上,扫描/迁移可能较慢,建议本地拷贝后执行」
|
|
133
|
+
3. 不强制终止,由用户决定
|
|
134
|
+
|
|
135
|
+
### 2.7 候选名匹配到多个不同库
|
|
136
|
+
|
|
137
|
+
**场景**:`searchNames` 中的短名匹配到多个不同库的 demo(如 `react-native-svg` 匹配 `react-native-svg-uri`、`react-native-svg-transformer`)。
|
|
138
|
+
|
|
139
|
+
**处理**:
|
|
140
|
+
1. `find-rnt-demo.sh` 退出码 2(多个命中)
|
|
141
|
+
2. 列出所有命中路径与对应的库候选名
|
|
142
|
+
3. 自动选择第一个命中项,在报告中标注全部命中路径
|
|
143
|
+
4. 用户可通过 `--demo-path` 参数指定其他 demo
|
|
144
|
+
|
|
145
|
+
### 2.8 demo 入口文件缺失
|
|
146
|
+
|
|
147
|
+
**场景**:demo 目录无 `App.tsx` 或 `index.tsx`。
|
|
148
|
+
|
|
149
|
+
**处理**:
|
|
150
|
+
1. 检查是否有其他入口文件(`Main.tsx`、`Demo.tsx`、`index.js`)
|
|
151
|
+
2. 若有,在报告中标注实际入口文件
|
|
152
|
+
3. 若无任何入口文件,列入「待人工确认」,提示用户检查 demo 完整性
|
|
153
|
+
|
|
154
|
+
### 2.9 demo 引用 rnt 工程特有的全局变量/组件
|
|
155
|
+
|
|
156
|
+
**场景**:demo 中引用了 rnt 工程全局注入的组件(如 `__rntTesterGlobals`、特殊的 `Navigation`)。
|
|
157
|
+
|
|
158
|
+
**处理**:
|
|
159
|
+
1. 通过 `analyze-demo-deps.cjs` 的 `libReferences` 分析识别非标准引用
|
|
160
|
+
2. 列入报告「待人工确认」
|
|
161
|
+
3. 提示用户:可能需要移除或替换为 example 工程的等价物
|
|
162
|
+
|
|
163
|
+
### 2.10 大量 demo 文件导致迁移耗时
|
|
164
|
+
|
|
165
|
+
**场景**:demo 文件数 > 100,`rsync` 耗时较长。
|
|
166
|
+
|
|
167
|
+
**处理**:
|
|
168
|
+
1. 报告文件数与预估耗时
|
|
169
|
+
2. 正常执行(`rsync` 通常足够快,秒级完成)
|
|
170
|
+
3. 若超过 30 秒,检查是否有意外的大文件或排除项失效
|
|
171
|
+
|
|
172
|
+
### 2.11 demo 引用 rnt 特有外部依赖(如 @rnoh/testerino)
|
|
173
|
+
|
|
174
|
+
**场景**:demo 引用了 `@rnoh/testerino` 等 rnt 工程特有的包,但 `example/package.json` 未声明。
|
|
175
|
+
|
|
176
|
+
**影响**:所有使用该依赖的组件(如 `Tester`、`TestCase`、`TestSuite`)运行时崩溃,白屏。
|
|
177
|
+
|
|
178
|
+
**处理**:
|
|
179
|
+
1. Phase 4.1 检测到缺失依赖后,从 rnt 工程的 `package.json` 中提取版本与引用方式
|
|
180
|
+
2. 将 rnt 工程中的 tgz 文件复制到 example 目录
|
|
181
|
+
3. 在报告依赖增量清单中给出建议写入值(如 `"@rnoh/testerino": "file:./rnoh-testerino-0.0.12.tgz"`)
|
|
182
|
+
4. 由 `rn-lib-add-example` 或 Agent 写入 `example/package.json`
|
|
183
|
+
|
|
184
|
+
### 2.12 build-profile.json5 模块路径越界
|
|
185
|
+
|
|
186
|
+
**场景**:`build-profile.json5` 中 `modules[].srcPath` 为 `../../harmony/safe_area` 等越界路径。
|
|
187
|
+
|
|
188
|
+
**影响**:hvigor 报错 `Path escapes project root`,编译失败。
|
|
189
|
+
|
|
190
|
+
**处理**:
|
|
191
|
+
1. Phase 5.1 检测到越界路径
|
|
192
|
+
2. 物理复制模块目录到 `example/harmony/` 下
|
|
193
|
+
3. 修改 `srcPath` 为工程内路径(如 `./safe_area`)
|
|
194
|
+
4. 同步修正被复制模块的 `oh-package.json5` 中的 `.har` 路径
|
|
195
|
+
5. ⚠️ 符号链接不可行(hvigor 不跟随 symlink)
|
|
196
|
+
|
|
197
|
+
### 2.13 oh-package.json5 中 .har 路径错误
|
|
198
|
+
|
|
199
|
+
**场景**:模块的 `oh-package.json5` 中 `file:` 引用的 `.har` 路径多/少一层子目录。
|
|
200
|
+
|
|
201
|
+
**影响**:`ohpm install` 静默跳过该依赖,编译时报 `Cannot find module`。
|
|
202
|
+
|
|
203
|
+
**处理**:
|
|
204
|
+
1. Phase 5.2 逐一验证 `.har` 文件存在性
|
|
205
|
+
2. 修正 `oh-package.json5` 中的路径,使其指向实际 `.har` 文件位置
|
|
206
|
+
|
|
207
|
+
### 2.14 迁移的独立 demo 文件未被入口引用
|
|
208
|
+
|
|
209
|
+
**场景**:`demo03.tsx`、`demo05.tsx` 等文件已迁移到 `example/src/`,但未被 `index.tsx` 的 `demos` 数组引用。
|
|
210
|
+
|
|
211
|
+
**影响**:用户无法通过菜单导航访问这些 demo,文件虽存在但运行时不加载。
|
|
212
|
+
|
|
213
|
+
**处理**:
|
|
214
|
+
1. Phase 6.6 检测孤立文件
|
|
215
|
+
2. 将组件加入 `demos` 数组,确保用户可导航到
|
|
216
|
+
|
|
217
|
+
### 2.15 菜单条目过多无法滚动
|
|
218
|
+
|
|
219
|
+
**场景**:`demos` 数组条目 > 5,菜单容器为 `<View>`(不支持滚动)。
|
|
220
|
+
|
|
221
|
+
**影响**:底部 demo 条目不可见、不可点击,用户无法访问。
|
|
222
|
+
|
|
223
|
+
**处理**:
|
|
224
|
+
1. Phase 6.7 检测条目数与容器类型
|
|
225
|
+
2. 将 `<View>` 改为 `<ScrollView>`
|
|
226
|
+
|
|
227
|
+
### 2.16 替换入口丢失原有 App.tsx demo
|
|
228
|
+
|
|
229
|
+
**场景**:`index.js` 从 `./src/App` 改为 `./src/index` 后,原有 `App.tsx` 的 demo 不可访问。
|
|
230
|
+
|
|
231
|
+
**影响**:原有 demo(如 SafeAreaView、Hooks、Listener 等)完全丢失。
|
|
232
|
+
|
|
233
|
+
**处理**:
|
|
234
|
+
1. Phase 6.8 检查原有 `App.tsx` 是否仍可访问
|
|
235
|
+
2. 将原有 `App.tsx` 作为菜单项接入 `index.tsx` 的 `demos` 数组
|
|
236
|
+
|
|
237
|
+
---
|
|
238
|
+
|
|
239
|
+
## 3. 验证失败处理
|
|
240
|
+
|
|
241
|
+
| 失败项 | 处理 |
|
|
242
|
+
|--------|------|
|
|
243
|
+
| 文件完整性失败 | 重新执行 `port-demo.sh`,检查排除项配置(冲突文件保留目标版本属正常,不计入失败) |
|
|
244
|
+
| 路径错误 | Agent 用 `Edit` 工具逐个修正(仅本次新增文件) |
|
|
245
|
+
| 引用不一致 | 在报告中标注,由 `rn-lib-add-example` 配置 alias 时统一 |
|
|
246
|
+
| 依赖未列出 | 重新运行 `analyze-demo-deps.cjs`,检查 demo 新增的 import |
|
|
247
|
+
| displayName 冲突 | 询问用户保留哪个 |
|
|
248
|
+
| 冲突文件需合并 | 列出 demo 版本与目标版本差异,由用户决策是否手动合并 |
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 4. 报告必含字段
|
|
253
|
+
|
|
254
|
+
迁移报告**必须**包含以下字段,缺失则视为迁移未完成:
|
|
255
|
+
|
|
256
|
+
| 字段 | 说明 |
|
|
257
|
+
|------|------|
|
|
258
|
+
| demo 来源路径 | rnt 工程路径 + demo 子目录 |
|
|
259
|
+
| 命中候选名 | `searchNames` 中实际匹配到的名称 |
|
|
260
|
+
| 迁移文件清单 | 相对路径列表 + 文件总数(区分「本次新增」与「冲突保留」) |
|
|
261
|
+
| 冲突文件清单 | demo 与目标同名文件列表,标注「目标版本已保留,demo 版本未写入」 |
|
|
262
|
+
| 依赖增量清单 | 分类列表(目标库 / RNOH / RN 通用 / 待确认);**标注 example/package.json 中缺失的依赖及建议写入值** |
|
|
263
|
+
| 路径修正记录 | 修正的文件 + 改动内容(仅本次新增文件) |
|
|
264
|
+
| 入口文件信息 | App.tsx / index.tsx 路径 + displayName |
|
|
265
|
+
| **构建前置检查结果** | build-profile 路径越界检查、.har 路径验证、外部依赖缺失清单、入口链路验证结果 |
|
|
266
|
+
| **Demo 可访问性验证** | 孤立文件检测、菜单 ScrollView 适配、原有 App.tsx 保留、入口链路端到端验证 |
|
|
267
|
+
| 待人工确认项 | 业务无关依赖、冲突文件合并、入口文件接入、原生代码、特殊引用 |
|
|
268
|
+
| 验证检查结果 | 1.1-1.6 各项通过/失败状态 |
|
|
269
|
+
| 后续步骤建议 | 引导执行 `rn-lib-add-example` 完成壳层适配;执行 `npm i` → `ohpm install` → `npm run dev` → `devecocli build` 编译验证 |
|