Skip to content

fix(update): warn when a custom profile is missing core workflows#1354

Open
clay-good wants to merge 2 commits into
Fission-AI:mainfrom
clay-good:fix/update-missing-core-workflows-note
Open

fix(update): warn when a custom profile is missing core workflows#1354
clay-good wants to merge 2 commits into
Fission-AI:mainfrom
clay-good:fix/update-missing-core-workflows-note

Conversation

@clay-good

@clay-good clay-good commented Jul 13, 2026

Copy link
Copy Markdown
Collaborator

Status: LGTM — small, self-contained, tests green.

What was wrong: When a release adds a workflow to CORE_WORKFLOWS (like update in 1.6.0), users on a custom profile silently get nothing: openspec update only generates the pinned workflow list and exits cleanly, with no hint that the list is now a subset of core. This came up in the wild — a user on 1.6.0 couldn't figure out why /opsx:update never appeared in .claude/commands/opsx/. The only existing hint (displayOldCoreCustomProfileNote) fired solely for the exact pre-sync legacy set [propose, explore, apply, archive], so it goes stale every time core grows.

How it was fixed: Generalized that note into displayMissingCoreWorkflowsNote: on every openspec update (including the "up to date" path), a custom profile missing any core workflows gets a one-line, self-diagnosing notice. Custom profiles stay user-owned — nothing is mutated.

Note: Your custom profile is missing 1 core workflow: update
Run `openspec config profile` to add it, or `openspec config profile core` to use the core set.

Proof: Reworked the legacy-set test to assert the new message (missing 2 core workflows: update, sync) and added two cases: singular wording ("1 core workflow: update", "add it") when only update is missing, and no note when the custom profile covers core. test/core/update.test.ts 59/59 passing; vocabulary-sweep and skill-templates-parity guards pass.

Notes: The note derives from CORE_WORKFLOWS, so future additions to core are covered with no further changes. The stale OLD_CORE_WORKFLOWS constant is removed since this replaces its only use.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Bug Fixes
    • Improved profile-aware update messaging to identify which core workflows are missing from custom profiles.
    • Added clearer guidance to add the missing workflows or switch to the core profile set.
    • Suppressed missing-core workflow notices when the custom profile already includes all required core workflows.
  • Tests
    • Updated and expanded profile-aware update test coverage for missing-core workflow scenarios.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@clay-good clay-good requested a review from TabishB as a code owner July 13, 2026 13:56
@coderabbitai

coderabbitai Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

openspec update now compares custom profiles against CORE_WORKFLOWS and reports missing workflows with guidance to update the profile or switch to the core profile. Tests cover multiple missing workflows, a single missing workflow, and complete coverage.

Changes

Profile workflow guidance

Layer / File(s) Summary
Detect and report missing core workflows
src/core/update.ts
UpdateCommand replaces legacy old-core detection with missing-workflow detection based on CORE_WORKFLOWS, including profile configuration guidance.
Validate profile-aware messaging
test/core/update.test.ts
Tests verify messages for two missing workflows, one missing workflow, and no message when all core workflows are present.

Estimated code review effort: 2 (Simple) | ~10 minutes

Possibly related PRs

Suggested reviewers: tabishb, alfred-openspec

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: warning when a custom profile is missing core workflows.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant