一键导入
windsor-test
Run and fix Windsor blueprint (facet) tests and Terraform module tests. Knows .test.yaml format, how windsor test works, and how to diagnose failures.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Run and fix Windsor blueprint (facet) tests and Terraform module tests. Knows .test.yaml format, how windsor test works, and how to diagnose failures.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Inspect the local Windsor cluster health and Flux tuning — kustomizations, helm releases, sources, pods, recent events, suspended/stalled resources, reconciliation intervals, and controller resource usage.
Pre-push review for Windsor Core. Runs parallel passes over staged changes to catch bugs in facets, kustomize, Terraform, and schema before the branch hits CI.
Author Windsor facets, config expressions, and schema additions. Knows facet YAML structure, expression syntax, the layering system (provider > option > addon), and how to write matching test cases.
Push the current branch and open or update its pull request with a Conventional-Commits title. Does NOT author a PR description -- the claude-code-review workflow upserts the canonical summary into the body on every push, so this skill leaves the body empty for CI to fill and never touches an existing one. Run after committing and before announcing the PR. Use whenever the user asks to "open the PR", "push and PR", or after the project's gates are green and the branch is ready.
Author and maintain reference Markdown for the core Windsor blueprint for ingestion into windsorcli.github.io. Use when writing docs under docs/, Terraform module reference, Kustomize stack operator guides (README per stack), or compatibility matrices.
Walk through review comments and failed CI checks on the current branch's PR, propose a fix per finding, and stage it for the author to review BEFORE committing. One pause-and-review cycle per finding. Use when the user says "address PR feedback", "fix the PR comments", "go through the review", or after a `gh pr checks` shows failures and the author wants to work through them one at a time. Pairs with create-pr (outgoing) and review-pr (pre-commit).
| name | windsor-test |
| description | Run and fix Windsor blueprint (facet) tests and Terraform module tests. Knows .test.yaml format, how windsor test works, and how to diagnose failures. |
contexts/_template/facets/contexts/_template/tests/terraform/task test # all tests (terraform + blueprint)
task test:blueprint # windsor test — all .test.yaml files
task test:terraform # all terraform modules
task test:terraform -- terraform/cluster/talos # specific terraform module
Location: contexts/_template/tests/<facet-name>.test.yaml
# <facet-name>.yaml facet tests
# One-line description of what this facet covers.
x-defaults:
network: &default-network
cidr_block: 10.5.0.0/16
loadbalancer_driver: kube-vip
loadbalancer_mode: arp
loadbalancer_ips:
start: "10.5.1.10"
end: "10.5.1.100"
cluster: &default-cluster
driver: talos
controlplanes:
nodes:
controlplane-1:
endpoint: 10.5.0.10:50000
node: 10.5.0.10
hostname: controlplane-1
workers:
volumes:
- /var/mnt/local
cases:
- name: descriptive name of what this case proves
values:
provider: metal
# ... blueprint values
expect:
kustomize:
- name: kustomization-name
path: some/path
dependsOn:
- other-kustomization
components:
- component-name
timeout: 10m
interval: 5m
exclude:
kustomize:
- name: should-not-appear
&default-network and &default-cluster in x-defaults and reference with *default-networkexpect: asserts exact match — every listed field must match, extra fields in output are fineexclude: asserts the named entry is absent from output — use to verify when: guards workterraformOutputs: include when the facet uses compute/workstation outputs (docker platform cases often need this)- name: private DNS enables coredns component
values:
provider: metal
addons:
private_dns:
enabled: true
expect:
kustomize:
- name: gateway-resources
components:
- nginx
- nginx/coredns # appears when private_dns enabled
- nginx/web
- name: excludes gateway when disabled
values:
provider: metal
gateway:
enabled: false
exclude:
kustomize:
- name: gateway-resources
- name: docker desktop uses nodeport
values:
platform: docker
workstation:
enabled: true
runtime: docker-desktop
terraformOutputs:
compute:
controlplanes:
- endpoint: 10.5.0.10:6443
node: 10.5.0.10
hostname: controlplane-1
workers: []
workstation:
registries: {}
expect:
kustomize:
- name: gateway-resources
components:
- nginx/nodeport
windsor test reports the failing case name and the field mismatch. Common root causes:
| Symptom | Likely cause |
|---|---|
| Component present but not expected | when: condition evaluates true unexpectedly |
| Component absent but expected | Expression bug (?? default wrong, == mismatch) |
Wrong path | Facet kustomize entry has wrong path string |
| Entire kustomization missing | when: guard blocks it; check effective values |
| Wrong component order | Components are order-sensitive; match facet order in test |
After fixing a facet, always run task test:blueprint to confirm. Fix and re-run until clean.