# Target-Prerequisite Workdown

**UNOFFICIAL/EXPERIMENTAL.** Generated by
`scripts/generate-target-prerequisite-workdown.mjs`. Do not hand-edit. Regenerate
with `npm run target-prerequisite-workdown`.

The complement of [model-gap-workdown](../model-gap-workdown/summary.md): these
rows do **not** need a catalog model change — the **target/user/operator** has to
stage a prerequisite or choose a target shape first (a CRD, Namespace, Secret,
storage, external API, or target topology). Each row says exactly **what must
exist** before the base can be used, and **who owns it**. It marks nothing fixed.

Source decisions: [kind-parity-decisions](../kind-parity-decisions/summary.md) and
[live-parity-decisions](../live-parity-decisions/summary.md); families in
[residue-families](../../docs/reference/residue-families.md). For the full non-green
triage see [matrix-completion-audit](../matrix-completion-audit/summary.md).

## 40 target-prerequisite rows

| Prerequisite kind | Rows |
| --- | ---: |
| `unknown` | 22 |
| `crd` | 6 |
| `external-api` | 4 |
| `namespace` | 4 |
| `secret` | 3 |
| `topology` | 1 |

| Owner class | Rows |
| --- | ---: |
| `operator-review` | 27 |
| `user-stage` | 12 |
| `target-policy` | 1 |

## Rows

| Chart | Base | Lane | Kind | Prerequisite | Owner | Parity |
| --- | --- | --- | --- | --- | --- | --- |
| autoscaler/cluster-autoscaler@9.57.0 | default | K | unknown | unknown | user-stage | yes |
| aws-ebs-csi-driver/aws-ebs-csi-driver@2.60.1 | default | G/P | topology | AWS/EKS metadata + node providerID | target-policy | yes |
| bitnami/contour@21.1.4 | legacy | G/P | unknown | unknown | operator-review | unknown |
| dex/dex@0.24.0 | default | G/P | unknown | unknown | operator-review | yes |
| dex/dex@0.24.0 | default | K | unknown | unknown | operator-review | yes |
| elastic/filebeat@8.5.1 | default | G/P | unknown | unknown | operator-review | yes |
| elastic/filebeat@8.5.1 | default | K | secret | Secret elasticsearch-master-certs | user-stage | yes |
| elastic/filebeat@8.5.1 | node-or-cluster-collector | G/P | unknown | unknown | operator-review | yes |
| elastic/filebeat@8.5.1 | node-or-cluster-collector | K | external-api | unknown | operator-review | yes |
| elastic/kibana@8.5.1 | default | G/P | unknown | unknown | operator-review | yes |
| elastic/kibana@8.5.1 | default | K | external-api | unknown | operator-review | yes |
| elastic/metricbeat@8.5.1 | default | G/P | unknown | unknown | operator-review | yes |
| elastic/metricbeat@8.5.1 | default | K | secret | Secret elasticsearch-master-certs | user-stage | yes |
| fluent/fluentd@0.5.3 | default | G/P | unknown | unknown | operator-review | yes |
| gitlab/gitlab-runner@0.89.0 | default | G/P | unknown | unknown | operator-review | yes |
| gitlab/gitlab-runner@0.89.0 | default | K | external-api | unknown | operator-review | yes |
| grafana/pyroscope@2.0.2 | default | G/P | unknown | unknown | operator-review | yes |
| grafana/pyroscope@2.0.2 | ha | G/P | unknown | unknown | operator-review | yes |
| grafana/pyroscope@2.0.2 | no-crds | G/P | unknown | unknown | operator-review | yes |
| hashicorp/terraform@1.1.2 | default | G/P | unknown | unknown | operator-review | yes |
| hashicorp/terraform@1.1.2 | no-crds | G/P | unknown | unknown | operator-review | yes |
| hashicorp/terraform@1.1.2 | no-crds | K | secret | Secret workspacesecrets; Secret terraformrc | user-stage | yes |
| hashicorp/vault@0.32.0 | ha-raft-ui | G/P | unknown | unknown | operator-review | yes |
| istio/istiod@1.30.0 | default | G/P | namespace | unknown | user-stage | yes |
| istio/istiod@1.30.0 | default | K | namespace | Namespace istio-system | user-stage | yes |
| jaegertracing/jaeger-operator@2.57.0 | default | G/P | crd | cert-manager CRDs | operator-review | unknown |
| jaegertracing/jaeger-operator@2.57.0 | default | K | crd | cert-manager CRDs | operator-review | unknown |
| jaegertracing/jaeger-operator@2.57.0 | no-crds | K | crd | cert-manager CRDs | operator-review | unknown |
| nats/surveyor@0.20.9 | default-reviewed | G/P | unknown | unknown | operator-review | yes |
| nats/surveyor@0.20.9 | default-reviewed | K | external-api | unknown | operator-review | yes |
| nats/surveyor@0.20.9 | default | G/P | unknown | unknown | operator-review | yes |
| nats/surveyor@0.20.9 | default | K | unknown | unknown | operator-review | yes |
| nfs-subdir-external-provisioner/nfs-subdir-external-provisioner@4.0.18 | default | K | unknown | value nfs.server | user-stage | unknown |
| opencost/opencost@2.5.21 | default | G/P | unknown | unknown | operator-review | yes |
| opencost/opencost@2.5.21 | default | K | unknown | unknown | operator-review | yes |
| prometheus-community/prometheus-adapter@5.3.0 | cluster-metrics-readonly | K | crd | unknown | user-stage | unknown |
| prometheus-community/prometheus-adapter@5.3.0 | default | K | crd | unknown | user-stage | unknown |
| rook-release/rook-ceph-cluster@v1.19.5 | default | G/P | namespace | Namespace rook-ceph | user-stage | yes |
| rook-release/rook-ceph-cluster@v1.19.5 | default | K | namespace | Namespace rook-ceph | user-stage | yes |
| velero/velero@12.0.1 | no-crds | K | crd | unknown | user-stage | unknown |

## How to read a row

- **prerequisite_kind/name** is what must exist on the target; `unknown` means the
  exact object was not extractable from the committed receipt (not invented).
- **semantic_parity_passed = yes** means the rendered objects already match regular
  Helm — only the target prerequisite is missing, so this is usually a user/target
  action, not a catalog defect.
- **owner_class** routes it: `user-stage` (stage the object), `target-policy`
  (choose/provide the target shape), `operator-review` (operational step or a
  dependency to provision), `catalog-support`, or `upstream-or-registry`.

## Boundaries

- Read-only projection over committed decisions and receipts. No live run, no
  kind cluster, no `runs/` edit, and no row marked fixed or pass.
- The rerun command is what to run *after* the prerequisite is staged, not now.
