Is OpenSpec’s Propose Too Coarse? Enable 6 Expanded Commands in 4 Steps and Choose the Right Workflow Mode
The article analyses OpenSpec’s default core workflow, explains why the five‑command core profile can feel limiting, and walks through a four‑step process to unlock six additional expanded commands, then compares three workflow modes that suit different development rhythms.
1. Core vs. Expanded Workflow
OpenSpec controls command visibility through a Profile system. The default core profile exposes five commands:
propose → explore → apply → sync → archiveThese cover the full loop of creating a plan, exploring ideas, implementing tasks, syncing specs, and archiving. When a change requires finer control—step‑by‑step review, quality verification, bulk archiving, or an onboarding tutorial—the core profile is insufficient.
The expanded (or custom) profile adds six more commands, bringing the total to eleven.
2. Four‑Step Procedure to Enable Expanded Workflow
Run the profile wizard : openspec config profile The wizard shows the current profile and asks what to configure. Choose Workflows only.
Select the additional commands (space to toggle, Enter to confirm):
Select workflows to make available: (Space to toggle, Enter to confirm)
[x] Propose change
[x] Explore ideas
[ ] New change
[ ] Continue change
[x] Apply tasks
[ ] Fast‑forward
[x] Sync specs
[x] Archive change
[ ] Bulk archive
[ ] Verify change
[ ] OnboardAll six expanded commands ( new, continue, ff, verify, bulk-archive, onboard) must be checked.
Confirm the changes :
Config changes:
profile: core -> custom
workflows: added new, continue, ff, verify, bulk-archive, onboardThe new configuration is saved to ~/.config/openspec/config.json (XDG‑compliant). If you are inside an OpenSpec project, the wizard also asks to apply the changes immediately—answer Y.
Synchronise the project : openspec update This copies the global configuration into the project’s AI‑tool config (e.g., .claude/skills/) so the newly enabled commands become visible.
After these four steps, the expanded workflow is active in under two minutes.
3. The Six Expanded Commands Explained
/opsx:new– creates only the change skeleton (directory + metadata) without generating any planning artifacts. Useful when you want to set up a container first and fill it manually later. /opsx:continue – creates the next missing artifact based on the dependency graph. Each execution adds one ready‑to‑review artifact, offering finer granularity than /opsx:propose. /opsx:ff (fast‑forward) – after a skeleton is created, this command fills all remaining artifacts (proposal, specs, design, tasks) in one shot. /opsx:verify – performs a three‑dimensional quality check:
Completeness : all tasks finished? all requirements have code? scenarios covered?
Correctness : implementation matches spec intent? edge cases handled? error states correct?
Coherence : design decisions reflected in code? naming consistent with design.md?
Verification does not block archiving; it merely reports the health of the change. /opsx:bulk-archive – archives multiple completed changes at once, detecting spec conflicts and ordering by timestamp. /opsx:onboard – an interactive tutorial for first‑time users that walks through a full change lifecycle.
4. Three Typical Workflow Mode Combinations
Quick Feature – for well‑defined tasks:
/opsx:new → /opsx:ff → /opsx:apply → /opsx:verify → /opsx:archiveAdds a verification step compared with the core propose → apply → archive chain.
Exploratory – for vague requirements:
/opsx:explore → /opsx:new → /opsx:continue → … → /opsx:applyAllows iterative creation and review of each artifact.
Parallel Changes – for multiple concurrent streams:
Change A: /opsx:new → /opsx:ff → /opsx:apply (in progress)
│
Switch to Change B
│
Change B: /opsx:new → /opsx:ff → /opsx:apply → /opsx:archiveBoth changes are later bulk‑archived with /opsx:bulk-archive.
A decision matrix (described in the source) recommends ff when the full scope is known beforehand, and continue when the work is exploratory.
5. Underlying Mechanisms
Profile Derivation – The global config ( ~/.config/openspec/config.json) stores a profile field. When the selected workflow set exactly matches the core list, the system sets profile: 'core'; otherwise it sets 'custom'. The source code shows the simple check:
// src/core/profiles.ts
export function deriveProfileFromWorkflowSelection(selectedWorkflows: string[]): Profile {
const isCoreMatch =
selectedWorkflows.length === CORE_WORKFLOWS.length &&
CORE_WORKFLOWS.every(w => selectedWorkflows.includes(w));
return isCoreMatch ? 'core' : 'custom';
}Artifact Dependency Graph – Artifacts transition through BLOCKED → READY → DONE. The graph determines which artifact can be created next, but it does not enforce a strict order; developers can create specs before design, etc.
6. Recommendations
Use the core profile for small, well‑scoped changes ( propose → apply → archive).
For medium‑to‑large changes that need quality gates, enable the expanded profile and include /opsx:verify.
When handling multiple parallel changes, enable bulk‑archive to streamline finalisation.
OpenSpec intentionally hides the six advanced commands until you need finer control, giving you the flexibility to pick the appropriate workflow for your project’s pace.
Signed-in readers can open the original source through BestHub's protected redirect.
This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactand we will review it promptly.
Shuge Unlimited
Formerly "Ops with Skill", now officially upgraded. Fully dedicated to AI, we share both the why (fundamental insights) and the how (practical implementation). From technical operations to breakthrough thinking, we help you understand AI's transformation and master the core abilities needed to shape the future. ShugeX: boundless exploration, skillful execution.
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.
