Skip to content

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

Closed
a-horde-o-bees wants to merge 2 commits into
Fission-AI:mainfrom
a-horde-o-bees:feat/config-profile-all-preset
Closed

feat(config): add 'all' profile preset selecting every workflow#1474
a-horde-o-bees wants to merge 2 commits 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: 99ec1f12-7e2c-41ff-a47f-8969ccc1b40f

📥 Commits

Reviewing files that changed from the base of the PR and between 5e86713 and 1f18b8c.

📒 Files selected for processing (1)
  • docs/cli.md
🚧 Files skipped from review as they are similar to previous changes (1)
  • docs/cli.md

📝 Walkthrough

Walkthrough

The openspec config profile command now accepts core and all presets. The all preset applies every workflow, preserves the delivery setting, bypasses prompts, and is documented in the CLI guide.

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 the delivery setting, validates saved configuration and prompt bypass, and documents the shortcut.

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

Possibly related PRs

Suggested reviewers: 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 and concisely describes adding the all profile preset that selects 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.

@clay-good

Copy link
Copy Markdown
Collaborator

Closing as a duplicate of #1207, which remains the canonical implementation.

The author already identified the overlap in this comment: both PRs add the same user-facing command, openspec config profile all, and the comment explicitly offers to close this PR in favor of #1207 if the full profile approach is preferred.

The distinction matters because the two branches encode the same selection incompatibly:

  • This PR is a three-file shortcut that stores the result as profile: custom plus every workflow ID.
  • feat(profile): add 'all' profile preset for installing all workflows #1207 models all as an actual third profile and carries that representation through schema/types, initialization, configuration, completions, migration/workspace handling, documentation, and tests. It has also received an approving review after recheck: canonical PR.

Current main confirms the shared feature gap and why only one implementation should proceed. It defines the complete 12-workflow set, but profile resolution still supports only core and custom: profile implementation.

Keeping both PRs open would split review across incompatible persisted representations and create avoidable merge conflicts for the same command. The older, approved #1207 is the more complete architectural treatment, so #1474 is closed only as the duplicate. This does not claim the feature is already on main, and #1207 remains open for completion.

@clay-good clay-good closed this Aug 4, 2026
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.

2 participants