# Pattern: cp-cr-lifecycle

Shared technique for Dedicated **control-plane** CRs (APPBox, VPC, VPCPeering,
PrivateLinkService). Domain SUBSKILLs supply concrete GK and Gate targets.

## Default order

1. **Phase** — primary lifecycle signal (`Pending` / `Creating` / `Active` /
   `Failed` / deleting phases).
2. **Reason / message / conditions** — why not Active.
3. **Events** (soft unless SUBSKILL says hard) — recent failures.
4. **Dependency object** — Guardian-style Gate (e.g. APPBox waits VPC Active;
   PLS/Peering wait VPC Active). If dependency not ready → handoff that domain;
   do not deep-dive cloud-specific create tasks yet.

## Intent template

- Plane=`CONTROL_PLANE`
- GK=`APPBox` | `VPC` | `VPCPeering` | `PrivateLinkService`
- Conditions: `name` (+ `namespace` when known) from Inputs or object-graph
- Focus: `status.phase`, `status.reason`, conditions/messages as present

Execute via the domain-bound Method (usually `method-k8s-resource`).

## Healthy side

Domain Health checklist typically requires `status.phase=Active` (or
domain-documented equivalent) plus required dependency Gates green.
