Add `subresources: status: {}` to the CRD version spec so the status subresource is enabled
Define a `Status` struct in the Go type with `json:"status,omitempty"` and mark it with `+kubebuilder:subresource:status`
In the reconcile loop, update status using `r.Status().Update(ctx, obj)` rather than `r.Update` to avoid permission conflicts
Use `meta.SetStatusCondition` from `k8s.io/apimachinery/pkg/api/meta` to manage typed conditions on the status
Run `make manifests` to regenerate the CRD YAML with the subresource declaration
Known gotchas
Updating spec and status in the same `r.Update` call when the status subresource is enabled will silently drop status changes — always use `r.Status().Update` for status
Status conditions must use the standard `metav1.Condition` type for compatibility with `kubectl get` and tooling that reads conditions generically
The status subresource requires the operator's RBAC to include the `status` subresource verb; missing this causes 403 errors on status updates
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp