Repository navigation
v0.11.0
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: coreinstalls the six upstream core workflows (propose,explore,apply,update,sync-specs,archive);custominstalls theworkflowslist. 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 updatenever removes an installed workflow (delivery is the one exception), and generated bodies fall back to the rawcospeccommand 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 doctorreports 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 repocospec 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.layersis finally read — a row tagged with a declared custom@<layer>no longer failsverification/layer-unknowninvalidate,apply,archiveandsync-specs;cospec doctorwarns on a malformedverification.layers(#77, fixes #68).archiveReadyhonours the verification gate —cospec statusandcospec listno longer flag a change as archive-ready while itsverification.mdhas unresolved or malformed rows thatcospec archivewould refuse, so automation trustingarchiveReadyisn't told to archive a change that would be rejected (#75, fixes #67).verificationlisted in the artifact plan —cospec new feat|fix|perf|refactor <slug>now listsverification(which the apply gate requires) in itsArtifacts:plan and--jsonartifacts.summary(#78, fixes #71).doctorwarns on unknownruleskeys — eachrules:key inopenspec/config.yamlthat isn't an artifact id (e.g.proposalsforproposal) now draws aconfigwarning 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/deliverynow take effect. A machine whose global config already sets these keys gets different output:profile: coreinstalls six workflows where it used to install twelve,profile: custominstalls only itsworkflowslist, anddelivery: skills|commandswrites only that surface — withcospec updateremoving the other surface's cospec files in a repo that has both. An absent key, ordelivery: both, changes nothing (713941c). archiveReadyvalue change. A change with unresolved or malformed verification rows now reportsarchiveReady: falsewhere it previously reportedtrue. No JSON key or text-line shape changes (#75).- Legacy-schema
referencesspelling. On a project whoseconfig.yamldeclaresreferences,cospec apply/--jsonnow spellapply.references[].fetchand.status[].fixascospec …where they previously carriedopenspec …(#80).
Full Changelog: v0.10.0...v0.11.0