@ohos-cpf/3rdloop 0.0.2 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +290 -244
- package/bin/3rdloop.mjs +46 -46
- package/lib/cli.js +781 -781
- package/lib/config-cmd.js +451 -451
- package/lib/config.js +318 -318
- package/lib/doctor.js +113 -113
- package/lib/exit-codes.js +30 -30
- package/lib/opencode.js +155 -155
- package/lib/orch.js +426 -426
- package/lib/queries.js +263 -263
- package/lib/step.js +325 -325
- package/lib/ui.js +222 -222
- package/lib/update.js +279 -279
- package/lib/workflow.js +308 -308
- package/lib/workflows.js +131 -131
- package/package.json +50 -50
- package/vendor/Server/Agent/SkillSelector/README.md +343 -343
- package/vendor/Server/Agent/SkillSelector/core/Agent.js +207 -207
- package/vendor/Server/Agent/SkillSelector/index.js +14 -14
- package/vendor/Server/Agent/SkillSelector/llm/llmClient.js +313 -313
- package/vendor/Server/Agent/SkillSelector/llm/prompts.js +161 -161
- package/vendor/Server/Agent/SkillSelector/llm/reactSteps.js +144 -144
- package/vendor/Server/Agent/SkillSelector/matcher/fuzzyMatcher.js +433 -433
- package/vendor/Server/Agent/SkillSelector/scanner/skillScanner.js +382 -382
- package/vendor/Server/Agent/SkillSelector/utils/actionWords.js +59 -59
- package/vendor/Server/Brain/AnalysisStrategies.js +422 -422
- package/vendor/Server/Brain/Brain.js +686 -686
- package/vendor/Server/Brain/DecompositionStrategies.js +621 -621
- package/vendor/Server/Brain/PlanPersistence.js +196 -196
- package/vendor/Server/Brain/SkillExecutor.js +251 -251
- package/vendor/Server/Brain/index.js +11 -11
- package/vendor/Server/CLI/cli.js +275 -275
- package/vendor/Server/CLI/deveco-code/index.js +71 -71
- package/vendor/Server/CLI/deveco-code.js +5 -5
- package/vendor/Server/CLI/opencode/index.js +817 -818
- package/vendor/Server/CLI/opencode.js +5 -5
- package/vendor/Server/DbUse/MessageArchive.js +61 -61
- package/vendor/Server/DbUse/StorageManager.js +107 -107
- package/vendor/Server/DbUse/adapters/BaseAdapter.js +94 -94
- package/vendor/Server/DbUse/adapters/FileAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonAdapter.js +138 -138
- package/vendor/Server/DbUse/adapters/JsonlAdapter.js +114 -114
- package/vendor/Server/DbUse/adapters/SqliteAdapter.js +157 -157
- package/vendor/Server/DbUse/index.js +160 -160
- package/vendor/Server/DbUse/stores/SessionStore.js +279 -279
- package/vendor/Server/DbUse/stores/TaskExecutionStore.js +133 -133
- package/vendor/Server/DbUse/stores/TaskRegistryStore.js +262 -262
- package/vendor/Server/DbUse/stores/TaskStepStore.js +279 -279
- package/vendor/Server/FlexRunner/FlexRunner.js +1759 -1759
- package/vendor/Server/FlexRunner/index.js +12 -12
- package/vendor/Server/Knowledge/KnowledgeImporter.js +523 -523
- package/vendor/Server/Knowledge/KnowledgeManager.js +341 -341
- package/vendor/Server/Knowledge/index.js +33 -33
- package/vendor/Server/LoopEngine/LoopEngine.js +1133 -1133
- package/vendor/Server/LoopEngine/index.js +11 -11
- package/vendor/Server/Orchestrator/Orchestrator.js +0 -3
- package/vendor/Server/Orchestrator/StepNode.js +312 -312
- package/vendor/Server/Orchestrator/index.js +13 -13
- package/vendor/Server/Routes/controllers/BrainController.js +241 -241
- package/vendor/Server/Routes/controllers/FlexRunnerController.js +1125 -1125
- package/vendor/Server/Routes/controllers/HealthController.js +44 -44
- package/vendor/Server/Routes/controllers/KnowledgeImportController.js +355 -355
- package/vendor/Server/Routes/controllers/LoopEngineController.js +788 -788
- package/vendor/Server/Routes/controllers/StatsController.js +57 -57
- package/vendor/Server/Routes/controllers/StreamController.js +67 -67
- package/vendor/Server/Routes/library/logger.js +179 -179
- package/vendor/Server/Routes/library/zipArchive.js +172 -172
- package/vendor/Server/Routes/router/Router.js +204 -204
- package/vendor/Server/Routes/routes/brain.js +47 -47
- package/vendor/Server/Routes/routes/flexrunner.js +72 -72
- package/vendor/Server/Routes/routes/health.js +28 -28
- package/vendor/Server/Routes/routes/index.js +57 -57
- package/vendor/Server/Routes/routes/knowledge.js +55 -55
- package/vendor/Server/Routes/routes/loopengine.js +58 -58
- package/vendor/Server/Routes/routes/orchestrator.js +61 -61
- package/vendor/Server/Routes/routes/registry.js +97 -97
- package/vendor/Server/Routes/routes/stats.js +23 -23
- package/vendor/Server/Routes/routes/stream.js +30 -30
- package/vendor/Server/Routes/server.js +203 -203
- package/vendor/Server/Routes/sse/SseHub.js +308 -308
- package/vendor/Server/Skills/acceptance-check/SKILL.md +191 -191
- package/vendor/Server/Skills/acceptance-check/references/PHASE1_ARTIFACT_COLLECTION.md +52 -52
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_CRITERIA_EVALUATION.md +77 -77
- package/vendor/Server/Skills/acceptance-check/references/PHASE2_EVIDENCE_VERIFICATION.md +70 -70
- package/vendor/Server/Skills/arkts-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/arkts-code-check/references/CODE_CHECK_GUIDE.md +210 -210
- package/vendor/Server/Skills/arkts-code-check/references/FILE_TYPE_GUIDE.md +28 -28
- package/vendor/Server/Skills/arkts-code-check/references/PHASE1_INFO_COLLECTION.md +233 -233
- package/vendor/Server/Skills/arkts-code-check/references/REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/arkts-library-compile-validate/SKILL.md +328 -328
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-compile-validate/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-code/SKILL.md +291 -291
- package/vendor/Server/Skills/arkts-library-demo-code/references/API_SIGNATURE_CHECKS.md +68 -68
- package/vendor/Server/Skills/arkts-library-demo-code/references/BUILD_VALIDATION.md +184 -184
- package/vendor/Server/Skills/arkts-library-demo-code/references/CODE_STANDARDS.md +337 -337
- package/vendor/Server/Skills/arkts-library-demo-code/references/EXAMPLES.md +400 -400
- package/vendor/Server/Skills/arkts-library-demo-code/references/SYSTEM_API_LOOKUP.md +98 -98
- package/vendor/Server/Skills/arkts-library-demo-code/references/TEMPLATE.md +544 -544
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-demo-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-demo-coverage/SKILL.md +174 -174
- package/vendor/Server/Skills/arkts-library-demo-scenario/SKILL.md +321 -321
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/EXAMPLES.md +100 -100
- package/vendor/Server/Skills/arkts-library-demo-scenario/references/TEMPLATE.md +185 -185
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/SKILL.md +233 -233
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +102 -102
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/CHECK_DIMENSIONS.md +89 -89
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/COMPLIANCE_CHECKLIST.md +62 -62
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/KB_QUERY_GUIDE.md +107 -107
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/MCP_TOOL_DISCOVERY.md +124 -124
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/REPORT_TEMPLATE.md +90 -90
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/references/SCORING_FORMULA.md +57 -57
- package/vendor/Server/Skills/arkts-library-documentation-quality-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/arkts-library-interface-spec/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-memory-leak-check/SKILL.md +391 -391
- package/vendor/Server/Skills/arkts-library-source-clone/SKILL.md +113 -113
- package/vendor/Server/Skills/arkts-library-stability-check/SKILL.md +312 -312
- package/vendor/Server/Skills/arkts-library-stability-check/assets/REPORT_TEMPLATE.md +154 -154
- package/vendor/Server/Skills/arkts-library-stability-check/references/CHECKLIST.md +165 -165
- package/vendor/Server/Skills/arkts-library-stability-check/references/CODE_EXAMPLES.md +308 -308
- package/vendor/Server/Skills/arkts-library-stability-check/references/SCORING_RULES.md +90 -90
- package/vendor/Server/Skills/arkts-library-stability-check/scripts/validate-skill.cjs +282 -282
- package/vendor/Server/Skills/arkts-library-test-coverage-check/SKILL.md +360 -360
- package/vendor/Server/Skills/arkts-library-test-coverage-check/assets/REPORT_TEMPLATE.md +145 -145
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/CHECKLIST.md +252 -252
- package/vendor/Server/Skills/arkts-library-test-coverage-check/references/MCP_TOOL_USAGE.md +114 -114
- package/vendor/Server/Skills/arkts-library-test-coverage-check/scripts/validate-skill.cjs +262 -262
- package/vendor/Server/Skills/arkts-library-xts-code/SKILL.md +455 -455
- package/vendor/Server/Skills/arkts-library-xts-code/assets/report-template.md +60 -60
- package/vendor/Server/Skills/arkts-library-xts-code/references/ACCESS_MODIFIER_PRECHECK.md +76 -76
- package/vendor/Server/Skills/arkts-library-xts-code/references/BUILD_VERIFICATION.md +200 -200
- package/vendor/Server/Skills/arkts-library-xts-code/references/CODE_STANDARDS.md +518 -518
- package/vendor/Server/Skills/arkts-library-xts-code/references/SUBAGENT_PROMPT_TEMPLATE.md +276 -276
- package/vendor/Server/Skills/arkts-library-xts-code/references/SYSTEM_API_LOOKUP.md +92 -92
- package/vendor/Server/Skills/arkts-library-xts-code/references/XTS_TEMPLATE.md +767 -767
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/arkts-library-xts-code/scripts/precheck-access-modifiers.cjs +221 -221
- package/vendor/Server/Skills/arkts-library-xts-code-fix/SKILL.md +228 -228
- package/vendor/Server/Skills/arkts-library-xts-coverage/SKILL.md +97 -97
- package/vendor/Server/Skills/arkts-library-xts-doc/SKILL.md +194 -194
- package/vendor/Server/Skills/arkts-library-xts-doc/references/EXAMPLES.md +575 -575
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TEMPLATE.md +574 -574
- package/vendor/Server/Skills/arkts-library-xts-doc/references/TESTABILITY_GUIDE.md +182 -182
- package/vendor/Server/Skills/arkts-library-xts-execution/SKILL.md +490 -490
- package/vendor/Server/Skills/arkts-library-xts-execution/references/error-fixing-examples.md +217 -217
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/build.ps1 +93 -93
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/code-linter.cjs +432 -432
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/migrate.cjs +851 -851
- package/vendor/Server/Skills/arkts-library-xts-execution/scripts/ohpm-switch.cjs +788 -788
- package/vendor/Server/Skills/flutter-code-check/SKILL.md +299 -299
- package/vendor/Server/Skills/flutter-code-check/assets/OUTPUT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/flutter-code-check/references/CHECKLIST.md +190 -190
- package/vendor/Server/Skills/flutter-code-check/references/PLATFORMS.md +133 -133
- package/vendor/Server/Skills/flutter-code-check/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/flutter-interface/README.md +75 -75
- package/vendor/Server/Skills/flutter-interface/SKILL.md +291 -291
- package/vendor/Server/Skills/flutter-interface/references/EXAMPLES.md +336 -336
- package/vendor/Server/Skills/flutter-interface/references/GIT_CLONE_GUIDE.md +190 -190
- package/vendor/Server/Skills/flutter-interface/references/SCRIPT_REFERENCE.md +258 -258
- package/vendor/Server/Skills/flutter-interface/references/TEMPLATE.md +254 -254
- package/vendor/Server/Skills/flutter-library-consistency-check/SKILL.md +517 -517
- package/vendor/Server/Skills/flutter-library-consistency-check/references/CHECKLIST.md +381 -381
- package/vendor/Server/Skills/flutter-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +341 -341
- package/vendor/Server/Skills/flutter-library-consistency-check/references/PLATFORM_LIMITATION_GUIDE.md +71 -71
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/SKILL.md +518 -518
- package/vendor/Server/Skills/flutter-library-documentation-quality-check/references/CHECKLIST.md +406 -406
- package/vendor/Server/Skills/flutter-library-memory-leak-check/SKILL.md +652 -652
- package/vendor/Server/Skills/flutter-library-memory-leak-check/references/CHECKLIST.md +396 -396
- package/vendor/Server/Skills/flutter-library-stability-check/SKILL.md +744 -744
- package/vendor/Server/Skills/flutter-library-stability-check/references/CHECKLIST.md +720 -720
- package/vendor/Server/Skills/flutter-library-test-coverage-check/SKILL.md +414 -414
- package/vendor/Server/Skills/flutter-library-test-coverage-check/assets/REPORT_TEMPLATE.md +150 -150
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/CHECKLIST.md +304 -304
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCORING_RULES.md +265 -265
- package/vendor/Server/Skills/flutter-library-test-coverage-check/references/SCRIPT_USAGE.md +286 -286
- package/vendor/Server/Skills/knowledge-import/SKILL.md +383 -383
- package/vendor/Server/Skills/knowledge-import/references/MCP_TOOL_USAGE.md +165 -165
- package/vendor/Server/Skills/knowledge-import/references/SKILL_LOCATOR_GUIDE.md +91 -91
- package/vendor/Server/Skills/knowledge-import/references/SKILL_OPTIMIZATION_GUIDE.md +127 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/SKILL.md +453 -301
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_CHECKLIST.md +151 -0
- package/vendor/Server/Skills/ohos-lib-pr-push/assets/PR_ISSUE_TEMPLATE.md +257 -105
- package/vendor/Server/Skills/ohos-lib-pr-push/references/GITCODE_API.md +191 -127
- package/vendor/Server/Skills/ohos-lib-pr-push/scripts/gitcode-api.cjs +317 -208
- package/vendor/Server/Skills/rn-code-check/SKILL.md +320 -320
- package/vendor/Server/Skills/rn-code-check/references/API-GUIDE.md +234 -234
- package/vendor/Server/Skills/rn-code-check/references/CHECKLIST.md +188 -188
- package/vendor/Server/Skills/rn-code-check/references/REPORT-TEMPLATE.md +246 -246
- package/vendor/Server/Skills/rn-lib-add-example/SKILL.md +198 -198
- package/vendor/Server/Skills/rn-lib-add-example/references/APP_RENAME_GUIDE.md +40 -40
- package/vendor/Server/Skills/rn-lib-add-example/references/SHELL_ADAPTATION_CHECKLIST.md +78 -78
- package/vendor/Server/Skills/rn-lib-add-example/references/TEMPLATE_REPO_GUIDE.md +70 -70
- package/vendor/Server/Skills/rn-lib-add-example/references/VERIFICATION_GUIDE.md +47 -47
- package/vendor/Server/Skills/rn-lib-add-example/scripts/create-example.cjs +252 -252
- package/vendor/Server/Skills/rn-lib-update-doc/SKILL.md +176 -176
- package/vendor/Server/Skills/rn-lib-update-doc/config.json +5 -5
- package/vendor/Server/Skills/rn-lib-update-doc/references/changelog-template.md +35 -35
- package/vendor/Server/Skills/rn-lib-update-doc/references/format-diff.md +137 -137
- package/vendor/Server/Skills/rn-lib-update-doc/references/link-registry.json +33 -33
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2-overview.md +40 -40
- package/vendor/Server/Skills/rn-lib-update-doc/references/model-0.4.2.md +429 -429
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/detect-readme-format.cjs +105 -105
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/find-usage-doc.cjs +90 -90
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/link-verify.cjs +213 -213
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-changelog.cjs +73 -73
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-package-meta.cjs +258 -258
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/normalize-readme-links.cjs +341 -341
- package/vendor/Server/Skills/rn-lib-update-doc/scripts/resolve-usage-docs.cjs +67 -67
- package/vendor/Server/Skills/rn-library-consistency-check/SKILL.md +299 -299
- package/vendor/Server/Skills/rn-library-consistency-check/assets/REPORT_TEMPLATE.md +293 -293
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_COMPONENT_CHECK_GUIDE.md +857 -857
- package/vendor/Server/Skills/rn-library-consistency-check/references/ARKTS_TURBOMODULE_CHECK_GUIDE.md +856 -856
- package/vendor/Server/Skills/rn-library-consistency-check/references/CHECKLIST.md +157 -157
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_COMPONENT_CHECK_GUIDE.md +801 -801
- package/vendor/Server/Skills/rn-library-consistency-check/references/CPP_TURBOMODULE_CHECK_GUIDE.md +683 -683
- package/vendor/Server/Skills/rn-library-consistency-check/references/FUNCTION_COMPARISON_GUIDE.md +233 -233
- package/vendor/Server/Skills/rn-library-consistency-check/references/NATIVE_COMPONENT_IDENTIFICATION.md +1373 -1373
- package/vendor/Server/Skills/rn-library-consistency-check/references/SCORING_STANDARD.md +220 -220
- package/vendor/Server/Skills/rn-library-consistency-check/scripts/validate-skill.py +245 -245
- package/vendor/Server/Skills/rn-library-documentation-quality-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL.md +414 -414
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/MODEL_en.md +413 -413
- package/vendor/Server/Skills/rn-library-documentation-quality-check/assets/REPORT_TEMPLATE.md +311 -311
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CHECK_CHECKLIST.md +355 -355
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/CROSS_VALIDATION_GUIDE.md +115 -115
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/DOC_COLLECTION_GUIDE.md +139 -139
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/EXAMPLES.md +586 -586
- package/vendor/Server/Skills/rn-library-documentation-quality-check/references/GOTCHAS.md +57 -57
- package/vendor/Server/Skills/rn-library-documentation-quality-check/scripts/validate-skill.py +259 -259
- package/vendor/Server/Skills/rn-library-interface-analyzer/SKILL.md +301 -301
- package/vendor/Server/Skills/rn-library-interface-analyzer/assets/REPORT_TEMPLATE.md +148 -148
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/DOC_ANNOTATION_GUIDE.md +118 -118
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/SCRIPT_USAGE_GUIDE.md +168 -168
- package/vendor/Server/Skills/rn-library-interface-analyzer/references/URL_PARSING_RULES.md +176 -176
- package/vendor/Server/Skills/rn-library-issue-generalizer/SKILL.md +274 -274
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/case-template.md +45 -45
- package/vendor/Server/Skills/rn-library-issue-generalizer/assets/rule-template.md +25 -25
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/PR_FETCH_GUIDE.md +61 -61
- package/vendor/Server/Skills/rn-library-issue-generalizer/references/RULE_TEMPLATE_GUIDE.md +165 -165
- package/vendor/Server/Skills/rn-library-issue-generalizer/scripts/fetch-pr-info.py +239 -239
- package/vendor/Server/Skills/rn-library-known-issue-check/SKILL.md +263 -263
- package/vendor/Server/Skills/rn-library-known-issue-check/assets/REPORT_TEMPLATE.md +96 -96
- package/vendor/Server/Skills/rn-library-known-issue-check/references/COMPLIANCE_CHECKLIST.md +57 -57
- package/vendor/Server/Skills/rn-library-known-issue-check/references/INSPECTION_GUIDE.md +99 -99
- package/vendor/Server/Skills/rn-library-known-issue-check/references/PRESCREEN_GUIDE.md +64 -64
- package/vendor/Server/Skills/rn-library-known-issue-check/references/SOURCE_PREP_GUIDE.md +74 -74
- package/vendor/Server/Skills/rn-library-known-issue-check/scripts/validate-known-issue-report.py +164 -164
- package/vendor/Server/Skills/rn-library-memory-leak-check/SKILL.md +356 -339
- package/vendor/Server/Skills/rn-library-memory-leak-check/assets/REPORT_TEMPLATE.md +85 -83
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/CHECKLIST.md +905 -859
- package/vendor/Server/Skills/rn-library-memory-leak-check/references/HARMONY_CODE_PATTERNS.md +124 -122
- package/vendor/Server/Skills/rn-library-memory-leak-check/scripts/scan_harmony_code.py +287 -279
- package/vendor/Server/Skills/rn-library-stability-check/SKILL.md +273 -273
- package/vendor/Server/Skills/rn-library-stability-check/assets/REPORT_TEMPLATE.md +129 -129
- package/vendor/Server/Skills/rn-library-stability-check/references/CHECKLIST.md +581 -581
- package/vendor/Server/Skills/rn-library-stability-check/references/SCORING_RULES.md +138 -138
- package/vendor/Server/Skills/rn-library-stability-check/scripts/scan-harmony-code.py +168 -168
- package/vendor/Server/Skills/rn-library-test-coverage-check/SKILL.md +526 -506
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/CHECKLIST.md +321 -280
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/DEMO_LOCATION.md +221 -221
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/REPORT_TEMPLATE.md +220 -209
- package/vendor/Server/Skills/rn-library-test-coverage-check/references/SCRIPT_USAGE.md +325 -325
- package/vendor/Server/Skills/rn-ohos-xts-generator/SKILL.md +279 -279
- package/vendor/Server/Skills/rn-ohos-xts-generator/assets/TEST_FILE_TEMPLATES.md +404 -404
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_TROUBLESHOOTING.md +185 -185
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/BUILD_WORKFLOW.md +265 -265
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COMMON_CONFIG.md +189 -189
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/CONFIG_GUIDE.md +203 -203
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/COVERAGE_ANALYZER.md +147 -147
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/DESIGN_DOC_GUIDE.md +148 -148
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_FLOW.md +165 -165
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/GENERATION_STRATEGY.md +195 -195
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/HARMONY_SCANNER.md +249 -249
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/JEST_FRAMEWORK.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/PLATFORM_COMPAT.md +161 -161
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/RN_TEST_PATTERNS.md +413 -413
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/SOURCE_PARSER.md +235 -235
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TEST_CONVENTIONS.md +245 -245
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/TROUBLESHOOTING.md +282 -282
- package/vendor/Server/Skills/rn-ohos-xts-generator/references/USAGE_GUIDE.md +251 -251
- package/vendor/Server/Skills/rnoh-cptf-api-test/SKILL.md +469 -469
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/CPTF_TEST_TEMPLATE.md +310 -310
- package/vendor/Server/Skills/rnoh-cptf-api-test/assets/DEMO_PAGE_TEMPLATE.md +303 -303
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/CPTF_TEST_GENERATION_GUIDE.md +421 -421
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/DEMO_GENERATION_GUIDE.md +358 -358
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/QUALITY_CHECKLIST.md +114 -114
- package/vendor/Server/Skills/rnoh-cptf-api-test/references/SPEC_PARSING_GUIDE.md +274 -274
- package/vendor/Server/Skills/rnoh-cptf-api-test/scripts/validate-rnoh-cptf-api-test.sh +185 -185
- package/vendor/Server/Skills/rnoh-cptf-demo-test/SKILL.md +191 -191
- package/vendor/Server/Skills/rnoh-cptf-demo-test/assets/TEST_TEMPLATE.md +216 -216
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/CPTF_SETUP.md +107 -107
- package/vendor/Server/Skills/rnoh-cptf-demo-test/references/DEMO_ANALYSIS.md +120 -120
- package/vendor/Server/Skills/rnoh-cptf-demo-test/scripts/validate-rnoh-cptf-test.sh +108 -108
- package/vendor/Server/Skills/rnoh-cptf-test-run/SKILL.md +237 -237
- package/vendor/Server/Skills/rnoh-cptf-test-run/references/DEBUG_PLAYBOOK.md +261 -261
- package/vendor/Server/Skills/rnoh-cptf-test-run/scripts/validate-run-env.sh +112 -112
- package/vendor/Server/Skills/rnoh-lib-code-adapt/SKILL.md +497 -497
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/adapt-checklist.md +270 -270
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/api-migration-checklist.md +164 -164
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/common-compile-errors.md +556 -556
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/deveco-cli-tools.md +459 -459
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/edge-cases.md +65 -65
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/har-tgz-build.md +512 -512
- package/vendor/Server/Skills/rnoh-lib-code-adapt/references/version-compat-matrix.md +132 -132
- package/vendor/Server/Skills/rnoh-lib-code-adapt/scripts/auto-integrate.sh +424 -424
- package/vendor/Server/Skills/rnoh-lib-demo-coverage/SKILL.md +137 -137
- package/vendor/Server/Skills/rnoh-lib-demo-create/SKILL.md +306 -306
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/DEMO_PAGE_TEMPLATE.md +485 -485
- package/vendor/Server/Skills/rnoh-lib-demo-create/assets/INDEX_TEMPLATE.md +172 -172
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/DEMO_CODE_RULES.md +422 -422
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/QUALITY_CHECKLIST.md +95 -95
- package/vendor/Server/Skills/rnoh-lib-demo-create/references/SOURCE_EXPLORATION.md +169 -169
- package/vendor/Server/Skills/rnoh-lib-demo-doc/SKILL.md +554 -554
- package/vendor/Server/Skills/rnoh-lib-demo-doc/assets/DEMO_DOC_TEMPLATE.md +106 -106
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/COVERAGE_INCREMENTAL.md +216 -216
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/DEMO_DESIGN_RULES.md +413 -413
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/OUTPUT_FORMAT.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-demo-doc/references/QUALITY_CHECKLIST.md +98 -98
- package/vendor/Server/Skills/rnoh-lib-func-test/SKILL.md +337 -337
- package/vendor/Server/Skills/rnoh-lib-rnt-search/SKILL.md +722 -722
- package/vendor/Server/Skills/rnoh-lib-rnt-search/assets/PORT_REPORT_TEMPLATE.md +219 -219
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/DEMO_PORTING_GUIDE.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/PORT_VERIFICATION.md +269 -269
- package/vendor/Server/Skills/rnoh-lib-rnt-search/references/RNT_PROJECT_STRUCTURE.md +173 -173
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/analyze-demo-deps.cjs +267 -267
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/detect-rnoh-version.cjs +174 -174
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/find-rnt-demo.sh +111 -111
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/port-demo.sh +186 -186
- package/vendor/Server/Skills/rnoh-lib-rnt-search/scripts/read-lib-meta.cjs +150 -150
- package/vendor/Server/Skills/rnoh-lib-test-align/SKILL.md +296 -296
- package/vendor/Server/Skills/rnoh-lib-test-align/references/jest-troubleshooting.md +371 -371
- package/vendor/Server/Skills/rnoh-lib-test-align/references/port-test-demo-guide.md +212 -212
- package/vendor/Server/Skills/rnoh-lib-test-align/references/runtime-troubleshooting.md +345 -345
- package/vendor/Server/Skills/rnoh-lib-test-align/references/unit-test-template.md +223 -223
- package/vendor/Server/Skills/rnoh-lib-test-align/scripts/port-test-demo.sh +1053 -1053
- package/vendor/Server/Skills/rnoh-lib-version-diff/SKILL.md +295 -255
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_ADAPTATION.md +82 -77
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/OHOS_API_LOOKUP.md +224 -224
- package/vendor/Server/Skills/rnoh-lib-version-diff/references/script-reference.md +175 -174
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/detect-upstream-version.js +967 -967
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/generate-diff.js +1798 -1798
- package/vendor/Server/Skills/rnoh-lib-version-diff/scripts/package.json +5 -5
- package/vendor/Server/Skills/rnoh-lib-version-diff/templates/report-template.md +180 -137
- package/vendor/Server/Skills/rnoh-lib-xts-coverage/SKILL.md +145 -145
- package/vendor/Server/Skills/skill-generator/SKILL.md +365 -365
- package/vendor/Server/Skills/skill-generator/assets/SKILL_TEMPLATE.md +183 -183
- package/vendor/Server/Skills/skill-generator/references/COMPLIANCE_CHECKLIST.md +82 -82
- package/vendor/Server/Skills/skill-generator/references/KB_QUERY_GUIDE.md +110 -110
- package/vendor/Server/Skills/skill-generator/references/MCP_TOOL_DISCOVERY.md +122 -122
- package/vendor/Server/Skills/skill-generator/references/SKILL_SPEC.md +121 -121
- package/vendor/Server/Skills/skill-generator/scripts/validate-skill.cjs +259 -259
- package/vendor/Server/Skills/task-analysis/SKILL.md +234 -234
- package/vendor/Server/Skills/task-analysis/assets/OUTPUT_EXAMPLES.md +160 -160
- package/vendor/Server/Skills/task-analysis/references/ACCEPTANCE_CRITERIA_GUIDE.md +190 -190
- package/vendor/Server/Skills/task-analysis/references/ANALYSIS_SCHEMA.md +224 -224
- package/vendor/Server/Skills/task-analysis/references/INTEGRATION_CONTEXT.md +162 -162
- package/vendor/Server/Skills/task-analysis/references/LESSONS_LEARNED.md +55 -55
- package/vendor/Server/Skills/task-analysis/references/REPLAN_CONTEXT_GUIDE.md +126 -126
- package/vendor/Server/Skills/task-analysis/scripts/validate-analysis-output.sh +256 -256
- package/vendor/Server/Skills/task-decomposition/SKILL.md +528 -528
- package/vendor/Server/Skills/task-decomposition/assets/OUTPUT_EXAMPLES.md +451 -451
- package/vendor/Server/Skills/task-decomposition/references/ACCEPTANCE_CRITERIA_GUIDE.md +179 -179
- package/vendor/Server/Skills/task-decomposition/references/DEPENDENCY_GRAPH_GUIDE.md +152 -152
- package/vendor/Server/Skills/task-decomposition/references/INTEGRATION_CONTEXT.md +175 -175
- package/vendor/Server/Skills/task-decomposition/references/REPLAN_CONTEXT_GUIDE.md +195 -195
- package/vendor/Server/Skills/task-decomposition/references/TASK_DECOMPOSITION_TEMPLATES.md +226 -226
- package/vendor/Server/Skills/task-decomposition/scripts/list-available-skills.cjs +263 -263
- package/vendor/Server/Skills/task-decomposition/scripts/skill-blacklist.json +29 -29
- package/vendor/Server/Skills/task-decomposition/scripts/validate-decomposition-output.cjs +376 -376
- package/vendor/Server/Skills/task-decomposition/scripts/validate-param-consistency.cjs +259 -259
- package/vendor/Server/Skills/task-decomposition/scripts/validate-specified-skills.cjs +216 -216
- package/vendor/Server/Skills/task-decomposition/scripts/validate-step-graph.cjs +424 -424
- package/vendor/Server/Skills/tpc-cpp-check/SKILL.md +427 -427
- package/vendor/Server/Skills/tpc-cpp-check/references/CHECKLIST.md +214 -214
- package/vendor/Server/Skills/tpc-cpp-check/references/HPKBUILD_GUIDE.md +235 -235
- package/vendor/Server/Skills/tpc-cpp-check/references/REPORT_TEMPLATE.md +250 -250
- package/vendor/Server/TestCheck/TestCheck.js +775 -775
- package/vendor/Server/TestCheck/index.js +11 -11
- package/vendor/Server/library/McpToolGuide.js +280 -280
- package/vendor/Server/library/StatsService.js +126 -126
- package/vendor/Server/library/cstTime.js +16 -16
- package/vendor/VERSION +3 -3
- package/workflows/pr-check.mjs +105 -105
- package/workflows/pr-push.mjs +192 -192
- package/vendor/Server/Agent/SkillSelector/types.js +0 -63
|
@@ -1,586 +1,586 @@
|
|
|
1
|
-
# 文档质量检视示例
|
|
2
|
-
|
|
3
|
-
本文档展示基于一个假设的 RN 鸿蒙化三方库 `@react-native-ohos/community-netinfo` 的文档质量检视过程和输出示例。
|
|
4
|
-
|
|
5
|
-
> 说明:本示例为虚构场景,仅用于演示检视流程和报告格式。
|
|
6
|
-
|
|
7
|
-
---
|
|
8
|
-
|
|
9
|
-
## 一、输入场景
|
|
10
|
-
|
|
11
|
-
### 1.1 仓库结构
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
@react-native-ohos/community-netinfo/
|
|
15
|
-
├── README.md # 仅含安装命令,无功能说明
|
|
16
|
-
├── src/
|
|
17
|
-
│ ├── index.ts # 入口文件,export 无注释
|
|
18
|
-
│ ├── NetInfo.ts # 核心实现
|
|
19
|
-
│ └── types.ts # 类型定义,部分有注释
|
|
20
|
-
├── ohos/
|
|
21
|
-
│ ├── NetInfoTurboModule.ets # TurboModule 实现
|
|
22
|
-
│ ├── module.json5 # 权限声明
|
|
23
|
-
│ └── oh-package.json5
|
|
24
|
-
├── turbo/
|
|
25
|
-
│ └── NetInfoNativeComponent.d.ts # 类型声明,无注释
|
|
26
|
-
├── example/ # 示例目录
|
|
27
|
-
│ └── App.tsx # 示例代码
|
|
28
|
-
└── package.json # 无 CHANGELOG
|
|
29
|
-
```
|
|
30
|
-
|
|
31
|
-
### 1.2 README.md 内容
|
|
32
|
-
|
|
33
|
-
```markdown
|
|
34
|
-
# @react-native-ohos/community-netinfo
|
|
35
|
-
|
|
36
|
-
## Installation
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
npm install @react-native-ohos/community-netinfo
|
|
40
|
-
```
|
|
41
|
-
|
|
42
|
-
## Usage
|
|
43
|
-
|
|
44
|
-
```typescript
|
|
45
|
-
import NetInfo from '@react-native-ohos/community-netinfo';
|
|
46
|
-
|
|
47
|
-
NetInfo.fetch().then(state => {
|
|
48
|
-
console.log(state.type);
|
|
49
|
-
});
|
|
50
|
-
```
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
### 1.3 源码片段
|
|
54
|
-
|
|
55
|
-
```typescript
|
|
56
|
-
// src/index.ts
|
|
57
|
-
export { default as NetInfo } from './NetInfo';
|
|
58
|
-
export { NetInfoState, NetInfoSubscription } from './types';
|
|
59
|
-
|
|
60
|
-
// src/NetInfo.ts
|
|
61
|
-
export default class NetInfo {
|
|
62
|
-
static fetch(): Promise<NetInfoState> {
|
|
63
|
-
return NetInfoTurboModule.getCurrentState();
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
static addEventListener(type: string, listener: (state: NetInfoState) => void): NetInfoSubscription {
|
|
67
|
-
// ...
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
static configure(configuration: NetInfoConfiguration): void {
|
|
71
|
-
// ...
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// src/types.ts
|
|
76
|
-
export interface NetInfoState {
|
|
77
|
-
type: string;
|
|
78
|
-
isConnected: boolean;
|
|
79
|
-
isInternetReachable: boolean | null;
|
|
80
|
-
details: NetInfoDetails | null;
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
export type NetInfoSubscription = () => void;
|
|
84
|
-
```
|
|
85
|
-
|
|
86
|
-
```typescript
|
|
87
|
-
// turbo/NetInfoNativeComponent.d.ts
|
|
88
|
-
export interface Spec extends TurboModule {
|
|
89
|
-
getCurrentState(): Promise<NetInfoState>;
|
|
90
|
-
addListener(eventName: string): void;
|
|
91
|
-
removeListeners(count: number): void;
|
|
92
|
-
}
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
```json5
|
|
96
|
-
// ohos/module.json5
|
|
97
|
-
{
|
|
98
|
-
"module": {
|
|
99
|
-
"requestPermissions": [
|
|
100
|
-
{ "name": "ohos.permission.GET_NETWORK_INFO" }
|
|
101
|
-
]
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
```
|
|
105
|
-
|
|
106
|
-
---
|
|
107
|
-
|
|
108
|
-
## 二、检视结果示例
|
|
109
|
-
|
|
110
|
-
### 2.1 各维度评分明细
|
|
111
|
-
|
|
112
|
-
| 检视维度 | 权重 | 扣分 | 维度得分 | Critical数 | Major数 | Minor数 |
|
|
113
|
-
|----------|------|------|----------|-----------|---------|---------|
|
|
114
|
-
| API 文档完整性 | 20% | -20 | 0 | 1 | 4 | 1 |
|
|
115
|
-
| 鸿蒙化适配说明 | 20% | -20 | 0 | 1 | 3 | 0 |
|
|
116
|
-
| 代码仓基础信息 | 15% | -12 | 3 | 0 | 3 | 0 |
|
|
117
|
-
| 代码示例质量 | 10% | -8 | 2 | 0 | 2 | 0 |
|
|
118
|
-
| 变更记录与版本规范 | 10% | -4 | 6 | 0 | 1 | 0 |
|
|
119
|
-
| 文档与代码交叉验证 | 15% | -15 | 0 | 1 | 2 | 0 |
|
|
120
|
-
| 文档准确性与国际化 | 10% | -1 | 9 | 0 | 0 | 1 |
|
|
121
|
-
|
|
122
|
-
### 2.2 综合评分
|
|
123
|
-
|
|
124
|
-
**综合评分:20/100**
|
|
125
|
-
|
|
126
|
-
评分等级:极差
|
|
127
|
-
|
|
128
|
-
### 2.3 问题清单(摘要)
|
|
129
|
-
|
|
130
|
-
| # | 文件 | 行号 | 严重度 | 检视维度 | 编号 | 描述 |
|
|
131
|
-
|---|------|------|--------|----------|------|------|
|
|
132
|
-
| 1 | `src/NetInfo.ts` | L1 | 🔴 Critical | API 文档完整性 | AD-001 | `NetInfo` 类及所有方法无任何文档注释 |
|
|
133
|
-
| 2 | `turbo/NetInfoNativeComponent.d.ts` | L1 | 🟡 Major | API 文档完整性 | DT-001 | `.d.ts` 中 `Spec` 接口无注释 |
|
|
134
|
-
| 3 | `turbo/NetInfoNativeComponent.d.ts` | L2 | 🟡 Major | API 文档完整性 | DT-002 | `getCurrentState` 等方法无 TSDoc |
|
|
135
|
-
| 4 | `src/NetInfo.ts` | L3 | 🟡 Major | API 文档完整性 | TG-001, TG-002 | `fetch()` 缺少 `@param` 和 `@returns` |
|
|
136
|
-
| 5 | `src/NetInfo.ts` | L7 | 🟡 Major | API 文档完整性 | TG-006 | `addEventListener` 缺少 `@example` |
|
|
137
|
-
| 6 | `src/types.ts` | L1 | 🔵 Minor | API 文档完整性 | AD-004 | `NetInfoState` 注释中英混杂 |
|
|
138
|
-
| 7 | `README.md` | — | 🔴 Critical | 鸿蒙化适配说明 | HA-001 | 无任何鸿蒙化适配说明文档 |
|
|
139
|
-
| 8 | `README.md` | — | 🟡 Major | 鸿蒙化适配说明 | HA-006 | 缺少下载安装章节 |
|
|
140
|
-
| 9 | `ohos/module.json5` | L3 | 🟡 Major | 鸿蒙化适配说明 | HA-021 | `GET_NETWORK_INFO` 权限未在文档中说明 |
|
|
141
|
-
| 10 | — | — | 🟡 Major | 鸿蒙化适配说明 | HA-025 | TurboModule 库未说明 Codegen 配置 |
|
|
142
|
-
| 11 | `package.json` | — | 🟡 Major | 代码仓基础信息 | RM-005 | description 为空或缺失 |
|
|
143
|
-
| 12 | `package.json` | — | 🟡 Major | 代码仓基础信息 | RM-010 | homepage 指向上游 GitHub |
|
|
144
|
-
| 13 | `package.json` | — | 🟡 Major | 代码仓基础信息 | RM-008 | version 与 oh-package.json5 不一致 |
|
|
145
|
-
| 14 | `README.md` | — | 🟡 Major | 代码示例质量 | EX-006 | 示例未覆盖鸿蒙特有用法 |
|
|
146
|
-
| 15 | `example/App.tsx` | — | 🟡 Major | 代码示例质量 | EX-010 | 示例 import 路径可能错误 |
|
|
147
|
-
| 16 | — | — | 🟡 Major | 变更记录与版本规范 | CL-001 | 缺少 CHANGELOG.md |
|
|
148
|
-
| 17 | — | — | 🔵 Minor | 文档准确性与国际化 | AC-003 | 缺少中文文档 |
|
|
149
|
-
|
|
150
|
-
---
|
|
151
|
-
|
|
152
|
-
## 三、检视过程详解
|
|
153
|
-
|
|
154
|
-
### 3.1 Phase 1:文件收集
|
|
155
|
-
|
|
156
|
-
```bash
|
|
157
|
-
find {outputDir}/source/ohos -type f \( -name "*.md" -o -name "*.d.ts" -o -name "*.json5" -o -name "*.txt" \)
|
|
158
|
-
```
|
|
159
|
-
|
|
160
|
-
收集到的文件:
|
|
161
|
-
- `README.md`(项目入口文档)
|
|
162
|
-
- `turbo/NetInfoNativeComponent.d.ts`(类型声明)
|
|
163
|
-
- `ohos/module.json5`(配置文件)
|
|
164
|
-
- `ohos/oh-package.json5`(包配置)
|
|
165
|
-
- 无 `CHANGELOG.md` → 记录 CL-001 Major 问题
|
|
166
|
-
|
|
167
|
-
### 3.2 Phase 2:逐维度检视
|
|
168
|
-
|
|
169
|
-
#### 维度 1:API 文档完整性
|
|
170
|
-
|
|
171
|
-
扫描 `src/` 下所有 `.ts` 文件的 `export` 语句:
|
|
172
|
-
|
|
173
|
-
| 文件 | 导出项 | 有无注释 | 问题编号 | 严重度 |
|
|
174
|
-
|------|--------|---------|----------|--------|
|
|
175
|
-
| `src/index.ts` | `NetInfo` (default) | ❌ | AD-001 | Critical |
|
|
176
|
-
| `src/index.ts` | `NetInfoState` | ❌ | AD-001 | Critical |
|
|
177
|
-
| `src/index.ts` | `NetInfoSubscription` | ❌ | AD-001 | Critical |
|
|
178
|
-
| `src/NetInfo.ts` | `NetInfo.fetch()` | ❌ | TG-001, TG-002 | Major |
|
|
179
|
-
| `src/NetInfo.ts` | `NetInfo.addEventListener()` | ❌ | TG-001, TG-006 | Major |
|
|
180
|
-
| `src/NetInfo.ts` | `NetInfo.configure()` | ❌ | TG-001, TG-002 | Major |
|
|
181
|
-
| `turbo/...d.ts` | `Spec` 接口 | ❌ | DT-001 | Major |
|
|
182
|
-
| `turbo/...d.ts` | `getCurrentState()` | ❌ | DT-002 | Major |
|
|
183
|
-
|
|
184
|
-
维度扣分计算:
|
|
185
|
-
- Critical: AD-001 出现 3 次 → -8 × 3 = -24
|
|
186
|
-
- Major: 4 项 × -4 = -16
|
|
187
|
-
- Minor: 1 项 × -1 = -1
|
|
188
|
-
- 合计 = -24 + (-16) + (-1) = -41
|
|
189
|
-
- 扣分上限 = -20
|
|
190
|
-
- 维度实际扣分 = min(-20, -41) = **-20**
|
|
191
|
-
- 维度得分 = 20 + (-20) = **0**
|
|
192
|
-
|
|
193
|
-
> 注:3 个 Critical 合并为 1 条记录(AD-001),但扣分按实际发现次数计算(此处演示合并记录但扣分不合并的场景)。实际执行中,同文件多个同类 Critical 可合并为一条,扣分取该严重度的上限。
|
|
194
|
-
|
|
195
|
-
#### 维度 2:鸿蒙化适配说明
|
|
196
|
-
|
|
197
|
-
| 检查项 | 发现 | 问题编号 | 严重度 |
|
|
198
|
-
|--------|------|----------|--------|
|
|
199
|
-
| 鸿蒙化适配说明/迁移指南 | README 无任何鸿蒙化内容 | HA-001 | Critical |
|
|
200
|
-
| 下载安装章节 | 无 ohpm 集成步骤 | HA-006 | Major |
|
|
201
|
-
| 权限要求说明 | `GET_NETWORK_INFO` 未文档化 | HA-021 | Major |
|
|
202
|
-
| TurboModule 配置说明 | 未说明 Codegen 配置 | HA-025 | Major |
|
|
203
|
-
|
|
204
|
-
维度扣分:
|
|
205
|
-
- Critical: 1 × -8 = -8
|
|
206
|
-
- Major: 3 × -4 = -12
|
|
207
|
-
- 合计 = -20
|
|
208
|
-
- 扣分上限 = -20
|
|
209
|
-
- 维度实际扣分 = **-20**
|
|
210
|
-
- 维度得分 = 20 - 20 = **0**
|
|
211
|
-
|
|
212
|
-
#### 维度 3-6(同理计算,此处略)
|
|
213
|
-
|
|
214
|
-
### 3.3 Phase 3:评分计算
|
|
215
|
-
|
|
216
|
-
```
|
|
217
|
-
归零检查:
|
|
218
|
-
- 文档非完全空白(有 README,有少量示例)→ 不触发归零
|
|
219
|
-
- 核心 TurboModule 接口(Spec)无文档 → 触发归零?
|
|
220
|
-
|
|
221
|
-
判定:Spec 接口虽无注释,但 README 有基本使用示例,且接口较为简单。
|
|
222
|
-
不触发"核心接口无任何文档说明"归零规则(因 README 有用法说明)。
|
|
223
|
-
|
|
224
|
-
各维度扣分汇总:
|
|
225
|
-
- API 文档完整性: -25
|
|
226
|
-
- 鸿蒙化适配说明: -20
|
|
227
|
-
- 代码仓基础信息: -12
|
|
228
|
-
- 代码示例质量: -8
|
|
229
|
-
- 变更记录与版本规范: -4
|
|
230
|
-
- 文档准确性与国际化: -1
|
|
231
|
-
|
|
232
|
-
最终分 = max(0, 100 - 25 - 20 - 12 - 8 - 4 - 1) = max(0, 30) = 30
|
|
233
|
-
```
|
|
234
|
-
|
|
235
|
-
### 3.4 Phase 4:报告生成
|
|
236
|
-
|
|
237
|
-
生成 `文档质量检视报告.md`,格式参考 [REPORT_TEMPLATE.md](../assets/REPORT_TEMPLATE.md)。
|
|
238
|
-
|
|
239
|
-
---
|
|
240
|
-
|
|
241
|
-
## 四、常见检视场景
|
|
242
|
-
|
|
243
|
-
### 4.1 场景:文档完全空白
|
|
244
|
-
|
|
245
|
-
```
|
|
246
|
-
仓库状态:
|
|
247
|
-
- 无 README.md
|
|
248
|
-
- 无 CHANGELOG.md
|
|
249
|
-
- 源码无任何注释
|
|
250
|
-
- 无示例代码
|
|
251
|
-
|
|
252
|
-
→ 触发归零规则:文档完全空白
|
|
253
|
-
→ 最终分 = 0
|
|
254
|
-
```
|
|
255
|
-
|
|
256
|
-
### 4.2 场景:核心 TurboModule 无文档
|
|
257
|
-
|
|
258
|
-
```
|
|
259
|
-
仓库状态:
|
|
260
|
-
- 有 README.md(含安装说明)
|
|
261
|
-
- 有 CHANGELOG.md
|
|
262
|
-
- 源码有部分注释
|
|
263
|
-
- 但核心 TurboModule Spec 接口完全无注释,README 也未描述
|
|
264
|
-
|
|
265
|
-
→ 触发归零规则:核心 TurboModule/NAPI 接口无任何文档说明
|
|
266
|
-
→ 最终分 = 0
|
|
267
|
-
```
|
|
268
|
-
|
|
269
|
-
### 4.3 场景:文档质量优秀
|
|
270
|
-
|
|
271
|
-
```
|
|
272
|
-
仓库状态:
|
|
273
|
-
- README.md 结构完整(功能简介、安装、使用、API 参考、许可证)
|
|
274
|
-
- CHANGELOG.md 使用 Keep a Changelog 格式,记录了鸿蒙化变更
|
|
275
|
-
- 所有 export API 有完整 TSDoc 注释(@param/@returns/@example)
|
|
276
|
-
- .d.ts 文件注释完整
|
|
277
|
-
- 有 example/ 目录,示例代码可运行
|
|
278
|
-
- 有鸿蒙化适配说明章节
|
|
279
|
-
- 双语文档(中英文同步)
|
|
280
|
-
|
|
281
|
-
检视发现:
|
|
282
|
-
- Minor: 2 个方法缺少 @since 标注 → -1 × 2 = -2
|
|
283
|
-
- Minor: CHANGELOG 格式略有偏差 → -1
|
|
284
|
-
|
|
285
|
-
最终分 = max(0, 100 - 2 - 1) = 97
|
|
286
|
-
评分等级:优秀
|
|
287
|
-
```
|
|
288
|
-
|
|
289
|
-
### 4.4 场景:示例代码使用已废弃 API
|
|
290
|
-
|
|
291
|
-
```
|
|
292
|
-
仓库状态:
|
|
293
|
-
- README 示例代码调用 NetInfo.getConnectionInfo()
|
|
294
|
-
- 但源码中该方法已标记 @deprecated,替代方法为 NetInfo.fetch()
|
|
295
|
-
|
|
296
|
-
→ 检查项 EX-002 (Critical): 示例代码使用已废弃 API
|
|
297
|
-
→ 扣分 -8
|
|
298
|
-
→ 修复建议:更新示例代码使用 NetInfo.fetch()
|
|
299
|
-
```
|
|
300
|
-
|
|
301
|
-
### 4.5 场景:跳转文档模式(极简 README + 外部 usage-docs)
|
|
302
|
-
|
|
303
|
-
```
|
|
304
|
-
仓库:rntpc_react-native-network-info
|
|
305
|
-
文档模式:跳转文档
|
|
306
|
-
|
|
307
|
-
仓库本地文件:
|
|
308
|
-
- README.md:仅含包名 + "文档"章节(链接指向 usage-docs)+ 许可证,约 20 行
|
|
309
|
-
- README_zh.md:不存在(中英文在同一 README 中以链接形式提供)
|
|
310
|
-
- CHANGELOG.md:不存在
|
|
311
|
-
- NetworkInfo.d.ts:类型声明文件
|
|
312
|
-
- harmony/:鸿蒙化实现代码
|
|
313
|
-
- src/:JS/TS 层代码
|
|
314
|
-
|
|
315
|
-
外部文档(usage-docs):
|
|
316
|
-
- 中文:https://gitcode.com/OpenHarmony-RN/usage-docs/blob/master/zh-cn/react-native-network-info.md
|
|
317
|
-
- 英文:https://gitcode.com/OpenHarmony-RN/usage-docs/blob/master/en/react-native-network-info.md
|
|
318
|
-
- 外部文档包含:安装与使用、Link、约束与限制、静态方法 API 表格、遗留问题
|
|
319
|
-
|
|
320
|
-
检视过程:
|
|
321
|
-
|
|
322
|
-
Phase 1 识别:
|
|
323
|
-
- README 中包含 `OpenHarmony-RN/usage-docs` 链接 → 跳转模式
|
|
324
|
-
- 收集本地文件 + 获取外部文档
|
|
325
|
-
|
|
326
|
-
Phase 2 检视要点:
|
|
327
|
-
- README.md 极简**不是问题**,这是跳转模式的设计选择,不记录 RM-002/RM-004
|
|
328
|
-
- 主要检视对象转为外部 usage-docs 内容
|
|
329
|
-
- 检查外部文档是否包含标准章节:安装、链接、约束与限制、接口说明
|
|
330
|
-
- 检查外部文档的 API 支持矩阵与本地代码实现的一致性
|
|
331
|
-
- CHANGELOG 缺失仍需记录(CL-001 Major),因为 CHANGELOG 是本地文件
|
|
332
|
-
- 源码注释检查仍需进行(AD/DT/NP/NC/CE/TG 系列检查项仍适用)
|
|
333
|
-
|
|
334
|
-
检视发现:
|
|
335
|
-
| # | 文件 | 严重度 | 编号 | 描述 |
|
|
336
|
-
|---|------|--------|------|------|
|
|
337
|
-
| 1 | README.md | Minor | RM-003 | 缺少独立中文 README(README_zh.md) |
|
|
338
|
-
| 2 | — | Major | CL-001 | 缺少 CHANGELOG.md |
|
|
339
|
-
| 3 | NetworkInfo.d.ts | Major | DT-001 | TurboModule Spec 接口缺少注释 |
|
|
340
|
-
| 4 | external-docs | Major | HA-019 | 外部文档约束与限制中缺少编译运行 API 版本要求 |
|
|
341
|
-
| 5 | external-docs | Minor | HA-023 | 外部文档遗留问题章节为空 |
|
|
342
|
-
|
|
343
|
-
评分影响分析:
|
|
344
|
-
- 跳转模式下的外部文档提供了完整的安装、链接、接口说明 → README 维度不扣大分
|
|
345
|
-
- 但外部文档的约束与限制不够完整 → 鸿蒙化适配说明维度扣分
|
|
346
|
-
- 源码注释和 CHANGELOG 问题仍需独立计算
|
|
347
|
-
|
|
348
|
-
注意:
|
|
349
|
-
- ❌ 错误做法:因 README 极简直接记录 RM-002/RM-004 Major 扣分
|
|
350
|
-
- ✅ 正确做法:识别为跳转模式后,转而检视外部文档的完整性
|
|
351
|
-
```
|
|
352
|
-
|
|
353
|
-
### 4.6 场景:内嵌文档模式(完整 README_zh.md)
|
|
354
|
-
|
|
355
|
-
```
|
|
356
|
-
仓库:rntpc_react-native-svg
|
|
357
|
-
文档模式:内嵌文档
|
|
358
|
-
|
|
359
|
-
仓库本地文件:
|
|
360
|
-
- README.md:英文版完整文档(7+ 章节:简介、安装、链接、约束、示例、接口说明、开源协议)
|
|
361
|
-
- README_zh.md:中文版完整文档,内容与英文版对应
|
|
362
|
-
- CHANGELOG.md:存在
|
|
363
|
-
- harmony/:鸿蒙化实现代码(含 C++)
|
|
364
|
-
|
|
365
|
-
检视过程:
|
|
366
|
-
|
|
367
|
-
Phase 1 识别:
|
|
368
|
-
- README.md 长度超过 200 行,含完整章节和代码示例 → 内嵌模式
|
|
369
|
-
- 不需要获取外部文档
|
|
370
|
-
|
|
371
|
-
Phase 2 检视要点:
|
|
372
|
-
- README.md 和 README_zh.md 是主要检视对象
|
|
373
|
-
- 检查中英文版本内容是否同步
|
|
374
|
-
- 检查"接口说明"中的 API 支持矩阵与源码实现是否一致
|
|
375
|
-
- 检查"约束与限制"中的兼容性和 API 版本要求
|
|
376
|
-
- 检查"链接"章节中的 CMakeLists/PackageProvider 配置步骤
|
|
377
|
-
|
|
378
|
-
典型发现:
|
|
379
|
-
- README 中接口表格可能标记 `Yes` 但源码实际未实现 → AD-013
|
|
380
|
-
- 中英文版本不同步(英文版缺少某些新增内容)→ AC-003/AC-003
|
|
381
|
-
- CMakeLists 配置步骤描述与实际文件不匹配 → AC-001
|
|
382
|
-
```
|
|
383
|
-
|
|
384
|
-
---
|
|
385
|
-
|
|
386
|
-
## 五、检视技巧
|
|
387
|
-
|
|
388
|
-
### 5.1 快速识别文档覆盖率
|
|
389
|
-
|
|
390
|
-
```bash
|
|
391
|
-
# 统计 export 数量
|
|
392
|
-
grep -rn "export " src/ ohos/ --include="*.ts" --include="*.ets" | wc -l
|
|
393
|
-
|
|
394
|
-
# 统计有注释的 export 数量(注释通常在 export 前一行或前几行)
|
|
395
|
-
# 手动检查:逐个 export 项检查上方是否有 /** */ 注释
|
|
396
|
-
```
|
|
397
|
-
|
|
398
|
-
### 5.2 高效检视顺序
|
|
399
|
-
|
|
400
|
-
1. **先看 README** → 建立整体认知,快速判断文档完善程度
|
|
401
|
-
2. **再看 .d.ts** → 理解 API 表面,检查类型声明注释
|
|
402
|
-
3. **然后看源码注释** → 深入实现细节,检查 TSDoc 标签
|
|
403
|
-
4. **最后看 CHANGELOG 和 example** → 验证变更记录和示例质量
|
|
404
|
-
|
|
405
|
-
### 5.3 识别常见问题模式
|
|
406
|
-
|
|
407
|
-
| 问题模式 | 特征 | 快速检测方法 |
|
|
408
|
-
|----------|------|-------------|
|
|
409
|
-
| 注释占位符 | `/** TODO */` `/** xxx */` | grep 搜索 TODO/xxx/FIXME |
|
|
410
|
-
| 废弃 API 未标注 | 源码注释含 "deprecated" 但无 `@deprecated` 标签 | grep "deprecated" 对比 `@deprecated` |
|
|
411
|
-
| 版本号不一致 | README 版本 ≠ package.json 版本 | 对比两处版本号 |
|
|
412
|
-
| 示例无 await | 异步方法示例直接使用返回值 | 检查 Promise 返回的方法示例是否含 await |
|
|
413
|
-
| 权限未说明 | module.json5 有权限但 README 未提及 | 对比 module.json5 权限列表与 README 说明 |
|
|
414
|
-
| 跳转模式误判 | 极简 README 被错误扣分为"文档缺失" | 先检查 README 是否含 usage-docs 链接 |
|
|
415
|
-
| 外部文档滞后 | usage-docs 版本落后于代码仓库 | 对比外部文档版本号与 package.json 版本 |
|
|
416
|
-
| 接口矩阵不准确 | API 支持矩阵标记 `Yes` 但源码未实现 | 抽查外部文档中的 Yes/No 标记与源码实现 |
|
|
417
|
-
|
|
418
|
-
### 5.4 跳转文档模式快速判定流程
|
|
419
|
-
|
|
420
|
-
```
|
|
421
|
-
1. 读取 README.md
|
|
422
|
-
2. 搜索 "usage-docs" 或 "OpenHarmony-RN"
|
|
423
|
-
├─ 找到 → 跳转模式
|
|
424
|
-
│ ├─ 提取中英文链接
|
|
425
|
-
│ ├─ 获取外部文档内容(保存到 external-docs/)
|
|
426
|
-
│ ├─ 以外部文档为主要检视对象
|
|
427
|
-
│ └─ README 极简不算缺陷
|
|
428
|
-
└─ 未找到 → 内嵌模式
|
|
429
|
-
├─ 以本地 README.md/README_zh.md 为主要检视对象
|
|
430
|
-
└─ 按 CHECK_CHECKLIST 常规流程检视
|
|
431
|
-
```
|
|
432
|
-
|
|
433
|
-
---
|
|
434
|
-
|
|
435
|
-
## 六、Phase 2.5 交叉验证场景示例
|
|
436
|
-
|
|
437
|
-
> 以下场景均以 `接口规格说明.md` 为权威基准,与用户文档(README/外部 usage-docs)进行双向比对。
|
|
438
|
-
|
|
439
|
-
### 6.1 场景:文档描述的方法在接口规格中不存在
|
|
440
|
-
|
|
441
|
-
```
|
|
442
|
-
仓库:@react-native-ohos/community-netinfo
|
|
443
|
-
文档模式:跳转文档
|
|
444
|
-
|
|
445
|
-
外部 usage-docs 描述:
|
|
446
|
-
- 静态方法表格列出 `getConnectionInfo()` → 返回 `NetInfoState`
|
|
447
|
-
- 静态方法表格列出 `fetch()` → 返回 `Promise<NetInfoState>`
|
|
448
|
-
|
|
449
|
-
接口规格说明文档(第3章 JS/TS 导出):
|
|
450
|
-
- fetch(): Promise<NetInfoState> ✅
|
|
451
|
-
- addEventListener(): NetInfoSubscription ✅
|
|
452
|
-
- 无 `getConnectionInfo()` ❌
|
|
453
|
-
|
|
454
|
-
交叉验证结果:
|
|
455
|
-
| # | API 名称 | 差异类型 | 接口规格 | 文档描述 | 编号 | 严重度 |
|
|
456
|
-
|---|----------|----------|----------|----------|------|--------|
|
|
457
|
-
| 1 | `getConnectionInfo()` | 文档→规格:API 不存在 | 无定义 | 有描述 | XC-003 | Critical |
|
|
458
|
-
|
|
459
|
-
→ 修复建议:从外部文档删除 `getConnectionInfo()` 描述,或在代码中补充实现
|
|
460
|
-
```
|
|
461
|
-
|
|
462
|
-
### 6.2 场景:返回类型不一致(同步 vs 异步)
|
|
463
|
-
|
|
464
|
-
```
|
|
465
|
-
仓库:@react-native-ohos/react-native-svg
|
|
466
|
-
文档模式:内嵌文档
|
|
467
|
-
|
|
468
|
-
README 接口表格描述:
|
|
469
|
-
- `getSvgData(): SvgData` → 标注为同步返回
|
|
470
|
-
|
|
471
|
-
接口规格说明文档(第3章):
|
|
472
|
-
- `getSvgData(): Promise<SvgData>` → 定义为异步方法
|
|
473
|
-
|
|
474
|
-
交叉验证结果:
|
|
475
|
-
| # | API 名称 | 差异类型 | 接口规格 | 文档描述 | 编号 | 严重度 |
|
|
476
|
-
|---|----------|----------|----------|----------|------|--------|
|
|
477
|
-
| 1 | `getSvgData()` | 返回类型不一致 | Promise\<SvgData\> | SvgData | XC-006 | Critical |
|
|
478
|
-
|
|
479
|
-
→ 这是最常见的准确性问题:文档遗漏了 async/Promise 标注,用户按同步方式调用会导致运行时错误
|
|
480
|
-
→ 修复建议:文档更新为 `getSvgData(): Promise<SvgData>`,示例代码添加 await
|
|
481
|
-
```
|
|
482
|
-
|
|
483
|
-
### 6.3 场景:权限声明与文档不一致
|
|
484
|
-
|
|
485
|
-
```
|
|
486
|
-
仓库:@react-native-ohos/react-native-network-info
|
|
487
|
-
文档模式:跳转文档
|
|
488
|
-
|
|
489
|
-
module.json5 实际声明:
|
|
490
|
-
- ohos.permission.GET_NETWORK_INFO
|
|
491
|
-
- ohos.permission.GET_WIFI_INFO
|
|
492
|
-
|
|
493
|
-
外部 usage-docs"约束与限制"章节:
|
|
494
|
-
- 仅说明"需要网络权限"
|
|
495
|
-
- 未说明需要 WiFi 信息权限
|
|
496
|
-
|
|
497
|
-
交叉验证结果:
|
|
498
|
-
| # | 差异类型 | 文档描述 | module.json5 实际 | 编号 | 严重度 |
|
|
499
|
-
|---|----------|----------|-------------------|------|--------|
|
|
500
|
-
| 1 | 权限未说明 | 文档仅提及网络权限 | 还声明了 GET_WIFI_INFO | HA-021 | Major |
|
|
501
|
-
|
|
502
|
-
→ 修复建议:在文档"约束与限制"中补充说明需要 WiFi 信息权限
|
|
503
|
-
```
|
|
504
|
-
|
|
505
|
-
### 6.4 场景:接口规格中的 API 在用户文档中无描述
|
|
506
|
-
|
|
507
|
-
```
|
|
508
|
-
仓库:@react-native-ohos/react-native-device-info
|
|
509
|
-
文档模式:跳转文档
|
|
510
|
-
|
|
511
|
-
接口规格说明文档定义的 API(第3章 JS/TS 导出):
|
|
512
|
-
- getDeviceId() → 文档有描述 ✅
|
|
513
|
-
- getSystemName() → 文档有描述 ✅
|
|
514
|
-
- getBuildId() → 文档无描述 ❌
|
|
515
|
-
- isTablet() → 文档无描述 ❌
|
|
516
|
-
- getInstallerPackageName() → 文档无描述 ❌
|
|
517
|
-
|
|
518
|
-
外部 usage-docs API 表格:
|
|
519
|
-
- 仅列出 getDeviceId() 和 getSystemName()
|
|
520
|
-
|
|
521
|
-
交叉验证结果:
|
|
522
|
-
| # | API 名称 | 差异类型 | 编号 | 严重度 |
|
|
523
|
-
|---|----------|----------|------|--------|
|
|
524
|
-
| 1 | `getBuildId()` | 规格→文档:无描述 | XC-002 | Major |
|
|
525
|
-
| 2 | `isTablet()` | 规格→文档:无描述 | XC-002 | Major |
|
|
526
|
-
| 3 | `getInstallerPackageName()` | 规格→文档:无描述 | XC-002 | Major |
|
|
527
|
-
|
|
528
|
-
→ 修复建议:在外部文档 API 表格中补充这三个方法的描述和支持状态
|
|
529
|
-
```
|
|
530
|
-
|
|
531
|
-
### 6.5 场景:鸿蒙化差异与文档不一致
|
|
532
|
-
|
|
533
|
-
```
|
|
534
|
-
仓库:@react-native-ohos/community-netinfo
|
|
535
|
-
文档模式:跳转文档
|
|
536
|
-
|
|
537
|
-
接口规格说明文档第5章鸿蒙化差异:
|
|
538
|
-
- 第5.1节缺失接口:useNetInfo() ❌、getDefaultInterface() ❌
|
|
539
|
-
- 第5.2节新增接口:isDefaultNetwork() 🆕
|
|
540
|
-
- 签名变更:fetch(type?: string) → 鸿蒙版 fetch()(缺少 type 参数)
|
|
541
|
-
|
|
542
|
-
外部 usage-docs API 表格:
|
|
543
|
-
- fetch() → 描述为无参数 ✅(与鸿蒙化签名一致)
|
|
544
|
-
- useNetInfo() → 仍标记为支持 ❌(接口规格标记为缺失)
|
|
545
|
-
- getDefaultInterface() → 仍标记为支持 ❌(接口规格标记为缺失)
|
|
546
|
-
- isDefaultNetwork() → 无描述 ❌(接口规格标记为新增)
|
|
547
|
-
|
|
548
|
-
交叉验证结果:
|
|
549
|
-
| # | API 名称 | 差异类型 | 接口规格 | 文档描述 | 编号 | 严重度 |
|
|
550
|
-
|---|----------|----------|----------|----------|------|--------|
|
|
551
|
-
| 1 | `useNetInfo()` | 鸿蒙化差异不一致 | 第5.1节标记缺失 | 标记为支持 | XC-008 | Critical |
|
|
552
|
-
| 2 | `getDefaultInterface()` | 鸿蒙化差异不一致 | 第5.1节标记缺失 | 标记为支持 | XC-008 | Critical |
|
|
553
|
-
| 3 | `isDefaultNetwork()` | 新增接口未描述 | 第5.2节标记新增 | 无描述 | XC-009 | Major |
|
|
554
|
-
|
|
555
|
-
→ 修复建议:更新外部文档,useNetInfo/getDefaultInterface 标记为不支持,补充 isDefaultNetwork 描述
|
|
556
|
-
```
|
|
557
|
-
|
|
558
|
-
### 6.6 场景:外部文档接口支持矩阵与接口规格不一致
|
|
559
|
-
|
|
560
|
-
```
|
|
561
|
-
仓库:@react-native-ohos/react-native-svg
|
|
562
|
-
文档模式:跳转文档
|
|
563
|
-
|
|
564
|
-
外部 usage-docs API 支持矩阵(部分):
|
|
565
|
-
| 属性 | HarmonyOS Support |
|
|
566
|
-
|------|-------------------|
|
|
567
|
-
| Circle | Yes |
|
|
568
|
-
| Ellipse | Yes |
|
|
569
|
-
| TextPath | Yes |
|
|
570
|
-
| Marker | No |
|
|
571
|
-
| ForeignObject | No |
|
|
572
|
-
|
|
573
|
-
接口规格说明文档第5.1节缺失接口:
|
|
574
|
-
- TextPath ❌(文档标记 Yes 但接口规格标记缺失)
|
|
575
|
-
|
|
576
|
-
接口规格说明文档第3章导出:
|
|
577
|
-
- ForeignObject → 有定义(文档标记 No 但接口规格有导出)
|
|
578
|
-
|
|
579
|
-
交叉验证结果:
|
|
580
|
-
| # | API 名称 | 差异类型 | 接口规格 | 文档标记 | 编号 | 严重度 |
|
|
581
|
-
|---|----------|----------|----------|----------|------|--------|
|
|
582
|
-
| 1 | TextPath | 支持矩阵不一致 | 第5.1节标记缺失 | Yes | XC-008 | Critical |
|
|
583
|
-
| 2 | ForeignObject | 支持矩阵不一致 | 第3章有导出 | No | AD-013 | Major |
|
|
584
|
-
|
|
585
|
-
→ 修复建议:更新外部文档支持矩阵,TextPath 改为 No,ForeignObject 改为 Yes
|
|
586
|
-
```
|
|
1
|
+
# 文档质量检视示例
|
|
2
|
+
|
|
3
|
+
本文档展示基于一个假设的 RN 鸿蒙化三方库 `@react-native-ohos/community-netinfo` 的文档质量检视过程和输出示例。
|
|
4
|
+
|
|
5
|
+
> 说明:本示例为虚构场景,仅用于演示检视流程和报告格式。
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## 一、输入场景
|
|
10
|
+
|
|
11
|
+
### 1.1 仓库结构
|
|
12
|
+
|
|
13
|
+
```
|
|
14
|
+
@react-native-ohos/community-netinfo/
|
|
15
|
+
├── README.md # 仅含安装命令,无功能说明
|
|
16
|
+
├── src/
|
|
17
|
+
│ ├── index.ts # 入口文件,export 无注释
|
|
18
|
+
│ ├── NetInfo.ts # 核心实现
|
|
19
|
+
│ └── types.ts # 类型定义,部分有注释
|
|
20
|
+
├── ohos/
|
|
21
|
+
│ ├── NetInfoTurboModule.ets # TurboModule 实现
|
|
22
|
+
│ ├── module.json5 # 权限声明
|
|
23
|
+
│ └── oh-package.json5
|
|
24
|
+
├── turbo/
|
|
25
|
+
│ └── NetInfoNativeComponent.d.ts # 类型声明,无注释
|
|
26
|
+
├── example/ # 示例目录
|
|
27
|
+
│ └── App.tsx # 示例代码
|
|
28
|
+
└── package.json # 无 CHANGELOG
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
### 1.2 README.md 内容
|
|
32
|
+
|
|
33
|
+
```markdown
|
|
34
|
+
# @react-native-ohos/community-netinfo
|
|
35
|
+
|
|
36
|
+
## Installation
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npm install @react-native-ohos/community-netinfo
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Usage
|
|
43
|
+
|
|
44
|
+
```typescript
|
|
45
|
+
import NetInfo from '@react-native-ohos/community-netinfo';
|
|
46
|
+
|
|
47
|
+
NetInfo.fetch().then(state => {
|
|
48
|
+
console.log(state.type);
|
|
49
|
+
});
|
|
50
|
+
```
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
### 1.3 源码片段
|
|
54
|
+
|
|
55
|
+
```typescript
|
|
56
|
+
// src/index.ts
|
|
57
|
+
export { default as NetInfo } from './NetInfo';
|
|
58
|
+
export { NetInfoState, NetInfoSubscription } from './types';
|
|
59
|
+
|
|
60
|
+
// src/NetInfo.ts
|
|
61
|
+
export default class NetInfo {
|
|
62
|
+
static fetch(): Promise<NetInfoState> {
|
|
63
|
+
return NetInfoTurboModule.getCurrentState();
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
static addEventListener(type: string, listener: (state: NetInfoState) => void): NetInfoSubscription {
|
|
67
|
+
// ...
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
static configure(configuration: NetInfoConfiguration): void {
|
|
71
|
+
// ...
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// src/types.ts
|
|
76
|
+
export interface NetInfoState {
|
|
77
|
+
type: string;
|
|
78
|
+
isConnected: boolean;
|
|
79
|
+
isInternetReachable: boolean | null;
|
|
80
|
+
details: NetInfoDetails | null;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
export type NetInfoSubscription = () => void;
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
```typescript
|
|
87
|
+
// turbo/NetInfoNativeComponent.d.ts
|
|
88
|
+
export interface Spec extends TurboModule {
|
|
89
|
+
getCurrentState(): Promise<NetInfoState>;
|
|
90
|
+
addListener(eventName: string): void;
|
|
91
|
+
removeListeners(count: number): void;
|
|
92
|
+
}
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
```json5
|
|
96
|
+
// ohos/module.json5
|
|
97
|
+
{
|
|
98
|
+
"module": {
|
|
99
|
+
"requestPermissions": [
|
|
100
|
+
{ "name": "ohos.permission.GET_NETWORK_INFO" }
|
|
101
|
+
]
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
---
|
|
107
|
+
|
|
108
|
+
## 二、检视结果示例
|
|
109
|
+
|
|
110
|
+
### 2.1 各维度评分明细
|
|
111
|
+
|
|
112
|
+
| 检视维度 | 权重 | 扣分 | 维度得分 | Critical数 | Major数 | Minor数 |
|
|
113
|
+
|----------|------|------|----------|-----------|---------|---------|
|
|
114
|
+
| API 文档完整性 | 20% | -20 | 0 | 1 | 4 | 1 |
|
|
115
|
+
| 鸿蒙化适配说明 | 20% | -20 | 0 | 1 | 3 | 0 |
|
|
116
|
+
| 代码仓基础信息 | 15% | -12 | 3 | 0 | 3 | 0 |
|
|
117
|
+
| 代码示例质量 | 10% | -8 | 2 | 0 | 2 | 0 |
|
|
118
|
+
| 变更记录与版本规范 | 10% | -4 | 6 | 0 | 1 | 0 |
|
|
119
|
+
| 文档与代码交叉验证 | 15% | -15 | 0 | 1 | 2 | 0 |
|
|
120
|
+
| 文档准确性与国际化 | 10% | -1 | 9 | 0 | 0 | 1 |
|
|
121
|
+
|
|
122
|
+
### 2.2 综合评分
|
|
123
|
+
|
|
124
|
+
**综合评分:20/100**
|
|
125
|
+
|
|
126
|
+
评分等级:极差
|
|
127
|
+
|
|
128
|
+
### 2.3 问题清单(摘要)
|
|
129
|
+
|
|
130
|
+
| # | 文件 | 行号 | 严重度 | 检视维度 | 编号 | 描述 |
|
|
131
|
+
|---|------|------|--------|----------|------|------|
|
|
132
|
+
| 1 | `src/NetInfo.ts` | L1 | 🔴 Critical | API 文档完整性 | AD-001 | `NetInfo` 类及所有方法无任何文档注释 |
|
|
133
|
+
| 2 | `turbo/NetInfoNativeComponent.d.ts` | L1 | 🟡 Major | API 文档完整性 | DT-001 | `.d.ts` 中 `Spec` 接口无注释 |
|
|
134
|
+
| 3 | `turbo/NetInfoNativeComponent.d.ts` | L2 | 🟡 Major | API 文档完整性 | DT-002 | `getCurrentState` 等方法无 TSDoc |
|
|
135
|
+
| 4 | `src/NetInfo.ts` | L3 | 🟡 Major | API 文档完整性 | TG-001, TG-002 | `fetch()` 缺少 `@param` 和 `@returns` |
|
|
136
|
+
| 5 | `src/NetInfo.ts` | L7 | 🟡 Major | API 文档完整性 | TG-006 | `addEventListener` 缺少 `@example` |
|
|
137
|
+
| 6 | `src/types.ts` | L1 | 🔵 Minor | API 文档完整性 | AD-004 | `NetInfoState` 注释中英混杂 |
|
|
138
|
+
| 7 | `README.md` | — | 🔴 Critical | 鸿蒙化适配说明 | HA-001 | 无任何鸿蒙化适配说明文档 |
|
|
139
|
+
| 8 | `README.md` | — | 🟡 Major | 鸿蒙化适配说明 | HA-006 | 缺少下载安装章节 |
|
|
140
|
+
| 9 | `ohos/module.json5` | L3 | 🟡 Major | 鸿蒙化适配说明 | HA-021 | `GET_NETWORK_INFO` 权限未在文档中说明 |
|
|
141
|
+
| 10 | — | — | 🟡 Major | 鸿蒙化适配说明 | HA-025 | TurboModule 库未说明 Codegen 配置 |
|
|
142
|
+
| 11 | `package.json` | — | 🟡 Major | 代码仓基础信息 | RM-005 | description 为空或缺失 |
|
|
143
|
+
| 12 | `package.json` | — | 🟡 Major | 代码仓基础信息 | RM-010 | homepage 指向上游 GitHub |
|
|
144
|
+
| 13 | `package.json` | — | 🟡 Major | 代码仓基础信息 | RM-008 | version 与 oh-package.json5 不一致 |
|
|
145
|
+
| 14 | `README.md` | — | 🟡 Major | 代码示例质量 | EX-006 | 示例未覆盖鸿蒙特有用法 |
|
|
146
|
+
| 15 | `example/App.tsx` | — | 🟡 Major | 代码示例质量 | EX-010 | 示例 import 路径可能错误 |
|
|
147
|
+
| 16 | — | — | 🟡 Major | 变更记录与版本规范 | CL-001 | 缺少 CHANGELOG.md |
|
|
148
|
+
| 17 | — | — | 🔵 Minor | 文档准确性与国际化 | AC-003 | 缺少中文文档 |
|
|
149
|
+
|
|
150
|
+
---
|
|
151
|
+
|
|
152
|
+
## 三、检视过程详解
|
|
153
|
+
|
|
154
|
+
### 3.1 Phase 1:文件收集
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
find {outputDir}/source/ohos -type f \( -name "*.md" -o -name "*.d.ts" -o -name "*.json5" -o -name "*.txt" \)
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
收集到的文件:
|
|
161
|
+
- `README.md`(项目入口文档)
|
|
162
|
+
- `turbo/NetInfoNativeComponent.d.ts`(类型声明)
|
|
163
|
+
- `ohos/module.json5`(配置文件)
|
|
164
|
+
- `ohos/oh-package.json5`(包配置)
|
|
165
|
+
- 无 `CHANGELOG.md` → 记录 CL-001 Major 问题
|
|
166
|
+
|
|
167
|
+
### 3.2 Phase 2:逐维度检视
|
|
168
|
+
|
|
169
|
+
#### 维度 1:API 文档完整性
|
|
170
|
+
|
|
171
|
+
扫描 `src/` 下所有 `.ts` 文件的 `export` 语句:
|
|
172
|
+
|
|
173
|
+
| 文件 | 导出项 | 有无注释 | 问题编号 | 严重度 |
|
|
174
|
+
|------|--------|---------|----------|--------|
|
|
175
|
+
| `src/index.ts` | `NetInfo` (default) | ❌ | AD-001 | Critical |
|
|
176
|
+
| `src/index.ts` | `NetInfoState` | ❌ | AD-001 | Critical |
|
|
177
|
+
| `src/index.ts` | `NetInfoSubscription` | ❌ | AD-001 | Critical |
|
|
178
|
+
| `src/NetInfo.ts` | `NetInfo.fetch()` | ❌ | TG-001, TG-002 | Major |
|
|
179
|
+
| `src/NetInfo.ts` | `NetInfo.addEventListener()` | ❌ | TG-001, TG-006 | Major |
|
|
180
|
+
| `src/NetInfo.ts` | `NetInfo.configure()` | ❌ | TG-001, TG-002 | Major |
|
|
181
|
+
| `turbo/...d.ts` | `Spec` 接口 | ❌ | DT-001 | Major |
|
|
182
|
+
| `turbo/...d.ts` | `getCurrentState()` | ❌ | DT-002 | Major |
|
|
183
|
+
|
|
184
|
+
维度扣分计算:
|
|
185
|
+
- Critical: AD-001 出现 3 次 → -8 × 3 = -24
|
|
186
|
+
- Major: 4 项 × -4 = -16
|
|
187
|
+
- Minor: 1 项 × -1 = -1
|
|
188
|
+
- 合计 = -24 + (-16) + (-1) = -41
|
|
189
|
+
- 扣分上限 = -20
|
|
190
|
+
- 维度实际扣分 = min(-20, -41) = **-20**
|
|
191
|
+
- 维度得分 = 20 + (-20) = **0**
|
|
192
|
+
|
|
193
|
+
> 注:3 个 Critical 合并为 1 条记录(AD-001),但扣分按实际发现次数计算(此处演示合并记录但扣分不合并的场景)。实际执行中,同文件多个同类 Critical 可合并为一条,扣分取该严重度的上限。
|
|
194
|
+
|
|
195
|
+
#### 维度 2:鸿蒙化适配说明
|
|
196
|
+
|
|
197
|
+
| 检查项 | 发现 | 问题编号 | 严重度 |
|
|
198
|
+
|--------|------|----------|--------|
|
|
199
|
+
| 鸿蒙化适配说明/迁移指南 | README 无任何鸿蒙化内容 | HA-001 | Critical |
|
|
200
|
+
| 下载安装章节 | 无 ohpm 集成步骤 | HA-006 | Major |
|
|
201
|
+
| 权限要求说明 | `GET_NETWORK_INFO` 未文档化 | HA-021 | Major |
|
|
202
|
+
| TurboModule 配置说明 | 未说明 Codegen 配置 | HA-025 | Major |
|
|
203
|
+
|
|
204
|
+
维度扣分:
|
|
205
|
+
- Critical: 1 × -8 = -8
|
|
206
|
+
- Major: 3 × -4 = -12
|
|
207
|
+
- 合计 = -20
|
|
208
|
+
- 扣分上限 = -20
|
|
209
|
+
- 维度实际扣分 = **-20**
|
|
210
|
+
- 维度得分 = 20 - 20 = **0**
|
|
211
|
+
|
|
212
|
+
#### 维度 3-6(同理计算,此处略)
|
|
213
|
+
|
|
214
|
+
### 3.3 Phase 3:评分计算
|
|
215
|
+
|
|
216
|
+
```
|
|
217
|
+
归零检查:
|
|
218
|
+
- 文档非完全空白(有 README,有少量示例)→ 不触发归零
|
|
219
|
+
- 核心 TurboModule 接口(Spec)无文档 → 触发归零?
|
|
220
|
+
|
|
221
|
+
判定:Spec 接口虽无注释,但 README 有基本使用示例,且接口较为简单。
|
|
222
|
+
不触发"核心接口无任何文档说明"归零规则(因 README 有用法说明)。
|
|
223
|
+
|
|
224
|
+
各维度扣分汇总:
|
|
225
|
+
- API 文档完整性: -25
|
|
226
|
+
- 鸿蒙化适配说明: -20
|
|
227
|
+
- 代码仓基础信息: -12
|
|
228
|
+
- 代码示例质量: -8
|
|
229
|
+
- 变更记录与版本规范: -4
|
|
230
|
+
- 文档准确性与国际化: -1
|
|
231
|
+
|
|
232
|
+
最终分 = max(0, 100 - 25 - 20 - 12 - 8 - 4 - 1) = max(0, 30) = 30
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
### 3.4 Phase 4:报告生成
|
|
236
|
+
|
|
237
|
+
生成 `文档质量检视报告.md`,格式参考 [REPORT_TEMPLATE.md](../assets/REPORT_TEMPLATE.md)。
|
|
238
|
+
|
|
239
|
+
---
|
|
240
|
+
|
|
241
|
+
## 四、常见检视场景
|
|
242
|
+
|
|
243
|
+
### 4.1 场景:文档完全空白
|
|
244
|
+
|
|
245
|
+
```
|
|
246
|
+
仓库状态:
|
|
247
|
+
- 无 README.md
|
|
248
|
+
- 无 CHANGELOG.md
|
|
249
|
+
- 源码无任何注释
|
|
250
|
+
- 无示例代码
|
|
251
|
+
|
|
252
|
+
→ 触发归零规则:文档完全空白
|
|
253
|
+
→ 最终分 = 0
|
|
254
|
+
```
|
|
255
|
+
|
|
256
|
+
### 4.2 场景:核心 TurboModule 无文档
|
|
257
|
+
|
|
258
|
+
```
|
|
259
|
+
仓库状态:
|
|
260
|
+
- 有 README.md(含安装说明)
|
|
261
|
+
- 有 CHANGELOG.md
|
|
262
|
+
- 源码有部分注释
|
|
263
|
+
- 但核心 TurboModule Spec 接口完全无注释,README 也未描述
|
|
264
|
+
|
|
265
|
+
→ 触发归零规则:核心 TurboModule/NAPI 接口无任何文档说明
|
|
266
|
+
→ 最终分 = 0
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
### 4.3 场景:文档质量优秀
|
|
270
|
+
|
|
271
|
+
```
|
|
272
|
+
仓库状态:
|
|
273
|
+
- README.md 结构完整(功能简介、安装、使用、API 参考、许可证)
|
|
274
|
+
- CHANGELOG.md 使用 Keep a Changelog 格式,记录了鸿蒙化变更
|
|
275
|
+
- 所有 export API 有完整 TSDoc 注释(@param/@returns/@example)
|
|
276
|
+
- .d.ts 文件注释完整
|
|
277
|
+
- 有 example/ 目录,示例代码可运行
|
|
278
|
+
- 有鸿蒙化适配说明章节
|
|
279
|
+
- 双语文档(中英文同步)
|
|
280
|
+
|
|
281
|
+
检视发现:
|
|
282
|
+
- Minor: 2 个方法缺少 @since 标注 → -1 × 2 = -2
|
|
283
|
+
- Minor: CHANGELOG 格式略有偏差 → -1
|
|
284
|
+
|
|
285
|
+
最终分 = max(0, 100 - 2 - 1) = 97
|
|
286
|
+
评分等级:优秀
|
|
287
|
+
```
|
|
288
|
+
|
|
289
|
+
### 4.4 场景:示例代码使用已废弃 API
|
|
290
|
+
|
|
291
|
+
```
|
|
292
|
+
仓库状态:
|
|
293
|
+
- README 示例代码调用 NetInfo.getConnectionInfo()
|
|
294
|
+
- 但源码中该方法已标记 @deprecated,替代方法为 NetInfo.fetch()
|
|
295
|
+
|
|
296
|
+
→ 检查项 EX-002 (Critical): 示例代码使用已废弃 API
|
|
297
|
+
→ 扣分 -8
|
|
298
|
+
→ 修复建议:更新示例代码使用 NetInfo.fetch()
|
|
299
|
+
```
|
|
300
|
+
|
|
301
|
+
### 4.5 场景:跳转文档模式(极简 README + 外部 usage-docs)
|
|
302
|
+
|
|
303
|
+
```
|
|
304
|
+
仓库:rntpc_react-native-network-info
|
|
305
|
+
文档模式:跳转文档
|
|
306
|
+
|
|
307
|
+
仓库本地文件:
|
|
308
|
+
- README.md:仅含包名 + "文档"章节(链接指向 usage-docs)+ 许可证,约 20 行
|
|
309
|
+
- README_zh.md:不存在(中英文在同一 README 中以链接形式提供)
|
|
310
|
+
- CHANGELOG.md:不存在
|
|
311
|
+
- NetworkInfo.d.ts:类型声明文件
|
|
312
|
+
- harmony/:鸿蒙化实现代码
|
|
313
|
+
- src/:JS/TS 层代码
|
|
314
|
+
|
|
315
|
+
外部文档(usage-docs):
|
|
316
|
+
- 中文:https://gitcode.com/OpenHarmony-RN/usage-docs/blob/master/zh-cn/react-native-network-info.md
|
|
317
|
+
- 英文:https://gitcode.com/OpenHarmony-RN/usage-docs/blob/master/en/react-native-network-info.md
|
|
318
|
+
- 外部文档包含:安装与使用、Link、约束与限制、静态方法 API 表格、遗留问题
|
|
319
|
+
|
|
320
|
+
检视过程:
|
|
321
|
+
|
|
322
|
+
Phase 1 识别:
|
|
323
|
+
- README 中包含 `OpenHarmony-RN/usage-docs` 链接 → 跳转模式
|
|
324
|
+
- 收集本地文件 + 获取外部文档
|
|
325
|
+
|
|
326
|
+
Phase 2 检视要点:
|
|
327
|
+
- README.md 极简**不是问题**,这是跳转模式的设计选择,不记录 RM-002/RM-004
|
|
328
|
+
- 主要检视对象转为外部 usage-docs 内容
|
|
329
|
+
- 检查外部文档是否包含标准章节:安装、链接、约束与限制、接口说明
|
|
330
|
+
- 检查外部文档的 API 支持矩阵与本地代码实现的一致性
|
|
331
|
+
- CHANGELOG 缺失仍需记录(CL-001 Major),因为 CHANGELOG 是本地文件
|
|
332
|
+
- 源码注释检查仍需进行(AD/DT/NP/NC/CE/TG 系列检查项仍适用)
|
|
333
|
+
|
|
334
|
+
检视发现:
|
|
335
|
+
| # | 文件 | 严重度 | 编号 | 描述 |
|
|
336
|
+
|---|------|--------|------|------|
|
|
337
|
+
| 1 | README.md | Minor | RM-003 | 缺少独立中文 README(README_zh.md) |
|
|
338
|
+
| 2 | — | Major | CL-001 | 缺少 CHANGELOG.md |
|
|
339
|
+
| 3 | NetworkInfo.d.ts | Major | DT-001 | TurboModule Spec 接口缺少注释 |
|
|
340
|
+
| 4 | external-docs | Major | HA-019 | 外部文档约束与限制中缺少编译运行 API 版本要求 |
|
|
341
|
+
| 5 | external-docs | Minor | HA-023 | 外部文档遗留问题章节为空 |
|
|
342
|
+
|
|
343
|
+
评分影响分析:
|
|
344
|
+
- 跳转模式下的外部文档提供了完整的安装、链接、接口说明 → README 维度不扣大分
|
|
345
|
+
- 但外部文档的约束与限制不够完整 → 鸿蒙化适配说明维度扣分
|
|
346
|
+
- 源码注释和 CHANGELOG 问题仍需独立计算
|
|
347
|
+
|
|
348
|
+
注意:
|
|
349
|
+
- ❌ 错误做法:因 README 极简直接记录 RM-002/RM-004 Major 扣分
|
|
350
|
+
- ✅ 正确做法:识别为跳转模式后,转而检视外部文档的完整性
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
### 4.6 场景:内嵌文档模式(完整 README_zh.md)
|
|
354
|
+
|
|
355
|
+
```
|
|
356
|
+
仓库:rntpc_react-native-svg
|
|
357
|
+
文档模式:内嵌文档
|
|
358
|
+
|
|
359
|
+
仓库本地文件:
|
|
360
|
+
- README.md:英文版完整文档(7+ 章节:简介、安装、链接、约束、示例、接口说明、开源协议)
|
|
361
|
+
- README_zh.md:中文版完整文档,内容与英文版对应
|
|
362
|
+
- CHANGELOG.md:存在
|
|
363
|
+
- harmony/:鸿蒙化实现代码(含 C++)
|
|
364
|
+
|
|
365
|
+
检视过程:
|
|
366
|
+
|
|
367
|
+
Phase 1 识别:
|
|
368
|
+
- README.md 长度超过 200 行,含完整章节和代码示例 → 内嵌模式
|
|
369
|
+
- 不需要获取外部文档
|
|
370
|
+
|
|
371
|
+
Phase 2 检视要点:
|
|
372
|
+
- README.md 和 README_zh.md 是主要检视对象
|
|
373
|
+
- 检查中英文版本内容是否同步
|
|
374
|
+
- 检查"接口说明"中的 API 支持矩阵与源码实现是否一致
|
|
375
|
+
- 检查"约束与限制"中的兼容性和 API 版本要求
|
|
376
|
+
- 检查"链接"章节中的 CMakeLists/PackageProvider 配置步骤
|
|
377
|
+
|
|
378
|
+
典型发现:
|
|
379
|
+
- README 中接口表格可能标记 `Yes` 但源码实际未实现 → AD-013
|
|
380
|
+
- 中英文版本不同步(英文版缺少某些新增内容)→ AC-003/AC-003
|
|
381
|
+
- CMakeLists 配置步骤描述与实际文件不匹配 → AC-001
|
|
382
|
+
```
|
|
383
|
+
|
|
384
|
+
---
|
|
385
|
+
|
|
386
|
+
## 五、检视技巧
|
|
387
|
+
|
|
388
|
+
### 5.1 快速识别文档覆盖率
|
|
389
|
+
|
|
390
|
+
```bash
|
|
391
|
+
# 统计 export 数量
|
|
392
|
+
grep -rn "export " src/ ohos/ --include="*.ts" --include="*.ets" | wc -l
|
|
393
|
+
|
|
394
|
+
# 统计有注释的 export 数量(注释通常在 export 前一行或前几行)
|
|
395
|
+
# 手动检查:逐个 export 项检查上方是否有 /** */ 注释
|
|
396
|
+
```
|
|
397
|
+
|
|
398
|
+
### 5.2 高效检视顺序
|
|
399
|
+
|
|
400
|
+
1. **先看 README** → 建立整体认知,快速判断文档完善程度
|
|
401
|
+
2. **再看 .d.ts** → 理解 API 表面,检查类型声明注释
|
|
402
|
+
3. **然后看源码注释** → 深入实现细节,检查 TSDoc 标签
|
|
403
|
+
4. **最后看 CHANGELOG 和 example** → 验证变更记录和示例质量
|
|
404
|
+
|
|
405
|
+
### 5.3 识别常见问题模式
|
|
406
|
+
|
|
407
|
+
| 问题模式 | 特征 | 快速检测方法 |
|
|
408
|
+
|----------|------|-------------|
|
|
409
|
+
| 注释占位符 | `/** TODO */` `/** xxx */` | grep 搜索 TODO/xxx/FIXME |
|
|
410
|
+
| 废弃 API 未标注 | 源码注释含 "deprecated" 但无 `@deprecated` 标签 | grep "deprecated" 对比 `@deprecated` |
|
|
411
|
+
| 版本号不一致 | README 版本 ≠ package.json 版本 | 对比两处版本号 |
|
|
412
|
+
| 示例无 await | 异步方法示例直接使用返回值 | 检查 Promise 返回的方法示例是否含 await |
|
|
413
|
+
| 权限未说明 | module.json5 有权限但 README 未提及 | 对比 module.json5 权限列表与 README 说明 |
|
|
414
|
+
| 跳转模式误判 | 极简 README 被错误扣分为"文档缺失" | 先检查 README 是否含 usage-docs 链接 |
|
|
415
|
+
| 外部文档滞后 | usage-docs 版本落后于代码仓库 | 对比外部文档版本号与 package.json 版本 |
|
|
416
|
+
| 接口矩阵不准确 | API 支持矩阵标记 `Yes` 但源码未实现 | 抽查外部文档中的 Yes/No 标记与源码实现 |
|
|
417
|
+
|
|
418
|
+
### 5.4 跳转文档模式快速判定流程
|
|
419
|
+
|
|
420
|
+
```
|
|
421
|
+
1. 读取 README.md
|
|
422
|
+
2. 搜索 "usage-docs" 或 "OpenHarmony-RN"
|
|
423
|
+
├─ 找到 → 跳转模式
|
|
424
|
+
│ ├─ 提取中英文链接
|
|
425
|
+
│ ├─ 获取外部文档内容(保存到 external-docs/)
|
|
426
|
+
│ ├─ 以外部文档为主要检视对象
|
|
427
|
+
│ └─ README 极简不算缺陷
|
|
428
|
+
└─ 未找到 → 内嵌模式
|
|
429
|
+
├─ 以本地 README.md/README_zh.md 为主要检视对象
|
|
430
|
+
└─ 按 CHECK_CHECKLIST 常规流程检视
|
|
431
|
+
```
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
## 六、Phase 2.5 交叉验证场景示例
|
|
436
|
+
|
|
437
|
+
> 以下场景均以 `接口规格说明.md` 为权威基准,与用户文档(README/外部 usage-docs)进行双向比对。
|
|
438
|
+
|
|
439
|
+
### 6.1 场景:文档描述的方法在接口规格中不存在
|
|
440
|
+
|
|
441
|
+
```
|
|
442
|
+
仓库:@react-native-ohos/community-netinfo
|
|
443
|
+
文档模式:跳转文档
|
|
444
|
+
|
|
445
|
+
外部 usage-docs 描述:
|
|
446
|
+
- 静态方法表格列出 `getConnectionInfo()` → 返回 `NetInfoState`
|
|
447
|
+
- 静态方法表格列出 `fetch()` → 返回 `Promise<NetInfoState>`
|
|
448
|
+
|
|
449
|
+
接口规格说明文档(第3章 JS/TS 导出):
|
|
450
|
+
- fetch(): Promise<NetInfoState> ✅
|
|
451
|
+
- addEventListener(): NetInfoSubscription ✅
|
|
452
|
+
- 无 `getConnectionInfo()` ❌
|
|
453
|
+
|
|
454
|
+
交叉验证结果:
|
|
455
|
+
| # | API 名称 | 差异类型 | 接口规格 | 文档描述 | 编号 | 严重度 |
|
|
456
|
+
|---|----------|----------|----------|----------|------|--------|
|
|
457
|
+
| 1 | `getConnectionInfo()` | 文档→规格:API 不存在 | 无定义 | 有描述 | XC-003 | Critical |
|
|
458
|
+
|
|
459
|
+
→ 修复建议:从外部文档删除 `getConnectionInfo()` 描述,或在代码中补充实现
|
|
460
|
+
```
|
|
461
|
+
|
|
462
|
+
### 6.2 场景:返回类型不一致(同步 vs 异步)
|
|
463
|
+
|
|
464
|
+
```
|
|
465
|
+
仓库:@react-native-ohos/react-native-svg
|
|
466
|
+
文档模式:内嵌文档
|
|
467
|
+
|
|
468
|
+
README 接口表格描述:
|
|
469
|
+
- `getSvgData(): SvgData` → 标注为同步返回
|
|
470
|
+
|
|
471
|
+
接口规格说明文档(第3章):
|
|
472
|
+
- `getSvgData(): Promise<SvgData>` → 定义为异步方法
|
|
473
|
+
|
|
474
|
+
交叉验证结果:
|
|
475
|
+
| # | API 名称 | 差异类型 | 接口规格 | 文档描述 | 编号 | 严重度 |
|
|
476
|
+
|---|----------|----------|----------|----------|------|--------|
|
|
477
|
+
| 1 | `getSvgData()` | 返回类型不一致 | Promise\<SvgData\> | SvgData | XC-006 | Critical |
|
|
478
|
+
|
|
479
|
+
→ 这是最常见的准确性问题:文档遗漏了 async/Promise 标注,用户按同步方式调用会导致运行时错误
|
|
480
|
+
→ 修复建议:文档更新为 `getSvgData(): Promise<SvgData>`,示例代码添加 await
|
|
481
|
+
```
|
|
482
|
+
|
|
483
|
+
### 6.3 场景:权限声明与文档不一致
|
|
484
|
+
|
|
485
|
+
```
|
|
486
|
+
仓库:@react-native-ohos/react-native-network-info
|
|
487
|
+
文档模式:跳转文档
|
|
488
|
+
|
|
489
|
+
module.json5 实际声明:
|
|
490
|
+
- ohos.permission.GET_NETWORK_INFO
|
|
491
|
+
- ohos.permission.GET_WIFI_INFO
|
|
492
|
+
|
|
493
|
+
外部 usage-docs"约束与限制"章节:
|
|
494
|
+
- 仅说明"需要网络权限"
|
|
495
|
+
- 未说明需要 WiFi 信息权限
|
|
496
|
+
|
|
497
|
+
交叉验证结果:
|
|
498
|
+
| # | 差异类型 | 文档描述 | module.json5 实际 | 编号 | 严重度 |
|
|
499
|
+
|---|----------|----------|-------------------|------|--------|
|
|
500
|
+
| 1 | 权限未说明 | 文档仅提及网络权限 | 还声明了 GET_WIFI_INFO | HA-021 | Major |
|
|
501
|
+
|
|
502
|
+
→ 修复建议:在文档"约束与限制"中补充说明需要 WiFi 信息权限
|
|
503
|
+
```
|
|
504
|
+
|
|
505
|
+
### 6.4 场景:接口规格中的 API 在用户文档中无描述
|
|
506
|
+
|
|
507
|
+
```
|
|
508
|
+
仓库:@react-native-ohos/react-native-device-info
|
|
509
|
+
文档模式:跳转文档
|
|
510
|
+
|
|
511
|
+
接口规格说明文档定义的 API(第3章 JS/TS 导出):
|
|
512
|
+
- getDeviceId() → 文档有描述 ✅
|
|
513
|
+
- getSystemName() → 文档有描述 ✅
|
|
514
|
+
- getBuildId() → 文档无描述 ❌
|
|
515
|
+
- isTablet() → 文档无描述 ❌
|
|
516
|
+
- getInstallerPackageName() → 文档无描述 ❌
|
|
517
|
+
|
|
518
|
+
外部 usage-docs API 表格:
|
|
519
|
+
- 仅列出 getDeviceId() 和 getSystemName()
|
|
520
|
+
|
|
521
|
+
交叉验证结果:
|
|
522
|
+
| # | API 名称 | 差异类型 | 编号 | 严重度 |
|
|
523
|
+
|---|----------|----------|------|--------|
|
|
524
|
+
| 1 | `getBuildId()` | 规格→文档:无描述 | XC-002 | Major |
|
|
525
|
+
| 2 | `isTablet()` | 规格→文档:无描述 | XC-002 | Major |
|
|
526
|
+
| 3 | `getInstallerPackageName()` | 规格→文档:无描述 | XC-002 | Major |
|
|
527
|
+
|
|
528
|
+
→ 修复建议:在外部文档 API 表格中补充这三个方法的描述和支持状态
|
|
529
|
+
```
|
|
530
|
+
|
|
531
|
+
### 6.5 场景:鸿蒙化差异与文档不一致
|
|
532
|
+
|
|
533
|
+
```
|
|
534
|
+
仓库:@react-native-ohos/community-netinfo
|
|
535
|
+
文档模式:跳转文档
|
|
536
|
+
|
|
537
|
+
接口规格说明文档第5章鸿蒙化差异:
|
|
538
|
+
- 第5.1节缺失接口:useNetInfo() ❌、getDefaultInterface() ❌
|
|
539
|
+
- 第5.2节新增接口:isDefaultNetwork() 🆕
|
|
540
|
+
- 签名变更:fetch(type?: string) → 鸿蒙版 fetch()(缺少 type 参数)
|
|
541
|
+
|
|
542
|
+
外部 usage-docs API 表格:
|
|
543
|
+
- fetch() → 描述为无参数 ✅(与鸿蒙化签名一致)
|
|
544
|
+
- useNetInfo() → 仍标记为支持 ❌(接口规格标记为缺失)
|
|
545
|
+
- getDefaultInterface() → 仍标记为支持 ❌(接口规格标记为缺失)
|
|
546
|
+
- isDefaultNetwork() → 无描述 ❌(接口规格标记为新增)
|
|
547
|
+
|
|
548
|
+
交叉验证结果:
|
|
549
|
+
| # | API 名称 | 差异类型 | 接口规格 | 文档描述 | 编号 | 严重度 |
|
|
550
|
+
|---|----------|----------|----------|----------|------|--------|
|
|
551
|
+
| 1 | `useNetInfo()` | 鸿蒙化差异不一致 | 第5.1节标记缺失 | 标记为支持 | XC-008 | Critical |
|
|
552
|
+
| 2 | `getDefaultInterface()` | 鸿蒙化差异不一致 | 第5.1节标记缺失 | 标记为支持 | XC-008 | Critical |
|
|
553
|
+
| 3 | `isDefaultNetwork()` | 新增接口未描述 | 第5.2节标记新增 | 无描述 | XC-009 | Major |
|
|
554
|
+
|
|
555
|
+
→ 修复建议:更新外部文档,useNetInfo/getDefaultInterface 标记为不支持,补充 isDefaultNetwork 描述
|
|
556
|
+
```
|
|
557
|
+
|
|
558
|
+
### 6.6 场景:外部文档接口支持矩阵与接口规格不一致
|
|
559
|
+
|
|
560
|
+
```
|
|
561
|
+
仓库:@react-native-ohos/react-native-svg
|
|
562
|
+
文档模式:跳转文档
|
|
563
|
+
|
|
564
|
+
外部 usage-docs API 支持矩阵(部分):
|
|
565
|
+
| 属性 | HarmonyOS Support |
|
|
566
|
+
|------|-------------------|
|
|
567
|
+
| Circle | Yes |
|
|
568
|
+
| Ellipse | Yes |
|
|
569
|
+
| TextPath | Yes |
|
|
570
|
+
| Marker | No |
|
|
571
|
+
| ForeignObject | No |
|
|
572
|
+
|
|
573
|
+
接口规格说明文档第5.1节缺失接口:
|
|
574
|
+
- TextPath ❌(文档标记 Yes 但接口规格标记缺失)
|
|
575
|
+
|
|
576
|
+
接口规格说明文档第3章导出:
|
|
577
|
+
- ForeignObject → 有定义(文档标记 No 但接口规格有导出)
|
|
578
|
+
|
|
579
|
+
交叉验证结果:
|
|
580
|
+
| # | API 名称 | 差异类型 | 接口规格 | 文档标记 | 编号 | 严重度 |
|
|
581
|
+
|---|----------|----------|----------|----------|------|--------|
|
|
582
|
+
| 1 | TextPath | 支持矩阵不一致 | 第5.1节标记缺失 | Yes | XC-008 | Critical |
|
|
583
|
+
| 2 | ForeignObject | 支持矩阵不一致 | 第3章有导出 | No | AD-013 | Major |
|
|
584
|
+
|
|
585
|
+
→ 修复建议:更新外部文档支持矩阵,TextPath 改为 No,ForeignObject 改为 Yes
|
|
586
|
+
```
|