You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
/opsx:propose command and openspec-propose skills are missing after update to 1.2.0 #769
Skills and command refer to /opsx:propose but after running 'openspec init' or 'openspec update' neither opsx/propose.md nor skills/openspec-propose/ are available in .claude
The enrichment comment has been posted on issue #769. Here's a summary of what was found:
Root cause: The migration logic in src/core/migration.ts:92-131 scans disk for existing workflow artifacts when upgrading from pre-1.2.0. Since propose is new in v1.2.0, it doesn't exist on disk yet, so the migration sets profile: 'custom' with only old workflows — permanently excluding propose from generation.
Duplicate: This is effectively a duplicate of closed issue #755, which described the same problem.
Workaround: Run openspec config profile core && openspec update to switch to the core profile which includes propose.
Suggested fix: The migration could auto-include new CORE_WORKFLOWS entries during upgrade rather than only preserving what was already on disk.
This appears to be a duplicate of #755 ("Version 1.2.0 is missing /opsx:propose"), which was closed. Both describe the same symptom: /opsx:propose is referenced but not generated after openspec init or openspec update on v1.2.0.
Root Cause
The propose workflow template is fully implemented and registered in the codebase — the issue is in the migration path for users upgrading from pre-1.2.0.
When an existing user (who installed before v1.2.0) runs openspec init or openspec update, the migration logic at src/core/migration.ts:92-131 runs first:
migrateIfNeeded() checks if the global config (~/.config/openspec/config.json) has a profile field.
If no profile is set (pre-1.2.0 config), it scans the disk for installed workflow artifacts (lines 112-114).
Since propose is new in v1.2.0, it doesn't exist on disk yet, so it's excluded from the detected workflows.
The migration sets profile: 'custom' with only the old workflows (line 122-123).
All subsequent init/update calls respect this custom profile via src/core/profiles.ts:46-47 and never generate propose.
A hint is printed at line 130: "New in this version: /opsx:propose. Try 'openspec config profile core' for the streamlined experience." — but this is easy to miss in the output.
Key Files
File
Relevance
src/core/migration.ts:92-131
Migration logic that sets profile: 'custom' without propose
src/core/profiles.ts:14
CORE_WORKFLOWS — confirms propose IS in the core profile
src/core/profiles.ts:42-50
getProfileWorkflows() — custom profile returns only stored workflows
src/core/init.ts:517-521
Init reads profile from global config, filters templates
src/core/update.ts:94-100
Update runs migration then reads profile config
src/core/templates/workflows/propose.ts
The propose skill/command templates (fully implemented)
src/core/shared/skill-generation.ts:68
Propose registered in getSkillTemplates()
src/core/shared/tool-detection.ts:25,44
Propose registered in SKILL_NAMES and COMMAND_IDS
Workaround
Switch to the core profile, which includes propose by default:
The migration in src/core/migration.ts could be improved to automatically include new CORE_WORKFLOWS entries that were introduced since the user's last version. For example, at line 123, before saving:
// Auto-include new core workflows that didn't exist in previous versionsimport{CORE_WORKFLOWS}from'./profiles.js';constnewCoreWorkflows=CORE_WORKFLOWS.filter(w=>!installedWorkflows.includes(w));config.workflows=[...installedWorkflows, ...newCoreWorkflows];
Alternatively, the migration could default to the core profile instead of custom and let users opt into expanded workflows, rather than the other way around.
Closing this as an exact duplicate of #755, where the same v1.2.0 upgrade behavior was diagnosed and answered by a maintainer.
The two reports have the same symptom and cause: OpenSpec preserves an upgrading user's already-installed workflows as a custom profile, so the newly introduced propose workflow is not silently added. The canonical maintainer answer is here:
openspec config profile
# select the core profile, or add "propose" to a custom workflow selection
openspec update
Proof on current main:
The migration still deliberately preserves the detected workflows and prints the profile guidance: src/core/migration.ts.
The current CLI guide documents openspec config profile, its core/custom choices, and the subsequent update flow: docs/cli.md.
I reran the current migration and init suites; all 87 tests passed, including the preservation and “new in this version” guidance cases.
No information is being discarded: #755 retains the diagnosis, workaround, suggestions, and maintainer decision. This issue adds the same report without a distinct remaining requirement.
Activity
21st-connector commentedon Feb 27, 2026
Task completed.
The enrichment comment has been posted on issue #769. Here's a summary of what was found:
Root cause: The migration logic in
src/core/migration.ts:92-131scans disk for existing workflow artifacts when upgrading from pre-1.2.0. Sinceproposeis new in v1.2.0, it doesn't exist on disk yet, so the migration setsprofile: 'custom'with only old workflows — permanently excludingproposefrom generation.Duplicate: This is effectively a duplicate of closed issue #755, which described the same problem.
Workaround: Run
openspec config profile core && openspec updateto switch to the core profile which includespropose.Suggested fix: The migration could auto-include new
CORE_WORKFLOWSentries during upgrade rather than only preserving what was already on disk.View full conversation
Powered by 1Code
21st-connector commentedon Feb 27, 2026
Issue Analysis
Likely Duplicate
This appears to be a duplicate of #755 ("Version 1.2.0 is missing /opsx:propose"), which was closed. Both describe the same symptom:
/opsx:proposeis referenced but not generated afteropenspec initoropenspec updateon v1.2.0.Root Cause
The
proposeworkflow template is fully implemented and registered in the codebase — the issue is in the migration path for users upgrading from pre-1.2.0.When an existing user (who installed before v1.2.0) runs
openspec initoropenspec update, the migration logic atsrc/core/migration.ts:92-131runs first:migrateIfNeeded()checks if the global config (~/.config/openspec/config.json) has aprofilefield.proposeis new in v1.2.0, it doesn't exist on disk yet, so it's excluded from the detected workflows.profile: 'custom'with only the old workflows (line 122-123).init/updatecalls respect this custom profile viasrc/core/profiles.ts:46-47and never generatepropose.A hint is printed at line 130:
"New in this version: /opsx:propose. Try 'openspec config profile core' for the streamlined experience."— but this is easy to miss in the output.Key Files
src/core/migration.ts:92-131profile: 'custom'withoutproposesrc/core/profiles.ts:14CORE_WORKFLOWS— confirmsproposeIS in the core profilesrc/core/profiles.ts:42-50getProfileWorkflows()— custom profile returns only stored workflowssrc/core/init.ts:517-521src/core/update.ts:94-100src/core/templates/workflows/propose.tssrc/core/shared/skill-generation.ts:68getSkillTemplates()src/core/shared/tool-detection.ts:25,44SKILL_NAMESandCOMMAND_IDSWorkaround
Switch to the
coreprofile, which includesproposeby default:Or add
proposeto your custom profile:Potential Fix
The migration in
src/core/migration.tscould be improved to automatically include newCORE_WORKFLOWSentries that were introduced since the user's last version. For example, at line 123, before saving:Alternatively, the migration could default to the
coreprofile instead ofcustomand let users opt into expanded workflows, rather than the other way around.clay-good commentedon Aug 3, 2026
Closing this as an exact duplicate of #755, where the same v1.2.0 upgrade behavior was diagnosed and answered by a maintainer.
The two reports have the same symptom and cause: OpenSpec preserves an upgrading user's already-installed workflows as a custom profile, so the newly introduced
proposeworkflow is not silently added. The canonical maintainer answer is here:#755 (comment)
The supported resolution is:
openspec config profile # select the core profile, or add "propose" to a custom workflow selection openspec updateProof on current
main:src/core/migration.ts.openspec config profile, its core/custom choices, and the subsequent update flow:docs/cli.md.No information is being discarded: #755 retains the diagnosis, workaround, suggestions, and maintainer decision. This issue adds the same report without a distinct remaining requirement.