soloforge 1.1.47 → 1.1.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -7
- package/dist/cli/adapter_writers.d.ts +5 -0
- package/dist/cli/adapter_writers.d.ts.map +1 -1
- package/dist/cli/adapter_writers.js +25 -0
- package/dist/cli/adapter_writers.js.map +1 -1
- package/dist/cli/init.d.ts.map +1 -1
- package/dist/cli/init.js +3 -1
- package/dist/cli/init.js.map +1 -1
- package/dist/cli/scope_check.d.ts +4 -0
- package/dist/cli/scope_check.d.ts.map +1 -0
- package/dist/cli/scope_check.js +41 -0
- package/dist/cli/scope_check.js.map +1 -0
- package/dist/context/adapters/claude_code/hooks.d.ts +5 -7
- package/dist/context/adapters/claude_code/hooks.d.ts.map +1 -1
- package/dist/context/adapters/claude_code/hooks.js +11 -9
- package/dist/context/adapters/claude_code/hooks.js.map +1 -1
- package/dist/context/adapters/shared/integration_guide.js +15 -5
- package/dist/context/adapters/shared/integration_guide.js.map +1 -1
- package/dist/context/adapters/shared/workflow_template.js +1 -1
- package/dist/context/config/intent_schema.d.ts +793 -6
- package/dist/context/config/intent_schema.d.ts.map +1 -1
- package/dist/context/config/intent_schema.js +9 -0
- package/dist/context/config/intent_schema.js.map +1 -1
- package/dist/context/config/resolver.d.ts +9 -0
- package/dist/context/config/resolver.d.ts.map +1 -1
- package/dist/context/config/resolver.js +5 -0
- package/dist/context/config/resolver.js.map +1 -1
- package/dist/core/adversarial_review_store.d.ts +133 -0
- package/dist/core/adversarial_review_store.d.ts.map +1 -0
- package/dist/core/adversarial_review_store.js +161 -0
- package/dist/core/adversarial_review_store.js.map +1 -0
- package/dist/core/domain_transition.d.ts.map +1 -1
- package/dist/core/domain_transition.js +3 -0
- package/dist/core/domain_transition.js.map +1 -1
- package/dist/core/gate_record_store.d.ts +2 -0
- package/dist/core/gate_record_store.d.ts.map +1 -1
- package/dist/core/gate_record_store.js +8 -0
- package/dist/core/gate_record_store.js.map +1 -1
- package/dist/core/git_utils.d.ts +1 -1
- package/dist/core/git_utils.js +1 -1
- package/dist/core/observer.d.ts.map +1 -1
- package/dist/core/observer.js +26 -2
- package/dist/core/observer.js.map +1 -1
- package/dist/core/task_context/constants.js +1 -1
- package/dist/core/task_context/constants.js.map +1 -1
- package/dist/core/task_context/manager.d.ts +4 -0
- package/dist/core/task_context/manager.d.ts.map +1 -1
- package/dist/core/task_context/manager.js +48 -30
- package/dist/core/task_context/manager.js.map +1 -1
- package/dist/core/task_context/manager_setters.d.ts +2 -0
- package/dist/core/task_context/manager_setters.d.ts.map +1 -1
- package/dist/core/task_context/manager_setters.js +10 -0
- package/dist/core/task_context/manager_setters.js.map +1 -1
- package/dist/core/types.d.ts +19 -0
- package/dist/core/types.d.ts.map +1 -1
- package/dist/domain/asset_registry/derived_types.d.ts +17 -0
- package/dist/domain/asset_registry/derived_types.d.ts.map +1 -1
- package/dist/domain/build/engine.d.ts +1 -0
- package/dist/domain/build/engine.d.ts.map +1 -1
- package/dist/domain/build/engine.js +34 -4
- package/dist/domain/build/engine.js.map +1 -1
- package/dist/domain/contracts/design_lifecycle_contract.d.ts.map +1 -1
- package/dist/domain/contracts/design_lifecycle_contract.js +11 -4
- package/dist/domain/contracts/design_lifecycle_contract.js.map +1 -1
- package/dist/domain/design/contract.d.ts.map +1 -1
- package/dist/domain/design/contract.js +11 -0
- package/dist/domain/design/contract.js.map +1 -1
- package/dist/domain/design/engine.d.ts +1 -0
- package/dist/domain/design/engine.d.ts.map +1 -1
- package/dist/domain/design/engine.js +35 -3
- package/dist/domain/design/engine.js.map +1 -1
- package/dist/domain/engine_helpers.d.ts +37 -0
- package/dist/domain/engine_helpers.d.ts.map +1 -1
- package/dist/domain/engine_helpers.js +86 -0
- package/dist/domain/engine_helpers.js.map +1 -1
- package/dist/domain/operate/engine.d.ts +1 -0
- package/dist/domain/operate/engine.d.ts.map +1 -1
- package/dist/domain/operate/engine.js +19 -2
- package/dist/domain/operate/engine.js.map +1 -1
- package/dist/domain/types.d.ts +6 -0
- package/dist/domain/types.d.ts.map +1 -1
- package/dist/domain/types.js.map +1 -1
- package/dist/domain/verify/engine.d.ts +1 -0
- package/dist/domain/verify/engine.d.ts.map +1 -1
- package/dist/domain/verify/engine.js +18 -1
- package/dist/domain/verify/engine.js.map +1 -1
- package/dist/gate/contracts/tool_actions.d.ts +2 -2
- package/dist/gate/contracts/tool_actions.d.ts.map +1 -1
- package/dist/gate/contracts/tool_actions.js +2 -2
- package/dist/gate/contracts/tool_actions.js.map +1 -1
- package/dist/gate/contracts/tool_invocation_contract_registry.js +1 -1
- package/dist/gate/contracts/tool_invocation_contract_registry.js.map +1 -1
- package/dist/gate/executors/executors_artifact.d.ts +19 -0
- package/dist/gate/executors/executors_artifact.d.ts.map +1 -1
- package/dist/gate/executors/executors_artifact.js +100 -3
- package/dist/gate/executors/executors_artifact.js.map +1 -1
- package/dist/gate/executors/executors_build.d.ts.map +1 -1
- package/dist/gate/executors/executors_build.js +17 -15
- package/dist/gate/executors/executors_build.js.map +1 -1
- package/dist/gate/executors/executors_external_command.d.ts.map +1 -1
- package/dist/gate/executors/executors_external_command.js +32 -0
- package/dist/gate/executors/executors_external_command.js.map +1 -1
- package/dist/gate/executors/executors_field_mapping.d.ts +7 -0
- package/dist/gate/executors/executors_field_mapping.d.ts.map +1 -0
- package/dist/gate/executors/executors_field_mapping.js +179 -0
- package/dist/gate/executors/executors_field_mapping.js.map +1 -0
- package/dist/gate/executors/executors_prerequisite.js +1 -1
- package/dist/gate/executors/executors_regex_scan.d.ts.map +1 -1
- package/dist/gate/executors/executors_regex_scan.js +34 -13
- package/dist/gate/executors/executors_regex_scan.js.map +1 -1
- package/dist/gate/executors/executors_scope.js +4 -4
- package/dist/gate/executors/executors_scope.js.map +1 -1
- package/dist/gate/executors/executors_trace.d.ts +5 -0
- package/dist/gate/executors/executors_trace.d.ts.map +1 -1
- package/dist/gate/executors/executors_trace.js +184 -3
- package/dist/gate/executors/executors_trace.js.map +1 -1
- package/dist/gate/executors/index.d.ts.map +1 -1
- package/dist/gate/executors/index.js +2 -0
- package/dist/gate/executors/index.js.map +1 -1
- package/dist/gate/gate_engine.d.ts +9 -0
- package/dist/gate/gate_engine.d.ts.map +1 -1
- package/dist/gate/gate_engine.js +15 -0
- package/dist/gate/gate_engine.js.map +1 -1
- package/dist/gate/gate_registry_bridge.d.ts +2 -2
- package/dist/gate/gate_registry_bridge.d.ts.map +1 -1
- package/dist/gate/gate_registry_bridge.js +6 -3
- package/dist/gate/gate_registry_bridge.js.map +1 -1
- package/dist/gate/middleware_gates.js +1 -1
- package/dist/gate/middleware_gates.js.map +1 -1
- package/dist/gate/scope_resolver.d.ts +7 -0
- package/dist/gate/scope_resolver.d.ts.map +1 -1
- package/dist/gate/scope_resolver.js +1 -1
- package/dist/gate/scope_resolver.js.map +1 -1
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/server/tools/sf_doctor.d.ts +1 -0
- package/dist/server/tools/sf_doctor.d.ts.map +1 -1
- package/dist/server/tools/sf_doctor.js +20 -0
- package/dist/server/tools/sf_doctor.js.map +1 -1
- package/dist/server/tools/sf_task.d.ts +83 -0
- package/dist/server/tools/sf_task.d.ts.map +1 -1
- package/dist/server/tools/sf_task.js +121 -4
- package/dist/server/tools/sf_task.js.map +1 -1
- package/dist/server/tools/sf_work.d.ts +203 -0
- package/dist/server/tools/sf_work.d.ts.map +1 -1
- package/dist/server/tools/sf_work.js +531 -40
- package/dist/server/tools/sf_work.js.map +1 -1
- package/dist/shared/traceability_id_utils.js +3 -3
- package/dist/shared/traceability_id_utils.js.map +1 -1
- package/dist/verify/contracts/decision_workshop.d.ts.map +1 -1
- package/dist/verify/contracts/decision_workshop.js +4 -3
- package/dist/verify/contracts/decision_workshop.js.map +1 -1
- package/package.json +1 -1
- package/templates/build/enforced.md +243 -56
- package/templates/build//346/263/250/351/207/212/347/272/252/345/276/213.md +48 -0
- package/templates/build//346/265/213/350/257/225/350/256/241/345/210/222.md +9 -4
- package/templates/build//347/274/226/347/240/201/347/272/252/345/276/213.md +26 -0
- package/templates/design/API/346/216/245/345/217/243/350/247/204/346/240/274/346/226/207/346/241/243.md +7 -0
- package/templates/design/enforced.md +204 -14
- package/templates/design//345/205/250/347/224/237/345/221/275/345/221/250/346/234/237/345/267/245/344/275/234/346/265/201/345/257/274/350/210/252.md +4 -2
- package/templates/design//345/210/207/347/211/207/350/247/204/345/210/222.md +2 -0
- package/templates/design//345/274/200/345/217/221/345/210/207/347/211/207/350/256/241/345/210/222.md +75 -0
- package/templates/design//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/346/226/207/346/241/243.md +2 -0
- package/templates/design//346/236/266/346/236/204/350/256/276/350/256/241.md +24 -0
- package/templates/design//350/256/276/350/256/241/345/206/263/347/255/226/347/272/252/345/276/213.md +58 -0
- package/templates/design//350/256/276/350/256/241/350/264/250/351/207/217/350/246/201/347/202/271.md +58 -0
- package/templates/design//351/234/200/346/261/202/345/210/206/346/236/220.md +24 -0
- package/templates/operate/UI/350/247/206/350/247/211/351/252/214/346/224/266/347/272/252/345/276/213.md +74 -0
- package/templates/operate/enforced.md +42 -6
- package/templates/operate//345/217/221/345/270/203/350/257/264/346/230/216.md +19 -1
- package/templates/operate//351/203/250/347/275/262/351/205/215/347/275/256.md +10 -0
- package/templates/shared/enforced.md +37 -0
- package/templates/shared//345/267/245/344/275/234/346/265/201/345/257/274/350/210/252/345/245/221/347/272/246.md +1 -1
- package/templates/shared//347/240/224/350/256/250/350/256/260/345/275/225.md +54 -0
- package/templates/verify/enforced.md +84 -263
- package/templates/verify//344/272/244/344/273/230/345/256/214/345/244/207/346/200/247/345/256/241/346/237/245.md +1 -0
- package/templates/verify//344/273/243/347/240/201/345/256/241/346/237/245/346/212/245/345/221/212.md +10 -0
- package/templates/verify//346/236/266/346/236/204/350/257/255/344/271/211/347/272/242/347/272/277.md +60 -0
- package/dist/core/scope_checker.d.ts +0 -29
- package/dist/core/scope_checker.d.ts.map +0 -1
- package/dist/core/scope_checker.js +0 -53
- package/dist/core/scope_checker.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/domain/build/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/domain/build/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAevD,YAAY;AACZ,qBAAa,WAAY,YAAW,aAAa;IAO7C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,wCAAwC;IACxC,IAAI,QAAQ,IAAI,cAAc,CAE7B;gBAGkB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM;IAGhC,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAIjD,GAAG,CACP,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,CAAC;IA2Cf,UAAU,CACd,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,CAAC;CAsBtB"}
|
|
@@ -12,7 +12,9 @@
|
|
|
12
12
|
* 持久化:无(act 只组装 prompt)
|
|
13
13
|
*/
|
|
14
14
|
import { buildContract } from "./contract.js";
|
|
15
|
-
import {
|
|
15
|
+
import { designContract } from "../design/contract.js";
|
|
16
|
+
import { loadArtifactTemplate, formatUpstream, buildArtifactPrompt, buildDeliberationPrompt, deliberationRecordPath, deliberationRecordDir, getExtendedContract, resolveBuildScope, } from "../engine_helpers.js";
|
|
17
|
+
import { resolveConfig } from "../../context/config/resolver.js";
|
|
16
18
|
/** 构建域引擎 */
|
|
17
19
|
export class BuildEngine {
|
|
18
20
|
observer;
|
|
@@ -40,13 +42,41 @@ export class BuildEngine {
|
|
|
40
42
|
templateContent,
|
|
41
43
|
upstreamSection: formatUpstream(upstream),
|
|
42
44
|
guidanceSection,
|
|
43
|
-
},
|
|
45
|
+
}, `按照设计文档实现代码。多工程项目按架构 §6.3 端清单 + intent projects 的工程目录(backend/src/ client-portal/src/ 等)写代码,首个切片先建工程骨架(每工程 src/ + 独立 .gitignore + 构建配置)。确保通过「${artifact.gate}」门禁检查(编译 + 测试 + 无偷懒模式)。\n所有注释和日志使用中文。禁止 TODO/FIXME 占位。`, feedback);
|
|
46
|
+
const config = await resolveConfig(this.projectRoot);
|
|
44
47
|
return {
|
|
45
48
|
prompt,
|
|
46
49
|
template: artifact.template,
|
|
47
50
|
scope: {
|
|
48
|
-
|
|
49
|
-
|
|
51
|
+
// allowed 白名单:build 编码范围 + design「按需编码契约」产物(动态从 design contract 派生,单一源)。
|
|
52
|
+
// 取 design contract required:false 产物(api_specification/database_design 等)的 path_pattern + companion_files;
|
|
53
|
+
// 动态派生——design contract 改路径/加按需产物/用户 .soloforge/knowledge 扩展,build 自动跟,无硬编码漂移。
|
|
54
|
+
allowed_paths: [
|
|
55
|
+
...resolveBuildScope(this.projectRoot, config),
|
|
56
|
+
...getExtendedContract(designContract, this.projectRoot).produces
|
|
57
|
+
.filter((p) => !p.required)
|
|
58
|
+
.flatMap((p) => [p.path_pattern, ...(p.companion_files ?? [])]),
|
|
59
|
+
],
|
|
60
|
+
// 去掉原 ["docs/"]:改由 allowed 白名单精准控制(checkScope read_only 优先 allowed,原 docs/ 会先拦 api_spec)。
|
|
61
|
+
// design 核心决策(required:true:架构/需求/切片)+ 研讨记录不在白名单 → deny,build 不能碰(须切回 design 域 act)。
|
|
62
|
+
read_only_paths: [],
|
|
63
|
+
},
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
async deliberate(task, target, upstream) {
|
|
67
|
+
const artifact = this.contract.produces.find((a) => a.kind === target);
|
|
68
|
+
if (!artifact) {
|
|
69
|
+
throw new Error(`构建域无 "${target}" 产物。可用:${this.contract.produces.map((a) => a.kind).join(", ")}`);
|
|
70
|
+
}
|
|
71
|
+
const templateContent = loadArtifactTemplate(this.projectRoot, this.contract.name, "研讨记录.md");
|
|
72
|
+
const recordPath = deliberationRecordPath(this.contract.name, artifact);
|
|
73
|
+
const prompt = buildDeliberationPrompt(task.intent, artifact, { templateContent, upstreamSection: formatUpstream(upstream) }, recordPath);
|
|
74
|
+
return {
|
|
75
|
+
prompt,
|
|
76
|
+
template: "研讨记录.md",
|
|
77
|
+
scope: {
|
|
78
|
+
allowed_paths: [deliberationRecordDir(this.contract.name)],
|
|
79
|
+
read_only_paths: ["src/", "config/"],
|
|
50
80
|
},
|
|
51
81
|
};
|
|
52
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/build/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/build/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,uBAAuB,EACvB,sBAAsB,EACtB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,GAClB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAEjE,YAAY;AACZ,MAAM,OAAO,WAAW;IAOH;IACA;IAPnB,wCAAwC;IACxC,IAAI,QAAQ;QACV,OAAO,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC9D,CAAC;IAED,YACmB,QAAkB,EAClB,WAAmB;QADnB,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAQ;IACnC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,IAAiB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAAiB,EACjB,MAAc,EACd,QAAgC,EAChC,QAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtG,MAAM,eAAe,GAAG,EAAE,CAAC,CAAC,wCAAwC;QAEpE,8BAA8B;QAC9B,MAAM,MAAM,GAAG,mBAAmB,CAChC,IAAI,CAAC,MAAM,EACX,QAAQ,EACR;YACE,eAAe;YACf,eAAe,EAAE,cAAc,CAAC,QAAQ,CAAC;YACzC,eAAe;SAChB,EACD,+IAA+I,QAAQ,CAAC,IAAI,wDAAwD,EACpN,QAAQ,CACT,CAAC;QAEF,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,KAAK,EAAE;gBACL,yEAAyE;gBACzE,4GAA4G;gBAC5G,+EAA+E;gBAC/E,aAAa,EAAE;oBACb,GAAG,iBAAiB,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC;oBAC9C,GAAG,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,QAAQ;yBAC9D,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;yBAC1B,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC,CAAC,eAAe,IAAI,EAAE,CAAC,CAAC,CAAC;iBAClE;gBACD,0FAA0F;gBAC1F,qFAAqF;gBACrF,eAAe,EAAE,EAAE;aACpB;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CACd,IAAiB,EACjB,MAAc,EACd,QAAgC;QAEhC,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;QACD,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QAC9F,MAAM,UAAU,GAAG,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;QACxE,MAAM,MAAM,GAAG,uBAAuB,CACpC,IAAI,CAAC,MAAM,EACX,QAAQ,EACR,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,CAAC,QAAQ,CAAC,EAAE,EAC9D,UAAU,CACX,CAAC;QACF,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,SAAS;YACnB,KAAK,EAAE;gBACL,aAAa,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC1D,eAAe,EAAE,CAAC,MAAM,EAAE,SAAS,CAAC;aACrC;SACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design_lifecycle_contract.d.ts","sourceRoot":"","sources":["../../../src/domain/contracts/design_lifecycle_contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,sBAAsB,GAC5B,qBAAqB,GACrB,sBAAsB,GACtB,qBAAqB,GACrB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,SAAS,GACT,YAAY,GACZ,UAAU,CAAC;AAEjB,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAElF,MAAM,WAAW,yBAAyB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;IACxD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,4BAA4B;IACzC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACrC,WAAW,EAAE,yBAAyB,EAAE,CAAC;IACzC,KAAK,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,8BAA8B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,GAAG,UAAU,CAAC;IACnC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B,EAAE,MAAM,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB;AAGD,eAAO,MAAM,gCAAgC,iEAAmC,CAAC;AAEjF,eAAO,MAAM,0BAA0B,2PAU7B,CAAC;
|
|
1
|
+
{"version":3,"file":"design_lifecycle_contract.d.ts","sourceRoot":"","sources":["../../../src/domain/contracts/design_lifecycle_contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,MAAM,sBAAsB,GAC5B,qBAAqB,GACrB,sBAAsB,GACtB,qBAAqB,GACrB,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,SAAS,GACT,YAAY,GACZ,UAAU,CAAC;AAEjB,MAAM,MAAM,qBAAqB,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,GAAG,UAAU,CAAC;AAElF,MAAM,WAAW,yBAAyB;IACtC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,qBAAqB,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IAClC,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,gBAAgB,GAAG,SAAS,GAAG,SAAS,GAAG,KAAK,CAAC;IACxD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,4BAA4B;IACzC,QAAQ,EAAE,sBAAsB,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,OAAO,EAAE,yBAAyB,EAAE,CAAC;IACrC,WAAW,EAAE,yBAAyB,EAAE,CAAC;IACzC,KAAK,EAAE,qBAAqB,EAAE,CAAC;CAClC;AAED,MAAM,WAAW,8BAA8B;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,WAAW,GAAG,UAAU,CAAC;IACnC,QAAQ,CAAC,EAAE,sBAAsB,CAAC;IAClC,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,4BAA4B;IACzC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,+BAA+B,EAAE,MAAM,CAAC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,EAAE,CAAC;CACvB;AAGD,eAAO,MAAM,gCAAgC,iEAAmC,CAAC;AAEjF,eAAO,MAAM,0BAA0B,2PAU7B,CAAC;AA2UX,wBAAgB,iCAAiC,IAAI,4BAA4B,EAAE,CAQlF;AAED,wBAAgB,+BAA+B,CAAC,OAAO,EAAE,sBAAsB,GAAG,4BAA4B,CAU7G;AAQD,wBAAgB,+BAA+B,IAAI,4BAA4B,CAwB9E;AAED,wBAAgB,+BAA+B,IAAI,8BAA8B,EAAE,CAqFlF"}
|
|
@@ -54,6 +54,13 @@ const LIFECYCLE_STAGES = [
|
|
|
54
54
|
required_evidence: ["需求条目已分配 REQ-* 编号"],
|
|
55
55
|
recovery_command: "sf_doctor",
|
|
56
56
|
},
|
|
57
|
+
{
|
|
58
|
+
id: "system_form_gate",
|
|
59
|
+
owner: "sf_work",
|
|
60
|
+
blocks: ["涉及前端但需求 §9 系统形态未研讨确认仍生成架构"],
|
|
61
|
+
required_evidence: ["需求 §9 系统形态已研讨(涉及前端时须有研讨记录)"],
|
|
62
|
+
recovery_command: "sf_work",
|
|
63
|
+
},
|
|
57
64
|
],
|
|
58
65
|
},
|
|
59
66
|
{
|
|
@@ -240,8 +247,8 @@ const LIFECYCLE_STAGES = [
|
|
|
240
247
|
{
|
|
241
248
|
id: "implementation_binding_gate",
|
|
242
249
|
owner: "sf_work",
|
|
243
|
-
blocks: ["业务代码变更缺少 PHASE-*、SLICE-*、DD-*、AC-* 绑定"],
|
|
244
|
-
required_evidence: ["TaskContext 或意图中绑定 PHASE/SLICE/DD/AC", "changed_files 完整"],
|
|
250
|
+
blocks: ["业务代码变更缺少 PHASE-*、SLICE-*、DD-*、AC-*、FE-* 绑定"],
|
|
251
|
+
required_evidence: ["TaskContext 或意图中绑定 PHASE/SLICE/DD/AC/FE", "changed_files 完整"],
|
|
245
252
|
recovery_command: "sf_work",
|
|
246
253
|
},
|
|
247
254
|
],
|
|
@@ -460,12 +467,12 @@ export function validateDesignLifecycleContract() {
|
|
|
460
467
|
}
|
|
461
468
|
const implementation = getDesignLifecycleStageContract("implementation");
|
|
462
469
|
const implementationGate = implementation.gates.find((gate) => gate.id === "implementation_binding_gate");
|
|
463
|
-
if (!implementationGate || !implementationGate.required_evidence.some((evidence) => evidence.includes("PHASE/SLICE/DD/AC"))) {
|
|
470
|
+
if (!implementationGate || !implementationGate.required_evidence.some((evidence) => evidence.includes("PHASE/SLICE/DD/AC/FE"))) {
|
|
464
471
|
findings.push({
|
|
465
472
|
code: "DESIGN_LIFECYCLE_IMPLEMENTATION_BINDING_MISSING",
|
|
466
473
|
severity: "hard_fail",
|
|
467
474
|
stage_id: "implementation",
|
|
468
|
-
message_zh: "实现阶段缺少 PHASE/SLICE/DD/AC 绑定证据要求",
|
|
475
|
+
message_zh: "实现阶段缺少 PHASE/SLICE/DD/AC/FE 绑定证据要求",
|
|
469
476
|
});
|
|
470
477
|
}
|
|
471
478
|
const testing = getDesignLifecycleStageContract("testing");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"design_lifecycle_contract.js","sourceRoot":"","sources":["../../../src/domain/contracts/design_lifecycle_contract.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"design_lifecycle_contract.js","sourceRoot":"","sources":["../../../src/domain/contracts/design_lifecycle_contract.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/domain/design/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY;AACZ,eAAO,MAAM,cAAc,EAAE,
|
|
1
|
+
{"version":3,"file":"contract.d.ts","sourceRoot":"","sources":["../../../src/domain/design/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAE1D,YAAY;AACZ,eAAO,MAAM,cAAc,EAAE,cA8C5B,CAAC"}
|
|
@@ -29,6 +29,7 @@ export const designContract = {
|
|
|
29
29
|
required: true,
|
|
30
30
|
gate: "design-gate",
|
|
31
31
|
template: "架构设计.md",
|
|
32
|
+
references: ["docs/architecture/00-架构决策记录.md"],
|
|
32
33
|
},
|
|
33
34
|
{
|
|
34
35
|
kind: "database_design",
|
|
@@ -36,6 +37,7 @@ export const designContract = {
|
|
|
36
37
|
required: false,
|
|
37
38
|
gate: "design-gate",
|
|
38
39
|
template: "数据库设计文档.md",
|
|
40
|
+
companion_files: ["docs/design/schema.sql"],
|
|
39
41
|
},
|
|
40
42
|
{
|
|
41
43
|
kind: "api_specification",
|
|
@@ -43,6 +45,15 @@ export const designContract = {
|
|
|
43
45
|
required: false,
|
|
44
46
|
gate: "design-gate",
|
|
45
47
|
template: "API接口规格文档.md",
|
|
48
|
+
companion_files: ["docs/api/openapi.yaml"],
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
kind: "slice_plan",
|
|
52
|
+
path_pattern: "docs/architecture/02-开发切片计划.md",
|
|
53
|
+
required: true,
|
|
54
|
+
gate: "design-gate",
|
|
55
|
+
template: "开发切片计划.md",
|
|
56
|
+
depends_on: ["database_design", "api_specification"],
|
|
46
57
|
},
|
|
47
58
|
],
|
|
48
59
|
requires_upstream: [],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/domain/design/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,YAAY;AACZ,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,sBAAsB;YAC5B,YAAY,EAAE,sBAAsB;YACpC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,gCAAgC;YAC9C,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,SAAS;
|
|
1
|
+
{"version":3,"file":"contract.js","sourceRoot":"","sources":["../../../src/domain/design/contract.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAIH,YAAY;AACZ,MAAM,CAAC,MAAM,cAAc,GAAmB;IAC5C,IAAI,EAAE,QAAQ;IACd,WAAW,EAAE,UAAU;IACvB,QAAQ,EAAE;QACR;YACE,IAAI,EAAE,sBAAsB;YAC5B,YAAY,EAAE,sBAAsB;YACpC,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,SAAS;SACpB;QACD;YACE,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,gCAAgC;YAC9C,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,SAAS;YACnB,UAAU,EAAE,CAAC,gCAAgC,CAAC;SAC/C;QACD;YACE,IAAI,EAAE,iBAAiB;YACvB,YAAY,EAAE,2BAA2B;YACzC,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,YAAY;YACtB,eAAe,EAAE,CAAC,wBAAwB,CAAC;SAC5C;QACD;YACE,IAAI,EAAE,mBAAmB;YACzB,YAAY,EAAE,6BAA6B;YAC3C,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,cAAc;YACxB,eAAe,EAAE,CAAC,uBAAuB,CAAC;SAC3C;QACD;YACE,IAAI,EAAE,YAAY;YAClB,YAAY,EAAE,gCAAgC;YAC9C,QAAQ,EAAE,IAAI;YACd,IAAI,EAAE,aAAa;YACnB,QAAQ,EAAE,WAAW;YACrB,UAAU,EAAE,CAAC,iBAAiB,EAAE,mBAAmB,CAAC;SACrD;KACF;IACD,iBAAiB,EAAE,EAAE;IACrB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;CACvE,CAAC"}
|
|
@@ -24,6 +24,7 @@ export declare class DesignEngine implements IDomainEngine {
|
|
|
24
24
|
constructor(observer: Observer, projectRoot: string);
|
|
25
25
|
observe(task: TaskContext): Promise<DerivedState>;
|
|
26
26
|
act(task: TaskContext, target: string, upstream: Record<string, string>, feedback?: string): Promise<ActResult>;
|
|
27
|
+
deliberate(task: TaskContext, target: string, upstream: Record<string, string>): Promise<ActResult>;
|
|
27
28
|
/** 允许写入路径 */
|
|
28
29
|
private buildAllowedPaths;
|
|
29
30
|
/** 只读路径 */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/domain/design/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/domain/design/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAYvD,YAAY;AACZ,qBAAa,YAAa,YAAW,aAAa;IAO9C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,wFAAwF;IACxF,IAAI,QAAQ,IAAI,cAAc,CAE7B;gBAGkB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM;IAGhC,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAIjD,GAAG,CACP,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,CAAC;IAsCf,UAAU,CACd,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,CAAC;IAmCrB,aAAa;IACb,OAAO,CAAC,iBAAiB;IAWzB,WAAW;IACX,OAAO,CAAC,kBAAkB;CAG3B"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* 持久化:无(act 只组装 prompt)
|
|
13
13
|
*/
|
|
14
14
|
import { designContract } from "./contract.js";
|
|
15
|
-
import { loadArtifactTemplate, formatUpstream, buildArtifactPrompt, getExtendedContract, } from "../engine_helpers.js";
|
|
15
|
+
import { loadArtifactTemplate, formatUpstream, buildArtifactPrompt, buildDeliberationPrompt, deliberationRecordPath, deliberationRecordDir, getExtendedContract, } from "../engine_helpers.js";
|
|
16
16
|
/** 设计域引擎 */
|
|
17
17
|
export class DesignEngine {
|
|
18
18
|
observer;
|
|
@@ -55,12 +55,44 @@ export class DesignEngine {
|
|
|
55
55
|
},
|
|
56
56
|
};
|
|
57
57
|
}
|
|
58
|
+
async deliberate(task, target, upstream) {
|
|
59
|
+
const artifact = this.contract.produces.find((a) => a.kind === target);
|
|
60
|
+
if (!artifact) {
|
|
61
|
+
throw new Error(`设计域无 "${target}" 产物。可用:${this.contract.produces.map((a) => a.kind).join(", ")}`);
|
|
62
|
+
}
|
|
63
|
+
const templateContent = loadArtifactTemplate(this.projectRoot, this.contract.name, "研讨记录.md");
|
|
64
|
+
const recordPath = deliberationRecordPath(this.contract.name, artifact);
|
|
65
|
+
const prompt = buildDeliberationPrompt(task.intent, artifact, { templateContent, upstreamSection: formatUpstream(upstream) }, recordPath);
|
|
66
|
+
// ① db/api 按需产出研讨:design_doc 须在对话框与用户确认 database_design/api_specification 是否需要,
|
|
67
|
+
// 结论写进 §8「产物适用性声明」。声明「适用」→ 强制产出;「不适用」→ 放行(前端/无后端按需不产)。
|
|
68
|
+
const dbApiDeliberation = target === "design_doc"
|
|
69
|
+
? `\n## db/api 产物适用性研讨(必研讨,design_doc §8「产物适用性声明」须据此填写)\n本项目是否需要 database_design / api_specification?逐点与用户对话框研讨:\n1. **是否有后端持久化/数据库**?— 有 → database_design「适用」;纯前端/无持久化 → 「不适用」\n2. **是否有对外 API / 前后端接口**?— 有 → api_specification「适用」;纯内部模块/无接口 → 「不适用」\n3. 收敛结论写进 design_doc §8:\`数据库设计文档:适用/不适用 — 依据:...\`、\`API接口规格文档:适用/不适用 — 依据:...\`\n> 声明「适用」须产出对应产物(XVAL-DBAPI-APPLICABILITY / BLD-DBAPI 强制);「不适用」放行。`
|
|
70
|
+
: "";
|
|
71
|
+
// ② 系统形态研讨:requirement_analysis 须在对话框与用户确认是否前后端、几个端、各端技术栈,
|
|
72
|
+
// 结论写进 §9「系统形态与交付边界」(端清单 FE-*)。涉及前端时强制留痕研讨记录(REQ-DELIB)。
|
|
73
|
+
const systemFormDeliberation = target === "requirement_analysis"
|
|
74
|
+
? `\n## 系统形态研讨(必研讨,需求分析 §9「系统形态与交付边界」须据此填写)\n本项目是什么形态?逐点与用户对话框研讨(不可 AI 代决):\n1. **系统形态**:纯后端 API / 前后端分离 / 多端 / 纯前端?\n2. **有几个端**(若有前端)?逐端命名(单段 FE-* ID:FE-client-01/FE-admin-01,禁多段横杠)+ 各端技术栈(如 Vue3+TS+Vite / uni-app)+ 职责\n3. **前后端契约方式**:RESTful / GraphQL / BFF?\n4. 收敛结论写进需求 §9:系统形态 + 端清单表格(FE-* ID/端名/技术栈/职责/本期交付)+ 交付边界\n> 涉及前端时须留痕研讨记录(REQ-DELIB 强制,docs/研讨记录/设计/需求分析-研讨记录.md);纯后端 API 端清单留空。下游架构 §6.3 据端清单模块化前端(FE-*)。`
|
|
75
|
+
: "";
|
|
76
|
+
return {
|
|
77
|
+
prompt: prompt + dbApiDeliberation + systemFormDeliberation,
|
|
78
|
+
template: "研讨记录.md",
|
|
79
|
+
scope: {
|
|
80
|
+
allowed_paths: [deliberationRecordDir(this.contract.name)],
|
|
81
|
+
read_only_paths: ["src/", "config/"],
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
58
85
|
// ── 私有方法(域差异:scope 计算) ──
|
|
59
86
|
/** 允许写入路径 */
|
|
60
87
|
buildAllowedPaths(artifact) {
|
|
61
|
-
// 设计域产物都在 docs/
|
|
88
|
+
// 设计域产物都在 docs/ 下;附件(companion_files)目录也纳入 scope(bundle 完整产出,通用,不硬编码)
|
|
62
89
|
const dir = artifact.path_pattern.includes("/") ? artifact.path_pattern.split("/").slice(0, -1).join("/") : "docs";
|
|
63
|
-
|
|
90
|
+
const paths = new Set([dir || "docs"]);
|
|
91
|
+
for (const cf of artifact.companion_files ?? []) {
|
|
92
|
+
const cfDir = cf.includes("/") ? cf.split("/").slice(0, -1).join("/") : cf;
|
|
93
|
+
paths.add(cfDir || "docs");
|
|
94
|
+
}
|
|
95
|
+
return [...paths];
|
|
64
96
|
}
|
|
65
97
|
/** 只读路径 */
|
|
66
98
|
buildReadOnlyPaths() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/design/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,YAAY;AACZ,MAAM,OAAO,YAAY;IAOJ;IACA;IAPnB,wFAAwF;IACxF,IAAI,QAAQ;QACV,OAAO,mBAAmB,CAAC,cAAc,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAC/D,CAAC;IAED,YACmB,QAAkB,EAClB,WAAmB;QADnB,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAQ;IACnC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,IAAiB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAAiB,EACjB,MAAc,EACd,QAAgC,EAChC,QAAiB;QAEjB,aAAa;QACb,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,oCAAoC;QACpC,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtG,MAAM,eAAe,GAAG,EAAE,CAAC,CAAC,wCAAwC;QAEpE,cAAc;QACd,MAAM,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QACtD,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,EAAE,CAAC;QAEhD,uCAAuC;QACvC,MAAM,MAAM,GAAG,mBAAmB,CAChC,IAAI,CAAC,MAAM,EACX,QAAQ,EACR;YACE,eAAe;YACf,eAAe,EAAE,cAAc,CAAC,QAAQ,CAAC;YACzC,eAAe;SAChB,EACD,qBAAqB,QAAQ,CAAC,IAAI,sBAAsB,EACxD,QAAQ,CACT,CAAC;QAEF,OAAO;YACL,MAAM;YACN,QAAQ,EAAE,QAAQ,CAAC,QAAQ;YAC3B,KAAK,EAAE;gBACL,aAAa,EAAE,YAAY;gBAC3B,eAAe,EAAE,aAAa;aAC/B;SACF,CAAC;IACJ,CAAC;IAED,2BAA2B;IAE3B,aAAa;IACL,iBAAiB,CAAC,
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/design/engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -48,6 +48,28 @@ export declare function buildArtifactPrompt(taskIntent: string, artifact: {
|
|
|
48
48
|
upstreamSection: string;
|
|
49
49
|
guidanceSection: string;
|
|
50
50
|
}, requirements: string, feedback?: string): string;
|
|
51
|
+
/** 研讨记录所在目录(相对项目根):docs/研讨记录/{域中文}/ */
|
|
52
|
+
export declare function deliberationRecordDir(domain: string): string;
|
|
53
|
+
/**
|
|
54
|
+
* 计算研讨记录文件路径(全中文语义):docs/研讨记录/{域中文}/{产物中文}-研讨记录.md
|
|
55
|
+
* 产物中文名从 path_pattern 文件名派生(去 .md + 去编号前缀如 "01-"),与产物本身中文命名一致。
|
|
56
|
+
*/
|
|
57
|
+
export declare function deliberationRecordPath(domain: string, artifact: {
|
|
58
|
+
path_pattern: string;
|
|
59
|
+
}): string;
|
|
60
|
+
/**
|
|
61
|
+
* 组装产出前研讨 prompt(对话框交互式)。
|
|
62
|
+
* 核心纪律:这是**对话**——AI 必须在对话框与用户交互式头脑风暴,不单方面写记录。
|
|
63
|
+
* 收敛后才把研讨结论总结留痕(供 cross-artifact 对抗审查复核"研讨充分性")。
|
|
64
|
+
*/
|
|
65
|
+
export declare function buildDeliberationPrompt(taskIntent: string, artifact: {
|
|
66
|
+
kind: string;
|
|
67
|
+
path_pattern: string;
|
|
68
|
+
gate: string;
|
|
69
|
+
}, sections: {
|
|
70
|
+
templateContent: string;
|
|
71
|
+
upstreamSection: string;
|
|
72
|
+
}, deliberationPath: string): string;
|
|
51
73
|
/**
|
|
52
74
|
* 扫描用户 artifact 模板(.soloforge/knowledge/ 项目级 + ~/.soloforge/patterns/ 全局级)。
|
|
53
75
|
* 用户 artifact md frontmatter 用 artifact_contract 块声明 domain/artifact_kind/path_pattern/gate/required:
|
|
@@ -63,4 +85,19 @@ export declare function buildArtifactPrompt(taskIntent: string, artifact: {
|
|
|
63
85
|
export declare function getUserArtifacts(projectRoot: string, domain: string): ArtifactDeclaration[];
|
|
64
86
|
/** 合并内置 contract + 用户 artifact produces(4 engine contract getter 用)。无用户 artifact 时返回原 contract。 */
|
|
65
87
|
export declare function getExtendedContract(base: DomainContract, projectRoot: string): DomainContract;
|
|
88
|
+
/**
|
|
89
|
+
* 派生 build 域 scope:合并声明的工程目录(config.projects)+ 探测的源码根 + config/。
|
|
90
|
+
* 多工程结构(根/{端}/src/)下放行所有工程的 src/;单工程(根 src/)向后兼容。
|
|
91
|
+
*/
|
|
92
|
+
export declare function resolveBuildScope(projectRoot: string, config: {
|
|
93
|
+
projects?: Array<{
|
|
94
|
+
dir: string;
|
|
95
|
+
}>;
|
|
96
|
+
} | undefined): string[];
|
|
97
|
+
/**
|
|
98
|
+
* 多端 code 产物的 git hash(verify/doctor 防漂移用)。
|
|
99
|
+
* code 产物分布在 根/{端}/src/:无 src/ → 空(doctor orphan 标志);有 src/ → 项目 HEAD hash(项目级,反映所有代码变更)。
|
|
100
|
+
* 用 HEAD 而非 git hash-object(src/):后者对目录返回空(git hash-object 只支持文件),原 verify 记空 hash 是隐藏 bug。
|
|
101
|
+
*/
|
|
102
|
+
export declare function aggregateMultiSrcHash(projectRoot: string): Promise<string>;
|
|
66
103
|
//# sourceMappingURL=engine_helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_helpers.d.ts","sourceRoot":"","sources":["../../src/domain/engine_helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine_helpers.d.ts","sourceRoot":"","sources":["../../src/domain/engine_helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAOH,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAS5E;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,WAAW,GAAE,MAAqB,GAAG;IAC5I,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CAC/E,CAuDA;AA6CD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,EAClB,YAAY,EAAE,MAAM,EACpB,WAAW,GAAE,MAAqB,GACjC,MAAM,CAYR;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAIvE;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC9D,QAAQ,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,EACvF,YAAY,EAAE,MAAM,EACpB,QAAQ,CAAC,EAAE,MAAM,GAChB,MAAM,CA2BR;AAKD,uCAAuC;AACvC,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAE5D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE;IAAE,YAAY,EAAE,MAAM,CAAA;CAAE,GAAG,MAAM,CAIjG;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAC9D,QAAQ,EAAE;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,EAC9D,gBAAgB,EAAE,MAAM,GACvB,MAAM,CA4CR;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,mBAAmB,EAAE,CA4B3F;AAED,mGAAmG;AACnG,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,GAAG,cAAc,CAI7F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE;IAAE,QAAQ,CAAC,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAAE,GAAG,SAAS,GACxD,MAAM,EAAE,CAIV;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAGhF"}
|
|
@@ -17,6 +17,8 @@ import { resolve, join, dirname } from "node:path";
|
|
|
17
17
|
import { homedir } from "node:os";
|
|
18
18
|
import { fileURLToPath } from "node:url";
|
|
19
19
|
import matter from "gray-matter";
|
|
20
|
+
import { discoverSourceRoots } from "../gate/scope_resolver.js";
|
|
21
|
+
import { getHeadHash } from "../core/git_utils.js";
|
|
20
22
|
/** SoloForge 包根(dist/domain/ → 包根)。定位内置 templates,与 gate_registry_bridge 一致。
|
|
21
23
|
* 修定位 bug:原 loadGuidance/loadArtifactTemplate 用 resolve(projectRoot,"templates"),
|
|
22
24
|
* 生产环境 projectRoot=客户项目根,找不到内置 templates(潜伏不一致,gate_registry_bridge 注释自述)。 */
|
|
@@ -177,6 +179,71 @@ export function buildArtifactPrompt(taskIntent, artifact, sections, requirements
|
|
|
177
179
|
parts.push(requirements);
|
|
178
180
|
return parts.join("\n");
|
|
179
181
|
}
|
|
182
|
+
/** 域名 → 中文标签(研讨记录路径用,遵循项目产物中文命名语义) */
|
|
183
|
+
const DOMAIN_ZH = { design: "设计", build: "构建", verify: "验证", operate: "运行" };
|
|
184
|
+
/** 研讨记录所在目录(相对项目根):docs/研讨记录/{域中文}/ */
|
|
185
|
+
export function deliberationRecordDir(domain) {
|
|
186
|
+
return `docs/研讨记录/${DOMAIN_ZH[domain] || domain}/`;
|
|
187
|
+
}
|
|
188
|
+
/**
|
|
189
|
+
* 计算研讨记录文件路径(全中文语义):docs/研讨记录/{域中文}/{产物中文}-研讨记录.md
|
|
190
|
+
* 产物中文名从 path_pattern 文件名派生(去 .md + 去编号前缀如 "01-"),与产物本身中文命名一致。
|
|
191
|
+
*/
|
|
192
|
+
export function deliberationRecordPath(domain, artifact) {
|
|
193
|
+
const base = artifact.path_pattern.split("/").pop() || "产物";
|
|
194
|
+
const product = base.replace(/\.md$/, "").replace(/^\d+-/, "");
|
|
195
|
+
return `${deliberationRecordDir(domain)}${product}-研讨记录.md`;
|
|
196
|
+
}
|
|
197
|
+
/**
|
|
198
|
+
* 组装产出前研讨 prompt(对话框交互式)。
|
|
199
|
+
* 核心纪律:这是**对话**——AI 必须在对话框与用户交互式头脑风暴,不单方面写记录。
|
|
200
|
+
* 收敛后才把研讨结论总结留痕(供 cross-artifact 对抗审查复核"研讨充分性")。
|
|
201
|
+
*/
|
|
202
|
+
export function buildDeliberationPrompt(taskIntent, artifact, sections, deliberationPath) {
|
|
203
|
+
const parts = [];
|
|
204
|
+
parts.push(`# 任务:产出「${artifact.kind}」前的条件研讨(对话框交互式)`);
|
|
205
|
+
parts.push(`\n用户意图:${taskIntent}`);
|
|
206
|
+
parts.push(`研讨记录留痕路径(对话收敛后总结写入):${deliberationPath}`);
|
|
207
|
+
if (sections.upstreamSection) {
|
|
208
|
+
parts.push(`\n## 上游产物参考`);
|
|
209
|
+
parts.push(sections.upstreamSection);
|
|
210
|
+
}
|
|
211
|
+
parts.push(`\n## 核心纪律:这是对话,不是单方面产出`);
|
|
212
|
+
parts.push(`你是**研讨引导者**,必须在对话框与用户**交互式头脑风暴**——不要自己下结论、不要先写文件。每个有疑问的点都要与用户来回讨论后再收敛。`);
|
|
213
|
+
parts.push(`
|
|
214
|
+
## 研讨流程(与用户在对话框交互)
|
|
215
|
+
|
|
216
|
+
### 第 1 步:识别不确定点(对话框告诉用户)
|
|
217
|
+
列出本次产出的关键不确定点(技术选型 / 边界假设 / 信息缺口 / 接口契约 / 异常处理 / 性能与安全取舍),在对话框告诉用户,问:哪些需要深入研讨?哪些你已明确?
|
|
218
|
+
|
|
219
|
+
### 第 2 步:逐点交互研讨(有疑问的点,对话框来回)
|
|
220
|
+
对每个有疑问的点:
|
|
221
|
+
1. **发散**:在对话框列多个可能方案,问用户倾向与理由(不替用户决定)
|
|
222
|
+
2. **第一性原理收敛**:回到根本约束(用户根本需求 / 物理与成本 / 已有架构 / 可证伪事实),与用户一起推导,淘汰经不起追问的
|
|
223
|
+
3. **对话收敛**:与用户讨论达成共识,再进下一点
|
|
224
|
+
|
|
225
|
+
### 第 3 步:无疑问的点(一行向用户确认,快速跳过)
|
|
226
|
+
\`[点] 我倾向按 X 处理,依据 Y,你认可吗?\` —— 用户认可即跳过。
|
|
227
|
+
|
|
228
|
+
### 第 4 步:收敛确认(对话框汇总与用户确认)
|
|
229
|
+
所有点讨论完,在对话框汇总研讨结论,与用户确认。
|
|
230
|
+
|
|
231
|
+
### 第 5 步:留痕 + 产出
|
|
232
|
+
确认后:
|
|
233
|
+
1. 把研讨结论总结写入 \`${deliberationPath}\`(按下方模板结构,是对话的总结留痕,供 cross-artifact 对抗审查复核"研讨充分性")
|
|
234
|
+
2. 调 sf_work action="act" target="${artifact.kind}" 承接研讨结论产出实际产物
|
|
235
|
+
`);
|
|
236
|
+
if (sections.templateContent) {
|
|
237
|
+
parts.push(`\n## 研讨记录留痕模板(对话收敛后按此结构总结写入)`);
|
|
238
|
+
parts.push(sections.templateContent);
|
|
239
|
+
}
|
|
240
|
+
parts.push(`\n## 要求`);
|
|
241
|
+
parts.push(`- 这是**对话**:每个有疑问的点必须与用户来回讨论后再收敛,禁止 AI 自问自答直接写记录
|
|
242
|
+
- 防偷懒:复杂决策不得直接跳过,必须在对话框与用户研讨
|
|
243
|
+
- 留痕是对话的**总结**,不替代对话;对话未收敛不得先写文件
|
|
244
|
+
- 所有内容使用中文`);
|
|
245
|
+
return parts.join("\n");
|
|
246
|
+
}
|
|
180
247
|
/**
|
|
181
248
|
* 扫描用户 artifact 模板(.soloforge/knowledge/ 项目级 + ~/.soloforge/patterns/ 全局级)。
|
|
182
249
|
* 用户 artifact md frontmatter 用 artifact_contract 块声明 domain/artifact_kind/path_pattern/gate/required:
|
|
@@ -233,4 +300,23 @@ export function getExtendedContract(base, projectRoot) {
|
|
|
233
300
|
return base;
|
|
234
301
|
return { ...base, produces: [...base.produces, ...userArtifacts] };
|
|
235
302
|
}
|
|
303
|
+
/**
|
|
304
|
+
* 派生 build 域 scope:合并声明的工程目录(config.projects)+ 探测的源码根 + config/。
|
|
305
|
+
* 多工程结构(根/{端}/src/)下放行所有工程的 src/;单工程(根 src/)向后兼容。
|
|
306
|
+
*/
|
|
307
|
+
export function resolveBuildScope(projectRoot, config) {
|
|
308
|
+
const declared = (config?.projects ?? []).map((p) => `${p.dir.replace(/\/+$/, "")}/src/`);
|
|
309
|
+
const discovered = discoverSourceRoots(projectRoot).map((r) => r.path);
|
|
310
|
+
return Array.from(new Set([...declared, ...discovered, "src/", "config/"]));
|
|
311
|
+
}
|
|
312
|
+
/**
|
|
313
|
+
* 多端 code 产物的 git hash(verify/doctor 防漂移用)。
|
|
314
|
+
* code 产物分布在 根/{端}/src/:无 src/ → 空(doctor orphan 标志);有 src/ → 项目 HEAD hash(项目级,反映所有代码变更)。
|
|
315
|
+
* 用 HEAD 而非 git hash-object(src/):后者对目录返回空(git hash-object 只支持文件),原 verify 记空 hash 是隐藏 bug。
|
|
316
|
+
*/
|
|
317
|
+
export async function aggregateMultiSrcHash(projectRoot) {
|
|
318
|
+
if (discoverSourceRoots(projectRoot).length === 0)
|
|
319
|
+
return "";
|
|
320
|
+
return getHeadHash(projectRoot);
|
|
321
|
+
}
|
|
236
322
|
//# sourceMappingURL=engine_helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine_helpers.js","sourceRoot":"","sources":["../../src/domain/engine_helpers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAChE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,MAAM,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"engine_helpers.js","sourceRoot":"","sources":["../../src/domain/engine_helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -24,5 +24,6 @@ export declare class OperateEngine implements IDomainEngine {
|
|
|
24
24
|
constructor(observer: Observer, projectRoot: string);
|
|
25
25
|
observe(task: TaskContext): Promise<DerivedState>;
|
|
26
26
|
act(task: TaskContext, target: string, upstream: Record<string, string>, feedback?: string): Promise<ActResult>;
|
|
27
|
+
deliberate(task: TaskContext, target: string, upstream: Record<string, string>): Promise<ActResult>;
|
|
27
28
|
}
|
|
28
29
|
//# sourceMappingURL=engine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/domain/operate/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/domain/operate/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAC5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAYvD,YAAY;AACZ,qBAAa,aAAc,YAAW,aAAa;IAO/C,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,WAAW;IAP9B,wCAAwC;IACxC,IAAI,QAAQ,IAAI,cAAc,CAE7B;gBAGkB,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,MAAM;IAGhC,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;IAIjD,GAAG,CACP,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,SAAS,CAAC;IA+Bf,UAAU,CACd,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,OAAO,CAAC,SAAS,CAAC;CAsBtB"}
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
* 持久化:无(act 只组装 prompt)
|
|
13
13
|
*/
|
|
14
14
|
import { operateContract } from "./contract.js";
|
|
15
|
-
import { loadArtifactTemplate, formatUpstream, buildArtifactPrompt, getExtendedContract, } from "../engine_helpers.js";
|
|
15
|
+
import { loadArtifactTemplate, formatUpstream, buildArtifactPrompt, buildDeliberationPrompt, deliberationRecordPath, deliberationRecordDir, getExtendedContract, } from "../engine_helpers.js";
|
|
16
16
|
/** 运行域引擎 */
|
|
17
17
|
export class OperateEngine {
|
|
18
18
|
observer;
|
|
@@ -39,7 +39,7 @@ export class OperateEngine {
|
|
|
39
39
|
templateContent,
|
|
40
40
|
upstreamSection: formatUpstream(upstream),
|
|
41
41
|
guidanceSection,
|
|
42
|
-
}, `基于已审查通过的代码准备部署。确保通过「${artifact.gate}」门禁检查。\n
|
|
42
|
+
}, `基于已审查通过的代码准备部署。确保通过「${artifact.gate}」门禁检查。\n所有注释和日志使用中文。\n## 交付前实跑验证(必须,软注入纪律)\n交付前必须实跑验证并输出地址给人工验收:① \`docker compose build\` 构建最新镜像到本地 docker desktop;② \`docker compose up\` 启动服务;③ 浏览器验证前端交互 + 后端逻辑(核心接口,playwright e2e 验交互链路与接口响应,SLICE-E2E 兜底——不验 UI 视觉);④ 前端 UI 视觉验收——客户端 AI 视觉审查截图(布局/颜色/响应式/与设计稿一致)+ 主观项人工确认,结论留痕发布说明「UI 视觉验收」行(见「UI视觉验收纪律」guidance,视觉正确性是 L2/L3 域,不在此用确定性 e2e 偷验);⑤ **输出访问地址(http://localhost:各服务PORT,逐服务列清楚)给人工查看**。slice-gate(SLICE-BUILD/UP/HTTP/E2E)会兜底验证构建/部署/HTTP/E2E,但「输出地址给人工」是交付硬要求——不输出地址等于没交付,人工无法验收。`, feedback);
|
|
43
43
|
return {
|
|
44
44
|
prompt,
|
|
45
45
|
template: artifact.template,
|
|
@@ -49,5 +49,22 @@ export class OperateEngine {
|
|
|
49
49
|
},
|
|
50
50
|
};
|
|
51
51
|
}
|
|
52
|
+
async deliberate(task, target, upstream) {
|
|
53
|
+
const artifact = this.contract.produces.find((a) => a.kind === target);
|
|
54
|
+
if (!artifact) {
|
|
55
|
+
throw new Error(`运行域无 "${target}" 产物。可用:${this.contract.produces.map((a) => a.kind).join(", ")}`);
|
|
56
|
+
}
|
|
57
|
+
const templateContent = loadArtifactTemplate(this.projectRoot, this.contract.name, "研讨记录.md");
|
|
58
|
+
const recordPath = deliberationRecordPath(this.contract.name, artifact);
|
|
59
|
+
const prompt = buildDeliberationPrompt(task.intent, artifact, { templateContent, upstreamSection: formatUpstream(upstream) }, recordPath);
|
|
60
|
+
return {
|
|
61
|
+
prompt,
|
|
62
|
+
template: "研讨记录.md",
|
|
63
|
+
scope: {
|
|
64
|
+
allowed_paths: [deliberationRecordDir(this.contract.name)],
|
|
65
|
+
read_only_paths: ["src/", "config/"],
|
|
66
|
+
},
|
|
67
|
+
};
|
|
68
|
+
}
|
|
52
69
|
}
|
|
53
70
|
//# sourceMappingURL=engine.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/operate/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EACL,oBAAoB,EACpB,cAAc,EACd,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,sBAAsB,CAAC;AAE9B,YAAY;AACZ,MAAM,OAAO,aAAa;IAOL;IACA;IAPnB,wCAAwC;IACxC,IAAI,QAAQ;QACV,OAAO,mBAAmB,CAAC,eAAe,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAChE,CAAC;IAED,YACmB,QAAkB,EAClB,WAAmB;QADnB,aAAQ,GAAR,QAAQ,CAAU;QAClB,gBAAW,GAAX,WAAW,CAAQ;IACnC,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,IAAiB;QAC7B,OAAO,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,GAAG,CACP,IAAiB,EACjB,MAAc,EACd,QAAgC,EAChC,QAAiB;QAEjB,MAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;QACvE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,WAAW,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACpG,CAAC;QAED,MAAM,eAAe,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;QACtG,MAAM,eAAe,GAAG,EAAE,CAAC,CAAC,wCAAwC;QAEpE,MAAM,MAAM,GAAG,mBAAmB,CAChC,IAAI,CAAC,MAAM,EACX,QAAQ,EACR;YACE,eAAe;YACf,eAAe,EAAE,cAAc,CAAC,QAAQ,CAAC;YACzC,eAAe;SAChB,EACD,uBAAuB,QAAQ,CAAC,IAAI,
|
|
1
|
+
{"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/domain/operate/engine.ts"],"names":[],"mappings":"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"}
|