Current section
Files
Jump to
Current section
Files
priv/toolchain/migrations/0.12.0.md
# 0.12.0 — one lock per consumer: the move to hex (Amendment 7)
The toolchain, canon, AND the agent skills now ship in one package per
ecosystem (hex for Elixir; the git tag via uv elsewhere). One lock
(mix.lock) governs everything a consumer holds — version skew between
channels becomes impossible rather than detected.
## Elixir consumers (the common case)
1. Add the dep and drop the old channel:
{:dds, "~> 0.12", only: [:dev, :test]}
Then DELETE: `apm_modules/`, `apm.yml`, `apm.lock.yaml`, and the
`apm_modules` line from `.gitignore` (APM no longer delivers
anything the package does not).
2. `mix deps.get && mix dds.upgrade` — reconciles the canon,
rematerializes `.claude/skills/` from the bundle, re-pins
`.dds-version` (now `version:` + `protocol:`).
3. Workflow: the dds steps become
`mix dds.ci --base <merge-base>` + the status-file gate. Delete the
inline apm.lock verify step — `mix.lock`'s hex checksums are the
trust chain now, and they cover the skills' bytes too (which the
old inline step never did after its retirement).
4. Review the diff (the upgrade never commits), then `mix dds`.
## Non-Elixir consumers
`uv tool install "git+https://github.com/u2i/development-driven-specs@v0.12.0"`
then `dds upgrade` — identical semantics, the tag is the one lock.