@miniidealab/openlogos 0.8.0 → 0.8.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/codex-plugin-template/session-start.sh +1 -1
- package/dist/commands/change.d.ts +1 -1
- package/dist/commands/change.d.ts.map +1 -1
- package/dist/commands/change.js +54 -3
- package/dist/commands/change.js.map +1 -1
- package/dist/commands/detect.d.ts.map +1 -1
- package/dist/commands/detect.js +15 -1
- package/dist/commands/detect.js.map +1 -1
- package/dist/commands/init.d.ts +4 -3
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +18 -14
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/launch.d.ts +1 -1
- package/dist/commands/launch.d.ts.map +1 -1
- package/dist/commands/launch.js +71 -16
- package/dist/commands/launch.js.map +1 -1
- package/dist/commands/module.d.ts +2 -1
- package/dist/commands/module.d.ts.map +1 -1
- package/dist/commands/module.js +29 -9
- package/dist/commands/module.js.map +1 -1
- package/dist/commands/next.d.ts +13 -1
- package/dist/commands/next.d.ts.map +1 -1
- package/dist/commands/next.js +118 -48
- package/dist/commands/next.js.map +1 -1
- package/dist/commands/status.d.ts +34 -5
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +270 -96
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/sync.d.ts.map +1 -1
- package/dist/commands/sync.js +25 -4
- package/dist/commands/sync.js.map +1 -1
- package/dist/i18n.d.ts +1 -1
- package/dist/i18n.d.ts.map +1 -1
- package/dist/i18n.js +42 -22
- package/dist/i18n.js.map +1 -1
- package/dist/index.js +21 -10
- package/dist/index.js.map +1 -1
- package/dist/lib/migrate-lifecycle.d.ts +13 -0
- package/dist/lib/migrate-lifecycle.d.ts.map +1 -0
- package/dist/lib/migrate-lifecycle.js +55 -0
- package/dist/lib/migrate-lifecycle.js.map +1 -0
- package/opencode-plugin-template/commands/openlogos-launch.md +8 -3
- package/opencode-plugin-template/openlogos.js +10 -1
- package/package.json +1 -1
- package/skills/change-writer/SKILL.en.md +8 -1
- package/skills/change-writer/SKILL.md +8 -1
- package/skills/merge-executor/SKILL.en.md +7 -1
- package/skills/merge-executor/SKILL.md +9 -1
- package/spec/change-management.md +5 -3
- package/spec/cli-json-output.md +99 -12
- package/spec/logos-project.md +3 -6
- package/spec/module-naming-convention.md +2 -4
- package/spec/opencode-plugin.md +3 -3
package/dist/i18n.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export declare function readLocale(root: string): Locale;
|
|
|
3
3
|
export declare function t(locale: Locale, key: string, vars?: Record<string, string>): string;
|
|
4
4
|
export declare const PHASE_KEYS: readonly ["phase.1", "phase.2", "phase.3-0", "phase.3-1", "phase.3-2-api", "phase.3-2-db", "phase.3-3a", "phase.3-3b", "phase.3-4", "phase.3-5"];
|
|
5
5
|
export declare const SUGGEST_KEYS: Record<string, string>;
|
|
6
|
-
export declare function proposalTemplate(locale: Locale, slug: string): string;
|
|
6
|
+
export declare function proposalTemplate(locale: Locale, slug: string, module?: string): string;
|
|
7
7
|
export declare function tasksTemplate(locale: Locale): string;
|
|
8
8
|
export declare function mergePromptTemplate(locale: Locale, slug: string, proposalContent: string, deltas: Array<{
|
|
9
9
|
relativePath: string;
|
package/dist/i18n.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ/C;
|
|
1
|
+
{"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,MAAM,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjC,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAQ/C;AAuTD,wBAAgB,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAQpF;AAGD,eAAO,MAAM,UAAU,kJAIb,CAAC;AAEX,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAW/C,CAAC;AAIF,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CA2CtF;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAuCpD;AAED,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,eAAe,EAAE,MAAM,EACvB,MAAM,EAAE,KAAK,CAAC;IAAE,YAAY,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,GAChF,MAAM,CA0ER;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CASzD;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAO7D"}
|
package/dist/i18n.js
CHANGED
|
@@ -65,7 +65,7 @@ const messages = {
|
|
|
65
65
|
'status.proposalStep.writing': 'writing — fill in proposal.md and tasks.md',
|
|
66
66
|
'status.proposalStep.implementing': 'implementing — start coding per tasks.md',
|
|
67
67
|
'status.proposalStep.in-progress': 'in progress — continue implementation, then merge',
|
|
68
|
-
'status.proposalStep.ready-to-merge': 'ready to merge —
|
|
68
|
+
'status.proposalStep.ready-to-merge': 'ready to merge — explicitly request `openlogos merge` to proceed',
|
|
69
69
|
'status.allDone': 'All phases complete! Run `openlogos verify` to check test acceptance.',
|
|
70
70
|
'status.allDoneHint': ' → Or run `openlogos launch` to start iteration development',
|
|
71
71
|
'status.suggestNext': 'Suggested next step: {label}',
|
|
@@ -114,23 +114,32 @@ const messages = {
|
|
|
114
114
|
'change.step1': ' 1. Tell AI: "Help me fill in change proposal {slug}"',
|
|
115
115
|
'change.step2': ' 2. AI will analyze impact and fill in proposal.md + tasks.md',
|
|
116
116
|
'change.step3': ' 3. Then work through tasks.md, putting deltas in deltas/',
|
|
117
|
-
'change.step4': ' 4. When done,
|
|
117
|
+
'change.step4': ' 4. When done, explicitly request `openlogos merge {slug}` to generate merge instructions',
|
|
118
118
|
'change.guardConflict': 'Error: Active change proposal \'{activeChange}\' is still in progress.',
|
|
119
|
-
'change.guardConflictHint': 'Finish it and
|
|
119
|
+
'change.guardConflictHint': 'Finish it and explicitly request `openlogos archive {activeChange}` before creating a new proposal.',
|
|
120
120
|
'change.guardInvalid': 'Error: logos/.openlogos-guard is invalid.',
|
|
121
121
|
'change.guardInvalidHint': 'Fix or remove the guard file before creating a new proposal.',
|
|
122
|
+
'change.moduleAuto': 'Module: {module} (auto-detected, only one module registered)',
|
|
123
|
+
'change.moduleDefault': 'Module: {module} (defaulted to core — use --module <id> to specify another)',
|
|
124
|
+
'change.moduleAssigned': 'Module: {module}',
|
|
125
|
+
'change.moduleNotFound': 'Error: Module \'{module}\' not found in logos-project.yaml.',
|
|
126
|
+
'change.moduleNotFoundHint': 'Run `openlogos module list` to see available modules.',
|
|
122
127
|
// merge
|
|
123
128
|
'merge.summary': 'Merge Summary:',
|
|
124
129
|
'merge.proposal': ' - Change proposal: {slug}',
|
|
125
130
|
'merge.deltaCount': ' - Delta files: {count}',
|
|
126
131
|
'merge.aiHint': 'Tell AI: "Read logos/changes/{slug}/MERGE_PROMPT.md and execute merge"',
|
|
127
|
-
'merge.archiveHint': 'After merge,
|
|
132
|
+
'merge.archiveHint': 'After merge, explicitly request `openlogos archive {slug}` to archive the proposal.',
|
|
128
133
|
// launch
|
|
129
|
-
'launch.done': '✓
|
|
134
|
+
'launch.done': '✓ Module "{module}" launched! Change management is now active.',
|
|
130
135
|
'launch.hint1': ' From now on, modifications to existing documents require a change proposal.',
|
|
131
136
|
'launch.hint2': ' Run `openlogos change <slug>` to start a new change proposal.',
|
|
132
137
|
'launch.rulesUpdated': 'AI rules updated in {target}',
|
|
133
|
-
'launch.
|
|
138
|
+
'launch.moduleAlreadyLaunched': 'Module "{module}" is already launched. No action needed.',
|
|
139
|
+
'launch.multiModuleError': 'Multiple modules found ({modules}). Please specify: `openlogos launch <module-id>`',
|
|
140
|
+
'launch.moduleNotFound': 'Module "{module}" not found in logos-project.yaml.',
|
|
141
|
+
'launch.migrationAuto': 'Migrated: module "{module}" auto-marked as launched (was config.lifecycle: active).',
|
|
142
|
+
'launch.migrationWarn': 'Warning: config.lifecycle is "active" but no module is marked launched. Run `openlogos launch <module-id>` to migrate.',
|
|
134
143
|
'launch.suggest': 'Run `openlogos launch` to activate change management for future iterations.',
|
|
135
144
|
// next
|
|
136
145
|
'next.title': 'Next Step',
|
|
@@ -141,9 +150,9 @@ const messages = {
|
|
|
141
150
|
'next.startCoding': 'Start implementing per tasks.md',
|
|
142
151
|
'next.startCodingDetail': 'Tell AI: "Execute tasks in logos/changes/{slug}/tasks.md" — implement code and write tests.',
|
|
143
152
|
'next.continueImpl': 'Continue implementation and run tests',
|
|
144
|
-
'next.continueImplDetail': 'When all tasks are done,
|
|
153
|
+
'next.continueImplDetail': 'When all tasks are done, explicitly request `openlogos merge {slug}` to generate merge instructions.',
|
|
145
154
|
'next.merge': 'Merge and archive the change proposal',
|
|
146
|
-
'next.mergeDetail': '
|
|
155
|
+
'next.mergeDetail': 'Explicitly request `openlogos merge {slug}`, then after review explicitly request `openlogos archive {slug}`.',
|
|
147
156
|
'next.launch': 'Activate change management for future iterations',
|
|
148
157
|
'next.phaseDetail': 'Current phase: {phase}',
|
|
149
158
|
// archive
|
|
@@ -201,8 +210,8 @@ const messages = {
|
|
|
201
210
|
'status.proposalStepLabel': '当前步骤',
|
|
202
211
|
'status.proposalStep.writing': '填写提案 — 请完善 proposal.md 和 tasks.md',
|
|
203
212
|
'status.proposalStep.implementing': '待实现 — 按 tasks.md 开始编码',
|
|
204
|
-
'status.proposalStep.in-progress': '实现中 —
|
|
205
|
-
'status.proposalStep.ready-to-merge': '可合并 —
|
|
213
|
+
'status.proposalStep.in-progress': '实现中 — 继续完成实现,完成后明确授权执行 merge',
|
|
214
|
+
'status.proposalStep.ready-to-merge': '可合并 — 明确授权执行 merge,再明确授权执行归档',
|
|
206
215
|
'status.allDone': '所有阶段已完成!运行 `openlogos verify` 查看测试验收结果。',
|
|
207
216
|
'status.allDoneHint': ' → 或运行 `openlogos launch` 开始迭代开发',
|
|
208
217
|
'status.suggestNext': '建议下一步:{label}',
|
|
@@ -251,23 +260,32 @@ const messages = {
|
|
|
251
260
|
'change.step1': ' 1. 对 AI 说:「帮我填写变更提案 {slug}」',
|
|
252
261
|
'change.step2': ' 2. AI 将分析影响范围并填写 proposal.md + tasks.md',
|
|
253
262
|
'change.step3': ' 3. 然后按 tasks.md 逐项产出 delta 文件到 deltas/',
|
|
254
|
-
'change.step4': ' 4.
|
|
263
|
+
'change.step4': ' 4. 完成后明确授权执行 `openlogos merge {slug}` 生成合并指令',
|
|
255
264
|
'change.guardConflict': 'Error: 当前活动变更提案 \'{activeChange}\' 尚未完成。',
|
|
256
|
-
'change.guardConflictHint': '
|
|
265
|
+
'change.guardConflictHint': '请先完成该提案,并明确授权执行 `openlogos archive {activeChange}` 后再创建新提案。',
|
|
257
266
|
'change.guardInvalid': 'Error: logos/.openlogos-guard 内容无效。',
|
|
258
267
|
'change.guardInvalidHint': '请先修复或删除 guard 文件,再创建新提案。',
|
|
268
|
+
'change.moduleAuto': '归属模块:{module}(自动挂靠,当前只有一个模块)',
|
|
269
|
+
'change.moduleDefault': '归属模块:{module}(默认挂靠 core,可用 --module <id> 指定其他模块)',
|
|
270
|
+
'change.moduleAssigned': '归属模块:{module}',
|
|
271
|
+
'change.moduleNotFound': 'Error: 模块 \'{module}\' 在 logos-project.yaml 中不存在。',
|
|
272
|
+
'change.moduleNotFoundHint': '运行 `openlogos module list` 查看可用模块。',
|
|
259
273
|
// merge
|
|
260
274
|
'merge.summary': '合并摘要:',
|
|
261
275
|
'merge.proposal': ' - 变更提案:{slug}',
|
|
262
276
|
'merge.deltaCount': ' - Delta 文件:{count} 个',
|
|
263
277
|
'merge.aiHint': '对 AI 说:「读取 logos/changes/{slug}/MERGE_PROMPT.md 并执行合并」',
|
|
264
|
-
'merge.archiveHint': '
|
|
278
|
+
'merge.archiveHint': '合并完成后,明确授权执行 `openlogos archive {slug}` 归档提案。',
|
|
265
279
|
// launch
|
|
266
|
-
'launch.done': '✓
|
|
280
|
+
'launch.done': '✓ 模块 "{module}" 已 launch!变更管理已激活。',
|
|
267
281
|
'launch.hint1': ' 从现在起,修改已有文档必须先创建变更提案。',
|
|
268
282
|
'launch.hint2': ' 运行 `openlogos change <slug>` 创建新的变更提案。',
|
|
269
283
|
'launch.rulesUpdated': 'AI 规则已更新到 {target}',
|
|
270
|
-
'launch.
|
|
284
|
+
'launch.moduleAlreadyLaunched': '模块 "{module}" 已处于 launched 状态,无需重复操作。',
|
|
285
|
+
'launch.multiModuleError': '存在多个模块({modules}),请明确指定:`openlogos launch <module-id>`',
|
|
286
|
+
'launch.moduleNotFound': '模块 "{module}" 在 logos-project.yaml 中不存在。',
|
|
287
|
+
'launch.migrationAuto': '已迁移:模块 "{module}" 自动标记为 launched(原 config.lifecycle: active)。',
|
|
288
|
+
'launch.migrationWarn': '警告:config.lifecycle 为 "active" 但没有模块标记为 launched,请运行 `openlogos launch <module-id>` 完成迁移。',
|
|
271
289
|
'launch.suggest': '运行 `openlogos launch` 激活变更管理,开始迭代开发。',
|
|
272
290
|
// next
|
|
273
291
|
'next.title': '下一步',
|
|
@@ -278,9 +296,9 @@ const messages = {
|
|
|
278
296
|
'next.startCoding': '按 tasks.md 开始编码实现',
|
|
279
297
|
'next.startCodingDetail': '对 AI 说:「执行 logos/changes/{slug}/tasks.md 中的任务」— 实现代码并编写测试。',
|
|
280
298
|
'next.continueImpl': '继续实现并运行测试',
|
|
281
|
-
'next.continueImplDetail': '
|
|
299
|
+
'next.continueImplDetail': '所有任务完成后,明确授权执行 `openlogos merge {slug}` 生成合并指令。',
|
|
282
300
|
'next.merge': '合并并归档变更提案',
|
|
283
|
-
'next.mergeDetail': '
|
|
301
|
+
'next.mergeDetail': '明确授权执行 `openlogos merge {slug}`,审核后再明确授权执行 `openlogos archive {slug}`。',
|
|
284
302
|
'next.launch': '激活变更管理,开始迭代开发',
|
|
285
303
|
'next.phaseDetail': '当前阶段:{phase}',
|
|
286
304
|
// archive
|
|
@@ -316,10 +334,12 @@ export const SUGGEST_KEYS = {
|
|
|
316
334
|
'phase.3-5': 'suggest.phase3-5',
|
|
317
335
|
};
|
|
318
336
|
// --- Long-form templates ---
|
|
319
|
-
export function proposalTemplate(locale, slug) {
|
|
337
|
+
export function proposalTemplate(locale, slug, module) {
|
|
338
|
+
const createdAt = new Date().toISOString().slice(0, 10);
|
|
339
|
+
const meta = module ? `\n> module: ${module} | created: ${createdAt}\n` : '';
|
|
320
340
|
if (locale === 'zh') {
|
|
321
341
|
return `# 变更提案:${slug}
|
|
322
|
-
|
|
342
|
+
${meta}
|
|
323
343
|
## 变更原因
|
|
324
344
|
[为什么要做这个变更?来源于哪个需求/反馈/Bug?]
|
|
325
345
|
|
|
@@ -339,7 +359,7 @@ export function proposalTemplate(locale, slug) {
|
|
|
339
359
|
`;
|
|
340
360
|
}
|
|
341
361
|
return `# Change Proposal: ${slug}
|
|
342
|
-
|
|
362
|
+
${meta}
|
|
343
363
|
## Reason
|
|
344
364
|
[Why is this change needed? Which requirement/feedback/bug triggered it?]
|
|
345
365
|
|
|
@@ -432,7 +452,7 @@ ${proposalContent}
|
|
|
432
452
|
5. 保持主文档的原有格式和风格
|
|
433
453
|
6. 如果主文档有"最后更新"时间戳,同步更新
|
|
434
454
|
7. 所有变更完成后,列出修改清单
|
|
435
|
-
8.
|
|
455
|
+
8. 所有变更合并完成后,提示用户:如需归档,请明确授权执行 \`openlogos archive ${slug}\`。AI 未经用户明确授权不得自行执行此命令;用户明确要求归档时(包括使用 \`/openlogos:archive\` slash command),AI 可以代为执行。
|
|
436
456
|
`;
|
|
437
457
|
return prompt;
|
|
438
458
|
}
|
|
@@ -468,7 +488,7 @@ ${proposalContent}
|
|
|
468
488
|
5. Preserve the original formatting and style of the main document
|
|
469
489
|
6. If the main document has a "last updated" timestamp, update it
|
|
470
490
|
7. After all changes are complete, list the modification summary
|
|
471
|
-
8.
|
|
491
|
+
8. After all changes are merged, inform the user: to archive, explicitly authorize running \`openlogos archive ${slug}\`. AI must not execute this command without explicit user authorization; when the user explicitly requests archiving (including via the \`/openlogos:archive\` slash command), AI may execute it.
|
|
472
492
|
`;
|
|
473
493
|
return prompt;
|
|
474
494
|
}
|
package/dist/i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAIjC,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,MAAM,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC,CAAC,YAAY,CAAC,CAAC;IACxB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,QAAQ,GAA2C;IACvD,EAAE,EAAE;QACF,OAAO;QACP,eAAe,EAAE,8DAA8D;QAC/E,WAAW,EAAE,kCAAkC;QAC/C,YAAY,EAAE,gEAAgE;QAC9E,cAAc,EAAE,sIAAsI;QACtJ,YAAY,EAAE,+DAA+D;QAC7E,YAAY,EAAE,2DAA2D;QACzE,mBAAmB,EAAE,iCAAiC;QACtD,kBAAkB,EAAE,6BAA6B;QACjD,kBAAkB,EAAE,mCAAmC;QACvD,iBAAiB,EAAE,wDAAwD;QAC3E,iBAAiB,EAAE,kCAAkC;QACrD,mBAAmB,EAAE,qCAAqC;QAC1D,uBAAuB,EAAE,4BAA4B;QACrD,qBAAqB,EAAE,eAAe;QACtC,kBAAkB,EAAE,YAAY;QAChC,mBAAmB,EAAE,aAAa;QAClC,kBAAkB,EAAE,YAAY;QAChC,gBAAgB,EAAE,iCAAiC;QACnD,mBAAmB,EAAE,0CAA0C;QAC/D,qBAAqB,EAAE,qCAAqC;QAC5D,mBAAmB,EAAE,mCAAmC;QACxD,6BAA6B,EAAE,sCAAsC;QACrE,2BAA2B,EAAE,oCAAoC;QACjE,4BAA4B,EAAE,4DAA4D;QAC1F,4BAA4B,EAAE,mEAAmE;QACjG,+BAA+B,EAAE,yEAAyE;QAC1G,0BAA0B,EAAE,mCAAmC;QAC/D,wBAAwB,EAAE,iCAAiC;QAC3D,yBAAyB,EAAE,+DAA+D;QAC1F,yBAAyB,EAAE,8DAA8D;QACzF,iBAAiB,EAAE,gEAAgE;QACnF,gBAAgB,EAAE,yDAAyD;QAE3E,SAAS;QACT,SAAS,EAAE,8BAA8B;QACzC,SAAS,EAAE,iCAAiC;QAC5C,WAAW,EAAE,0BAA0B;QACvC,WAAW,EAAE,+BAA+B;QAC5C,eAAe,EAAE,wBAAwB;QACzC,cAAc,EAAE,6BAA6B;QAC7C,YAAY,EAAE,iDAAiD;QAC/D,YAAY,EAAE,sCAAsC;QACpD,WAAW,EAAE,iCAAiC;QAC9C,WAAW,EAAE,sCAAsC;QACnD,gBAAgB,EAAE,SAAS;QAC3B,wBAAwB,EAAE,yBAAyB;QACnD,qBAAqB,EAAE,eAAe;QACtC,0BAA0B,EAAE,MAAM;QAClC,6BAA6B,EAAE,4CAA4C;QAC3E,kCAAkC,EAAE,0CAA0C;QAC9E,iCAAiC,EAAE,mDAAmD;QACtF,oCAAoC,EAAE,
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -25,10 +25,14 @@ Commands:
|
|
|
25
25
|
--ai-tool <claude-code|opencode|codex|cursor|other|all> Set AI tool (skip prompt)
|
|
26
26
|
sync Regenerate AI instruction files (AGENTS.md, CLAUDE.md)
|
|
27
27
|
status Show current project phase and suggest next steps
|
|
28
|
+
--module <id> Filter to a specific module
|
|
28
29
|
next Show the single most actionable next step
|
|
30
|
+
--module <id> Filter to a specific module
|
|
29
31
|
verify Verify test results against test case specs
|
|
30
|
-
launch Activate change management after first development cycle
|
|
32
|
+
launch Activate change management for a module after first development cycle
|
|
33
|
+
launch [module-id] Specify module (auto-detects if only one exists)
|
|
31
34
|
change <slug> Create a change proposal for iterative updates
|
|
35
|
+
--module <id> Assign proposal to a specific module
|
|
32
36
|
merge <slug> Generate MERGE_PROMPT.md for AI to execute delta merging
|
|
33
37
|
archive <slug> Archive a completed change proposal
|
|
34
38
|
detect Show CLI version and project detection info
|
|
@@ -38,7 +42,7 @@ Commands:
|
|
|
38
42
|
Options:
|
|
39
43
|
--help, -h Show this help message
|
|
40
44
|
--version, -v Show version number
|
|
41
|
-
--format <json> Output in JSON format (supported: status, verify, detect)
|
|
45
|
+
--format <json> Output in JSON format (supported: status, next, verify, detect)
|
|
42
46
|
|
|
43
47
|
Examples:
|
|
44
48
|
openlogos init my-saas-project
|
|
@@ -88,23 +92,30 @@ async function main() {
|
|
|
88
92
|
case 'sync':
|
|
89
93
|
sync();
|
|
90
94
|
break;
|
|
91
|
-
case 'status':
|
|
92
|
-
|
|
95
|
+
case 'status': {
|
|
96
|
+
const moduleArg = args.includes('--module') ? args[args.indexOf('--module') + 1] : undefined;
|
|
97
|
+
status(format, moduleArg);
|
|
93
98
|
break;
|
|
94
|
-
|
|
95
|
-
|
|
99
|
+
}
|
|
100
|
+
case 'next': {
|
|
101
|
+
const moduleArg = args.includes('--module') ? args[args.indexOf('--module') + 1] : undefined;
|
|
102
|
+
next(format, moduleArg);
|
|
96
103
|
break;
|
|
104
|
+
}
|
|
97
105
|
case 'verify':
|
|
98
106
|
verify(format);
|
|
99
107
|
break;
|
|
100
|
-
case 'change':
|
|
101
|
-
|
|
108
|
+
case 'change': {
|
|
109
|
+
const restArgs = args.slice(1).filter(a => !a.startsWith('--'));
|
|
110
|
+
const moduleArg = args.includes('--module') ? args[args.indexOf('--module') + 1] : undefined;
|
|
111
|
+
change(restArgs[0], moduleArg);
|
|
102
112
|
break;
|
|
113
|
+
}
|
|
103
114
|
case 'merge':
|
|
104
115
|
merge(args[1]);
|
|
105
116
|
break;
|
|
106
117
|
case 'launch':
|
|
107
|
-
launch();
|
|
118
|
+
launch(args[1]);
|
|
108
119
|
break;
|
|
109
120
|
case 'archive':
|
|
110
121
|
archive(args[1]);
|
|
@@ -119,7 +130,7 @@ async function main() {
|
|
|
119
130
|
const sub = args[1];
|
|
120
131
|
switch (sub) {
|
|
121
132
|
case 'list':
|
|
122
|
-
moduleList();
|
|
133
|
+
moduleList(format);
|
|
123
134
|
break;
|
|
124
135
|
case 'add':
|
|
125
136
|
moduleAdd(args[2]);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACvD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACzF,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAG/C,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface MigrateResult {
|
|
2
|
+
migrated: boolean;
|
|
3
|
+
autoMarked?: string;
|
|
4
|
+
warned?: boolean;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Detects old config.lifecycle === 'active' with no launched modules.
|
|
8
|
+
* Single-module: auto-marks it as launched and returns autoMarked.
|
|
9
|
+
* Multi-module: emits a warning and returns warned=true.
|
|
10
|
+
* Called by both sync and launch before deriving isLaunched.
|
|
11
|
+
*/
|
|
12
|
+
export declare function migrateProjectLifecycle(root: string): MigrateResult;
|
|
13
|
+
//# sourceMappingURL=migrate-lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-lifecycle.d.ts","sourceRoot":"","sources":["../../src/lib/migrate-lifecycle.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,aAAa,CA+CnE"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, existsSync } from 'node:fs';
|
|
2
|
+
import { join } from 'node:path';
|
|
3
|
+
import { parse as parseYaml, stringify as stringifyYaml } from 'yaml';
|
|
4
|
+
/**
|
|
5
|
+
* Detects old config.lifecycle === 'active' with no launched modules.
|
|
6
|
+
* Single-module: auto-marks it as launched and returns autoMarked.
|
|
7
|
+
* Multi-module: emits a warning and returns warned=true.
|
|
8
|
+
* Called by both sync and launch before deriving isLaunched.
|
|
9
|
+
*/
|
|
10
|
+
export function migrateProjectLifecycle(root) {
|
|
11
|
+
const configPath = join(root, 'logos', 'logos.config.json');
|
|
12
|
+
if (!existsSync(configPath))
|
|
13
|
+
return { migrated: false };
|
|
14
|
+
let config;
|
|
15
|
+
try {
|
|
16
|
+
config = JSON.parse(readFileSync(configPath, 'utf-8'));
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return { migrated: false };
|
|
20
|
+
}
|
|
21
|
+
if (config['lifecycle'] !== 'active')
|
|
22
|
+
return { migrated: false };
|
|
23
|
+
const yamlPath = join(root, 'logos', 'logos-project.yaml');
|
|
24
|
+
if (!existsSync(yamlPath))
|
|
25
|
+
return { migrated: false };
|
|
26
|
+
let yaml;
|
|
27
|
+
try {
|
|
28
|
+
yaml = parseYaml(readFileSync(yamlPath, 'utf-8')) ?? {};
|
|
29
|
+
}
|
|
30
|
+
catch {
|
|
31
|
+
return { migrated: false };
|
|
32
|
+
}
|
|
33
|
+
const modules = Array.isArray(yaml['modules'])
|
|
34
|
+
? yaml['modules']
|
|
35
|
+
: [];
|
|
36
|
+
const hasLaunched = modules.some(m => m.lifecycle === 'launched');
|
|
37
|
+
if (hasLaunched)
|
|
38
|
+
return { migrated: false };
|
|
39
|
+
if (modules.length === 1) {
|
|
40
|
+
modules[0].lifecycle = 'launched';
|
|
41
|
+
writeFileSync(yamlPath, stringifyYaml(yaml, { lineWidth: 0 }));
|
|
42
|
+
// Remove stale project-level lifecycle field
|
|
43
|
+
delete config['lifecycle'];
|
|
44
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
45
|
+
return { migrated: true, autoMarked: modules[0].id };
|
|
46
|
+
}
|
|
47
|
+
if (modules.length > 1) {
|
|
48
|
+
// Remove stale project-level lifecycle field even in multi-module case
|
|
49
|
+
delete config['lifecycle'];
|
|
50
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2));
|
|
51
|
+
return { migrated: true, warned: true };
|
|
52
|
+
}
|
|
53
|
+
return { migrated: false };
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=migrate-lifecycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"migrate-lifecycle.js","sourceRoot":"","sources":["../../src/lib/migrate-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,KAAK,IAAI,SAAS,EAAE,SAAS,IAAI,aAAa,EAAE,MAAM,MAAM,CAAC;AAQtE;;;;;GAKG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY;IAClD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,mBAAmB,CAAC,CAAC;IAC5D,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAExD,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,MAAM,CAAC,WAAW,CAAC,KAAK,QAAQ;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAEjE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;IAC3D,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAEtD,IAAI,IAA6B,CAAC;IAClC,IAAI,CAAC;QACH,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,CAAC,CAAE,IAAI,CAAC,SAAS,CAA+C;QAChE,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,KAAK,UAAU,CAAC,CAAC;IAClE,IAAI,WAAW;QAAE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAE5C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,UAAU,CAAC;QAClC,aAAa,CAAC,QAAQ,EAAE,aAAa,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;QAC/D,6CAA6C;QAC7C,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3B,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;IACvD,CAAC;IAED,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,uEAAuE;QACvE,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3B,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC3D,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;IAC1C,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC"}
|
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
---
|
|
2
|
-
description: "OpenLogos —
|
|
2
|
+
description: "OpenLogos — launch a module into change-management mode / 将模块切换到变更管理阶段"
|
|
3
3
|
---
|
|
4
4
|
|
|
5
5
|
在项目根执行:
|
|
6
6
|
|
|
7
|
-
!`openlogos launch`
|
|
7
|
+
!`openlogos launch $ARGUMENTS`
|
|
8
8
|
|
|
9
|
-
|
|
9
|
+
(若项目只有一个模块,可不传参数,CLI 自动识别;多模块时需传 module-id,例如 `/openlogos-launch core`。)
|
|
10
|
+
|
|
11
|
+
向用户解释:
|
|
12
|
+
- 指定模块的 `lifecycle` 已切换为 `launched`
|
|
13
|
+
- 后续对该模块的修改必须先通过 `openlogos change <slug>` 创建变更提案
|
|
14
|
+
- 使用 `change` / `merge` / `archive` 工作流推进迭代
|
|
@@ -12,7 +12,7 @@ const COMMANDS = {
|
|
|
12
12
|
next: { cli: ["status"], args: "none" },
|
|
13
13
|
sync: { cli: ["sync"], args: "none" },
|
|
14
14
|
verify: { cli: ["verify"], args: "none" },
|
|
15
|
-
launch: { cli: ["launch"], args: "
|
|
15
|
+
launch: { cli: ["launch"], args: "optionalModuleId" },
|
|
16
16
|
init: { cli: ["init"], args: "optionalName" },
|
|
17
17
|
change: { cli: ["change"], args: "requiredSlug" },
|
|
18
18
|
merge: { cli: ["merge"], args: "requiredSlug" },
|
|
@@ -34,6 +34,15 @@ function parse(raw) {
|
|
|
34
34
|
if (spec.args === "none" && rest.length > 0) {
|
|
35
35
|
return { matched: true, ok: false, code: "E_ARG_INVALID", message: `${name} 不接受参数` };
|
|
36
36
|
}
|
|
37
|
+
if (spec.args === "optionalModuleId") {
|
|
38
|
+
if (rest.length > 1) {
|
|
39
|
+
return { matched: true, ok: false, code: "E_ARG_INVALID", message: `${name} 只接受 0 或 1 个参数(module-id)` };
|
|
40
|
+
}
|
|
41
|
+
if (rest.length === 1 && !SLUG_RE.test(rest[0])) {
|
|
42
|
+
return { matched: true, ok: false, code: "E_ARG_INVALID", message: `${name} 的 module-id 必须为合法 slug(小写字母/数字/连字符)` };
|
|
43
|
+
}
|
|
44
|
+
return { matched: true, ok: true, name, cliArgs: [...spec.cli, ...rest] };
|
|
45
|
+
}
|
|
37
46
|
if (spec.args === "optionalName" && rest.length > 1) {
|
|
38
47
|
return { matched: true, ok: false, code: "E_ARG_INVALID", message: "init 最多接受 1 个参数" };
|
|
39
48
|
}
|
package/package.json
CHANGED
|
@@ -116,10 +116,17 @@ Chain execution behavior rules:
|
|
|
116
116
|
1. AI reads `tasks.md` and executes items sequentially
|
|
117
117
|
2. After completing each task, report a summary of changes and automatically prompt "Continue to the next item?"
|
|
118
118
|
3. After the user says "Continue" or provides adjustments, proceed to the next item
|
|
119
|
-
4. After all tasks are completed, remind the user to
|
|
119
|
+
4. After all tasks are completed, remind the user to explicitly authorize running `openlogos merge <slug>`
|
|
120
120
|
|
|
121
121
|
**Key principle**: Do not make the user manually track the task checklist — AI should proactively drive the process.
|
|
122
122
|
|
|
123
|
+
**`openlogos merge` and `openlogos archive` are human confirmation points**:
|
|
124
|
+
- AI must not execute these commands without explicit user authorization
|
|
125
|
+
- When the user explicitly requests execution (including via `/openlogos:merge` or `/openlogos:archive` slash commands), AI may execute them
|
|
126
|
+
- Must not be triggered implicitly in scenarios like "continue", "finish up", or "follow the process"
|
|
127
|
+
|
|
128
|
+
AI is only responsible for driving content modifications and must not advance proposal state without explicit authorization.
|
|
129
|
+
|
|
123
130
|
## Output Specification
|
|
124
131
|
|
|
125
132
|
- File format: Markdown
|
|
@@ -116,10 +116,17 @@
|
|
|
116
116
|
1. AI 读取 `tasks.md`,按顺序逐项执行
|
|
117
117
|
2. 每完成一项任务,汇报修改摘要,并自动提示「继续下一项?」
|
|
118
118
|
3. 用户说「继续」或给出调整意见后,执行下一项
|
|
119
|
-
4.
|
|
119
|
+
4. 全部任务完成后,提醒用户明确授权运行 `openlogos merge <slug>`
|
|
120
120
|
|
|
121
121
|
**关键原则**:不要让用户手动跟踪任务清单——AI 应主动驱动流程。
|
|
122
122
|
|
|
123
|
+
**`openlogos merge` 和 `openlogos archive` 是人类确认点**:
|
|
124
|
+
- AI 未经用户明确授权不得自行执行这两个命令
|
|
125
|
+
- 用户明确要求执行(包括使用 `/openlogos:merge`、`/openlogos:archive` slash command)时,AI 可以代为执行
|
|
126
|
+
- 不得在"顺手完成流程"、"按流程走完"、"继续"等隐式场景中自动触发
|
|
127
|
+
|
|
128
|
+
AI 只负责驱动内容修改,不得在未获明确授权的情况下推进提案状态。
|
|
129
|
+
|
|
123
130
|
## 输出规范
|
|
124
131
|
|
|
125
132
|
- 文件格式:Markdown
|
|
@@ -52,7 +52,13 @@ Merge complete:
|
|
|
52
52
|
- [file path 1]: added x sections, modified y sections, deleted z sections
|
|
53
53
|
- [file path 2]: ...
|
|
54
54
|
|
|
55
|
-
Please verify the changes are correct, then
|
|
55
|
+
⚠️ **Please verify the changes are correct, then explicitly request the following command to archive the proposal:**
|
|
56
|
+
|
|
57
|
+
```bash
|
|
58
|
+
openlogos archive <slug>
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
**`openlogos archive` is a human confirmation point. AI must not execute it without explicit user authorization. When the user explicitly requests archiving (including via the `/openlogos:archive` slash command), AI may execute it.**
|
|
56
62
|
```
|
|
57
63
|
|
|
58
64
|
## Merge Principles
|
|
@@ -22,6 +22,7 @@
|
|
|
22
22
|
3. 精准定位主文档中的对应章节并执行合并
|
|
23
23
|
4. 保持主文档的格式和风格一致性
|
|
24
24
|
5. 输出变更摘要
|
|
25
|
+
6. **等待人类确认后停止** — 合并完成后 AI 的职责即结束,不得主动执行 `openlogos archive`
|
|
25
26
|
|
|
26
27
|
## 执行步骤
|
|
27
28
|
|
|
@@ -52,7 +53,13 @@
|
|
|
52
53
|
- [文件路径 1]:新增 x 节,修改 y 节,删除 z 节
|
|
53
54
|
- [文件路径 2]:...
|
|
54
55
|
|
|
55
|
-
|
|
56
|
+
⚠️ **请确认修改无误后,明确要求运行以下命令归档提案:**
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
openlogos archive <slug>
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
**`openlogos archive` 是人类确认点。AI 未经用户明确授权不得自行执行;用户明确要求归档时(包括使用 `/openlogos:archive` slash command),AI 可以代为执行。**
|
|
56
63
|
```
|
|
57
64
|
|
|
58
65
|
## 合并原则
|
|
@@ -74,6 +81,7 @@
|
|
|
74
81
|
- **MODIFIED 是最容易出错的**:章节标题可能有微小差异(大小写、空格),需要模糊匹配
|
|
75
82
|
- **保留变更痕迹**:如果主文档有"最后更新"时间戳,记得同步更新
|
|
76
83
|
- **delta 的顺序有意义**:需求文档的变更应在 API 文档之前处理,确保上下游一致
|
|
84
|
+
- **`openlogos archive` 是人类确认点**:AI 未经用户明确授权不得自行执行。用户明确要求归档(包括使用 `/openlogos:archive` slash command)时,AI 可以代为执行。
|
|
77
85
|
|
|
78
86
|
## 推荐提示词
|
|
79
87
|
|
|
@@ -105,6 +105,8 @@ Delta 文件的目录结构映射主文档目录:
|
|
|
105
105
|
|
|
106
106
|
## 变更工作流
|
|
107
107
|
|
|
108
|
+
> **核心原则**:`openlogos merge` 和 `openlogos archive` 是人类确认点。AI 可提醒、解释、准备命令;未经用户明确授权不得执行。用户以明确请求或 slash command(`/openlogos:merge`、`/openlogos:archive`)授权时,AI 可以执行对应命令。不得在"顺手完成流程"、"按流程走完"等隐式场景中自动触发。
|
|
109
|
+
|
|
108
110
|
```
|
|
109
111
|
1. 创建变更提案(CLI)
|
|
110
112
|
└── openlogos change {slug}
|
|
@@ -120,14 +122,14 @@ Delta 文件的目录结构映射主文档目录:
|
|
|
120
122
|
4. 审核变更提案
|
|
121
123
|
└── 团队/自审 proposal.md 和 delta 文件
|
|
122
124
|
|
|
123
|
-
5. 生成合并指令(CLI
|
|
125
|
+
5. 生成合并指令(CLI)【人类确认点】
|
|
124
126
|
└── openlogos merge {slug}
|
|
125
127
|
└── 扫描 deltas/,生成 MERGE_PROMPT.md
|
|
126
128
|
|
|
127
129
|
6. AI 执行合并(merge-executor Skill)
|
|
128
130
|
└── AI 读取 MERGE_PROMPT.md,逐个 delta 合并到主文档
|
|
129
131
|
|
|
130
|
-
7. 归档变更(CLI
|
|
132
|
+
7. 归档变更(CLI)【人类确认点】
|
|
131
133
|
└── openlogos archive {slug}
|
|
132
134
|
└── 将 logos/changes/{slug}/ 移入 logos/changes/archive/
|
|
133
135
|
└── 若当前 guard 指向该提案,则删除 logos/.openlogos-guard
|
|
@@ -180,7 +182,7 @@ Delta 文件的目录结构映射主文档目录:
|
|
|
180
182
|
5. 保持主文档的原有格式和风格
|
|
181
183
|
6. 如果主文档有"最后更新"时间戳,同步更新
|
|
182
184
|
7. 所有变更完成后,列出修改清单
|
|
183
|
-
8.
|
|
185
|
+
8. 所有变更合并完成后,提示用户:如需归档,请明确授权执行 `openlogos archive {slug}`。AI 未经用户明确授权不得自行执行;用户明确要求归档时(包括使用 `/openlogos:archive` slash command),AI 可以代为执行。
|
|
184
186
|
```
|
|
185
187
|
|
|
186
188
|
## CLI 命令
|