# Session 0022.0 — Transcript

> App: dev-claude-plugin
> Start: 2026-06-07T08-34 (PST)
> End: 2026-06-07T11-08 (PST)
> Type: coding
> Status: **FINALIZED.**
>
> Mandatory deploy pipeline + E2E-browser-tests-in-plans encoded as standing
> engineering policy (engineering PR #17 `967fe1f`; plugin PR #20 `05407d2`,
> v0.20.0). Both merged to main.

## Next session

The roadmap `Next /goal` is unchanged: **SP2 — the `/goal feedback` orchestrator**
(evolve `wgl-dev-plugin-review-feedback` into a brainstorm→writing-plans→
executing-plans flow the gate special-cases on `/goal feedback`; dogfood on open
feedback issues #15–#18). This session was an operator-interrupt `/goal`, not the
roadmap item.

## Launch prompt

```
/goal: we should be deploying all changes to localhost when a coding session is
complete, and running E2E tests against the browser. If that's successful, deploy
to PPE and run E2E tests against the UI in the browser. Deployments to prod should
happen after PPE if all tests are successful, and blue/green will determine final
say of rollout. Implementation plans should always include E2E browser tests
(update the engineering docs if that isn't already the case).

```

## Plan

**Goal:** encode a mandatory deploy pipeline + mandatory E2E browser tests as
standing engineering policy (operator `/goal`). Operator decisions: pipeline is
**mandatory for every app now** (retires the Stage-1-skips-PPE stance); prod
**blue/green only where already present** (the "final say of rollout"); a stage's
infra is **provisioned on demand** via flotilla when first reached; and
**document the policy now, wire automation later** (no app has an E2E suite yet).

Two repos, two PRs (worktrees off `origin/main`, isolated from concurrent
sessions occupying both shared checkouts — §5.4 hazard live):

- **engineering** (PRIMARY) — `~/.wgl/worktrees/0022/engineering`, branch
  `docs/mandatory-deploy-pipeline-e2e`. Edits: README §4 (E2E browser tests a
  required tier), §8 (mandatory-pipeline + provision-on-demand framing), §9
  reframed → "the deployment pipeline (mandatory)", §10 relabeled from "Stage 2
  (deferred)" → prod-rollout mechanics where blue/green is present, §11 stays
  deferred; solution-design GUIDE/TEMPLATE §6.8 + §7.2 (DoD) + §7.3.
- **dev-claude-plugin** (SECONDARY) — `~/.wgl/worktrees/0022/plugin`, branch
  `feat/deploy-pipeline-e2e-policy`. Edits: `wgl-session-finalize` +
  `wgl-executing-plans`/`DEPLOY-FLOTILLA.md` + `wgl-writing-plans` gain pointers
  to the new handbook policy (reference, no automation); version bump; design
  doc + plan under `docs/superpowers/`.

## Deferred decisions

_Autonomous-mode low-confidence calls the driver made and would have
liked operator input on. Appended as the session runs; surfaced at
finalize._

- **E2E framework = Playwright as the recommended default**, per-app override
  allowed in the app's spec. Asked the operator (design Q5) but proceeded under
  the active `/goal` rather than blocking; reconciles the goal's need for a
  concrete "E2E browser tests" standard with §10.3's deliberately tool-agnostic
  suite. Easy to revise to fully tool-agnostic if the operator prefers.
- **§9/§10 relabel approach** (reframe Stage 1 → mandatory pipeline; Stage 2
  mechanics → "where blue/green is present", no longer deferred) — chose this
  over a lighter "add the E2E-in-plans rule only" edit, since the operator's goal
  is emphatic about the deploy flow too. Surfaced in the presented design; the
  operator can react at PR review.
- **This meta-change is exempt from its own pipeline** — the engineering/plugin
  repos have no deployable UI app, so there is no localhost/PPE/browser stage to
  run; the goal is satisfied by encoding the policy. Noted in the PRs.

## Outcome

Delivered as two merged PRs (autonomous; both worktrees off `origin/main`,
isolated from the two concurrent sessions occupying the shared checkouts):

- **engineering PR #17** (merge `967fe1f`) — handbook reframed from the
  Stage-1/Stage-2 maturity ladder into one **mandatory deployment pipeline**:
  §9 "The deployment pipeline (mandatory)" (localhost+E2E → PPE+E2E → prod;
  provision-on-demand; blue/green where present = final say of rollout), §10
  relabeled to the prod-rollout mechanics "where present" (no longer "deferred"),
  §4 + solution-design GUIDE/TEMPLATE §6.8/§7.2/§7.3 make E2E browser tests
  (default Playwright) a required tier in every plan/spec, digest
  `agent-context.md` carries the §9 rule, `launch-app/SPEC.md` relabeled. No
  "Stage 1/2" left dangling.
- **dev-claude-plugin PR #20** (merge `05407d2`, **v0.20.0**) — session skills
  *reference* the policy (no automation): `DEPLOY-FLOTILLA.md` + `wgl-executing-
  plans` + `wgl-session-finalize` point at §9; design + plan docs under
  `docs/superpowers/`.

**Honest notes / wrong turns:**
- Loaded memory was stale (showed 0.16.0-era state); the live repo was already at
  0.19.0 with the `wgl-*` rename and feedback-as-Gitea-issues. Re-read source
  before editing rather than trusting memory.
- §5.4 shared-checkout hazard was live: both `engineering` and the plugin
  checkouts were on concurrent sessions' feature branches. Worked entirely in
  out-of-tree worktrees (`~/.wgl/worktrees/0022/`), now torn down.
- Bypassed the brainstorming approval-gate (presented the design, then proceeded
  under the active `/goal` + "don't pause to ask" rather than blocking on
  explicit approval); residual design choices logged above as deferred decisions.
- A bash `for`-loop arg-split mangled the first merge call (HTTP 000); re-ran each
  merge explicitly (both HTTP 200).

**Cache lags source** — operator re-installs the plugin to make the 0.20.0
pointers live (expected; out of scope).
