@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,320 @@
|
|
|
1
|
+
# 自主修复原则 — 实战经验提炼
|
|
2
|
+
|
|
3
|
+
> **定位**: 从自主修复机制实战中提炼的原则集合,补充到 principle-hierarchy.md
|
|
4
|
+
>
|
|
5
|
+
> **版本**: v1.0
|
|
6
|
+
> **最后更新**: 2026-03-27
|
|
7
|
+
> **来源**: 自主修复机制实战经验
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## 一、核心洞察
|
|
12
|
+
|
|
13
|
+
### 洞察 1: 框架缺乏自主修复能力是系统性失败
|
|
14
|
+
|
|
15
|
+
**问题现象**:
|
|
16
|
+
- 遇到任何错误就标记 BLOCKED 等待人工
|
|
17
|
+
- 依赖缺失需要人工添加 pom.xml
|
|
18
|
+
- 配置错误需要人工修正
|
|
19
|
+
|
|
20
|
+
**根因分析**:
|
|
21
|
+
- 框架设计时未将"自主修复"作为核心能力
|
|
22
|
+
- 错误处理机制停留在"检测→报告"层面
|
|
23
|
+
- 缺少"检测→分析→决策→执行→验证"的闭环
|
|
24
|
+
|
|
25
|
+
**解决原则**:
|
|
26
|
+
> **框架必须具备"分析→决策→执行→验证"的自主闭环能力**
|
|
27
|
+
|
|
28
|
+
### 洞察 2: 自主修复必须有明确的边界
|
|
29
|
+
|
|
30
|
+
**问题现象**:
|
|
31
|
+
- AI 可能修改宪法文件
|
|
32
|
+
- AI 可能改变架构决策
|
|
33
|
+
- AI 可能引入安全风险
|
|
34
|
+
|
|
35
|
+
**根因分析**:
|
|
36
|
+
- 未定义修复边界
|
|
37
|
+
- 未区分错误类型
|
|
38
|
+
- 未设置停线条件
|
|
39
|
+
|
|
40
|
+
**解决原则**:
|
|
41
|
+
> **修复边界必须明确:冻结区/受控区/自由区**
|
|
42
|
+
|
|
43
|
+
### 洞察 3: 优先复用项目现有能力是 Brownfield 适配的关键
|
|
44
|
+
|
|
45
|
+
**问题现象**:
|
|
46
|
+
- AI 倾向于新建代码而非复用现有代码
|
|
47
|
+
- AI 硬编码路径、包名、类名
|
|
48
|
+
- AI 不考虑项目已有的 AOP 框架、Helper 工具
|
|
49
|
+
|
|
50
|
+
**根因分析**:
|
|
51
|
+
- 未在规范中明确约束
|
|
52
|
+
- 未提供扫描和复用的具体方法
|
|
53
|
+
- AI 倾向于"从零实现"而非"搜索复用"
|
|
54
|
+
|
|
55
|
+
**解决原则**:
|
|
56
|
+
> **修复/实现前必须扫描项目现有能力,优先复用而非新建**
|
|
57
|
+
|
|
58
|
+
---
|
|
59
|
+
|
|
60
|
+
## 二、原则体系
|
|
61
|
+
|
|
62
|
+
### AFP1: 修复循环原则 (Auto-Fix Loop Principle)
|
|
63
|
+
|
|
64
|
+
**核心内容**:
|
|
65
|
+
```
|
|
66
|
+
检测障碍 → 分析根因 → 决策策略 → 执行修复 → 验证结果
|
|
67
|
+
↑ │
|
|
68
|
+
└──────────── 最多 3 次循环 ─────────────┘
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
**错误分类**:
|
|
72
|
+
| 错误类型 | 自主修复策略 | 示例 |
|
|
73
|
+
|---------|------------|------|
|
|
74
|
+
| 依赖类 | 自动添加/安装 | 缺少 npm/Maven 包 |
|
|
75
|
+
| 配置类 | 自动修正配置 | 配置文件错误 |
|
|
76
|
+
| 代码类 | 自动修正代码 | 语法错误、类型错误 |
|
|
77
|
+
| 资源类 | 自动创建/下载 | 文件缺失、目录不存在 |
|
|
78
|
+
| 验证类 | 自动重试/修正 | 测试失败、编译错误 |
|
|
79
|
+
| 逻辑类 | 需人工确认 | 业务逻辑错误、需求歧义 |
|
|
80
|
+
|
|
81
|
+
**追溯关系**:
|
|
82
|
+
- 上游: L1-P1 验证为王、L3-T3 精准回退
|
|
83
|
+
- 下游: L4-auto-fix-loop 自主修复机制
|
|
84
|
+
|
|
85
|
+
### AFP2: 修复边界原则 (Repair Boundary Principle)
|
|
86
|
+
|
|
87
|
+
**核心内容**:
|
|
88
|
+
| 区域 | 内容 | 修复方式 |
|
|
89
|
+
|------|------|---------|
|
|
90
|
+
| 冻结区 | 宪法文件、核心原则 | 不可自主修改,直接 BLOCKED |
|
|
91
|
+
| 受控区 | 框架核心机制、接口契约 | 需人工批准,生成修复提案 |
|
|
92
|
+
| 自由区 | 依赖添加、配置修正、语法错误 | 可自主修复,修复后验证 |
|
|
93
|
+
|
|
94
|
+
**停线条件**:
|
|
95
|
+
- 检测到安全漏洞
|
|
96
|
+
- 检测到数据丢失风险
|
|
97
|
+
- 同一问题修复 3 次仍未通过
|
|
98
|
+
- 宪法门禁检查不通过
|
|
99
|
+
- AI 自我判断置信度极低
|
|
100
|
+
|
|
101
|
+
**追溯关系**:
|
|
102
|
+
- 上游: L1-P3 渐进自主、L2-S4 知情猜测
|
|
103
|
+
- 下游: L4-constitution 宪法门禁
|
|
104
|
+
|
|
105
|
+
### AFP3: 优先复用原则 (Reuse-First Principle)
|
|
106
|
+
|
|
107
|
+
**核心内容**:
|
|
108
|
+
|
|
109
|
+
**修复/实现前必须扫描**:
|
|
110
|
+
1. 扫描项目已有的 AOP 框架、Helper 工具类、Util 类
|
|
111
|
+
2. 扫描 environment 知识文件,了解项目使用的中间件和组件
|
|
112
|
+
3. 识别项目已有的技术选型和架构模式
|
|
113
|
+
|
|
114
|
+
**禁止硬编码**:
|
|
115
|
+
- 不可在代码中硬编码目录名、包名、类名、配置项
|
|
116
|
+
- 必须从环境知识文件、配置文件中动态读取
|
|
117
|
+
- 支持不同项目的差异化配置
|
|
118
|
+
|
|
119
|
+
**复用优先于新建**:
|
|
120
|
+
- 项目已有 AOP 框架 → 使用 AOP 切面方式,不手动埋点
|
|
121
|
+
- 项目已有 Helper 工具 → 调用 Helper 方法,不重复实现
|
|
122
|
+
- 项目已有 Util 类 → 使用 Util 工具,不自己造轮子
|
|
123
|
+
|
|
124
|
+
**违反示例**(禁止行为):
|
|
125
|
+
- ❌ 项目已有 `AgentTracingHelper`,却自己新建一个埋点类
|
|
126
|
+
- ❌ 项目已有 AOP 切面模式,却直接在业务代码中硬编码埋点
|
|
127
|
+
- ❌ 在代码中硬编码 `pom.xml`、`src/main/java` 等路径
|
|
128
|
+
- ❌ 项目已有 `LogUtil`,却直接使用 `logger.info()`
|
|
129
|
+
- ❌ 不考虑项目已有的技术栈,直接引入新的依赖
|
|
130
|
+
|
|
131
|
+
**遵守示例**(推荐行为):
|
|
132
|
+
- ✅ 先读取 `knowledge/06-environment/` 了解项目技术栈
|
|
133
|
+
- ✅ 先搜索代码库是否有类似的 Helper/Util/AOP 实现
|
|
134
|
+
- ✅ 复用项目已有的 `AgentTracingHelper`、`LogUtil` 等工具类
|
|
135
|
+
- ✅ 使用项目已有的 AOP 切面模式进行埋点
|
|
136
|
+
- ✅ 从配置文件或环境知识中动态读取路径和配置
|
|
137
|
+
|
|
138
|
+
**追溯关系**:
|
|
139
|
+
- 上游: L1-P2 极简实用、L2-S3 Harness Engineering
|
|
140
|
+
- 下游: L4-coding-style 编码规范 0.1/0.2 节
|
|
141
|
+
|
|
142
|
+
### AFP4: 设计原则约束原则 (Design Principles Constraint)
|
|
143
|
+
|
|
144
|
+
**核心内容**:
|
|
145
|
+
|
|
146
|
+
自主修复过程中,必须遵循以下面向对象设计原则:
|
|
147
|
+
|
|
148
|
+
#### 修复流程原则
|
|
149
|
+
- **P1: 优先复用项目现有能力** — 修复前先扫描项目已有能力
|
|
150
|
+
- **P2: 禁止硬编码** — 从环境知识文件动态读取配置
|
|
151
|
+
- **P3: 先搜索后实现** — 先搜索代码库,再决定实现方式
|
|
152
|
+
|
|
153
|
+
#### 面向对象设计原则(通用)
|
|
154
|
+
| 原则 | 核心要求 |
|
|
155
|
+
|------|---------|
|
|
156
|
+
| 单一职责 (SRP) | 一个类只负责一项职责 |
|
|
157
|
+
| 开闭原则 (OCP) | 对扩展开放,对修改关闭 |
|
|
158
|
+
| 里氏替换 (LSP) | 子类必须能够替换其父类 |
|
|
159
|
+
| 依赖倒置 (DIP) | 面向接口编程,不依赖具体实现 |
|
|
160
|
+
| 接口隔离 (ISP) | 使用多个专门的接口 |
|
|
161
|
+
| 迪米特法则 | 只与直接的朋友通信 |
|
|
162
|
+
| 合成/复用 | 优先使用组合/聚合 |
|
|
163
|
+
| 高内聚低耦合 | 模块内聚,模块间松耦合 |
|
|
164
|
+
| AOP 优先 | 跨切面功能优先使用 AOP 切面 |
|
|
165
|
+
|
|
166
|
+
**追溯关系**:
|
|
167
|
+
- 上游: L1-P2 极简实用、L3-T6 优先复用
|
|
168
|
+
- 下游: L4-coding-style 编码规范 0.3 节/第 11 章
|
|
169
|
+
|
|
170
|
+
### AFP5: 重试上限原则 (Retry Limit Principle)
|
|
171
|
+
|
|
172
|
+
**核心内容**:
|
|
173
|
+
- 同一问题最多自主修复 **3 次**
|
|
174
|
+
- 3 次后仍未通过 → 升级人工,记录到 `practice-log`
|
|
175
|
+
- 每次重试必须记录:问题、根因、修复方案、验证结果
|
|
176
|
+
|
|
177
|
+
**追溯关系**:
|
|
178
|
+
- 上游: L1-P1 验证为王、L3-T3 精准回退
|
|
179
|
+
- 下游: L4-constitution 宪法门禁、L4-auto-fix-loop
|
|
180
|
+
|
|
181
|
+
### AFP6: 实践日志原则 (Practice Log Principle)
|
|
182
|
+
|
|
183
|
+
**核心内容**:
|
|
184
|
+
|
|
185
|
+
每次自主修复都必须记录到 practice-log:
|
|
186
|
+
|
|
187
|
+
```markdown
|
|
188
|
+
## [日期] 自主修复记录
|
|
189
|
+
|
|
190
|
+
**问题**: [问题描述]
|
|
191
|
+
**根因**: [根因分析]
|
|
192
|
+
**修复方案**: [修复措施]
|
|
193
|
+
**验证结果**: [验证输出]
|
|
194
|
+
**分类**: [错误类型]
|
|
195
|
+
**区域**: [修复区域]
|
|
196
|
+
**重试次数**: [x/3]
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**追溯关系**:
|
|
200
|
+
- 上游: L1-P1 验证为王、L3-进化机制
|
|
201
|
+
- 下游: L4-evolution 自进化机制
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## 三、原则应用矩阵
|
|
206
|
+
|
|
207
|
+
### 3.1 按错误类型应用原则
|
|
208
|
+
|
|
209
|
+
| 错误类型 | 应用原则 | 处理流程 |
|
|
210
|
+
|---------|---------|---------|
|
|
211
|
+
| **依赖缺失** | AFP1 修复循环、AFP3 优先复用 | 扫描现有依赖 → 自动安装 → 验证 → 记录 |
|
|
212
|
+
| **配置错误** | AFP1 修复循环、AFP2 修复边界 | 分析配置 → 判断区域 → 修正 → 验证 |
|
|
213
|
+
| **代码错误** | AFP1 修复循环、AFP4 设计原则 | 诊断 → 修复(遵循 SOLID)→ 重验证 |
|
|
214
|
+
| **资源缺失** | AFP1 修复循环、AFP2 修复边界 | 创建目录/文件 → 验证 |
|
|
215
|
+
| **测试失败** | AFP1 修复循环、AFP5 重试上限 | 分析失败 → 修复 → 重测(最多 3 次) |
|
|
216
|
+
| **逻辑错误** | AFP2 修复边界 | 受控区 → 生成提案 → 人工确认 |
|
|
217
|
+
| **安全风险** | AFP2 修复边界 | 冻结区 → 立即停线 → 升级人工 |
|
|
218
|
+
|
|
219
|
+
### 3.2 原则追溯链示例
|
|
220
|
+
|
|
221
|
+
**场景 1**: Maven 依赖缺失
|
|
222
|
+
|
|
223
|
+
```
|
|
224
|
+
错误发生:package com.enterprise.tracer does not exist
|
|
225
|
+
↓
|
|
226
|
+
AFP1 修复循环 → 错误分类(依赖类)
|
|
227
|
+
↓
|
|
228
|
+
AFP3 优先复用 → 扫描现有 pom.xml,查找是否有类似依赖
|
|
229
|
+
↓
|
|
230
|
+
修复执行:添加缺失的 Maven 依赖
|
|
231
|
+
↓
|
|
232
|
+
验证结果:重新执行 mvn compile
|
|
233
|
+
↓
|
|
234
|
+
AFP5 重试上限 → 验证通过,循环结束
|
|
235
|
+
↓
|
|
236
|
+
AFP6 实践日志 → 记录修复过程
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
**场景 2**: 代码硬编码路径
|
|
240
|
+
|
|
241
|
+
```
|
|
242
|
+
代码审查发现:String path = "/Users/chenjianzeng/Code/autospec/";
|
|
243
|
+
↓
|
|
244
|
+
AFP3 优先复用 → 违反"禁止硬编码"原则
|
|
245
|
+
↓
|
|
246
|
+
AFP4 设计原则 → 违反"依赖倒置"原则
|
|
247
|
+
↓
|
|
248
|
+
修复执行:从配置文件读取路径
|
|
249
|
+
↓
|
|
250
|
+
验证结果:重新执行代码审查
|
|
251
|
+
↓
|
|
252
|
+
AFP6 实践日志 → 记录违规和修复过程
|
|
253
|
+
```
|
|
254
|
+
|
|
255
|
+
**场景 3**: 重复造轮子
|
|
256
|
+
|
|
257
|
+
```
|
|
258
|
+
代码审查发现:新建了 MyTracingHelper,但项目已有 AgentTracingHelper
|
|
259
|
+
↓
|
|
260
|
+
AFP3 优先复用 → 违反"优先复用项目现有能力"原则
|
|
261
|
+
↓
|
|
262
|
+
修复执行:删除新建类,改用已有类
|
|
263
|
+
↓
|
|
264
|
+
验证结果:重新执行代码审查
|
|
265
|
+
↓
|
|
266
|
+
AFP6 实践日志 → 记录违规和修复过程
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
---
|
|
270
|
+
|
|
271
|
+
## 四、原则检查清单
|
|
272
|
+
|
|
273
|
+
### 4.1 修复前检查
|
|
274
|
+
|
|
275
|
+
- [ ] 已扫描项目现有的框架、组件、工具类
|
|
276
|
+
- [ ] 已扫描 environment 知识文件
|
|
277
|
+
- [ ] 已识别项目已有的技术选型和架构模式
|
|
278
|
+
- [ ] 已判断修复区域(冻结区/受控区/自由区)
|
|
279
|
+
- [ ] 已分析错误类型(依赖/配置/代码/资源/验证/逻辑)
|
|
280
|
+
|
|
281
|
+
### 4.2 修复中检查
|
|
282
|
+
|
|
283
|
+
- [ ] 遵循优先复用原则(不重复造轮子)
|
|
284
|
+
- [ ] 遵循禁止硬编码原则(从配置读取)
|
|
285
|
+
- [ ] 遵循设计原则约束(SOLID+DDD+AOP)
|
|
286
|
+
- [ ] 遵循修复循环流程(分析→决策→执行→验证)
|
|
287
|
+
- [ ] 遵循重试上限原则(最多 3 次)
|
|
288
|
+
|
|
289
|
+
### 4.3 修复后检查
|
|
290
|
+
|
|
291
|
+
- [ ] 已验证修复结果(重新执行原命令)
|
|
292
|
+
- [ ] 已记录实践日志(问题/根因/修复/验证)
|
|
293
|
+
- [ ] 已更新相关文档(如需要)
|
|
294
|
+
- [ ] 已提炼经验教训(如需要)
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## 五、与 principle-hierarchy.md 的映射
|
|
299
|
+
|
|
300
|
+
| 本文档章节 | 对应 principle-hierarchy.md 章节 | 说明 |
|
|
301
|
+
|-----------|-------------------------------|------|
|
|
302
|
+
| AFP1 修复循环 | L3-T3 精准回退、L4-O2 自主修复 | 修复循环流程 |
|
|
303
|
+
| AFP2 修复边界 | L2-S4 知情猜测、L4-O3 宪法门禁 | 修复区域划分 |
|
|
304
|
+
| AFP3 优先复用 | L3-T6 优先复用项目现有能力 | Brownfield 适配 |
|
|
305
|
+
| AFP4 设计原则 | L4-O1 编码规范 0.3 节/第 11 章 | SOLID+DDD |
|
|
306
|
+
| AFP5 重试上限 | L2-宪法#8、L3-T3 精准回退 | 最多 3 次循环 |
|
|
307
|
+
| AFP6 实践日志 | L3-进化机制、L4-evolution | 经验沉淀 |
|
|
308
|
+
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
**维护者**: AutoSpec 团队
|
|
312
|
+
**反馈渠道**: 知识库 Git 仓库 Issue
|
|
313
|
+
**关联文档**:
|
|
314
|
+
- [00-principles-hierarchy.md](00-principles-hierarchy.md) - 原则体系总纲
|
|
315
|
+
- [01-first-principles.md](01-first-principles.md) - L1 第一性原则
|
|
316
|
+
- [02-strategic-principles.md](02-strategic-principles.md) - L2 战略原则
|
|
317
|
+
- [03-tactical-principles.md](03-tactical-principles.md) - L3 战术原则
|
|
318
|
+
- [04-operational-principles.md](04-operational-principles.md) - L4 操作原则
|
|
319
|
+
- [09-constitution.md](09-constitution.md) - 项目宪法
|
|
320
|
+
- `knowledge/07-standards/00-coding-style.md` - 编码规范
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# 项目宪法 — 不可违反的红线清单
|
|
2
|
+
|
|
3
|
+
> 宪法门禁(DP10):自动检查,违反任何一条立即停止全流程。
|
|
4
|
+
>
|
|
5
|
+
> **版本**: v2.0
|
|
6
|
+
> **最后更新**: 2026-03-27
|
|
7
|
+
> **基于**: 业界风险防范基本条例、核心原则
|
|
8
|
+
|
|
9
|
+
## 安全红线
|
|
10
|
+
|
|
11
|
+
1. **不可逆动作必须人工确认**
|
|
12
|
+
- 数据库迁移(DDL 变更)
|
|
13
|
+
- 生产环境部署
|
|
14
|
+
- 外部 API 发送(邮件、短信、支付等)
|
|
15
|
+
- 数据删除(DELETE/TRUNCATE)
|
|
16
|
+
- 分支强制推送
|
|
17
|
+
|
|
18
|
+
2. **敏感信息不可硬编码**
|
|
19
|
+
- 密钥、密码、Token 不可出现在代码中
|
|
20
|
+
- 生产环境配置不可出现在代码仓库中
|
|
21
|
+
- 用户隐私数据不可出现在日志中
|
|
22
|
+
|
|
23
|
+
3. **安全漏洞零容忍**
|
|
24
|
+
- SQL 注入
|
|
25
|
+
- XSS(跨站脚本)
|
|
26
|
+
- CSRF(跨站请求伪造)
|
|
27
|
+
- 越权访问
|
|
28
|
+
- 未加密传输敏感数据
|
|
29
|
+
|
|
30
|
+
## 流程红线
|
|
31
|
+
|
|
32
|
+
4. **启动门禁不可跳过**
|
|
33
|
+
- 收到开发/建设类任务时,必须先执行启动协议(读 pipeline→读宪法→确认范围)
|
|
34
|
+
- 禁止跳过需求分析直接写代码
|
|
35
|
+
- "全流程自动化"≠"跳过流程",而是"按框架自动推进各阶段"
|
|
36
|
+
|
|
37
|
+
5. **Layer 1 不过不进 Layer 2**
|
|
38
|
+
- 确定性验证(编译/测试/lint)失败时,禁止进入 AI 审查
|
|
39
|
+
- 测试红灯时,禁止声明代码完成
|
|
40
|
+
|
|
41
|
+
6. **Layer 1 必须真实执行**
|
|
42
|
+
- 禁止用"静态分析评估"替代真实执行来声称 Layer 1 通过
|
|
43
|
+
- 无法执行 → 标记为 BLOCKED,不是 PASSED
|
|
44
|
+
- BLOCKED → 先解决环境问题,或降级为 experiment 模式
|
|
45
|
+
- Layer 1 结果必须附带真实执行日志
|
|
46
|
+
|
|
47
|
+
7. **做审必须分离**
|
|
48
|
+
- 做类 skill 和审类 skill 必须由不同 AI 实例执行
|
|
49
|
+
- 审查必须通过 Agent 工具启动独立子进程,实现信息隔离
|
|
50
|
+
- 禁止同一上下文中切换角色冒充分离
|
|
51
|
+
|
|
52
|
+
8. **回退上限 3 次**
|
|
53
|
+
- 同一问题修正循环超过 3 次必须升级人工
|
|
54
|
+
- 禁止无限循环修复
|
|
55
|
+
|
|
56
|
+
9. **关键假设必须显式记录**
|
|
57
|
+
- 每个阶段的关键假设必须写入文件
|
|
58
|
+
- 阶段间传递时必须校验假设一致性
|
|
59
|
+
- 待确认假设超过 3 个必须升级人工
|
|
60
|
+
|
|
61
|
+
## 决策红线
|
|
62
|
+
|
|
63
|
+
10. **方向性决策必须人工确认**
|
|
64
|
+
- 需求方向和范围变更
|
|
65
|
+
- 架构重大变更(如单体→微服务)
|
|
66
|
+
- 安全敏感决策
|
|
67
|
+
- 新技术引入
|
|
68
|
+
- 自动模式下:标记为 REQUIRE_REVIEW + pendingConfirmations,不阻塞但不执行
|
|
69
|
+
|
|
70
|
+
11. **知情猜测有上限**
|
|
71
|
+
- 最多 3 个 NEEDS CLARIFICATION 标记
|
|
72
|
+
- 其余做合理默认但不可隐藏假设
|
|
73
|
+
|
|
74
|
+
## 执行模式红线
|
|
75
|
+
|
|
76
|
+
> 自动模式(unattended)不降低安全标准,只改变确认方式。
|
|
77
|
+
|
|
78
|
+
- **以下红线在自动模式下不可降级**(两种模式同等执行):
|
|
79
|
+
- 安全红线(#1-#3)全部生效
|
|
80
|
+
- Layer 1 真实执行(#5-#6)全部生效
|
|
81
|
+
- 做审分离(#7)全部生效
|
|
82
|
+
- 数据完整性(#12)全部生效
|
|
83
|
+
- 部署可回滚(#13)全部生效
|
|
84
|
+
- 安全审计结论为"不安全" → 两种模式都阻止执行
|
|
85
|
+
- **以下确认行为在自动模式下可降级为记录**:
|
|
86
|
+
- 不可逆动作确认(#1)→ 生成方案但不执行,记录 pendingConfirmations
|
|
87
|
+
- 阶段产出确认(#4 流程中的人工确认点)→ 使用 stage-gate Agent 替代
|
|
88
|
+
- 方向性决策确认(#10)→ 使用推荐值,标记 REQUIRE_REVIEW
|
|
89
|
+
- 待确认假设升级(#9)→ 记录但不阻塞,标记 HIGH_PRIORITY_REVIEW
|
|
90
|
+
- **自动模式完成后,pendingConfirmations 中的所有项必须在下次交互中向用户展示**
|
|
91
|
+
|
|
92
|
+
## 数据红线
|
|
93
|
+
|
|
94
|
+
12. **数据完整性不可妥协**
|
|
95
|
+
- 禁止跳过数据校验
|
|
96
|
+
- 禁止未经验证的数据格式转换
|
|
97
|
+
- 禁止金额使用浮点数运算(必须使用 Money 类或 BigDecimal)
|
|
98
|
+
- 禁止 SELECT * 查询(必须指定列名)
|
|
99
|
+
- 禁止使用 ${} 进行 SQL 拼接(必须使用 #{} 参数化查询)
|
|
100
|
+
|
|
101
|
+
## 运维红线
|
|
102
|
+
|
|
103
|
+
13. **部署必须可回滚**
|
|
104
|
+
- 每次部署必须有回滚方案
|
|
105
|
+
- 回滚方案必须经过验证
|
|
106
|
+
- 禁止"只能前进不能后退"的部署
|
|
107
|
+
|
|
108
|
+
14. **监控与日志规范**
|
|
109
|
+
- 关键业务节点必须打印日志(使用 LogUtil,带 TraceId)
|
|
110
|
+
- 禁止直接使用 logger 打印(无 TraceId,无法链路追踪)
|
|
111
|
+
- 禁止空 catch 块(异常必须记录日志并处理)
|
|
112
|
+
- 异步方法必须捕获异常(防止异常吞掉)
|
|
113
|
+
- 必须考虑三板斧:灰度、监控、应急
|
|
114
|
+
|
|
115
|
+
15. **并发控制**
|
|
116
|
+
- 更新数据前必须加锁(一锁二判三更新原则)
|
|
117
|
+
- 禁止使用无界线程池(队列长度建议≤100)
|
|
118
|
+
- ThreadLocal 使用完毕后必须调用 remove() 清理
|
|
119
|
+
|
|
120
|
+
## 停线条件
|
|
121
|
+
|
|
122
|
+
以下任一条件成立 → 立即停止全流程,等待人工处理:
|
|
123
|
+
- 检测到安全漏洞(上述第 3 条)
|
|
124
|
+
- 检测到数据丢失风险
|
|
125
|
+
- 同一问题修复 3 次仍未通过(自主修复循环上限)
|
|
126
|
+
- 宪法门禁检查不通过
|
|
127
|
+
- AI 自我判断置信度极低(无法给出合理默认值)
|
|
128
|
+
|
|
129
|
+
## 自主修复机制(Auto-Fix Loop)
|
|
130
|
+
|
|
131
|
+
> 框架具备"分析→决策→执行→验证"的自主闭环能力,适用于任何项目或事项。
|
|
132
|
+
|
|
133
|
+
### 修复循环流程
|
|
134
|
+
|
|
135
|
+
```
|
|
136
|
+
检测障碍 → 分析根因 → 决策策略 → 执行修复 → 验证结果
|
|
137
|
+
↑ │
|
|
138
|
+
└──────────── 最多 3 次循环 ─────────────┘
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### 错误分类与修复策略
|
|
142
|
+
|
|
143
|
+
| 错误类型 | 自主修复策略 | 示例 |
|
|
144
|
+
|---------|------------|------|
|
|
145
|
+
| **依赖类** | 自动添加/安装 | 缺少 npm/Maven 包、工具缺失 |
|
|
146
|
+
| **配置类** | 自动修正配置 | 配置文件错误、环境变量缺失 |
|
|
147
|
+
| **代码类** | 自动修正代码 | 语法错误、类型错误、导入缺失 |
|
|
148
|
+
| **资源类** | 自动创建/下载 | 文件缺失、目录不存在 |
|
|
149
|
+
| **验证类** | 自动重试/修正 | 测试失败、编译错误 |
|
|
150
|
+
| **逻辑类** | 需人工确认 | 业务逻辑错误、需求歧义 |
|
|
151
|
+
|
|
152
|
+
### 自主修复边界
|
|
153
|
+
|
|
154
|
+
**冻结区(不可自主修改)**
|
|
155
|
+
- 宪法文件 (`constitution.md`, `evolution.md`)
|
|
156
|
+
- 核心设计原则
|
|
157
|
+
- 用户明确锁定的文件
|
|
158
|
+
|
|
159
|
+
**受控区(需人工批准)**
|
|
160
|
+
- 框架核心机制修改
|
|
161
|
+
- 接口契约变更
|
|
162
|
+
- 跨系统依赖变更
|
|
163
|
+
- 方向性决策(需求范围、架构变更)
|
|
164
|
+
|
|
165
|
+
**自由区(可自主修复)**
|
|
166
|
+
- 依赖添加/版本升级
|
|
167
|
+
- 配置文件修正
|
|
168
|
+
- 代码语法/类型错误
|
|
169
|
+
- 测试文件修复
|
|
170
|
+
- 环境问题(缺失的工具/目录)
|
|
171
|
+
|
|
172
|
+
### 自主修复原则(必须遵循)
|
|
173
|
+
|
|
174
|
+
自主修复过程中,必须遵循以下原则:
|
|
175
|
+
|
|
176
|
+
#### 修复流程原则
|
|
177
|
+
|
|
178
|
+
**P1: 优先复用项目现有能力**
|
|
179
|
+
- 修复前必须先扫描项目已有的框架、组件、工具类
|
|
180
|
+
- 优先使用项目已有的 AOP、Helper、Util 等基础设施
|
|
181
|
+
- 禁止重复造轮子 —— 项目已有类似实现时,必须复用或扩展
|
|
182
|
+
- 新增代码必须符合项目已有的代码风格和架构模式
|
|
183
|
+
|
|
184
|
+
**P2: 禁止硬编码**
|
|
185
|
+
- 不可在代码中硬编码目录名、包名、类名、配置项等
|
|
186
|
+
- 必须从环境知识文件、配置文件中动态读取
|
|
187
|
+
- 支持不同项目的差异化配置
|
|
188
|
+
|
|
189
|
+
**P3: 先搜索后实现**
|
|
190
|
+
- 实现任何功能前,先搜索代码库是否已有类似实现
|
|
191
|
+
- 有 → 复用或扩展;无 → 按已有代码的模式和风格实现
|
|
192
|
+
|
|
193
|
+
#### 面向对象设计原则(通用)
|
|
194
|
+
|
|
195
|
+
> 以下原则为软件工程的通用设计原则,适用于所有设计、编码和修复场景。
|
|
196
|
+
> 详细说明和代码示例见:`knowledge/07-standards/00-coding-style.md` 第 11 节
|
|
197
|
+
|
|
198
|
+
| 原则 | 核心要求 |
|
|
199
|
+
|------|---------|
|
|
200
|
+
| **单一职责 (SRP)** | 一个类只负责一项职责,只有一个引起它变化的原因 |
|
|
201
|
+
| **开闭原则 (OCP)** | 对扩展开放,对修改关闭 |
|
|
202
|
+
| **里氏替换 (LSP)** | 子类必须能够替换其父类,程序行为不变 |
|
|
203
|
+
| **依赖倒置 (DIP)** | 面向接口编程,不依赖具体实现 |
|
|
204
|
+
| **接口隔离 (ISP)** | 使用多个专门的接口,不使用单一的总接口 |
|
|
205
|
+
| **迪米特法则** | 只与直接的朋友通信,不与"陌生人"交谈(最少知道原则) |
|
|
206
|
+
| **合成/复用** | 优先使用组合/聚合,其次才是继承 |
|
|
207
|
+
| **高内聚低耦合** | 模块内聚,模块间松耦合,变化点封装隔离 |
|
|
208
|
+
| **AOP 优先** | 跨切面功能优先使用 AOP 切面方式,不侵入业务代码 |
|
|
209
|
+
|
|
210
|
+
### retryCount 上限
|
|
211
|
+
|
|
212
|
+
- 同一问题最多自主修复 **3 次**
|
|
213
|
+
- 3 次后仍未通过 → 升级人工,记录到 `practice-log`
|
|
214
|
+
|
|
215
|
+
## 宪法修订规则
|
|
216
|
+
|
|
217
|
+
- 本宪法的修改必须人工审批
|
|
218
|
+
- AI 不可自行修改或绕过宪法条款
|
|
219
|
+
- 每季度 review 一次,确认条款仍然合理
|
|
220
|
+
- 新增条款需说明来源(哪个事件/风险触发)
|