@miniidealab/openlogos 0.8.0 → 0.8.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.
Files changed (46) hide show
  1. package/dist/commands/change.d.ts +1 -1
  2. package/dist/commands/change.d.ts.map +1 -1
  3. package/dist/commands/change.js +54 -3
  4. package/dist/commands/change.js.map +1 -1
  5. package/dist/commands/detect.d.ts.map +1 -1
  6. package/dist/commands/detect.js +15 -1
  7. package/dist/commands/detect.js.map +1 -1
  8. package/dist/commands/init.d.ts +4 -3
  9. package/dist/commands/init.d.ts.map +1 -1
  10. package/dist/commands/init.js +10 -12
  11. package/dist/commands/init.js.map +1 -1
  12. package/dist/commands/launch.d.ts +1 -1
  13. package/dist/commands/launch.d.ts.map +1 -1
  14. package/dist/commands/launch.js +71 -16
  15. package/dist/commands/launch.js.map +1 -1
  16. package/dist/commands/module.d.ts.map +1 -1
  17. package/dist/commands/module.js +5 -7
  18. package/dist/commands/module.js.map +1 -1
  19. package/dist/commands/next.d.ts +13 -1
  20. package/dist/commands/next.d.ts.map +1 -1
  21. package/dist/commands/next.js +117 -47
  22. package/dist/commands/next.js.map +1 -1
  23. package/dist/commands/status.d.ts +34 -5
  24. package/dist/commands/status.d.ts.map +1 -1
  25. package/dist/commands/status.js +270 -96
  26. package/dist/commands/status.js.map +1 -1
  27. package/dist/commands/sync.d.ts.map +1 -1
  28. package/dist/commands/sync.js +25 -4
  29. package/dist/commands/sync.js.map +1 -1
  30. package/dist/i18n.d.ts +1 -1
  31. package/dist/i18n.d.ts.map +1 -1
  32. package/dist/i18n.js +27 -7
  33. package/dist/i18n.js.map +1 -1
  34. package/dist/index.js +20 -9
  35. package/dist/index.js.map +1 -1
  36. package/dist/lib/migrate-lifecycle.d.ts +13 -0
  37. package/dist/lib/migrate-lifecycle.d.ts.map +1 -0
  38. package/dist/lib/migrate-lifecycle.js +55 -0
  39. package/dist/lib/migrate-lifecycle.js.map +1 -0
  40. package/opencode-plugin-template/commands/openlogos-launch.md +8 -3
  41. package/opencode-plugin-template/openlogos.js +10 -1
  42. package/package.json +1 -1
  43. package/spec/cli-json-output.md +49 -11
  44. package/spec/logos-project.md +3 -6
  45. package/spec/module-naming-convention.md +2 -4
  46. 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;
@@ -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;AAqSD,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,GAAG,MAAM,CAyCrE;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"}
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
@@ -119,6 +119,11 @@ const messages = {
119
119
  'change.guardConflictHint': 'Finish it and run `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}',
@@ -126,11 +131,15 @@ const messages = {
126
131
  'merge.aiHint': 'Tell AI: "Read logos/changes/{slug}/MERGE_PROMPT.md and execute merge"',
127
132
  'merge.archiveHint': 'After merge, run `openlogos archive {slug}` to archive the proposal.',
128
133
  // launch
129
- 'launch.done': '✓ Change management activated! Lifecycle is now "active".',
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.alreadyActive': 'Change management is already active (lifecycle: "active").',
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',
@@ -256,6 +265,11 @@ const messages = {
256
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}',
@@ -263,11 +277,15 @@ const messages = {
263
277
  'merge.aiHint': '对 AI 说:「读取 logos/changes/{slug}/MERGE_PROMPT.md 并执行合并」',
264
278
  'merge.archiveHint': '合并完成后,运行 `openlogos archive {slug}` 归档提案。',
265
279
  // launch
266
- 'launch.done': '✓ 变更管理已激活!lifecycle 已切换为 "active"',
280
+ 'launch.done': '✓ 模块 "{module}" 已 launch!变更管理已激活。',
267
281
  'launch.hint1': ' 从现在起,修改已有文档必须先创建变更提案。',
268
282
  'launch.hint2': ' 运行 `openlogos change <slug>` 创建新的变更提案。',
269
283
  'launch.rulesUpdated': 'AI 规则已更新到 {target}',
270
- 'launch.alreadyActive': '变更管理已处于激活状态(lifecycle: "active")。',
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': '下一步',
@@ -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
 
package/dist/i18n.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
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
- status(format);
95
+ case 'status': {
96
+ const moduleArg = args.includes('--module') ? args[args.indexOf('--module') + 1] : undefined;
97
+ status(format, moduleArg);
93
98
  break;
94
- case 'next':
95
- next(format);
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
- change(args[1]);
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]);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
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 — activate change management after first cycle / 首轮完成后激活变更管理"
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
- 向用户解释 lifecycle 已切换为 active 及后续需使用 `change` / `merge` / `archive` 工作流。
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: "none" },
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@miniidealab/openlogos",
3
- "version": "0.8.0",
3
+ "version": "0.8.1",
4
4
  "description": "CLI tool for the OpenLogos software engineering methodology",
5
5
  "type": "module",
6
6
  "bin": {
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## 1. 概述
6
6
 
7
- OpenLogos CLI 的 `status`、`verify`、`detect` 三个命令支持 `--format json` 参数,输出结构化 JSON 供外部工具(如 RunLogos)以编程方式消费。
7
+ OpenLogos CLI 的 `status`、`next`、`verify`、`detect` 四个命令支持 `--format json` 参数,输出结构化 JSON 供外部工具(如 RunLogos)以编程方式消费。
8
8
 
9
9
  ### 1.1 通用约定
10
10
 
@@ -21,7 +21,7 @@ OpenLogos CLI 的 `status`、`verify`、`detect` 三个命令支持 `--format js
21
21
 
22
22
  ```jsonc
23
23
  {
24
- "command": "<command-name>", // "status" | "verify" | "detect"
24
+ "command": "<command-name>", // "status" | "next" | "verify" | "detect"
25
25
  "version": "<cli-version>", // CLI 版本号,如 "0.5.9"
26
26
  "timestamp": "<ISO-8601>", // 输出时间戳
27
27
  "data": { ... } // 命令特定的数据负载
@@ -52,7 +52,7 @@ openlogos detect --format json # JSON 格式
52
52
  "project": null | { // null 表示当前目录不是 OpenLogos 项目
53
53
  "name": "my-project", // 项目名
54
54
  "locale": "zh", // 语言设置
55
- "lifecycle": "active", // "initial" | "active"
55
+ "lifecycle": "launched", // "initial" | "launched"
56
56
  "description": "项目描述", // 项目描述
57
57
  "source_roots": null | { // 源代码根目录,null 表示未配置
58
58
  "src": ["src"], // 业务代码根目录列表
@@ -113,14 +113,37 @@ openlogos status --format json # JSON 格式
113
113
  {
114
114
  "id": "core",
115
115
  "name": "核心功能",
116
- "status": "stable",
117
- "loop_phase": null
116
+ "lifecycle": "initial", // "initial" | "launched"
117
+ "current_phase": "phase.3-2-api", // 当前推进阶段 key;launched 模块为 null
118
+ "current_phase_label": "Phase 3.2 · API 设计",
119
+ "phase_progress": { // 各阶段进度;launched 模块为 null
120
+ "phase.1": { "done": true, "skipped": false },
121
+ "phase.3-1": {
122
+ "done": false, "skipped": false,
123
+ "scenario_coverage": { "total": 3, "covered": 2, "missing": ["S03"] }
124
+ }
125
+ },
126
+ "active_change": null, // 仅 launched 模块有值
127
+ "suggestion": "对 AI 说:「设计 API」"
118
128
  },
119
129
  {
120
130
  "id": "payment",
121
131
  "name": "支付模块",
122
- "status": "in-progress",
123
- "loop_phase": "api-design"
132
+ "lifecycle": "launched",
133
+ "current_phase": null,
134
+ "current_phase_label": null,
135
+ "phase_progress": null,
136
+ "active_change": { // 当前活跃变更提案
137
+ "slug": "add-refund",
138
+ "proposal_step": "implementing", // "writing"|"implementing"|"in-progress"|"ready-to-merge"
139
+ "proposal_step_label": "实现中",
140
+ "has_proposal": true,
141
+ "has_tasks": true,
142
+ "tasks_checked": 2,
143
+ "tasks_total": 5,
144
+ "delta_count": 1
145
+ },
146
+ "suggestion": "继续实现 add-refund,完成后运行 openlogos merge add-refund"
124
147
  }
125
148
  ],
126
149
  "active_proposals": [
@@ -134,7 +157,7 @@ openlogos status --format json # JSON 格式
134
157
  "current_phase": "phase.2", // 第一个未完成 phase 的 key,若全部完成则为 null
135
158
  "suggestion": "对 AI 说:「基于需求文档做产品设计」", // 建议的下一步操作
136
159
  "all_done": false, // 是否所有 phase 都已完成
137
- "lifecycle": "active", // 项目生命周期
160
+ "lifecycle": "launched", // 项目生命周期,派生值:"initial" | "launched"
138
161
  "source_roots": null | { // 源代码根目录,null 表示未配置
139
162
  "src": ["src"],
140
163
  "test": ["test"]
@@ -155,8 +178,23 @@ openlogos status --format json # JSON 格式
155
178
  | `modules` | array | 否 | 模块注册表;`logos-project.yaml` 无 `modules[]` 时省略此字段(向下兼容) |
156
179
  | `modules[].id` | string | 是 | 模块标识符 |
157
180
  | `modules[].name` | string | 是 | 模块名称 |
158
- | `modules[].status` | string | 是 | 模块状态:`in-progress` 或 `stable` |
159
- | `modules[].loop_phase` | string \| null | 是 | 当前所处阶段;`stable` 模块为 null |
181
+ | `modules[].lifecycle` | string | 是 | 模块生命周期:`"initial"` 或 `"launched"` |
182
+ | `modules[].current_phase` | string \| null | 是 | 当前推进阶段 key;`launched` 模块为 null |
183
+ | `modules[].current_phase_label` | string \| null | 是 | 当前阶段本地化标签;`launched` 模块为 null |
184
+ | `modules[].phase_progress` | object \| null | 是 | 各阶段进度 map(key = phase key);`launched` 模块为 null |
185
+ | `modules[].phase_progress[key].done` | boolean | 是 | 该阶段是否已完成 |
186
+ | `modules[].phase_progress[key].skipped` | boolean | 是 | 该阶段是否被跳过 |
187
+ | `modules[].phase_progress[key].scenario_coverage` | object \| undefined | 否 | 仅场景类阶段(`phase.3-1`、`phase.3-3a`)存在 |
188
+ | `modules[].active_change` | object \| null | 是 | 当前活跃变更提案;`initial` 模块或无活跃提案时为 null |
189
+ | `modules[].active_change.slug` | string | 是 | 提案 slug |
190
+ | `modules[].active_change.proposal_step` | string | 是 | 提案阶段:`"writing"` \| `"implementing"` \| `"in-progress"` \| `"ready-to-merge"` |
191
+ | `modules[].active_change.proposal_step_label` | string | 是 | 提案阶段本地化标签 |
192
+ | `modules[].active_change.has_proposal` | boolean | 是 | 是否存在 proposal.md |
193
+ | `modules[].active_change.has_tasks` | boolean | 是 | 是否存在 tasks.md |
194
+ | `modules[].active_change.tasks_checked` | number | 是 | 已勾选任务数 |
195
+ | `modules[].active_change.tasks_total` | number | 是 | 总任务数 |
196
+ | `modules[].active_change.delta_count` | number | 是 | deltas 目录下的文件数 |
197
+ | `modules[].suggestion` | string | 是 | 针对该模块的下一步建议(本地化文本) |
160
198
  | `active_proposals` | array | 是 | 活跃变更提案列表 |
161
199
  | `active_proposals[].name` | string | 是 | 提案目录名 |
162
200
  | `active_proposals[].has_proposal` | boolean | 是 | 是否存在 proposal.md |
@@ -165,7 +203,7 @@ openlogos status --format json # JSON 格式
165
203
  | `current_phase` | string \| null | 是 | 当前应推进的阶段 key;全部完成时为 null |
166
204
  | `suggestion` | string | 是 | 建议的下一步操作(本地化文本) |
167
205
  | `all_done` | boolean | 是 | 是否全部阶段已完成(skipped 阶段不阻塞) |
168
- | `lifecycle` | string | 是 | 项目生命周期(`initial` 或 `active`) |
206
+ | `lifecycle` | string | 是 | 项目生命周期(`initial` 或 `launched`,由模块状态派生) |
169
207
  | `source_roots` | object \| null | 是 | 源代码根目录配置;未配置时为 null |
170
208
 
171
209
  ---
@@ -82,8 +82,7 @@
82
82
  |------|------|------|------|
83
83
  | `id` | string | 是 | 模块标识符,小写字母 + 连字符,如 `core`、`payment` |
84
84
  | `name` | string | 是 | 模块名称(中文或英文均可) |
85
- | `status` | string | 是 | 模块状态:`in-progress`(推进中)或 `stable`(已稳定) |
86
- | `loop_phase` | string\|null | 是 | 当前所处阶段(如 `api-design`、`scenario-modeling`);`stable` 模块设为 `null` |
85
+ | `lifecycle` | string | 是 | 模块生命周期:`initial`(初始开发阶段,关注 phase 推进)或 `launched`(迭代开发阶段,关注变更提案) |
87
86
 
88
87
  ### resource_index
89
88
 
@@ -143,12 +142,10 @@ scenario_counter:
143
142
  modules:
144
143
  - id: core
145
144
  name: 核心功能
146
- status: stable
147
- loop_phase: null
145
+ lifecycle: launched
148
146
  - id: payment
149
147
  name: 支付模块
150
- status: in-progress
151
- loop_phase: api-design
148
+ lifecycle: initial
152
149
 
153
150
  external_dependencies:
154
151
  - name: "邮件服务"
@@ -48,12 +48,10 @@ scenario_counter:
48
48
  modules:
49
49
  - id: core
50
50
  name: 核心功能
51
- status: stable
52
- loop_phase: null
51
+ lifecycle: launched
53
52
  - id: payment
54
53
  name: 支付模块
55
- status: in-progress
56
- loop_phase: api-design
54
+ lifecycle: initial
57
55
  ```
58
56
 
59
57
  ## 多模块共存示例
@@ -78,12 +78,12 @@ MVP 至少覆盖以下事件:
78
78
  | `/openlogos:merge <slug>` | `openlogos merge <slug>` | 生成合并指令 |
79
79
  | `/openlogos:archive <slug>` | `openlogos archive <slug>` | 归档变更 |
80
80
  | `/openlogos:verify` | `openlogos verify` | 执行验收 |
81
- | `/openlogos:launch` | `openlogos launch` | 激活变更管理 |
81
+ | `/openlogos:launch [module-id]` | `openlogos launch [module-id]` | 将指定模块标记为 launched,激活变更管理 |
82
82
 
83
83
  ### 命令参数契约(MVP)
84
84
 
85
- - 无参命令:`status`、`next`、`sync`、`verify`、`launch`
86
- - 可选参命令:`init [name]`
85
+ - 无参命令:`status`、`next`、`sync`、`verify`
86
+ - 可选参命令:`init [name]`、`launch [module-id]`
87
87
  - 必填参命令:`change <slug>`、`merge <slug>`、`archive <slug>`
88
88
 
89
89
  解析规则: