Back to blog
Workflow
OpenSpec
Claude Code

Adapting Spec-Driven Workflow to Your Team Without Burning Time

Thắng Đoàn
Thắng Đoàn

The default spec-driven workflow works for a week, then you hit a project where it does not fit: research before specs, a review step before implementation, artifact types the default never heard of. Most teams abandon the workflow here. The alternative is customizing it to match the team.

Three levels, easiest first

Project config: a YAML file at openspec/config.yaml that sets defaults and injects context into every artifact. Best for most teams. Custom schemas: define your own workflow artifacts and their dependencies, for teams with unique processes. Global overrides: share schemas across projects, for power users only. Stop at level one; deeper levels pay off only when project config provably cannot express what you need.

Project config injects your context

The config injects context the agent sees on every artifact: your stack, API conventions, test framework, coding standards. Per-artifact rules appear only for the matching type, so a proposal rule never clutters specs. Tell it TypeScript, React, Node.js, REST, Jest; add a rule that proposals must include a rollback plan and specs use Given/When/Then. You stop correcting the same things in review.

Custom schemas and templates

When config is not enough, fork the built-in schema, edit the YAML and templates freely, and test immediately. A research-first team can define Research with no dependencies, Proposal requiring research, Tasks requiring proposal: the workflow enforces order without forcing phases you do not need. Templates are markdown files shaping generated output; add a rollback section to the proposal template and every future proposal has it.

Validate before using

Run schema validate before relying on a custom schema: it checks YAML syntax, template existence, circular dependencies, and artifact IDs. A typo in the schema file otherwise breaks every artifact generation mid-task.

The trade-off

Customization is addictive: once you know it exists, every team quirk feels like a reason to customize. Most quirks are signal that the team should change, not that the tool should accommodate. Before adding a custom schema, ask whether the default would force you to drop a genuinely better practice. If yes, customize. If no, change the practice. Teams that customize everything end up maintaining a workflow instead of shipping code.

The smallest test

Open your config.yaml, add your stack, your test runner, and one rule you repeat in every review. Generate the next artifact and check whether it obeys.

Share:

Recommended for you

Enjoyed this article?

Subscribe for new articles. No spam. Unsubscribe anytime.

By subscribing you agree to receive the newsletter. No spam, and you can unsubscribe anytime.