@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,274 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: rn-library-issue-generalizer
|
|
3
|
+
description: 将 RN 三方库鸿蒙化历史问题案例(问题描述+修复 PR 链接)泛化为机制层检视规则,问题拆分后直接写入分级知识库(一级 INDEX 索引 + 二级 rules/cases 目录),实现一个案例防范一类问题。当需要从已修复问题中提炼可复用检视规则、扩充 RN 库已知问题知识库、或对新修复 PR 做归类沉淀时使用。离线运营工具,产出标记 draft 状态的条目供人工审核激活,供已知问题检视 SKILL 消费。
|
|
4
|
+
license: Apache-2.0
|
|
5
|
+
compatibility: 需要网络访问 GitCode(获取 PR 元数据与 diff)、Python ≥ 3.8(运行 scripts/fetch-pr-info.py,无第三方依赖)、对知识库目录(knowledgeDir)的文件读写权限
|
|
6
|
+
metadata:
|
|
7
|
+
author: CPPAgent
|
|
8
|
+
version: "2.0.0"
|
|
9
|
+
category: rn-library-check
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# rn-library-issue-generalizer — 问题案例泛化器
|
|
13
|
+
|
|
14
|
+
将**具体的**问题案例(现象描述 + 修复 PR)提炼为**机制层的检视规则**:案例归档为 few-shot 参考,规则用于未来所有库的已知问题检视——**一个案例,防范一类问题**。问题拆分(一案例 → 多规则)后,产出**直接写入分级知识库目录**。
|
|
15
|
+
|
|
16
|
+
> ⚠️ **核心原则**:
|
|
17
|
+
> 1. **泛化三约束**:规则体必须 ①**去库化**(不出现具体库名/API 名)②**上升到机制层**(描述检查方法,而非修复某个 bug)③**可判定**(每个检查点 Agent 读源码后能给出 是/否/疑似)
|
|
18
|
+
> 2. **规则数量收敛**:优先将案例归入已有规则(增厚 few-shot);只有确认现有规则的问题本质无法覆盖时才新建规则
|
|
19
|
+
> 3. **直接写入分级目录 + draft 状态标记**:新建/修订的规则与案例**直接写入知识库分级目录**(rules/、cases/、INDEX.md),但状态标记为 `draft`;经人工审核后将状态改为 `active` 方可被检视 SKILL 消费
|
|
20
|
+
> 4. **案例信息完整保留**:具体库名、PR 链接、修复方式只出现在案例文件中,作为 few-shot 与修复指引
|
|
21
|
+
> 5. **所有文件存放在 knowledgeDir 下**:禁止写入系统临时目录或其他外部路径
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 任务参数
|
|
26
|
+
|
|
27
|
+
| 参数 | 必填 | 说明 |
|
|
28
|
+
|------|------|------|
|
|
29
|
+
| `issueList` | ✅ | 案例清单。三种格式任选:① JSON 数组 `[{"description": "...", "prUrl": "..."}]` ② 清单文件路径(每行一条:`问题描述 <空格/Tab> PR链接`,兼容 Markdown 链接 `[描述](url)` 与裸 URL) ③ 多行文本(同②格式) |
|
|
30
|
+
| `knowledgeDir` | ✅ | 知识库根目录绝对路径(如 `BadCase/rn`)。目录无 `INDEX.md` 时视为**冷启动**,自动初始化分级结构;已有 `INDEX.md` 时读取现有规则执行归类比对(Phase 4) |
|
|
31
|
+
| `gitcodeToken` | ❌ | GitCode API Token。访问私有仓库或遇速率限制时使用 |
|
|
32
|
+
|
|
33
|
+
---
|
|
34
|
+
|
|
35
|
+
## 输入依赖
|
|
36
|
+
|
|
37
|
+
无前置 SKILL。可作为独立任务调用。
|
|
38
|
+
|
|
39
|
+
- **可选输入**:现有分级知识库(`knowledgeDir` 下已有 `INDEX.md` + `rules/` + `cases/`),格式参见 [规则条目编写指南](references/RULE_TEMPLATE_GUIDE.md)
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 目录结构约定
|
|
44
|
+
|
|
45
|
+
> ⚠️ **所有新增/修改文件**都必须存放在 `{knowledgeDir}` 内。知识库采用**分级结构**(一级索引 + 二级知识):
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
{knowledgeDir}/ # 通常为 BadCase/rn/
|
|
49
|
+
├── INDEX.md # 一级:分类 + 规则/案例索引(不含具体知识)
|
|
50
|
+
├── rules/ # 二级:规则知识
|
|
51
|
+
│ └── R-{XX}-{规则名}.md # 检查点/特征 + 案例索引行
|
|
52
|
+
├── cases/ # 二级:案例知识(格式二:代码证据式)
|
|
53
|
+
│ └── KI-{XXX}-{库名现象}.md # 元数据/现象/根因/错误代码/正确代码/修复方式
|
|
54
|
+
├── pr-info/ # 案例原始 PR diff 证据材料
|
|
55
|
+
│ └── {repo}-{number}.md(+ .json)
|
|
56
|
+
└── generalization-log.md # 运行产出:泛化过程日志(追加式)
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
**分级规则**:
|
|
60
|
+
- **一级 INDEX.md** 只含分类、索引表(编号/名称/严重级别/文件链接),Agent 预筛时只读此文件
|
|
61
|
+
- **二级 rules/** 每规则一文件,含完整检查知识 + 案例索引行(不含案例详情)
|
|
62
|
+
- **二级 cases/** 每案例一文件(格式二),一案例挂多条规则时只存一份,规则文件通过索引引用
|
|
63
|
+
- **pr-info/** 是案例的证据材料,案例文件中链接引用
|
|
64
|
+
|
|
65
|
+
**状态机制**(draft → active):
|
|
66
|
+
- 本 SKILL 新建/修订的规则与案例,frontmatter 或元数据中状态标记为 `draft`
|
|
67
|
+
- 人工审核通过后,将状态改为 `active`(规则文件改 `- **状态**: active`;案例文件元数据加 `status: active`)
|
|
68
|
+
- 检视 SKILL 只消费 `active` 状态的规则与案例
|
|
69
|
+
|
|
70
|
+
---
|
|
71
|
+
|
|
72
|
+
## 工作流程概览
|
|
73
|
+
|
|
74
|
+
```
|
|
75
|
+
Phase 1: 案例解析与 PR 材料获取(写入 pr-info/)
|
|
76
|
+
↓
|
|
77
|
+
Phase 2: 根因分析(现象 → 根因 → 修复机制)
|
|
78
|
+
↓
|
|
79
|
+
Phase 3: 泛化提炼(去库化 / 机制化 / 可判定化)
|
|
80
|
+
↓
|
|
81
|
+
Phase 4: 知识库归类比对(读 INDEX + rules/,归入已有规则 or 新建规则)
|
|
82
|
+
↓
|
|
83
|
+
Phase 5: 直接写入分级目录(rules/ + cases/ + INDEX.md,draft 状态)与自检
|
|
84
|
+
↓
|
|
85
|
+
Phase 6: 输出与审核指引(审核通过后翻 active)
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
---
|
|
89
|
+
|
|
90
|
+
## Phase 1:案例解析与 PR 材料获取
|
|
91
|
+
|
|
92
|
+
### 1.0 初始化知识库目录
|
|
93
|
+
|
|
94
|
+
检查 `{knowledgeDir}` 是否已有 `INDEX.md`:
|
|
95
|
+
- **已有** → 读取 INDEX.md 的规则/案例索引,进入正常流程(Phase 4 执行归类比对)
|
|
96
|
+
- **没有** → 冷启动:创建 `INDEX.md`(空索引骨架)+ `rules/` + `cases/` + `pr-info/` 目录
|
|
97
|
+
|
|
98
|
+
### 1.1 解析 issueList
|
|
99
|
+
|
|
100
|
+
- **JSON 数组**:直接使用 `description` + `prUrl` 字段
|
|
101
|
+
- **文本/文件**:逐行解析,提取「描述文本」与「GitCode PR 链接」。示例行:
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
【DTSE代提】【react-native-webview】视频无法横屏 https://gitcode.com/CPF-RN/rntpc_react-native-webview/pull/121
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
- 解析失败的行(无 PR 链接 / 链接非 gitcode.com)记入 `generalization-log.md` 的"无效条目"章节,**不中断流程**
|
|
108
|
+
- 按 PR 链接去重;`pr-info/` 下已存在同名材料文件的跳过重复获取
|
|
109
|
+
- **案例编号分配**:新案例编号 = INDEX.md 案例索引中现有最大 KI 编号 +1(冷启动从 KI-001 开始)
|
|
110
|
+
|
|
111
|
+
### 1.2 获取 PR 材料
|
|
112
|
+
|
|
113
|
+
对每个案例运行脚本(在 SKILL 根目录下执行):
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
python3 scripts/fetch-pr-info.py '{"prUrl": "https://gitcode.com/owner/repo/pull/123", "outputDir": "{knowledgeDir}", "token": "{gitcodeToken 可选}"}'
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
脚本输出 `{knowledgeDir}/pr-info/{repo}-{number}.md`(可读摘要:标题/描述/变更文件/diff)与 `.json`(原始数据)。
|
|
120
|
+
|
|
121
|
+
> 脚本用法、API 端点、降级策略详见 [PR 材料获取指南](references/PR_FETCH_GUIDE.md)
|
|
122
|
+
|
|
123
|
+
### 1.3 获取失败降级
|
|
124
|
+
|
|
125
|
+
脚本获取失败时(私有仓库 / 网络受限 / PR 已删除):
|
|
126
|
+
|
|
127
|
+
1. 标记该案例为 **材料不足**
|
|
128
|
+
2. Phase 2 仅基于问题描述分析,泛化质量会下降
|
|
129
|
+
3. 在最终草稿的"审核要点"中明确标注:`该规则未验证修复 diff,审核时需人工确认问题本质归纳是否准确`
|
|
130
|
+
|
|
131
|
+
---
|
|
132
|
+
|
|
133
|
+
## Phase 2:根因分析
|
|
134
|
+
|
|
135
|
+
对每个案例,从三个层次分析并记入 `generalization-log.md`:
|
|
136
|
+
|
|
137
|
+
| 层次 | 内容 | 示例(thumbImageUrl 案例) |
|
|
138
|
+
|------|------|---------------------------|
|
|
139
|
+
| **现象层** | 用户可感知的症状,保留原始描述 | 分享时图片下载报错,无法跳转微信 |
|
|
140
|
+
| **根因层** | 代码机制层面的缺陷描述 | 缩略图下载失败码直接出现在主流程 reject 路径上,附属操作失败阻断了核心流程 |
|
|
141
|
+
| **修复机制** | 从 PR diff 提炼修复**模式**(不是逐行复述 diff) | 缩略图下载失败时置空 thumb 字段、记录日志并继续调起主流程 |
|
|
142
|
+
|
|
143
|
+
**要求**:
|
|
144
|
+
- 根因层必须落到"机制":回答"这类问题为什么会发生",而不是"这个 bug 在哪一行"
|
|
145
|
+
- 修复机制必须可迁移:换个库遇到同类问题,这个修法依然有指导意义
|
|
146
|
+
- diff 材料充足时,定位修复前后的关键差异(错误路径处理 / 配置补全 / 入口修正等)
|
|
147
|
+
|
|
148
|
+
---
|
|
149
|
+
|
|
150
|
+
## Phase 3:泛化提炼
|
|
151
|
+
|
|
152
|
+
将根因层泛化为规则。**必须通过泛化三约束**,对照反例自检:
|
|
153
|
+
|
|
154
|
+
| 反例类型 | 错误示范 | 问题 |
|
|
155
|
+
|----------|----------|------|
|
|
156
|
+
| ❌ 过拟合 | "检查视频全屏时是否处理横屏旋转" | 等于没泛化,只防住原案例本身 |
|
|
157
|
+
| ❌ 过泛化 | "检查异常处理是否完善" | 废话型规则,无法判定,Agent 只能泛泛而谈 |
|
|
158
|
+
| ✅ 合格 | "主流程中每个附属操作失败时,是否隔离降级而非阻断主流程" | 机制层描述 + 读源码可判定 |
|
|
159
|
+
|
|
160
|
+
**泛化操作要点**:
|
|
161
|
+
1. **去库化**:把案例中的具体库名、组件名、API 名替换为"能力/角色"描述(`react-native-webview` → "含 WebView 能力的库";`shareWebpage` → "主流程接口")
|
|
162
|
+
2. **机制化**:从"这个 bug 怎么修"上升到"这类问题怎么查"——产出的是检查方法,不是修复补丁
|
|
163
|
+
3. **可判定化**:每个检查点改写为动词开头的源码检查动作(识别/列出/逐项检查/验证),确保 Agent 执行时能给出 是/否/疑似 结论
|
|
164
|
+
|
|
165
|
+
> 字段级编写规范、更多正反例、首批规则参考示例详见 [规则条目编写指南](references/RULE_TEMPLATE_GUIDE.md)
|
|
166
|
+
|
|
167
|
+
---
|
|
168
|
+
|
|
169
|
+
## Phase 4:知识库归类比对
|
|
170
|
+
|
|
171
|
+
### 4.1 读取现有知识库
|
|
172
|
+
|
|
173
|
+
读取 `{knowledgeDir}/INDEX.md` 的规则索引,获取现有规则列表(编号、规则名、分类、严重级别)。需要比对"问题本质"细节时,按索引链接读取对应 `rules/R-XX-*.md` 文件。
|
|
174
|
+
|
|
175
|
+
冷启动(INDEX 无规则)时跳过比对,全部走新建分支。
|
|
176
|
+
|
|
177
|
+
### 4.2 归类判定
|
|
178
|
+
|
|
179
|
+
对每条泛化后的规则草稿,按以下顺序判定:
|
|
180
|
+
|
|
181
|
+
1. **语义比对**:草稿的"问题本质"与现有规则的"问题本质"是否描述同一类机制缺陷?
|
|
182
|
+
2. **命中** → 该案例**挂载**到已有规则(增厚 few-shot,**不新建规则**),必要时补充/修订该规则的检查点
|
|
183
|
+
3. **未命中** → 新建规则草稿,分配下一个可用编号(R-{现有最大编号+1}),并确定其所属分类(现有分类优先,必要时新建分类)
|
|
184
|
+
|
|
185
|
+
**边界处理**:
|
|
186
|
+
- 同一案例可能触及多条规则(既是"降级缺失"又是"能力声明不匹配")→ 允许一案例挂多条规则,但**新建规则要保持克制**
|
|
187
|
+
- 修订已有规则的检查点时,必须在 `generalization-log.md` 中明确标注"修订项"及理由,供人工审核
|
|
188
|
+
|
|
189
|
+
### 4.3 记录归类依据
|
|
190
|
+
|
|
191
|
+
每条归类判定(命中/未命中的理由)写入 `generalization-log.md`,供人工审核追溯。
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## Phase 5:直接写入分级目录与自检
|
|
196
|
+
|
|
197
|
+
> 问题拆分完成后,产出**直接写入知识库分级目录**(不生成单文件草稿快照),所有新建/修订条目标记 `draft` 状态。
|
|
198
|
+
|
|
199
|
+
### 5.1 写入规则文件(rules/)
|
|
200
|
+
|
|
201
|
+
- **新建规则**:按 [规则条目模板](assets/rule-template.md) 生成,写入 `rules/R-{XX}-{规则名}.md`,状态标记 `draft`
|
|
202
|
+
- **修订已有规则**(挂载案例时):在原文件"来源案例"索引表追加案例行;如需补充检查点,在原检查点列表追加并标注 `({日期} 新增,draft 待审)`
|
|
203
|
+
|
|
204
|
+
### 5.2 写入案例文件(cases/)
|
|
205
|
+
|
|
206
|
+
- 按 [案例条目模板](assets/case-template.md) 生成(**格式二:代码证据式**),写入 `cases/KI-{XXX}-{库名现象}.md`
|
|
207
|
+
- **一案例一文件**:复合问题案例(挂多条规则)只写一份,元数据 `rule` 字段逗号分隔多条规则编号
|
|
208
|
+
|
|
209
|
+
**案例代码证据要求**(格式二核心):
|
|
210
|
+
- `verified: diff` 的案例**必须**包含"错误代码(修复前)"与"正确代码(修复后)"两个片段,从 PR diff 实际提取,禁止凭描述臆造
|
|
211
|
+
- 每段 ≤15 行,只保留命中判定关键行;错误代码用 `// ←` 标注缺陷点,正确代码用 `①②③` 标注修复步骤
|
|
212
|
+
- 元数据行必填:`rule` · `verified` · `source` · `severity`
|
|
213
|
+
|
|
214
|
+
### 5.3 更新一级索引(INDEX.md)
|
|
215
|
+
|
|
216
|
+
- **规则分类索引表**:新建规则追加行(含所属分类);新建分类时增加分类小节
|
|
217
|
+
- **案例索引表**:新案例追加行(编号/库/现象/所属规则/验证方式/案例文件链接)
|
|
218
|
+
- **变更记录表**:追加本次运行记录(日期 + 新建规则数/挂载案例数/修订项摘要)
|
|
219
|
+
|
|
220
|
+
### 5.4 自检清单
|
|
221
|
+
|
|
222
|
+
对每条产出逐项自检(不通过则回到 Phase 3 修订):
|
|
223
|
+
|
|
224
|
+
| # | 检查项 |
|
|
225
|
+
|---|--------|
|
|
226
|
+
| 1 | 规则体(来源案例区之外)无具体库名 / API 名 |
|
|
227
|
+
| 2 | 每个检查点可独立判定(读源码能给出 是/否/疑似) |
|
|
228
|
+
| 3 | 适用范围含可执行的预筛特征(依赖/文件/API 特征) |
|
|
229
|
+
| 4 | 与现有规则无"问题本质"层面的重叠 |
|
|
230
|
+
| 5 | 案例信息完整(现象 / 根因 / 修复方式 / PR 链接) |
|
|
231
|
+
| 6 | 严重级别有判定依据(high=功能不可用;medium=特定场景失效;low=体验问题) |
|
|
232
|
+
| 7 | INDEX.md 索引行与实际文件一一对应(链接可跳转) |
|
|
233
|
+
| 8 | 新建/修订条目状态均为 `draft` |
|
|
234
|
+
|
|
235
|
+
---
|
|
236
|
+
|
|
237
|
+
## Phase 6:输出与审核指引
|
|
238
|
+
|
|
239
|
+
### 6.1 审核指引(写入 generalization-log.md)
|
|
240
|
+
|
|
241
|
+
每次运行在 `generalization-log.md` **追加**一节,包含:
|
|
242
|
+
|
|
243
|
+
```markdown
|
|
244
|
+
# 泛化运行 — {日期}
|
|
245
|
+
|
|
246
|
+
## 产出清单
|
|
247
|
+
- 新建规则: {R-XX 列表 + 文件路径}
|
|
248
|
+
- 新建案例: {KI-XXX 列表 + 文件路径}
|
|
249
|
+
- 挂载案例: {KI-XXX → R-XX 映射}
|
|
250
|
+
- 修订规则: {R-XX + 修订内容}
|
|
251
|
+
|
|
252
|
+
## 审核要点
|
|
253
|
+
- 泛化度存疑项: {列出过拟合/过泛化风险条目及原因}
|
|
254
|
+
- 材料不足项: {未获取到 diff 的案例清单}
|
|
255
|
+
- 规则重叠风险: {与现有规则边界模糊的条目}
|
|
256
|
+
|
|
257
|
+
## 审核操作指引
|
|
258
|
+
1. 逐条审阅 draft 状态的规则/案例文件
|
|
259
|
+
2. 审核通过 → 规则文件改 `- **状态**: active`;案例文件元数据加 `status: active`
|
|
260
|
+
3. 审核不通过 → 修订文件内容或删除文件,并同步删除 INDEX.md 对应索引行
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
### 6.2 输出确认
|
|
264
|
+
|
|
265
|
+
完成后输出确认信息:处理案例数、新建规则数、挂载案例数、材料不足数、写入的文件列表(含 INDEX.md 变更摘要)。
|
|
266
|
+
|
|
267
|
+
---
|
|
268
|
+
|
|
269
|
+
## 与其他 SKILL 的关系
|
|
270
|
+
|
|
271
|
+
| SKILL | 关系 |
|
|
272
|
+
|-------|------|
|
|
273
|
+
| `rn-library-known-issue-check`(已知问题检视) | **消费者**:读 INDEX.md 预筛 → 按 `active` 状态规则执行检查,案例作为 few-shot |
|
|
274
|
+
| RN 仓库检视流水线 | 间接关系:本 SKILL 为离线运营工具,**不参与**在线扫描流水线;其产出经人工审核激活后供检视 SKILL 使用 |
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
<!-- 案例条目模板:生成 cases/KI-{XXX}-{库名现象}.md 独立文件 -->
|
|
2
|
+
<!-- 案例编号 KI-XXX 全局唯一,三位数字递增 -->
|
|
3
|
+
<!-- 格式二(代码证据式):错误/正确代码对照是 few-shot 判断的核心依据,必须从实际 PR diff 提取 -->
|
|
4
|
+
|
|
5
|
+
# KI-{XXX} {库名}:{问题现象简述}
|
|
6
|
+
|
|
7
|
+
- **元数据**: `rule: {R-XX[, R-XX]}` · `verified: {diff|description-only}` · `source: {dtse|community-issue|self-check}` · `severity: {high|medium|low}` · `status: {draft|active}`
|
|
8
|
+
- **PR**: {修复 PR 完整链接}({状态},{核心变更文件数})
|
|
9
|
+
- **diff 材料**: [../pr-info/{repo}-{number}.md](../pr-info/{repo}-{number}.md)
|
|
10
|
+
|
|
11
|
+
## 现象
|
|
12
|
+
|
|
13
|
+
{原始 issue 描述,保留具体信息}
|
|
14
|
+
|
|
15
|
+
## 根因
|
|
16
|
+
|
|
17
|
+
{该案例的机制层根因,与所属规则的"问题本质"呼应}
|
|
18
|
+
|
|
19
|
+
## 错误代码(修复前{,注明文件与关键缺陷点})
|
|
20
|
+
|
|
21
|
+
```{语言}
|
|
22
|
+
{从 PR diff 的删除行/上下文提取,只保留命中判定的关键行,≤15 行;
|
|
23
|
+
无法获取 diff 时省略本字段并在元数据标记 verified: description-only}
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
## 正确代码(修复后{,注明关键修复点})
|
|
27
|
+
|
|
28
|
+
```{语言}
|
|
29
|
+
{从 PR diff 的新增行提取,只保留体现修复模式的关键行,≤15 行;
|
|
30
|
+
可用注释标注 ①②③ 分步说明修复链路}
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
## 修复方式
|
|
34
|
+
|
|
35
|
+
{从 PR diff 提炼的可迁移修复模式}
|
|
36
|
+
|
|
37
|
+
<!--
|
|
38
|
+
字段说明:
|
|
39
|
+
- rule: 所属规则编号(一案例可挂多条规则,逗号分隔;每条规则文件中放索引行,案例文件只存一份)
|
|
40
|
+
- verified: diff=基于实际 patch 验证(有错误/正确代码);description-only=仅基于描述(无代码字段)
|
|
41
|
+
- source: dtse=DTSE代提;community-issue=社区 issue;self-check=内部自检发现
|
|
42
|
+
- severity: 该案例的严重级别(可能与规则默认级别不同)
|
|
43
|
+
- status: draft=泛化产出待审核;active=人工审核通过(检视 SKILL 只消费 active)
|
|
44
|
+
- 错误/正确代码约束:每段 ≤15 行;只留命中判定关键行;语言标注正确(typescript/cpp 等)
|
|
45
|
+
-->
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<!-- 规则条目模板:新建规则时复制本模板,填充所有字段后直接写入 rules/R-{XX}-{规则名}.md -->
|
|
2
|
+
<!-- 状态标记:draft(泛化产出待审核)/ active(人工审核通过,检视 SKILL 消费)/ deprecated(废弃,注明原因) -->
|
|
3
|
+
|
|
4
|
+
# R-{XX} {规则名,"类"结尾,≤20字,不含具体库名}
|
|
5
|
+
|
|
6
|
+
- **状态**: active
|
|
7
|
+
- **严重级别**: {high|medium|low}({判定依据:high=核心功能不可用;medium=特定场景失效;low=体验问题})
|
|
8
|
+
- **适用范围**: {哪类库适用}
|
|
9
|
+
- 预筛特征: {可执行的预筛条件,如:依赖特征 / 文件特征 / API 特征,命中才进入深度检查}
|
|
10
|
+
- **问题本质**: {一句话机制层描述,为什么这类问题会发生;禁止出现具体库名/API 名}
|
|
11
|
+
- **检查点**:
|
|
12
|
+
1. {动词开头,读源码后可独立判定是/否/疑似}
|
|
13
|
+
2. {...}
|
|
14
|
+
3. {...}
|
|
15
|
+
- **错误特征**: {源码中命中此类问题的典型形态,供模式匹配}
|
|
16
|
+
- **正确特征**: {修复后的代码形态,供对照判定}
|
|
17
|
+
|
|
18
|
+
## 来源案例
|
|
19
|
+
|
|
20
|
+
<!-- 案例索引行:详情在 cases/ 下的独立文件(格式二),此处只放索引 -->
|
|
21
|
+
<!-- 一案例挂多条规则时,各规则文件中都放索引行,案例文件只存一份 -->
|
|
22
|
+
|
|
23
|
+
| 编号 | 库 | 现象 | 案例文件 |
|
|
24
|
+
|------|-----|------|----------|
|
|
25
|
+
| KI-{XXX} | {库名} | {现象简述} | [KI-{XXX}-{库名现象}.md](../cases/KI-{XXX}-{库名现象}.md) |
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
# PR 材料获取指南
|
|
2
|
+
|
|
3
|
+
> `scripts/fetch-pr-info.py` 用于获取 GitCode PR 的元数据与 diff,为根因分析提供修复前后对照材料。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. 调用方式
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
python3 scripts/fetch-pr-info.py '{"prUrl": "https://gitcode.com/owner/repo/pull/123", "outputDir": "/absolute/path", "token": "可选"}'
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
参数(JSON 字符串):
|
|
14
|
+
|
|
15
|
+
| 参数 | 必填 | 说明 |
|
|
16
|
+
|------|------|------|
|
|
17
|
+
| `prUrl` | ✅ | GitCode PR 地址,`https://gitcode.com/{owner}/{repo}/pull/{number}` |
|
|
18
|
+
| `outputDir` | ✅ | 知识库根目录(knowledgeDir),材料写入 `{knowledgeDir}/pr-info/` |
|
|
19
|
+
| `token` | ❌ | GitCode API Token,私有仓库/限流时使用 |
|
|
20
|
+
|
|
21
|
+
---
|
|
22
|
+
|
|
23
|
+
## 2. 产出文件
|
|
24
|
+
|
|
25
|
+
| 文件 | 内容 | 用途 |
|
|
26
|
+
|------|------|------|
|
|
27
|
+
| `pr-info/{repo}-{number}.md` | 可读摘要:标题、描述、状态、变更文件列表、逐文件 diff | Agent 根因分析的主要输入 |
|
|
28
|
+
| `pr-info/{repo}-{number}.json` | API 原始响应 | 排查/二次解析用 |
|
|
29
|
+
|
|
30
|
+
---
|
|
31
|
+
|
|
32
|
+
## 3. API 端点
|
|
33
|
+
|
|
34
|
+
GitCode 兼容 GitHub API v3 风格(`https://gitcode.com/api/v5`):
|
|
35
|
+
|
|
36
|
+
| 数据 | 端点 |
|
|
37
|
+
|------|------|
|
|
38
|
+
| PR 元数据 | `GET /repos/{owner}/{repo}/pulls/{number}` |
|
|
39
|
+
| 变更文件 | `GET /repos/{owner}/{repo}/pulls/{number}/files`(含 patch 字段) |
|
|
40
|
+
|
|
41
|
+
- 无 Token 有速率限制;批量获取案例材料时建议传 `token`
|
|
42
|
+
- `files` 接口分页(per_page=100,page 递增),脚本已处理
|
|
43
|
+
|
|
44
|
+
---
|
|
45
|
+
|
|
46
|
+
## 4. 降级策略
|
|
47
|
+
|
|
48
|
+
| 情况 | 处理 |
|
|
49
|
+
|------|------|
|
|
50
|
+
| 私有仓库 401/404 | 脚本返回失败标记;Phase 1.3 走"材料不足"分支 |
|
|
51
|
+
| 速率限制 403/429 | 有 token 时自动重试(间隔递增,最多 3 次);仍失败走降级 |
|
|
52
|
+
| PR 超大(files>300 或 patch 过大) | 脚本截断 diff 并在摘要中标注"diff 已截断",保留变更文件全列表 |
|
|
53
|
+
| 网络不可达 | 脚本返回失败标记;走降级分支 |
|
|
54
|
+
|
|
55
|
+
**降级分支要求**(见 SKILL.md Phase 1.3):基于问题描述做有限泛化,草稿"审核要点"中必须标注该规则未验证修复 diff。
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 5. 本地已有材料复用
|
|
60
|
+
|
|
61
|
+
若 `{outputDir}/pr-info/{repo}-{number}.md` 已存在,脚本直接跳过获取(幂等)。批量重跑时不会重复请求 API。
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
# 规则条目编写指南
|
|
2
|
+
|
|
3
|
+
> 知识库采用"规则层 + 案例层"两层知识 + "一级索引 + 二级知识"分级存储:**规则**是检查的执行单元(数量收敛),**案例**挂在规则下作为 few-shot 参考与修复指引(持续增厚)。
|
|
4
|
+
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## 1. 知识库分级结构
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
BadCase/rn/
|
|
11
|
+
├── INDEX.md # 一级:分类 + 规则/案例索引(Agent 预筛只读此文件)
|
|
12
|
+
├── rules/ # 二级:规则知识(每规则一文件)
|
|
13
|
+
│ └── R-XX-{规则名}.md
|
|
14
|
+
├── cases/ # 二级:案例知识(每案例一文件,格式二)
|
|
15
|
+
│ └── KI-XXX-{库名现象}.md
|
|
16
|
+
└── pr-info/ # 案例原始 PR diff 证据材料
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
**分级规则**:
|
|
20
|
+
- **一级 INDEX.md**:只含分类、索引表(编号/名称/严重级别/文件链接),不含具体知识;规则分类按问题域划分(媒体与窗口类/资源加载类/流程健壮性类/异步与回调类/工程规范类等,可扩展)
|
|
21
|
+
- **二级 rules/**:每规则一文件,含完整检查知识 + 案例索引行(不含案例详情)
|
|
22
|
+
- **二级 cases/**:每案例一文件;一案例挂多条规则时只存一份,各规则文件放索引行引用
|
|
23
|
+
- **pr-info/**:案例的证据材料,案例文件中链接引用
|
|
24
|
+
|
|
25
|
+
**INDEX.md 结构**:
|
|
26
|
+
|
|
27
|
+
```markdown
|
|
28
|
+
# RN 三方库鸿蒙化已知问题知识库 — 一级索引
|
|
29
|
+
|
|
30
|
+
## 一、规则分类索引
|
|
31
|
+
### {分类名}
|
|
32
|
+
| 编号 | 规则名 | 严重级别 | 案例数 | 规则文件 |
|
|
33
|
+
|
|
34
|
+
## 二、案例索引
|
|
35
|
+
| 编号 | 库 | 现象简述 | 所属规则 | 验证方式 | 案例文件 |
|
|
36
|
+
|
|
37
|
+
## 三、变更记录
|
|
38
|
+
| 日期 | 变更 | 说明 |
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 2. 规则条目字段规范
|
|
44
|
+
|
|
45
|
+
| 字段 | 必填 | 约束 |
|
|
46
|
+
|------|------|------|
|
|
47
|
+
| `编号` | ✅ | `R-XX` 两位数字递增,不复用已删除编号 |
|
|
48
|
+
| `规则名` | ✅ | "XX类"结尾的类别名,≤20 字,不含具体库名 |
|
|
49
|
+
| `适用范围` | ✅ | 含**可执行的预筛特征**:依赖特征(package.json 中的依赖名模式)、文件特征(存在某类文件)、API 特征(代码中出现某类调用)。预筛目的是让检视 SKILL 快速判断该规则与当前库是否相关 |
|
|
50
|
+
| `问题本质` | ✅ | 一句话机制层描述:这类问题**为什么**会发生。禁止出现具体库名/API 名 |
|
|
51
|
+
| `检查点` | ✅ | 2-5 条,动词开头(识别/列出/逐项检查/验证),每条读源码后可独立给出 是/否/疑似 |
|
|
52
|
+
| `错误特征` | ✅ | 源码中命中此类问题的典型形态描述(供 Agent 模式匹配) |
|
|
53
|
+
| `正确特征` | ✅ | 修复后的代码形态描述(供 Agent 对照判定) |
|
|
54
|
+
| `严重级别` | ✅ | high / medium / low,及判定依据。high=核心功能不可用;medium=特定场景失效;low=体验问题 |
|
|
55
|
+
| `来源案例` | ✅ | ≥1 条案例(见第 3 节),冷启动时至少 1 条 |
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 3. 案例条目字段规范(格式二:代码证据式)
|
|
60
|
+
|
|
61
|
+
| 字段 | 必填 | 说明 |
|
|
62
|
+
|------|------|------|
|
|
63
|
+
| `案例编号` | ✅ | `KI-XXX` 三位数字递增,全局唯一 |
|
|
64
|
+
| `元数据` | ✅ | 一行式:`rule`(所属规则编号,多条逗号分隔)· `verified`(diff / description-only)· `source`(dtse / community-issue / self-check)· `severity`(high / medium / low)· `status`(draft / active,审核后翻 active) |
|
|
65
|
+
| `库与现象` | ✅ | 保留原始具体信息:库名 + 问题现象(可用原始 issue 描述) |
|
|
66
|
+
| `根因` | ✅ | 该案例的机制层根因(与规则"问题本质"呼应) |
|
|
67
|
+
| `错误代码` | ✅* | 修复前代码片段,从 PR diff 删除行/上下文提取,≤15 行,只保留命中判定关键行(`verified: diff` 时必填) |
|
|
68
|
+
| `正确代码` | ✅* | 修复后代码片段,从 PR diff 新增行提取,≤15 行,可用 ①②③ 注释标注修复链路(`verified: diff` 时必填) |
|
|
69
|
+
| `修复方式` | ✅ | 从 PR diff 提炼的修复模式(可迁移的描述,非逐行复述) |
|
|
70
|
+
| `PR 链接` | ✅ | 修复 PR 完整 URL |
|
|
71
|
+
| `diff 材料` | ✅ | 链接到 `pr-info/{repo}-{number}.md` |
|
|
72
|
+
|
|
73
|
+
> \* `verified: description-only` 的案例(未获取到 diff)省略代码字段,审核时需重点标注。
|
|
74
|
+
|
|
75
|
+
**代码证据编写要求**:
|
|
76
|
+
1. **必须来自实际 diff**,禁止凭描述臆造代码——这是"不能只通过描述判断问题"约束的落地
|
|
77
|
+
2. 每段 ≤15 行:只保留体现缺陷模式/修复模式的关键行,删除无关上下文
|
|
78
|
+
3. 语言标注正确(`typescript`/`cpp` 等),ArkTS 代码用 `typescript` 标注
|
|
79
|
+
4. 错误代码中用 `// ←` 箭头注释标出缺陷点;正确代码中用 `①②③` 标注修复步骤
|
|
80
|
+
5. 修复跨多文件时(如 JS 层 + ArkTS 层),两个片段可合并展示并注明各自来源文件
|
|
81
|
+
|
|
82
|
+
---
|
|
83
|
+
|
|
84
|
+
## 4. 泛化质量正反例
|
|
85
|
+
|
|
86
|
+
### 4.1 错误特征/正确特征写法
|
|
87
|
+
|
|
88
|
+
❌ **过拟合**(只防住原案例):
|
|
89
|
+
```
|
|
90
|
+
错误特征: 视频全屏时未调用 setPreferredOrientation
|
|
91
|
+
```
|
|
92
|
+
✅ **机制层**:
|
|
93
|
+
```
|
|
94
|
+
错误特征: 库对外声明的能力(全屏/旋转/后台运行等)在鸿蒙侧实现中找不到对应的
|
|
95
|
+
系统调用或配置项,能力声明与实现之间存在断层
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### 4.2 检查点写法
|
|
99
|
+
|
|
100
|
+
❌ **不可判定**:
|
|
101
|
+
```
|
|
102
|
+
检查点: 检查异常处理是否完善
|
|
103
|
+
```
|
|
104
|
+
✅ **可判定**:
|
|
105
|
+
```
|
|
106
|
+
检查点:
|
|
107
|
+
1. 识别库的核心主流程(对外承诺的主功能调用链)
|
|
108
|
+
2. 列出主流程中的附属操作(非核心必需的下载/统计/日志步骤)
|
|
109
|
+
3. 逐项检查附属操作的异常分支:失败时是隔离降级继续,还是 reject/throw 阻断主流程
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
### 4.3 适用范围写法
|
|
113
|
+
|
|
114
|
+
❌ **不可预筛**:
|
|
115
|
+
```
|
|
116
|
+
适用范围: 所有库
|
|
117
|
+
```
|
|
118
|
+
✅ **可预筛**:
|
|
119
|
+
```
|
|
120
|
+
适用范围: 主流程中包含网络下载、图片处理、统计上报等附属步骤的库
|
|
121
|
+
(预筛特征: 代码中出现 Promise.all 包装非核心请求 / reject 路径包含附属操作错误码)
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
---
|
|
125
|
+
|
|
126
|
+
## 5. 首批规则参考(4 案例泛化示例)
|
|
127
|
+
|
|
128
|
+
以下为 4 个种子案例的泛化结果示例,供冷启动与后续泛化对齐风格。**正式规则以人工审核后的规则库为准。**
|
|
129
|
+
|
|
130
|
+
### R-01 能力声明与实现匹配类
|
|
131
|
+
- **适用范围**: 对外声明媒体/窗口/系统能力(全屏、旋转、后台播放、画中画等)的库(预筛特征: README/接口文档含能力声明关键词;JS 层暴露 fullscreen/orientation 相关接口)
|
|
132
|
+
- **问题本质**: 库对外声明的某项能力,在鸿蒙侧实现中缺少对应的系统调用或配置支撑,能力声明与实现之间存在断层
|
|
133
|
+
- **检查点**: ①列出库对外声明的每项能力 ②逐项在鸿蒙侧实现(ArkTS/C++/配置文件)中定位支撑代码 ③无支撑的能力标记为命中
|
|
134
|
+
- **来源案例**: KI-001 webview 视频无法横屏(PR#121)
|
|
135
|
+
|
|
136
|
+
### R-02 非标准 URI/路径形态覆盖类
|
|
137
|
+
- **适用范围**: 加载本地/网络资源的库(图片、音频、字体、bundle 资源)(预筛特征: 存在 URI 解析/路径拼接逻辑)
|
|
138
|
+
- **问题本质**: 资源加载只覆盖了标准形态(http/https/固定本地路径),遗漏鸿蒙化环境特有的路径形态(热更新沙箱路径、bundle 内资源、content:// 等)
|
|
139
|
+
- **检查点**: ①定位所有资源 URI 解析入口 ②枚举其处理的路径形态分支 ③比对鸿蒙运行环境实际会产生的路径形态,缺失的标记为命中
|
|
140
|
+
- **来源案例**: KI-002 fastImage 热更新图片加载失败(PR#102)
|
|
141
|
+
|
|
142
|
+
### R-03 附属操作失败降级类
|
|
143
|
+
- **适用范围**: 主流程中包含附属步骤(缩略图、统计、日志、预加载)的库(预筛特征: 主调用链中存在非核心的网络请求或文件操作)
|
|
144
|
+
- **问题本质**: 非关键路径操作的失败被传播到主流程,导致核心功能被附属操作阻断
|
|
145
|
+
- **检查点**: ①识别核心主流程 ②列出主流程中的附属操作 ③逐项检查附属操作异常分支是否隔离降级
|
|
146
|
+
- **来源案例**: KI-003 wechat-lib thumbImageUrl 下载失败阻断分享(PR#15)
|
|
147
|
+
|
|
148
|
+
### R-04 发布产物自洽类
|
|
149
|
+
- **适用范围**: 所有发布到 OHPM 的库(预筛特征: 存在 oh-package.json5)
|
|
150
|
+
- **问题本质**: 包元信息(version/main/types/files)与实际发布产物不一致,或与官方接入文档不匹配,导致按文档接入直接失败
|
|
151
|
+
- **检查点**: ①核对 oh-package.json5 的 main/types 指向的文件是否存在 ②核对 version 与产物内容是否对应 ③按官方文档的接入步骤走查一遍入口链路
|
|
152
|
+
- **来源案例**: KI-004 geolocation 3.1.1 版本文件不对(PR#24)
|
|
153
|
+
|
|
154
|
+
---
|
|
155
|
+
|
|
156
|
+
## 6. 知识库维护约定
|
|
157
|
+
|
|
158
|
+
1. **直接写入分级目录**:泛化产出直接写入 `rules/`、`cases/` 并更新 `INDEX.md`,不生成单文件草稿快照
|
|
159
|
+
2. **draft → active 状态机制**:新建/修订条目标记 `draft`;人工审核通过后规则文件改 `- **状态**: active`、案例文件元数据加 `status: active`;检视 SKILL 只消费 `active` 条目
|
|
160
|
+
3. **规则只增不删**:失效规则标记 `deprecated` 并注明原因,保留编号
|
|
161
|
+
4. **案例持续挂载**:新案例优先归入已有规则;归入时检查是否需要补充该规则的检查点(追加项标注日期与 draft 待审)
|
|
162
|
+
5. **每次变更记录**:INDEX.md 变更记录表追加(日期 + 新建/挂载/修订摘要)
|
|
163
|
+
6. **编号稳定**:规则编号、案例编号一经合入不再变更,检视报告通过编号引用
|
|
164
|
+
7. **文件命名**:规则 `R-XX-{规则名}.md`、案例 `KI-XXX-{库名现象}.md`,命名与 INDEX 索引一致
|
|
165
|
+
8. **一案例一文件**:复合问题案例(挂多条规则)只存一份案例文件,各规则文件放索引行
|