-
Notifications
You must be signed in to change notification settings - Fork 4.5k
feat: simplify skill installation with profiles and smart defaults #726
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from 1 commit
72115cd
f55e97c
373ce4f
1c78dc4
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -127,30 +127,39 @@ Workflows: (space to toggle, enter to save) | |
| [ ] onboard | ||
| ``` | ||
|
|
||
| ### 8. Backwards Compatibility | ||
| ### 8. Backwards Compatibility & Migration | ||
|
|
||
| - Existing users with all workflows keep them (extra workflows not in profile are preserved) | ||
| - `openspec init` sets up new projects using current profile config | ||
| - `openspec update` applies config changes to existing projects (adds missing workflows, refreshes templates) | ||
| **Existing users keep their current setup.** When `openspec update` runs on a project with existing workflows and no `profile` in global config, it performs a one-time migration: | ||
|
|
||
| 1. Scans installed workflow files across all tool directories in the project | ||
| 2. Writes `profile: "custom"`, `delivery: "both"`, `workflows: [<detected>]` to global config | ||
| 3. Refreshes templates but does NOT add or remove any workflows | ||
| 4. Displays: "Migrated: custom profile with N existing workflows" | ||
|
|
||
| After migration, subsequent `init` and `update` commands respect the migrated config. | ||
|
|
||
| **Key behaviors:** | ||
| - Existing users' workflows are preserved exactly as-is (no `propose` added automatically) | ||
| - Both `init` (re-init) and `update` trigger migration on existing projects if no profile is set | ||
| - `openspec init` on a **new** project (no existing workflows) uses global config, defaulting to `core` | ||
| - `init` with a custom profile shows what will be installed and prompts to proceed or reconfigure | ||
| - Migration message mentions `propose` and suggests `openspec config profile core` to opt in | ||
| - After migration, users can opt into `core` profile via `openspec config profile core` | ||
| - Workflow templates conditionally reference only installed workflows in "next steps" guidance | ||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Documentation inconsistency with Line 149 states templates "conditionally reference only installed workflows" in next-step guidance, but 🤖 Prompt for AI Agents |
||
| - Delivery changes are applied: switching to `skills` removes command files, switching to `commands` removes skill files | ||
| - All workflows remain available via custom profile | ||
|
|
||
| ## Capabilities | ||
|
|
||
| ### New Capabilities | ||
|
|
||
| - `profiles`: Support for workflow profiles (core, custom) with interactive configuration | ||
| - `delivery-config`: User preference for delivery method (skills, commands, both) | ||
| - `profiles`: Workflow profiles (core, custom), delivery preferences, global config storage, interactive picker | ||
| - `propose-workflow`: Combined workflow that creates change + generates all artifacts | ||
| - `user-config`: Extend existing global config with profile/delivery settings | ||
| - `available-tools`: Detect what AI tools the user has from existing directories | ||
|
|
||
| ### Modified Capabilities | ||
|
|
||
| - `cli-init`: Smart defaults with auto-detection and confirmation | ||
| - `tool-selection-ux`: Space to select, Enter to confirm | ||
| - `skill-generation`: Conditional based on profile and delivery settings | ||
| - `command-generation`: Conditional based on profile and delivery settings | ||
| - `cli-init`: Smart defaults with tool auto-detection, profile-based skill/command generation | ||
| - `cli-update`: Profile support, delivery changes, one-time migration for existing users | ||
|
|
||
| ## Impact | ||
|
|
||
|
|
||
This file was deleted.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Section numbering is out of order — sections 8 and 9 precede section 7 in the file.
Sections 8 ("Existing User Migration") and 9 ("Generic Next-Step Guidance") were inserted before the existing section 7 ("Fix Multi-Select Keybindings") rather than after it. Consider renumbering or reordering to keep the document sequential.
🧰 Tools
🪛 LanguageTool
[style] ~183-~183: To elevate your writing, try using a synonym here.
Context: ... global config read time: Too implicit, hard to show feedback to user ### 9. Generi...
(HARD_TO)
🤖 Prompt for AI Agents