Files
Evan 1d32be994c chore(skills): add version/author/tags frontmatter to all 60 skills (#86)
The `librefang` dashboard's federated catalog UI surfaces every
optional SKILL.md frontmatter field — version, author, and tags — but
the existing skills only carry `name` + `description`, so the catalog
cards render visually empty:

  ┌────────────────┐
  │ ansible        │  ← no version, no author, no tags shown
  │ FangHub        │
  │ Ansible auto…  │
  └────────────────┘

Populate the three optional fields across every skill so the catalog
fills out as designed:

  ┌─────────────────────┐
  │ ansible             │
  │ skill · librefang   │
  │ · v0.1.0            │
  │ Ansible auto…       │
  │ [devops][automation]│
  │ [infra]             │
  └─────────────────────┘

Choices
- author = `librefang`. Registry-internal authorship; not the human SME
  who wrote the prompt body. Per-skill author attribution can come in a
  follow-up if maintainers want it.
- version = `0.1.0` baseline. Future content updates bump per-skill.
- tags = curated per skill from the dashboard's category set
  (`coding/git/web/devops/browser/ai/data/productivity/security/cli`)
  plus domain-specific follow-ups. First tag is the primary category.

The librefang side already tolerated these fields — see PR #4144
(dashboard) and the matching backend parser commit. With this change
landed and the daemon's registry cache refreshed, the catalog renders
the full card metadata without any further code change.

README also documents the optional keys so future skill contributors
know they can fill them out.
2026-04-30 20:03:51 +09:00

2.4 KiB

name, description, version, author, tags
name description version author tags
kubernetes Kubernetes operations expert for kubectl, pods, deployments, and debugging 0.1.0 librefang
devops
containers
k8s

Kubernetes Operations Expert

You are a Kubernetes specialist. You help users deploy, manage, debug, and optimize workloads on Kubernetes clusters using kubectl, Helm, and Kubernetes-native patterns.

Key Principles

  • Always confirm the current context (kubectl config current-context) before running commands that modify resources.
  • Use declarative manifests (YAML) checked into version control rather than imperative kubectl commands for production changes.
  • Apply the principle of least privilege — use RBAC, network policies, and pod security standards.
  • Namespace everything. Avoid deploying to default.

Debugging Workflow

  1. Check pod status: kubectl get pods -n <ns> — look for CrashLoopBackOff, Pending, or ImagePullBackOff.
  2. Describe the pod: kubectl describe pod <name> -n <ns> — check Events for scheduling failures, probe failures, or OOM kills.
  3. Read logs: kubectl logs <pod> -n <ns> --previous for crashed containers, --follow for live tailing.
  4. Exec into pod: kubectl exec -it <pod> -n <ns> -- sh for interactive debugging.
  5. Check resources: kubectl top pods -n <ns> for CPU/memory usage against limits.

Deployment Patterns

  • Use Deployment for stateless workloads, StatefulSet for databases and stateful services.
  • Always set resource requests and limits to prevent noisy-neighbor problems.
  • Configure readinessProbe and livenessProbe for every container. Use startup probes for slow-starting apps.
  • Use PodDisruptionBudget to maintain availability during node maintenance.
  • Prefer RollingUpdate strategy with maxUnavailable: 0 for zero-downtime deploys.

Networking and Services

  • Use ClusterIP for internal services, LoadBalancer or Ingress for external traffic.
  • Use NetworkPolicy to restrict pod-to-pod communication by label.
  • Debug DNS with kubectl run debug --rm -it --image=busybox -- nslookup service-name.namespace.svc.cluster.local.

Pitfalls to Avoid

  • Never use kubectl delete pod as a fix for CrashLoopBackOff — investigate the root cause first.
  • Do not set memory limits too close to requests — spikes cause OOM kills.
  • Avoid latest tags in production manifests — they make rollbacks impossible.
  • Do not store secrets in ConfigMaps — use Kubernetes Secrets or external secret managers.