<!--
PR body for one harvested pattern. Filled by generalize-pattern.
Replace every <placeholder>. Delete the corroboration banner block for single-source candidates.
-->

🌱 **Upstream harvest:** `<intent>`

<!-- CORROBORATION BANNER — keep only when confidence == corroborated -->
> 🔁 **Corroborated by <N> independent client deployments.** This same directional change
> was made independently across <N> separate deployments — a strong signal that it belongs
> in the template.

## What this is

<rationale>

This pattern exists in client deployment(s) but not (or only partially) in this template.
It has been **generalized** — every client-specific detail removed — and applied here for review.

## Provenance

<!--
  ANONYMIZED on purpose. Do NOT name client repos / PRs here — the template repo has a wider
  audience than any single client repo. State only the aggregate count. The precise source
  refs live in .github/harvest-ledger.yml (internal to this repo).
-->
- Harvested from **<N>** client deployment(s). Precise sources recorded in the harvest ledger.

## What was generalized / stripped

<!-- This is how you verify the strip was clean. Enumerate every client specific removed/replaced. -->
| Client specific (removed) | Replaced with |
|---|---|
| `<client-name / host / value>` | `<template placeholder / convention>` |

- No secrets, credentials, hostnames, or client identifiers are included in this change.
- No client business logic was harvested — only the generalizable pattern.

## Review checklist

- [ ] The change fits the template's conventions (not the client's).
- [ ] The diff contains no client-specific tokens or secret-shaped values.
- [ ] The pattern is portable — no dangling reference to a client-only file/service.
- [ ] Worth adopting for **all** repos scaffolded from this template.

---

Ledger entry: `<id>` → on merge, set `status: ported`; on close-without-merge it is
recorded as `declined` so it is not re-proposed.

> Generated by the `gemma-upstream-harvest` plugin (Claude Code).
