feat(config): add 'all' profile preset selecting every workflow - #1474
feat(config): add 'all' profile preset selecting every workflow#1474a-horde-o-bees wants to merge 1 commit into
Conversation
`openspec config profile` ships one preset (core), so selecting the full workflow set non-interactively requires hand-enumerating the twelve ids to `config set workflows` — where an unknown id stores without error and is silently dropped at render. ALL_WORKFLOWS already exists in core/profiles; this exposes it as `openspec config profile all` (profile=custom, delivery preserved), mirroring the core preset. The unknown-preset error now lists both presets; docs and a preset test added. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
📝 WalkthroughWalkthroughThe ChangesProfile preset expansion
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 |
|
After filing this I found #1207 (June 15) — prior art for the same goal, which I should have searched for first. Differences, for maintainers deciding between them: #1207 adds all as a full third profile type threaded through schema, migration, init, and workspace state (25 files, approved but now stale against main — it predates the verify workflow, so it wires 11 of the current 12). This PR is the minimal preset-only variant: it mirrors the existing core branch in config.ts, stores profile: custom, and touches nothing else, so it's current and conflict-free. Happy to close this in favor of #1207 if the full profile-type approach is preferred — the immediate pain either one solves is that scripted/agent installs currently have no non-interactive route to the full workflow set except hand-enumerating ids that fail silently when mistyped. |
Why
openspec config profilecurrently ships exactly one preset shortcut,core. Selecting the full workflow set without a TTY (scripted setup, CI, agent-driven installs) therefore requires hand-enumerating all twelve ids toopenspec config set workflows '[...]'— and becauseworkflowsis an unvalidatedstring[], a mistyped id stores without error and is silently dropped at render time, which makes the hand-enumeration route genuinely error-prone. (Hit in the wild on v1.6.0: skill-name-style ids like"apply-change"stored cleanly and rendered only 3 of 12 workflows.)ALL_WORKFLOWSalready exists insrc/core/profiles.ts— it powers the interactive picker's checklist — it just isn't reachable as a preset.What
openspec config profile allsetsprofile: custom+workflows: [...ALL_WORKFLOWS], preserving the delivery setting — a mirror of the existingcorebranch insrc/commands/config.ts.Available presets: core, all.docs/cli.mdgains the preset example alongsidecore.test/commands/config-profile.test.tsgains anall-preset case mirroring the existingcorepreset test (asserts profile/custom, delivery preserved, full workflow set, no interactive prompts).Testing
pnpm exec tsc --noEmit— cleanpnpm exec vitest run test/commands/config-profile.test.ts— 21/21 pass (incl. the new case)pnpm exec vitest run test/commands/config.test.ts— pass🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
allpreset toopenspec config profile, enabling all workflows while preserving the selected delivery mode.Bug Fixes