Skip to content

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 10 Oct 11:43
· 6 commits to main since this release
Immutable release. Only release title and notes can be modified.
1e9f7e1

v0.11.0: Workflow profiles, delivery, and language

This release adds explicit workflow profiles and delivery surfaces — choose which of cospec's twelve workflows get installed and whether they're written as skills, commands, or both — plus cospec init --language, a canon-workflow parity pass against upstream, and a round of verification-gate fixes.

Added

Workflow profiles and delivery

cospec init --profile core|custom, and the global profile/workflows/delivery config keys, now control which workflows init and update install and which surface each lands on (713941c):

  • profile: core installs the six upstream core workflows (propose, explore, apply, update, sync-specs, archive); custom installs the workflows list. A key applies only when it's present — the built-in default is still all twelve workflows.
  • delivery (skills, commands, both) chooses the surface each workflow is written to.
  • cospec update never removes an installed workflow (delivery is the one exception), and generated bodies fall back to the raw cospec command when they'd otherwise point at an uninstalled workflow — powered by a line-for-line port of upstream's [[opsx:if-workflow]] conditional grammar.
  • cospec doctor reports the explicit profile/delivery it reads, names installed workflows outside the profile at INFO, and errors on any unresolved optional-workflow marker.
cospec config profile core      # six workflows everywhere
cospec config set delivery skills
cospec init --profile custom    # one-off override for this repo

cospec init --language

cospec init --language <lang> writes upstream's three-line directive into a new openspec/config.yaml context (713941c):

context: |
  Language: French
  All artifacts must be written in French.
  Keep OpenSpec structural headings and SHALL/MUST keywords in English.

It refuses, writing nothing, when a config already exists and its context doesn't already hold the directive.

Root-level opsx cleanup

cospec init --remove-opsx now strips leftover OpenSpec marker blocks from root config files (keeping the file itself), and cospec doctor reports them (713941c).

Canon workflow parity

Ported six passages from upstream's pinned workflow templates into cospec's canon bodies — a shared root-guard fragment, project inspection in propose/ff, and advisory operations guidance surfaced in both cospec apply and cospec archive (#80).

Fixed

  • verification.layers is finally read — a row tagged with a declared custom @<layer> no longer fails verification/layer-unknown in validate, apply, archive and sync-specs; cospec doctor warns on a malformed verification.layers (#77, fixes #68).
  • archiveReady honours the verification gate — cospec status and cospec list no longer flag a change as archive-ready while its verification.md has unresolved or malformed rows that cospec archive would refuse, so automation trusting archiveReady isn't told to archive a change that would be rejected (#75, fixes #67).
  • verification listed in the artifact plan — cospec new feat|fix|perf|refactor <slug> now lists verification (which the apply gate requires) in its Artifacts: plan and --json artifacts.summary (#78, fixes #71).
  • doctor warns on unknown rules keys — each rules: key in openspec/config.yaml that isn't an artifact id (e.g. proposals for proposal) now draws a config warning that names it, lists the known ids and suggests the closest one, instead of the rule list being silently dropped (#74, fixes #69).

Breaking Changes

  • Explicit profile/delivery now take effect. A machine whose global config already sets these keys gets different output: profile: core installs six workflows where it used to install twelve, profile: custom installs only its workflows list, and delivery: skills|commands writes only that surface — with cospec update removing the other surface's cospec files in a repo that has both. An absent key, or delivery: both, changes nothing (713941c).
  • archiveReady value change. A change with unresolved or malformed verification rows now reports archiveReady: false where it previously reported true. No JSON key or text-line shape changes (#75).
  • Legacy-schema references spelling. On a project whose config.yaml declares references, cospec apply/--json now spell apply.references[].fetch and .status[].fix as cospec … where they previously carried openspec … (#80).

Full Changelog: v0.10.0...v0.11.0