skilldrop-cli 0.16.38 → 0.16.40
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 +43 -20
- package/bin/skilldrop.js +25 -0
- package/package.json +1 -1
- /package/packs/ai-engineering/skills/agent-config-review/evals/files/1/{package.json → package.json.fixture} +0 -0
- /package/packs/ai-engineering/skills/agent-config-review/evals/files/4/quillstack/{package.json → package.json.fixture} +0 -0
- /package/packs/ai-engineering/skills/agent-config-review/evals/files/5/.github/workflows/{codex-triage.yml → codex-triage.yml.fixture} +0 -0
- /package/packs/ai-engineering/skills/agent-incident-response/evals/files/7/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/ai-engineering/skills/agent-incident-response/evals/files/7/{package.json → package.json.fixture} +0 -0
- /package/packs/dev-team/skills/agents-md-generator/evals/files/1/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/dev-team/skills/agents-md-generator/evals/files/1/{pyproject.toml → pyproject.toml.fixture} +0 -0
- /package/packs/dev-team/skills/agents-md-generator/evals/files/2/{package.json → package.json.fixture} +0 -0
- /package/packs/dev-team/skills/agents-md-generator/evals/files/5/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/dev-team/skills/agents-md-generator/evals/files/5/{pyproject.toml → pyproject.toml.fixture} +0 -0
- /package/packs/dev-team/skills/codebase-tour/evals/files/1/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/dev-team/skills/codebase-tour/evals/files/1/{package-lock.json → package-lock.json.fixture} +0 -0
- /package/packs/dev-team/skills/codebase-tour/evals/files/1/{package.json → package.json.fixture} +0 -0
- /package/packs/dev-team/skills/codebase-tour/evals/files/2/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/dev-team/skills/codebase-tour/evals/files/2/{pyproject.toml → pyproject.toml.fixture} +0 -0
- /package/packs/dev-team/skills/codebase-tour/evals/files/3/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/dev-team/skills/codebase-tour/evals/files/3/{go.mod → go.mod.fixture} +0 -0
- /package/packs/dev-team/skills/codebase-tour/evals/files/4/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/dev-team/skills/codebase-tour/evals/files/4/{pyproject.toml → pyproject.toml.fixture} +0 -0
- /package/packs/dev-team/skills/codebase-tour/evals/files/5/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/dev-team/skills/codebase-tour/evals/files/5/{package.json → package.json.fixture} +0 -0
- /package/packs/dev-team/skills/codebase-tour/evals/files/5/packages/api/{package.json → package.json.fixture} +0 -0
- /package/packs/dev-team/skills/codebase-tour/evals/files/5/packages/web/{package.json → package.json.fixture} +0 -0
- /package/packs/dev-team/skills/dependency-upgrade-review/evals/files/1/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/dev-team/skills/dependency-upgrade-review/evals/files/2/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/dev-team/skills/dependency-upgrade-review/evals/files/2/.github/workflows/{release.yml → release.yml.fixture} +0 -0
- /package/packs/dev-team/skills/dependency-upgrade-review/evals/files/4/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/dev-team/skills/dependency-upgrade-review/evals/files/5/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/dev-team/skills/dependency-upgrade-review/evals/files/5/.github/workflows/{release.yml → release.yml.fixture} +0 -0
- /package/packs/dev-team/skills/dependency-upgrade-review/evals/files/5/{package.json → package.json.fixture} +0 -0
- /package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/.github/workflows/{integration.yml → integration.yml.fixture} +0 -0
- /package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/{go.mod → go.mod.fixture} +0 -0
- /package/packs/dev-team/skills/dependency-upgrade-review/evals/files/7/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/dev-team/skills/dependency-upgrade-review/evals/files/7/{package.json → package.json.fixture} +0 -0
- /package/packs/dev-team/skills/sonar-onboard/evals/files/2/.github/workflows/{ci.yml → ci.yml.fixture} +0 -0
- /package/packs/dev-team/skills/sonar-onboard/evals/files/2/{pyproject.toml → pyproject.toml.fixture} +0 -0
- /package/packs/dev-team/skills/sonar-onboard/evals/files/2/web/{package.json → package.json.fixture} +0 -0
- /package/packs/frontend/skills/bundle-size-review/evals/files/1/{package.json → package.json.fixture} +0 -0
- /package/packs/frontend/skills/bundle-size-review/evals/files/3/{package.json → package.json.fixture} +0 -0
- /package/packs/frontend/skills/bundle-size-review/evals/files/5/{package-lock.json → package-lock.json.fixture} +0 -0
- /package/packs/frontend/skills/bundle-size-review/evals/files/5/{package.json → package.json.fixture} +0 -0
- /package/packs/frontend/skills/bundle-size-review/evals/files/6/{package.json → package.json.fixture} +0 -0
- /package/packs/frontend/skills/bundle-size-review/evals/files/7/apps/backoffice/{package.json → package.json.fixture} +0 -0
- /package/packs/frontend/skills/bundle-size-review/evals/files/7/apps/storefront/{package.json → package.json.fixture} +0 -0
- /package/packs/frontend/skills/bundle-size-review/evals/files/7/{package.json → package.json.fixture} +0 -0
- /package/packs/frontend/skills/bundle-size-review/evals/files/7/packages/ui/{package.json → package.json.fixture} +0 -0
- /package/packs/solution-architect/skills/reverse-architecture/evals/files/2/{worker-requirements.txt → worker-requirements.txt.fixture} +0 -0
package/README.md
CHANGED
|
@@ -1,19 +1,56 @@
|
|
|
1
1
|
# skilldrop
|
|
2
2
|
|
|
3
3
|
[](https://www.npmjs.com/package/skilldrop-cli)
|
|
4
|
+
[](https://github.com/sananthanarayan/skilldrop/actions/workflows/cli.yml)
|
|
5
|
+
[](https://scorecard.dev/viewer/?uri=github.com/sananthanarayan/skilldrop)
|
|
4
6
|
[](LICENSE)
|
|
5
7
|
|
|
6
|
-
**
|
|
8
|
+
**Agent skills that are measured against the agent without them, and retired when they lose.** Skills for the work people ship: ADRs, PRDs, runbooks, threat models, decks, SQL reviews, DPIAs and Terraform plan reviews. Each one is a folder you copy into Claude Code, Cursor, Kiro, Codex, Antigravity or Copilot.
|
|
9
|
+
|
|
10
|
+
```bash
|
|
11
|
+
npx skilldrop-cli install --pack dev-team # or product-manager, solution-architect, sre-oncall …
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
## The same request, with and without a skill
|
|
15
|
+
|
|
16
|
+
From a held-out eval, written blind from the skill's description:
|
|
17
|
+
|
|
18
|
+
> *"We're taking ClaimLens to the investment committee on Thursday… Can you build a lean canvas for it and set out our riskiest assumptions and how we'd test them?"*
|
|
19
|
+
|
|
20
|
+
| Plain Claude Code | With [`lean-canvas`](https://sananthanarayan.github.io/skilldrop/skills/lean-canvas/) |
|
|
21
|
+
|---|---|
|
|
22
|
+
| Finds the corrected break-even (~225 seats), then recommends *"scope the ask to Claims-only Phase 1"*. | *"Corrected, break-even is 225 seats — more than all three departments combined (215), so full rollout still doesn't cover running costs at £40/seat."* |
|
|
23
|
+
|
|
24
|
+
The blind judge picked the skill's answer: *"A misses this and recommends a Claims-only phase that cannot break even."*
|
|
25
|
+
|
|
26
|
+
## The receipts
|
|
27
|
+
|
|
28
|
+
Every skill runs as a real agent session twice: once with the skill, once without. The results are [published either way](https://sananthanarayan.github.io/skilldrop/evals/). In the last full run (5 October 2026: 100 skills, 209 evals, `claude-sonnet-5`):
|
|
29
|
+
|
|
30
|
+
- **With a skill, answers met 75% of their checks; without one, 44%.** The checks were written by each skill's author, so the fairer number is the next one.
|
|
31
|
+
- **Two blind judges preferred the skill's answer in 61% of pairs** (95% interval 55–68%). Each judge saw only the request and both answers, in shuffled order.
|
|
32
|
+
- **4 skills that didn't beat the plain agent were [retired](https://sananthanarayan.github.io/skilldrop/evals/#retired)**, and they're listed. Each new skill has to win on held-out evals before it ships.
|
|
33
|
+
|
|
34
|
+
[Get started](https://sananthanarayan.github.io/skilldrop/start/) · [Browse the packs](https://sananthanarayan.github.io/skilldrop/packs/) · [Search all skills](https://sananthanarayan.github.io/skilldrop/catalogue/) · [Docs](https://sananthanarayan.github.io/skilldrop/docs/) · [Contribute](CONTRIBUTING.md)
|
|
35
|
+
|
|
36
|
+
## Start in one command
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
npx skilldrop-cli install --pack dev-team
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
The install prints a starter prompt for the pack. For `dev-team`, ask your agent:
|
|
7
43
|
|
|
8
44
|
```text
|
|
9
|
-
|
|
45
|
+
Is this branch safe to merge? Run a pre-merge review on the current diff.
|
|
10
46
|
```
|
|
11
47
|
|
|
12
|
-
|
|
48
|
+
A good result runs your lint, typecheck and tests through a gate script, then a reviewer panel, and ends with `READY` or `NOT READY`. To see any pack's starter, run `npx skilldrop-cli info --pack <name>`.
|
|
13
49
|
|
|
14
|
-
|
|
50
|
+
In Claude Code you can use the plugin marketplace instead: run `/plugin marketplace add sananthanarayan/skilldrop`, then `/plugin install dev-team@skilldrop`. [Every install route](guides/how-to/install.md) covers single skills, other IDEs, loops, reviewer subagents, profiles and updates.
|
|
15
51
|
|
|
16
|
-
|
|
52
|
+
<details>
|
|
53
|
+
<summary><b>Choose your role:</b> 19 packs, from product management and architecture to SRE, GRC and job applications</summary>
|
|
17
54
|
|
|
18
55
|
Install one pack. Every role pack also brings `core` (intake, critique, review council, output hygiene). Each pack page has a starter prompt to paste and says what a good result looks like.
|
|
19
56
|
|
|
@@ -37,21 +74,7 @@ Install one pack. Every role pack also brings `core` (intake, critique, review c
|
|
|
37
74
|
- **Applying for a job:** `career` — an honest fit check against the posting, a tailored resume and cover letter that claim nothing you didn't, and the application form's answers. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/career/)
|
|
38
75
|
- **Everyone:** `core` on its own. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/core/)
|
|
39
76
|
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
npx skilldrop-cli install --pack dev-team
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
The install prints a starter prompt for the pack. For `dev-team`, ask your agent:
|
|
47
|
-
|
|
48
|
-
```text
|
|
49
|
-
Is this branch safe to merge? Run a pre-merge review on the current diff.
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
A good result runs your lint, typecheck and tests through a gate script, then a reviewer panel, and ends with `READY` or `NOT READY`. To see any pack's starter, run `npx skilldrop-cli info --pack <name>`.
|
|
53
|
-
|
|
54
|
-
In Claude Code you can use the plugin marketplace instead: run `/plugin marketplace add sananthanarayan/skilldrop`, then `/plugin install dev-team@skilldrop`. [Every install route](guides/how-to/install.md) covers single skills, other IDEs, loops, reviewer subagents, profiles and updates.
|
|
77
|
+
</details>
|
|
55
78
|
|
|
56
79
|
## How it works
|
|
57
80
|
|
package/bin/skilldrop.js
CHANGED
|
@@ -119,6 +119,7 @@ Organisation policy (RFC-0050):
|
|
|
119
119
|
|
|
120
120
|
Options:
|
|
121
121
|
--dry-run install | update | uninstall | new-skill: print what would change, change nothing
|
|
122
|
+
SKILLDROP_NO_STAR=1 don't print the one-time line asking for a GitHub star after the first install
|
|
122
123
|
--yes skip the confirmation uninstall and update --force ask for at a terminal
|
|
123
124
|
(scripts and CI are never asked)
|
|
124
125
|
--agent operate on subagents instead of skills. Targets:
|
|
@@ -1415,7 +1416,31 @@ function installProfile(args) {
|
|
|
1415
1416
|
console.log(`\nProfile '${name}' installed.`);
|
|
1416
1417
|
}
|
|
1417
1418
|
|
|
1419
|
+
/* One line, once per machine, after the first install that succeeds: a star is how other people
|
|
1420
|
+
find the catalogue. Only at an interactive terminal — never in CI, a pipe or --json output —
|
|
1421
|
+
and SKILLDROP_NO_STAR=1 turns it off. The only thing written is the marker that stops it
|
|
1422
|
+
showing again; nothing is sent anywhere. If the marker can't be written, nothing is shown,
|
|
1423
|
+
so it can never repeat. */
|
|
1424
|
+
function starNote(flags) {
|
|
1425
|
+
if (!process.stdout.isTTY || process.env.CI || process.env.SKILLDROP_NO_STAR || flags.json) return;
|
|
1426
|
+
const marker = path.join(os.homedir(), ".config", "skilldrop", "star-shown");
|
|
1427
|
+
try {
|
|
1428
|
+
fs.mkdirSync(path.dirname(marker), { recursive: true });
|
|
1429
|
+
// "wx" creates the marker only if it doesn't exist, in one step: an existing marker (the
|
|
1430
|
+
// line was shown before) or an unwritable folder both throw, and nothing is shown.
|
|
1431
|
+
fs.writeFileSync(marker, new Date().toISOString().slice(0, 10) + "\n", { flag: "wx" });
|
|
1432
|
+
} catch (e) { return; }
|
|
1433
|
+
console.log("\nIf skilldrop saves you time, a star helps other people find it: https://github.com/sananthanarayan/skilldrop" +
|
|
1434
|
+
"\n (shown once; SKILLDROP_NO_STAR=1 turns it off)");
|
|
1435
|
+
}
|
|
1436
|
+
|
|
1418
1437
|
function install(args) {
|
|
1438
|
+
const done = installUnits(args);
|
|
1439
|
+
if (!args.flags["dry-run"]) starNote(args.flags);
|
|
1440
|
+
return done;
|
|
1441
|
+
}
|
|
1442
|
+
|
|
1443
|
+
function installUnits(args) {
|
|
1419
1444
|
if (args.flags["dry-run"] && (args.flags.panel || args.flags.profile || args.flags.loop || args.flags.agent))
|
|
1420
1445
|
die("--dry-run covers skill installs, update and uninstall. To preview a panel, profile, loop or agent,\n" +
|
|
1421
1446
|
" read what it contains first: skilldrop profiles | loops | agents --json");
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skilldrop-cli",
|
|
3
|
-
"version": "0.16.
|
|
3
|
+
"version": "0.16.40",
|
|
4
4
|
"description": "Portable AI-agent skills, measured against the agent without them. ADRs, PRDs, runbooks, decks and reviews, installable into Claude Code, Cursor, Kiro, and any IDE that takes custom instructions. One command per skill or per role-based pack.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Sanjay Ananthanarayan",
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/packs/dev-team/skills/codebase-tour/evals/files/1/{package.json → package.json.fixture}
RENAMED
|
File without changes
|
|
File without changes
|
/package/packs/dev-team/skills/codebase-tour/evals/files/2/{pyproject.toml → pyproject.toml.fixture}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/packs/dev-team/skills/codebase-tour/evals/files/4/{pyproject.toml → pyproject.toml.fixture}
RENAMED
|
File without changes
|
|
File without changes
|
/package/packs/dev-team/skills/codebase-tour/evals/files/5/{package.json → package.json.fixture}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/packs/dev-team/skills/dependency-upgrade-review/evals/files/6/{go.mod → go.mod.fixture}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/packs/dev-team/skills/sonar-onboard/evals/files/2/{pyproject.toml → pyproject.toml.fixture}
RENAMED
|
File without changes
|
/package/packs/dev-team/skills/sonar-onboard/evals/files/2/web/{package.json → package.json.fixture}
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|