k8s-agent-skills 1.4.0 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 Aidas
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md CHANGED
@@ -1,8 +1,14 @@
1
1
  # k8s-agent-skills
2
2
 
3
+ [![npm version](https://img.shields.io/npm/v/k8s-agent-skills?logo=npm)](https://www.npmjs.com/package/k8s-agent-skills)
4
+ [![license](https://img.shields.io/github/license/Aidas-dev/k8s-agent-skills)](LICENSE)
5
+ [![Publish](https://github.com/Aidas-dev/k8s-agent-skills/actions/workflows/publish.yml/badge.svg)](https://github.com/Aidas-dev/k8s-agent-skills/actions/workflows/publish.yml)
6
+ [![GitHub stars](https://img.shields.io/github/stars/Aidas-dev/k8s-agent-skills?style=flat)](https://github.com/Aidas-dev/k8s-agent-skills)
7
+
3
8
  Agent skills for Kubernetes cluster operations tooling. Each skill is a self-contained `SKILL.md` designed for agentic AI tools (Claude Code, OpenCode, Codex) that load skills for task-specific expertise.
4
9
 
5
- **Mirror:** [github.com/Aidas-dev/k8s-agent-skills](https://github.com/Aidas-dev/k8s-agent-skills)
10
+ **npm:** [`k8s-agent-skills`](https://www.npmjs.com/package/k8s-agent-skills)
11
+ **GitHub:** [`Aidas-dev/k8s-agent-skills`](https://github.com/Aidas-dev/k8s-agent-skills)
6
12
 
7
13
  ## Skills
8
14
 
@@ -66,9 +72,14 @@ npm install --save-dev k8s-agent-skills
66
72
  # or
67
73
  bun add -d k8s-agent-skills
68
74
 
69
- # Symlink skills to agent config dir
70
- npx skills-npm
71
- # → symlinks skills/ into ~/.agents/skills/
75
+ # Symlink all skills to ~/.agents/skills/ (OpenCode)
76
+ npx skills-link
77
+
78
+ # Or to other agent directories:
79
+ npx skills-link --claude # Claude Code (~/.claude/skills/)
80
+ npx skills-link --codex # Codex CLI (~/.codex/skills/)
81
+ npx skills-link --cursor # Cursor (~/.cursor/skills/)
82
+ npx skills-link --all # all known agent dirs
72
83
  ```
73
84
 
74
85
  ### Via git clone
@@ -90,13 +101,19 @@ cp -r skills/external-dns ~/.claude/skills/
90
101
 
91
102
  ## npm Publishing
92
103
 
93
- The package auto-publishes to npm on push to `main` via GitHub Actions.
104
+ Auto-publishes on `v*` tag push via GitHub Actions with OIDC Trusted Publisher — no tokens needed.
105
+
106
+ ```bash
107
+ # Bump version
108
+ npm version patch # or minor / major
109
+
110
+ # Tag and push
111
+ git push origin main --tags
112
+ git push github main --tags
113
+ ```
94
114
 
95
- **Setup required** (one-time):
96
- 1. Create an npm automation token at [npmjs.com/settings/tokens](https://www.npmjs.com/settings/tokens)
97
- 2. Add it as `NPM_TOKEN` secret in the GitHub repo settings
98
- 3. Workflow at `.github/workflows/publish.yml` handles version bump and publish
115
+ Or manually: `git tag vX.Y.Z && git push origin main --tags && git push github main --tags`.
99
116
 
100
117
  ## License
101
118
 
102
- MIT — free to use, modify, and distribute.
119
+ [MIT](LICENSE) — free to use, modify, and distribute.
@@ -0,0 +1,112 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+
4
+ # skills-link — Symlink k8s-agent-skills to agent skill directories
5
+ # Usage:
6
+ # skills-link # link to ~/.agents/skills/ (OpenCode)
7
+ # skills-link --claude # link to ~/.claude/skills/ (Claude Code)
8
+ # skills-link --codex # link to ~/.codex/skills/ (Codex CLI)
9
+ # skills-link --cursor # link to ~/.cursor/skills/ (Cursor)
10
+ # skills-link --all # link to all known agent dirs
11
+ #
12
+ # Cleans up broken symlinks (removed skills) before linking.
13
+
14
+ SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
15
+ # Package root is parent of bin/
16
+ PKG_DIR="$(cd "$SCRIPT_DIR/.." && pwd)"
17
+ SKILLS_DIR="$PKG_DIR/skills"
18
+
19
+ if [ ! -d "$SKILLS_DIR" ]; then
20
+ echo "ERROR: skills/ not found at $SKILLS_DIR" >&2
21
+ echo "Run this script from within the k8s-agent-skills package." >&2
22
+ exit 1
23
+ fi
24
+
25
+ declare -a TARGETS
26
+
27
+ # Default target
28
+ TARGETS+=("$HOME/.agents/skills")
29
+
30
+ while [[ $# -gt 0 ]]; do
31
+ case "$1" in
32
+ --claude) TARGETS+=("$HOME/.claude/skills") ;;
33
+ --codex) TARGETS+=("$HOME/.codex/skills") ;;
34
+ --cursor) TARGETS+=("$HOME/.cursor/skills") ;;
35
+ --agents) TARGETS+=("$HOME/.agents/skills") ;;
36
+ --all)
37
+ TARGETS+=("$HOME/.agents/skills")
38
+ TARGETS+=("$HOME/.claude/skills")
39
+ TARGETS+=("$HOME/.codex/skills")
40
+ TARGETS+=("$HOME/.cursor/skills")
41
+ ;;
42
+ --help|-h)
43
+ echo "Usage: skills-link [--claude] [--codex] [--cursor] [--agents] [--all]"
44
+ echo "Default: ~/.agents/skills/ (OpenCode)"
45
+ exit 0
46
+ ;;
47
+ *)
48
+ echo "Unknown option: $1" >&2
49
+ echo "Usage: skills-link [--claude] [--codex] [--cursor] [--agents] [--all]" >&2
50
+ exit 1
51
+ ;;
52
+ esac
53
+ shift
54
+ done
55
+
56
+ # Deduplicate targets
57
+ declare -a UNIQUE
58
+ for t in "${TARGETS[@]}"; do
59
+ seen=false
60
+ for u in "${UNIQUE[@]}"; do
61
+ [ "$u" = "$t" ] && seen=true && break
62
+ done
63
+ $seen || UNIQUE+=("$t")
64
+ done
65
+
66
+ for TARGET in "${UNIQUE[@]}"; do
67
+ mkdir -p "$TARGET"
68
+
69
+ # Cleanup broken symlinks (skills removed from package)
70
+ broken=0
71
+ while IFS= read -r -d '' link; do
72
+ if [ ! -e "$link" ]; then
73
+ rm -f "$link"
74
+ broken=$((broken + 1))
75
+ fi
76
+ done < <(find "$TARGET" -maxdepth 1 -type l -name '*' -print0 2>/dev/null || true)
77
+
78
+ # Symlink each skill
79
+ linked=0
80
+ skipped=0
81
+ migrated=0
82
+ for skill_dir in "$SKILLS_DIR"/*/; do
83
+ [ -d "$skill_dir" ] || continue
84
+ skill_name="$(basename "$skill_dir")"
85
+ link_path="$TARGET/$skill_name"
86
+
87
+ # Check if symlink already points to the right place
88
+ if [ -L "$link_path" ] && [ "$(readlink "$link_path")" = "$skill_dir" ]; then
89
+ skipped=$((skipped + 1))
90
+ continue
91
+ fi
92
+
93
+ # Handle existing entry at link_path
94
+ if [ -e "$link_path" ] || [ -L "$link_path" ]; then
95
+ if [ -L "$link_path" ]; then
96
+ rm -f "$link_path"
97
+ elif [ -d "$link_path" ] && [ -f "$link_path/SKILL.md" ]; then
98
+ # Old-style skill directory (copied, not symlinked) — replace with symlink
99
+ rm -rf "$link_path"
100
+ migrated=$((migrated + 1))
101
+ else
102
+ echo " WARN: $link_path exists and is not a symlink — skipping" >&2
103
+ continue
104
+ fi
105
+ fi
106
+
107
+ ln -sf "$skill_dir" "$link_path"
108
+ linked=$((linked + 1))
109
+ done
110
+
111
+ echo "[$TARGET] linked $linked skill(s), $skipped up-to-date, $migrated migrated, $broken stale symlink(s) removed"
112
+ done
package/package.json CHANGED
@@ -1,11 +1,15 @@
1
1
  {
2
2
  "name": "k8s-agent-skills",
3
- "version": "1.4.0",
3
+ "version": "1.6.0",
4
4
  "private": false,
5
5
  "description": "Agent skills for Kubernetes cluster operations — Cilium, Talos, Flux, Rook-Ceph, CNPG, Gitea, Tekton, Cert-Manager, VictoriaMetrics, ZITADEL, Harbor, Higress, KServe, Kubeflow, MariaDB, Vector, ExternalDNS, Dragonfly, Flagger, Sealed Secrets, Stakater Reloader, NVIDIA GPU, Atlas",
6
6
  "files": [
7
- "skills"
7
+ "skills",
8
+ "bin"
8
9
  ],
10
+ "bin": {
11
+ "skills-link": "./bin/skills-link"
12
+ },
9
13
  "keywords": [
10
14
  "ai-agent-skill",
11
15
  "kubernetes",