@chongyan/autospec 1.0.1 → 1.0.2
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/LICENSE +21 -21
- package/README.en.md +447 -321
- package/README.md +418 -286
- package/knowledge/01-principles/00-principles-hierarchy.md +247 -0
- package/knowledge/01-principles/01-first-principles.md +241 -0
- package/knowledge/01-principles/02-strategic-principles.md +286 -0
- package/knowledge/01-principles/03-tactical-principles.md +385 -0
- package/knowledge/01-principles/04-operational-principles.md +275 -0
- package/knowledge/01-principles/05-domain-principles.md +539 -0
- package/knowledge/01-principles/06-methodology-principles.md +281 -0
- package/knowledge/01-principles/07-cognitive-principles.md +277 -0
- package/knowledge/01-principles/08-auto-fix-principles.md +320 -0
- package/knowledge/01-principles/09-constitution.md +220 -0
- package/knowledge/{principles/evolution.md → 01-principles/10-evolution-mechanism.md} +160 -14
- package/knowledge/01-principles/README.en.md +385 -0
- package/knowledge/01-principles/README.md +385 -0
- package/knowledge/{process/overview.md → 02-process/00-overview.md} +90 -5
- package/knowledge/02-process/README.en.md +143 -0
- package/knowledge/02-process/README.md +186 -0
- package/knowledge/{guides/support/pipeline-protocol.md → 03-guides/00-pipeline-protocol.md} +10 -10
- package/knowledge/{guides/support/team-orchestrator.md → 03-guides/01-team-orchestrator.md} +53 -8
- package/knowledge/{guides/stages/requirement-analyzer.md → 03-guides/02-analyze-requirement.md} +3 -3
- package/knowledge/{guides/stages/ai-effect-evaluator.md → 03-guides/08-evaluate-ai-effect.md} +14 -7
- package/knowledge/{guides/support/skill-distiller.md → 03-guides/19-distill-skill.md} +3 -3
- package/knowledge/{guides/support/skill-updater.md → 03-guides/20-update-skill.md} +1 -1
- package/knowledge/{guides/support/methodology-extractor.md → 03-guides/22-extract-methodology.md} +2 -2
- package/knowledge/{guides/support/complexity-assessor.md → 03-guides/24-assess-complexity.md} +6 -4
- package/knowledge/{guides/support/tech-stack-analyzer.md → 03-guides/26-analyze-tech-stack.md} +1 -1
- package/knowledge/{guides/domain-driven-design.md → 03-guides/42-apply-ddd.md} +1 -1
- package/knowledge/{process/ai-sdlc.md → 03-guides/43-run-ai-sdlc.md} +1 -1
- package/knowledge/{guides/knowledge-management.md → 03-guides/44-manage-knowledge.md} +4 -4
- package/knowledge/03-guides/README.en.md +212 -0
- package/knowledge/03-guides/README.md +212 -0
- package/knowledge/{checklists/requirement.md → 04-checklists/00-requirement.md} +1 -1
- package/knowledge/{checklists/design.md → 04-checklists/01-design.md} +1 -1
- package/knowledge/{checklists/code.md → 04-checklists/02-code.md} +16 -1
- package/knowledge/{checklists/release.md → 04-checklists/04-release.md} +1 -1
- package/knowledge/04-checklists/README.en.md +119 -0
- package/knowledge/04-checklists/README.md +123 -0
- package/knowledge/{config/validation-patterns.yaml → 05-config/00-validation-patterns.yaml} +1 -1
- package/knowledge/{config/team-tasks.yaml → 05-config/02-team-tasks.yaml} +2 -2
- package/knowledge/05-config/03-role-composition.yaml +346 -0
- package/knowledge/{config/skill-compositions.yaml → 05-config/05-skill-compositions.yaml} +24 -24
- package/knowledge/05-config/README.en.md +54 -0
- package/knowledge/05-config/README.md +132 -0
- package/knowledge/06-environment/00-template-registry.md +310 -0
- package/knowledge/06-environment/01-detection-patterns.yaml +1692 -0
- package/knowledge/{environment → 06-environment}/README.en.md +4 -0
- package/knowledge/{environment → 06-environment}/README.md +66 -25
- package/knowledge/{standards/coding-style.md → 07-standards/00-coding-style.md} +123 -4
- package/knowledge/{standards/code-review.md → 07-standards/01-code-review.md} +3 -3
- package/knowledge/{standards/data-consistency.md → 07-standards/02-data-consistency.md} +1 -1
- package/knowledge/{standards/document-versioning.md → 07-standards/03-document-versioning.md} +1 -1
- package/knowledge/{standards/risk-detection.md → 07-standards/04-risk-detection.md} +5 -5
- package/knowledge/07-standards/README.en.md +119 -0
- package/knowledge/07-standards/README.md +123 -0
- package/knowledge/08-organization/00-vision-mission.md +113 -0
- package/knowledge/{organization/ai-native-team.md → 08-organization/01-ai-native-culture.md} +1 -1
- package/knowledge/{organization/team-metrics.md → 08-organization/02-team-metrics.md} +1 -1
- package/knowledge/08-organization/03-committee-structure.md +54 -0
- package/knowledge/08-organization/04-governance-metrics.md +55 -0
- package/knowledge/08-organization/05-improvement-process.md +71 -0
- package/knowledge/08-organization/README.en.md +165 -0
- package/knowledge/08-organization/README.md +165 -0
- package/knowledge/09-templates/00-requirement-proposal.md +344 -0
- package/knowledge/09-templates/01-architecture-design.md +494 -0
- package/knowledge/09-templates/02-api-design.md +408 -0
- package/knowledge/09-templates/03-database-design.md +313 -0
- package/knowledge/09-templates/04-product-design.md +237 -0
- package/knowledge/09-templates/05-domain-business.md +388 -0
- package/knowledge/09-templates/06-test-design.md +268 -0
- package/knowledge/09-templates/07-evaluation-design.md +372 -0
- package/knowledge/09-templates/08-component-knowledge.md +272 -0
- package/knowledge/09-templates/09-best-practices.md +218 -0
- package/knowledge/{environment/middleware-knowledge.md → 09-templates/10-middleware-knowledge.md} +106 -1
- package/knowledge/09-templates/README.en.md +222 -0
- package/knowledge/09-templates/README.md +216 -0
- package/knowledge/README.en.md +372 -0
- package/knowledge/README.md +354 -99
- package/package.json +1 -1
- package/plugins/.claude-plugin/plugin.json +460 -81
- package/plugins/agents/roles/ceo.md +1 -1
- package/plugins/agents/roles/product-owner.md +1 -1
- package/plugins/agents/roles/tech-lead.md +1 -1
- package/plugins/agents/support/consistency-checker.md +36 -3
- package/plugins/agents/support/monitoring-agent.md +215 -0
- package/plugins/agents/support/safety-auditor.md +2 -2
- package/plugins/agents/support/stage-gate-evaluator.md +95 -11
- package/plugins/agents/support/test-coverage-reviewer.md +1 -1
- package/plugins/benchmarks/templates/README.md +165 -13
- package/plugins/benchmarks/templates/commands/apply-template.yaml +108 -0
- package/plugins/benchmarks/templates/commands/archive-template.yaml +65 -0
- package/plugins/benchmarks/templates/commands/env-export-template.yaml +64 -0
- package/plugins/benchmarks/templates/commands/env-sync-template.yaml +104 -0
- package/plugins/benchmarks/templates/commands/env-template-template.yaml +96 -0
- package/plugins/benchmarks/templates/commands/env-template.yaml +58 -0
- package/plugins/benchmarks/templates/commands/env-update-template.yaml +110 -0
- package/plugins/benchmarks/templates/commands/env-validate-template.yaml +95 -0
- package/plugins/benchmarks/templates/commands/field-evolve-template.yaml +104 -0
- package/plugins/benchmarks/templates/commands/project-evolve-template.yaml +104 -0
- package/plugins/benchmarks/templates/commands/propose-template.yaml +88 -0
- package/plugins/benchmarks/templates/commands/review-template.yaml +124 -0
- package/plugins/benchmarks/templates/commands/run-template.yaml +127 -0
- package/plugins/benchmarks/templates/commands/test-template.yaml +149 -0
- package/plugins/benchmarks/templates/pipeline/experiment-template.yaml +92 -0
- package/plugins/benchmarks/templates/pipeline/hotfix-template.yaml +81 -0
- package/plugins/benchmarks/templates/skills/agile-iteration-template.yaml +78 -0
- package/plugins/benchmarks/templates/skills/benchmark-executor-template.yaml +114 -0
- package/plugins/benchmarks/templates/skills/benchmark-generator-template.yaml +52 -0
- package/plugins/benchmarks/templates/skills/delivery-stage-template.yaml +130 -0
- package/plugins/benchmarks/templates/skills/design-stage-template.yaml +131 -0
- package/plugins/benchmarks/templates/skills/experiment-iteration-template.yaml +60 -0
- package/plugins/benchmarks/templates/skills/exploration-phase-template.yaml +114 -0
- package/plugins/benchmarks/templates/skills/field-evolve-analyzer-template.yaml +51 -0
- package/plugins/benchmarks/templates/skills/field-evolve-distiller-template.yaml +34 -0
- package/plugins/benchmarks/templates/skills/field-evolve-executor-template.yaml +50 -0
- package/plugins/benchmarks/templates/skills/field-evolve-fixer-template.yaml +52 -0
- package/plugins/benchmarks/templates/skills/field-evolve-learner-template.yaml +33 -0
- package/plugins/benchmarks/templates/skills/field-evolve-scanner-template.yaml +74 -0
- package/plugins/benchmarks/templates/skills/field-evolve-template.yaml +71 -0
- package/plugins/benchmarks/templates/skills/field-evolve-verifier-template.yaml +51 -0
- package/plugins/benchmarks/templates/skills/hotfix-iteration-template.yaml +54 -0
- package/plugins/benchmarks/templates/skills/implementation-stage-template.yaml +127 -0
- package/plugins/benchmarks/templates/skills/layer1-validation-template.yaml +121 -0
- package/plugins/benchmarks/templates/skills/project-evolve-analyzer-template.yaml +51 -0
- package/plugins/benchmarks/templates/skills/project-evolve-fixer-template.yaml +52 -0
- package/plugins/benchmarks/templates/skills/project-evolve-generator-template.yaml +34 -0
- package/plugins/benchmarks/templates/skills/project-evolve-learner-template.yaml +50 -0
- package/plugins/benchmarks/templates/skills/project-evolve-reviewer-template.yaml +50 -0
- package/plugins/benchmarks/templates/skills/project-evolve-scanner-template.yaml +75 -0
- package/plugins/benchmarks/templates/skills/project-evolve-template.yaml +72 -0
- package/plugins/benchmarks/templates/skills/project-evolve-verifier-template.yaml +51 -0
- package/plugins/benchmarks/templates/skills/skill-forge-template.yaml +117 -0
- package/plugins/benchmarks/templates/skills/startup-guard-template.yaml +103 -0
- package/plugins/benchmarks/templates/skills/testing-stage-template.yaml +146 -0
- package/plugins/benchmarks/templates/skills/waterfall-iteration-template.yaml +55 -0
- package/plugins/commands/README.en.md +2 -2
- package/plugins/commands/README.md +2 -2
- package/plugins/commands/apply.md +102 -16
- package/plugins/commands/archive.md +60 -4
- package/plugins/commands/env-sync.md +1047 -406
- package/plugins/commands/env-template.md +11 -135
- package/plugins/commands/env-update.md +1 -1
- package/plugins/commands/env-validate.md +3 -3
- package/plugins/commands/explore.md +118 -1
- package/plugins/commands/field-evolve.md +51 -175
- package/plugins/commands/project-evolve.md +167 -68
- package/plugins/commands/propose.md +97 -6
- package/plugins/commands/review.md +5 -5
- package/plugins/commands/run.md +841 -13
- package/plugins/commands/status.md +138 -17
- package/plugins/commands/test.md +389 -0
- package/plugins/hooks/constitution-guard.js +1 -1
- package/plugins/hooks/environment-autocommit.js +366 -24
- package/plugins/hooks/environment-manager.js +3 -2
- package/plugins/hooks/execution-tracker.js +109 -4
- package/plugins/hooks/layer1-validator.js +117 -1
- package/plugins/hooks/lib/auto-fix-loop.js +605 -0
- package/plugins/hooks/lib/environment-config-loader.js +11 -7
- package/plugins/hooks/lib/hook-state-manager.js +98 -0
- package/plugins/hooks/lib/memory-extractor.js +27 -5
- package/plugins/hooks/lib/memory-manager.js +1 -1
- package/plugins/hooks/lib/test-auto-fix.test.js +194 -0
- package/plugins/hooks/monitoring-trigger.js +467 -0
- package/plugins/skills/README.en.md +15 -3
- package/plugins/skills/README.md +21 -11
- package/plugins/skills/agile-iteration/SKILL.md +187 -0
- package/plugins/skills/delivery-stage/SKILL.md +133 -12
- package/plugins/skills/design-stage/SKILL.md +103 -12
- package/plugins/skills/experiment-evaluator/SKILL.md +271 -0
- package/plugins/skills/experiment-iteration/SKILL.md +154 -0
- package/plugins/skills/exploration-phase/SKILL.md +93 -10
- package/plugins/skills/field-evolve-analyzer/SKILL.md +65 -0
- package/plugins/skills/field-evolve-distiller/SKILL.md +66 -0
- package/plugins/skills/field-evolve-executor/SKILL.md +94 -0
- package/plugins/skills/field-evolve-executor/executor.js +342 -0
- package/plugins/skills/field-evolve-fixer/SKILL.md +69 -0
- package/plugins/skills/field-evolve-learner/SKILL.md +65 -0
- package/plugins/skills/field-evolve-scanner/SKILL.md +87 -0
- package/plugins/skills/field-evolve-scanner/scripts/fallback-scanner.js +288 -0
- package/plugins/skills/field-evolve-verifier/SKILL.md +64 -0
- package/plugins/skills/hotfix-iteration/SKILL.md +279 -0
- package/plugins/skills/implementation-stage/SKILL.md +156 -15
- package/plugins/skills/layer1-validation/SKILL.md +1 -1
- package/plugins/skills/pending-dashboard/SKILL.md +9 -8
- package/plugins/skills/project-evolve-analyzer/SKILL.md +95 -0
- package/plugins/skills/project-evolve-fixer/SKILL.md +99 -0
- package/plugins/skills/project-evolve-generator/SKILL.md +149 -0
- package/plugins/skills/project-evolve-learner/SKILL.md +103 -0
- package/plugins/skills/project-evolve-reviewer/SKILL.md +104 -0
- package/plugins/skills/project-evolve-scanner/SKILL.md +95 -0
- package/plugins/skills/project-evolve-scanner/scripts/dependency-reuse-checker.js +395 -0
- package/plugins/skills/project-evolve-scanner/scripts/subsystem-coverage.js +315 -0
- package/plugins/skills/project-evolve-verifier/SKILL.md +105 -0
- package/plugins/skills/requirement-stage/SKILL.md +47 -13
- package/plugins/skills/skill-forge/SKILL.md +2 -2
- package/plugins/skills/testing-stage/SKILL.md +583 -8
- package/plugins/skills/waterfall-iteration/SKILL.md +115 -0
- package/scripts/cli/index.js +1 -1
- package/scripts/cli/init.js +30 -4
- package/scripts/cli/list.js +3 -2
- package/scripts/config/commands.config.js +8 -8
- package/scripts/config/hooks.config.js +1 -1
- package/scripts/install/constants.js +204 -165
- package/scripts/state.js +210 -1
- package/knowledge/config/README.en.md +0 -44
- package/knowledge/config/README.md +0 -44
- package/knowledge/config/role-composition.yaml +0 -98
- package/knowledge/config/team-triggers.yaml +0 -198
- package/knowledge/domain/README.md +0 -115
- package/knowledge/domain/flows/README.md +0 -194
- package/knowledge/domain/glossary.md +0 -143
- package/knowledge/domain/rules.md +0 -138
- package/knowledge/environment/component-knowledge.md +0 -316
- package/knowledge/environment/detection-patterns.yaml +0 -502
- package/knowledge/environment/template-registry.md +0 -321
- package/knowledge/guides/requirement-engineering.md +0 -329
- package/knowledge/guides/system-design.md +0 -352
- package/knowledge/principles/constitution.md +0 -134
- package/knowledge/principles/core-principles.md +0 -368
- package/knowledge/principles/design-philosophy.md +0 -877
- package/knowledge/process/README.en.md +0 -38
- package/knowledge/process/README.md +0 -48
- package/knowledge/templates/ai-evaluation.md +0 -150
- package/knowledge/templates/api-design.md +0 -117
- package/knowledge/templates/database-design.md +0 -132
- package/knowledge/templates/domain-driven-design.md +0 -321
- package/knowledge/templates/product-proposal.md +0 -201
- package/knowledge/templates/system-design.md +0 -227
- package/knowledge/templates/task-breakdown.md +0 -107
- package/knowledge/templates/test-case.md +0 -170
- package/plugins/commands/validate.md +0 -108
- package/plugins/skills/benchmark-executor/README.md +0 -93
- package/plugins/skills/evolution-process/SKILL.md +0 -291
- package/plugins/skills/project-evolution/SKILL.md +0 -847
- package/scripts/evolution/evolution-router.js +0 -273
- package/scripts/evolution/evolution-signal-collector.js +0 -307
- package/scripts/evolution/knowledge-loader.js +0 -346
- package/scripts/evolution/marketplace.js +0 -317
- package/scripts/evolution/version-manager.js +0 -371
- /package/knowledge/{process → 02-process}/01-requirement.md +0 -0
- /package/knowledge/{process → 02-process}/02-design.md +0 -0
- /package/knowledge/{process → 02-process}/03-implementation.md +0 -0
- /package/knowledge/{process → 02-process}/04-review.md +0 -0
- /package/knowledge/{process → 02-process}/05-testing.md +0 -0
- /package/knowledge/{process → 02-process}/06-delivery.md +0 -0
- /package/knowledge/{guides/stages/design-planner.md → 03-guides/03-design-solution.md} +0 -0
- /package/knowledge/{guides/stages/code-implementer.md → 03-guides/04-implement-code.md} +0 -0
- /package/knowledge/{guides/stages/test-planner.md → 03-guides/05-plan-testing.md} +0 -0
- /package/knowledge/{guides/stages/test-generator.md → 03-guides/06-generate-tests.md} +0 -0
- /package/knowledge/{guides/stages/release-checker.md → 03-guides/07-check-release.md} +0 -0
- /package/knowledge/{guides/stages/requirement-reviewer.md → 03-guides/09-review-requirement.md} +0 -0
- /package/knowledge/{guides/stages/design-reviewer.md → 03-guides/10-review-design.md} +0 -0
- /package/knowledge/{guides/stages/code-reviewer.md → 03-guides/11-review-code.md} +0 -0
- /package/knowledge/{guides/stages/test-reviewer.md → 03-guides/12-review-testing.md} +0 -0
- /package/knowledge/{guides/stages/security-reviewer.md → 03-guides/13-audit-security.md} +0 -0
- /package/knowledge/{guides/stages/consistency-checker.md → 03-guides/14-check-consistency.md} +0 -0
- /package/knowledge/{guides/stages/unit-test-runner.md → 03-guides/15-run-unit-tests.md} +0 -0
- /package/knowledge/{guides/stages/integration-test-runner.md → 03-guides/16-run-integration-tests.md} +0 -0
- /package/knowledge/{guides/stages/test-context-analyzer.md → 03-guides/17-analyze-test-context.md} +0 -0
- /package/knowledge/{guides/support/practice-logger.md → 03-guides/18-log-practice.md} +0 -0
- /package/knowledge/{guides/support/skill-validator.md → 03-guides/21-validate-skill.md} +0 -0
- /package/knowledge/{guides/support/scope-inference.md → 03-guides/23-infer-scope.md} +0 -0
- /package/knowledge/{guides/support/component-discovery.md → 03-guides/25-discover-component.md} +0 -0
- /package/knowledge/{guides/support/environment-scanner.md → 03-guides/27-scan-environment.md} +0 -0
- /package/knowledge/{guides/support/environment-validator.md → 03-guides/28-validate-environment.md} +0 -0
- /package/knowledge/{guides/support/knowledge-generator.md → 03-guides/29-generate-knowledge.md} +0 -0
- /package/knowledge/{guides/support/ai-capability-analyzer.md → 03-guides/30-analyze-ai-capability.md} +0 -0
- /package/knowledge/{guides/support/ai-component-analyzer.md → 03-guides/31-analyze-ai-component.md} +0 -0
- /package/knowledge/{guides/support/ai-agent-analyzer.md → 03-guides/32-analyze-ai-agent.md} +0 -0
- /package/knowledge/{guides/support/ai-rag-analyzer.md → 03-guides/33-analyze-ai-rag.md} +0 -0
- /package/knowledge/{guides/support/ai-task-assessor.md → 03-guides/34-assess-ai-task.md} +0 -0
- /package/knowledge/{guides/support/ai-pipeline-evaluator.md → 03-guides/35-evaluate-ai-pipeline.md} +0 -0
- /package/knowledge/{guides/support/ai-artifact-evaluator.md → 03-guides/36-evaluate-ai-artifact.md} +0 -0
- /package/knowledge/{guides/support/ai-evaluation-planner.md → 03-guides/37-plan-ai-evaluation.md} +0 -0
- /package/knowledge/{guides/support/ai-path-evaluator.md → 03-guides/38-evaluate-ai-path.md} +0 -0
- /package/knowledge/{guides/support/ai-data-validator.md → 03-guides/39-validate-ai-data.md} +0 -0
- /package/knowledge/{guides/support/ai-anomaly-analyzer.md → 03-guides/40-detect-ai-anomaly.md} +0 -0
- /package/knowledge/{guides/support/ai-test-diagnostics.md → 03-guides/41-diagnose-ai-test.md} +0 -0
- /package/knowledge/{guides/support/test-runner.md → 03-guides/45-test-runner.md} +0 -0
- /package/knowledge/{checklists/test.md → 04-checklists/03-test.md} +0 -0
- /package/knowledge/{config/team-stage.yaml → 05-config/01-team-stage.yaml} +0 -0
- /package/knowledge/{config/role-extensions.yaml → 05-config/04-role-extensions.yaml} +0 -0
|
@@ -0,0 +1,1692 @@
|
|
|
1
|
+
# AutoSpec 检测规则配置
|
|
2
|
+
# 用于技术栈、框架、AI组件的自动检测
|
|
3
|
+
|
|
4
|
+
# ============================================================
|
|
5
|
+
# 构建文件规则
|
|
6
|
+
# ============================================================
|
|
7
|
+
buildFiles:
|
|
8
|
+
package.json:
|
|
9
|
+
buildTool: npm/yarn/pnpm
|
|
10
|
+
lang: javascript
|
|
11
|
+
parser: packageJson
|
|
12
|
+
|
|
13
|
+
pom.xml:
|
|
14
|
+
buildTool: maven
|
|
15
|
+
lang: java
|
|
16
|
+
parser: pomXml
|
|
17
|
+
|
|
18
|
+
build.gradle:
|
|
19
|
+
buildTool: gradle
|
|
20
|
+
lang: java
|
|
21
|
+
parser: buildGradle
|
|
22
|
+
|
|
23
|
+
build.gradle.kts:
|
|
24
|
+
buildTool: gradle
|
|
25
|
+
lang: kotlin
|
|
26
|
+
parser: buildGradleKts
|
|
27
|
+
|
|
28
|
+
go.mod:
|
|
29
|
+
buildTool: go-modules
|
|
30
|
+
lang: go
|
|
31
|
+
parser: goMod
|
|
32
|
+
|
|
33
|
+
Cargo.toml:
|
|
34
|
+
buildTool: cargo
|
|
35
|
+
lang: rust
|
|
36
|
+
parser: cargoToml
|
|
37
|
+
|
|
38
|
+
pyproject.toml:
|
|
39
|
+
buildTool: poetry/pdm
|
|
40
|
+
lang: python
|
|
41
|
+
parser: pyprojectToml
|
|
42
|
+
|
|
43
|
+
requirements.txt:
|
|
44
|
+
buildTool: pip
|
|
45
|
+
lang: python
|
|
46
|
+
parser: requirements
|
|
47
|
+
|
|
48
|
+
setup.py:
|
|
49
|
+
buildTool: setuptools
|
|
50
|
+
lang: python
|
|
51
|
+
parser: setupPy
|
|
52
|
+
|
|
53
|
+
dbt_project.yml:
|
|
54
|
+
buildTool: dbt
|
|
55
|
+
lang: sql
|
|
56
|
+
parser: dbtProject
|
|
57
|
+
|
|
58
|
+
pubspec.yaml:
|
|
59
|
+
buildTool: flutter
|
|
60
|
+
lang: dart
|
|
61
|
+
parser: pubspec
|
|
62
|
+
|
|
63
|
+
composer.json:
|
|
64
|
+
buildTool: composer
|
|
65
|
+
lang: php
|
|
66
|
+
parser: composer
|
|
67
|
+
|
|
68
|
+
Gemfile:
|
|
69
|
+
buildTool: bundler
|
|
70
|
+
lang: ruby
|
|
71
|
+
parser: gemfile
|
|
72
|
+
|
|
73
|
+
# ============================================================
|
|
74
|
+
# 框架识别规则
|
|
75
|
+
# ============================================================
|
|
76
|
+
frameworks:
|
|
77
|
+
# JavaScript/TypeScript 框架
|
|
78
|
+
javascript:
|
|
79
|
+
- deps: [react-native]
|
|
80
|
+
framework: React Native
|
|
81
|
+
type: mobile
|
|
82
|
+
|
|
83
|
+
- deps: [next]
|
|
84
|
+
framework: Next.js
|
|
85
|
+
type: frontend
|
|
86
|
+
|
|
87
|
+
- deps: [nuxt]
|
|
88
|
+
framework: Nuxt.js
|
|
89
|
+
type: frontend
|
|
90
|
+
|
|
91
|
+
- deps: [vue]
|
|
92
|
+
framework: Vue
|
|
93
|
+
type: frontend
|
|
94
|
+
|
|
95
|
+
- deps: [react]
|
|
96
|
+
framework: React
|
|
97
|
+
type: frontend
|
|
98
|
+
|
|
99
|
+
- deps: [angular, "@angular/core"]
|
|
100
|
+
framework: Angular
|
|
101
|
+
type: frontend
|
|
102
|
+
|
|
103
|
+
- deps: [svelte]
|
|
104
|
+
framework: Svelte
|
|
105
|
+
type: frontend
|
|
106
|
+
|
|
107
|
+
- deps: [sveltekit]
|
|
108
|
+
framework: SvelteKit
|
|
109
|
+
type: frontend
|
|
110
|
+
|
|
111
|
+
- deps: [astro]
|
|
112
|
+
framework: Astro
|
|
113
|
+
type: frontend
|
|
114
|
+
|
|
115
|
+
- deps: [remix]
|
|
116
|
+
framework: Remix
|
|
117
|
+
type: frontend
|
|
118
|
+
|
|
119
|
+
- deps: [express]
|
|
120
|
+
framework: Express
|
|
121
|
+
type: backend
|
|
122
|
+
|
|
123
|
+
- deps: [nestjs, "@nestjs/core"]
|
|
124
|
+
framework: NestJS
|
|
125
|
+
type: backend
|
|
126
|
+
|
|
127
|
+
- deps: [fastify]
|
|
128
|
+
framework: Fastify
|
|
129
|
+
type: backend
|
|
130
|
+
|
|
131
|
+
- deps: [koa]
|
|
132
|
+
framework: Koa
|
|
133
|
+
type: backend
|
|
134
|
+
|
|
135
|
+
- deps: [hono]
|
|
136
|
+
framework: Hono
|
|
137
|
+
type: backend
|
|
138
|
+
|
|
139
|
+
- deps: [hapi]
|
|
140
|
+
framework: Hapi
|
|
141
|
+
type: backend
|
|
142
|
+
|
|
143
|
+
- deps: [openai]
|
|
144
|
+
framework: OpenAI
|
|
145
|
+
type: llm
|
|
146
|
+
|
|
147
|
+
- deps: [anthropic, "@anthropic-ai/sdk"]
|
|
148
|
+
framework: Anthropic
|
|
149
|
+
type: llm
|
|
150
|
+
|
|
151
|
+
- deps: [langchain, "@langchain/core"]
|
|
152
|
+
framework: LangChain
|
|
153
|
+
type: llm
|
|
154
|
+
|
|
155
|
+
- deps: [llamaindex]
|
|
156
|
+
framework: LlamaIndex
|
|
157
|
+
type: llm
|
|
158
|
+
|
|
159
|
+
- deps: [electron]
|
|
160
|
+
framework: Electron
|
|
161
|
+
type: desktop
|
|
162
|
+
|
|
163
|
+
# Python 框架
|
|
164
|
+
python:
|
|
165
|
+
- deps: [django]
|
|
166
|
+
framework: Django
|
|
167
|
+
type: backend
|
|
168
|
+
|
|
169
|
+
- deps: [fastapi]
|
|
170
|
+
framework: FastAPI
|
|
171
|
+
type: backend
|
|
172
|
+
|
|
173
|
+
- deps: [flask]
|
|
174
|
+
framework: Flask
|
|
175
|
+
type: backend
|
|
176
|
+
|
|
177
|
+
- deps: [starlette]
|
|
178
|
+
framework: Starlette
|
|
179
|
+
type: backend
|
|
180
|
+
|
|
181
|
+
- deps: [tornado]
|
|
182
|
+
framework: Tornado
|
|
183
|
+
type: backend
|
|
184
|
+
|
|
185
|
+
- deps: [sanic]
|
|
186
|
+
framework: Sanic
|
|
187
|
+
type: backend
|
|
188
|
+
|
|
189
|
+
- deps: [torch]
|
|
190
|
+
framework: PyTorch
|
|
191
|
+
type: ai
|
|
192
|
+
|
|
193
|
+
- deps: [tensorflow]
|
|
194
|
+
framework: TensorFlow
|
|
195
|
+
type: ai
|
|
196
|
+
|
|
197
|
+
- deps: [transformers]
|
|
198
|
+
framework: Transformers
|
|
199
|
+
type: ai
|
|
200
|
+
|
|
201
|
+
- deps: [langchain]
|
|
202
|
+
framework: LangChain
|
|
203
|
+
type: llm
|
|
204
|
+
|
|
205
|
+
- deps: [llamaindex]
|
|
206
|
+
framework: LlamaIndex
|
|
207
|
+
type: llm
|
|
208
|
+
|
|
209
|
+
- deps: [openai]
|
|
210
|
+
framework: OpenAI
|
|
211
|
+
type: llm
|
|
212
|
+
|
|
213
|
+
- deps: [anthropic]
|
|
214
|
+
framework: Anthropic
|
|
215
|
+
type: llm
|
|
216
|
+
|
|
217
|
+
- deps: [crewai]
|
|
218
|
+
framework: CrewAI
|
|
219
|
+
type: agent
|
|
220
|
+
|
|
221
|
+
- deps: [autogen]
|
|
222
|
+
framework: AutoGen
|
|
223
|
+
type: agent
|
|
224
|
+
|
|
225
|
+
- deps: [semantic-kernel]
|
|
226
|
+
framework: Semantic Kernel
|
|
227
|
+
type: agent
|
|
228
|
+
|
|
229
|
+
- deps: [dbt]
|
|
230
|
+
framework: DBT
|
|
231
|
+
type: data
|
|
232
|
+
|
|
233
|
+
- deps: [airflow]
|
|
234
|
+
framework: Airflow
|
|
235
|
+
type: data
|
|
236
|
+
|
|
237
|
+
- deps: [prefect]
|
|
238
|
+
framework: Prefect
|
|
239
|
+
type: data
|
|
240
|
+
|
|
241
|
+
- deps: [dagster]
|
|
242
|
+
framework: Dagster
|
|
243
|
+
type: data
|
|
244
|
+
|
|
245
|
+
- deps: [pyspark]
|
|
246
|
+
framework: PySpark
|
|
247
|
+
type: data
|
|
248
|
+
|
|
249
|
+
- deps: [dask]
|
|
250
|
+
framework: Dask
|
|
251
|
+
type: data
|
|
252
|
+
|
|
253
|
+
- deps: [faiss]
|
|
254
|
+
framework: FAISS
|
|
255
|
+
type: vector-store
|
|
256
|
+
|
|
257
|
+
- deps: [chromadb]
|
|
258
|
+
framework: ChromaDB
|
|
259
|
+
type: vector-store
|
|
260
|
+
|
|
261
|
+
- deps: [pinecone]
|
|
262
|
+
framework: Pinecone
|
|
263
|
+
type: vector-store
|
|
264
|
+
|
|
265
|
+
- deps: [weaviate]
|
|
266
|
+
framework: Weaviate
|
|
267
|
+
type: vector-store
|
|
268
|
+
|
|
269
|
+
- deps: [qdrant]
|
|
270
|
+
framework: Qdrant
|
|
271
|
+
type: vector-store
|
|
272
|
+
|
|
273
|
+
- deps: [mlflow]
|
|
274
|
+
framework: MLflow
|
|
275
|
+
type: mlops
|
|
276
|
+
|
|
277
|
+
- deps: [wandb]
|
|
278
|
+
framework: Weights & Biases
|
|
279
|
+
type: mlops
|
|
280
|
+
|
|
281
|
+
# Java 框架
|
|
282
|
+
java:
|
|
283
|
+
- deps: [spring-boot, org.springframework.boot]
|
|
284
|
+
framework: Spring Boot
|
|
285
|
+
type: backend
|
|
286
|
+
|
|
287
|
+
- deps: [spring-cloud]
|
|
288
|
+
framework: Spring Cloud
|
|
289
|
+
type: backend
|
|
290
|
+
|
|
291
|
+
- deps: [dubbo]
|
|
292
|
+
framework: Dubbo
|
|
293
|
+
type: backend
|
|
294
|
+
|
|
295
|
+
- deps: [quarkus]
|
|
296
|
+
framework: Quarkus
|
|
297
|
+
type: backend
|
|
298
|
+
|
|
299
|
+
- deps: [micronaut]
|
|
300
|
+
framework: Micronaut
|
|
301
|
+
type: backend
|
|
302
|
+
|
|
303
|
+
- deps: [vertx]
|
|
304
|
+
framework: Vert.x
|
|
305
|
+
type: backend
|
|
306
|
+
|
|
307
|
+
# Go 框架
|
|
308
|
+
go:
|
|
309
|
+
- deps: [gin-gonic]
|
|
310
|
+
framework: Gin
|
|
311
|
+
type: backend
|
|
312
|
+
|
|
313
|
+
- deps: [echo]
|
|
314
|
+
framework: Echo
|
|
315
|
+
type: backend
|
|
316
|
+
|
|
317
|
+
- deps: [fiber]
|
|
318
|
+
framework: Fiber
|
|
319
|
+
type: backend
|
|
320
|
+
|
|
321
|
+
- deps: [chi]
|
|
322
|
+
framework: Chi
|
|
323
|
+
type: backend
|
|
324
|
+
|
|
325
|
+
# Rust 框架
|
|
326
|
+
rust:
|
|
327
|
+
- deps: [actix]
|
|
328
|
+
framework: Actix
|
|
329
|
+
type: backend
|
|
330
|
+
|
|
331
|
+
- deps: [rocket]
|
|
332
|
+
framework: Rocket
|
|
333
|
+
type: backend
|
|
334
|
+
|
|
335
|
+
- deps: [warp]
|
|
336
|
+
framework: Warp
|
|
337
|
+
type: backend
|
|
338
|
+
|
|
339
|
+
- deps: [axum]
|
|
340
|
+
framework: Axum
|
|
341
|
+
type: backend
|
|
342
|
+
|
|
343
|
+
# ============================================================
|
|
344
|
+
# 数据开发组件检测规则
|
|
345
|
+
# ============================================================
|
|
346
|
+
dataComponents:
|
|
347
|
+
dataWarehouse:
|
|
348
|
+
label: 数据仓库
|
|
349
|
+
buildFiles: [dbt_project.yml]
|
|
350
|
+
directories: [models, marts, staging, seeds, snapshots]
|
|
351
|
+
filePatterns: ["*.sql", schema.yml, sources.yml]
|
|
352
|
+
type: data-warehouse
|
|
353
|
+
needsEvaluation: false
|
|
354
|
+
|
|
355
|
+
etlPipeline:
|
|
356
|
+
label: ETL管道
|
|
357
|
+
directories: [dags, pipelines, jobs, etl, workflows]
|
|
358
|
+
filePatterns: ["*dag*.py", "*pipeline*.py", "*etl*.py", "*job*.py"]
|
|
359
|
+
dependencies: [airflow, prefect, dagster, luigi, celery]
|
|
360
|
+
type: etl-pipeline
|
|
361
|
+
needsEvaluation: false
|
|
362
|
+
|
|
363
|
+
dataProcessing:
|
|
364
|
+
label: 数据处理
|
|
365
|
+
directories: [spark, processing, transform, scripts]
|
|
366
|
+
dependencies: [pyspark, dask, polars, duckdb, ray]
|
|
367
|
+
type: data-processing
|
|
368
|
+
needsEvaluation: false
|
|
369
|
+
|
|
370
|
+
dataQuality:
|
|
371
|
+
label: 数据质量
|
|
372
|
+
directories: [tests, data_tests, quality, expectations]
|
|
373
|
+
filePatterns: ["*test*.sql", "*quality*.py", great_expectations]
|
|
374
|
+
dependencies: [great_expectations, soda, dbt]
|
|
375
|
+
type: data-quality
|
|
376
|
+
needsEvaluation: false
|
|
377
|
+
|
|
378
|
+
# ============================================================
|
|
379
|
+
# AI 开发组件检测规则
|
|
380
|
+
# ============================================================
|
|
381
|
+
aiComponents:
|
|
382
|
+
modelTraining:
|
|
383
|
+
label: 模型训练
|
|
384
|
+
directories: [training, train, experiments, notebooks, models]
|
|
385
|
+
filePatterns: ["*train*.py", "*experiment*.py", "*.ipynb", train.sh]
|
|
386
|
+
dependencies: [torch, tensorflow, jax, keras, transformers, accelerate, deepspeed]
|
|
387
|
+
type: model-training
|
|
388
|
+
needsEvaluation: true
|
|
389
|
+
|
|
390
|
+
inferenceService:
|
|
391
|
+
label: 推理服务
|
|
392
|
+
directories: [inference, serving, api, endpoints]
|
|
393
|
+
filePatterns: ["*inference*.py", "*serve*.py", "*api*.py", serve.py]
|
|
394
|
+
dependencies: [fastapi, flask, uvicorn, tgi, vllm, triton, torchserve]
|
|
395
|
+
type: inference-service
|
|
396
|
+
needsEvaluation: true
|
|
397
|
+
|
|
398
|
+
llmApplication:
|
|
399
|
+
label: LLM应用
|
|
400
|
+
dependencies: [langchain, llamaindex, openai, anthropic, litellm, guidance, outlines]
|
|
401
|
+
type: llm-application
|
|
402
|
+
needsEvaluation: true
|
|
403
|
+
|
|
404
|
+
agentFramework:
|
|
405
|
+
label: Agent框架
|
|
406
|
+
dependencies: [langchain, crewai, autogen, metagpt, semantic-kernel, agents]
|
|
407
|
+
filePatterns: ["*agent*.py", "*agents*.py"]
|
|
408
|
+
type: agent-framework
|
|
409
|
+
needsEvaluation: true
|
|
410
|
+
|
|
411
|
+
vectorStore:
|
|
412
|
+
label: 向量存储
|
|
413
|
+
dependencies: [faiss, pinecone, weaviate, chromadb, qdrant, milvus, pgvector, lancedb]
|
|
414
|
+
type: vector-store
|
|
415
|
+
needsEvaluation: false
|
|
416
|
+
|
|
417
|
+
evaluation:
|
|
418
|
+
label: 评测框架
|
|
419
|
+
directories: [evaluation, eval, benchmarks, tests]
|
|
420
|
+
filePatterns: ["*eval*.py", "*benchmark*.py", "*metrics*.py"]
|
|
421
|
+
dependencies: [pytest, wandb, mlflow, evaluate, rouge, bert_score, sacrebleu]
|
|
422
|
+
type: evaluation
|
|
423
|
+
needsEvaluation: false
|
|
424
|
+
|
|
425
|
+
featureEngineering:
|
|
426
|
+
label: 特征工程
|
|
427
|
+
directories: [features, feature_store, feast]
|
|
428
|
+
dependencies: [feast, featuretools, fts]
|
|
429
|
+
type: feature-engineering
|
|
430
|
+
needsEvaluation: false
|
|
431
|
+
|
|
432
|
+
ragApplication:
|
|
433
|
+
label: RAG应用
|
|
434
|
+
requiresBoth: [vectorStore, llmApplication]
|
|
435
|
+
type: rag-application
|
|
436
|
+
needsEvaluation: true
|
|
437
|
+
|
|
438
|
+
# ============================================================
|
|
439
|
+
# 项目类型推断规则
|
|
440
|
+
# ============================================================
|
|
441
|
+
projectTypes:
|
|
442
|
+
monorepo:
|
|
443
|
+
indicators: [packages, apps, workspaces]
|
|
444
|
+
configFile: pnpm-workspace.yaml
|
|
445
|
+
|
|
446
|
+
microservices:
|
|
447
|
+
indicators: [services, backend, api]
|
|
448
|
+
minModules: 2
|
|
449
|
+
|
|
450
|
+
singleApp:
|
|
451
|
+
indicators: [src, lib, app]
|
|
452
|
+
excludeIndicators: [packages, services]
|
|
453
|
+
|
|
454
|
+
# ============================================================
|
|
455
|
+
# 入口文件模式(支持多模块项目)
|
|
456
|
+
# ============================================================
|
|
457
|
+
entryPoints:
|
|
458
|
+
python: [main.py, app.py, manage.py, run.py, server.py, wsgi.py, asgi.py]
|
|
459
|
+
javascript: [index.js, app.js, server.js, main.js, index.ts, main.ts]
|
|
460
|
+
java:
|
|
461
|
+
- "src/main/java/**/Application.java"
|
|
462
|
+
- "src/main/java/**/*Application.java"
|
|
463
|
+
- "app/*/src/main/java/**/Application.java"
|
|
464
|
+
- "app/*/src/main/java/**/*Application.java"
|
|
465
|
+
- "*/src/main/java/**/Application.java"
|
|
466
|
+
go: [main.go, "cmd/main.go", "cmd/server/main.go"]
|
|
467
|
+
rust: ["src/main.rs"]
|
|
468
|
+
ruby: [app.rb, config.ru]
|
|
469
|
+
|
|
470
|
+
# ============================================================
|
|
471
|
+
# 忽略目录(用于扫描)
|
|
472
|
+
# ============================================================
|
|
473
|
+
ignoreDirectories:
|
|
474
|
+
- node_modules
|
|
475
|
+
- ".git"
|
|
476
|
+
- ".svn"
|
|
477
|
+
- ".hg"
|
|
478
|
+
- dist
|
|
479
|
+
- build
|
|
480
|
+
- out
|
|
481
|
+
- target
|
|
482
|
+
- __pycache__
|
|
483
|
+
- ".pytest_cache"
|
|
484
|
+
- ".mypy_cache"
|
|
485
|
+
- venv
|
|
486
|
+
- env
|
|
487
|
+
- ".venv"
|
|
488
|
+
- ".env"
|
|
489
|
+
- ".idea"
|
|
490
|
+
- ".vscode"
|
|
491
|
+
- ".claude"
|
|
492
|
+
- ".autospec"
|
|
493
|
+
- data
|
|
494
|
+
- logs
|
|
495
|
+
- cache
|
|
496
|
+
- tmp
|
|
497
|
+
- temp
|
|
498
|
+
|
|
499
|
+
# ============================================================
|
|
500
|
+
# 源码目录模式
|
|
501
|
+
# ============================================================
|
|
502
|
+
sourceDirectories:
|
|
503
|
+
backend: [backend, server, api, service, services, app]
|
|
504
|
+
frontend: [frontend, web, client, ui]
|
|
505
|
+
mobile: [mobile]
|
|
506
|
+
data: [data, warehouse, datalake]
|
|
507
|
+
ai: [ml, ai, model, rag, agents]
|
|
508
|
+
|
|
509
|
+
# ============================================================
|
|
510
|
+
# 多项目检测规则(支持多语言、跨语言项目)
|
|
511
|
+
# ============================================================
|
|
512
|
+
multiProject:
|
|
513
|
+
# 检测深度
|
|
514
|
+
maxDepth: 3
|
|
515
|
+
# 项目识别规则
|
|
516
|
+
projectIndicators:
|
|
517
|
+
java:
|
|
518
|
+
buildFiles: [pom.xml, build.gradle, build.gradle.kts]
|
|
519
|
+
srcDirs:
|
|
520
|
+
- src/main/java
|
|
521
|
+
- "app/*/src/main/java"
|
|
522
|
+
- "*/src/main/java"
|
|
523
|
+
javascript:
|
|
524
|
+
buildFiles: [package.json]
|
|
525
|
+
srcDirs: [src, lib, app, pages, components]
|
|
526
|
+
typescript:
|
|
527
|
+
buildFiles: [package.json, tsconfig.json]
|
|
528
|
+
srcDirs: [src, lib, app, pages, components]
|
|
529
|
+
python:
|
|
530
|
+
buildFiles: [pyproject.toml, requirements.txt, setup.py, Pipfile]
|
|
531
|
+
srcDirs: [src, app, backend, api]
|
|
532
|
+
go:
|
|
533
|
+
buildFiles: [go.mod]
|
|
534
|
+
srcDirs: [cmd, internal, pkg]
|
|
535
|
+
rust:
|
|
536
|
+
buildFiles: [Cargo.toml]
|
|
537
|
+
srcDirs: [src]
|
|
538
|
+
# 排除目录
|
|
539
|
+
excludeDirs:
|
|
540
|
+
- node_modules
|
|
541
|
+
- target
|
|
542
|
+
- build
|
|
543
|
+
- dist
|
|
544
|
+
- ".git"
|
|
545
|
+
- venv
|
|
546
|
+
- __pycache__
|
|
547
|
+
|
|
548
|
+
# ============================================================
|
|
549
|
+
# 多模块项目检测规则
|
|
550
|
+
# ============================================================
|
|
551
|
+
multiModule:
|
|
552
|
+
# Maven 多模块项目
|
|
553
|
+
maven:
|
|
554
|
+
parentPomPatterns:
|
|
555
|
+
- "<modules>"
|
|
556
|
+
- "<module>"
|
|
557
|
+
modulePaths:
|
|
558
|
+
- "app/*"
|
|
559
|
+
- "*/src/main/java"
|
|
560
|
+
# Gradle 多模块项目
|
|
561
|
+
gradle:
|
|
562
|
+
settingsFile: settings.gradle
|
|
563
|
+
modulePaths:
|
|
564
|
+
- "*/src/main/java"
|
|
565
|
+
# npm/yarn/pnpm monorepo
|
|
566
|
+
npm:
|
|
567
|
+
workspaceFiles: [pnpm-workspace.yaml, lerna.json, nx.json]
|
|
568
|
+
workspaceDirs: [packages, apps, services]
|
|
569
|
+
|
|
570
|
+
# ============================================================
|
|
571
|
+
# 项目类型多标签支持
|
|
572
|
+
# ============================================================
|
|
573
|
+
projectTypeLabels:
|
|
574
|
+
backend:
|
|
575
|
+
labels: [backend, service, api]
|
|
576
|
+
description: 后端服务
|
|
577
|
+
frontend:
|
|
578
|
+
labels: [frontend, web, ui, client]
|
|
579
|
+
description: 前端应用
|
|
580
|
+
mobile:
|
|
581
|
+
labels: [mobile, app, ios, android]
|
|
582
|
+
description: 移动应用
|
|
583
|
+
ai-assistant:
|
|
584
|
+
labels: [ai, assistant, llm, chatbot]
|
|
585
|
+
description: AI 助手服务
|
|
586
|
+
|
|
587
|
+
labels: [data, etl, pipeline, warehouse]
|
|
588
|
+
description: 数据系统
|
|
589
|
+
hybrid:
|
|
590
|
+
combine: [backend, ai-assistant]
|
|
591
|
+
detectionRules:
|
|
592
|
+
- hasBackendCode: true
|
|
593
|
+
- hasAiComponents: true
|
|
594
|
+
description: 混合类型(后端 + AI)
|
|
595
|
+
|
|
596
|
+
# ============================================================
|
|
597
|
+
# 跨语言服务调用检测
|
|
598
|
+
# ============================================================
|
|
599
|
+
crossLanguageCalls:
|
|
600
|
+
# HTTP/REST 调用
|
|
601
|
+
http:
|
|
602
|
+
patterns:
|
|
603
|
+
- "fetch\\("
|
|
604
|
+
- "axios\\."
|
|
605
|
+
- "RestTemplate"
|
|
606
|
+
- "HttpClient"
|
|
607
|
+
- "OkHttp"
|
|
608
|
+
- "requests\\."
|
|
609
|
+
- "http\\.Get|http\\.Post"
|
|
610
|
+
# RPC 调用
|
|
611
|
+
rpc:
|
|
612
|
+
patterns:
|
|
613
|
+
- "@RpcProvider"
|
|
614
|
+
- "@RpcReference"
|
|
615
|
+
- "@DubboReference"
|
|
616
|
+
- "@FeignClient"
|
|
617
|
+
- "grpc\\."
|
|
618
|
+
# 消息队列调用
|
|
619
|
+
messageQueue:
|
|
620
|
+
patterns:
|
|
621
|
+
- "@MessageConsumer"
|
|
622
|
+
- "@MessageProducer"
|
|
623
|
+
- "@KafkaListener"
|
|
624
|
+
- "@RabbitListener"
|
|
625
|
+
- "kafka\\."
|
|
626
|
+
- "amqp\\."
|
|
627
|
+
|
|
628
|
+
# ============================================================
|
|
629
|
+
# 设计文档检测规则(多语言支持)
|
|
630
|
+
# ============================================================
|
|
631
|
+
designDocs:
|
|
632
|
+
productDesign:
|
|
633
|
+
label: 产品设计
|
|
634
|
+
locations: [specs/proposal.md, docs/product/, product/, docs/requirements/, knowledge/02-process/]
|
|
635
|
+
patterns: ["*proposal*.md", "*product*.md", "*requirement*.md"]
|
|
636
|
+
outputDir: "03-design-knowledge/01-product/"
|
|
637
|
+
|
|
638
|
+
architectureDesign:
|
|
639
|
+
label: 架构设计
|
|
640
|
+
locations: [specs/design.md, docs/architecture/, architecture/, docs/design/, knowledge/03-guides/]
|
|
641
|
+
patterns: ["*design*.md", "*architecture*.md", "*.uml", "*.plantuml"]
|
|
642
|
+
outputDir: "03-design-knowledge/02-architecture/"
|
|
643
|
+
|
|
644
|
+
apiDesign:
|
|
645
|
+
label: 接口设计
|
|
646
|
+
locations: [docs/api/, openapi/, api/, specs/contracts/, app/facade/, app/web/]
|
|
647
|
+
patterns: ["openapi.yaml", "openapi.json", "swagger.yaml", "swagger.json", "*api*.md"]
|
|
648
|
+
outputDir: "03-design-knowledge/03-api/"
|
|
649
|
+
|
|
650
|
+
databaseDesign:
|
|
651
|
+
label: 数据库设计
|
|
652
|
+
locations: [docs/database/, db/, schema/, migrations/, app/dal/, app/model/]
|
|
653
|
+
patterns: ["*schema*.sql", "*database*.md", "*.sql", "*.ddl"]
|
|
654
|
+
outputDir: "03-design-knowledge/04-database/"
|
|
655
|
+
|
|
656
|
+
# 模型兜底扫描:捕获规则匹配之外的潜在设计文档
|
|
657
|
+
fallback:
|
|
658
|
+
label: 设计文档(模型兜底)
|
|
659
|
+
enabled: true
|
|
660
|
+
locations: [docs/, specs/, design/, architecture/]
|
|
661
|
+
patterns: ["*.md"]
|
|
662
|
+
excludePatterns: ["README.md", "CHANGELOG.md", "*test*.md", "*business*.md"]
|
|
663
|
+
outputDir: "03-design-knowledge/"
|
|
664
|
+
aiPrompt: |
|
|
665
|
+
请分析以下 Markdown 文件是否包含技术设计相关内容:
|
|
666
|
+
|
|
667
|
+
识别标准(满足任一条件即视为设计文档):
|
|
668
|
+
1. 架构设计 - 包含系统架构图、组件划分、技术选型
|
|
669
|
+
2. 接口设计 - 包含 API 定义、请求/响应格式、端点说明
|
|
670
|
+
3. 数据库设计 - 包含表结构、ER 图、Schema 定义
|
|
671
|
+
4. 产品设计 - 包含功能说明、用户故事、原型描述
|
|
672
|
+
|
|
673
|
+
分类规则:
|
|
674
|
+
- 以架构/组件/部署为主 → architecture(架构设计)
|
|
675
|
+
- 以接口/API/端点为主 → api(接口设计)
|
|
676
|
+
- 以数据库/表结构为主 → database(数据库设计)
|
|
677
|
+
- 以产品/功能/需求为主 → product(产品设计)
|
|
678
|
+
|
|
679
|
+
输出格式:
|
|
680
|
+
```json
|
|
681
|
+
{
|
|
682
|
+
"isDesignDoc": true/false,
|
|
683
|
+
"category": "architecture|api|database|product",
|
|
684
|
+
"confidence": 0.0-1.0,
|
|
685
|
+
"reason": "判断依据"
|
|
686
|
+
}
|
|
687
|
+
```
|
|
688
|
+
|
|
689
|
+
# ============================================================
|
|
690
|
+
# 业务知识检测规则
|
|
691
|
+
# ============================================================
|
|
692
|
+
businessDocs:
|
|
693
|
+
glossary:
|
|
694
|
+
label: 术语表
|
|
695
|
+
locations: [docs/business/, knowledge/, docs/domain/]
|
|
696
|
+
patterns: ["*glossary*.md", "*terminology*.md", "*dictionary*.md"]
|
|
697
|
+
outputDir: "04-business-knowledge/"
|
|
698
|
+
|
|
699
|
+
rules:
|
|
700
|
+
label: 业务规则
|
|
701
|
+
locations: [docs/business/, rules/, docs/domain/]
|
|
702
|
+
patterns: ["*rules*.md", "*policy*.md", "*domain*.md"]
|
|
703
|
+
outputDir: "04-business-knowledge/"
|
|
704
|
+
|
|
705
|
+
flows:
|
|
706
|
+
label: 业务流程
|
|
707
|
+
locations: [docs/business/flows/, flows/, docs/process/]
|
|
708
|
+
patterns: ["*flow*.md", "*process*.md", "*workflow*.md"]
|
|
709
|
+
outputDir: "04-business-knowledge/03-flows/"
|
|
710
|
+
|
|
711
|
+
# 模型兜底扫描:捕获规则匹配之外的潜在业务文档
|
|
712
|
+
fallback:
|
|
713
|
+
label: 业务文档(模型兜底)
|
|
714
|
+
enabled: true
|
|
715
|
+
locations: [docs/, knowledge/, specs/, requirements/, business/]
|
|
716
|
+
patterns: ["*.md"]
|
|
717
|
+
excludePatterns: ["README.md", "CHANGELOG.md", "*test*.md", "*api*.md", "*arch*.md"]
|
|
718
|
+
outputDir: "04-business-knowledge/"
|
|
719
|
+
# AI 模型识别提示词
|
|
720
|
+
aiPrompt: |
|
|
721
|
+
请分析以下 Markdown 文件是否包含业务知识相关内容:
|
|
722
|
+
|
|
723
|
+
识别标准(满足任一条件即视为业务文档):
|
|
724
|
+
1. 业务术语定义 - 包含专业术语、领域概念的解释
|
|
725
|
+
2. 业务规则描述 - 包含约束条件、验证规则、计算规则
|
|
726
|
+
3. 业务流程说明 - 包含操作步骤、审批流程、状态流转
|
|
727
|
+
4. 领域知识 - 包含行业规范、业务背景、用户场景
|
|
728
|
+
|
|
729
|
+
分类规则:
|
|
730
|
+
- 以术语/概念/定义为主 → glossary(术语表)
|
|
731
|
+
- 以规则/约束/验证为主 → rules(业务规则)
|
|
732
|
+
- 以流程/步骤/操作为主 → flows(业务流程)
|
|
733
|
+
- 综合性业务介绍 → 归入对应子目录
|
|
734
|
+
|
|
735
|
+
输出格式:
|
|
736
|
+
```json
|
|
737
|
+
{
|
|
738
|
+
"isBusinessDoc": true/false,
|
|
739
|
+
"category": "glossary|rules|flows|other",
|
|
740
|
+
"confidence": 0.0-1.0,
|
|
741
|
+
"reason": "判断依据"
|
|
742
|
+
}
|
|
743
|
+
```
|
|
744
|
+
|
|
745
|
+
# ============================================================
|
|
746
|
+
# 测试文档检测规则
|
|
747
|
+
# ============================================================
|
|
748
|
+
testDocs:
|
|
749
|
+
testDesign:
|
|
750
|
+
label: 测试设计
|
|
751
|
+
locations: [specs/testcase.md, tests/design/, test/, specs/]
|
|
752
|
+
patterns: ["*testcase*.md", "*test-design*.md"]
|
|
753
|
+
outputDir: "05-test-knowledge/01-test-designs/"
|
|
754
|
+
|
|
755
|
+
evaluation:
|
|
756
|
+
label: 评测设计
|
|
757
|
+
locations: [evaluation/, eval/, benchmarks/, tests/evaluation/]
|
|
758
|
+
patterns: ["*eval*.md", "*benchmark*.md", "*metrics*.md"]
|
|
759
|
+
outputDir: "05-test-knowledge/02-evaluation/"
|
|
760
|
+
|
|
761
|
+
# 模型兜底扫描:捕获规则匹配之外的潜在测试文档
|
|
762
|
+
fallback:
|
|
763
|
+
label: 测试文档(模型兜底)
|
|
764
|
+
enabled: true
|
|
765
|
+
locations: [tests/, specs/, test/]
|
|
766
|
+
patterns: ["*.md"]
|
|
767
|
+
excludePatterns: ["README.md", "CHANGELOG.md", "*api*.md", "*arch*.md", "*business*.md"]
|
|
768
|
+
outputDir: "05-test-knowledge/"
|
|
769
|
+
aiPrompt: |
|
|
770
|
+
请分析以下 Markdown 文件是否包含测试相关内容:
|
|
771
|
+
|
|
772
|
+
识别标准(满足任一条件即视为测试文档):
|
|
773
|
+
1. 测试设计 - 包含测试策略、测试范围、测试方法
|
|
774
|
+
2. 测试用例 - 包含具体测试步骤、预期结果、测试数据
|
|
775
|
+
3. 评测设计 - 包含评测指标、评测数据集、评测方法
|
|
776
|
+
4. 测试报告 - 包含测试结果、缺陷分析、质量评估
|
|
777
|
+
|
|
778
|
+
分类规则:
|
|
779
|
+
- 以测试策略/方法为主 → test-designs(测试设计)
|
|
780
|
+
- 以评测指标/数据集为主 → evaluation(评测设计)
|
|
781
|
+
- 以测试结果/报告为主 → 归入对应子目录
|
|
782
|
+
|
|
783
|
+
输出格式:
|
|
784
|
+
```json
|
|
785
|
+
{
|
|
786
|
+
"isTestDoc": true/false,
|
|
787
|
+
"category": "test-designs|evaluation|other",
|
|
788
|
+
"confidence": 0.0-1.0,
|
|
789
|
+
"reason": "判断依据"
|
|
790
|
+
}
|
|
791
|
+
```
|
|
792
|
+
|
|
793
|
+
# ============================================================
|
|
794
|
+
# 源码结构分析规则(多语言,使用 grep+ 模型分析)
|
|
795
|
+
# ============================================================
|
|
796
|
+
sourceAnalysis:
|
|
797
|
+
# Java 项目
|
|
798
|
+
java:
|
|
799
|
+
buildFiles: [pom.xml, build.gradle, build.gradle.kts]
|
|
800
|
+
srcDirs:
|
|
801
|
+
- src/main/java
|
|
802
|
+
- src/main/kotlin
|
|
803
|
+
- "app/*/src/main/java"
|
|
804
|
+
- "*/src/main/java"
|
|
805
|
+
annotations:
|
|
806
|
+
restController: "@RestController"
|
|
807
|
+
service: "@Service"
|
|
808
|
+
repository: "@Repository"
|
|
809
|
+
entity: "@Entity"
|
|
810
|
+
controller: "@Controller"
|
|
811
|
+
rpcProvider: "@RpcProvider"
|
|
812
|
+
rpcReference: "@RpcReference"
|
|
813
|
+
configFiles: [application.properties, application.yml, application.yaml]
|
|
814
|
+
# grep 模式提取架构信息
|
|
815
|
+
grepPatterns:
|
|
816
|
+
package: "^package\\s+([\\w.]+);"
|
|
817
|
+
import: "^import\\s+([\\w.]+);"
|
|
818
|
+
class: "public\\s+class\\s+(\\w+)"
|
|
819
|
+
interface: "public\\s+interface\\s+(\\w+)"
|
|
820
|
+
facade: "interface.*Facade"
|
|
821
|
+
|
|
822
|
+
# Node.js 项目
|
|
823
|
+
nodejs:
|
|
824
|
+
buildFiles: [package.json]
|
|
825
|
+
srcDirs: [src/, app/, lib/]
|
|
826
|
+
patterns:
|
|
827
|
+
router: "express.Router|Router()"
|
|
828
|
+
controller: "class.*Controller|controller"
|
|
829
|
+
model: "sequelize.model|mongoose.model|new Schema"
|
|
830
|
+
configFiles: [.env, config/, .env.local]
|
|
831
|
+
grepPatterns:
|
|
832
|
+
import: "import.*from|require\\("
|
|
833
|
+
export: "module.exports|exports\\.|export (default|const|function|class)"
|
|
834
|
+
route: "@Controller|@Get|@Post|router\\.(get|post|put|delete)"
|
|
835
|
+
|
|
836
|
+
# Python 项目
|
|
837
|
+
python:
|
|
838
|
+
buildFiles: [requirements.txt, pyproject.toml, setup.py]
|
|
839
|
+
srcDirs: [src/, app/, backend/]
|
|
840
|
+
patterns:
|
|
841
|
+
route: "@app.route|@router.route|@blueprint.route"
|
|
842
|
+
model: "class.*\\(db.Model\\)|class.*\\(Model\\)"
|
|
843
|
+
configFiles: [.env, config.py, settings.py]
|
|
844
|
+
grepPatterns:
|
|
845
|
+
import: "^import|^from.*import"
|
|
846
|
+
class: "^class\\s+(\\w+)"
|
|
847
|
+
route: "@app\\.route|@router\\.route|@api\\.route"
|
|
848
|
+
|
|
849
|
+
# Go 项目
|
|
850
|
+
go:
|
|
851
|
+
buildFiles: [go.mod]
|
|
852
|
+
srcDirs: [cmd/, internal/, pkg/]
|
|
853
|
+
patterns:
|
|
854
|
+
handler: "func.*Handler|c\\.GET|c\\.POST|router\\.Handle"
|
|
855
|
+
model: "type.*struct|gorm\\.Model"
|
|
856
|
+
configFiles: [config.yaml, .env]
|
|
857
|
+
grepPatterns:
|
|
858
|
+
package: "^package\\s+(\\w+)"
|
|
859
|
+
func: "^func\\s+(\\w+)"
|
|
860
|
+
struct: "type\\s+(\\w+)\\s+struct"
|
|
861
|
+
|
|
862
|
+
# Rust 项目
|
|
863
|
+
rust:
|
|
864
|
+
buildFiles: [Cargo.toml]
|
|
865
|
+
srcDirs: [src/]
|
|
866
|
+
patterns:
|
|
867
|
+
handler: "async fn.*-> impl warp::Reply|actix_web::web"
|
|
868
|
+
model: "struct.*Model"
|
|
869
|
+
configFiles: [.env, config.toml]
|
|
870
|
+
grepPatterns:
|
|
871
|
+
module: "^mod\\s+(\\w+)"
|
|
872
|
+
fn: "^pub\\s+fn\\s+(\\w+)"
|
|
873
|
+
struct: "^pub\\s+struct\\s+(\\w+)"
|
|
874
|
+
|
|
875
|
+
# ============================================================
|
|
876
|
+
# 外部服务检测规则
|
|
877
|
+
# ============================================================
|
|
878
|
+
externalServices:
|
|
879
|
+
# LLM 服务
|
|
880
|
+
llm:
|
|
881
|
+
mavenDeps: [llm-service-facade, antllm-base]
|
|
882
|
+
npmDeps: [openai, anthropic, langchain]
|
|
883
|
+
pipDeps: [openai, anthropic, langchain]
|
|
884
|
+
codePatterns:
|
|
885
|
+
- "LLMService"
|
|
886
|
+
- "LLMClient"
|
|
887
|
+
- "ChatClient"
|
|
888
|
+
- "llm\\.service"
|
|
889
|
+
type: llm
|
|
890
|
+
|
|
891
|
+
# 向量数据库服务
|
|
892
|
+
vectorDb:
|
|
893
|
+
mavenDeps: [milvus-sdk, pinecone-client]
|
|
894
|
+
npmDeps: [pinecone, weaviate-client, chromadb]
|
|
895
|
+
pipDeps: [pinecone, weaviate-client, chromadb]
|
|
896
|
+
codePatterns:
|
|
897
|
+
- "VectorStore"
|
|
898
|
+
- "EmbeddingService"
|
|
899
|
+
type: vector-store
|
|
900
|
+
|
|
901
|
+
# 消息服务
|
|
902
|
+
messaging:
|
|
903
|
+
mavenDeps: [mq-client, message-sdk]
|
|
904
|
+
npmDeps: [amqplib, kafkajs]
|
|
905
|
+
pipDeps: [pika, kafka-python]
|
|
906
|
+
codePatterns:
|
|
907
|
+
- "MessageProducer"
|
|
908
|
+
- "MessageConsumer"
|
|
909
|
+
- "mq\\.producer"
|
|
910
|
+
type: message-queue
|
|
911
|
+
|
|
912
|
+
# 存储服务
|
|
913
|
+
storage:
|
|
914
|
+
mavenDeps: [oss-client, s3-sdk]
|
|
915
|
+
npmDeps: [aws-sdk, "@aws-sdk/client-s3"]
|
|
916
|
+
pipDeps: [boto3, google-cloud-storage]
|
|
917
|
+
codePatterns:
|
|
918
|
+
- "OssClient"
|
|
919
|
+
- "StorageService"
|
|
920
|
+
- "oss\\.endpoint"
|
|
921
|
+
type: object-storage
|
|
922
|
+
|
|
923
|
+
# ============================================================
|
|
924
|
+
# 模型驱动检测规则(规则兜底 + 语义理解)
|
|
925
|
+
# ============================================================
|
|
926
|
+
# 当规则匹配完成后,启用模型驱动的探索性检测
|
|
927
|
+
# 模型可主动使用 grep、find、read 等工具进行语义分析
|
|
928
|
+
|
|
929
|
+
modelDrivenDetection:
|
|
930
|
+
# 是否启用模型驱动检测
|
|
931
|
+
enabled: true
|
|
932
|
+
|
|
933
|
+
# 检测阶段定义
|
|
934
|
+
stages:
|
|
935
|
+
# 阶段1: 项目发现
|
|
936
|
+
projectDiscovery:
|
|
937
|
+
label: 项目发现
|
|
938
|
+
description: 发现规则未识别的子项目或模块
|
|
939
|
+
trigger: always # always | on-miss | manual
|
|
940
|
+
tools:
|
|
941
|
+
- find # 文件查找
|
|
942
|
+
- grep # 内容搜索
|
|
943
|
+
- read # 文件读取
|
|
944
|
+
explorationStrategy: |
|
|
945
|
+
1. 使用 find 扫描构建文件(pom.xml, package.json, go.mod 等)
|
|
946
|
+
2. 检查非标准目录结构(如 app/, modules/, services/)
|
|
947
|
+
3. 识别多模块项目的父子关系
|
|
948
|
+
4. 发现隐藏的项目配置(如 .gitmodules, workspace 文件)
|
|
949
|
+
prompt: |
|
|
950
|
+
你是一个项目结构分析专家。请探索当前工作目录,发现所有子项目。
|
|
951
|
+
|
|
952
|
+
## 探索步骤
|
|
953
|
+
|
|
954
|
+
1. **扫描构建文件**:
|
|
955
|
+
```bash
|
|
956
|
+
find . -maxdepth 3 -name "pom.xml" -o -name "package.json" -o -name "go.mod" -o -name "Cargo.toml" -o -name "pyproject.toml"
|
|
957
|
+
```
|
|
958
|
+
|
|
959
|
+
2. **检查目录结构**:
|
|
960
|
+
```bash
|
|
961
|
+
ls -la */
|
|
962
|
+
```
|
|
963
|
+
|
|
964
|
+
3. **识别项目类型**:
|
|
965
|
+
- 查看构建文件内容确定语言和框架
|
|
966
|
+
- 检查源码目录结构
|
|
967
|
+
- 识别入口文件
|
|
968
|
+
|
|
969
|
+
4. **分析项目关系**:
|
|
970
|
+
- 检查 pom.xml 的 <modules> 标签
|
|
971
|
+
- 检查 package.json 的 workspaces 字段
|
|
972
|
+
- 检查是否有 monorepo 配置
|
|
973
|
+
|
|
974
|
+
## 输出格式
|
|
975
|
+
|
|
976
|
+
```json
|
|
977
|
+
{
|
|
978
|
+
"projects": [
|
|
979
|
+
{
|
|
980
|
+
"name": "project-name",
|
|
981
|
+
"path": "relative/path",
|
|
982
|
+
"language": "java|javascript|python|go|rust",
|
|
983
|
+
"framework": "Spring Boot|React|FastAPI|...",
|
|
984
|
+
"type": "backend|frontend|mobile|data|ai|hybrid",
|
|
985
|
+
"buildTool": "maven|npm|pip|...",
|
|
986
|
+
"srcDirs": ["src/main/java"],
|
|
987
|
+
"entryPoint": "src/main/java/.../Application.java",
|
|
988
|
+
"confidence": 0.0-1.0,
|
|
989
|
+
"detectionMethod": "rule|model-inference"
|
|
990
|
+
}
|
|
991
|
+
],
|
|
992
|
+
"relationships": [
|
|
993
|
+
{
|
|
994
|
+
"from": "project-a",
|
|
995
|
+
"to": "project-b",
|
|
996
|
+
"type": "depends-on|calls|extends"
|
|
997
|
+
}
|
|
998
|
+
]
|
|
999
|
+
}
|
|
1000
|
+
```
|
|
1001
|
+
|
|
1002
|
+
# 阶段2: 中间件/框架深度检测
|
|
1003
|
+
middlewareDiscovery:
|
|
1004
|
+
label: 中间件/框架检测
|
|
1005
|
+
description: 发现规则未覆盖的中间件、框架、外部服务
|
|
1006
|
+
trigger: always
|
|
1007
|
+
tools:
|
|
1008
|
+
- grep
|
|
1009
|
+
- read
|
|
1010
|
+
explorationStrategy: |
|
|
1011
|
+
1. 扫描依赖声明(pom.xml dependencies, package.json dependencies)
|
|
1012
|
+
2. 扫描配置文件中的连接字符串和端点
|
|
1013
|
+
3. 扫描代码中的 import/require 语句
|
|
1014
|
+
4. 识别客户端类和配置类
|
|
1015
|
+
prompt: |
|
|
1016
|
+
你是一个中间件和框架识别专家。请深入分析项目,发现所有使用的中间件和框架。
|
|
1017
|
+
|
|
1018
|
+
## 探索步骤
|
|
1019
|
+
|
|
1020
|
+
1. **分析依赖**:
|
|
1021
|
+
```bash
|
|
1022
|
+
# Maven
|
|
1023
|
+
grep -E "<groupId>|<artifactId>|<version>" pom.xml
|
|
1024
|
+
# npm
|
|
1025
|
+
grep -E '"dependencies"|"devDependencies"' package.json -A 50
|
|
1026
|
+
# pip
|
|
1027
|
+
cat requirements.txt pyproject.toml
|
|
1028
|
+
```
|
|
1029
|
+
|
|
1030
|
+
2. **扫描配置文件**:
|
|
1031
|
+
```bash
|
|
1032
|
+
# 查找配置文件
|
|
1033
|
+
find . -name "application*.properties" -o -name "application*.yml" -o -name "*.env"
|
|
1034
|
+
# 提取配置项
|
|
1035
|
+
grep -E "datasource|cache|mq|queue|storage|endpoint|url|host" */application*.properties
|
|
1036
|
+
```
|
|
1037
|
+
|
|
1038
|
+
3. **扫描代码引用**:
|
|
1039
|
+
```bash
|
|
1040
|
+
# Java import 语句
|
|
1041
|
+
grep -r "^import" --include="*.java" | sort | uniq -c | sort -rn | head -50
|
|
1042
|
+
# JavaScript require/import
|
|
1043
|
+
grep -rE "require\\(|import.*from" --include="*.js" --include="*.ts" | head -50
|
|
1044
|
+
# Python import
|
|
1045
|
+
grep -rE "^import|^from" --include="*.py" | head -50
|
|
1046
|
+
```
|
|
1047
|
+
|
|
1048
|
+
4. **识别客户端类**:
|
|
1049
|
+
```bash
|
|
1050
|
+
grep -rE "Client|Config|Manager|Service|Repository|DataSource" --include="*.java" -l
|
|
1051
|
+
```
|
|
1052
|
+
|
|
1053
|
+
## 识别标准
|
|
1054
|
+
|
|
1055
|
+
- **数据库**: DataSource, Connection, Repository, Mapper, DAO
|
|
1056
|
+
- **缓存**: Cache, Redis, Memcached, CacheManager
|
|
1057
|
+
- **消息队列**: Producer, Consumer, Queue, Topic, Message
|
|
1058
|
+
- **RPC**: RpcClient, RpcServer, Facade, Stub, 以及 @.*Service, @.*Reference 注解模式
|
|
1059
|
+
- **存储**: OssClient, S3Client, StorageService, FileClient
|
|
1060
|
+
- **LLM**: LLMClient, ChatService, Embedding, VectorStore
|
|
1061
|
+
- **安全**: AuthClient, SecurityConfig, Encryption
|
|
1062
|
+
|
|
1063
|
+
**注意**: 识别 RPC 框架时,使用通用模式匹配而非具体产品名称:
|
|
1064
|
+
- 扫描 `@.*Service` 注解(排除标准 @Service)
|
|
1065
|
+
- 扫描 `@.*Reference` 注解
|
|
1066
|
+
- 扫描 `*Facade` 接口模式
|
|
1067
|
+
- 扫描 `*Client` 客户端类
|
|
1068
|
+
|
|
1069
|
+
## 输出格式
|
|
1070
|
+
|
|
1071
|
+
```json
|
|
1072
|
+
{
|
|
1073
|
+
"middleware": [
|
|
1074
|
+
{
|
|
1075
|
+
"name": "middleware-name",
|
|
1076
|
+
"type": "database|cache|mq|rpc|storage|llm|security|other",
|
|
1077
|
+
"detectionSource": "dependency|config|code",
|
|
1078
|
+
"configKeys": ["spring.datasource.url", "..."],
|
|
1079
|
+
"clientClasses": ["DataSourceConfig", "XxxClient"],
|
|
1080
|
+
"version": "1.0.0",
|
|
1081
|
+
"confidence": 0.0-1.0
|
|
1082
|
+
}
|
|
1083
|
+
],
|
|
1084
|
+
"frameworks": [
|
|
1085
|
+
{
|
|
1086
|
+
"name": "framework-name",
|
|
1087
|
+
"type": "web|rpc|orm|testing|build|other",
|
|
1088
|
+
"version": "1.0.0",
|
|
1089
|
+
"confidence": 0.0-1.0
|
|
1090
|
+
}
|
|
1091
|
+
],
|
|
1092
|
+
"externalServices": [
|
|
1093
|
+
{
|
|
1094
|
+
"name": "service-name",
|
|
1095
|
+
"type": "llm|storage|messaging|payment|auth|other",
|
|
1096
|
+
"endpoint": "service.endpoint.url",
|
|
1097
|
+
"clientClass": "XxxClient",
|
|
1098
|
+
"confidence": 0.0-1.0
|
|
1099
|
+
}
|
|
1100
|
+
]
|
|
1101
|
+
}
|
|
1102
|
+
```
|
|
1103
|
+
|
|
1104
|
+
# 阶段3: API 接口检测
|
|
1105
|
+
apiDiscovery:
|
|
1106
|
+
label: API 接口检测
|
|
1107
|
+
description: 发现所有 HTTP/RPC 接口定义
|
|
1108
|
+
trigger: always
|
|
1109
|
+
tools:
|
|
1110
|
+
- grep
|
|
1111
|
+
- read
|
|
1112
|
+
explorationStrategy: |
|
|
1113
|
+
1. 扫描 HTTP 路由注解和定义
|
|
1114
|
+
2. 扫描 RPC 服务注解和接口
|
|
1115
|
+
3. 扫描 OpenAPI/Swagger 文件
|
|
1116
|
+
4. 分析 Controller/Facade 类
|
|
1117
|
+
prompt: |
|
|
1118
|
+
你是一个 API 接口分析专家。请发现项目中所有的 HTTP 和 RPC 接口。
|
|
1119
|
+
|
|
1120
|
+
## 探索步骤
|
|
1121
|
+
|
|
1122
|
+
1. **HTTP 接口检测**:
|
|
1123
|
+
```bash
|
|
1124
|
+
# Java Spring
|
|
1125
|
+
grep -rn "@RestController\|@Controller\|@GetMapping\|@PostMapping\|@RequestMapping" --include="*.java"
|
|
1126
|
+
# Node.js Express/NestJS
|
|
1127
|
+
grep -rn "@Controller\|@Get\|@Post\|router\.\(get\|post\)" --include="*.js" --include="*.ts"
|
|
1128
|
+
# Python FastAPI/Flask
|
|
1129
|
+
grep -rn "@app\.route\|@router\.\|@api\." --include="*.py"
|
|
1130
|
+
```
|
|
1131
|
+
|
|
1132
|
+
2. **RPC 接口检测**:
|
|
1133
|
+
```bash
|
|
1134
|
+
# RPC 服务提供者(常见注解模式)
|
|
1135
|
+
grep -rn "@.*Service\|@.*Provider" --include="*.java" | grep -v "@Service\|@WebService"
|
|
1136
|
+
# RPC 接口定义
|
|
1137
|
+
grep -rn "interface.*Facade\|interface.*Service" --include="*.java"
|
|
1138
|
+
# RPC 引用(常见注解模式)
|
|
1139
|
+
grep -rn "@.*Reference\|@.*Client" --include="*.java"
|
|
1140
|
+
```
|
|
1141
|
+
|
|
1142
|
+
3. **OpenAPI/Swagger 检测**:
|
|
1143
|
+
```bash
|
|
1144
|
+
find . -name "openapi*.yaml" -o -name "swagger*.yaml" -o -name "api-docs*.json"
|
|
1145
|
+
```
|
|
1146
|
+
|
|
1147
|
+
4. **读取接口定义**:
|
|
1148
|
+
- 读取 Controller 类提取端点
|
|
1149
|
+
- 读取 Facade 接口提取方法签名
|
|
1150
|
+
- 读取 DTO/Request/Response 类
|
|
1151
|
+
|
|
1152
|
+
## 输出格式
|
|
1153
|
+
|
|
1154
|
+
```json
|
|
1155
|
+
{
|
|
1156
|
+
"httpApis": [
|
|
1157
|
+
{
|
|
1158
|
+
"controller": "ChatController",
|
|
1159
|
+
"basePath": "/webapi",
|
|
1160
|
+
"endpoints": [
|
|
1161
|
+
{
|
|
1162
|
+
"method": "POST",
|
|
1163
|
+
"path": "/chat",
|
|
1164
|
+
"description": "发送聊天消息",
|
|
1165
|
+
"requestBody": "ChatRequest",
|
|
1166
|
+
"responseBody": "ChatResponse"
|
|
1167
|
+
}
|
|
1168
|
+
],
|
|
1169
|
+
"sourceFile": "app/web/src/main/java/.../ChatController.java"
|
|
1170
|
+
}
|
|
1171
|
+
],
|
|
1172
|
+
"rpcApis": [
|
|
1173
|
+
{
|
|
1174
|
+
"interface": "AssistantChatFacade",
|
|
1175
|
+
"methods": [
|
|
1176
|
+
{
|
|
1177
|
+
"name": "chat",
|
|
1178
|
+
"params": ["ChatRequest"],
|
|
1179
|
+
"returnType": "ChatResponse"
|
|
1180
|
+
}
|
|
1181
|
+
],
|
|
1182
|
+
"sourceFile": "app/facade/src/main/java/.../AssistantChatFacade.java"
|
|
1183
|
+
}
|
|
1184
|
+
],
|
|
1185
|
+
"openApiSpecs": [
|
|
1186
|
+
{
|
|
1187
|
+
"file": "docs/api/openapi.yaml",
|
|
1188
|
+
"version": "3.0.0",
|
|
1189
|
+
"pathCount": 15
|
|
1190
|
+
}
|
|
1191
|
+
]
|
|
1192
|
+
}
|
|
1193
|
+
```
|
|
1194
|
+
|
|
1195
|
+
# 阶段4: 数据模型检测
|
|
1196
|
+
dataModelDiscovery:
|
|
1197
|
+
label: 数据模型检测
|
|
1198
|
+
description: 发现数据库表结构和数据模型
|
|
1199
|
+
trigger: on-miss # 当规则未检测到数据模型时触发
|
|
1200
|
+
tools:
|
|
1201
|
+
- grep
|
|
1202
|
+
- find
|
|
1203
|
+
- read
|
|
1204
|
+
explorationStrategy: |
|
|
1205
|
+
1. 扫描 SQL DDL 文件
|
|
1206
|
+
2. 扫描 ORM 实体类
|
|
1207
|
+
3. 扫描 Mapper/Repository 文件
|
|
1208
|
+
4. 分析数据库配置
|
|
1209
|
+
prompt: |
|
|
1210
|
+
你是一个数据模型分析专家。请发现项目中的所有数据模型定义。
|
|
1211
|
+
|
|
1212
|
+
## 探索步骤
|
|
1213
|
+
|
|
1214
|
+
1. **SQL 文件检测**:
|
|
1215
|
+
```bash
|
|
1216
|
+
find . -name "*.sql" -o -name "*.ddl"
|
|
1217
|
+
grep -rn "CREATE TABLE" --include="*.sql"
|
|
1218
|
+
```
|
|
1219
|
+
|
|
1220
|
+
2. **ORM 实体检测**:
|
|
1221
|
+
```bash
|
|
1222
|
+
# Java JPA/MyBatis
|
|
1223
|
+
grep -rn "@Entity\|@Table\|@Data" --include="*.java" -l
|
|
1224
|
+
grep -rn "class.*DO\|class.*Entity\|class.*PO" --include="*.java" -l
|
|
1225
|
+
# Python SQLAlchemy
|
|
1226
|
+
grep -rn "class.*Model\|Column\|relationship" --include="*.py"
|
|
1227
|
+
# Node.js Mongoose/Sequelize
|
|
1228
|
+
grep -rn "Schema\|Model\|sequelize.define" --include="*.js" --include="*.ts"
|
|
1229
|
+
```
|
|
1230
|
+
|
|
1231
|
+
3. **Mapper 检测**:
|
|
1232
|
+
```bash
|
|
1233
|
+
find . -name "*Mapper.xml" -o -name "*Mapper.java"
|
|
1234
|
+
grep -rn "@Mapper\|@Repository" --include="*.java" -l
|
|
1235
|
+
```
|
|
1236
|
+
|
|
1237
|
+
4. **读取模型定义**:
|
|
1238
|
+
- 读取实体类提取字段
|
|
1239
|
+
- 读取 Mapper XML 提取表结构
|
|
1240
|
+
|
|
1241
|
+
## 输出格式
|
|
1242
|
+
|
|
1243
|
+
```json
|
|
1244
|
+
{
|
|
1245
|
+
"entities": [
|
|
1246
|
+
{
|
|
1247
|
+
"name": "UserDO",
|
|
1248
|
+
"table": "t_user",
|
|
1249
|
+
"fields": [
|
|
1250
|
+
{"name": "id", "type": "Long", "column": "id", "primaryKey": true},
|
|
1251
|
+
{"name": "username", "type": "String", "column": "username"}
|
|
1252
|
+
],
|
|
1253
|
+
"sourceFile": "app/dal/src/main/java/.../UserDO.java"
|
|
1254
|
+
}
|
|
1255
|
+
],
|
|
1256
|
+
"tables": [
|
|
1257
|
+
{
|
|
1258
|
+
"name": "t_user",
|
|
1259
|
+
"sourceFile": "docs/sql/schema.sql",
|
|
1260
|
+
"columns": [
|
|
1261
|
+
{"name": "id", "type": "BIGINT", "nullable": false}
|
|
1262
|
+
]
|
|
1263
|
+
}
|
|
1264
|
+
]
|
|
1265
|
+
}
|
|
1266
|
+
```
|
|
1267
|
+
|
|
1268
|
+
# 阶段5: 项目间依赖分析
|
|
1269
|
+
dependencyAnalysis:
|
|
1270
|
+
label: 项目间依赖分析
|
|
1271
|
+
description: 分析多项目间的调用和依赖关系
|
|
1272
|
+
trigger: always
|
|
1273
|
+
tools:
|
|
1274
|
+
- grep
|
|
1275
|
+
- read
|
|
1276
|
+
explorationStrategy: |
|
|
1277
|
+
1. 分析构建文件中的项目依赖
|
|
1278
|
+
2. 分析 RPC 服务引用
|
|
1279
|
+
3. 分析 HTTP 客户端调用
|
|
1280
|
+
4. 分析共享代码和模块
|
|
1281
|
+
prompt: |
|
|
1282
|
+
你是一个依赖关系分析专家。请分析项目间的调用和依赖关系。
|
|
1283
|
+
|
|
1284
|
+
## 探索步骤
|
|
1285
|
+
|
|
1286
|
+
1. **构建依赖分析**:
|
|
1287
|
+
```bash
|
|
1288
|
+
# Maven 模块依赖
|
|
1289
|
+
grep -rn "<module>\|<dependency>" pom.xml
|
|
1290
|
+
# npm workspace
|
|
1291
|
+
grep -rn "workspace\|dependencies" package.json
|
|
1292
|
+
```
|
|
1293
|
+
|
|
1294
|
+
2. **RPC 服务引用**:
|
|
1295
|
+
```bash
|
|
1296
|
+
grep -rn "@RpcReference\|@DubboReference\|@FeignClient" --include="*.java"
|
|
1297
|
+
grep -rn "XxxFacade" --include="*.java" | grep -v "implements\|interface"
|
|
1298
|
+
```
|
|
1299
|
+
|
|
1300
|
+
3. **HTTP 客户端调用**:
|
|
1301
|
+
```bash
|
|
1302
|
+
grep -rn "RestTemplate\|HttpClient\|OkHttp\|WebClient\|fetch\|axios" --include="*.java" --include="*.js" --include="*.ts"
|
|
1303
|
+
```
|
|
1304
|
+
|
|
1305
|
+
4. **共享代码分析**:
|
|
1306
|
+
```bash
|
|
1307
|
+
# 查找共享模块
|
|
1308
|
+
find . -name "common" -o -name "shared" -o -name "core"
|
|
1309
|
+
```
|
|
1310
|
+
|
|
1311
|
+
## 输出格式
|
|
1312
|
+
|
|
1313
|
+
```json
|
|
1314
|
+
{
|
|
1315
|
+
"projectDependencies": [
|
|
1316
|
+
{
|
|
1317
|
+
"from": "project-a",
|
|
1318
|
+
"to": "project-b",
|
|
1319
|
+
"type": "maven|npm|rpc|http",
|
|
1320
|
+
"services": ["XxxFacade", "YyyFacade"],
|
|
1321
|
+
"description": "项目A调用项目B的用户服务"
|
|
1322
|
+
}
|
|
1323
|
+
],
|
|
1324
|
+
"sharedModules": [
|
|
1325
|
+
{
|
|
1326
|
+
"name": "common",
|
|
1327
|
+
"path": "common/",
|
|
1328
|
+
"usedBy": ["project-a", "project-b"]
|
|
1329
|
+
}
|
|
1330
|
+
],
|
|
1331
|
+
"externalDependencies": [
|
|
1332
|
+
{
|
|
1333
|
+
"project": "project-a",
|
|
1334
|
+
"external": "llm-service",
|
|
1335
|
+
"type": "rpc|http",
|
|
1336
|
+
"purpose": "大模型推理服务"
|
|
1337
|
+
}
|
|
1338
|
+
]
|
|
1339
|
+
}
|
|
1340
|
+
```
|
|
1341
|
+
|
|
1342
|
+
# 置信度阈值
|
|
1343
|
+
confidenceThresholds:
|
|
1344
|
+
high: 0.85 # 高置信度,直接采用
|
|
1345
|
+
medium: 0.65 # 中置信度,标记待确认
|
|
1346
|
+
low: 0.45 # 低置信度,记录但不采用
|
|
1347
|
+
|
|
1348
|
+
# 输出配置
|
|
1349
|
+
output:
|
|
1350
|
+
# 合并策略:merge(合并)| override(覆盖)| append(追加)
|
|
1351
|
+
mergeStrategy: merge
|
|
1352
|
+
# 是否生成检测报告
|
|
1353
|
+
generateReport: true
|
|
1354
|
+
# 报告输出路径
|
|
1355
|
+
reportPath: ".autospec/runtime/model-detection-report.json"
|
|
1356
|
+
|
|
1357
|
+
# ============================================================
|
|
1358
|
+
# RPC 服务检测规则
|
|
1359
|
+
# ============================================================
|
|
1360
|
+
rpcServices:
|
|
1361
|
+
# 服务提供者检测
|
|
1362
|
+
providerPatterns:
|
|
1363
|
+
- annotation: "@RpcProvider"
|
|
1364
|
+
extractMethod: "class + interface"
|
|
1365
|
+
description: "RPC 服务提供者"
|
|
1366
|
+
- annotation: "@DubboService"
|
|
1367
|
+
extractMethod: "class + interface"
|
|
1368
|
+
description: "Dubbo 服务提供者"
|
|
1369
|
+
- annotation: "@GrpcService"
|
|
1370
|
+
extractMethod: "class + interface"
|
|
1371
|
+
description: "gRPC 服务提供者"
|
|
1372
|
+
|
|
1373
|
+
# Facade 接口检测
|
|
1374
|
+
facadePatterns:
|
|
1375
|
+
- naming: "interface.*Facade"
|
|
1376
|
+
extractMethods: true
|
|
1377
|
+
description: "Facade 接口定义"
|
|
1378
|
+
- naming: "interface.*Service"
|
|
1379
|
+
extractMethods: true
|
|
1380
|
+
excludePattern: "interface.*\\$(Aux|Inner|Builder)"
|
|
1381
|
+
description: "Service 接口定义"
|
|
1382
|
+
- location: "app/facade/"
|
|
1383
|
+
recursive: true
|
|
1384
|
+
extractMethods: true
|
|
1385
|
+
description: "Facade 模块目录"
|
|
1386
|
+
- location: "api/src/main/java/"
|
|
1387
|
+
recursive: true
|
|
1388
|
+
extractMethods: true
|
|
1389
|
+
description: "API 模块目录"
|
|
1390
|
+
|
|
1391
|
+
# 服务引用检测
|
|
1392
|
+
referencePatterns:
|
|
1393
|
+
- annotation: "@RpcReference"
|
|
1394
|
+
extractTarget: true
|
|
1395
|
+
description: "RPC 服务引用"
|
|
1396
|
+
- annotation: "@DubboReference"
|
|
1397
|
+
extractTarget: true
|
|
1398
|
+
description: "Dubbo 服务引用"
|
|
1399
|
+
- annotation: "@FeignClient"
|
|
1400
|
+
extractTarget: true
|
|
1401
|
+
description: "Feign 客户端引用"
|
|
1402
|
+
- annotation: "@GrpcClient"
|
|
1403
|
+
extractTarget: true
|
|
1404
|
+
description: "gRPC 客户端引用"
|
|
1405
|
+
|
|
1406
|
+
# 输出配置
|
|
1407
|
+
output:
|
|
1408
|
+
knowledgeTemplate: "02-api-design.md"
|
|
1409
|
+
outputDir: "01-env-knowledge/03-rpc-services/"
|
|
1410
|
+
|
|
1411
|
+
# ============================================================
|
|
1412
|
+
# 外部服务客户端检测规则
|
|
1413
|
+
# ============================================================
|
|
1414
|
+
externalServiceClients:
|
|
1415
|
+
# 客户端类检测
|
|
1416
|
+
clientPatterns:
|
|
1417
|
+
- naming: "*Client.java"
|
|
1418
|
+
extractMethods: true
|
|
1419
|
+
extractConfig: true
|
|
1420
|
+
description: "通用客户端类"
|
|
1421
|
+
- naming: "*FacadeClient.java"
|
|
1422
|
+
extractMethods: true
|
|
1423
|
+
extractConfig: true
|
|
1424
|
+
description: "Facade 客户端类"
|
|
1425
|
+
- naming: "*Adapter.java"
|
|
1426
|
+
extractMethods: true
|
|
1427
|
+
extractConfig: true
|
|
1428
|
+
description: "适配器类"
|
|
1429
|
+
- naming: "*Gateway.java"
|
|
1430
|
+
extractMethods: true
|
|
1431
|
+
extractConfig: true
|
|
1432
|
+
description: "网关类"
|
|
1433
|
+
|
|
1434
|
+
# 配置项提取规则
|
|
1435
|
+
configExtraction:
|
|
1436
|
+
- pattern: "*.service-url"
|
|
1437
|
+
type: endpoint
|
|
1438
|
+
description: "服务 URL 配置"
|
|
1439
|
+
- pattern: "*.endpoint"
|
|
1440
|
+
type: endpoint
|
|
1441
|
+
description: "端点配置"
|
|
1442
|
+
- pattern: "*.tr-service-url"
|
|
1443
|
+
type: endpoint
|
|
1444
|
+
description: "RPC 服务 URL"
|
|
1445
|
+
- pattern: "*.timeout"
|
|
1446
|
+
type: timeout
|
|
1447
|
+
description: "超时配置"
|
|
1448
|
+
- pattern: "*.retry"
|
|
1449
|
+
type: retry
|
|
1450
|
+
description: "重试配置"
|
|
1451
|
+
|
|
1452
|
+
# 依赖分析规则
|
|
1453
|
+
dependencyAnalysis:
|
|
1454
|
+
- scanPom: true
|
|
1455
|
+
extractGroupId: true
|
|
1456
|
+
extractArtifactId: true
|
|
1457
|
+
extractVersion: true
|
|
1458
|
+
- scanImport: true
|
|
1459
|
+
extractPackage: true
|
|
1460
|
+
inferServiceType: true
|
|
1461
|
+
|
|
1462
|
+
# 服务类型分类
|
|
1463
|
+
serviceTypes:
|
|
1464
|
+
llm:
|
|
1465
|
+
patterns: ["LLM", "Chat", "Embedding", "Model", "AI"]
|
|
1466
|
+
description: "大语言模型服务"
|
|
1467
|
+
vector:
|
|
1468
|
+
patterns: ["Vector", "Embedding", "Milvus", "Pinecone"]
|
|
1469
|
+
description: "向量存储服务"
|
|
1470
|
+
storage:
|
|
1471
|
+
patterns: ["OSS", "S3", "Storage", "File", "MinIO"]
|
|
1472
|
+
description: "存储服务"
|
|
1473
|
+
messaging:
|
|
1474
|
+
patterns: ["MQ", "Message", "Queue", "Kafka", "RocketMQ"]
|
|
1475
|
+
description: "消息服务"
|
|
1476
|
+
auth:
|
|
1477
|
+
patterns: ["Auth", "Security", "OAuth", "SSO", "Login"]
|
|
1478
|
+
description: "认证服务"
|
|
1479
|
+
payment:
|
|
1480
|
+
patterns: ["Pay", "Order", "Billing", "Charge"]
|
|
1481
|
+
description: "支付服务"
|
|
1482
|
+
notification:
|
|
1483
|
+
patterns: ["Notify", "Push", "SMS", "Email", "Message"]
|
|
1484
|
+
description: "通知服务"
|
|
1485
|
+
search:
|
|
1486
|
+
patterns: ["Search", "Query", "ES", "Elasticsearch"]
|
|
1487
|
+
description: "搜索服务"
|
|
1488
|
+
external-api:
|
|
1489
|
+
patterns: ["External", "ThirdParty", "Api", "Gateway"]
|
|
1490
|
+
description: "外部 API 服务"
|
|
1491
|
+
|
|
1492
|
+
# 输出配置
|
|
1493
|
+
output:
|
|
1494
|
+
knowledgeTemplate: "10-middleware-knowledge.md"
|
|
1495
|
+
outputDir: "01-env-knowledge/02-infrastructure/"
|
|
1496
|
+
|
|
1497
|
+
# ============================================================
|
|
1498
|
+
# 数据模型检测规则
|
|
1499
|
+
# ============================================================
|
|
1500
|
+
dataModels:
|
|
1501
|
+
# DO 类检测
|
|
1502
|
+
doPatterns:
|
|
1503
|
+
- naming: "*DO.java"
|
|
1504
|
+
extractFields: true
|
|
1505
|
+
extractAnnotations: true
|
|
1506
|
+
description: "数据对象类"
|
|
1507
|
+
- naming: "*Entity.java"
|
|
1508
|
+
extractFields: true
|
|
1509
|
+
extractAnnotations: true
|
|
1510
|
+
description: "实体类"
|
|
1511
|
+
- naming: "*PO.java"
|
|
1512
|
+
extractFields: true
|
|
1513
|
+
extractAnnotations: true
|
|
1514
|
+
description: "持久化对象类"
|
|
1515
|
+
- naming: "*DTO.java"
|
|
1516
|
+
extractFields: true
|
|
1517
|
+
extractAnnotations: true
|
|
1518
|
+
description: "数据传输对象"
|
|
1519
|
+
|
|
1520
|
+
# 表映射检测
|
|
1521
|
+
tableMapping:
|
|
1522
|
+
- annotation: "@Table"
|
|
1523
|
+
extractTableName: true
|
|
1524
|
+
extractSchema: true
|
|
1525
|
+
description: "JPA 表映射"
|
|
1526
|
+
- annotation: "@TableName"
|
|
1527
|
+
extractTableName: true
|
|
1528
|
+
description: "MyBatis-Plus 表映射"
|
|
1529
|
+
- naming: "tb_*"
|
|
1530
|
+
inferFromClassName: true
|
|
1531
|
+
description: "表名前缀推断"
|
|
1532
|
+
- naming: "t_*"
|
|
1533
|
+
inferFromClassName: true
|
|
1534
|
+
description: "表名前缀推断"
|
|
1535
|
+
|
|
1536
|
+
# 大数据存储模型检测
|
|
1537
|
+
bigDataPatterns:
|
|
1538
|
+
- location: "app/dal/**/bigdata/"
|
|
1539
|
+
extractFields: true
|
|
1540
|
+
description: "大数据存储模型目录"
|
|
1541
|
+
- location: "app/dal/**/lindorm/"
|
|
1542
|
+
extractFields: true
|
|
1543
|
+
description: "Lindorm 存储模型目录"
|
|
1544
|
+
- location: "app/dal/**/hbase/"
|
|
1545
|
+
extractFields: true
|
|
1546
|
+
description: "HBase 存储模型目录"
|
|
1547
|
+
- naming: "*TDO.java"
|
|
1548
|
+
extractFields: true
|
|
1549
|
+
description: "大数据表数据对象"
|
|
1550
|
+
|
|
1551
|
+
# 字段类型映射
|
|
1552
|
+
fieldTypeMapping:
|
|
1553
|
+
java:
|
|
1554
|
+
"String": "VARCHAR"
|
|
1555
|
+
"Integer": "INT"
|
|
1556
|
+
"Long": "BIGINT"
|
|
1557
|
+
"BigDecimal": "DECIMAL"
|
|
1558
|
+
"Date": "DATETIME"
|
|
1559
|
+
"LocalDateTime": "DATETIME"
|
|
1560
|
+
"Boolean": "TINYINT"
|
|
1561
|
+
"byte[]": "BLOB"
|
|
1562
|
+
"Double": "DOUBLE"
|
|
1563
|
+
"Float": "FLOAT"
|
|
1564
|
+
|
|
1565
|
+
# 索引检测
|
|
1566
|
+
indexDetection:
|
|
1567
|
+
- annotation: "@Index"
|
|
1568
|
+
extractFields: true
|
|
1569
|
+
- annotation: "@TableId"
|
|
1570
|
+
extractPrimaryKey: true
|
|
1571
|
+
- naming: "*Id"
|
|
1572
|
+
inferIndex: true
|
|
1573
|
+
|
|
1574
|
+
# 输出配置
|
|
1575
|
+
output:
|
|
1576
|
+
knowledgeTemplate: "03-database-design.md"
|
|
1577
|
+
outputDir: "01-env-knowledge/04-data-models/"
|
|
1578
|
+
|
|
1579
|
+
# ============================================================
|
|
1580
|
+
# 消息消费者检测规则
|
|
1581
|
+
# ============================================================
|
|
1582
|
+
messageConsumers:
|
|
1583
|
+
# 消费者注解检测
|
|
1584
|
+
consumerPatterns:
|
|
1585
|
+
- annotation: "@MessageConsumer"
|
|
1586
|
+
extractTopic: true
|
|
1587
|
+
extractMethod: true
|
|
1588
|
+
description: "消息消费者"
|
|
1589
|
+
- annotation: "@KafkaListener"
|
|
1590
|
+
extractTopic: true
|
|
1591
|
+
extractMethod: true
|
|
1592
|
+
description: "Kafka 消费者"
|
|
1593
|
+
- annotation: "@RabbitListener"
|
|
1594
|
+
extractQueue: true
|
|
1595
|
+
extractMethod: true
|
|
1596
|
+
description: "RabbitMQ 消费者"
|
|
1597
|
+
- annotation: "@RocketMQMessageListener"
|
|
1598
|
+
extractTopic: true
|
|
1599
|
+
extractMethod: true
|
|
1600
|
+
description: "RocketMQ 消费者"
|
|
1601
|
+
|
|
1602
|
+
# 生产者检测
|
|
1603
|
+
producerPatterns:
|
|
1604
|
+
- annotation: "@MessageProducer"
|
|
1605
|
+
extractTopic: true
|
|
1606
|
+
description: "消息生产者"
|
|
1607
|
+
- class: "*Producer.java"
|
|
1608
|
+
extractMethods: true
|
|
1609
|
+
description: "生产者类"
|
|
1610
|
+
- class: "*Publisher.java"
|
|
1611
|
+
extractMethods: true
|
|
1612
|
+
description: "发布者类"
|
|
1613
|
+
|
|
1614
|
+
# Topic 配置提取
|
|
1615
|
+
topicConfigExtraction:
|
|
1616
|
+
- pattern: "*.topic"
|
|
1617
|
+
description: "Topic 配置"
|
|
1618
|
+
- pattern: "*.consumer.group"
|
|
1619
|
+
description: "消费者组配置"
|
|
1620
|
+
- pattern: "*.producer.group"
|
|
1621
|
+
description: "生产者组配置"
|
|
1622
|
+
|
|
1623
|
+
# 输出配置
|
|
1624
|
+
output:
|
|
1625
|
+
outputDir: "01-env-knowledge/05-message-queues/"
|
|
1626
|
+
|
|
1627
|
+
# ============================================================
|
|
1628
|
+
# 增量同步配置
|
|
1629
|
+
# ============================================================
|
|
1630
|
+
incrementalSync:
|
|
1631
|
+
# 是否启用增量同步
|
|
1632
|
+
enabled: true
|
|
1633
|
+
|
|
1634
|
+
# 变更检测方法
|
|
1635
|
+
changeDetection:
|
|
1636
|
+
# Git 变更检测
|
|
1637
|
+
git:
|
|
1638
|
+
enabled: true
|
|
1639
|
+
# 检测深度(提交数)
|
|
1640
|
+
depth: 1
|
|
1641
|
+
# 排除路径
|
|
1642
|
+
excludePaths:
|
|
1643
|
+
- "*.md"
|
|
1644
|
+
- "docs/"
|
|
1645
|
+
- ".autospec/environment/"
|
|
1646
|
+
|
|
1647
|
+
# 文件哈希检测(非 Git 环境)
|
|
1648
|
+
fileHash:
|
|
1649
|
+
enabled: false
|
|
1650
|
+
# 哈希存储路径
|
|
1651
|
+
hashStore: ".autospec/runtime/file-hashes.json"
|
|
1652
|
+
|
|
1653
|
+
# 知识过期检测
|
|
1654
|
+
stalenessDetection:
|
|
1655
|
+
# 知识文件最大有效期(天)
|
|
1656
|
+
maxAge: 30
|
|
1657
|
+
# 源文件变更后知识过期时间(小时)
|
|
1658
|
+
changeExpiry: 24
|
|
1659
|
+
|
|
1660
|
+
# 增量更新范围
|
|
1661
|
+
updateScope:
|
|
1662
|
+
# 依赖变更 → 更新中间件知识
|
|
1663
|
+
dependency:
|
|
1664
|
+
- "01-env-knowledge/01-middleware/"
|
|
1665
|
+
- "01-env-knowledge/02-infrastructure/"
|
|
1666
|
+
# 代码变更 → 更新 RPC 服务/数据模型知识
|
|
1667
|
+
code:
|
|
1668
|
+
- "01-env-knowledge/03-rpc-services/"
|
|
1669
|
+
- "01-env-knowledge/04-data-models/"
|
|
1670
|
+
# 配置变更 → 更新所有相关知识
|
|
1671
|
+
config:
|
|
1672
|
+
- "01-env-knowledge/"
|
|
1673
|
+
|
|
1674
|
+
# ============================================================
|
|
1675
|
+
# 置信度增强配置
|
|
1676
|
+
# ============================================================
|
|
1677
|
+
confidenceEnhancement:
|
|
1678
|
+
# 置信度计算权重
|
|
1679
|
+
weights:
|
|
1680
|
+
dependency: 0.4 # 依赖匹配权重
|
|
1681
|
+
config: 0.3 # 配置匹配权重
|
|
1682
|
+
code: 0.2 # 代码匹配权重
|
|
1683
|
+
naming: 0.1 # 命名匹配权重
|
|
1684
|
+
|
|
1685
|
+
# 置信度提升策略
|
|
1686
|
+
boost:
|
|
1687
|
+
# 多源确认提升
|
|
1688
|
+
multiSourceConfirm: 0.15
|
|
1689
|
+
# 配置项完整提升
|
|
1690
|
+
configComplete: 0.10
|
|
1691
|
+
# 代码使用确认提升
|
|
1692
|
+
codeUsageConfirm: 0.10
|