Kubernetes YAML Generator Generate Kubernetes manifests with deterministic steps, bounded CRD research, and mandatory validation for full-resource output. Trigger Guidance Use this skill when the user asks to create or update Kubernetes YAML, for example: - "Generate a Deployment + Service manifest for my app." - "Create an Argo CD Application CRD." - "Write a StatefulSet with PVC templates." - "Produce production-ready Kubernetes YAML with best practices." Do not use this skill for validation-only requests. For validation-only work, use . Execution Model Normative keywords: - : required - :…

\nassert_file_contains_regex \\\n \"default RBAC keeps namespaced RoleBinding\" \\\n \"$RBAC_DEFAULT\" \\\n '^kind: RoleBinding

Kubernetes YAML Generator Generate Kubernetes manifests with deterministic steps, bounded CRD research, and mandatory validation for full-resource output. Trigger Guidance Use this skill when the user asks to create or update Kubernetes YAML, for example: - "Generate a Deployment + Service manifest for my app." - "Create an Argo CD Application CRD." - "Write a StatefulSet with PVC templates." - "Produce production-ready Kubernetes YAML with best practices." Do not use this skill for validation-only requests. For validation-only work, use . Execution Model Normative keywords: - : required - :…

\nassert_file_not_contains_regex \\\n \"default RBAC excludes ClusterRole\" \\\n \"$RBAC_DEFAULT\" \\\n '^kind: ClusterRole

Kubernetes YAML Generator Generate Kubernetes manifests with deterministic steps, bounded CRD research, and mandatory validation for full-resource output. Trigger Guidance Use this skill when the user asks to create or update Kubernetes YAML, for example: - "Generate a Deployment + Service manifest for my app." - "Create an Argo CD Application CRD." - "Write a StatefulSet with PVC templates." - "Produce production-ready Kubernetes YAML with best practices." Do not use this skill for validation-only requests. For validation-only work, use . Execution Model Normative keywords: - : required - :…

\nassert_file_not_contains_regex \\\n \"default RBAC excludes ClusterRoleBinding\" \\\n \"$RBAC_DEFAULT\" \\\n '^kind: ClusterRoleBinding

Kubernetes YAML Generator Generate Kubernetes manifests with deterministic steps, bounded CRD research, and mandatory validation for full-resource output. Trigger Guidance Use this skill when the user asks to create or update Kubernetes YAML, for example: - "Generate a Deployment + Service manifest for my app." - "Create an Argo CD Application CRD." - "Write a StatefulSet with PVC templates." - "Produce production-ready Kubernetes YAML with best practices." Do not use this skill for validation-only requests. For validation-only work, use . Execution Model Normative keywords: - : required - :…

\nassert_file_contains_literal \\\n \"optional cluster-reader example is explicitly warned\" \\\n \"$RBAC_OPTIONAL\" \\\n \"# WARNING: Optional high-privilege RBAC example.\"\nassert_file_contains_regex \\\n \"optional file defines ClusterRole\" \\\n \"$RBAC_OPTIONAL\" \\\n '^kind: ClusterRole

Kubernetes YAML Generator Generate Kubernetes manifests with deterministic steps, bounded CRD research, and mandatory validation for full-resource output. Trigger Guidance Use this skill when the user asks to create or update Kubernetes YAML, for example: - "Generate a Deployment + Service manifest for my app." - "Create an Argo CD Application CRD." - "Write a StatefulSet with PVC templates." - "Produce production-ready Kubernetes YAML with best practices." Do not use this skill for validation-only requests. For validation-only work, use . Execution Model Normative keywords: - : required - :…

\nassert_file_contains_regex \\\n \"optional file defines ClusterRoleBinding\" \\\n \"$RBAC_OPTIONAL\" \\\n '^kind: ClusterRoleBinding

Kubernetes YAML Generator Generate Kubernetes manifests with deterministic steps, bounded CRD research, and mandatory validation for full-resource output. Trigger Guidance Use this skill when the user asks to create or update Kubernetes YAML, for example: - "Generate a Deployment + Service manifest for my app." - "Create an Argo CD Application CRD." - "Write a StatefulSet with PVC templates." - "Produce production-ready Kubernetes YAML with best practices." Do not use this skill for validation-only requests. For validation-only work, use . Execution Model Normative keywords: - : required - :…

\n\necho \"\"\necho \"[P1] Ingress rewrite behavior is explicit\"\nassert_count_equals \\\n \"ingress example has separate web and api resources\" \\\n \"$INGRESS_EXAMPLE\" \\\n '^kind: Ingress

Kubernetes YAML Generator Generate Kubernetes manifests with deterministic steps, bounded CRD research, and mandatory validation for full-resource output. Trigger Guidance Use this skill when the user asks to create or update Kubernetes YAML, for example: - "Generate a Deployment + Service manifest for my app." - "Create an Argo CD Application CRD." - "Write a StatefulSet with PVC templates." - "Produce production-ready Kubernetes YAML with best practices." Do not use this skill for validation-only requests. For validation-only work, use . Execution Model Normative keywords: - : required - :…

\\\n 2\nassert_file_not_contains_regex \\\n \"no global rewrite to root remains\" \\\n \"$INGRESS_EXAMPLE\" \\\n 'nginx\\.ingress\\.kubernetes\\.io/rewrite-target:[[:space:]]*/

Kubernetes YAML Generator Generate Kubernetes manifests with deterministic steps, bounded CRD research, and mandatory validation for full-resource output. Trigger Guidance Use this skill when the user asks to create or update Kubernetes YAML, for example: - "Generate a Deployment + Service manifest for my app." - "Create an Argo CD Application CRD." - "Write a StatefulSet with PVC templates." - "Produce production-ready Kubernetes YAML with best practices." Do not use this skill for validation-only requests. For validation-only work, use . Execution Model Normative keywords: - : required - :…

\nassert_file_contains_regex \\\n \"api ingress uses regex mode intentionally\" \\\n \"$INGRESS_EXAMPLE\" \\\n 'nginx\\.ingress\\.kubernetes\\.io/use-regex:[[:space:]]*\"true\"'\nassert_file_contains_regex \\\n \"api ingress rewrite uses capture group\" \\\n \"$INGRESS_EXAMPLE\" \\\n 'nginx\\.ingress\\.kubernetes\\.io/rewrite-target:[[:space:]]*/\\$2'\nassert_file_contains_regex \\\n \"api ingress regex path is explicit\" \\\n \"$INGRESS_EXAMPLE\" \\\n 'path:[[:space:]]*/api\\(/\\|\\$\\)\\(\\.\\*\\)'\n\necho \"\"\necho \"[P2] HPA version guidance is corrected\"\nassert_file_contains_literal \\\n \"resource patterns mention autoscaling/v2 availability since v1.23\" \\\n \"$RESOURCE_PATTERNS\" \\\n \"available since Kubernetes v1.23\"\nassert_file_not_contains_regex \\\n \"stale GA in 1.26 claim removed\" \\\n \"$RESOURCE_PATTERNS\" \\\n 'GA since K8s 1\\.26'\n\necho \"\"\necho \"Regression summary: PASS=$PASS FAIL=$FAIL\"\nif [[ \"$FAIL\" -ne 0 ]]; then\n exit 1\nfi\n\necho \"PASS: k8s-yaml-generator regression tests\"\n","content_type":"application/x-sh; charset=utf-8","language":"bash","size":4903,"content_sha256":"0501240ba6e7cde8b650ea92d91d463338540a9f49aca05abc462ece58c6afa7"}],"content_json":{"type":"doc","content":[{"type":"heading","attrs":{"level":1},"content":[{"text":"Kubernetes YAML Generator","type":"text"}]},{"type":"paragraph","content":[{"text":"Generate Kubernetes manifests with deterministic steps, bounded CRD research, and mandatory validation for full-resource output.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Trigger Guidance","type":"text"}]},{"type":"paragraph","content":[{"text":"Use this skill when the user asks to create or update Kubernetes YAML, for example:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"\"Generate a Deployment + Service manifest for my app.\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"\"Create an Argo CD Application CRD.\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"\"Write a StatefulSet with PVC templates.\"","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"\"Produce production-ready Kubernetes YAML with best practices.\"","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Do not use this skill for validation-only requests. For validation-only work, use ","type":"text"},{"text":"k8s-yaml-validator","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"Execution Model","type":"text"}]},{"type":"paragraph","content":[{"text":"Normative keywords:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"MUST","type":"text","marks":[{"type":"code_inline"}]},{"text":": required","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"SHOULD","type":"text","marks":[{"type":"code_inline"}]},{"text":": default unless user requests otherwise","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"MAY","type":"text","marks":[{"type":"code_inline"}]},{"text":": optional","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Deterministic sequence:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Preflight request and path/rendering sanity.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Capture minimum required inputs.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Resolve CRD references (bounded workflow only when CRD/custom API is involved).","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Generate YAML with baseline quality checks.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Run mandatory validation (or documented fallback path when tooling is unavailable).","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Deliver YAML plus explicit validation report and assumptions.","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"If one step is blocked by environment constraints, execute that step's fallback and continue.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"1) Preflight","type":"text"}]},{"type":"paragraph","content":[{"text":"Before generation:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Confirm whether output is full manifest(s) or snippet-only.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Confirm target Kubernetes version when provided.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Verify any referenced local file path exists before using it.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Normalize resource naming to DNS-1123-compatible names where applicable.","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Preflight stop condition:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"If required core inputs are missing (resource type, workload image for Pod-based resources, or CRD kind/apiVersion), ask for those first.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"2) Capture Required Inputs","type":"text"}]},{"type":"paragraph","content":[{"text":"Collect:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Resource types (","type":"text"},{"text":"Deployment","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"Service","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"ConfigMap","type":"text","marks":[{"type":"code_inline"}]},{"text":", CRD kind, etc.)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"apiVersion","type":"text","marks":[{"type":"code_inline"}]},{"text":" + ","type":"text"},{"text":"kind","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Namespace/scoping requirements","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Ports, replicas, images, probes, storage, and secret/config needs","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Environment assumptions (dev/staging/prod)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"For CRDs: project name and target CRD version if known","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Safe defaults (state explicitly in output):","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Namespace: ","type":"text"},{"text":"default","type":"text","marks":[{"type":"code_inline"}]},{"text":" (namespace-scoped resources)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Deployment replicas: ","type":"text"},{"text":"2","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Service type: ","type":"text"},{"text":"ClusterIP","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Image pull policy: ","type":"text"},{"text":"IfNotPresent","type":"text","marks":[{"type":"code_inline"}]},{"text":" (unless user needs forced pulls)","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"3) CRD Lookup Workflow (Bounded)","type":"text"}]},{"type":"paragraph","content":[{"text":"Run this step only for custom APIs outside Kubernetes built-in groups.","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"3.1 Identify CRD target","type":"text"}]},{"type":"paragraph","content":[{"text":"Extract:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"API group, version, kind (for example ","type":"text"},{"text":"argoproj.io/v1alpha1","type":"text","marks":[{"type":"code_inline"}]},{"text":", ","type":"text"},{"text":"Application","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Requested product/version (for example Argo CD ","type":"text"},{"text":"v2.9.x","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"3.2 Context7 primary path","type":"text"}]},{"type":"paragraph","content":[{"text":"Use the correct Context7 tools and payloads:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"mcp__context7__resolve-library-id","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"mcp__context7__query-docs","type":"text","marks":[{"type":"code_inline"}]}]}]}]},{"type":"paragraph","content":[{"text":"Sample payloads:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"text"},"content":[{"text":"Tool: mcp__context7__resolve-library-id\nlibraryName: \"argo-cd\"\nquery: \"Find Argo CD documentation for Application CRD schema compatibility\"","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"text"},"content":[{"text":"Tool: mcp__context7__query-docs\nlibraryId: \"/argoproj/argo-cd/v2.9.0\"\nquery: \"Application CRD required spec fields for apiVersion argoproj.io/v1alpha1 with minimal valid example\"","type":"text"}]},{"type":"paragraph","content":[{"text":"Selection rules:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Prefer exact project/library name matches.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Prefer versioned ","type":"text"},{"text":"libraryId","type":"text","marks":[{"type":"code_inline"}]},{"text":" when user specifies a version.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Otherwise use unversioned ID and note version uncertainty.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"3.3 Thresholds and stop conditions","type":"text"}]},{"type":"paragraph","content":[{"text":"Bound the lookup to prevent unbounded retries:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"resolve-library-id","type":"text","marks":[{"type":"code_inline"}]},{"text":": max 2 attempts (primary name + one alternate name).","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"query-docs","type":"text","marks":[{"type":"code_inline"}]},{"text":": max 3 focused queries total.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Web fallback: max 2 version-specific searches.","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Stop early when all are true:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Required CRD fields are identified.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"At least one authoritative example is found.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Version compatibility is known or explicitly marked unknown.","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Hard stop when budgets are exhausted:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Generate only fields verified by sources.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Mark remaining fields as ","type":"text"},{"text":"Needs confirmation","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Report residual risk and request one of:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"exact CRD docs URL, or","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"cluster introspection output (for example ","type":"text"},{"text":"kubectl explain \u003ckind>.spec","type":"text","marks":[{"type":"code_inline"}]},{"text":" when available).","type":"text"}]}]}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"3.4 Fallback order","type":"text"}]},{"type":"paragraph","content":[{"text":"Use this order:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Context7 (","type":"text"},{"text":"resolve-library-id","type":"text","marks":[{"type":"code_inline"}]},{"text":" -> ","type":"text"},{"text":"query-docs","type":"text","marks":[{"type":"code_inline"}]},{"text":")","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Official project docs via web search","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Cluster-local introspection (","type":"text"},{"text":"kubectl explain","type":"text","marks":[{"type":"code_inline"}]},{"text":", if cluster access exists)","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"If none are available, provide a minimal, clearly marked draft and do not claim full CRD correctness.","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"4) YAML Generation Rules","type":"text"}]},{"type":"paragraph","content":[{"text":"Apply these checks:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use explicit, non-deprecated API versions.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Include consistent labels (","type":"text"},{"text":"app.kubernetes.io/*","type":"text","marks":[{"type":"code_inline"}]},{"text":") across related resources.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Include namespace for namespace-scoped resources.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Add resource requests/limits for Pod workloads unless user opts out.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Add readiness/liveness probes for long-running services where applicable.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Use ","type":"text"},{"text":"securityContext","type":"text","marks":[{"type":"code_inline"}]},{"text":" to avoid root execution by default.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Keep multi-resource ordering dependency-safe (for example ConfigMap before Deployment consumers).","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Minimal label baseline:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"yaml"},"content":[{"text":"labels:\n app.kubernetes.io/name: myapp\n app.kubernetes.io/instance: myapp-prod\n app.kubernetes.io/part-of: myplatform\n app.kubernetes.io/managed-by: codex","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"5) Mandatory Validation and Contingencies","type":"text"}]},{"type":"paragraph","content":[{"text":"For full manifest generation, validation is mandatory.","type":"text"}]},{"type":"paragraph","content":[{"text":"Primary path:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Invoke ","type":"text"},{"text":"k8s-yaml-validator","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Iterate fix -> revalidate until blocking issues are gone.","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Required reporting after each validation pass:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Validation mode","type":"text","marks":[{"type":"code_inline"}]},{"text":": ","type":"text"},{"text":"k8s-yaml-validator","type":"text","marks":[{"type":"code_inline"}]},{"text":" | ","type":"text"},{"text":"script fallback","type":"text","marks":[{"type":"code_inline"}]},{"text":" | ","type":"text"},{"text":"manual fallback","type":"text","marks":[{"type":"code_inline"}]}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Syntax","type":"text","marks":[{"type":"code_inline"}]},{"text":": pass/fail","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Schema","type":"text","marks":[{"type":"code_inline"}]},{"text":": pass/fail/partial","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"CRD check","type":"text","marks":[{"type":"code_inline"}]},{"text":": pass/fail/partial","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Dry-run","type":"text","marks":[{"type":"code_inline"}]},{"text":": server/client/skipped","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Blocking issues remaining","type":"text","marks":[{"type":"code_inline"}]},{"text":": yes/no","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Contingency A: validator skill unavailable","type":"text"}]},{"type":"paragraph","content":[{"text":"Run direct commands:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"bash devops-skills-plugin/skills/k8s-yaml-validator/scripts/setup_tools.sh\nyamllint -c devops-skills-plugin/skills/k8s-yaml-validator/assets/.yamllint \u003cfile.yaml>\nkubeconform -schema-location default -strict -ignore-missing-schemas -summary \u003cfile.yaml>\nserver_out=\"$(mktemp)\"\nclient_out=\"$(mktemp)\"\ntrap 'rm -f \"$server_out\" \"$client_out\"' EXIT\n\nif kubectl apply --dry-run=server -f \u003cfile.yaml> >\"$server_out\" 2>&1; then\n echo \"server_validation=passed\"\nelif grep -Eqi \"connection refused|no such host|i/o timeout|tls handshake timeout|unable to connect to the server|no configuration has been provided|the server doesn't have a resource type\" \"$server_out\"; then\n echo \"server_validation=skipped\"\n if kubectl apply --dry-run=client -f \u003cfile.yaml> >\"$client_out\" 2>&1; then\n echo \"client_validation=passed\"\n else\n echo \"client_validation=failed\"\n cat \"$client_out\"\n exit 1\n fi\nelse\n echo \"server_validation=failed\"\n cat \"$server_out\"\n exit 1\nfi","type":"text"}]},{"type":"paragraph","content":[{"text":"Contingency B: local tools partially unavailable","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Run available checks.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Record skipped checks explicitly.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Add residual risk for every skipped check.","type":"text"}]}]}]},{"type":"paragraph","content":[{"text":"Contingency C: repeated validation failure","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Maximum 3 fix/revalidate cycles.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"If still failing, stop and return:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"current YAML,","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"exact failing errors,","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"smallest required user decision/input to unblock.","type":"text"}]}]}]}]}]},{"type":"paragraph","content":[{"text":"Validation exceptions:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Snippet-only or docs-only requests MAY skip full validation, but the output MUST state ","type":"text"},{"text":"Validation status: Skipped (reason)","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"6) Delivery Contract","type":"text"}]},{"type":"paragraph","content":[{"text":"Final output MUST include:","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Generated YAML.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"What was generated (resource list, namespace/scoping).","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Validation report in the required format.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Assumptions and defaults used.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"References used:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Context7 IDs/queries used (for CRDs)","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"external docs/searches used","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"items skipped/missing and impact","type":"text"}]}]}]}]}]},{"type":"paragraph","content":[{"text":"Suggested next commands:","type":"text"}]},{"type":"code_block","attrs":{"wrap":false,"language":"bash"},"content":[{"text":"kubectl apply -f \u003cfilename>.yaml\nkubectl get \u003cresource-type> \u003cname> -n \u003cnamespace>\nkubectl describe \u003cresource-type> \u003cname> -n \u003cnamespace>","type":"text"}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"7) Canonical Example Flows","type":"text"}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Example A: Built-in resources (Deployment + Service)","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Capture app image, ports, replicas, namespace.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Generate Deployment and Service with consistent labels/selectors.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Validate with ","type":"text"},{"text":"k8s-yaml-validator","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Return YAML + validation report + assumptions.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":3},"content":[{"text":"Example B: CRD resource (Argo CD Application)","type":"text"}]},{"type":"ordered_list","attrs":{"order":1,"listStyle":"number"},"content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Extract ","type":"text"},{"text":"argoproj.io/v1alpha1","type":"text","marks":[{"type":"code_inline"}]},{"text":" + ","type":"text"},{"text":"Application","type":"text","marks":[{"type":"code_inline"}]},{"text":".","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Run bounded Context7 lookup (","type":"text"},{"text":"resolve-library-id","type":"text","marks":[{"type":"code_inline"}]},{"text":" then ","type":"text"},{"text":"query-docs","type":"text","marks":[{"type":"code_inline"}]},{"text":").","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"If needed, perform bounded web fallback.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Generate CRD YAML only with verified fields.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Validate, report any partial verification, and return residual risks.","type":"text"}]}]}]},{"type":"heading","attrs":{"level":2},"content":[{"text":"8) Definition of Done","type":"text"}]},{"type":"paragraph","content":[{"text":"Execution is complete only when all applicable checks pass:","type":"text"}]},{"type":"bullet_list","content":[{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Trigger use case is correct (generation, not validation-only).","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Required inputs are captured or explicit assumptions are documented.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"CRD lookup follows bounded thresholds and stop conditions.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Tool names and command paths are valid and consistent.","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Full manifests are validated (or fallback path is documented with residual risk).","type":"text"}]}]},{"type":"list_item","content":[{"type":"paragraph","content":[{"text":"Final response includes YAML, validation report, assumptions, and references.","type":"text"}]}]}]}]},"metadata":{"date":"2026-11-02","name":"k8s-yaml-generator","author":"@skillopedia","source":{"stars":331,"repo_name":"cc-devops-skills","origin_url":"https://github.com/akin-ozer/cc-devops-skills/blob/HEAD/devops-skills-plugin/skills/k8s-yaml-generator/SKILL.md","repo_owner":"akin-ozer","body_sha256":"f8133da33f1cae792e57399d2dcc0d700e05ce8819cce4047a0fb4a226432efb","cluster_key":"790bb149d4922420564fca009d820e201afb3b9b2a5106a984266fcbdda6af3b","clean_bundle":{"format":"clean-skill-bundle-v1","source":"akin-ozer/cc-devops-skills/devops-skills-plugin/skills/k8s-yaml-generator/SKILL.md","text_bytes":39689,"source_commit":"276af751e659315aaf56d3ad13d7c26f4e72e28a","skills_sh_rank":16525,"attachment_count":10,"text_attachments":10,"attachment_storage":"skill_attachments","binary_attachments":0},"cluster_size":1,"skill_md_path":"devops-skills-plugin/skills/k8s-yaml-generator/SKILL.md","import_metadata":{"date":"2026-11-02","author":"@skillopedia","version":"v1","category":"devops-infrastructure","category_label":"DevOps"},"exact_dupes_collapsed_into_this":0},"version":"v1","category":"devops-infrastructure","import_tag":"skills-sh-top20k-2026-11","description":"Generate/create/scaffold Kubernetes YAML — Deployment, Service, ConfigMap, Ingress, RBAC, StatefulSet, CRDs."}},"renderedAt":1793671764721}

Kubernetes YAML Generator Generate Kubernetes manifests with deterministic steps, bounded CRD research, and mandatory validation for full-resource output. Trigger Guidance Use this skill when the user asks to create or update Kubernetes YAML, for example: - "Generate a Deployment + Service manifest for my app." - "Create an Argo CD Application CRD." - "Write a StatefulSet with PVC templates." - "Produce production-ready Kubernetes YAML with best practices." Do not use this skill for validation-only requests. For validation-only work, use . Execution Model Normative keywords: - : required - :…