fix(update): warn when a custom profile is missing core workflows#1354
Conversation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
📝 WalkthroughWalkthrough
ChangesProfile workflow guidance
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
alfred-openspec
left a comment
There was a problem hiding this comment.
The note now tracks CORE_WORKFLOWS directly, preserves custom profiles, handles singular and plural copy, and runs on both update paths. Tests and full CI are green.
Resolve conflicts with Fission-AI#1354 (displayMissingCoreWorkflowsNote rename) and Fission-AI#1208 (kimi-code migration tests): keep both sides' tests, call the renamed note method alongside the Hermes displaySetupNotes hook. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Status: LGTM — small, self-contained, tests green.
What was wrong: When a release adds a workflow to
CORE_WORKFLOWS(likeupdatein 1.6.0), users on acustomprofile silently get nothing:openspec updateonly 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:updatenever 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 everyopenspec 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.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 onlyupdateis missing, and no note when the custom profile covers core.test/core/update.test.ts59/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 staleOLD_CORE_WORKFLOWSconstant is removed since this replaces its only use.🤖 Generated with Claude Code
Summary by CodeRabbit