@clawplays/ospec-cli 0.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.ospec/templates/hooks/post-merge +8 -0
- package/.ospec/templates/hooks/pre-commit +8 -0
- package/LICENSE +21 -0
- package/README.md +549 -0
- package/README.zh-CN.md +549 -0
- package/assets/for-ai/en-US/ai-guide.md +98 -0
- package/assets/for-ai/en-US/execution-protocol.md +64 -0
- package/assets/for-ai/zh-CN/ai-guide.md +102 -0
- package/assets/for-ai/zh-CN/execution-protocol.md +68 -0
- package/assets/git-hooks/post-merge +12 -0
- package/assets/git-hooks/pre-commit +12 -0
- package/assets/global-skills/claude/ospec-change/SKILL.md +116 -0
- package/assets/global-skills/codex/ospec-change/SKILL.md +117 -0
- package/assets/global-skills/codex/ospec-change/agents/openai.yaml +7 -0
- package/assets/global-skills/codex/ospec-change/skill.yaml +19 -0
- package/assets/project-conventions/en-US/development-guide.md +32 -0
- package/assets/project-conventions/en-US/naming-conventions.md +51 -0
- package/assets/project-conventions/en-US/skill-conventions.md +40 -0
- package/assets/project-conventions/en-US/workflow-conventions.md +70 -0
- package/assets/project-conventions/zh-CN/development-guide.md +32 -0
- package/assets/project-conventions/zh-CN/naming-conventions.md +51 -0
- package/assets/project-conventions/zh-CN/skill-conventions.md +40 -0
- package/assets/project-conventions/zh-CN/workflow-conventions.md +74 -0
- package/dist/adapters/codex-stitch-adapter.js +420 -0
- package/dist/adapters/gemini-stitch-adapter.js +408 -0
- package/dist/adapters/playwright-checkpoint-adapter.js +2260 -0
- package/dist/advanced/BatchOperations.d.ts +36 -0
- package/dist/advanced/BatchOperations.js +159 -0
- package/dist/advanced/CachingLayer.d.ts +66 -0
- package/dist/advanced/CachingLayer.js +136 -0
- package/dist/advanced/FeatureUpdater.d.ts +46 -0
- package/dist/advanced/FeatureUpdater.js +151 -0
- package/dist/advanced/PerformanceMonitor.d.ts +52 -0
- package/dist/advanced/PerformanceMonitor.js +129 -0
- package/dist/advanced/StatePersistence.d.ts +61 -0
- package/dist/advanced/StatePersistence.js +168 -0
- package/dist/advanced/index.d.ts +14 -0
- package/dist/advanced/index.js +22 -0
- package/dist/cli/commands/config.d.ts +5 -0
- package/dist/cli/commands/config.js +6 -0
- package/dist/cli/commands/feature.d.ts +5 -0
- package/dist/cli/commands/feature.js +6 -0
- package/dist/cli/commands/index.d.ts +5 -0
- package/dist/cli/commands/index.js +6 -0
- package/dist/cli/commands/project.d.ts +5 -0
- package/dist/cli/commands/project.js +6 -0
- package/dist/cli/commands/validate.d.ts +5 -0
- package/dist/cli/commands/validate.js +6 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.js +6 -0
- package/dist/cli.d.ts +3 -0
- package/dist/cli.js +1007 -0
- package/dist/commands/ArchiveCommand.d.ts +14 -0
- package/dist/commands/ArchiveCommand.js +241 -0
- package/dist/commands/BaseCommand.d.ts +33 -0
- package/dist/commands/BaseCommand.js +46 -0
- package/dist/commands/BatchCommand.d.ts +5 -0
- package/dist/commands/BatchCommand.js +42 -0
- package/dist/commands/ChangesCommand.d.ts +3 -0
- package/dist/commands/ChangesCommand.js +71 -0
- package/dist/commands/DocsCommand.d.ts +5 -0
- package/dist/commands/DocsCommand.js +118 -0
- package/dist/commands/FinalizeCommand.d.ts +3 -0
- package/dist/commands/FinalizeCommand.js +24 -0
- package/dist/commands/IndexCommand.d.ts +5 -0
- package/dist/commands/IndexCommand.js +57 -0
- package/dist/commands/InitCommand.d.ts +5 -0
- package/dist/commands/InitCommand.js +65 -0
- package/dist/commands/NewCommand.d.ts +11 -0
- package/dist/commands/NewCommand.js +262 -0
- package/dist/commands/PluginsCommand.d.ts +58 -0
- package/dist/commands/PluginsCommand.js +2491 -0
- package/dist/commands/ProgressCommand.d.ts +5 -0
- package/dist/commands/ProgressCommand.js +103 -0
- package/dist/commands/QueueCommand.d.ts +10 -0
- package/dist/commands/QueueCommand.js +147 -0
- package/dist/commands/RunCommand.d.ts +13 -0
- package/dist/commands/RunCommand.js +200 -0
- package/dist/commands/SkillCommand.d.ts +31 -0
- package/dist/commands/SkillCommand.js +1216 -0
- package/dist/commands/SkillsCommand.d.ts +5 -0
- package/dist/commands/SkillsCommand.js +68 -0
- package/dist/commands/StatusCommand.d.ts +6 -0
- package/dist/commands/StatusCommand.js +140 -0
- package/dist/commands/UpdateCommand.d.ts +8 -0
- package/dist/commands/UpdateCommand.js +251 -0
- package/dist/commands/VerifyCommand.d.ts +5 -0
- package/dist/commands/VerifyCommand.js +278 -0
- package/dist/commands/WorkflowCommand.d.ts +12 -0
- package/dist/commands/WorkflowCommand.js +150 -0
- package/dist/commands/index.d.ts +43 -0
- package/dist/commands/index.js +85 -0
- package/dist/core/constants.d.ts +41 -0
- package/dist/core/constants.js +73 -0
- package/dist/core/errors.d.ts +36 -0
- package/dist/core/errors.js +72 -0
- package/dist/core/index.d.ts +7 -0
- package/dist/core/index.js +23 -0
- package/dist/core/types.d.ts +369 -0
- package/dist/core/types.js +3 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +27 -0
- package/dist/presets/ProjectPresets.d.ts +41 -0
- package/dist/presets/ProjectPresets.js +190 -0
- package/dist/scaffolds/ProjectScaffoldPresets.d.ts +20 -0
- package/dist/scaffolds/ProjectScaffoldPresets.js +151 -0
- package/dist/services/ConfigManager.d.ts +14 -0
- package/dist/services/ConfigManager.js +386 -0
- package/dist/services/FeatureManager.d.ts +5 -0
- package/dist/services/FeatureManager.js +6 -0
- package/dist/services/FileService.d.ts +21 -0
- package/dist/services/FileService.js +152 -0
- package/dist/services/IndexBuilder.d.ts +12 -0
- package/dist/services/IndexBuilder.js +130 -0
- package/dist/services/Logger.d.ts +20 -0
- package/dist/services/Logger.js +48 -0
- package/dist/services/ProjectAssetRegistry.d.ts +12 -0
- package/dist/services/ProjectAssetRegistry.js +96 -0
- package/dist/services/ProjectAssetService.d.ts +49 -0
- package/dist/services/ProjectAssetService.js +223 -0
- package/dist/services/ProjectScaffoldCommandService.d.ts +73 -0
- package/dist/services/ProjectScaffoldCommandService.js +159 -0
- package/dist/services/ProjectScaffoldService.d.ts +44 -0
- package/dist/services/ProjectScaffoldService.js +507 -0
- package/dist/services/ProjectService.d.ts +209 -0
- package/dist/services/ProjectService.js +13239 -0
- package/dist/services/QueueService.d.ts +17 -0
- package/dist/services/QueueService.js +142 -0
- package/dist/services/RunService.d.ts +40 -0
- package/dist/services/RunService.js +420 -0
- package/dist/services/SkillParser.d.ts +30 -0
- package/dist/services/SkillParser.js +88 -0
- package/dist/services/StateManager.d.ts +16 -0
- package/dist/services/StateManager.js +127 -0
- package/dist/services/TemplateEngine.d.ts +43 -0
- package/dist/services/TemplateEngine.js +119 -0
- package/dist/services/TemplateGenerator.d.ts +40 -0
- package/dist/services/TemplateGenerator.js +273 -0
- package/dist/services/ValidationService.d.ts +19 -0
- package/dist/services/ValidationService.js +44 -0
- package/dist/services/Validator.d.ts +5 -0
- package/dist/services/Validator.js +6 -0
- package/dist/services/index.d.ts +52 -0
- package/dist/services/index.js +91 -0
- package/dist/services/templates/ExecutionTemplateBuilder.d.ts +12 -0
- package/dist/services/templates/ExecutionTemplateBuilder.js +300 -0
- package/dist/services/templates/ProjectTemplateBuilder.d.ts +38 -0
- package/dist/services/templates/ProjectTemplateBuilder.js +1897 -0
- package/dist/services/templates/TemplateBuilderBase.d.ts +19 -0
- package/dist/services/templates/TemplateBuilderBase.js +60 -0
- package/dist/services/templates/TemplateInputFactory.d.ts +16 -0
- package/dist/services/templates/TemplateInputFactory.js +298 -0
- package/dist/services/templates/templateTypes.d.ts +90 -0
- package/dist/services/templates/templateTypes.js +3 -0
- package/dist/tools/build-index.js +632 -0
- package/dist/utils/DateUtils.d.ts +18 -0
- package/dist/utils/DateUtils.js +40 -0
- package/dist/utils/PathUtils.d.ts +9 -0
- package/dist/utils/PathUtils.js +66 -0
- package/dist/utils/StringUtils.d.ts +26 -0
- package/dist/utils/StringUtils.js +47 -0
- package/dist/utils/helpers.d.ts +5 -0
- package/dist/utils/helpers.js +6 -0
- package/dist/utils/index.d.ts +7 -0
- package/dist/utils/index.js +23 -0
- package/dist/utils/logger.d.ts +5 -0
- package/dist/utils/logger.js +6 -0
- package/dist/utils/path.d.ts +5 -0
- package/dist/utils/path.js +6 -0
- package/dist/utils/subcommandHelp.d.ts +11 -0
- package/dist/utils/subcommandHelp.js +119 -0
- package/dist/workflow/ArchiveGate.d.ts +30 -0
- package/dist/workflow/ArchiveGate.js +93 -0
- package/dist/workflow/ConfigurableWorkflow.d.ts +89 -0
- package/dist/workflow/ConfigurableWorkflow.js +186 -0
- package/dist/workflow/HookSystem.d.ts +38 -0
- package/dist/workflow/HookSystem.js +66 -0
- package/dist/workflow/IndexRegenerator.d.ts +49 -0
- package/dist/workflow/IndexRegenerator.js +147 -0
- package/dist/workflow/PluginWorkflowComposer.d.ts +138 -0
- package/dist/workflow/PluginWorkflowComposer.js +239 -0
- package/dist/workflow/SkillUpdateEngine.d.ts +26 -0
- package/dist/workflow/SkillUpdateEngine.js +113 -0
- package/dist/workflow/VerificationSystem.d.ts +24 -0
- package/dist/workflow/VerificationSystem.js +116 -0
- package/dist/workflow/WorkflowEngine.d.ts +15 -0
- package/dist/workflow/WorkflowEngine.js +57 -0
- package/dist/workflow/index.d.ts +19 -0
- package/dist/workflow/index.js +32 -0
- package/package.json +78 -0
- package/scripts/postinstall.js +43 -0
|
@@ -0,0 +1,300 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ExecutionTemplateBuilder = void 0;
|
|
4
|
+
const TemplateBuilderBase_1 = require("./TemplateBuilderBase");
|
|
5
|
+
class ExecutionTemplateBuilder extends TemplateBuilderBase_1.TemplateBuilderBase {
|
|
6
|
+
constructor(inputs) {
|
|
7
|
+
super();
|
|
8
|
+
this.inputs = inputs;
|
|
9
|
+
}
|
|
10
|
+
generateProposalTemplate(input) {
|
|
11
|
+
const context = this.inputs.normalizeFeatureTemplateInput(input);
|
|
12
|
+
const created = this.getCurrentDate();
|
|
13
|
+
const projectDocs = context.projectContext.projectDocs ?? [];
|
|
14
|
+
const moduleSkills = context.projectContext.moduleSkills ?? [];
|
|
15
|
+
const apiDocs = context.projectContext.apiDocs ?? [];
|
|
16
|
+
const designAndPlanningDocs = [
|
|
17
|
+
...(context.projectContext.designDocs ?? []),
|
|
18
|
+
...(context.projectContext.planningDocs ?? []),
|
|
19
|
+
];
|
|
20
|
+
const zh = `## 背景
|
|
21
|
+
|
|
22
|
+
${context.background}
|
|
23
|
+
|
|
24
|
+
## 项目上下文
|
|
25
|
+
|
|
26
|
+
**项目文档:**
|
|
27
|
+
${this.formatReferenceList(projectDocs, '待补充')}
|
|
28
|
+
|
|
29
|
+
**关联模块技能:**
|
|
30
|
+
${this.formatReferenceList(moduleSkills, '待补充')}
|
|
31
|
+
|
|
32
|
+
**关联 API 文档:**
|
|
33
|
+
${this.formatReferenceList(apiDocs, '待补充')}
|
|
34
|
+
|
|
35
|
+
**关联设计 / 计划文档:**
|
|
36
|
+
${this.formatReferenceList(designAndPlanningDocs, '待补充')}
|
|
37
|
+
|
|
38
|
+
## 目标
|
|
39
|
+
|
|
40
|
+
${this.formatList(context.goals, '待补充')}
|
|
41
|
+
|
|
42
|
+
## 范围
|
|
43
|
+
|
|
44
|
+
**涉及:**
|
|
45
|
+
${this.formatList(context.inScope, '待补充')}
|
|
46
|
+
|
|
47
|
+
**不涉及:**
|
|
48
|
+
${this.formatList(context.outOfScope, '待补充')}
|
|
49
|
+
|
|
50
|
+
## 验收标准
|
|
51
|
+
|
|
52
|
+
${this.formatChecklist(context.acceptanceCriteria, '待补充')}`;
|
|
53
|
+
const en = `## Background
|
|
54
|
+
|
|
55
|
+
${context.background}
|
|
56
|
+
|
|
57
|
+
## Project Context
|
|
58
|
+
|
|
59
|
+
**Project docs:**
|
|
60
|
+
${this.formatReferenceList(projectDocs, 'TBD')}
|
|
61
|
+
|
|
62
|
+
**Related module skills:**
|
|
63
|
+
${this.formatReferenceList(moduleSkills, 'TBD')}
|
|
64
|
+
|
|
65
|
+
**Related API docs:**
|
|
66
|
+
${this.formatReferenceList(apiDocs, 'TBD')}
|
|
67
|
+
|
|
68
|
+
**Related design / planning docs:**
|
|
69
|
+
${this.formatReferenceList(designAndPlanningDocs, 'TBD')}
|
|
70
|
+
|
|
71
|
+
## Goals
|
|
72
|
+
|
|
73
|
+
${this.formatList(context.goals, 'TBD')}
|
|
74
|
+
|
|
75
|
+
## Scope
|
|
76
|
+
|
|
77
|
+
**In scope:**
|
|
78
|
+
${this.formatList(context.inScope, 'TBD')}
|
|
79
|
+
|
|
80
|
+
**Out of scope:**
|
|
81
|
+
${this.formatList(context.outOfScope, 'TBD')}
|
|
82
|
+
|
|
83
|
+
## Acceptance Criteria
|
|
84
|
+
|
|
85
|
+
${this.formatChecklist(context.acceptanceCriteria, 'TBD')}`;
|
|
86
|
+
return this.withFrontmatter({
|
|
87
|
+
name: context.feature,
|
|
88
|
+
status: context.placement === 'queued' ? 'queued' : 'active',
|
|
89
|
+
created,
|
|
90
|
+
affects: context.affects,
|
|
91
|
+
flags: context.flags,
|
|
92
|
+
}, this.copy(context.documentLanguage, zh, en));
|
|
93
|
+
}
|
|
94
|
+
generateTasksTemplate(input) {
|
|
95
|
+
const context = this.inputs.normalizeFeatureTemplateInput(input);
|
|
96
|
+
const created = this.getCurrentDate();
|
|
97
|
+
const projectDocs = context.projectContext.projectDocs ?? [];
|
|
98
|
+
const moduleSkills = context.projectContext.moduleSkills ?? [];
|
|
99
|
+
const optionalStepTasksZh = context.optionalSteps.length > 0
|
|
100
|
+
? context.optionalSteps
|
|
101
|
+
.map((step, index) => `- [ ] ${index + 7}. 完成可选步骤 \`${step}\` 的文档和验证`)
|
|
102
|
+
.join('\n')
|
|
103
|
+
: '';
|
|
104
|
+
const optionalStepTasksEn = context.optionalSteps.length > 0
|
|
105
|
+
? context.optionalSteps
|
|
106
|
+
.map((step, index) => `- [ ] ${index + 7}. Finish docs and verification for optional step \`${step}\``)
|
|
107
|
+
.join('\n')
|
|
108
|
+
: '';
|
|
109
|
+
const zh = `## 上下文引用
|
|
110
|
+
|
|
111
|
+
**项目文档:**
|
|
112
|
+
${this.formatReferenceList(projectDocs, '待补充')}
|
|
113
|
+
|
|
114
|
+
**模块技能:**
|
|
115
|
+
${this.formatReferenceList(moduleSkills, '待补充')}
|
|
116
|
+
|
|
117
|
+
## 任务清单
|
|
118
|
+
|
|
119
|
+
- [ ] 1. 完成实现
|
|
120
|
+
- [ ] 2. 对齐项目规划文档与本次 change 的边界
|
|
121
|
+
- [ ] 3. 更新涉及模块的 \`SKILL.md\`
|
|
122
|
+
- [ ] 4. 更新相关 API / 设计 / 计划文档
|
|
123
|
+
- [ ] 5. 重新生成 \`SKILL.index.json\`
|
|
124
|
+
- [ ] 6. 执行验证并更新 \`verification.md\`
|
|
125
|
+
${optionalStepTasksZh}`.trim();
|
|
126
|
+
const en = `## Context References
|
|
127
|
+
|
|
128
|
+
**Project docs:**
|
|
129
|
+
${this.formatReferenceList(projectDocs, 'TBD')}
|
|
130
|
+
|
|
131
|
+
**Module skills:**
|
|
132
|
+
${this.formatReferenceList(moduleSkills, 'TBD')}
|
|
133
|
+
|
|
134
|
+
## Task Checklist
|
|
135
|
+
|
|
136
|
+
- [ ] 1. Implement the change
|
|
137
|
+
- [ ] 2. Align project planning docs with this change boundary
|
|
138
|
+
- [ ] 3. Update affected \`SKILL.md\` files
|
|
139
|
+
- [ ] 4. Update related API / design / planning docs
|
|
140
|
+
- [ ] 5. Rebuild \`SKILL.index.json\`
|
|
141
|
+
- [ ] 6. Run verification and update \`verification.md\`
|
|
142
|
+
${optionalStepTasksEn}`.trim();
|
|
143
|
+
return this.withFrontmatter({
|
|
144
|
+
feature: context.feature,
|
|
145
|
+
created,
|
|
146
|
+
optional_steps: context.optionalSteps,
|
|
147
|
+
}, this.copy(context.documentLanguage, zh, en));
|
|
148
|
+
}
|
|
149
|
+
generateVerificationTemplate(input) {
|
|
150
|
+
const context = this.inputs.normalizeFeatureTemplateInput(input);
|
|
151
|
+
const created = this.getCurrentDate();
|
|
152
|
+
const projectDocs = context.projectContext.projectDocs ?? [];
|
|
153
|
+
const moduleSkills = context.projectContext.moduleSkills ?? [];
|
|
154
|
+
const linkedKnowledgeDocs = [
|
|
155
|
+
...(context.projectContext.apiDocs ?? []),
|
|
156
|
+
...(context.projectContext.designDocs ?? []),
|
|
157
|
+
...(context.projectContext.planningDocs ?? []),
|
|
158
|
+
];
|
|
159
|
+
const zh = `## 自动验证
|
|
160
|
+
|
|
161
|
+
- [ ] build 通过
|
|
162
|
+
- [ ] lint 通过
|
|
163
|
+
- [ ] test 通过
|
|
164
|
+
- [ ] 索引已重新生成
|
|
165
|
+
- [ ] spec-check 通过
|
|
166
|
+
|
|
167
|
+
## 项目联动检查
|
|
168
|
+
|
|
169
|
+
${this.formatReferenceChecklist(projectDocs, '项目文档已回看')}
|
|
170
|
+
|
|
171
|
+
${this.formatReferenceChecklist(moduleSkills, '相关模块技能已回看')}
|
|
172
|
+
|
|
173
|
+
${this.formatReferenceChecklist(linkedKnowledgeDocs, '相关 API / 设计 / 计划文档已回看')}
|
|
174
|
+
|
|
175
|
+
## 需求验收
|
|
176
|
+
|
|
177
|
+
${this.formatChecklist(context.acceptanceCriteria, '验收项 1')}
|
|
178
|
+
|
|
179
|
+
## 结果
|
|
180
|
+
|
|
181
|
+
- [ ] 可以归档`;
|
|
182
|
+
const en = `## Automated Checks
|
|
183
|
+
|
|
184
|
+
- [ ] build passed
|
|
185
|
+
- [ ] lint passed
|
|
186
|
+
- [ ] test passed
|
|
187
|
+
- [ ] index rebuilt
|
|
188
|
+
- [ ] spec-check passed
|
|
189
|
+
|
|
190
|
+
## Project Sync Review
|
|
191
|
+
|
|
192
|
+
${this.formatReferenceChecklist(projectDocs, 'Project docs reviewed')}
|
|
193
|
+
|
|
194
|
+
${this.formatReferenceChecklist(moduleSkills, 'Related module skills reviewed')}
|
|
195
|
+
|
|
196
|
+
${this.formatReferenceChecklist(linkedKnowledgeDocs, 'Related API / design / planning docs reviewed')}
|
|
197
|
+
|
|
198
|
+
## Acceptance Review
|
|
199
|
+
|
|
200
|
+
${this.formatChecklist(context.acceptanceCriteria, 'Acceptance item 1')}
|
|
201
|
+
|
|
202
|
+
## Decision
|
|
203
|
+
|
|
204
|
+
- [ ] Ready to archive`;
|
|
205
|
+
return this.withFrontmatter({
|
|
206
|
+
feature: context.feature,
|
|
207
|
+
created,
|
|
208
|
+
status: context.placement === 'queued' ? 'queued' : 'verifying',
|
|
209
|
+
optional_steps: context.optionalSteps,
|
|
210
|
+
passed_optional_steps: [],
|
|
211
|
+
}, this.copy(context.documentLanguage, zh, en));
|
|
212
|
+
}
|
|
213
|
+
generateReviewTemplate(input) {
|
|
214
|
+
const context = this.inputs.normalizeFeatureTemplateInput(input);
|
|
215
|
+
const created = this.getCurrentDate();
|
|
216
|
+
const projectDocs = context.projectContext.projectDocs ?? [];
|
|
217
|
+
const moduleSkills = context.projectContext.moduleSkills ?? [];
|
|
218
|
+
const linkedKnowledgeDocs = [
|
|
219
|
+
...(context.projectContext.apiDocs ?? []),
|
|
220
|
+
...(context.projectContext.designDocs ?? []),
|
|
221
|
+
...(context.projectContext.planningDocs ?? []),
|
|
222
|
+
];
|
|
223
|
+
const affects = context.affects.length > 0 ? context.affects.join(', ') : 'TBD';
|
|
224
|
+
const zh = `## Review Scope
|
|
225
|
+
|
|
226
|
+
- Change: \`${context.feature}\`
|
|
227
|
+
- Mode: \`${context.mode}\`
|
|
228
|
+
- Affects: ${context.affects.length > 0 ? context.affects.join(', ') : '待补充'}
|
|
229
|
+
|
|
230
|
+
## Context References
|
|
231
|
+
|
|
232
|
+
**Project docs:**
|
|
233
|
+
${this.formatReferenceList(projectDocs, '待补充')}
|
|
234
|
+
|
|
235
|
+
**Module skills:**
|
|
236
|
+
${this.formatReferenceList(moduleSkills, '待补充')}
|
|
237
|
+
|
|
238
|
+
**API / design / planning docs:**
|
|
239
|
+
${this.formatReferenceList(linkedKnowledgeDocs, '待补充')}
|
|
240
|
+
|
|
241
|
+
## Review Checklist
|
|
242
|
+
|
|
243
|
+
- [ ] 实现是否符合 proposal 中的背景、目标和范围
|
|
244
|
+
- [ ] 关联模块技能是否已同步
|
|
245
|
+
- [ ] API / 设计 / 计划文档是否需要更新
|
|
246
|
+
- [ ] 验证项是否覆盖主要风险
|
|
247
|
+
- [ ] 是否存在回归风险、边界遗漏或未决问题
|
|
248
|
+
|
|
249
|
+
## Findings
|
|
250
|
+
|
|
251
|
+
- [ ] 待补充
|
|
252
|
+
|
|
253
|
+
## Decision
|
|
254
|
+
|
|
255
|
+
- [ ] 可以继续实现
|
|
256
|
+
- [ ] 需要补充修改
|
|
257
|
+
- [ ] 可以进入验证 / 归档流程`;
|
|
258
|
+
const en = `## Review Scope
|
|
259
|
+
|
|
260
|
+
- Change: \`${context.feature}\`
|
|
261
|
+
- Mode: \`${context.mode}\`
|
|
262
|
+
- Affects: ${affects}
|
|
263
|
+
|
|
264
|
+
## Context References
|
|
265
|
+
|
|
266
|
+
**Project docs:**
|
|
267
|
+
${this.formatReferenceList(projectDocs, 'TBD')}
|
|
268
|
+
|
|
269
|
+
**Module skills:**
|
|
270
|
+
${this.formatReferenceList(moduleSkills, 'TBD')}
|
|
271
|
+
|
|
272
|
+
**API / design / planning docs:**
|
|
273
|
+
${this.formatReferenceList(linkedKnowledgeDocs, 'TBD')}
|
|
274
|
+
|
|
275
|
+
## Review Checklist
|
|
276
|
+
|
|
277
|
+
- [ ] Implementation matches proposal background, goals, and scope
|
|
278
|
+
- [ ] Related module skills are updated
|
|
279
|
+
- [ ] API / design / planning docs are aligned
|
|
280
|
+
- [ ] Verification covers the main risks
|
|
281
|
+
- [ ] Regressions, gaps, and open questions are tracked
|
|
282
|
+
|
|
283
|
+
## Findings
|
|
284
|
+
|
|
285
|
+
- [ ] TBD
|
|
286
|
+
|
|
287
|
+
## Decision
|
|
288
|
+
|
|
289
|
+
- [ ] Continue implementation
|
|
290
|
+
- [ ] Require follow-up changes
|
|
291
|
+
- [ ] Ready for verification / archive`;
|
|
292
|
+
return this.withFrontmatter({
|
|
293
|
+
feature: context.feature,
|
|
294
|
+
created,
|
|
295
|
+
status: 'pending_review',
|
|
296
|
+
}, this.copy(context.documentLanguage, zh, en));
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
exports.ExecutionTemplateBuilder = ExecutionTemplateBuilder;
|
|
300
|
+
//# sourceMappingURL=ExecutionTemplateBuilder.js.map
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { ProjectMode } from '../../core/types';
|
|
2
|
+
import { TemplateBuilderBase } from './TemplateBuilderBase';
|
|
3
|
+
import { TemplateInputFactory } from './TemplateInputFactory';
|
|
4
|
+
import { ProjectBootstrapInput } from './templateTypes';
|
|
5
|
+
export declare class ProjectTemplateBuilder extends TemplateBuilderBase {
|
|
6
|
+
private readonly inputs;
|
|
7
|
+
constructor(inputs: TemplateInputFactory);
|
|
8
|
+
generateProjectReadmeTemplate(fallbackName: string, mode: ProjectMode, input?: ProjectBootstrapInput): string;
|
|
9
|
+
generateRootSkillTemplate(fallbackName: string, mode: ProjectMode, input?: ProjectBootstrapInput): string;
|
|
10
|
+
generateDocsSkillTemplate(fallbackName: string, input?: ProjectBootstrapInput): string;
|
|
11
|
+
generateSrcSkillTemplate(fallbackName: string, input?: ProjectBootstrapInput): string;
|
|
12
|
+
generateCoreSkillTemplate(fallbackName: string, input?: ProjectBootstrapInput): string;
|
|
13
|
+
generateTestsSkillTemplate(fallbackName: string, input?: ProjectBootstrapInput): string;
|
|
14
|
+
generateProjectOverviewTemplate(fallbackName: string, mode: ProjectMode, input?: ProjectBootstrapInput): string;
|
|
15
|
+
generateTechStackTemplate(fallbackName: string, input?: ProjectBootstrapInput): string;
|
|
16
|
+
generateArchitectureTemplate(fallbackName: string, input?: ProjectBootstrapInput): string;
|
|
17
|
+
generateModuleMapTemplate(fallbackName: string, input?: ProjectBootstrapInput): string;
|
|
18
|
+
generateApiOverviewTemplate(fallbackName: string, input?: ProjectBootstrapInput): string;
|
|
19
|
+
generateDesignDocsTemplate(fallbackName: string, input?: ProjectBootstrapInput): string;
|
|
20
|
+
generatePlanningDocsTemplate(fallbackName: string, input?: ProjectBootstrapInput): string;
|
|
21
|
+
generateApiDocsTemplate(fallbackName: string, input?: ProjectBootstrapInput): string;
|
|
22
|
+
generateModuleSkillTemplate(fallbackName: string, moduleName: string, input?: ProjectBootstrapInput, moduleSlug?: string): string;
|
|
23
|
+
generateApiAreaDocTemplate(fallbackName: string, apiAreaName: string, input?: ProjectBootstrapInput): string;
|
|
24
|
+
generateModuleApiDocTemplate(fallbackName: string, moduleName: string, input?: ProjectBootstrapInput, moduleSlug?: string): string;
|
|
25
|
+
generateDesignDocTemplate(fallbackName: string, docName: string, input?: ProjectBootstrapInput): string;
|
|
26
|
+
generatePlanningDocTemplate(fallbackName: string, docName: string, input?: ProjectBootstrapInput): string;
|
|
27
|
+
generateAiGuideTemplate(input?: ProjectBootstrapInput): string;
|
|
28
|
+
generateExecutionProtocolTemplate(input?: ProjectBootstrapInput): string;
|
|
29
|
+
generateBuildIndexScriptTemplate(): string;
|
|
30
|
+
private getProjectContext;
|
|
31
|
+
private getPresetModuleSkillBody;
|
|
32
|
+
private getPresetApiAreaDocBody;
|
|
33
|
+
private getPresetModuleApiDocBody;
|
|
34
|
+
private getPresetDesignDocBody;
|
|
35
|
+
private getPresetPlanningDocBody;
|
|
36
|
+
private slugify;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=ProjectTemplateBuilder.d.ts.map
|