一键导入
一键导入
| name | skills:validate |
| description | Validate skill files meet the standard format and naming conventions |
name: and description: fieldsname: uses colon notation (e.g., tdd:ci not tdd-ci)name: field# Skill Name as first heading&& chaining).claude/settings.jsonfor loops in commandsSKILL.md references this skillSkills operate on either sandbox (safe) or management (requires approval) targets:
| Type | Target | Auto-approve? | Command format |
|---|---|---|---|
| Sandbox | Local Kind cluster, custom HyperShift hosted cluster | YES | Single commands, one per step |
| Management | Management cluster, AWS resources, git push, destructive ops | NO | Can chain commands (user approves anyway) |
Commands target local Kind clusters or test environments.
IMPORTANT: Run each command separately — not chained with &&. Chained or multiline commands break Claude Code's auto-approve pattern matching.
## GOOD (each command runs separately, matches auto-approve patterns)
Check pod status:
```bash
kubectl get pods -n kagenti-system
Check logs:
kubectl logs -n kagenti-system deployment/kagenti-operator-controller-manager
kubectl get pods -n kagenti-system && kubectl logs -n kagenti-system deployment/kagenti-operator-controller-manager
### Management skills (require approval)
Commands target management clusters, AWS APIs, or perform destructive operations. These can use any command format since the user must approve each one.
## How to Validate
### Single Skill
```bash
# Check frontmatter
head -5 .claude/skills/<skill>/SKILL.md
# Check name matches directory
DIR_NAME=$(basename $(dirname .claude/skills/<skill>/SKILL.md))
SKILL_NAME=$(grep '^name:' .claude/skills/<skill>/SKILL.md | sed 's/name: //')
[ "$DIR_NAME" = "$SKILL_NAME" ] && echo "OK" || echo "MISMATCH: dir=$DIR_NAME name=$SKILL_NAME"
# Check all frontmatter name-vs-directory
for f in .claude/skills/*/SKILL.md; do
dir=$(basename $(dirname "$f"))
name=$(grep '^name:' "$f" | sed 's/name: //' | tr -d ' ')
[ "$dir" = "$name" ] || echo "MISMATCH: $dir != $name"
done
# Find chained commands in sandbox skills (potential auto-approve issues)
grep -rn ' && ' .claude/skills/*/SKILL.md
for f in .claude/skills/*/SKILL.md; do
dir=$(basename $(dirname "$f"))
case "$dir" in git|k8s|skills) continue ;; esac
if ! grep -q '```mermaid' "$f"; then
echo "MISSING DIAGRAM: $dir"
fi
done
For each command in a sandbox skill, verify it matches a pattern in .claude/settings.json:
| Command prefix | settings.json pattern |
|---|---|
kubectl get | Bash(kubectl get:*) |
kubectl describe | Bash(kubectl describe:*) |
kubectl logs | Bash(kubectl logs:*) |
helm list | Bash(helm list:*) |
go test | Bash(go test:*) |
make test | Bash(make test:*) |
If a command is NOT covered, add the pattern to .claude/settings.json in the allow array.
When validating multiple skills:
TaskCreate: "main | skills | <category> | Verify | Validate <skill-name>"
skills:write - Create new skills following the standardAdd comprehensive CI workflows to a target repo - lint, test, build, security scanning, dependabot, scorecard, action pinning
Bootstrap orchestrate skills into a target repo - making it self-sufficient for orchestrating its own related repos
Add security governance to a target repo - CODEOWNERS, SECURITY.md, CONTRIBUTING.md, LICENSE, .gitignore audit
Scan a repository to bootstrap new skills or audit and update existing ones
Skill management - create, validate, and improve Claude Code skills
Create or edit skills with proper structure, task tracking, and naming conventions