@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,315 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Subsystem Coverage Checker
|
|
5
|
+
*
|
|
6
|
+
* 检查多系统开发中的子系统实现覆盖情况
|
|
7
|
+
*
|
|
8
|
+
* 功能:
|
|
9
|
+
* 1. 读取设计文档,提取子系统清单
|
|
10
|
+
* 2. 扫描代码目录,检测实际修改的文件
|
|
11
|
+
* 3. 对比两者,输出覆盖报告
|
|
12
|
+
* 4. 供 CLI 命令和 Hook 调用
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import fs from 'fs';
|
|
16
|
+
import path from 'path';
|
|
17
|
+
import { fileURLToPath } from 'url';
|
|
18
|
+
import { loadState, getSubsystemCoverage, normalizeSubsystems } from '../state.js';
|
|
19
|
+
|
|
20
|
+
const __filename = fileURLToPath(import.meta.url);
|
|
21
|
+
const __dirname = path.dirname(__filename);
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* 读取设计文档,提取子系统清单
|
|
25
|
+
* @param {string} projectDir - 项目根目录
|
|
26
|
+
* @returns {Array} 设计文档中定义的子系统列表
|
|
27
|
+
*/
|
|
28
|
+
function extractSubsystemsFromDesign(projectDir) {
|
|
29
|
+
const designDir = path.join(projectDir, 'design');
|
|
30
|
+
const overviewPath = path.join(designDir, 'overview.md');
|
|
31
|
+
|
|
32
|
+
if (!fs.existsSync(overviewPath)) {
|
|
33
|
+
return [];
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
const content = fs.readFileSync(overviewPath, 'utf-8');
|
|
37
|
+
const subsystems = [];
|
|
38
|
+
|
|
39
|
+
// 简单的子系统提取逻辑
|
|
40
|
+
// 匹配 ##子系统名称 或 ### 子系统名称
|
|
41
|
+
const lines = content.split('\n');
|
|
42
|
+
for (const line of lines) {
|
|
43
|
+
const match = line.match(/^#{2,3}\s+(.+)$/);
|
|
44
|
+
if (match) {
|
|
45
|
+
const name = match[1].trim();
|
|
46
|
+
// 过滤掉非子系统标题
|
|
47
|
+
if (!['概述', ' Overview', '架构', ' Architecture', '目录', 'TOC'].includes(name)) {
|
|
48
|
+
subsystems.push({
|
|
49
|
+
name,
|
|
50
|
+
path: name.toLowerCase().replace(/\s+/g, '-'),
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return subsystems;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/**
|
|
60
|
+
* 扫描代码目录,检测实际实现的文件
|
|
61
|
+
* @param {string} projectDir - 项目根目录
|
|
62
|
+
* @returns {Object} 各子系统的文件列表
|
|
63
|
+
*/
|
|
64
|
+
function scanCodeDirectories(projectDir) {
|
|
65
|
+
const result = {
|
|
66
|
+
backend: [],
|
|
67
|
+
frontend: [],
|
|
68
|
+
mobile: [],
|
|
69
|
+
data: [],
|
|
70
|
+
other: [],
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
const dirs = {
|
|
74
|
+
backend: ['backend', 'server', 'api', 'service'],
|
|
75
|
+
frontend: ['frontend', 'web', 'client', 'app'],
|
|
76
|
+
mobile: ['mobile', 'ios', 'android'],
|
|
77
|
+
data: ['data', 'warehouse', 'datalake'],
|
|
78
|
+
};
|
|
79
|
+
|
|
80
|
+
function scanDir(dir, category) {
|
|
81
|
+
if (!fs.existsSync(dir)) return;
|
|
82
|
+
|
|
83
|
+
try {
|
|
84
|
+
const files = fs.readdirSync(dir, { withFileTypes: true });
|
|
85
|
+
for (const file of files) {
|
|
86
|
+
const fullPath = path.join(dir, file.name);
|
|
87
|
+
if (file.isDirectory()) {
|
|
88
|
+
if (!file.name.startsWith('.') && file.name !== 'node_modules') {
|
|
89
|
+
scanDir(fullPath, category);
|
|
90
|
+
}
|
|
91
|
+
} else if (/\.(js|ts|jsx|tsx|java|go|py|rb)$/.test(file.name)) {
|
|
92
|
+
result[category].push(path.relative(projectDir, fullPath));
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
} catch (e) {
|
|
96
|
+
// 忽略权限错误
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
for (const [category, dirNames] of Object.entries(dirs)) {
|
|
101
|
+
for (const dirName of dirNames) {
|
|
102
|
+
const dirPath = path.join(projectDir, dirName);
|
|
103
|
+
if (fs.existsSync(dirPath)) {
|
|
104
|
+
scanDir(dirPath, category);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
// 其他目录
|
|
110
|
+
const rootFiles = fs.readdirSync(projectDir, { withFileTypes: true });
|
|
111
|
+
for (const file of rootFiles) {
|
|
112
|
+
if (file.isDirectory() && !file.name.startsWith('.') && !['node_modules', 'design', 'docs', 'scripts'].includes(file.name)) {
|
|
113
|
+
const category = 'other';
|
|
114
|
+
scanDir(path.join(projectDir, file.name), category);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
return result;
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* 对比设计与实现,生成覆盖报告
|
|
123
|
+
* @param {Array} designSubsystems - 设计文档中的子系统
|
|
124
|
+
* @param {Object} codeFiles - 实际代码文件
|
|
125
|
+
* @returns {Object} 覆盖报告
|
|
126
|
+
*/
|
|
127
|
+
function generateCoverageReport(designSubsystems, codeFiles) {
|
|
128
|
+
const report = {
|
|
129
|
+
total: designSubsystems.length,
|
|
130
|
+
covered: 0,
|
|
131
|
+
uncovered: [],
|
|
132
|
+
details: [],
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
for (const subsystem of designSubsystems) {
|
|
136
|
+
const subsystemPath = subsystem.path;
|
|
137
|
+
const matchedFiles = [];
|
|
138
|
+
|
|
139
|
+
// 搜索匹配的文件
|
|
140
|
+
for (const [category, files] of Object.entries(codeFiles)) {
|
|
141
|
+
for (const file of files) {
|
|
142
|
+
if (file.includes(subsystemPath) || file.includes(subsystem.name.toLowerCase())) {
|
|
143
|
+
matchedFiles.push({ file, category });
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
if (matchedFiles.length > 0) {
|
|
149
|
+
report.covered++;
|
|
150
|
+
report.details.push({
|
|
151
|
+
subsystem: subsystem.name,
|
|
152
|
+
status: 'covered',
|
|
153
|
+
files: matchedFiles,
|
|
154
|
+
});
|
|
155
|
+
} else {
|
|
156
|
+
report.uncovered.push(subsystem.name);
|
|
157
|
+
report.details.push({
|
|
158
|
+
subsystem: subsystem.name,
|
|
159
|
+
status: 'uncovered',
|
|
160
|
+
files: [],
|
|
161
|
+
});
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
report.coverage = report.total > 0 ? Math.round((report.covered / report.total) * 100) : 0;
|
|
166
|
+
|
|
167
|
+
return report;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
/**
|
|
171
|
+
* 解析命令行参数
|
|
172
|
+
*/
|
|
173
|
+
function parseArgs() {
|
|
174
|
+
const args = process.argv.slice(2);
|
|
175
|
+
const options = {
|
|
176
|
+
project: '.',
|
|
177
|
+
verbose: false,
|
|
178
|
+
output: null,
|
|
179
|
+
json: false,
|
|
180
|
+
};
|
|
181
|
+
|
|
182
|
+
for (let i = 0; i < args.length; i++) {
|
|
183
|
+
switch (args[i]) {
|
|
184
|
+
case '--project':
|
|
185
|
+
case '-p':
|
|
186
|
+
options.project = args[++i];
|
|
187
|
+
break;
|
|
188
|
+
case '--verbose':
|
|
189
|
+
case '-v':
|
|
190
|
+
options.verbose = true;
|
|
191
|
+
break;
|
|
192
|
+
case '--output':
|
|
193
|
+
case '-o':
|
|
194
|
+
options.output = args[++i];
|
|
195
|
+
break;
|
|
196
|
+
case '--json':
|
|
197
|
+
options.json = true;
|
|
198
|
+
break;
|
|
199
|
+
case '--help':
|
|
200
|
+
case '-h':
|
|
201
|
+
printHelp();
|
|
202
|
+
process.exit(0);
|
|
203
|
+
break;
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
return options;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
function printHelp() {
|
|
211
|
+
console.log(`
|
|
212
|
+
Subsystem Coverage Checker
|
|
213
|
+
|
|
214
|
+
用法:
|
|
215
|
+
node subsystem-coverage.js --project <path> [选项]
|
|
216
|
+
|
|
217
|
+
选项:
|
|
218
|
+
-p, --project <path> 项目路径(默认:当前目录)
|
|
219
|
+
-o, --output <path> 输出报告路径(默认:stdout)
|
|
220
|
+
-v, --verbose 详细输出
|
|
221
|
+
-j, --json JSON 格式输出
|
|
222
|
+
-h, --help 显示帮助
|
|
223
|
+
|
|
224
|
+
示例:
|
|
225
|
+
node subsystem-coverage.js --project ./my-project
|
|
226
|
+
node subsystem-coverage.js --project ./my-project --output report.json
|
|
227
|
+
`);
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
/**
|
|
231
|
+
* 主函数
|
|
232
|
+
*/
|
|
233
|
+
async function main() {
|
|
234
|
+
const options = parseArgs();
|
|
235
|
+
|
|
236
|
+
console.log('🔍 Subsystem Coverage Checker\n');
|
|
237
|
+
|
|
238
|
+
try {
|
|
239
|
+
// 1. 提取设计文档中的子系统
|
|
240
|
+
console.log('📋 提取设计文档子系统...');
|
|
241
|
+
const designSubsystems = extractSubsystemsFromDesign(options.project);
|
|
242
|
+
console.log(` 发现子系统: ${designSubsystems.length}`);
|
|
243
|
+
|
|
244
|
+
if (designSubsystems.length === 0) {
|
|
245
|
+
console.log('\n⚠️ 未找到设计文档或子系统定义');
|
|
246
|
+
console.log(' 请确保 design/overview.md 存在且包含子系统标题');
|
|
247
|
+
process.exit(0);
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
// 2. 扫描代码目录
|
|
251
|
+
console.log('\n📂 扫描代码目录...');
|
|
252
|
+
const codeFiles = scanCodeDirectories(options.project);
|
|
253
|
+
let totalFiles = 0;
|
|
254
|
+
for (const files of Object.values(codeFiles)) {
|
|
255
|
+
totalFiles += files.length;
|
|
256
|
+
}
|
|
257
|
+
console.log(` 扫描文件: ${totalFiles}`);
|
|
258
|
+
|
|
259
|
+
// 3. 生成覆盖报告
|
|
260
|
+
console.log('\n📊 生成覆盖报告...\n');
|
|
261
|
+
const report = generateCoverageReport(designSubsystems, codeFiles);
|
|
262
|
+
|
|
263
|
+
// 4. 输出报告
|
|
264
|
+
if (options.json) {
|
|
265
|
+
const output = JSON.stringify(report, null, 2);
|
|
266
|
+
if (options.output) {
|
|
267
|
+
fs.writeFileSync(options.output, output);
|
|
268
|
+
console.log(`✅ 报告已保存: ${options.output}`);
|
|
269
|
+
} else {
|
|
270
|
+
console.log(output);
|
|
271
|
+
}
|
|
272
|
+
} else {
|
|
273
|
+
console.log(`覆盖率: ${report.coverage}%`);
|
|
274
|
+
console.log(`已覆盖: ${report.covered}/${report.total}`);
|
|
275
|
+
|
|
276
|
+
if (report.uncovered.length > 0) {
|
|
277
|
+
console.log(`\n⚠️ 未覆盖的子系统:`);
|
|
278
|
+
for (const name of report.uncovered) {
|
|
279
|
+
console.log(` - ${name}`);
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
if (options.verbose) {
|
|
284
|
+
console.log('\n📝 详细情况:');
|
|
285
|
+
for (const detail of report.details) {
|
|
286
|
+
console.log(`\n${detail.subsystem}: ${detail.status}`);
|
|
287
|
+
if (detail.files.length > 0) {
|
|
288
|
+
for (const f of detail.files) {
|
|
289
|
+
console.log(` - ${f.file} (${f.category})`);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
if (options.output) {
|
|
296
|
+
fs.writeFileSync(options.output, JSON.stringify(report, null, 2));
|
|
297
|
+
console.log(`\n✅ 报告已保存: ${options.output}`);
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
process.exit(0);
|
|
302
|
+
|
|
303
|
+
} catch (error) {
|
|
304
|
+
console.error('\n❌ 检查失败:', error.message);
|
|
305
|
+
if (options.verbose) {
|
|
306
|
+
console.error(error.stack);
|
|
307
|
+
}
|
|
308
|
+
process.exit(1);
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
main().catch(error => {
|
|
313
|
+
console.error('未捕获的错误:', error);
|
|
314
|
+
process.exit(1);
|
|
315
|
+
});
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: project-evolve-verifier
|
|
3
|
+
description: "效果验证:验证修复效果,检测退化,计算质量分数变化"
|
|
4
|
+
type: verifier
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Project-Evolve Verifier
|
|
8
|
+
|
|
9
|
+
## 定位
|
|
10
|
+
|
|
11
|
+
效果验证技能,验证修复效果,检测退化,计算质量分数变化。
|
|
12
|
+
|
|
13
|
+
## 输入
|
|
14
|
+
|
|
15
|
+
- 修复记录(来自 fixer)
|
|
16
|
+
- 修复前基线指标
|
|
17
|
+
|
|
18
|
+
## 输出
|
|
19
|
+
|
|
20
|
+
- 验证结果:通过/失败
|
|
21
|
+
- 退化检测:是否发生退化
|
|
22
|
+
- 质量分数:修复前后对比
|
|
23
|
+
|
|
24
|
+
## 执行步骤
|
|
25
|
+
|
|
26
|
+
### Step 1: 基线对比
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
记录修复前:
|
|
30
|
+
1. 代码复杂度
|
|
31
|
+
2. 测试覆盖率
|
|
32
|
+
3. 构建时间
|
|
33
|
+
4. 代码行数
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Step 2: 修复验证
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
验证每个修复:
|
|
40
|
+
1. 运行测试
|
|
41
|
+
2. 检查构建
|
|
42
|
+
3. 验证功能
|
|
43
|
+
4. 记录结果
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
### Step 3: 退化检测
|
|
47
|
+
|
|
48
|
+
```
|
|
49
|
+
检测退化:
|
|
50
|
+
1. 对比修复前后指标
|
|
51
|
+
2. 检查测试是否通过
|
|
52
|
+
3. 验证性能影响
|
|
53
|
+
4. 标记异常
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Step 4: 回滚处理
|
|
57
|
+
|
|
58
|
+
```
|
|
59
|
+
如检测到退化:
|
|
60
|
+
1. 自动回滚修复
|
|
61
|
+
2. 记录退化原因
|
|
62
|
+
3. 生成警告报告
|
|
63
|
+
4. 标记需人工处理
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Step 5: 质量评分
|
|
67
|
+
|
|
68
|
+
```
|
|
69
|
+
计算质量分数:
|
|
70
|
+
1. 综合评分
|
|
71
|
+
2. 各维度评分
|
|
72
|
+
3. 分数变化
|
|
73
|
+
4. 趋势分析
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## 使用示例
|
|
77
|
+
|
|
78
|
+
```
|
|
79
|
+
# 执行效果验证
|
|
80
|
+
读取 plugins/skills/project-evolve-verifier/SKILL.md 并执行
|
|
81
|
+
|
|
82
|
+
# 输出
|
|
83
|
+
- 验证项: 15
|
|
84
|
+
- 通过: 14
|
|
85
|
+
- 失败: 1
|
|
86
|
+
- 退化: 无
|
|
87
|
+
- 质量分数: +5 (70→75)
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
## 验证维度
|
|
91
|
+
|
|
92
|
+
| 维度 | 验证内容 | 方法 |
|
|
93
|
+
|------|----------|------|
|
|
94
|
+
| 功能验证 | 代码功能正常 | 运行测试 |
|
|
95
|
+
| 质量验证 | 复杂度降低 | 静态分析 |
|
|
96
|
+
| 性能验证 | 运行无退化 | 性能测试 |
|
|
97
|
+
| 集成验证 | 构建成功 | CI 检查 |
|
|
98
|
+
|
|
99
|
+
## 与 self-evolve-verifier 的区别
|
|
100
|
+
|
|
101
|
+
| 特性 | self-evolve-verifier | project-evolve-verifier |
|
|
102
|
+
|------|----------------------|------------------------|
|
|
103
|
+
| 目标 | 验证框架修复 | 验证项目修复 |
|
|
104
|
+
| 验证对象 | 框架代码 | 用户项目 |
|
|
105
|
+
| 回滚机制 | 自动回滚 | 自动回滚 |
|
|
@@ -10,11 +10,45 @@ description: "When requirement analysis, user story writing, feature scoping, or
|
|
|
10
10
|
## 前置检查
|
|
11
11
|
|
|
12
12
|
1. 确认启动门禁已通过(`.autospec/runtime/state.json` 存在)
|
|
13
|
-
2. 读取
|
|
14
|
-
3. 加载创业团队角色画像:读取
|
|
15
|
-
4. 加载方法论原则:读取 `${KNOWLEDGE}/principles/
|
|
16
|
-
5. 加载设计哲学:读取 `${KNOWLEDGE}/principles/
|
|
17
|
-
6. 加载认知增强原则:读取 `${KNOWLEDGE}/principles/
|
|
13
|
+
2. 读取 `knowledge/01-principles/09-constitution.md` → 确认红线
|
|
14
|
+
3. 加载创业团队角色画像:读取 `.claude/agents/roles/` 目录下的角色文件
|
|
15
|
+
4. 加载方法论原则:读取 `${KNOWLEDGE}/principles/02-methodology-principles.md` → 注入 P1(问题定义先行)、P2(价值驱动)、P31(目标设定三原则) 等通用原则意识
|
|
16
|
+
5. 加载设计哲学:读取 `${KNOWLEDGE}/principles/01-first-principles.md` → 注入 DP17(结构化澄清) 和 DP16(模板即约束) 原则
|
|
17
|
+
6. 加载认知增强原则:读取 `${KNOWLEDGE}/principles/02-methodology-principles.md` → 本阶段重点应用 CP1(合伙人模式)、CP3(先问后做)、CP5(置信度标注)
|
|
18
|
+
|
|
19
|
+
## 阶段检查点(本阶段必须完成)
|
|
20
|
+
|
|
21
|
+
执行过程中请持续对照以下检查点,确保不遗漏:
|
|
22
|
+
|
|
23
|
+
**说明**:
|
|
24
|
+
- **检查点表**:快速验证产出是否存在/完成
|
|
25
|
+
- **检查清单(checklists/)**:详细验证产出质量是否达标
|
|
26
|
+
- 通过"检查清单核对完成"一项覆盖所有质量检查,避免重复
|
|
27
|
+
|
|
28
|
+
| 类别 | 检查项 | 必须完成 | 验证方式 |
|
|
29
|
+
|-----|-------|---------|---------|
|
|
30
|
+
| 流程 | 复杂度评估完成 | ✅ | 检查是否已输出复杂度分数和角色列表 |
|
|
31
|
+
| 流程 | 动态团队组建完成 | ✅ | 检查是否已根据复杂度确定参与角色 |
|
|
32
|
+
| 做类 | 需求分析Agent加载完成 | ✅ | 已加载 analyze-requirement skill |
|
|
33
|
+
| 做类 | 需求分析Agent正确执行 | ✅ | 已执行需求分析任务(背景/用例/功能点)并产出结果 |
|
|
34
|
+
| 做类 | 需求文档生成完成 | ✅ | 各Agent产出已汇总到 requirement.md |
|
|
35
|
+
| 流程 | 团队对抗审查执行(审类) | ✅ | 检查是否已调用 team-orchestrator 并汇总审查报告 |
|
|
36
|
+
| 流程 | independent-reviewer Agent 调用 | ✅ | Layer 2 审查必须调用 |
|
|
37
|
+
| 产出 | 检查清单核对完成 | ✅ | 已按 00-requirement.md 逐项核对并记录(质量检查) |
|
|
38
|
+
| 产出 | requirement.md 生成 | ✅ | 文件存在于 .autospec/specs/{feature}/ |
|
|
39
|
+
| 流程 | Benchmark 评测通过 | ✅ | REQ-001~003 全部通过 |
|
|
40
|
+
|
|
41
|
+
**阶段完成前自检**:
|
|
42
|
+
- [ ] 已完成复杂度评估(Step 1)
|
|
43
|
+
- [ ] 已组建动态团队(根据复杂度确定角色)
|
|
44
|
+
- [ ] 已加载需求分析Agent(analyze-requirement skill)
|
|
45
|
+
- [ ] 已执行需求分析任务(背景/用例/功能点)
|
|
46
|
+
- [ ] 需求文档已汇总到 requirement.md
|
|
47
|
+
- [ ] 已执行团队对抗审查(Step 2,调用 team-orchestrator)
|
|
48
|
+
- [ ] 已按检查清单(00-requirement.md)逐项核对(质量检查)
|
|
49
|
+
- [ ] 已调用 independent-reviewer(Layer 2)
|
|
50
|
+
- [ ] requirement.md 已生成(Step 4)
|
|
51
|
+
- [ ] Benchmark 评测已通过(Layer 3)
|
|
18
52
|
|
|
19
53
|
## 认知姿态(本阶段:发散 + 挑战)
|
|
20
54
|
|
|
@@ -28,11 +62,11 @@ description: "When requirement analysis, user story writing, feature scoping, or
|
|
|
28
62
|
|
|
29
63
|
在进入具体需求分析前,先评估任务复杂度,确定参与角色:
|
|
30
64
|
|
|
31
|
-
**【强制】** 读取 `${KNOWLEDGE}/guides/
|
|
65
|
+
**【强制】** 读取 `${KNOWLEDGE}/03-guides/24-assess-complexity.md`,执行复杂度评估:
|
|
32
66
|
- 评估维度:需求复杂度、技术复杂度、数据敏感度、业务复杂度
|
|
33
67
|
- 输出:复杂度分数、级别(simple/medium/complex)、需要的角色列表
|
|
34
68
|
|
|
35
|
-
**【强制】** 读取 `${KNOWLEDGE}/config/team-
|
|
69
|
+
**【强制】** 读取 `${KNOWLEDGE}/05-config/01-team-stage.yaml`,检查强制触发规则(mandatoryTriggers):
|
|
36
70
|
- 涉及用户数据 → 强制引入 security-engineer
|
|
37
71
|
- 涉及支付/金融 → 强制引入 security-engineer
|
|
38
72
|
- 跨系统变更 → 强制引入 tech-lead + devops-engineer
|
|
@@ -59,7 +93,7 @@ description: "When requirement analysis, user story writing, feature scoping, or
|
|
|
59
93
|
|
|
60
94
|
**自主模式 — 多Agent并行对抗**:
|
|
61
95
|
```
|
|
62
|
-
**【强制】** 读取 `${KNOWLEDGE}/guides/
|
|
96
|
+
**【强制】** 读取 `${KNOWLEDGE}/03-guides/01-team-orchestrator.md`
|
|
63
97
|
并行启动角色Agent(信息隔离,做审分离):
|
|
64
98
|
- CEO Agent:战略一致性、商业价值、风险把控
|
|
65
99
|
- 产品负责人 Agent:用户价值、产品方向、MVP范围
|
|
@@ -104,9 +138,9 @@ description: "When requirement analysis, user story writing, feature scoping, or
|
|
|
104
138
|
|
|
105
139
|
### Step 4: 需求文档生成
|
|
106
140
|
|
|
107
|
-
1. **【强制】** 加载做类skill:读取 `${KNOWLEDGE}/guides/
|
|
108
|
-
2. 加载检查清单:读取
|
|
109
|
-
3. 加载元学习方法:读取 `${KNOWLEDGE}/principles/
|
|
141
|
+
1. **【强制】** 加载做类skill:读取 `${KNOWLEDGE}/03-guides/02-analyze-requirement.md` → **按步骤执行**
|
|
142
|
+
2. 加载检查清单:读取 `knowledge/04-checklists/00-requirement.md` → 逐项核对
|
|
143
|
+
3. 加载元学习方法:读取 `${KNOWLEDGE}/principles/02-methodology-principles.md` → 应用"三层知识漏斗"(原料→认知→执行)确保需求从模糊想法转化为可执行结构
|
|
110
144
|
4. 将团队对抗结论融入需求文档(战略背景、商业价值、成功指标)
|
|
111
145
|
5. 将澄清结果融入需求文档(每个决策标注来源:用户确认/自动决策/待审阅)
|
|
112
146
|
6. **【强制】** 补充边界条件分析:
|
|
@@ -127,7 +161,7 @@ description: "When requirement analysis, user story writing, feature scoping, or
|
|
|
127
161
|
```
|
|
128
162
|
**【强制】** 调用 Agent 工具:
|
|
129
163
|
prompt: 请审查以下需求文档。
|
|
130
|
-
1. 先读取审查标准: ${KNOWLEDGE}/guides/
|
|
164
|
+
1. 先读取审查标准: ${KNOWLEDGE}/03-guides/09-review-requirement.md
|
|
131
165
|
2. 被审查文档: .autospec/specs/{feature}/requirement.md
|
|
132
166
|
3. 原始需求(用于对照)
|
|
133
167
|
注意:你是独立审查者,只看产出物和标准,不参考生产过程
|
|
@@ -165,7 +199,7 @@ description: "When requirement analysis, user story writing, feature scoping, or
|
|
|
165
199
|
prompt: 请评估需求分析阶段的产出物是否达到准出标准。
|
|
166
200
|
当前阶段:Stage 01 需求分析
|
|
167
201
|
产出物:.autospec/specs/{feature}/requirement.md
|
|
168
|
-
|
|
202
|
+
准出标准:knowledge/04-checklists/00-requirement.md
|
|
169
203
|
上游契约:原始需求
|
|
170
204
|
自主级别:{自主/交互}
|
|
171
205
|
```
|
|
@@ -155,7 +155,7 @@ Layer 1 不过,不进 Layer 2。
|
|
|
155
155
|
- Layer 1+2 通过 → 自动发布
|
|
156
156
|
- 记录到 evolution-log.json
|
|
157
157
|
|
|
158
|
-
**受控区 skills**(skills/
|
|
158
|
+
**受控区 skills**(skills/requirement-stage/, skills/design-stage/等):
|
|
159
159
|
- 生成变更提案
|
|
160
160
|
- 提交人工审批
|
|
161
161
|
- 审批通过后发布
|
|
@@ -190,7 +190,7 @@ Layer 1 不过,不进 Layer 2。
|
|
|
190
190
|
|
|
191
191
|
```
|
|
192
192
|
触发:practice-log 记录了 5 次"需求冲突检测"模式
|
|
193
|
-
锻造:蒸馏为 skills/
|
|
193
|
+
锻造:蒸馏为 skills/requirement-stage/req-conflict-detector.md
|
|
194
194
|
验证:通过基准案例测试
|
|
195
195
|
发布:受控区变更提案,人工审批后合入
|
|
196
196
|
```
|