skill-land 1.4.0 → 1.5.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/README.md CHANGED
@@ -61,7 +61,7 @@ npx skill-land <source> --for <agent> [options]
61
61
  | `--project` | install into `./` instead of the user-global directory |
62
62
  | `--dry-run` | resolve and report, write nothing |
63
63
  | `--verify` | check an existing install, write nothing |
64
- | `--discover` | also ask a fresh agent session to list its skills (claude-code, codex, antigravity) |
64
+ | `--discover` | also ask a fresh agent session to list its skills (claude-code, codex, gemini-cli, antigravity) |
65
65
  | `--skip-security` | skip the SkillSpector scan (acknowledged, not silent) |
66
66
  | `--strict` | refuse to install anything SkillSpector flags |
67
67
  | `--list` | show known agents and their directories |
@@ -148,10 +148,11 @@ skill-land Magithar/SKILLmama --for codex,antigravity --discover
148
148
  | Agent | Listing used | Kind |
149
149
  |---|---|---|
150
150
  | Antigravity | `agy -p /skills` | a real skill list |
151
+ | Gemini CLI | `gemini skills list` | a real skill list, with enabled/disabled state |
151
152
  | Codex | `codex exec "list your skills"` | asks the model |
152
153
  | Claude Code | `claude -p "list your skills"` | asks the model |
153
154
 
154
- Each was tested by planting a uniquely named canary skill and confirming it appeared. Every other
155
+ Each was tested by planting a uniquely named canary skill and confirming it appeared, then with real skills from git. A skill that is listed but switched off (Gemini CLI prints `[Disabled]`) fails: on disk and listed is not the same as loaded. Every other
155
156
  agent reports `NOT CHECKED`, never a pass: an unknown is not a success. A missing binary or a
156
157
  timeout is also `NOT CHECKED`; only a completed listing that lacks the skill fails the run.
157
158
 
package/agents.json CHANGED
@@ -77,7 +77,15 @@
77
77
  "project": ".agents/skills",
78
78
  "file": "SKILL.md",
79
79
  "restart": false,
80
- "broken": true
80
+ "broken": true,
81
+ "discover": {
82
+ "cmd": [
83
+ "gemini",
84
+ "skills",
85
+ "list"
86
+ ],
87
+ "deterministic": true
88
+ }
81
89
  },
82
90
  "cursor": {
83
91
  "display": "Cursor",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "skill-land",
3
- "version": "1.4.0",
3
+ "version": "1.5.0",
4
4
  "description": "Install an agent skill to the directory the agent actually reads, then verify it landed. Exits non-zero if it didn't.",
5
5
  "keywords": [
6
6
  "agent-skills",
package/skill-land.mjs CHANGED
@@ -554,8 +554,11 @@ function discover(agent, names) {
554
554
  let missing = 0;
555
555
  for (const n of names) {
556
556
  const found = hasName(out, n);
557
- if (!found) missing++;
558
- console.log(` ${found ? "OK " : "FAIL"} ${n} ${found ? "listed" : "not in the skill list of a fresh session"}`);
557
+ // Listed but switched off is not loaded. Gemini CLI prints `name [Disabled]`.
558
+ const disabled = found && new RegExp(`(^|\\s)${n.replace(/[.*+?^${}()|[\]\\]/g, "\\$&")} \\[Disabled\\]`, "m").test(out);
559
+ const ok = found && !disabled;
560
+ if (!ok) missing++;
561
+ console.log(` ${ok ? "OK " : "FAIL"} ${n} ${disabled ? "listed but disabled" : found ? "listed" : "not in the skill list of a fresh session"}`);
559
562
  }
560
563
  if (!a.discover.deterministic)
561
564
  console.log(` note ${a.display} has no plain skill listing; this asks the model, so treat a FAIL as a lead, not proof`);
@@ -582,7 +585,7 @@ if (!argv.length || argv.includes("-h") || argv.includes("--help")) {
582
585
  --dry-run resolve and report, write nothing
583
586
  --verify check an existing install, write nothing
584
587
  --discover also ask a fresh agent session to list its skills
585
- (claude-code, codex, antigravity; others: not checked)
588
+ (claude-code, codex, gemini-cli, antigravity; others: not checked)
586
589
  --skip-security skip the SkillSpector scan (acknowledged, not silent)
587
590
  --strict refuse to install anything SkillSpector flags
588
591
  --list show known agents and their directories