Production-grade platform engineering handbook — Kubernetes, Terraform, Flux CD, GitHub Actions, AWS, and more.
67
84%
Does it follow best practices?
Impact
—
No eval scenarios have been run
Passed
No known issues
Thank you for your interest in contributing to Platform Skills! This guide will help you propose improvements and add new patterns.
If you encounter problems or have suggestions:
Before submitting a pattern:
Fork the repository and create a feature branch
git checkout -b feature/flux-troubleshooting-patternMake your changes following the structure:
SKILL.mdreferences/*.mdexamples/*/CHANGELOG.md with your changesFollow the writing style:
Test your changes:
Submit pull request with:
When documenting issues, use this structure:
Template:
### Problem: [Concise description]
**Symptoms:**
- Observable behavior
- Exact error messages
- Impact on services
**Evidence to collect:**
Commands to gather diagnostic information
**Root cause:**
Clear explanation of why this happens
**Fix:**
Specific configuration changes with code blocks
**Validation:**
How to verify the fix worked
**Prevention:**
How to avoid this in the future
**Rollback:**
How to safely undo if neededExample:
### Problem: HelmRelease stuck in reconciling state
**Symptoms:**
- HelmRelease shows "Reconciling" for >10 minutes
- Error: "chart pull failed: failed to get chart version"
- Application pods not created
**Evidence to collect:**
`flux logs --kind=HelmRelease --name=my-app`
`kubectl describe helmrelease my-app -n apps`
**Root cause:**
HelmRepository source is unreachable or chart version doesn't exist
**Fix:**
Verify HelmRepository is ready and chart version exists in repository
**Validation:**
`flux get helmreleases` shows "Ready" status
**Prevention:**
Add health checks for HelmRepository before creating HelmReleases
**Rollback:**
`flux suspend helmrelease my-app` to stop reconciliationmyapp, production, team-a not foo, bar, test123When documenting security patterns:
All contributions are reviewed for:
Reviewers may:
ValidatingPolicy resources mapped to SOC 2 Trust Services Criteria (privileged containers, required labels, image tag mutability, non-root enforcement); kube-bench CIS Benchmark integration; pod security admission evidence commands. Backs up references/compliance.md with a Kubernetes layer.references/compliance.md with HIPAA §164.3xx and PCI-DSS Req 1–12 mapped to existing Terraform patterns. Most controls overlap with SOC 2; the work is mapping, evidence commands, and a per-framework readiness checklist.examples/linkerd/ assets (HTTPRoute canary split, AuthorizationPolicy + MeshTLSAuthentication, PodMonitor) to back up references/linkerd.mdFollow this checklist when adding a net-new domain (e.g. a new command + reference + examples):
references/<domain>.mdreferences/<domain>.mdREQUIRED_REFERENCES array in tests/validate-skill.shcommands/<domain>.mdcommands/<domain>.mdname:, description:, argument-hint:## Mode: section.claude-plugin/plugin.json commands arraytests/validate-skill.sh to confirm registrationSKILL.md (root) references references/<domain>.mdSKILL.md lists /platform-skills:<domain> in the slash commands sectioncp SKILL.md skills/platform-skills/SKILL.mdexamples/<domain>/README.md has a Status: Stable (or Beta/Draft/Experimental) line near the topREADME.md includes a files table, quick-start section, and See Also links<domain>-validate.sh offline validator scripttests/validate-skill.sh VALIDATE_SCRIPTS arrayEXAMPLE_DOMAINS in tests/validate-skill.shCOMMANDS.md — add row to ToC table and add full ### /platform-skills:<domain> sectionHOW_IT_WORKS.md — add row to slash-command tableGETTING_STARTED.md — increment command count, add row to command tableQUICKSTART.md — increment command count (See all N commands)README.md — add domain to the domain table (lines ~40–75)EDITOR_INTEGRATIONS.md — add ### <domain> section with 4–6 Copilot Chat prompts, update command count.github/copilot-instructions.md — add domain section with key patterns and never-generate list; update version to next releaseCHANGELOG.md — add bullet under the upcoming release version.cursor/rules/<domain>.mdc.mdc globs in the EDITOR_INTEGRATIONS.md file reference tablebash tests/validate-skill.sh — all checks passbash tests/validate-helmcheck.sh — all checks passbash tests/handbook-consistency.sh — all checks passbash tests/release-consistency.sh — all checks passbash tests/validate-ci.sh — all checks passCommand-<Domain>.md page in the wikiDomain-<Domain>.md page in the wikiHome.md and Commands.md command countHome.md Commands table, Domains.md table# Title
Brief overview paragraph.
## Contents
- Section 1
- Section 2
- Section 3
## Section 1
Content here...
### Subsection
More specific content...
## Further Reading
- [External docs](https://example.com)
- [Related patterns](references/platform-operating-model.md)Always specify language:
# Good - language specified
apiVersion: v1
kind: ConfigMap# Bad - no language
apiVersion: v1
kind: ConfigMapUse relative links for internal docs:
See [Flux CD patterns](references/fluxcd.md) for details.Use absolute links for external resources:
See [AWS IAM docs](https://docs.aws.amazon.com/iam/) for reference.Before contributing, read CLAUDE.md for the design philosophy, content structure, and writing principles that all patterns in this repository follow.
# Markdown linting
npm install -g markdownlint-cli
# Check markdown files
markdownlint '**/*.md' --ignore node_modules
# Spellcheck (if vale is installed)
vale references/*.mdIf you have Claude Code installed:
# Register the local repo as a marketplace and install
claude plugin marketplace add $(pwd)
claude plugin install platform-skills
# Verify version and status
claude plugin list
# Uninstall after testing
claude plugin uninstall platform-skillsTo upgrade after making further changes, re-run:
claude plugin marketplace update
claude plugin install platform-skillsPlatform Skills uses automated GitHub Actions workflows for releases.
Update version and changelog:
# Update marketplace.json
vim .claude-plugin/marketplace.json # Set plugins[0].version to "X.Y.Z"
# Update CHANGELOG.md
vim CHANGELOG.md # Add [X.Y.Z] section with changes
# Commit
git add .
git commit -m "Prepare vX.Y.Z release"
git push origin mainCreate and push tag (triggers automated release):
git tag -a vX.Y.Z -m "Release vX.Y.Z"
git push origin vX.Y.ZAutomated workflow handles:
Note: Release workflow validates syntax and structure. For comprehensive validation including Kubernetes manifests and GitHub Actions security checks, use the standard PR workflow before tagging.
Verify release:
Distribution:
This repository is distributed through multiple channels:
Current state: Marketplace publication is manual (see Marketplace Publication section below). Future state: When the Claude marketplace API is available, publication will be automated via the GitHub Release workflow.
Follow semantic versioning:
Before creating a tag:
.claude-plugin/marketplace.json (plugins[0].version).claude-plugin/marketplace.json (plugins[0].source.sha) updated to the current HEAD commit — this field is not managed by Renovate and must be set manuallyThe release workflow provides marketplace publication instructions in the GitHub Release notes.
Current Process (Manual):
claude plugin publish .Future (Automated):
After marketplace publication:
claude plugin marketplace update && claude plugin install platform-skillsclaude plugin marketplace add $(pwd) && claude plugin install platform-skillsThis repository uses Renovate for automated dependency updates.
Renovate automatically:
vulnerabilityAlerts config block, separate from normal update rules)When Renovate creates a pull request:
See renovate.json for the complete configuration. Key policies:
If you need to pause Renovate temporarily:
# Add a renovate.json field
{
"enabled": false
}Or use the Renovate dashboard to pause updates for specific dependencies.
By contributing, you agree that your contributions will be licensed under the Apache-2.0 License.
Contributors will be recognized in:
Thank you for helping make platform engineering better for everyone!
.claude-plugin
.github
commands
docs
examples
agent-self-improve
argocd
awesome-docs
aws
cloudfront
functions
lambda-edge
functions
azure
compliance
conventional-commits
datadog
llm-observability
demo
documentation
dora
dynatrace
fluxcd
github-actions
composite-actions
configure-cloud
db-migrate
docker-build-push
k8s-deploy
notify-slack
pr-comment
release-tag
security-scan
setup-env
setup-terraform
terraform-plan
helm
web-service
templates
kubernetes
kyverno
mcp
observability
openshift
pr-review
ownership
runtime-security
supply-chain
terraform
references
scripts
skills
platform-skills
tests