Files
fission-ai__openspec/openspec/changes/schema-alias-support/proposal.md
Tabish Bidiwale e0736807b4 refactor(setup): simplify config creation and fix test hanging (#537)
* refactor(setup): simplify config creation and fix test hanging

- Replace interactive config prompts with automatic config creation using
  default schema. The generated config includes helpful comments explaining
  context and rules options.
- Remove unused promptForConfig, promptForArtifactRules, and isExitPromptError
  functions from config-prompts.ts
- Add forceExit: true to vitest config to prevent worker processes from hanging
  after tests complete

* docs: add schema-alias-support change proposal

Proposal to add schema alias support so `openspec-default` and `spec-driven`
can be used interchangeably, enabling a rename without breaking existing configs.

* fix(test): remove invalid forceExit config and add proper teardown

- Remove `forceExit: true` from vitest.config.ts (Jest option, not Vitest)
- Add actual teardown logic in vitest.setup.ts that forces exit after 1s
  grace period if processes are still hanging
2026-01-20 14:32:56 -08:00

1.3 KiB

Why

We want to rename spec-driven to openspec-default to better reflect that it's the standard/default workflow. However, renaming directly would break existing projects that have schema: spec-driven in their openspec/config.yaml. Adding alias support allows both names to work interchangeably, enabling a smooth transition with no breaking changes.

What Changes

  • Add schema alias resolution in the schema resolver
  • openspec-default and spec-driven will both resolve to the same schema
  • The physical directory remains schemas/spec-driven/ (or could be renamed to schemas/openspec-default/ with spec-driven as the alias)
  • All CLI commands and config files accept either name
  • No changes required to existing user configs

Capabilities

New Capabilities

  • schema-aliases: Support for schema name aliases so multiple names can resolve to the same schema directory

Modified Capabilities

Impact

  • src/core/artifact-graph/resolver.ts - Add alias resolution logic
  • schemas/ directory - Potentially rename spec-driven to openspec-default
  • Documentation - Update to prefer openspec-default while noting spec-driven still works
  • Default schema constants - Update DEFAULT_SCHEMA to openspec-default