platform-skills
CLAUDE.md71 starsChanged 8 days agoApache-2.0View on GitHub
This document explains the philosophy, structure, and development principles for the Platform Skills Claude Agent Skill. Platform Skills embodies a production-first mindset: Information architecture follows progressive disclosure: Users get quick answers from SKILL.md, detailed guidance from references, and working code from examples. Platform engineering spans multiple tools. This skill maintains coherence by: Bad: Use flux reconcile kustomization to sync changes. Good: Problem: Changes merged to Git but cluster not updating Diagnosis: Check reconciliation status with flux get kustomizations Fix: Force…
We split this CLAUDE.md into the rules it gives an agent
21 rules. About 0 are common, 18 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈18
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- could be automatic: a setting could enforce it
- Distinctive: line 11
Root-cause analysis over symptoms: - Don't just fix the error.
- Distinctive: line 12
Blast radius awareness: - Every change has consequences.
- Distinctive: line 13
Rollback plans are mandatory: - If you can't undo it safely, don't do it
- Distinctive: line 32
Preventing overlap: - Don't recreate in GitOps what Terraform manages
- Distinctive: line 76
Every risky operation needs:
- Distinctive: line 109
When configuration isn't self-evident, add comments:
- Distinctive: line 130
Every troubleshooting section should classify issues by:
- Distinctive: line 141
When presenting choices, use decision matrices:
- Distinctive: line 151
All code examples must:
- Distinctive: line 153
Use realistic names and values
- Distinctive: line 161
Default to least privilege
- Distinctive: line 165
Document audit and monitoring approaches
- Distinctive: line 178
Test in real environment: - Verify commands work
- Distinctive: line 184
Gather evidence: - Test updated approach
- Distinctive: line 209
Remove in next major version
- Distinctive: line 210
Update CHANGELOG with migration path
- Distinctive: line 232
Security concerns: Use GitHub Security Advisories
- Very specific: line 240
Run bash tests/handbook-consistency.sh locally before every push to catch version/status/path check failures.
- Very specific: line 241
Use repos/{owner}/{repo}/pulls/{pr}/comments/{id}/replies for PR thread replies — omitting the PR number returns 404.
- Very specific: line 242
Never create .learnings/ or memory/ inside this repo.
- Distinctive: line 244
Never write SDK method names, parameter names, or env vars for external tools (Datadog, LLMObs, etc.) without fetching actual SDK source or …
≈ “Common” is an estimate: at least 1 in 5 of the 25,680 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Platform Skills - Skill Development Guide
This document explains the philosophy, structure, and development principles for the Platform Skills Claude Agent Skill.
Philosophy
Production-First Engineering
Platform Skills embodies a production-first mindset:
- Root-cause analysis over symptoms - Don't just fix the error; understand why it happened
- Blast radius awareness - Every change has consequences; document them
- Rollback plans are mandatory - If you can't undo it safely, don't do it
- Security by default - Least privilege, defense in depth, assume breach
Progressive Disclosure
Information architecture follows progressive disclosure:
- SKILL.md - Essential patterns and problem classification
- references/ - Deep dives into specific domains
- examples/ - Concrete, copy-paste-able implementations
Users get quick answers from SKILL.md, detailed guidance from references, and working code from examples.
Multi-Domain Coherence
Platform engineering spans multiple tools. This skill maintains coherence by:
- Defining ownership boundaries - Which tool owns which concern
- Establishing contracts - How tools interact (Terraform → GitOps reconciler → Apps)
- Preventing overlap - Don't recreate in GitOps what Terraform manages
- Standardizing patterns - Same approach across AWS and Azure where applicable
Writing Principles
1. Start with the Problem
Bad:
Use
flux reconcile kustomizationto sync changes.
Good:
Problem: Changes merged to Git but cluster not updating
Diagnosis: Check reconciliation status with
flux get kustomizationsFix: Force immediate sync with
flux reconcile kustomization <name>Prevention: Reduce
.spec.intervalfor faster automatic syncs
2. Make Security Explicit
Bad:
Action: "s3:*"
Resource: "*"Good:
# ❌ Overly permissive
Action: "s3:*"
Resource: "*"
# ✅ Least privilege
Action:
- "s3:GetObject"
- "s3:ListBucket"
Resource:
- "arn:aws:s3:::my-bucket"
- "arn:aws:s3:::my-bucket/*"3. Document Blast Radius
Every risky operation needs:
- What it affects - Scope of changes
- What can break - Known failure modes
- How to verify - Post-change validation
- How to rollback - Safe undo path
Example:
Blast radius: Deletes all Kustomizations in namespace, triggering removal of managed resources
Verification:
kubectl get all -n <namespace>should show expected resources goneRollback: Flux will recreate from Git on next sync (default 10m) or force with
flux reconcile
4. Use Concrete Examples
Avoid abstract placeholders:
Bad:
name: foo
namespace: bar
value: bazGood:
name: nginx-ingress
namespace: ingress-system
value: production5. Explain Non-Obvious Choices
When configuration isn't self-evident, add comments:
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: apps
spec:
interval: 10m
path: ./apps
prune: true
wait: true # Block until resources are ready
timeout: 5m # Fail fast if stuck
dependsOn: # Requires infrastructure first
- name: infrastructureContent Guidelines
Problem Classification
Every troubleshooting section should classify issues by:
- Layer - Source, Artifact, Reconciliation, Runtime
- Symptoms - Observable errors or behaviors
- Evidence collection - Commands to run
- Common causes - Typical root causes
- Fix patterns - Concrete solutions
- Prevention - How to avoid in future
Decision Frameworks
When presenting choices, use decision matrices:
| Scenario | Recommended | Reason |
| Environment differences | Kustomize | Simple overlays |
| Third-party apps | Helm | Version controlled |
| Complex parameterization | Helm | Type checking |
Code Examples
All code examples must:
- Be syntactically valid
- Use realistic names and values
- Include necessary context (API versions, required fields)
- Show validation commands
- Note prerequisites or dependencies
Security Patterns
Security guidance must:
- Default to least privilege
- Explain why more access is needed (if applicable)
- Show before/after for hardening changes
- Note compliance implications (GDPR, PCI, SOC2)
- Document audit and monitoring approaches
Development Workflow
Adding New Patterns
- Validate in production - Patterns must be battle-tested
- Create issue describing the gap
- Draft in appropriate file:
- Quick reference →
SKILL.md - Detailed guide →
references/*.md - Working example →
examples/*/
- Quick reference →
- Follow structure - Problem, Evidence, Fix, Prevention, Rollback
- Test in real environment - Verify commands work
- Submit pull request with context
Updating Existing Patterns
- Identify what's wrong - Outdated tool version? Missing edge case?
- Gather evidence - Test updated approach
- Update relevant files - May span SKILL.md, references, examples
- Update CHANGELOG.md - Note what changed and why
- Submit pull request with before/after comparison
Review Checklist
Before submitting:
- Technically accurate?
- Security conscious?
- Includes rollback plan?
- Uses concrete examples?
- Follows existing structure?
- Links to related patterns?
- Updated CHANGELOG?
- Tested in real environment?
Skill Maintenance
Deprecation Policy
When removing patterns:
- Mark as deprecated in current version
- Explain why and suggest alternative
- Remove in next major version
- Update CHANGELOG with migration path
Testing Strategy
Skill changes are tested by:
- Manual validation - Try examples in real clusters
- Peer review - Platform engineers review for accuracy
- User feedback - Issues and discussions inform improvements
- Tool version tracking - Note when tool updates require changes
Contributing
See CONTRIBUTING.md for:
- How to propose changes
- Code of conduct
- Review process
- Release workflow
Questions?
- Skill design questions: Open a discussion on GitHub
- Content issues: Open an issue on GitHub
- Security concerns: Use GitHub Security Advisories
Agent Rules
Rules promoted from .learnings/ — apply to every session in this project.
- Log errors and learnings at the point of discovery — never defer to end of session.
- Dispatch all independent tool calls in a single message block — sequential calls only when output feeds the next.
- Run
bash tests/handbook-consistency.shlocally before every push to catch version/status/path check failures. - Use
repos/{owner}/{repo}/pulls/{pr}/comments/{id}/repliesfor PR thread replies — omitting the PR number returns 404. - Never create
.learnings/ormemory/inside this repo. At the end of every session, append notable exchanges, decisions, and outcomes to~/.claude/projects/<slug>/memory/YYYY-MM-DD.md(today's date, created if missing). One file per day, append-only. - Before every release commit, verify: (1)
SKILL.mdmatchesskills/platform-skills/SKILL.md, (2)INSTALLATION.mdversion matches plugin version, (3) all example READMEs haveStatus:label, (4) every plugin'ssource.shainmarketplace.jsonis the content merge commit (bash tests/marketplace-pins.sh --release <commit>checks all entries), (5)plugins/platform-skills/was rebuilt after the version bump (bash scripts/build-plugin.sh;bash tests/plugin-folder.sh --strictpasses). Never hand-edit that folder, and never rebuild it outside a release PR: the directory followsmain. - Never write SDK method names, parameter names, or env vars for external tools (Datadog, LLMObs, etc.) without fetching actual SDK source or docs first.
- Lambda@Edge child module: declaring
configuration_aliases = [aws.us_east_1]requires a matchingprovider "aws" { alias = "us_east_1" }block inside the module orterraform validatefails (ERR-20260522-003) - In Lambda@Edge viewer-request,
request.headers['set-cookie']targets the origin, not the browser — use a forwarded header (x-ab-bucket) and setSet-Cookiein a viewer-response function (ERR-20260522-004) - In GHA
run:scripts, never use${{ expr || expr }}to pick between two context SHA values — assign each to a namedenv:var and resolve in shell; addfetch-depth: 2soHEAD~1is available as fallback (ERR-20260621-002) - In
skills/secrets/SKILL.mdsealed mode, Q2 asks for the controller Service name (used bykubeseal --controller-name), not the Deployment name — the two may differ; always usekubectl get svcfor discovery (ERR-20260621-001)
In this repository59 other files it gives its agents.
- .github/copilot-instructions.mdCopilot instructions
- .cursor/rules/keda.mdcCursor rule
- .cursor/rules/kubernetes.mdcCursor rule
- .cursor/rules/platform-skills.mdcCursor rule
- .cursor/rules/terraform.mdcCursor rule
- code-reviewSkill
- platform-skillsSkill
- ai-governanceSkill
- awesome-docsSkill
- aws-profileSkill
- awsSkill
- azureSkill
- backup-drSkill
- chaosSkill
- checkovSkill
- cluster-upgradeSkill
- commitSkill
- complianceSkill
- composite-actionsSkill
- datadogSkill
- debugSkill
- documentSkill
- doraSkill
- dynatraceSkill
- finopsSkill
- fluxcdSkill
- gateway-apiSkill
- github-actionsSkill
- gitopsSkill
- helmchartSkill
- karpenterSkill
- kedaSkill
- kingfisherSkill
- kubernetesSkill
- kubescape-operatorSkill
- kubescapeSkill
- kyvernoSkill
- linkerdSkill
- linuxSkill
- mcpSkill
- observabilitySkill
- opaSkill
- openshiftSkill
- platform-skillsSkill
- preflightSkill
- productSkill
- progressive-deliverySkill
- pr-reviewSkill
- renovateSkill
- runtime-securitySkill
- secretsSkill
- self-improveSkill
- setup-agentsSkill
- supply-chainSkill
- terraformSkill
- token-optimizerSkill
- triageSkill
- trivySkill
- zizmorSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

