@ohos-cpf/3rdloop 0.0.1
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 +425 -0
- package/bin/3rdloop.mjs +48 -0
- package/lib/cli.js +741 -0
- package/lib/config.js +318 -0
- package/lib/doctor.js +114 -0
- package/lib/exit-codes.js +31 -0
- package/lib/opencode.js +156 -0
- package/lib/orch.js +427 -0
- package/lib/queries.js +264 -0
- package/lib/runner.js +979 -0
- package/lib/step.js +326 -0
- package/lib/ui.js +223 -0
- package/lib/workflow.js +291 -0
- package/lib/workflows.js +132 -0
- package/package.json +50 -0
- package/vendor/Server/Agent/SkillSelector/README.md +344 -0
- package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -0
- package/vendor/Server/Agent/SkillSelector/index.js +14 -0
- package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -0
- package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -0
- package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -0
- package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -0
- package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -0
- package/vendor/Server/Agent/SkillSelector/types.js +63 -0
- package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +60 -0
- package/vendor/Server/Brain/AnalysisStrategies.js +422 -0
- package/vendor/Server/Brain/Brain.js +686 -0
- package/vendor/Server/Brain/DecompositionStrategies.js +621 -0
- package/vendor/Server/Brain/PlanPersistence.js +196 -0
- package/vendor/Server/Brain/SkillExecutor.js +251 -0
- package/vendor/Server/Brain/index.js +11 -0
- package/vendor/Server/CLI/cli.js +243 -0
- package/vendor/Server/CLI/opencode/index.js +804 -0
- package/vendor/Server/CLI/opencode.js +5 -0
- package/vendor/Server/DbUse/MessageArchive.js +61 -0
- package/vendor/Server/DbUse/StorageManager.js +107 -0
- package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -0
- package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -0
- package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -0
- package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -0
- package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -0
- package/vendor/Server/DbUse/index.js +160 -0
- package/vendor/Server/DbUse/stores/SessionStore.js +279 -0
- package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -0
- package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -0
- package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -0
- package/vendor/Server/FlexRunner/FlexRunner.js +1759 -0
- package/vendor/Server/FlexRunner/index.js +12 -0
- package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -0
- package/vendor/Server/Knowledge/KnowledgeManager.js +341 -0
- package/vendor/Server/Knowledge/index.js +33 -0
- package/vendor/Server/LoopEngine/LoopEngine.js +1133 -0
- package/vendor/Server/LoopEngine/index.js +11 -0
- package/vendor/Server/Orchestrator/Orchestrator.js +1425 -0
- package/vendor/Server/Orchestrator/StepNode.js +312 -0
- package/vendor/Server/Orchestrator/index.js +13 -0
- package/vendor/Server/Routes/controllers/BrainController.js +241 -0
- package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -0
- package/vendor/Server/Routes/controllers/HealthController.js +44 -0
- package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -0
- package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -0
- package/vendor/Server/Routes/controllers/OrchestratorController.js +911 -0
- package/vendor/Server/Routes/controllers/StatsController.js +57 -0
- package/vendor/Server/Routes/controllers/StreamController.js +67 -0
- package/vendor/Server/Routes/library/logger.js +179 -0
- package/vendor/Server/Routes/library/zipArchive.js +172 -0
- package/vendor/Server/Routes/router/Router.js +204 -0
- package/vendor/Server/Routes/routes/brain.js +47 -0
- package/vendor/Server/Routes/routes/flexrunner.js +72 -0
- package/vendor/Server/Routes/routes/health.js +28 -0
- package/vendor/Server/Routes/routes/index.js +57 -0
- package/vendor/Server/Routes/routes/knowledge.js +55 -0
- package/vendor/Server/Routes/routes/loopengine.js +58 -0
- package/vendor/Server/Routes/routes/orchestrator.js +61 -0
- package/vendor/Server/Routes/routes/registry.js +98 -0
- package/vendor/Server/Routes/routes/stats.js +23 -0
- package/vendor/Server/Routes/routes/stream.js +30 -0
- package/vendor/Server/Routes/server.js +202 -0
- package/vendor/Server/Routes/sse/SseHub.js +308 -0
- package/vendor/Server/Skills/acceptance-check/SKILL.md +174 -0
- package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -0
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -0
- package/vendor/Server/Skills/arkts-code-check/SKILL.md +314 -0
- package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +160 -0
- package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +29 -0
- package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +222 -0
- package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +220 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +329 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +99 -0
- package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -0
- package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -0
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -0
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +234 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +103 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +108 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -0
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -0
- package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -0
- package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +392 -0
- package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -0
- package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +313 -0
- package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -0
- package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +166 -0
- package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +309 -0
- package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -0
- package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +361 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +146 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +253 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +115 -0
- package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +263 -0
- package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -0
- package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +519 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +93 -0
- package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -0
- package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +229 -0
- package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +576 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +575 -0
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +491 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +433 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -0
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +789 -0
- package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -0
- package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +312 -0
- package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -0
- package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +134 -0
- package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -0
- package/vendor/Server/Skills/flutter-interface/README.md +75 -0
- package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -0
- package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -0
- package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -0
- package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -0
- package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +518 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +382 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +342 -0
- package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -0
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +519 -0
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +407 -0
- package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +653 -0
- package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +397 -0
- package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +745 -0
- package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +721 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -0
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -0
- package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -0
- package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -0
- package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -0
- package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +301 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +105 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +127 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +208 -0
- package/vendor/Server/Skills/rn-code-check/SKILL.md +321 -0
- package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +235 -0
- package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +189 -0
- package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +247 -0
- package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -0
- package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -0
- package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -0
- package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -0
- package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -0
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -0
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -0
- package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -0
- package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +684 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -0
- package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -0
- package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -0
- package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -0
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -0
- package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +58 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +75 -0
- package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +339 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +83 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +859 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +122 -0
- package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +279 -0
- package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -0
- package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -0
- package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -0
- package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -0
- package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +506 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +280 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +209 -0
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -0
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -0
- package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -0
- package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -0
- package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -0
- package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -0
- package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +498 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -0
- package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -0
- package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -0
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -0
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -0
- package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -0
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -0
- package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +255 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +77 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +174 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -0
- package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +137 -0
- package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -0
- package/vendor/Server/Skills/skill-generator/SKILL.md +365 -0
- package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -0
- package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -0
- package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -0
- package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -0
- package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -0
- package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -0
- package/vendor/Server/Skills/task-analysis/SKILL.md +234 -0
- package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -0
- package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -0
- package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -0
- package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -0
- package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -0
- package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -0
- package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -0
- package/vendor/Server/Skills/task-decomposition/SKILL.md +529 -0
- package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -0
- package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -0
- package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -0
- package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -0
- package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -0
- package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -0
- package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -0
- package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -0
- package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +425 -0
- package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -0
- package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -0
- package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -0
- package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -0
- package/vendor/Server/TestCheck/TestCheck.js +775 -0
- package/vendor/Server/TestCheck/index.js +11 -0
- package/vendor/Server/library/McpToolGuide.js +280 -0
- package/vendor/Server/library/StatsService.js +127 -0
- package/vendor/Server/library/cstTime.js +16 -0
- package/vendor/Server/package.json +17 -0
- package/vendor/VERSION +3 -0
- package/workflows/pr-check.mjs +106 -0
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
# React Native 代码检视清单
|
|
2
|
+
|
|
3
|
+
本文档包含详细的检视检查项,用于 Phase 3 的深度检视阶段。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 一、非兼容变更检查
|
|
8
|
+
|
|
9
|
+
- [ ] 是否删除或重命名了公开 TurboModule 方法
|
|
10
|
+
- [ ] 是否修改了 NAPI 接口函数名称或参数结构(影响 JS 侧调用)
|
|
11
|
+
- [ ] 是否修改了 JS/TS 声明文件中的方法签名或返回类型
|
|
12
|
+
- [ ] 是否修改了 `package.json` 中影响依赖解析的字段
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## 二、C++ CAPI 实现检视(harmony/src/main/cpp/)
|
|
17
|
+
|
|
18
|
+
### 2.1 TurboModule 实现
|
|
19
|
+
|
|
20
|
+
- [ ] TurboModule 是否正确实现了 `getTurboModule()` 工厂函数
|
|
21
|
+
- [ ] NAPI 接口函数签名与 JS 侧声明一致(方法名、参数类型、返回值类型)
|
|
22
|
+
|
|
23
|
+
### 2.2 内存管理
|
|
24
|
+
|
|
25
|
+
- [ ] `napi_create_*` 创建的对象在不需要时正确释放
|
|
26
|
+
- [ ] `napi_ref` 在不需要时调用 `napi_delete_reference`
|
|
27
|
+
- [ ] C++ 对象生命周期正确管理(无悬挂指针)
|
|
28
|
+
- [ ] `malloc`/`new` 有对应 `free`/`delete`,无内存泄漏
|
|
29
|
+
- [ ] TurboModule 实例销毁时释放所有持有的 C++ 资源
|
|
30
|
+
- [ ] `napi_env` 生命周期内创建的对象不在 env 销毁后访问
|
|
31
|
+
- [ ] `ArrayBuffer` 大数据用完后无强引用持有
|
|
32
|
+
|
|
33
|
+
### 2.3 线程安全(重点)
|
|
34
|
+
|
|
35
|
+
> ⚠️ **线程安全问题是 RN Native 模块最常见的严重问题,必须重点检查**
|
|
36
|
+
|
|
37
|
+
- [ ] 子线程中不直接调用 NAPI 函数(必须通过 `napi_threadsafe_function`)
|
|
38
|
+
- [ ] 主 JS 线程与 C++ 线程间共享的数据有锁保护(`std::mutex`)
|
|
39
|
+
- [ ] `napi_threadsafe_function` 创建后在不再使用时调用 `napi_release_threadsafe_function`
|
|
40
|
+
- [ ] 多线程场景中无竞态条件(Race Condition)
|
|
41
|
+
|
|
42
|
+
### 2.4 错误处理
|
|
43
|
+
|
|
44
|
+
- [ ] C++ 异常捕获并转为 NAPI 错误抛出
|
|
45
|
+
- [ ] 每个返回分支均有明确的返回值赋值(无未初始化返回)
|
|
46
|
+
- [ ] 所有 NAPI API 返回值检查(`napi_status` 不为 `napi_ok` 时有处理)
|
|
47
|
+
- [ ] `OH_*` C API 的返回值是否有检查
|
|
48
|
+
|
|
49
|
+
---
|
|
50
|
+
|
|
51
|
+
## 三、ArkTS 胶水层检视(harmony/src/main/ets/)
|
|
52
|
+
|
|
53
|
+
### 3.1 TurboModule 注册
|
|
54
|
+
|
|
55
|
+
- [ ] TurboModule 正确注册(`createTurboModuleManager` 或 `TurboModuleRegistry.get`)
|
|
56
|
+
- [ ] ArkUI Fabric 组件(如有)正确实现了 `RNComponentContext`
|
|
57
|
+
|
|
58
|
+
### 3.2 代码规范
|
|
59
|
+
|
|
60
|
+
- [ ] 日志调用使用 `RNLog` 而非原生 `console.log`
|
|
61
|
+
- [ ] 无 `any` 类型使用(ArkTS 禁止 `as any`、隐式 any)
|
|
62
|
+
- [ ] 无 `prototype` 动态修改
|
|
63
|
+
- [ ] 泛型类型参数明确,避免推导歧义
|
|
64
|
+
|
|
65
|
+
### 3.3 API 兼容性
|
|
66
|
+
|
|
67
|
+
- [ ] 新增 API 使用是否超出 `minAPIVersion`
|
|
68
|
+
- [ ] 是否使用已废弃的 OHOS API(`@deprecated` 标注的接口)
|
|
69
|
+
- [ ] 权限申请是否正确(`requestPermissionsFromUser`)
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## 四、异步处理
|
|
74
|
+
|
|
75
|
+
- [ ] 所有异步 OHOS API 调用均有 `await` 或 `.then()` 处理
|
|
76
|
+
- [ ] `try/catch` 覆盖所有 `await` 调用,catch 块有实质性错误处理(非空 catch)
|
|
77
|
+
- [ ] 未处理的 Promise rejection(`.catch()` 或 `try/catch` 必须存在)
|
|
78
|
+
- [ ] 并行异步操作使用 `Promise.all`,避免不必要的顺序 await
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
## 五、事件监听器管理
|
|
83
|
+
|
|
84
|
+
- [ ] JS 侧注册的事件监听器在模块销毁时取消注册
|
|
85
|
+
- [ ] C++ 层的回调函数在对象销毁时被正确移除
|
|
86
|
+
- [ ] 重复注册同一事件不会造成监听器堆积
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## 六、错误处理
|
|
91
|
+
|
|
92
|
+
- [ ] 错误信息包含错误码和错误描述
|
|
93
|
+
- [ ] `reject()` / `napi_reject_deferred` 调用后函数立即返回
|
|
94
|
+
- [ ] switch-case 中每个 case 末尾有 `break`(避免 fall-through)
|
|
95
|
+
|
|
96
|
+
---
|
|
97
|
+
|
|
98
|
+
## 七、JS/TS 接口层(src/ 目录)
|
|
99
|
+
|
|
100
|
+
- [ ] Native Module 方法类型声明完整(返回 `Promise<T>` 或同步类型明确)
|
|
101
|
+
- [ ] 是否包含鸿蒙平台条件判断 `Platform.OS === 'harmony'`
|
|
102
|
+
- [ ] 公共 API 有完整的 JSDoc 注释
|
|
103
|
+
- [ ] 参数有基本校验(null check、类型检查)
|
|
104
|
+
|
|
105
|
+
---
|
|
106
|
+
|
|
107
|
+
## 八、跨平台一致性对比(harmony ↔ Android/iOS)
|
|
108
|
+
|
|
109
|
+
> ⚠️ **这是 RN 三方库 PR 检视最关键的质量维度之一**。harmony 实现必须与 Android/iOS 原生模块在方法路由、参数类型、返回值格式上保持一致,否则 JS 侧调用同一 Native Module 时在鸿蒙平台上行为异常。
|
|
110
|
+
|
|
111
|
+
### 8.1 TurboModule 方法路由一致性
|
|
112
|
+
|
|
113
|
+
- [ ] harmony 的 TurboModule 方法列表是否与 Android NativeModule 完全对应
|
|
114
|
+
- [ ] 缺失方法(Android 有但 harmony 无)是否标记为功能缺失
|
|
115
|
+
- [ ] 多余方法(harmony 有但 Android 无)是否有合理说明
|
|
116
|
+
|
|
117
|
+
### 8.2 TurboModule 名称一致性
|
|
118
|
+
|
|
119
|
+
- [ ] harmony 注册的 TurboModule 名是否与 Android 注册名一致(JS 侧共用同一模块名)
|
|
120
|
+
- [ ] NativeModule 名是否与 JS 侧 `NativeModules.XxxModule` 引用一致
|
|
121
|
+
|
|
122
|
+
### 8.3 参数类型映射一致性
|
|
123
|
+
|
|
124
|
+
- [ ] 同一 TurboModule 方法,harmony 解析的参数类型是否与 Android 一致(如 `bool` vs `string`)
|
|
125
|
+
- [ ] 复杂对象参数的属性结构是否一致
|
|
126
|
+
- [ ] 可选参数的处理方式是否一致(默认值 vs undefined)
|
|
127
|
+
|
|
128
|
+
### 8.4 返回值格式一致性
|
|
129
|
+
|
|
130
|
+
- [ ] `resolve()` 返回的数据结构是否与 Android `success()` 对齐
|
|
131
|
+
- [ ] 返回值嵌套层级和字段名是否一致
|
|
132
|
+
- [ ] 空值/空数组的返回格式是否一致
|
|
133
|
+
|
|
134
|
+
### 8.5 错误码/错误消息一致性
|
|
135
|
+
|
|
136
|
+
- [ ] `reject()` 的 error code 是否与 Android `error()` 对齐
|
|
137
|
+
- [ ] 错误消息的格式和内容是否一致
|
|
138
|
+
- [ ] 同一错误场景在不同平台的错误码是否相同
|
|
139
|
+
|
|
140
|
+
### 8.6 功能实现完整性
|
|
141
|
+
|
|
142
|
+
- [ ] Android 有实现但 harmony 为 Stub(返回固定值无实际操作)的标记为功能缺失
|
|
143
|
+
- [ ] Android 有实现但 harmony 完全缺失的标记为方法缺失
|
|
144
|
+
- [ ] 已知平台差异(如权限模型不同)是否有注释说明
|
|
145
|
+
|
|
146
|
+
### 8.7 EventEmitter 事件名一致性
|
|
147
|
+
|
|
148
|
+
- [ ] harmony 发送的事件名是否与 Android 发送的事件名一致
|
|
149
|
+
- [ ] 事件数据格式(字段名、类型)是否一致
|
|
150
|
+
- [ ] 事件监听器的注册/移除接口是否一致
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 九、安全性
|
|
155
|
+
|
|
156
|
+
- [ ] 无硬编码的 API Key / Token / URL 等敏感信息
|
|
157
|
+
- [ ] 网络请求校验 HTTPS 证书(禁止忽略证书错误)
|
|
158
|
+
- [ ] 用户输入有校验和过滤(防注入)
|
|
159
|
+
- [ ] 文件路径有安全校验(防路径穿越)
|
|
160
|
+
- [ ] 敏感数据不在日志中输出
|
|
161
|
+
|
|
162
|
+
---
|
|
163
|
+
|
|
164
|
+
## 十、构建配置
|
|
165
|
+
|
|
166
|
+
- [ ] `CMakeLists.txt` 链接的系统库均为必要依赖
|
|
167
|
+
- [ ] `oh-package.json5` 新增依赖合理,无 `*` 通配版本
|
|
168
|
+
- [ ] 编译选项无安全风险(如 `-fno-stack-protector` 等)
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 十一、代码规范
|
|
173
|
+
|
|
174
|
+
- [ ] C++ 代码遵循现代 C++ 规范(优先使用 RAII、智能指针)
|
|
175
|
+
- [ ] ArkTS 命名遵循驼峰规则(变量/方法小驼峰,类/接口大驼峰)
|
|
176
|
+
- [ ] 无冗余的 `RNLog`/`console.log` 调试代码遗留
|
|
177
|
+
- [ ] 公共 API 有完整注释
|
|
178
|
+
- [ ] 文件头版权声明完整
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## 十二、资源管理
|
|
183
|
+
|
|
184
|
+
- [ ] 定时器有对应清理
|
|
185
|
+
- [ ] `napi_env` 生命周期内创建的对象不在 env 销毁后访问
|
|
186
|
+
|
|
187
|
+
---
|
|
188
|
+
|
|
189
|
+
**使用说明**:在检视阶段按章节逐项检查,对发现的问题在报告中标注等级(CRITICAL/MAJOR/MINOR/SUGGEST)。
|
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
# React Native 代码检视报告模板
|
|
2
|
+
|
|
3
|
+
本文档提供标准化的检视报告格式模板。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 一、基本信息
|
|
8
|
+
|
|
9
|
+
| 字段 | 内容 |
|
|
10
|
+
|------|------|
|
|
11
|
+
| **PR 地址** | {prUrl} |
|
|
12
|
+
| **代码仓库** | {owner}/{repo} |
|
|
13
|
+
| **目标分支** | {targetBranch} |
|
|
14
|
+
| **PR 标题** | {prTitle(commit Subject)} |
|
|
15
|
+
| **提交作者** | {author} <{email}> |
|
|
16
|
+
| **提交时间** | {date} |
|
|
17
|
+
| **Commit Hash** | {commitHash} |
|
|
18
|
+
| **库类型** | React Native |
|
|
19
|
+
| **报告生成时间** | {YYYY-MM-DD HH:mm} |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 二、改动概述
|
|
24
|
+
|
|
25
|
+
### 2.1 改动规模
|
|
26
|
+
|
|
27
|
+
| 指标 | 数值 |
|
|
28
|
+
|------|------|
|
|
29
|
+
| 涉及文件数 | N 个 |
|
|
30
|
+
| 新增行数 | +X 行 |
|
|
31
|
+
| 删除行数 | -Y 行 |
|
|
32
|
+
| 净变更 | +Z 行 |
|
|
33
|
+
|
|
34
|
+
### 2.2 改动文件清单
|
|
35
|
+
|
|
36
|
+
| 文件路径 | 类型 | 改动性质 | 改动摘要 |
|
|
37
|
+
|----------|------|----------|----------|
|
|
38
|
+
| `harmony/src/main/cpp/...` | C++ CAPI | 功能修复 | 修复跨线程回调未使用 napi_threadsafe_function |
|
|
39
|
+
| `src/...` | JS/TS | 接口更新 | 新增平台判断逻辑 |
|
|
40
|
+
|
|
41
|
+
### 2.3 整体改动意图
|
|
42
|
+
|
|
43
|
+
{根据 commit message 和 diff 内容描述改动意图}
|
|
44
|
+
|
|
45
|
+
---
|
|
46
|
+
|
|
47
|
+
## 三、检视结果汇总
|
|
48
|
+
|
|
49
|
+
| 等级 | 问题数 |
|
|
50
|
+
|------|--------|
|
|
51
|
+
| 🔴 严重 (CRITICAL) | N |
|
|
52
|
+
| 🟠 主要 (MAJOR) | N |
|
|
53
|
+
| 🟡 次要 (MINOR) | N |
|
|
54
|
+
| 🔵 建议 (SUGGEST) | N |
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
## 四、详细检视意见
|
|
59
|
+
|
|
60
|
+
### [文件路径]
|
|
61
|
+
|
|
62
|
+
#### 🔴 严重问题
|
|
63
|
+
|
|
64
|
+
**[问题标题]**
|
|
65
|
+
- **位置**:第 X 行
|
|
66
|
+
- **描述**:...
|
|
67
|
+
- **建议**:...
|
|
68
|
+
|
|
69
|
+
```diff
|
|
70
|
+
- 问题代码
|
|
71
|
+
+ 建议改法
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
---
|
|
75
|
+
|
|
76
|
+
## 五、影响分析
|
|
77
|
+
|
|
78
|
+
- **功能影响**:本次改动是否引入新功能或修改现有行为
|
|
79
|
+
- **兼容性影响**:对外暴露的 TurboModule API 是否向后兼容
|
|
80
|
+
- **性能影响**:是否优化了跨线程调用性能或内存占用
|
|
81
|
+
- **安全影响**:是否修复或引入了内存安全或线程安全问题
|
|
82
|
+
|
|
83
|
+
---
|
|
84
|
+
|
|
85
|
+
## 六、跨平台一致性对比
|
|
86
|
+
|
|
87
|
+
> 对比 PR diff 涉及的 harmony 实现与 Android/iOS 原生模块的方法路由、参数类型、返回值格式一致性。
|
|
88
|
+
|
|
89
|
+
| 对比维度 | harmony 实现 | Android 实现 | 一致性 | 问题等级 |
|
|
90
|
+
|----------|-------------|-------------|--------|----------|
|
|
91
|
+
| TurboModule 方法路由 | `methodName1`, `methodName2`, ... | `methodName1`, `methodName2`, ... | ✅一致 / ❌缺失X个方法 | 🔴/🟠/✅ |
|
|
92
|
+
| TurboModule 名称 | `XxxModule` | `XxxModule` | ✅一致 / ❌不一致 | 🔴/✅ |
|
|
93
|
+
| 参数类型映射 | `call.argument('key')` 类型 | `call.argument('key')` 类型 | ✅一致 / ❌类型不匹配 | 🔴/✅ |
|
|
94
|
+
| 返回值格式 | `{code: 0, data: [...]}` | `{code: 0, data: [...]}` | ✅一致 / ❌格式不同 | 🟠/✅ |
|
|
95
|
+
| 错误码/消息 | code: `"E_XXX"` | code: `"E_XXX"` | ✅一致 / ❌不匹配 | 🟠/✅ |
|
|
96
|
+
| 功能完整性 | 全部实现 / Stub: X个 | 全部实现 | ✅完整 / ❌缺失X个方法 | 🔴/✅ |
|
|
97
|
+
| EventEmitter 事件名 | `eventName1`, `eventName2` | `eventName1`, `eventName2` | ✅一致 / ❌不一致 | 🟠/✅ |
|
|
98
|
+
|
|
99
|
+
### 不一致详情
|
|
100
|
+
|
|
101
|
+
#### [方法名]
|
|
102
|
+
- **Android 实现**:{描述 Android 的方法签名、参数类型、返回值、错误处理}
|
|
103
|
+
- **harmony 实现**:{描述 harmony 的对应实现}
|
|
104
|
+
- **差异**:{具体差异说明}
|
|
105
|
+
- **风险**:{JS 侧调用时可能的行为差异}
|
|
106
|
+
- **建议**:{修复建议}
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## 七、总体评估
|
|
111
|
+
|
|
112
|
+
**结论**:[APPROVED / NEEDS_REVISION / REJECTED]
|
|
113
|
+
|
|
114
|
+
**说明**:...
|
|
115
|
+
|
|
116
|
+
---
|
|
117
|
+
|
|
118
|
+
## 八、合入建议分级
|
|
119
|
+
|
|
120
|
+
> 根据问题严重程度统计,按照分级标准判定合入建议等级。
|
|
121
|
+
|
|
122
|
+
### 8.1 问题统计
|
|
123
|
+
|
|
124
|
+
| 等级 | 数量 | 说明 |
|
|
125
|
+
|------|------|------|
|
|
126
|
+
| 🔴 **Critical** | N 个 | 必须修复,会导致崩溃、数据损坏、安全漏洞 |
|
|
127
|
+
| 🟠 **Major** | N 个 | 强烈建议修复,影响功能正确性/性能/兼容性 |
|
|
128
|
+
| 🟡 **Minor** | N 个 | 建议修复,代码质量/规范/可读性问题 |
|
|
129
|
+
| 🔵 **Suggest** | N 个 | 可选改进,不强制要求修复 |
|
|
130
|
+
|
|
131
|
+
### 8.2 合入建议
|
|
132
|
+
|
|
133
|
+
**等级标识**:✅ PASS / ⚠️ CONDITIONAL / 🔧 NEED_FIX / ❌ REJECT
|
|
134
|
+
|
|
135
|
+
**判定结果**:{等级标识}
|
|
136
|
+
|
|
137
|
+
**分级理由**:
|
|
138
|
+
- {根据分级标准说明判定理由}
|
|
139
|
+
- {例如:存在 1 个 Critical 级别问题(子线程直接调用 NAPI),判定为 NEED_FIX,需修复后合入}
|
|
140
|
+
- {线程安全问题示例:回调函数在子线程执行但未使用 napi_threadsafe_function,会导致 JS 崩溃}
|
|
141
|
+
|
|
142
|
+
**合入条件**(仅 CONDITIONAL/NEED_FIX 时填写):
|
|
143
|
+
- {列出必须满足的条件,如:修复线程安全问题、使用 napi_threadsafe_function、补充测试用例等}
|
|
144
|
+
|
|
145
|
+
---
|
|
146
|
+
|
|
147
|
+
## 九、修改点详细分级清单
|
|
148
|
+
|
|
149
|
+
> 每个修改点的具体分析,明确标注所属的合入建议级别。
|
|
150
|
+
|
|
151
|
+
### 9.1 建议合入级修改点 ✅
|
|
152
|
+
|
|
153
|
+
> 无风险或低风险修改,可直接合入。
|
|
154
|
+
|
|
155
|
+
| # | 文件 | 修改内容 | 风险评估 | 说明 |
|
|
156
|
+
|---|------|----------|----------|------|
|
|
157
|
+
| 1 | `src/...` | 删除无用导入 | 低风险 | 代码清理,不影响功能 |
|
|
158
|
+
|
|
159
|
+
### 9.2 条件合入级修改点 ⚠️
|
|
160
|
+
|
|
161
|
+
> 需满足特定条件后方可合入。
|
|
162
|
+
|
|
163
|
+
| # | 文件 | 修改内容 | 潜在风险 | 合入条件 |
|
|
164
|
+
|---|------|----------|----------|----------|
|
|
165
|
+
| 1 | `harmony/src/main/ets/...` | 新增 TurboModule 方法 | 需验证跨平台一致性 | 补充 JS 端测试用例 |
|
|
166
|
+
|
|
167
|
+
### 9.3 修改后合入级修改点 🔧
|
|
168
|
+
|
|
169
|
+
> 存在明确问题,需修复后方可合入。
|
|
170
|
+
|
|
171
|
+
| # | 文件 | 位置 | 问题描述 | 修复建议 | 严重级别 |
|
|
172
|
+
|---|------|------|----------|----------|----------|
|
|
173
|
+
| 1 | `harmony/src/main/cpp/...` | `callback()` | 子线程直接调用 NAPI 函数 | 使用 napi_threadsafe_function | 🔴 Critical |
|
|
174
|
+
|
|
175
|
+
### 9.4 不允许合入级修改点 ❌
|
|
176
|
+
|
|
177
|
+
> 严重问题,不建议合入。
|
|
178
|
+
|
|
179
|
+
| # | 文件 | 位置 | 问题描述 | 影响 | 严重级别 |
|
|
180
|
+
|---|------|------|----------|------|----------|
|
|
181
|
+
| 1 | `harmony/src/main/cpp/...` | NAPI 模块 | napi_ref 未正确释放导致内存泄漏 | 长期运行内存增长 | 🔴 Critical |
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 十、result.txt 文件生成规范
|
|
186
|
+
|
|
187
|
+
> 检视完成后,生成 `result.txt` 文件供前端展示和数据库存储。
|
|
188
|
+
|
|
189
|
+
```txt
|
|
190
|
+
=== 合入建议分级报告 ===
|
|
191
|
+
PR 地址:{prUrl}
|
|
192
|
+
仓库:{owner}/{repo}
|
|
193
|
+
PR 编号:#{prNumber}
|
|
194
|
+
生成时间:{YYYY-MM-DD HH:mm:ss}
|
|
195
|
+
|
|
196
|
+
【合入建议】:{等级标识}
|
|
197
|
+
|
|
198
|
+
【问题统计】
|
|
199
|
+
- Critical 级别:{criticalCount} 个
|
|
200
|
+
- Major 级别:{majorCount} 个
|
|
201
|
+
- Minor 级别:{minorCount} 个
|
|
202
|
+
- Suggest 级别:{suggestCount} 个
|
|
203
|
+
|
|
204
|
+
【分级理由】
|
|
205
|
+
{分级理由详细说明}
|
|
206
|
+
|
|
207
|
+
【详细分析】
|
|
208
|
+
━━━ Critical 级别问题 ━━━
|
|
209
|
+
{列出所有 Critical 问题,每个占一行,重点关注线程安全/内存问题}
|
|
210
|
+
|
|
211
|
+
━━━ Major 级别问题 ━━━
|
|
212
|
+
{列出所有 Major 问题,每个占一行}
|
|
213
|
+
|
|
214
|
+
━━━ Minor 级别问题 ━━━
|
|
215
|
+
{列出所有 Minor 问题,每个占一行}
|
|
216
|
+
|
|
217
|
+
━━━ Suggest 级别问题 ━━━
|
|
218
|
+
{列出所有 Suggest 问题,每个占一行}
|
|
219
|
+
|
|
220
|
+
━━━ 合入建议 ━━━
|
|
221
|
+
{最终合入建议和条件说明}
|
|
222
|
+
|
|
223
|
+
=== 分级结束 ===
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
---
|
|
227
|
+
|
|
228
|
+
*本报告由 RNCodeCheck 自动生成,仅供参考,最终合入决策由人工评审确认。*
|
|
229
|
+
|
|
230
|
+
---
|
|
231
|
+
|
|
232
|
+
## 报告生成说明
|
|
233
|
+
|
|
234
|
+
1. **文件命名**:必须为 `check-report.md`
|
|
235
|
+
2. **保存路径**:必须在 `{outputDir}` 下
|
|
236
|
+
3. **文件列表**:同时生成 `changed-files.txt`(每行一个文件路径)
|
|
237
|
+
4. **无鸿蒙变更**:若 PR 只修改 `android/` 或 `ios/`,在报告中注明"本次 PR 无鸿蒙平台代码变更"并给出 APPROVED
|
|
238
|
+
5. **线程安全优先**:对 C++ CAPI 的内存安全和线程安全问题给予最高优先级标记为 CRITICAL
|
|
239
|
+
|
|
240
|
+
---
|
|
241
|
+
|
|
242
|
+
**问题等级定义**:
|
|
243
|
+
|
|
244
|
+
- 🔴 **CRITICAL(严重)**:会导致崩溃、数据损坏、安全漏洞的严重问题,必须修复
|
|
245
|
+
- 🟠 **MAJOR(主要)**:影响功能正确性、性能、兼容性的重要问题,强烈建议修复
|
|
246
|
+
- 🟡 **MINOR(次要)**:代码质量问题、规范问题、可读性问题,建议修复
|
|
247
|
+
- 🔵 **SUGGEST(建议)**:可选的改进建议,不强制要求修复
|
|
@@ -0,0 +1,198 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rn-lib-add-example
|
|
3
|
+
description: 为 RN 鸿蒙三方库创建 example 示例工程:从 RN3rdTemplate 模板仓库(gitcode.com/lalhanOrz/RN3rdTemplate)浅拷贝对应 RNOH 框架版本(0.77/0.82/0.84)的模板到库根 example/,自动修改 app 名称与 bundleName 等工程标识,清理 .npmrc 凭据与模板残留,以 npm pack tgz 方式接入本地库依赖并适配鸿蒙壳层,预置 RNTesterList 注册入口,最终按渐进式验证链(npm install → npm run dev → ohpm install → hvigorw assembleHap)确认工程可构建。当三方库仓库缺失 example/ 目录、或需要基于标准模板重建结构完整的 example 壳层工程(含 package.json、入口 index、RNTesterList 页面注册、harmony 构建配置)时使用。
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
compatibility: 需要 Node.js ≥ 16 与 git(可访问 gitcode.com),库依赖接入需 npm;鸿蒙侧编译验证需 DevEco Studio(ohpm/hvigorw);需目标库根目录写权限
|
|
6
|
+
metadata:
|
|
7
|
+
author: LoopEngine
|
|
8
|
+
version: "1.0.0"
|
|
9
|
+
category: rn-engineering
|
|
10
|
+
invoked-by: 三方库 example 工程准备流程
|
|
11
|
+
consumed-by: rnoh-lib-demo-create、rnoh-cptf-api-test
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# RN 三方库添加 Example 工程
|
|
15
|
+
|
|
16
|
+
从 RN3rdTemplate 模板仓库浅拷贝对应 RNOH 框架版本的模板工程,修改 app 名称后接入目标库依赖,产出结构完整、可构建、可注册 Demo 的 example 壳层工程。
|
|
17
|
+
|
|
18
|
+
> ⚠️ **核心原则**:
|
|
19
|
+
> 1. 库依赖一律 `npm pack` + `file:../xxx.tgz`,**禁止 `file:../目录`**(npm 会以 symlink 安装,Metro 无法解析)
|
|
20
|
+
> 2. 拷贝模板后第一件事:**删除 `.npmrc`**(模板可能内嵌私有 registry 明文 token,含凭据文件严禁带入交付物)
|
|
21
|
+
> 3. 必须**预置 `src/RNTesterList.ts`(模式 A)注册入口**,与下游 Demo 生成/测试技能(rnoh-lib-demo-create、rnoh-cptf-api-test)的探查逻辑无缝衔接
|
|
22
|
+
> 4. 壳层适配的类名/路径/链接目标全部由库 `package.json` 的 harmony 元数据派生,禁止手抄猜测
|
|
23
|
+
> 5. 验证遵循渐进式链:`npm run dev` 成本最低、最先执行,不要跳过直接做鸿蒙编译
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## 任务参数
|
|
28
|
+
|
|
29
|
+
| 参数 | 类型 | 必填 | 说明 |
|
|
30
|
+
|------|------|------|------|
|
|
31
|
+
| `libRoot` | string | ✅ | 目标库根目录(含 package.json) |
|
|
32
|
+
| `version` | string | ❌ | RNOH 框架版本(0.77/0.82/0.84),缺省从库 package.json 自动推断 |
|
|
33
|
+
| `appName` | string | ❌ | 应用显示名,缺省从库名派生(如 `SqliteStorageExample`) |
|
|
34
|
+
| `bundleName` | string | ❌ | 鸿蒙包名,缺省派生为 `com.rnoh.{lib_name}` |
|
|
35
|
+
| `templateUrl` | string | ❌ | 模板仓库地址,默认 https://gitcode.com/lalhanOrz/RN3rdTemplate.git |
|
|
36
|
+
| `force` | boolean | ❌ | example/ 已存在时是否删除重建(默认询问用户) |
|
|
37
|
+
|
|
38
|
+
---
|
|
39
|
+
|
|
40
|
+
## 输入依赖
|
|
41
|
+
|
|
42
|
+
- **前置SKILL**:无,可独立调用
|
|
43
|
+
- **输入文件**:目标库根 `package.json`(读 name/version/harmony.autolinking 元数据)
|
|
44
|
+
- **外部依赖**:git、Node.js ≥ 16、npm;验证阶段需 DevEco Studio(ohpm/hvigorw)
|
|
45
|
+
- **MCP工具**:可选 `kb_search`(查询鸿蒙平台特定约束)
|
|
46
|
+
|
|
47
|
+
---
|
|
48
|
+
|
|
49
|
+
## 工作流程概览
|
|
50
|
+
|
|
51
|
+
```
|
|
52
|
+
Phase 1: 前置检查与框架版本确定
|
|
53
|
+
↓
|
|
54
|
+
Phase 2: 浅拷贝模板并修改 app 名称(create-example.cjs)
|
|
55
|
+
↓
|
|
56
|
+
Phase 3: 库依赖接入(tgz)与壳层适配
|
|
57
|
+
↓
|
|
58
|
+
Phase 4: 预置 RNTesterList 注册入口与冒烟 Demo
|
|
59
|
+
↓
|
|
60
|
+
Phase 5: 渐进式验证链
|
|
61
|
+
↓
|
|
62
|
+
Phase 6: 库根工程卫生与输出报告
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
---
|
|
66
|
+
|
|
67
|
+
## Phase 1:前置检查与框架版本确定
|
|
68
|
+
|
|
69
|
+
### 1.1 检查 example/ 现状
|
|
70
|
+
|
|
71
|
+
- **已存在** → **询问用户**:覆盖重建(`--force`)、增量更新、或取消
|
|
72
|
+
- **缺失** → 继续 Phase 2
|
|
73
|
+
|
|
74
|
+
### 1.2 读取库元数据
|
|
75
|
+
|
|
76
|
+
读取 `libRoot/package.json`,提取 `name`、`version`、`harmony.alias`、`harmony.autolinking.*`(ohPackageName / etsPackageClassName / cppPackageClassName / cmakeLibraryTargetName)与源码模块路径(`harmony/{module}/`)。后续壳层适配全部由这些字段派生。
|
|
77
|
+
|
|
78
|
+
### 1.3 确定 RNOH 框架版本
|
|
79
|
+
|
|
80
|
+
从库 `dependencies` 中 `@react-native-oh/react-native-harmony` / `react-native-harmony` / `react-native` 的版本取 `major.minor`(如 `0.82.30` → `0.82`)。无法推断时**询问用户**,禁止猜测。
|
|
81
|
+
|
|
82
|
+
> 版本对照表与模板目录结构参见 [模板仓库指南](references/TEMPLATE_REPO_GUIDE.md)
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Phase 2:浅拷贝模板并修改 app 名称
|
|
87
|
+
|
|
88
|
+
执行主脚本(自动完成:浅克隆 → 复制 `{version}/` → `example/` → 排除 `.npmrc`/`.DS_Store` → 修改 app 名称 → 清理 querySchemes 模板残留):
|
|
89
|
+
|
|
90
|
+
```bash
|
|
91
|
+
node {skillDir}/scripts/create-example.cjs \
|
|
92
|
+
--lib-path <libRoot> \
|
|
93
|
+
[--version 0.82] [--app-name XxxExample] [--bundle-name com.rnoh.xxx] [--force]
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
脚本完成后抽查确认:
|
|
97
|
+
|
|
98
|
+
| 检查项 | 期望 |
|
|
99
|
+
|--------|------|
|
|
100
|
+
| `example/app.json` | name/displayName 已改为目标应用名 |
|
|
101
|
+
| `example/package.json` | name 已替换(非 `react-native-harmony-tester`) |
|
|
102
|
+
| `harmony/AppScope/app.json5` | bundleName 已替换(非模板残留 `com.harmony.wechat.lib.demo`) |
|
|
103
|
+
| `example/.npmrc` | 不存在(含凭据文件必须删除) |
|
|
104
|
+
| `grep -rn "wechat\|weixin" example/` | 无匹配 |
|
|
105
|
+
|
|
106
|
+
> 脚本不可用(无 git 等)时的手动步骤与改名点位明细参见 [App 名称修改指南](references/APP_RENAME_GUIDE.md)
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Phase 3:库依赖接入(tgz)与壳层适配
|
|
111
|
+
|
|
112
|
+
### 3.1 库依赖接入
|
|
113
|
+
|
|
114
|
+
1. 库根 `.npmignore` 追加 `example`
|
|
115
|
+
2. 库根 `npm pack` 生成 tgz
|
|
116
|
+
3. `example/package.json` 依赖写 `"file:../{tgz文件名}"`
|
|
117
|
+
|
|
118
|
+
> ⚠️ 禁止 `file:../目录` 形式(symlink 问题,详见核心原则 1)
|
|
119
|
+
|
|
120
|
+
### 3.2 壳层适配
|
|
121
|
+
|
|
122
|
+
按必查清单逐项适配(oh-package HAR 路径、CMakeLists 指向 node_modules、PackageProvider.cpp、RNPackagesFactory.ets、Index.ets、build-profile.template.json5 modules、metro/tsconfig alias、权限最小化):
|
|
123
|
+
|
|
124
|
+
> 完整清单参见 [壳层适配必查清单](references/SHELL_ADAPTATION_CHECKLIST.md)
|
|
125
|
+
|
|
126
|
+
---
|
|
127
|
+
|
|
128
|
+
## Phase 4:预置 RNTesterList 注册入口与冒烟 Demo
|
|
129
|
+
|
|
130
|
+
下游技能探查 Demo 注册入口的第一优先级是 `{projectRoot}/**/RNTesterList.ts`(模式 A:`{key, category, module}` 数组),模板原生不含该文件,必须预置:
|
|
131
|
+
|
|
132
|
+
1. 创建 `example/src/RNTesterList.ts`,首项 `{key: '{libName}', category: '{category}', module: require('./{libName}')}`
|
|
133
|
+
2. `App.tsx`(或 `src/index.tsx`)消费该列表渲染 Navigation 页面
|
|
134
|
+
3. 预置 1 个冒烟 Demo(`{exampleDir}/{libName}/index.tsx` + 最小可用页面,覆盖库核心链路如 open→exec→close)验证注册链路与原生桥通
|
|
135
|
+
|
|
136
|
+
> 模式 A 代码模板参见 [壳层适配必查清单](references/SHELL_ADAPTATION_CHECKLIST.md) 第五节
|
|
137
|
+
|
|
138
|
+
---
|
|
139
|
+
|
|
140
|
+
## Phase 5:渐进式验证链
|
|
141
|
+
|
|
142
|
+
按顺序执行,前一步失败先修复再继续:
|
|
143
|
+
|
|
144
|
+
```
|
|
145
|
+
1. cd example && npm install --legacy-peer-deps
|
|
146
|
+
2. npm run dev # 成本最低,暴露 alias/依赖问题
|
|
147
|
+
3. cd harmony && ohpm install --all
|
|
148
|
+
4. hvigorw assembleHap --no-daemon
|
|
149
|
+
5. nm -gU .../librnoh_app.so | grep <cppPackageClassName> # 纯 ETS 库跳过
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
> 各步骤要点、unsigned HAP 预期、hvigor 调用方式与故障排查表参见 [渐进式验证指南](references/VERIFICATION_GUIDE.md)
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## Phase 6:库根工程卫生与输出报告
|
|
157
|
+
|
|
158
|
+
### 6.1 库根工程卫生
|
|
159
|
+
|
|
160
|
+
- `.npmignore` 确认已含 `example`
|
|
161
|
+
- `.gitignore` 追加 `harmony/{module}/oh_modules`、`harmony/{module}/oh-package-lock.json5`
|
|
162
|
+
- npm pack 的 tgz 留在库根(CPF-RN 仓惯例)
|
|
163
|
+
|
|
164
|
+
### 6.2 输出报告
|
|
165
|
+
|
|
166
|
+
输出确认信息,包含:
|
|
167
|
+
|
|
168
|
+
- example 目录路径与框架版本(RN/React/react-native-harmony)
|
|
169
|
+
- 应用标识(appName / bundleName / npm 包名 / RN 注册名)
|
|
170
|
+
- 库依赖接入方式(tgz 文件名)
|
|
171
|
+
- 壳层适配完成项(对照必查清单)
|
|
172
|
+
- RNTesterList 预置情况与冒烟 Demo 说明
|
|
173
|
+
- 验证链各步执行结果(npm run dev / ohpm / hvigorw / 符号检查)
|
|
174
|
+
- 需用户后续确认的事项(签名配置、真机部署)
|
|
175
|
+
|
|
176
|
+
---
|
|
177
|
+
|
|
178
|
+
## 异常处理
|
|
179
|
+
|
|
180
|
+
| 异常场景 | 处理方式 |
|
|
181
|
+
|----------|----------|
|
|
182
|
+
| example/ 已存在且用户未确认 | 停止,等待用户选择(覆盖/增量/取消) |
|
|
183
|
+
| 无法推断框架版本 | 询问用户显式指定 --version |
|
|
184
|
+
| git clone 失败(网络) | 重试或提示用户配置代理/镜像后重试 |
|
|
185
|
+
| 模板仓库无对应版本目录 | 列出可用版本,询问用户降级/升级选择 |
|
|
186
|
+
| npm run dev 报 Unable to resolve module | 检查库依赖是否误用 file: 目录(改 tgz),详见验证指南故障表 |
|
|
187
|
+
| TreeFS file map 报错 | 清 `node_modules/.cache` + `watchman watch-del-all` 后重跑 |
|
|
188
|
+
| 未配置签名产出 unsigned HAP | 属预期,提醒用户真机部署前补 signingConfigs |
|
|
189
|
+
|
|
190
|
+
---
|
|
191
|
+
|
|
192
|
+
## 参考资料
|
|
193
|
+
|
|
194
|
+
- [模板仓库指南](references/TEMPLATE_REPO_GUIDE.md) — RN3rdTemplate 结构、版本对照、手动拷贝步骤
|
|
195
|
+
- [App 名称修改指南](references/APP_RENAME_GUIDE.md) — 名称派生规则、必改点位、改名校验
|
|
196
|
+
- [壳层适配必查清单](references/SHELL_ADAPTATION_CHECKLIST.md) — 库元数据、tgz 接入、壳层适配、RNTesterList 预置
|
|
197
|
+
- [渐进式验证指南](references/VERIFICATION_GUIDE.md) — 验证链、各步要点、故障排查表
|
|
198
|
+
- RN3rdTemplate 仓库:https://gitcode.com/lalhanOrz/RN3rdTemplate
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# App 名称修改指南
|
|
2
|
+
|
|
3
|
+
> `scripts/create-example.cjs` 已自动完成以下全部修改点;本指南用于人工核对与脚本不可用时的手动修改。
|
|
4
|
+
|
|
5
|
+
## 名称派生规则
|
|
6
|
+
|
|
7
|
+
以库 `@react-native-ohos/react-native-sqlite-storage` 为例:
|
|
8
|
+
|
|
9
|
+
| 名称项 | 派生规则 | 示例值 |
|
|
10
|
+
|--------|----------|--------|
|
|
11
|
+
| 应用显示名(appName) | 去 scope、去 `react-native-` 前缀后 PascalCase + `Example` | `SqliteStorageExample` |
|
|
12
|
+
| RN 注册名(app.json name) | 短名中非字母数字字符转 `_` + `_example` | `sqlite_storage_example` |
|
|
13
|
+
| 鸿蒙包名(bundleName) | `com.rnoh.` + 短名小写(非 `[a-z0-9]` 转 `_`) | `com.rnoh.sqlite_storage` |
|
|
14
|
+
| npm 包名(package.json name) | 去 scope 包名 + `-example` | `react-native-sqlite-storage-example` |
|
|
15
|
+
|
|
16
|
+
用户显式指定 `--app-name` / `--bundle-name` 时以用户为准。
|
|
17
|
+
|
|
18
|
+
## 必改点位
|
|
19
|
+
|
|
20
|
+
| # | 文件 | 修改内容 |
|
|
21
|
+
|---|------|----------|
|
|
22
|
+
| 1 | `example/app.json` | `name` → RN 注册名(AppRegistry 用,必须是合法标识符,禁止连字符);`displayName` → 应用显示名 |
|
|
23
|
+
| 2 | `example/package.json` | `name` → npm 包名(替换模板的 `react-native-harmony-tester`) |
|
|
24
|
+
| 3 | `example/harmony/AppScope/app.json5` | `bundleName` → 鸿蒙包名(替换模板残留的 `com.harmony.wechat.lib.demo`) |
|
|
25
|
+
| 4 | `example/harmony/AppScope/resources/base/element/string.json` | `app_name` 的 `value` → 应用显示名(桌面图标标签,`app.json5` 的 `label` 引用它) |
|
|
26
|
+
| 5 | `example/harmony/entry/src/main/resources/base/element/string.json` | `EntryAbility_label` 的 `value` → 应用显示名 |
|
|
27
|
+
| 6 | `example/harmony/entry/src/main/module.json5` | 移除模板残留的 `querySchemes: ["weixin"]` 整段(库确实需要 scheme 时再按需添加) |
|
|
28
|
+
|
|
29
|
+
## 完成后校验
|
|
30
|
+
|
|
31
|
+
1. `grep -rn "wechat\|weixin" example/` → 应无匹配(模板残留清零)
|
|
32
|
+
2. `grep -rn "harmony-tester\|RN Tester" example/ --include="*.json*"` → 应无匹配(改名完整)
|
|
33
|
+
3. `example/app.json` 的 `name` 与 `example/index.js` 中 `AppRegistry.registerComponent(appName, ...)` 读取的来源一致(index.js 自动读取 app.json,无需改动)
|
|
34
|
+
4. `bundleName` 全局唯一,不与其他已装应用冲突
|
|
35
|
+
|
|
36
|
+
## 安全清理(必做)
|
|
37
|
+
|
|
38
|
+
- 删除 `example/.npmrc`(若存在):模板可能内嵌私有 registry 的明文 `_authToken`,任何含凭据的文件严禁带入交付物
|
|
39
|
+
- 删除 `example/.DS_Store` 等 macOS 元数据文件
|
|
40
|
+
- RNOH 0.77/0.82/0.84 全部依赖可从公共 registry(npmmirror)解析,无需私有源
|