Skip to content

feat(config): add 'all' profile preset selecting every workflow - #1474

Open
a-horde-o-bees wants to merge 1 commit into
Fission-AI:mainfrom
a-horde-o-bees:feat/config-profile-all-preset
Open

feat(config): add 'all' profile preset selecting every workflow#1474
a-horde-o-bees wants to merge 1 commit into
Fission-AI:mainfrom
a-horde-o-bees:feat/config-profile-all-preset

Conversation

@a-horde-o-bees

@a-horde-o-bees a-horde-o-bees commented Jul 28, 2026

Copy link
Copy Markdown

Why

openspec config profile currently 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 to openspec config set workflows '[...]' — and because workflows is an unvalidated string[], 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_WORKFLOWS already exists in src/core/profiles.ts — it powers the interactive picker's checklist — it just isn't reachable as a preset.

What

  • openspec config profile all sets profile: custom + workflows: [...ALL_WORKFLOWS], preserving the delivery setting — a mirror of the existing core branch in src/commands/config.ts.
  • The unknown-preset error now reads Available presets: core, all.
  • Docs: docs/cli.md gains the preset example alongside core.
  • Test: test/commands/config-profile.test.ts gains an all-preset case mirroring the existing core preset test (asserts profile/custom, delivery preserved, full workflow set, no interactive prompts).

Testing

  • pnpm exec tsc --noEmit — clean
  • pnpm 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

    • Added an all preset to openspec config profile, enabling all workflows while preserving the selected delivery mode.
    • Updated the interactive configuration documentation with a fast preset example.
  • Bug Fixes

    • Improved guidance when an unsupported profile preset is entered by listing the available options.

`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>
@a-horde-o-bees
a-horde-o-bees requested a review from a team as a code owner July 28, 2026 20:27
@a-horde-o-bees
a-horde-o-bees requested review from clay-good and removed request for a team July 28, 2026 20:27
@coderabbitai

coderabbitai Bot commented Jul 28, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 475f198d-e527-43b8-a8b0-85b3b1ee2738

📥 Commits

Reviewing files that changed from the base of the PR and between 9a937cb and 5e86713.

📒 Files selected for processing (3)
  • docs/cli.md
  • src/commands/config.ts
  • test/commands/config-profile.test.ts

📝 Walkthrough

Walkthrough

The openspec config profile command now accepts core and all presets, preserves delivery settings, and applies the corresponding workflow set. Tests cover the all preset, and CLI documentation includes its usage.

Changes

Profile preset expansion

Layer / File(s) Summary
Add and validate the all preset
src/commands/config.ts, test/commands/config-profile.test.ts, docs/cli.md
The command applies ALL_WORKFLOWS for profile all, preserves delivery settings, tests prompt bypass and saved configuration, and documents the new shortcut.

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

Possibly related PRs

Suggested reviewers: alfred-openspec, tabishb, clay-good

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly describes the new config profile preset and its effect of selecting every workflow.
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.
✨ 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.

@a-horde-o-bees

Copy link
Copy Markdown
Author

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.

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