* Suggest opting back into core when a custom profile still matches the old * pre-sync core set. Keep custom profiles user-owned; do not mutate them.
(profile: Profile, workflows?: readonly string[])
| 377 | * pre-sync core set. Keep custom profiles user-owned; do not mutate them. |
| 378 | */ |
| 379 | private displayOldCoreCustomProfileNote(profile: Profile, workflows?: readonly string[]): void { |
| 380 | if (profile !== 'custom' || !workflows) { |
| 381 | return; |
| 382 | } |
| 383 | |
| 384 | const workflowSet = new Set(workflows); |
| 385 | const matchesOldCore = |
| 386 | workflowSet.size === OLD_CORE_WORKFLOWS.length && |
| 387 | OLD_CORE_WORKFLOWS.every((workflow) => workflowSet.has(workflow)); |
| 388 | |
| 389 | if (!matchesOldCore) { |
| 390 | return; |
| 391 | } |
| 392 | |
| 393 | console.log(chalk.dim('Note: The core profile now includes sync. Your custom profile is preserving the old core workflow set.')); |
| 394 | console.log(chalk.dim('Run `openspec config profile core` and then `openspec update` to add sync.')); |
| 395 | } |
| 396 | |
| 397 | /** |
| 398 | * Removes skill directories for workflows when delivery changed to commands-only. |