# OpenLife CLI v1.19.2 — brownfield-discovery → brownfield-blueprint

**Released:** 2026-05-25
**Predecessor:** v1.19.1
**Theme:** Rename the brownfield discovery workflow to "brownfield blueprint",
backward-compatible via an id alias.

---

## Why this release

The brownfield audit workflow is now named **brownfield blueprint** — the term
better reflects its output (an actionable plan/epic), not just discovery. The
rename is full (slug + display name + slash command) but non-breaking: a legacy
id alias keeps existing invocations working.

## What changed

| Area | Change |
|------|--------|
| Workflow | `dist-templates/workflows/brownfield-discovery.yaml` → `brownfield-blueprint.yaml`; internal `id`/`name` updated. |
| Slash command | `/openlife:flow:brownfield-blueprint` (regenerated for claude-code, gemini-cli, codex; old command removed). |
| Alias | `CommandFlowRunner.FLOW_ALIASES` maps `brownfield-discovery` → `brownfield-blueprint`, so `openlife flow run brownfield-discovery` still resolves. |
| References | generate-slash-commands.js (FLOWS + start/audit), `src/index.ts` (`aiobuilder discover` path), `ProjectMetadata`, sibling brownfield workflows, method personas (genesis/atlas/lyra/mesh/prism), tests, docs. |

## Backward compatibility

- `openlife flow run brownfield-discovery` → resolves to brownfield-blueprint (verified: 20 steps via both ids).
- The new canonical id is `brownfield-blueprint`; the alias is retained for legacy callers.

## Scope note

AIOBUILDER catalog entries (`.catalog/agents/ai-builder-*`, the
`01-meta-framework` squad) keep the generic "brownfield discovery" wording —
that's the activity term for the separate `aiobuilder discover` command, not
this workflow.

## Verification

- Workflow tests green: `test_flow_run_cli`, `test_workflow_e2e`, `test_openlife_method_inventory`, `test_workflow_parser`.
- `prepublishOnly` runs `test:all` as the publish gate. (Note: `test_queue_scheduler` is an intermittent WSL-local timing flake unrelated to this change — passes on rerun and in CI.)
