# Decantr 2.9 Operating Layer

Decantr 2.9 makes Brownfield and monorepo adoption less command-sprawly by adding an explicit operating layer around the existing primitives.

## Highlights

- `decantr doctor` explains app/workspace state, Essence version, adoption mode, generated artifacts, local law, visual evidence, design authority signals, CI wiring, and the ordered next-step queue.
- `decantr ci` is the blessed non-mutating automation gate for local required scripts and CI.
- `decantr ci init` writes root GitHub workflows or generic pipeline snippets using the detected package manager and pinned local CLI command instead of `@latest`.
- Monorepo roots now require explicit app targeting for app-scoped CI, so generated workflows do not silently validate the wrong directory.
- Brownfield contract-only health no longer asks for Decantr token CSS files that the adoption mode intentionally avoids.
- `decantr refresh --check` and `--list-changes` give CI-safe freshness checks and clearer generated-file summaries.
- Accepted Brownfield projects now write `.decantr/README.md` so teams know which artifacts are canonical, generated, local-only, or safe to ignore.
- `@decantr/verifier` publishes `decantr-ci-report.v1.json` for schema-backed CI summaries.

## Updated Packages

- `@decantr/cli`: `2.9.0`
- `@decantr/verifier`: `2.3.0`

Patch note: 2.9.1 tightened Brownfield monorepo correctness after dogfood testing. See `2026-05-14-brownfield-correctness-2-9-1.md`.

Patch note: 2.9.2 polishes the published Brownfield path: online `adopt` hydrates packs before verification, health remediation commands stay monorepo-scoped, generated CI prints the CLI pin command when needed, and source audit ignores test/story/fixture files for production drift warnings. See `2026-05-14-brownfield-dx-2-9-2.md`.

Patch note: 2.9.3 tightens command consistency after deeper Brownfield dogfooding: app primitives honor `--project`, health prompt commands resolve against the selected app, `add page` writes routes, legacy `health init-ci` delegates to `ci init`, and verifier runtime checks handle Next/static outputs more accurately. See `2026-05-14-brownfield-command-consistency-2-9-3.md`.

Patch note: 2.9.4 closes the next dogfood paper cuts: remediation prompts now include app-prefixed read targets and root-safe app build commands, UI interaction evidence ignores API/tests/stories/fixtures, contract-only token export errors explain the style-system boundary, and `workspace list` says "attach another app" once a workspace already has an attached Decantr project. See `2026-05-15-brownfield-dogfood-2-9-4.md`.

Patch note: 2.9.5 makes `decantr add page app/foo --project apps/web` work for observed Brownfield contracts by resolving the common `app` shorthand to the single primary section, such as `observed-primary`, when that resolution is unambiguous. See `2026-05-15-brownfield-add-page-alias-2-9-5.md`.

Patch note: 2.9.6 extends observed Brownfield section aliases to `decantr add feature --section app`, so scoped feature additions follow the same ergonomic path as page additions. See `2026-05-15-brownfield-feature-alias-2-9-6.md`.

Patch note: 2.9.7 closes the release-stewardship and hardening loop around the Brownfield operating layer. It adds local release policy docs and the release engineering skill, tightens release closeout behavior, and records the current dogfood confidence sweep. See `2026-05-15-brownfield-hardening-2-9-7.md`.

Patch note: 2.9.8 polishes the Brownfield cold-start path after another monorepo dogfood run. `adopt` no longer prints the nested `analyze -> init` follow-up as if the user still had to run it manually, and `doctor` now prints an ordered next-step queue instead of hiding the operating loop behind one command. See `2026-05-15-brownfield-doctor-queue-2-9-8.md`.

## Migration Notes

Existing `decantr verify`, `decantr health`, `decantr workspace health`, and `verify init-ci` flows remain available. New docs lead with `decantr doctor` for orientation and `decantr ci` / `decantr ci init` for automation. Teams should replace generated workflows that used `@decantr/cli@latest` with the new pinned local command generated by `decantr ci init`.

For monorepos:

```bash
pnpm exec decantr doctor --project apps/web
pnpm exec decantr ci init --project apps/web
pnpm exec decantr ci --project apps/web
```

For Jenkins, Please, Buildkite, GitLab, Azure DevOps, or internal deployment systems:

```bash
pnpm exec decantr ci init --provider generic --project apps/web
```
