mit einem Klick
planned-implementation
// Plan and execute complex KAOS implementation work with staged context gathering, backend/UI synthesis, validation, PR/CI checks, and REPORT.md PR-comment output.
// Plan and execute complex KAOS implementation work with staged context gathering, backend/UI synthesis, validation, PR/CI checks, and REPORT.md PR-comment output.
Execute a full KAOS release. Use this skill when asked to release a new version of KAOS. The user provides the target version (e.g., v0.5.0) in their prompt. This skill handles pre-flight checks, release creation, CI monitoring, artifact validation, smoke testing, and post-release cleanup.
Comprehensively diagnose and fix a failing Dependabot PR. Use this skill when asked to run /dependabot-fix <pr-number>. The user provides the PR number in their prompt. The skill loads PR context, surveys errors at a high level, ingests relevant repo instructions / docs / source via subagents, performs a deep root-cause diagnosis, designs a risk-tiered fix with a manual testing strategy, commits the fix directly to the Dependabot PR branch, posts a REPORT.md as a comment on it (never commits it), and evaluates whether the skill itself needs updating afterwards.
| name | planned-implementation |
| description | Plan and execute complex KAOS implementation work with staged context gathering, backend/UI synthesis, validation, PR/CI checks, and REPORT.md PR-comment output. |
| allowed-tools | shell |
Use this skill for complex KAOS changes that span multiple domains, especially backend plus UI work. The goal is to keep working context focused by gathering domain knowledge in staged passes, documenting only the relevant findings, then executing numbered tasks one by one with validation and commits.
IMPORTANT INSRTUCTIONS: This is quite a comprehensive request, so please ensure that before starting you put together a comprehensive plan to move forward, and a design plan on how this will fit the existing codebase. Create a set of tasks from the TODOs outlined below by number, and make sure you carry them out one by one without skipping any, each of them should ensure the tests are validated and passing, and committed with using commits using "comprehensive commit" style with succint and functional descriptions each individual task is done. Ensure that all tests pass. You have access to github CI, so whenever you create a set of commits, make sure to push to a PR (if not there create one) and validate that they all run correctly; if any major refactors make sure that you run the python and golang tests locally, and you have a KIND cluster available so run 1-3 tests locally before pushing to run the end to end tests in the CI; prefer to run the complete set of tests in the CI github actions, but if you see many failing again run 1-3 locally to validate before; be efficient when it comes to testing. We are still in alpha so breaking changes can be done and migration does not need to be documented.
./tmp for scratch files and suppressed output. Do not use /tmp unless external-host access is truly required.REPORT.md at the end, but never commit it. Post its contents as a PR comment.REPORT.md and rely on PR CI.mkdir -p ./tmp
touch ./tmp/null
git --no-pager status --short --branch
Stop and ask the user if existing unrelated changes conflict with the requested work.
{
echo "## Local validation environment"
command -v docker >/dev/null && docker ps --format 'docker: {{.Names}} {{.Status}}' || true
command -v kubectl >/dev/null && kubectl config current-context 2>./tmp/null || true
command -v kubectl >/dev/null && kubectl cluster-info 2>./tmp/null || true
command -v kaos >/dev/null && kaos version 2>./tmp/null || true
curl -sS -o ./tmp/null -w 'ui:%{http_code}\n' http://localhost:8080/ || true
curl -sS -o ./tmp/null -w 'ui-alt:%{http_code}\n' http://localhost:8081/ || true
curl -sS -o ./tmp/null -w 'proxy:%{http_code}\n' http://localhost:8010/ || true
} | tee ./tmp/local-validation-context.txt
If the user says a local KAOS cluster is running, treat the local runtime as the primary E2E validation target. Do not skip local E2E solely because CI will run later.
Read only backend-relevant instructions, docs, source, and tests first. Use this mapping:
pydantic-ai-server/** -> .github/instructions/python.instructions.mdoperator/**/*.go -> .github/instructions/operator.instructions.mdoperator/tests/** -> .github/instructions/e2e.instructions.mdkaos-cli/** -> Python instructions plus CLI docs/testsCapture:
Do not start UI research until backend notes are complete.
Read only UI-relevant instructions, source, and tests:
.github/instructions/kaos-ui.instructions.md.github/instructions/kaos-ui-testing.instructions.md.github/instructions/kaos-ui-components.instructions.md when components are touched.github/instructions/kaos-ui-kubernetes-types.instructions.md when Kubernetes/CRD types are touchedCapture:
Do not start cross-domain design until UI notes are complete.
Read docs and repo instructions that describe the public surface or workflow being changed:
.github/copilot-instructions.md.github/skills/*/SKILL.md for skill conventions.github/instructions/docs.instructions.md for docs changesdocs/Capture:
Create a compact design that answers:
Prefer the smallest complete design that fits existing code. KAOS is alpha, so breaking changes can be accepted when useful, but do not break unrelated behavior casually.
Write a plan with:
REPORT.md requirements.Reflect the TODOs into any available task tracker and keep status updated as work progresses.
For each numbered TODO:
Do not batch unrelated TODOs into one commit.
Use targeted local validation first, then PR CI for broader coverage.
Before running E2E, inspect ./tmp/local-validation-context.txt and reuse available configuration:
kubectl cluster-info works, use the current kube context; do not create a new KIND cluster unless tests require isolation.kaos ui --no-browser or another proxy is already serving on localhost:8010, use that proxy.localhost:8080 or localhost:8081, use the matching Playwright base URL or config instead of starting a duplicate server../tmp, and stop only processes you started../tmp.Common commands:
# Python backend
cd pydantic-ai-server && source .venv/bin/activate
python -m pytest tests/ -v
make lint
# UI
cd kaos-ui
npm run test:unit
npm run lint
npm run build
npm run test:e2e -- tests/functional/
# Operator, only when operator code changes
cd operator
make generate manifests
make test-unit
For end-to-end coverage, prefer GitHub Actions on a PR. If many CI failures occur, reproduce 1-3 relevant tests locally before pushing follow-up fixes.
For UI work against an existing local KAOS cluster, run at least one targeted Playwright test against the real local setup when available, for example:
cd kaos-ui
KAOS_UI_BASE_URL=http://localhost:8080 \
KAOS_PROXY_URL=http://localhost:8010 \
npm run test:e2e -- tests/functional/<relevant-test>.spec.ts
If the repo's Playwright config does not read those environment variables, either use the default ports expected by the config or pass an equivalent Playwright --config/environment setup already used in the repo. Record the exact command and observed result in REPORT.md.
Create or overwrite REPORT.md in the repository root with:
Do not commit REPORT.md. Post its contents as a PR comment:
gh pr comment <pr-number> --body-file REPORT.md