skilldrop-cli 0.13.4 → 0.13.6
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 +32 -555
- package/catalogue.json +19 -1
- package/contracts/catalogue.schema.json +1 -0
- package/model-routing.json +8 -0
- package/package.json +1 -1
- package/packs/design/pack.json +22 -0
- package/packs/design/skills/brand-kit/SKILL.md +105 -0
- package/packs/design/skills/brand-kit/evals/eval_queries.json +30 -0
- package/packs/design/skills/brand-kit/evals/evals.json +18 -0
- package/packs/design/skills/brand-kit/examples/northwind-brand.md +48 -0
- package/packs/design/skills/brand-kit/manifest.json +44 -0
- package/packs/design/skills/brand-kit/scripts/check_brand.py +114 -0
- package/packs/design/skills/brand-kit/templates/brand.json +54 -0
- package/packs/{stakeholder-comms → design}/skills/deck-builder/SKILL.md +27 -9
- package/packs/{stakeholder-comms → design}/skills/deck-builder/manifest.json +2 -2
- package/packs/{stakeholder-comms → design}/skills/deck-builder/scripts/build_deck.py +105 -3
- package/packs/{stakeholder-comms → design}/skills/deck-builder/templates/deck-spec.json +4 -1
- package/packs/design/skills/marketing-flyer/SKILL.md +113 -0
- package/packs/design/skills/marketing-flyer/evals/eval_queries.json +30 -0
- package/packs/design/skills/marketing-flyer/evals/evals.json +18 -0
- package/packs/design/skills/marketing-flyer/examples/community-health-fair.md +68 -0
- package/packs/design/skills/marketing-flyer/manifest.json +39 -0
- package/packs/design/skills/marketing-flyer/reference.md +54 -0
- package/packs/design/skills/marketing-flyer/scripts/build_flyer.py +323 -0
- package/packs/design/skills/marketing-flyer/templates/flyer-spec.json +26 -0
- package/packs/dev-team/skills/contribution-wizard/SKILL.md +6 -6
- package/packs/dev-team/skills/contribution-wizard/manifest.json +2 -2
- package/packs/stakeholder-comms/pack.json +1 -1
- package/profiles.json +1 -1
- /package/packs/{stakeholder-comms → design}/skills/deck-builder/evals/eval_queries.json +0 -0
- /package/packs/{stakeholder-comms → design}/skills/deck-builder/evals/evals.json +0 -0
- /package/packs/{stakeholder-comms → design}/skills/deck-builder/examples/exec-board-update.md +0 -0
- /package/packs/{stakeholder-comms → design}/skills/deck-builder/examples/templated-brand-deck.md +0 -0
- /package/packs/{stakeholder-comms → design}/skills/deck-builder/reference.md +0 -0
- /package/packs/{stakeholder-comms → design}/skills/deck-builder/requirements.txt +0 -0
- /package/packs/{stakeholder-comms → design}/skills/deck-builder/templates/palettes.json +0 -0
- /package/packs/{stakeholder-comms → design}/skills/slide-outliner/SKILL.md +0 -0
- /package/packs/{stakeholder-comms → design}/skills/slide-outliner/evals/eval_queries.json +0 -0
- /package/packs/{stakeholder-comms → design}/skills/slide-outliner/evals/evals.json +0 -0
- /package/packs/{stakeholder-comms → design}/skills/slide-outliner/manifest.json +0 -0
- /package/packs/{stakeholder-comms → design}/skills/slide-outliner/templates/deck-outline.md +0 -0
package/README.md
CHANGED
|
@@ -3,581 +3,58 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/skilldrop-cli)
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
|
|
6
|
-
**
|
|
6
|
+
**Portable AI-agent skills for the deliverables knowledge workers actually ship:** ADRs, design docs, PRDs, runbooks, threat models, decks, postmortems and adversarial reviews. Each one is a folder you copy into Claude Code, Cursor, Kiro, Codex or Copilot.
|
|
7
7
|
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
```bash
|
|
11
|
-
npx skilldrop-cli install --pack product-manager # or: solution-architect, dev-team, sre-oncall,
|
|
12
|
-
npx skilldrop-cli list # stakeholder-comms, ai-engineering, claude-api (each brings core)
|
|
13
|
-
```
|
|
14
|
-
|
|
15
|
-
Originally scoped to solution architects, now broadly useful to PMs, founders, consultants, engineering leaders, exec assistants — anyone who turns ideas into stakeholder-ready artifacts.
|
|
16
|
-
|
|
17
|
-
Every skill is a plain `SKILL.md` folder — the [**Agent Skills open standard**](https://agentskills.io) Anthropic ratified — so the same folder runs unchanged in Claude.ai, Claude Code, the Claude Agent SDK, Cursor, Kiro, Codex, Copilot, Antigravity, and anything else that reads the format. Portable by construction: no runtime, no platform, no lock-in.
|
|
18
|
-
|
|
19
|
-
**Why skilldrop over heavier agent platforms:** every skill is a plain folder (`SKILL.md` + `manifest.json` + supporting files) and installs by *copy, never transformation* — what runs in your IDE is byte-identical to what's reviewed in this repo. The layout doubles as an open catalog contract: [any repo shaped like this one](guides/how-to/publish-a-catalogue.md), or with a plain flat `skills/` folder, is installable through the same CLI. Skills are *opinionated* — each ships a quality bar, anti-patterns, and acceptance evals, so the output is an artifact, not a vibe.
|
|
20
|
-
|
|
21
|
-
## How skilldrop works
|
|
22
|
-
|
|
23
|
-
skilldrop ships **loops**, not just parts. A loop is a named sequence of stages over existing skills with a gate between them: [`packs/<pack>/loops/<name>/LOOP.md`](packs/) is what an agent reads, `loop.json` is the machine-readable contract ([RFC-0028](docs/rfcs/0028-loops-as-a-primitive.md)). **Nothing comes out of a loop until it passes that loop's gate.**
|
|
24
|
-
|
|
25
|
-
A loop *sequences* skills — it never contains one. Every skill stays independently installable and runnable on its own, which is what keeps a single-folder copy working in Cursor, Kiro, or Aider.
|
|
26
|
-
|
|
27
|
-
Five loops cover the lifecycle, and they are separated by **reversibility** — how expensive the mistake is to unwind — which is why each gets its own gate rather than folding into a neighbour:
|
|
28
|
-
|
|
29
|
-
| Loop | Takes | Gate | Produces | Mistake costs |
|
|
30
|
-
|---|---|---|---|---|
|
|
31
|
-
| [`discover`](packs/product-manager/loops/discover/LOOP.md) | interviews, journeys, a strategy question | **G0** human — a person ratifies the brief | a ratified requirement | a re-brief |
|
|
32
|
-
| [`design`](packs/solution-architect/loops/design/LOOP.md) | a ratified requirement | **G1** review — `council-review`'s panel | a recorded decision (ADR) | months, unwound in code |
|
|
33
|
-
| [`build`](packs/dev-team/loops/build/LOOP.md) | an agreed requirement or triaged defect | **G2** mechanical — `pre-merge-review`'s gate script decides | merged code | a revert |
|
|
34
|
-
| [`release`](packs/dev-team/loops/release/LOOP.md) | merged code | **G2.5** review — `launch-readiness` on evidence; **G2.6** human go/no-go | a live, reversible rollout | users and data, often irreversible |
|
|
35
|
-
| [`operate`](packs/sre-oncall/loops/operate/LOOP.md) | a shipped service | **G3** human — the incident is closed | a postmortem and runbook deltas | live users, irreversible |
|
|
36
|
-
|
|
37
|
-
Plus one **wrapper**, which is not a lifecycle stage but the two passes either side of *any* generator:
|
|
38
|
-
|
|
39
|
-
| Wrapper | Takes | Gate | Produces |
|
|
40
|
-
|---|---|---|---|
|
|
41
|
-
| [`ship-a-draft`](packs/core/loops/ship-a-draft/LOOP.md) | raw notes, a transcript, a ticket | **G4** review — `doc-critique`'s verdict | a stakeholder-ready artifact |
|
|
42
|
-
|
|
43
|
-
Every gate emits a verdict from one shared vocabulary ([`contracts/terminals.json`](contracts/terminals.json)) in five classes — pass, conditional, revise, redirect, blocked — so `READY`, `PROCEED` and `SHIP IT` are recognisably the same kind of answer. The diagrams below render on GitHub; their Mermaid sources live in [`docs/loops/`](docs/loops/) for re-rendering.
|
|
44
|
-
|
|
45
|
-
*Diagrams below are generated from each loop's `loop.json` by [`build_loops.py`](build_loops.py) — edit the contract, not the picture.*
|
|
46
|
-
|
|
47
|
-
### `discover` — raw signal to a ratified requirement
|
|
48
|
-
|
|
49
|
-
Interviews, journeys and strategy questions become one tagged brief, then numbered requirements a **human ratifies** before any design starts.
|
|
50
|
-
|
|
51
|
-
<!-- loop:discover:start -->
|
|
52
|
-
|
|
53
|
-
```mermaid
|
|
54
|
-
%%{init: {'theme':'base','themeVariables':{'fontFamily':'Segoe UI, Helvetica, Arial','fontSize':'15px','lineColor':'#9AA5B1'},'flowchart':{'curve':'basis','rankSpacing':70,'nodeSpacing':50,'padding':16}}}%%
|
|
55
|
-
flowchart LR
|
|
56
|
-
classDef gen fill:#E8F0FE,stroke:#4C7DF0,stroke-width:1.5px,color:#1A3A8F;
|
|
57
|
-
classDef review fill:#FDEAEA,stroke:#E05B5B,stroke-width:1.5px,color:#8A1F1F;
|
|
58
|
-
classDef gate fill:#FBE3A2,stroke:#D9971E,stroke-width:2px,color:#6B4500,font-weight:bold;
|
|
59
|
-
classDef ship fill:#E6F7EC,stroke:#34A853,stroke-width:2px,color:#0F6B33,font-weight:bold;
|
|
60
|
-
|
|
61
|
-
gather["gather<br/><small>requirements-interview +2</small>"]:::gen
|
|
62
|
-
structure["structure<br/><small>brief-intake</small>"]:::gen
|
|
63
|
-
specify["specify<br/><small>prd-draft</small>"]:::gen
|
|
64
|
-
ratify["ratify<br/><small>doc-critique</small>"]:::gate
|
|
65
|
-
G0{"G0 · human"}:::gate
|
|
66
|
-
DONE(["complete"]):::ship
|
|
67
|
-
|
|
68
|
-
gather --> structure
|
|
69
|
-
structure --> specify
|
|
70
|
-
specify --> ratify
|
|
71
|
-
ratify --> G0
|
|
72
|
-
G0 == "PROCEED" ==> DONE
|
|
73
|
-
|
|
74
|
-
G0 -- "REVISE (max 3)" --> structure
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
<!-- loop:discover:end -->
|
|
78
|
-
|
|
79
|
-
### `design` — a requirement to a recorded decision
|
|
80
|
-
|
|
81
|
-
Constraints first, then structure and diagrams, then an attack, then a panel that must agree — and only then is the decision written down as an ADR.
|
|
82
|
-
|
|
83
|
-
<!-- loop:design:start -->
|
|
84
|
-
|
|
85
|
-
```mermaid
|
|
86
|
-
%%{init: {'theme':'base','themeVariables':{'fontFamily':'Segoe UI, Helvetica, Arial','fontSize':'15px','lineColor':'#9AA5B1'},'flowchart':{'curve':'basis','rankSpacing':70,'nodeSpacing':50,'padding':16}}}%%
|
|
87
|
-
flowchart LR
|
|
88
|
-
classDef gen fill:#E8F0FE,stroke:#4C7DF0,stroke-width:1.5px,color:#1A3A8F;
|
|
89
|
-
classDef review fill:#FDEAEA,stroke:#E05B5B,stroke-width:1.5px,color:#8A1F1F;
|
|
90
|
-
classDef gate fill:#FBE3A2,stroke:#D9971E,stroke-width:2px,color:#6B4500,font-weight:bold;
|
|
91
|
-
classDef ship fill:#E6F7EC,stroke:#34A853,stroke-width:2px,color:#0F6B33,font-weight:bold;
|
|
92
|
-
|
|
93
|
-
constrain["constrain<br/><small>nfr-spec</small>"]:::gen
|
|
94
|
-
shape["shape<br/><small>design-doc·architecture-diagrams</small>"]:::gen
|
|
95
|
-
threat["threat<br/><small>threat-model</small>"]:::review
|
|
96
|
-
ratify["ratify<br/><small>council-review</small>"]:::gate
|
|
97
|
-
record["record<br/><small>adr-generator</small>"]:::gen
|
|
98
|
-
G1{"G1 · review"}:::gate
|
|
99
|
-
DONE(["complete"]):::ship
|
|
100
|
-
|
|
101
|
-
constrain --> shape
|
|
102
|
-
shape --> threat
|
|
103
|
-
threat --> ratify
|
|
104
|
-
ratify --> G1
|
|
105
|
-
G1 == "PROCEED" ==> record
|
|
106
|
-
record --> DONE
|
|
107
|
-
|
|
108
|
-
G1 -- "REVISE (max 3)" --> shape
|
|
109
|
-
```
|
|
110
|
-
|
|
111
|
-
<!-- loop:design:end -->
|
|
112
|
-
|
|
113
|
-
### `build` — a requirement to merged code
|
|
114
|
-
|
|
115
|
-
A vertical slice becomes shippable code through a self-correcting loop, gated by a script whose exit code decides. The inner generate-challenge cycle is the [`feature-implement-loop`](packs/dev-team/skills/feature-implement-loop/SKILL.md) skill.
|
|
116
|
-
|
|
117
|
-
<!-- loop:build:start -->
|
|
118
|
-
|
|
119
|
-
```mermaid
|
|
120
|
-
%%{init: {'theme':'base','themeVariables':{'fontFamily':'Segoe UI, Helvetica, Arial','fontSize':'15px','lineColor':'#9AA5B1'},'flowchart':{'curve':'basis','rankSpacing':70,'nodeSpacing':50,'padding':16}}}%%
|
|
121
|
-
flowchart LR
|
|
122
|
-
classDef gen fill:#E8F0FE,stroke:#4C7DF0,stroke-width:1.5px,color:#1A3A8F;
|
|
123
|
-
classDef review fill:#FDEAEA,stroke:#E05B5B,stroke-width:1.5px,color:#8A1F1F;
|
|
124
|
-
classDef gate fill:#FBE3A2,stroke:#D9971E,stroke-width:2px,color:#6B4500,font-weight:bold;
|
|
125
|
-
classDef ship fill:#E6F7EC,stroke:#34A853,stroke-width:2px,color:#0F6B33,font-weight:bold;
|
|
126
|
-
|
|
127
|
-
shape["shape<br/><small>user-story-splitter·bug-triage</small>"]:::gen
|
|
128
|
-
implement["implement<br/><small>feature-implement-loop</small>"]:::gen
|
|
129
|
-
verify["verify<br/><small>pre-merge-review</small>"]:::review
|
|
130
|
-
decide["decide<br/><small>council-review</small>"]:::gate
|
|
131
|
-
G2{"G2 · mechanical"}:::gate
|
|
132
|
-
G2_1{"G2.1 · human"}:::gate
|
|
133
|
-
DONE(["complete"]):::ship
|
|
134
|
-
|
|
135
|
-
shape --> implement
|
|
136
|
-
implement --> verify
|
|
137
|
-
verify --> G2
|
|
138
|
-
G2 == "READY" ==> decide
|
|
139
|
-
decide --> G2_1
|
|
140
|
-
G2_1 == "PROCEED" ==> DONE
|
|
141
|
-
|
|
142
|
-
G2 -- "NOT READY (max 3)" --> implement
|
|
143
|
-
G2_1 -- "REVISE (max 3)" --> shape
|
|
144
|
-
```
|
|
145
|
-
|
|
146
|
-
<!-- loop:build:end -->
|
|
147
|
-
|
|
148
|
-
### `release` — merged code to live users
|
|
149
|
-
|
|
150
|
-
Plan the rollout and the way back, judge readiness on evidence, draft the release notes, then a human makes the go/no-go call. The gap between a merge you can revert and a launch you often cannot.
|
|
151
|
-
|
|
152
|
-
<!-- loop:release:start -->
|
|
153
|
-
|
|
154
|
-
```mermaid
|
|
155
|
-
%%{init: {'theme':'base','themeVariables':{'fontFamily':'Segoe UI, Helvetica, Arial','fontSize':'15px','lineColor':'#9AA5B1'},'flowchart':{'curve':'basis','rankSpacing':70,'nodeSpacing':50,'padding':16}}}%%
|
|
156
|
-
flowchart LR
|
|
157
|
-
classDef gen fill:#E8F0FE,stroke:#4C7DF0,stroke-width:1.5px,color:#1A3A8F;
|
|
158
|
-
classDef review fill:#FDEAEA,stroke:#E05B5B,stroke-width:1.5px,color:#8A1F1F;
|
|
159
|
-
classDef gate fill:#FBE3A2,stroke:#D9971E,stroke-width:2px,color:#6B4500,font-weight:bold;
|
|
160
|
-
classDef ship fill:#E6F7EC,stroke:#34A853,stroke-width:2px,color:#0F6B33,font-weight:bold;
|
|
161
|
-
|
|
162
|
-
plan["plan<br/><small>migration-plan</small>"]:::gen
|
|
163
|
-
ready["ready<br/><small>launch-readiness</small>"]:::review
|
|
164
|
-
announce["announce<br/><small>release-notes</small>"]:::gen
|
|
165
|
-
go["go<br/><small>council-review</small>"]:::gate
|
|
166
|
-
G2_5{"G2.5 · review"}:::gate
|
|
167
|
-
G2_6{"G2.6 · human"}:::gate
|
|
168
|
-
DONE(["complete"]):::ship
|
|
169
|
-
|
|
170
|
-
plan --> ready
|
|
171
|
-
ready --> G2_5
|
|
172
|
-
G2_5 == "PROCEED" ==> announce
|
|
173
|
-
announce --> go
|
|
174
|
-
go --> G2_6
|
|
175
|
-
G2_6 == "PROCEED" ==> DONE
|
|
176
|
-
|
|
177
|
-
G2_5 -- "REVISE (max 3)" --> plan
|
|
178
|
-
G2_6 -- "REVISE (max 3)" --> plan
|
|
179
|
-
```
|
|
180
|
-
|
|
181
|
-
<!-- loop:release:end -->
|
|
182
|
-
|
|
183
|
-
### `operate` — a shipped service through detection and learning
|
|
184
|
-
|
|
185
|
-
Instrument, write the runbook, communicate the incident, then feed the postmortem's runbook deltas straight back into the runbook. The one loop whose failures are live.
|
|
186
|
-
|
|
187
|
-
<!-- loop:operate:start -->
|
|
188
|
-
|
|
189
|
-
```mermaid
|
|
190
|
-
%%{init: {'theme':'base','themeVariables':{'fontFamily':'Segoe UI, Helvetica, Arial','fontSize':'15px','lineColor':'#9AA5B1'},'flowchart':{'curve':'basis','rankSpacing':70,'nodeSpacing':50,'padding':16}}}%%
|
|
191
|
-
flowchart LR
|
|
192
|
-
classDef gen fill:#E8F0FE,stroke:#4C7DF0,stroke-width:1.5px,color:#1A3A8F;
|
|
193
|
-
classDef review fill:#FDEAEA,stroke:#E05B5B,stroke-width:1.5px,color:#8A1F1F;
|
|
194
|
-
classDef gate fill:#FBE3A2,stroke:#D9971E,stroke-width:2px,color:#6B4500,font-weight:bold;
|
|
195
|
-
classDef ship fill:#E6F7EC,stroke:#34A853,stroke-width:2px,color:#0F6B33,font-weight:bold;
|
|
196
|
-
|
|
197
|
-
instrument["instrument<br/><small>observability-plan</small>"]:::gen
|
|
198
|
-
document["document<br/><small>runbook-generator</small>"]:::gen
|
|
199
|
-
respond["respond<br/><small>incident-comms</small>"]:::gen
|
|
200
|
-
learn["learn<br/><small>postmortem-generator</small>"]:::review
|
|
201
|
-
G3{"G3 · human"}:::gate
|
|
202
|
-
DONE(["complete"]):::ship
|
|
203
|
-
|
|
204
|
-
instrument --> document
|
|
205
|
-
document --> respond
|
|
206
|
-
respond --> learn
|
|
207
|
-
learn --> G3
|
|
208
|
-
G3 == "PROCEED" ==> DONE
|
|
209
|
-
|
|
210
|
-
G3 -- "REVISE (max 3)" --> document
|
|
211
|
-
```
|
|
212
|
-
|
|
213
|
-
<!-- loop:operate:end -->
|
|
214
|
-
|
|
215
|
-
### `ship-a-draft` — raw input to a stakeholder-ready artifact
|
|
216
|
-
|
|
217
|
-
The wrapper: structured intake before any generator, critique and a machine-residue scrub after. Loops back through intake — not the draft — until it's approved.
|
|
218
|
-
|
|
219
|
-
<!-- loop:ship-a-draft:start -->
|
|
220
|
-
|
|
221
|
-
```mermaid
|
|
222
|
-
%%{init: {'theme':'base','themeVariables':{'fontFamily':'Segoe UI, Helvetica, Arial','fontSize':'15px','lineColor':'#9AA5B1'},'flowchart':{'curve':'basis','rankSpacing':70,'nodeSpacing':50,'padding':16}}}%%
|
|
223
|
-
flowchart LR
|
|
224
|
-
classDef gen fill:#E8F0FE,stroke:#4C7DF0,stroke-width:1.5px,color:#1A3A8F;
|
|
225
|
-
classDef review fill:#FDEAEA,stroke:#E05B5B,stroke-width:1.5px,color:#8A1F1F;
|
|
226
|
-
classDef gate fill:#FBE3A2,stroke:#D9971E,stroke-width:2px,color:#6B4500,font-weight:bold;
|
|
227
|
-
classDef ship fill:#E6F7EC,stroke:#34A853,stroke-width:2px,color:#0F6B33,font-weight:bold;
|
|
228
|
-
|
|
229
|
-
intake["intake<br/><small>brief-intake</small>"]:::gen
|
|
230
|
-
draft["draft<br/><small>*</small>"]:::gen
|
|
231
|
-
critique["critique<br/><small>doc-critique</small>"]:::review
|
|
232
|
-
polish["polish<br/><small>output-hygiene</small>"]:::review
|
|
233
|
-
G4{"G4 · review"}:::gate
|
|
234
|
-
DONE(["complete"]):::ship
|
|
235
|
-
|
|
236
|
-
intake --> draft
|
|
237
|
-
draft --> critique
|
|
238
|
-
critique --> G4
|
|
239
|
-
G4 == "SHIP IT" ==> polish
|
|
240
|
-
polish --> DONE
|
|
241
|
-
|
|
242
|
-
G4 -- "MAJOR REWRITE (max 3)" --> intake
|
|
243
|
-
```
|
|
244
|
-
|
|
245
|
-
<!-- loop:ship-a-draft:end -->
|
|
246
|
-
|
|
247
|
-
## Skills in this repo
|
|
248
|
-
|
|
249
|
-
### Pipeline glue
|
|
250
|
-
|
|
251
|
-
| Skill | What it does |
|
|
252
|
-
|---|---|
|
|
253
|
-
| [`brief-intake`](packs/core/skills/brief-intake/SKILL.md) | Upstream collector. Takes raw mess — a Slack thread, meeting transcript, ticket, email chain, paragraph of notes — and emits a structured brief shaped for whichever downstream skill comes next (ADR, design doc, runbook, exec summary, deck, comparison matrix, decision log). Every field is tagged `[explicit] / [implied] / [inferred] / [missing]` with verbatim quotes from the source. |
|
|
254
|
-
| [`doc-critique`](packs/core/skills/doc-critique/SKILL.md) | Counterpart reviewer. Takes an existing doc (ADR, design doc, runbook, exec summary, comparison matrix, deck, decision log) and produces a structured critique against the same rubrics the generators enforce — verdict + severity-tagged findings (blocker / major / minor / nit) with quoted evidence and concrete fixes, plus a "what's working" section. |
|
|
255
|
-
| [`output-hygiene`](packs/core/skills/output-hygiene/SKILL.md) | Pre-ship surface pass. Runs a stdlib-only script over agent-written text to find what the machine put there — invisible Unicode, non-breaking spaces, homoglyphs, harness-added provenance trailers, trailing chat closers — reporting each with its codepoint and line, then sweeps the prose for the tells a script cannot see and quotes every one with a rewrite. Separates what is safe to auto-apply from what needs a decision, and holds the provenance class where an academic, employer, or contribution policy requires disclosure. |
|
|
256
|
-
|
|
257
|
-
### Planning & delivery
|
|
258
|
-
|
|
259
|
-
Skills for the SDLC steps around the code itself — turning raw requirements into shippable, testable units of work and tracking them to release. (`feature-implement-loop` under Dev workflow is the natural downstream of these.)
|
|
260
|
-
|
|
261
|
-
| Skill | What it does |
|
|
262
|
-
|---|---|
|
|
263
|
-
| [`capacity-cost-model`](packs/sre-oncall/skills/capacity-cost-model/SKILL.md) | Build a capacity and cost model for a service or feature — sized from a **demand driver and its growth curve**, never from a chosen instance count. Everything expressed as **unit economics** (cost per request / tenant / GB, so it projects and optimizes); peak-vs-average and headroom written as explicit money-vs-incident decisions; cost at **1×/3×/10× with the scaling cliffs named** (tier jumps, cross-AZ egress, single-node→sharded) instead of a linear extrapolation that hides them; the **forgotten line items** checklisted (egress, observability ingestion, backups×retention×copies, non-prod, always-on NAT/LB) because their absence is what makes a model land 40% low; cost-drivers ranked; ranges not false precision; and a unit-cost-at-scale check that flags rising per-unit cost as an architecture problem. |
|
|
264
|
-
| [`business-case`](packs/product-manager/skills/business-case/SKILL.md) | Business case for a build/buy/defer investment decision, written so a sponsor can approve, challenge, or kill it on its merits. **Option 0 (do nothing) always present and costed**; every benefit is a re-runnable calculation with sourced inputs and a confidence tag (adjective benefits don't survive); all three cost layers per option — build, run (the year-2+ layer where cases go to die), and opportunity with the displaced work named; **ranges instead of false precision** ("327% ROI" from three guesses fails the doc); the **flip-assumption** identified with a de-risking step when confidence is low; a singular committal recommendation that states the runner-up's best argument fairly; and the ask in the first 40 words. |
|
|
265
|
-
| [`requirements-interview`](packs/product-manager/skills/requirements-interview/SKILL.md) | Per-stakeholder interview kits for feature discovery — sponsor, end users, ops/support, security/legal, finance — built only for stakeholders holding *open* unknowns. ≤7 questions per kit ranked by design impact, each annotated with the decision it informs and how the answer moves the design; problems-and-the-past phrasing only ("the last time", never "would you use…"); a mandatory **kill-question** per script with what a kill-answer looks like; and an assumptions-to-validate ledger where every assumption has a falsification condition (or gets flagged as needing data/prototype instead). Notes flow to `brief-intake` → `prd-draft`. |
|
|
266
|
-
| [`prd-draft`](packs/product-manager/skills/prd-draft/SKILL.md) | Draft a Product Requirements Document from a feature idea or `brief-intake` output — the missing link before design starts. Problem statement with **zero solution nouns** (tested: could it justify a different solution than the one in everyone's head?), personas specific enough to find one, a measurable "we'll know it worked when" line per goal, testable MoSCoW-prioritized requirements with a mandatory Won't-have list, **minimum 3 non-goals** (the scope-creep firewall), open questions with owners and dates, and every claim tagged `[reported by …]` / `[data: …]` / `[assumption]`. Sized for a 30-minute read; hands off to `user-story-splitter`, `nfr-spec`, `success-metrics`, and `design-doc`. |
|
|
267
|
-
| [`nfr-spec`](packs/solution-architect/skills/nfr-spec/SKILL.md) | Sweep a feature through the full non-functional-requirements catalog — performance, throughput, availability/SLO, durability/DR, privacy/retention, accessibility, i18n, observability, operability, compatibility, cost. Every category lands in exactly one of three states: measurable target with a verification method, explicit n/a with a reason, or archetype default tagged `[assumption]` — silence is forbidden, and the output ledger proves the sweep happened. Targets are calibrated by system archetype and the "what happens if it's down for an hour" answer (anti-five-nines-cargo-cult); retention/deletion is first-class per data class; observability is written as 3am questions, not tool names. Feeds `design-doc`, `test-plan-generator`, and `threat-model`. |
|
|
268
|
-
| [`success-metrics`](packs/product-manager/skills/success-metrics/SKILL.md) | Define how a feature's success will be measured *before* it's built. Exactly one primary metric — an outcome, not an output or vanity count — with baseline, target, and timeframe (no baseline? measuring it becomes milestone 1); leading indicators for steering; guardrails with current values and alert thresholds; a **counter-metric** naming how the primary could be gamed and what catches it; an instrumentation plan where every metric maps to a named event marked exists/must-build (must-build = launch blocker, not fast-follow); and a **pre-committed, action-shaped decision rule** so a missed target triggers an agreed action instead of a "directionally positive" debate. |
|
|
269
|
-
| [`user-story-splitter`](packs/dev-team/skills/user-story-splitter/SKILL.md) | Split an epic, feature request, or PRD chunk into independently shippable vertical-slice user stories — SPIDR slicing patterns, walking-skeleton-first build order, 3–7 Gherkin acceptance criteria per story (always including an edge case), tagged `[assumption]`s, and an explicit "out of scope / not covered" ledger so nothing silently disappears. Each emitted story is shaped to hand straight to `feature-implement-loop`. |
|
|
270
|
-
| [`test-plan-generator`](packs/dev-team/skills/test-plan-generator/SKILL.md) | Generate a risk-based test plan for a feature, PR, or release. Risks ranked likelihood × impact before any test case is written (effort tracks priority); each case pushed to the lowest pyramid level that catches the failure (unit > integration > e2e, with e2e placement justified); every acceptance criterion mapped in a coverage table; edge-case taxonomy sweep (boundaries, idempotency, concurrency, dependency failure, timezones, …); observable entry/exit criteria; and a mandatory "Not tested — accepted risks" section. Takes `user-story-splitter` output, a diff/PR, or a prose brief. |
|
|
271
|
-
| [`release-notes`](packs/dev-team/skills/release-notes/SKILL.md) | Turn git history between two refs (default: last tag → HEAD) into two artifacts: customer-facing release notes rewritten in reader benefits — no commit-speak, no ticket IDs, no "various improvements" — and an internal Keep-a-Changelog version with a commit hash on every line. Breaking changes hoisted to the top of both with an "Action required" line (detected via `!:` markers, removed public API, migration files, major bumps); internal noise (refactors, CI, deps) never leaks into customer notes; vague commits land in a "Needs review" list instead of being guessed at. |
|
|
272
|
-
| [`bug-triage`](packs/dev-team/skills/bug-triage/SKILL.md) | Turn a vague bug report ("it's broken on mobile sometimes") into a ticket an engineer can start without contacting the reporter: searchable symptom-plus-condition title, numbered repro steps from a clean state (or an explicit "no repro yet" with the exact diagnostics to collect), expected-vs-actual with the verbatim error string, every claim tagged `[reported]` / `[verified]` / `[assumption]`, severity and priority judged independently (S4/P1 is a legitimate combination), ≤3 hypotheses each with a 5-minute check, and duplicate-search hints. One bug per ticket — multi-symptom reports get split. |
|
|
273
|
-
| [`migration-plan`](packs/dev-team/skills/migration-plan/SKILL.md) | Phased migration/rollout plan (schema change with live backfill, API version, datastore/auth/platform swap) built on the parallel-change pattern: expand → migrate → contract. One change per phase (a failed phase implicates exactly one thing); every phase carries an observable gate with bake time, a tested rollback with an explicit data story, and a blast radius; at most one **named point of no return**; backfill specified idempotent + resumable + rate-limited with 3-depth parity checks; dual-write requires a named reconciler; the contract phase gets a date and an owner so "we'll remove the old path later" actually happens. |
|
|
274
|
-
| [`launch-readiness`](packs/dev-team/skills/launch-readiness/SKILL.md) | Go/no-go readiness report for a merged change before it reaches users. It lists the change's own failure modes first, then judges seven checks in order: rollback, detection, response, measured NFR targets, data & privacy, comms, staged exposure. Each row is met / not met / n/a-with-reason, with an evidence link and an owner role, and a row with no evidence is `not met`. The verdict (PROCEED / PROCEED WITH CONDITIONS / REVISE / BLOCKED) follows mechanically from the rows, and a missing rollback blocks on its own. Gaps go to `migration-plan`, `observability-plan` or `runbook-generator` instead of being drafted inline. The `ready` stage of the `release` loop. |
|
|
275
|
-
|
|
276
|
-
### Product strategy
|
|
277
|
-
|
|
278
|
-
Skills for the direction-setting layer above any single feature — testing whether a product idea deserves a team, analyzing a market position, and turning strategy into aligned goals. (`business-case` under Planning & delivery is the natural costed follow-on.)
|
|
279
|
-
|
|
280
|
-
| Skill | What it does |
|
|
281
|
-
|---|---|
|
|
282
|
-
| [`prfaq`](packs/product-manager/skills/prfaq/SKILL.md) | Write an Amazon-style PR/FAQ — the launch press release for a product that doesn't exist yet, plus customer and internal FAQs that force the hard questions before engineering starts. Problem stated in the customer's words (no jargon-laundering); solution names a **mechanism**, not a category; an **adoption hypothesis** with a behavioral first-success event (never "ships to beta" — that's the team's action, not the customer's); at least one customer-FAQ answer concedes a real trade-off; the internal FAQ names the riskiest assumption, a concrete acquisition path, a success metric that counts the first-success event, and a **kill condition**. Zero spec content — hands off to `prd-draft` or `business-case` if the idea survives. |
|
|
283
|
-
| [`strategy-analysis`](packs/product-manager/skills/strategy-analysis/SKILL.md) | Run a strategy framework — SWOT/TOWS, Porter's Five Forces, or PESTLE — chosen to fit the question, not the request (a "SWOT" that's really "should we enter this market" gets Five Forces suggested). Every cell must be **specific, evidence-tagged, and carry a so-what** — horoscope cells ("strong team") are banned; SWOT never ships without TOWS crossings; every Five Forces rating names the mechanism (who holds the power and why). Ends with **ranked, action-shaped implications** tied to a named decision and a verdict that takes a side and states what would change it. |
|
|
284
|
-
| [`okr-cascade`](packs/product-manager/skills/okr-cascade/SKILL.md) | Cascade company OKRs to team level with the two things cascades usually hide: a **ranked gap registry** (objectives no team credibly owns) and a **causal metric tree** (Mermaid) connecting every team KR to the north-star via a written causal sentence. Output KRs flagged at intake ("launch v2" → what outcome does it serve?); every team KR scorable 0.0–1.0 and measurable at the team's own scope; no alignment theater (teams with no credible contribution to an objective simply don't appear under it); company OKRs kept verbatim so the roll-up stays honest. Org-level counterpart to `success-metrics`, which takes each team KR into full feature-level measurement design. |
|
|
285
|
-
|
|
286
|
-
### Dev workflow
|
|
287
|
-
|
|
288
|
-
| Skill | What it does |
|
|
289
|
-
|---|---|
|
|
290
|
-
| [`feature-implement-loop`](packs/dev-team/skills/feature-implement-loop/SKILL.md) | Implement a feature/story so it ends up *verified*, not just generated. Takes a description + acceptance criteria, writes code and tests, then runs a review panel (delegating to the `devils-advocate`, `security-reviewer`, and `code-quality` subagents in parallel where available, sweeping the lenses inline elsewhere) to find gaps — broken edge cases, baked-in assumptions, acceptance criteria with no asserting test — and re-generates to close them. Loops until the review is clean or a hard 3-round cap is hit, then reports status (`VERIFIED` / `VERIFIED WITH OPEN ITEMS` / `BLOCKED`), an acceptance-criteria coverage table, and a per-round log. The build-cycle counterpart to the artifact pipeline. |
|
|
291
|
-
| [`pre-merge-review`](packs/dev-team/skills/pre-merge-review/SKILL.md) | Gate an existing change before merge with **one** command that fires the whole review fleet: a deterministic **mechanical gate** (`scripts/gate.py` runs the project's lint + typecheck + tests; its exit code decides — un-bypassable) **and** the three-reviewer panel — `devils-advocate` (correctness), `security-reviewer` (exploitability), `code-quality` (craft) — dispatched in parallel, then a single **READY / NOT READY** verdict (READY only when the gate is green *and* no blocker/major stands). Where `feature-implement-loop` *generates* and loops, this *judges* a diff you already have; design disagreements escalate to `council-review`. |
|
|
292
|
-
| [`devils-advocate`](packs/dev-team/skills/devils-advocate/SKILL.md) | Adversarial review of *just-generated* code, run right after an agent (or human) declares a feature done. Sweeps four lenses — edge cases the first pass missed, assumptions baked in that won't survive 6 months, what a staff engineer would push back on in review (concurrency, error handling, security, observability, blast radius), and test-coverage gaps. Produces severity-tagged findings (blocker / major / minor / nit) with file:line evidence, reproducible scenarios, and concrete fixes — plus a "what's solid" section. The code counterpart to `doc-critique`. |
|
|
293
|
-
| [`council-review`](packs/core/skills/council-review/SKILL.md) | The "Claude Council." Convenes five distinct senior-engineer personas — 🏛 Architect, 🔒 Security, 🛠 Operator/SRE, ⚖️ Pragmatist, 👤 User-Advocate (plus optional bench seats: Performance, Cost, Data & Migration, Accessibility, Compliance) — to deliberate a decision, design, or code change. Each seat takes an independent stance (🟢 support / 🟡 conditions / 🔴 oppose / ⚪ abstain) with evidence; the genuine disagreements surface as named **cruxes**; a **Chair** issues a reconciled verdict (PROCEED / WITH CONDITIONS / REVISE / RECONSIDER / SPLIT) that names the tradeoff chosen, records dissent, and states what would change the decision. Where `devils-advocate` is one voice, the council is many that can disagree. Use for architecture decisions, risky changes before merge, RFC scrutiny, "should we adopt X?", or a pre-mortem. |
|
|
294
|
-
| [`threat-model`](packs/solution-architect/skills/threat-model/SKILL.md) | STRIDE threat model from a design doc, architecture description, or `reverse-architecture` output — *before* the code exists. Establishes assets / entry points / trust boundaries first, runs STRIDE per boundary crossing, and writes every threat as a concrete actor → path → result scenario (severity 🟥/🟧/🟨/⚪ calibrated to *this* system's assets, not CVSS theater). Credits existing mitigations as verified-vs-assumed, attaches a verification step to every recommendation, and forces the two classic blind-spot sweeps: authz (tenant→tenant, authn ≠ authz) and insider/compromised-credential. Design-phase counterpart to `devils-advocate`. |
|
|
295
|
-
| [`accessibility-audit`](packs/dev-team/skills/accessibility-audit/SKILL.md) | Adversarial WCAG 2.2 AA audit of a UI — component code, page markup, screenshot, or a described flow. The UI counterpart to `devils-advocate`: every finding cites a **specific success criterion** (number + name + level), names the **user group and assistive tech it blocks** (no victim, no finding), is severity-tagged by task-completion impact (🟥 blocker → ⚪ nit), and carries a concrete fix. Computes real contrast ratios (not eyeballing), sweeps the high-yield checks scanners miss (focus order, name/role/value, alt-text *quality*, error recovery, reflow, target size), tags each finding `[auto]` vs `[manual]` so CI-gateable issues are split from the human-only ones, and states the input's coverage limits — a screenshot audit never claims keyboard operability passes. Ships the WCAG catalog and a worked example. |
|
|
296
|
-
| [`sonar-onboard`](packs/dev-team/skills/sonar-onboard/SKILL.md) | One-shot scaffold to make a repo Sonar-compliant. Supports both **SonarQube server** (self-hosted) and **SonarCloud** (SaaS) — user picks at setup. Emits `sonar-project.properties` with language-detected source/test/coverage paths, a GitHub Actions workflow that runs the scanner on push + PR and blocks merge on quality-gate failure, and a README snippet documenting the gate. |
|
|
297
|
-
| [`sonar-review`](packs/dev-team/skills/sonar-review/SKILL.md) | Per-change Sonar compliance review. Runs the scanner against the current branch, fetches the quality-gate verdict + issues + security hotspots from the Sonar API, and produces a structured markdown report scoped to changed files: gate PASS/FAIL on top, then severity-tagged findings (🟥 blocker / 🟧 critical / 🟨 major / ⚪ minor) grouped into five lenses (bugs, vulnerabilities, security hotspots, code smells, coverage + duplication), each with file:line, the Sonar rule ID, why it matters, and a concrete fix. Auto-detects server vs cloud from `sonar-project.properties`. Sister skill to `devils-advocate`. |
|
|
298
|
-
|
|
299
|
-
### Diagrams
|
|
300
|
-
|
|
301
|
-
| Skill | What it does |
|
|
302
|
-
|---|---|
|
|
303
|
-
| [`architecture-diagrams`](packs/solution-architect/skills/architecture-diagrams/SKILL.md) | Turn a written description of a system into a renderable Mermaid, PlantUML, or C4 diagram. Supports AWS / Azure / GCP cloud shapes, sequence flows, container diagrams, and ER models. |
|
|
304
|
-
| [`reverse-architecture`](packs/solution-architect/skills/reverse-architecture/SKILL.md) | Reverse-engineer a system's "as-is" architecture from existing code, IaC (Terraform / CloudFormation / CDK / Pulumi / Bicep), Kubernetes manifests, docker-compose, package manifests, database schema, or OpenAPI. Emits a structured node/edge extraction, a written description suitable for `architecture-diagrams`, and a first-draft Mermaid / C4 diagram with every node tied to a source-of-truth file path. |
|
|
305
|
-
| [`figma-diagrams`](packs/solution-architect/skills/figma-diagrams/SKILL.md) | Read structure from existing Figma/FigJam files and produce FigJam-importable diagram specs (and comments) via the Figma REST API. Useful when your final deliverable lives in Figma. |
|
|
306
|
-
| [`user-journey-map`](packs/product-manager/skills/user-journey-map/SKILL.md) | Map one persona's end-to-end journey toward one outcome — 3–6 goal-phase stages (never one-per-screen), each with actions / reasoned emotion scores / pains / **outcome-shaped opportunities** (no solutioning — "add SSO" belongs downstream), rendered as a Mermaid `journey` emotion arc. Declares its **evidence level** up front (`[observational]` / `[survey/analytics]` / `[assumption-based]`) so a hypothesis never masquerades as research; marks the steepest dips, the peak, and the *ending* emotion (peak-end rule); and ranks opportunities down to **1–2 named improvement targets** instead of an unranked pain inventory. Hands committed targets to `prd-draft` / `user-story-splitter` and measurement to `success-metrics`. |
|
|
307
|
-
|
|
308
|
-
### Documentation
|
|
309
|
-
|
|
310
|
-
| Skill | What it does |
|
|
311
|
-
|---|---|
|
|
312
|
-
| [`adr-generator`](packs/solution-architect/skills/adr-generator/SKILL.md) | Generate an Architecture Decision Record in MADR or Nygard format from a context-decision-consequences brief, with sensible numbering and filename. |
|
|
313
|
-
| [`design-doc`](packs/solution-architect/skills/design-doc/SKILL.md) | Generate a Google-style engineering design doc (problem → goals/non-goals → alternatives → proposal → risks → rollout) from a feature brief. |
|
|
314
|
-
| [`runbook-generator`](packs/sre-oncall/skills/runbook-generator/SKILL.md) | Generate an operational runbook for a service — deploy/rollback, top 5 incident playbooks, SLOs, on-call escalation, dependencies. |
|
|
315
|
-
| [`observability-plan`](packs/sre-oncall/skills/observability-plan/SKILL.md) | Design the telemetry that makes a service detectable-before-users-complain and debuggable-at-3am. SLIs defined from **user journeys** (good/valid events), not resource graphs — latency SLIs as threshold counts at a percentile, never averages; SLOs with an **error budget in human terms and a spend policy** (what freezes when it's gone); **symptom-based, multi-window burn-rate alerting** where a page means a human must act now and every page is runbook-linked (the alert-fatigue fix); the three pillars split by purpose (metrics for SLOs/alerts with bounded cardinality, structured sampled logs for debugging, tail-sampled traces for cross-service attribution); and a **cardinality + cost budget** so observability doesn't become the surprise invoice. Expands `nfr-spec`'s observability row; feeds `runbook-generator`, `incident-comms`, `postmortem-generator`. |
|
|
316
|
-
| [`postmortem-generator`](packs/sre-oncall/skills/postmortem-generator/SKILL.md) | Generate a blameless incident postmortem from raw response material (Slack scrollback, pager timeline, notes). Quantified impact table (numbers or `[missing]` — never "significant impact"); UTC timeline with computed detection and mitigation gaps; 2+ contributing factors with "human error" structurally banned; mandatory what-went-well / poorly / **where-we-got-lucky** lists; ≤8 action items each with owner role, prevent/detect/mitigate class, and a verifiable done-condition; ends with paste-ready runbook deltas for `runbook-generator`. |
|
|
317
|
-
| [`guide-builder`](packs/stakeholder-comms/skills/guide-builder/SKILL.md) | Turn raw notes or a spec into an easy-to-follow guide, auto-styled to the content: a setup/quickstart (prerequisites → steps → verify → troubleshooting), a design walkthrough (mental model → flow → key decisions → where the code lives), or an API/event-schema reference (typed contracts + example payloads + error catalog). Distinct from `runbook-generator` (SRE/on-call) and `design-doc` (proposal for review). |
|
|
318
|
-
| [`api-contract-draft`](packs/solution-architect/skills/api-contract-draft/SKILL.md) | Draft an OpenAPI 3.1 contract from a feature brief, *before* the code — resource-oriented paths (plural nouns, no RPC verbs), full RFC 9457 error catalog with machine-readable codes per operation, cursor pagination / `Idempotency-Key` / URL versioning decided at draft time instead of retrofitted, production-realistic examples on every operation, and typing rules that ban the classic regrets (float money, naked timestamps, unbounded strings). Emits a **decisions log** alongside the YAML so reviewers argue choices, not line numbers. Handles event/webhook contracts (AsyncAPI-shaped) with the same rigor. Designing new contracts only — documenting an existing API is `guide-builder`'s job. |
|
|
319
|
-
| [`db-schema-design`](packs/solution-architect/skills/db-schema-design/SKILL.md) | Design a database schema **from the queries backward** — the access patterns (frequency, selectivity, consistency) come before any table is drawn. Paradigm chosen with a reason tied to those patterns (relational is the default and needs none; every move past it justifies itself); keys designed from queries (surrogate PK by default, NoSQL partition+sort key to avoid hot partitions, no random UUIDv4 as a clustered key); 3NF then denormalize only for a named hot read *with* its sync obligation; indexes mapped one-to-one to real queries (composite order = equality→range→sort); money/time/enum types right at the schema; explicit multitenancy and unbounded-growth-table decisions; and a **verification table proving every access pattern has a supporting path**, full scans flagged. Distinct from `data-contract` (published-dataset guarantee) and `api-contract-draft` (sync interface); hands evolution to `migration-plan`. |
|
|
320
|
-
| [`data-contract`](packs/solution-architect/skills/data-contract/SKILL.md) | Draft a data contract for a dataset, table, or event stream others depend on — the data-engineering counterpart to `api-contract-draft`. Schema specified with **per-field semantics and units** (the cents-vs-dollars, UTC-vs-local, gross-vs-net firewall), measurable quality SLAs across freshness / completeness / validity / uniqueness / distribution — each with a threshold, a check, and a **breach action** — a schema-evolution policy that names the silent killer (changing a field's *meaning* under a stable name/type is breaking, and no validator catches it), enumerated consumers (so "breaking" is defined and notices have an address), a named owner, and per-field PII classification. Marks aspirational-vs-met SLAs honestly on existing assets. |
|
|
321
|
-
| [`tech-comparison-matrix`](packs/solution-architect/skills/tech-comparison-matrix/SKILL.md) | Produce a weighted comparison matrix for a tech-selection question (e.g. "Postgres vs DynamoDB") with criteria, weights, scores, and a recommendation. |
|
|
322
|
-
|
|
323
|
-
### Agent engineering
|
|
324
|
-
|
|
325
|
-
Designing the agentic systems themselves — the loops, orchestrations, and budgets that turn "prompting an agent" into infrastructure a team can run unattended. (`feature-implement-loop` under Dev workflow is the in-repo worked example of a supervised loop; `llm-eval-harness` below builds the verifier's quality gate.)
|
|
326
|
-
|
|
327
|
-
| Skill | What it does |
|
|
328
|
-
|---|---|
|
|
329
|
-
| [`agent-loop-design`](packs/ai-engineering/skills/agent-loop-design/SKILL.md) | Design a supervised agent loop as an implementable **loop spec**: a strict generate→verify→gate state machine (no mushy "reflect" states), an **observable done-condition** (never "output looks good"), verifier structurally ≠ generator (self-grading inflates), **both caps as numbers** (revision cap defaulting to 3, budget cap per run), human gates at every irreversible action with **decision-shaped digests** (never transcripts), findings flowing into the next round (else it's retry, not iteration), three specified failure routes (cap-hit / can't-judge / systemic early-stop), and a telemetry row so the loop's degradation shows up before its output does. |
|
|
330
|
-
| [`subagent-design`](packs/ai-engineering/skills/subagent-design/SKILL.md) | Decompose a task into orchestrator + subagents — starting from **"the default answer is one agent"**: fan-out must earn itself via context separation, independence, or role conflict, or the plan says so. One-mission **role cards** (typed output contracts, explicit context-isolation lines, least-privilege tools, structured failure behavior), topology chosen with the reason attached (pipeline default; barriers only for named cross-item dependencies; judge panels with a vote rule), depth capped at one level, an **adversarial verification stage that is never a generator**, and a budget line per fleet. |
|
|
331
|
-
| [`agent-budget`](packs/ai-engineering/skills/agent-budget/SKILL.md) | The spend spec for an agentic workflow: cheapest-adequate **tier per stage** (light/standard/heavy — heavy verification is never downgraded to save money), three numbers per stage (expected, hard cap, on-cap action — "warn and continue" banned), a run-level cap *below* the sum of stage caps, a **degradation ladder where verification is last and never cut**, and **cost-per-outcome** as the governing metric with a comparison line against the manual alternative — so "$900/week" becomes answerable. Estimates tagged `[assumption]` until calibrated on real runs. |
|
|
332
|
-
| [`agent-threat-model`](packs/ai-engineering/skills/agent-threat-model/SKILL.md) | Security review of an agent's **capability surface** against the lethal trifecta — private data, untrusted content, an exfiltration vector. Inventories data reach *transitively* (the filesystem tool reaches every secret in `.env`), applies a writer-authorization test that classifies almost every content source untrusted, and sweeps egress past the obvious network tool (rendered markdown images, CI logs, error text, DNS). Scores **paths, not tools** — `fetch` is fine alone and lethal beside a secrets file — then names the architectural fix that breaks a leg, with a verification step. Structurally refuses the two answers teams reach for first: a system prompt telling the model to ignore injected instructions is not a control, and an injection classifier is defense in depth, never a broken leg. |
|
|
333
|
-
|
|
334
|
-
| [`agents-md-generator`](packs/dev-team/skills/agents-md-generator/SKILL.md) | Generate or audit the `AGENTS.md` that Claude Code, Codex, Cursor, Copilot, Kiro and Antigravity all read before your prompt. Built around one rule: **every command traces to evidence in the repo** — a CI step, a Makefile target, a `package.json` script — or it appears as `[missing: no test command in CI or manifests]` rather than a guess, because an invented command is a fault the agent will trust over the filesystem. Convention lines must pass a **counterfactual test** (without this line, would a competent agent do the wrong thing?); virtue instructions — "clean", "best practice", "thorough" — are *stripped, not softened*, since they spend context and change no behaviour. Names forbidden actions explicitly, the section most files omit. Hard ~150-line cap when generating, a warning when auditing, because an existing file may be long for good reason. Audit mode emits a diff, never a silent rewrite. Satellites (`CLAUDE.md`, `.github/copilot-instructions.md`) are opt-in and **delta-only** — a satellite that repeats `AGENTS.md` is guaranteed drift. |
|
|
335
|
-
|
|
336
|
-
### AI adoption & observability
|
|
337
|
-
|
|
338
|
-
| Skill | What it does |
|
|
339
|
-
|---|---|
|
|
340
|
-
| [`agent-adoption-stage`](packs/ai-engineering/skills/agent-adoption-stage/SKILL.md) | Place an engineering team on the agentic-coding ladder — **0 gated → 1 assisted (~1 agent) → 2 parallel (~10) → 3 supervised autonomy (~100) → 4 intent-steered (~1000+)** — from observables (agents in flight, who writes the code, what still gets reviewed), never from licence counts or ambition. The load-bearing idea is that **the bottleneck moves**: your attention → review throughput → trust in the loop → finding the work to automate, so the fix that unlocked the last step does nothing for the next. Forces **exactly one stage** and **exactly one unlock**, names the guardrail to *retire* (reading every diff is right at stage 1 and arithmetically impossible at stage 3), and routes each unlock to the skill that implements it (`pre-merge-review`, `agent-loop-design`, `subagent-design`, `agent-budget`). Adapted from Boris Cherny's *Steps of AI Adoption*, stated as capabilities rather than products so it survives the next vendor release. |
|
|
341
|
-
| [`ai-readiness-assessment`](packs/ai-engineering/skills/ai-readiness-assessment/SKILL.md) | Score readiness to adopt AI across **six fixed dimensions** — data, tooling, skills, governance, process, culture — each 0–4 with a **one-line evidence reference**, or `[insufficient evidence]` rather than a guessed middle number. Gaps are ranked by **what blocks first**, not by lowest score, with the dependency named ("Skills can't move until Tooling ≥ 2"), and each carries a first action and an owner *role*. Ends with a posture sentence that takes a position and names what would change it — never a bare maturity label, because "you are Level 2 of 5" is not something a leader can fund. |
|
|
342
|
-
| [`ai-use-case-triage`](packs/ai-engineering/skills/ai-use-case-triage/SKILL.md) | Rank candidate AI use cases on value × feasibility × risk with the **weights shown** (default 40/35/25). Each candidate is restated as *a workflow and a person*, never a technology; feasibility asks whether the output can be **verified before it matters**, not whether a model can produce it. Produces a recommended first slice with an **observable kill condition** and a time box, plus a mandatory **not-yet list** where every rejection carries the condition that would promote it. A portfolio with no rejections hasn't triaged anything. |
|
|
343
|
-
| [`ai-adoption-rollout`](packs/ai-engineering/skills/ai-adoption-rollout/SKILL.md) | Plan the **human** rollout (the counterpart to `migration-plan`'s technical one) — cohorts smallest-first with a reason each is next, per-cohort hands-on enablement built from what the pilot actually got stuck on, champions as roles **with protected hours**, and an adoption **gate per wave** (observable + threshold + bake time + rollback). The comms plan must state explicitly **what will not change** about headcount and evaluation; silence there is read as bad news and is the biggest driver of quiet non-adoption. Licences activated is not adoption. |
|
|
344
|
-
| [`ai-usage-policy`](packs/ai-engineering/skills/ai-usage-policy/SKILL.md) | Draft the organisation-wide acceptable-use policy — **three** data tiers (five aren't memorable at the moment of pasting) with concrete examples from *this* org, permitted/prohibited uses stated as behaviours, and a human-review matrix keyed to **consequence** rather than to model names that age out in months. Every prohibition names a permitted alternative, because a ban with no sanctioned path moves the work to personal accounts where you can't see it — and there's always an exception route with a turnaround time. |
|
|
345
|
-
| [`ai-usage-report`](packs/ai-engineering/skills/ai-usage-report/SKILL.md) | Turn a CSV/JSONL of AI usage events (exported from an MCP server or other telemetry source) into a per-user, team-rollup, or effectiveness-focused report. Surfaces volume, breadth, session depth, and — where the data supports it — whether AI outputs were actually consumed in shipped artifacts vs generated and discarded (the "AI theater" question). Refuses to generate an aggregate rollup for teams smaller than 5 to preserve anonymity. |
|
|
346
|
-
| [`llm-eval-harness`](packs/ai-engineering/skills/llm-eval-harness/SKILL.md) | Design the **dev-loop quality gate** for an LLM-powered feature (prompt, RAG, agent, classifier) — so prompt and model changes ship on numbers, not vibes. A versioned golden set in three deliberate buckets (representative from real logs, adversarial/edge, and regression cases frozen from every past failure); the **cheapest adequate grading method per case** (programmatic → structured assertions → LLM-as-judge only when quality is genuinely subjective, and then validated against human labels with bias controls); a metric matched to the task with **both gates set before the first run** (no-regression + critical-subset-at-100%); a failure taxonomy that points iteration at the biggest bucket; and cost/latency tracked beside quality. Enforces the held-out split and the no-tuning-on-test rule. Provider-neutral. |
|
|
347
|
-
|
|
348
|
-
### Claude API
|
|
349
|
-
|
|
350
|
-
Skills for teams building directly on the Anthropic API — prompt caching strategy, token budgeting, eval generation for skills, and tool-use schema authoring.
|
|
351
|
-
|
|
352
|
-
| Skill | What it does |
|
|
353
|
-
|---|---|
|
|
354
|
-
| [`prompt-caching-advisor`](packs/claude-api/skills/prompt-caching-advisor/SKILL.md) | Analyzes a prompt or conversation structure and identifies the highest-value `cache_control` breakpoints — which blocks to cache, where to place the checkpoint, and estimated hit rate. Warns when a cacheable block is below the minimum threshold (~1,024 tokens for Haiku, ~2,048 for Sonnet/Opus). Produces an annotated messages array and a one-paragraph cache strategy summary. |
|
|
355
|
-
| [`token-budget-estimator`](packs/claude-api/skills/token-budget-estimator/SKILL.md) | Breaks down token usage for an agentic workflow by component — system prompt, injected context, tool definitions, tool results, context accumulation, and output — surfaces the dominant cost driver, and recommends concrete `max_tokens` controls. Covers extended thinking (`budget_tokens`) when relevant. |
|
|
356
|
-
| [`eval-harness-generator`](packs/claude-api/skills/eval-harness-generator/SKILL.md) | Takes a SKILL.md and generates 8–12 eval cases (happy path, edge, anti-pattern, refusal) ready to drop into the skill's `evals/cases.json`. Each case has a realistic trigger, checkable `expected_shape` criteria, and `must_not_include` guards from the skill's own quality bar. |
|
|
357
|
-
| [`tool-use-schema-writer`](packs/claude-api/skills/tool-use-schema-writer/SKILL.md) | Converts a function description into a valid Anthropic `tool_use` JSON schema with typed properties, required arrays, and decision-condition descriptions. Validates that required arrays are present and enum values are described. Produces a Python `client.messages.create(tools=[...])` usage snippet. |
|
|
358
|
-
|
|
359
|
-
### Skill authoring
|
|
360
|
-
|
|
361
|
-
| Skill | What it does |
|
|
362
|
-
|---|---|
|
|
363
|
-
| [`contribution-wizard`](packs/dev-team/skills/contribution-wizard/SKILL.md) | Guides an author through creating a new skilldrop skill from scratch — single-block intake, then one response generating the manifest, SKILL.md, 8 eval cases, README row, and pack and outcome placement. Enforces schema compliance and names the `python3 validate.py` check as the gate before opening a PR. |
|
|
364
|
-
|
|
365
|
-
### Stakeholder communication
|
|
366
|
-
|
|
367
|
-
| Skill | What it does |
|
|
368
|
-
|---|---|
|
|
369
|
-
| [`audience-profile`](packs/stakeholder-comms/skills/audience-profile/SKILL.md) | Translate an audience type (exec, board, technical, sales, investor, internal, partner, customer) into structural rules — slide count, density, tone, must-have sections. Reusable input for the next three skills. |
|
|
370
|
-
| [`slide-outliner`](packs/stakeholder-comms/skills/slide-outliner/SKILL.md) | Outline an architecture-review or pitch deck — slide titles, key points, and speaker notes — sized to a target time budget. Doesn't generate PPTX. |
|
|
371
|
-
| [`deck-builder`](packs/stakeholder-comms/skills/deck-builder/SKILL.md) | Generate a real PowerPoint (`.pptx`) file from content + audience + a brand `.potx`/`.pptx` template or colour palette. Uses `python-pptx`; 10 layouts including charts, tables and images, audience-tuned density. Pairs naturally with `audience-profile` + `slide-outliner`. |
|
|
372
|
-
| [`exec-summary`](packs/stakeholder-comms/skills/exec-summary/SKILL.md) | Compress a long technical document into a one-page executive summary structured around an Ask, business impact, cost/timeline, risks, and what you need from the audience. |
|
|
373
|
-
| [`decision-log`](packs/stakeholder-comms/skills/decision-log/SKILL.md) | Extract decisions, action items, owners, and due dates from meeting notes, Slack threads, or transcripts into a structured log with source attribution. |
|
|
374
|
-
| [`incident-comms`](packs/sre-oncall/skills/incident-comms/SKILL.md) | Draft the messages you send *while an incident is still burning* — audience-segmented into customer status-page posts, internal stakeholder updates that arm the relayer, and three-sentence exec briefs (business impact + the ask). Every message leads with reader-facing impact (not internal symptom), uses the precise status vocabulary (investigating / identified / monitoring / resolved), commits only to the **next-update time** (never a fix ETA or speculative cause you'd have to retract), and stays blameless and screenshot-safe. Acknowledge → update-on-committed-cadence → verified resolve. Completes the operate triad with `runbook-generator` (how to fix) and `postmortem-generator` (what to say after). |
|
|
375
|
-
|
|
376
|
-
## What's in a skill
|
|
377
|
-
|
|
378
|
-
Every skill folder follows the same layout, so installation is the same anywhere. It lives in its pack, at `packs/<pack>/skills/<skill-name>/` ([RFC-0034](docs/rfcs/0034-physical-pack-layout.md)), and is self-contained: copy that one folder and it works.
|
|
379
|
-
|
|
380
|
-
```
|
|
381
|
-
packs/<pack>/skills/<skill-name>/
|
|
382
|
-
├── SKILL.md # The instructions the AI agent reads — entry point
|
|
383
|
-
├── manifest.json # Name, description, version, declared deps, required env vars
|
|
384
|
-
├── requirements.txt # (optional) Python deps if the skill has scripts
|
|
385
|
-
├── reference.md # (optional) Long-form reference material
|
|
386
|
-
├── examples/ # (optional) Worked examples the agent can study
|
|
387
|
-
├── templates/ # (optional) Starter snippets the agent can copy from
|
|
388
|
-
├── evals/ # (optional) Acceptance checks — evals.json (prompt + assertions) + eval_queries.json (trigger phrases)
|
|
389
|
-
└── scripts/ # (optional) Executable helpers the agent invokes
|
|
390
|
-
```
|
|
391
|
-
|
|
392
|
-
The `manifest.json` is the canonical machine-readable summary: its `deps` block lists `pip` / `npm` packages, and `env.required` lists env vars that must be set before the skill works. Its `related` block lists the sibling skills this one hands off to, builds on, or names as alternatives — the companions to install if you want the pipelines to work end-to-end. Its `model` block declares the cost-effective model tier for the skill (see below).
|
|
393
|
-
|
|
394
|
-
## Cost-aware model routing (provider-neutral)
|
|
395
|
-
|
|
396
|
-
Different skills need different horsepower — `decision-log` is mechanical extraction, `devils-advocate` is adversarial reasoning. Running both on the same frontier model wastes money on the cheap one; running both cheap loses the hard one. So each skill carries an **abstract tier** describing the *task*, decided once:
|
|
397
|
-
|
|
398
|
-
| Tier | For |
|
|
399
|
-
|---|---|
|
|
400
|
-
| 🟢 `light` | Mechanical mapping / extraction |
|
|
401
|
-
| 🔵 `standard` | Most generation (the default) |
|
|
402
|
-
| 🟣 `heavy` | Adversarial reasoning / weighted judgment (never downgraded) |
|
|
403
|
-
|
|
404
|
-
The tier is **not tied to Claude.** A `providers` map in [`model-routing.json`](model-routing.json) resolves each tier to a concrete model for whatever tool you use — Claude Code, Cursor, Codex, Kiro, or anything else. Set `active_provider` to your tool and fill in its three model names (Claude Code ships filled in; the rest are templates). The same routing decisions then work everywhere.
|
|
405
|
-
|
|
406
|
-
The tier lives in each skill's `manifest.json` (`model` block, travels with the skill) and in `model-routing.json` (the source of truth). [`MODEL-ROUTING.md`](MODEL-ROUTING.md) is the human-readable table, the provider setup, and the mechanical escalation rules (escalate on large/ambiguous input; honor explicit user model choice).
|
|
407
|
-
|
|
408
|
-
**Three ways to use it:**
|
|
409
|
-
|
|
410
|
-
- **Manual (any tool):** look up the skill's tier in [`MODEL-ROUTING.md`](MODEL-ROUTING.md) → look up your tool's model for that tier → set it → invoke the skill.
|
|
411
|
-
- **Pure-rules CLI (any tool, no API key, no network):** [`route.py`](route.py) decides the tier deterministically from keyword + length signals with transparent, tunable weights, and prints the resolved model:
|
|
412
|
-
|
|
413
|
-
```bash
|
|
414
|
-
python3 route.py --skill devils-advocate --input diff.txt
|
|
415
|
-
git diff | python3 route.py --skill sonar-review --files 12 --json
|
|
416
|
-
```
|
|
417
|
-
|
|
418
|
-
- **Automated agent (Claude Code today):** the [`model-router`](.claude/agents/model-router.md) agent — pinned to the lightest model so routing is nearly free — runs `route.py`, resolves your active provider's model, and runs the skill on a subagent at that model:
|
|
419
|
-
|
|
420
|
-
> Use the model-router agent to run `decision-log` on these meeting notes: …
|
|
421
|
-
|
|
422
|
-
Other tools read the **same table** / call the **same `route.py`**, so routing decisions are identical everywhere.
|
|
423
|
-
|
|
424
|
-
Why not have an LLM pick the model live on every call? Because that pays tokens and latency *every time* to answer a question whose answer is fixed per skill. Routing is a table lookup; the model budget is spent on the work, not on deciding.
|
|
425
|
-
|
|
426
|
-
## Skill packs — install a role's toolkit in one command
|
|
427
|
-
|
|
428
|
-
Categories (above) say what a skill *is*; packs say *who needs it*. Each pack is a folder, [`packs/<pack>/`](packs/), and every skill and loop sits in **exactly one** of them ([RFC-0033](docs/rfcs/0033-core-pack-and-single-home-skills.md), [RFC-0034](docs/rfcs/0034-physical-pack-layout.md)). Skills every role uses live in **`core`**, and each role pack `requires` it, so installing a role pack installs `core` with it in the same command:
|
|
429
|
-
|
|
430
|
-
| Pack | Skills | Loops | For |
|
|
431
|
-
|---|---|---|---|
|
|
432
|
-
| `core` | 4 | `ship-a-draft` | Every role: structured intake, document critique, the review council, output hygiene. Comes with every role pack |
|
|
433
|
-
| `dev-team` | 14 + core | `build`, `release` | Build-and-ship: story splitting, implementation with adversarial review, test plans, triage, migrations, launch readiness, release notes, quality gates |
|
|
434
|
-
| `solution-architect` | 11 + core | `design` | Design-phase artifacts: diagrams, ADRs, design docs, contracts, schemas, threat models |
|
|
435
|
-
| `ai-engineering` | 11 + core | — | Adopt and build AI systems: readiness, use-case triage, rollout and policy, agent loop design, subagents, spend budgets, agent threat models, evals, usage reporting |
|
|
436
|
-
| `product-manager` | 8 + core | `discover` | Direction to requirements: PR/FAQs, strategy frameworks, OKRs, business cases, interviews, PRDs, journey maps, success measurement |
|
|
437
|
-
| `stakeholder-comms` | 6 + core | — | Non-technical audiences: audience profiling, deck outlines and real `.pptx` decks, exec summaries, decision logs, guides |
|
|
438
|
-
| `sre-oncall` | 5 + core | `operate` | Operate the service: runbooks, observability design, incident comms, postmortems, capacity/cost models |
|
|
439
|
-
| `claude-api` | 4 | — | Build on the Anthropic API: prompt caching strategy, token budgeting, eval generation for skills, tool-use schema writing. A specialist add-on; it does not bring core |
|
|
440
|
-
|
|
441
|
-
Every pack has a page with **what to try first**, how to tell it worked, and what to do if nothing happens: [sananthanarayan.github.io/skilldrop/packs/](https://sananthanarayan.github.io/skilldrop/packs/). The CLI prints the same thing after a pack install, or any time with `npx skilldrop-cli info --pack <name>` ([RFC-0032](docs/rfcs/0032-pack-landing-pages-and-safe-updates.md)).
|
|
442
|
-
|
|
443
|
-
```bash
|
|
444
|
-
python3 pack.py # list packs
|
|
445
|
-
python3 pack.py product-manager # list a pack's skills
|
|
446
|
-
python3 pack.py product-manager --install # install into ~/.claude/skills/ (user scope)
|
|
447
|
-
python3 pack.py product-manager --install --project # into .claude/skills/ (project scope)
|
|
448
|
-
python3 pack.py product-manager --install --dest .cursor/skills # any dir, for non-Claude IDEs
|
|
8
|
+
```text
|
|
9
|
+
messy input → a skill with a quality bar → a gate that can say no → your decision
|
|
449
10
|
```
|
|
450
11
|
|
|
451
|
-
|
|
452
|
-
|
|
453
|
-
## Outcomes — browse by why you're here
|
|
454
|
-
|
|
455
|
-
Packs answer *who am I*. Outcomes answer *why did I open this*. The seven below are the nine
|
|
456
|
-
categories above, restated as the things people actually arrive wanting to do, and they live in
|
|
457
|
-
the `outcomes` block of [`catalogue.json`](catalogue.json) so the [catalogue site](https://sananthanarayan.github.io/skilldrop/)
|
|
458
|
-
can filter on them. Every skill belongs to at least one; `validate.py` enforces it.
|
|
12
|
+
[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/) · [Install options](guides/how-to/install.md) · [Contribute](CONTRIBUTING.md)
|
|
459
13
|
|
|
460
|
-
|
|
461
|
-
|---|---|---|
|
|
462
|
-
| `design-the-system` | 15 | Decision records, design docs, diagrams, contracts, schemas, migration and threat models, agentic design |
|
|
463
|
-
| `decide-what-to-build` | 11 | Press releases, strategy frameworks, OKRs, business cases, requirements, PRDs, success metrics |
|
|
464
|
-
| `build-and-review-software` | 11 | Supervised implementation, review panels, test plans, triage, accessibility and static-analysis passes |
|
|
465
|
-
| `explain-it-to-decision-makers` | 6 | Audience profiling, deck outlines and real decks, exec summaries, decision logs, guides |
|
|
466
|
-
| `govern-ai-use` | 6 | Readiness, use-case triage, rollout, acceptable-use policy, adoption staging, usage reporting |
|
|
467
|
-
| `run-and-recover-the-service` | 5 | Runbooks, observability design, release notes, incident comms, postmortems |
|
|
468
|
-
| `get-a-draft-ready-to-ship` | 3 | Collect a messy input, critique the argument, strip the machine artifacts |
|
|
14
|
+
## Choose your role
|
|
469
15
|
|
|
470
|
-
|
|
471
|
-
or by pack.
|
|
16
|
+
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.
|
|
472
17
|
|
|
473
|
-
|
|
18
|
+
- **Product managers:** `product-manager` — PR/FAQs, strategy, OKRs, business cases, PRDs, success metrics. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/product-manager/)
|
|
19
|
+
- **Architects:** `solution-architect` — diagrams, ADRs, design docs, API and data contracts, threat models. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/solution-architect/)
|
|
20
|
+
- **Software teams:** `dev-team` — story splitting, implementation with adversarial review, merge gates, launch readiness, release notes. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/dev-team/)
|
|
21
|
+
- **SRE and on-call:** `sre-oncall` — observability, runbooks, incident comms, postmortems, capacity. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/sre-oncall/)
|
|
22
|
+
- **Explaining things to decision-makers:** `stakeholder-comms` — audience profiles, exec summaries, decision logs, guides. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/stakeholder-comms/)
|
|
23
|
+
- **On-brand decks and flyers:** `design` — capture your brand once, then build `.pptx` decks and print-ready flyers with your logo, colours and fonts. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/design/)
|
|
24
|
+
- **Adopting and building AI:** `ai-engineering` — readiness, use-case triage, policy, agent loops, budgets, agent threat models, evals. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/ai-engineering/)
|
|
25
|
+
- **Building on the Claude API:** `claude-api` — prompt caching, token budgets, eval generation, tool schemas. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/claude-api/)
|
|
26
|
+
- **Everyone:** `core` on its own. [Open pack](https://sananthanarayan.github.io/skilldrop/packs/core/)
|
|
474
27
|
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
The repo ships as the npm package **`skilldrop-cli`** (command: `skilldrop`) — a zero-dependency installer that copies skills byte-identical into your tool's location, and writes a pointer file only where the tool needs one to find them (Cursor):
|
|
28
|
+
## Start in one command
|
|
478
29
|
|
|
479
30
|
```bash
|
|
480
|
-
npx skilldrop-cli install --pack
|
|
481
|
-
npx skilldrop-cli install --pack dev-team --project # .claude/skills — also read by GitHub Copilot CLI
|
|
482
|
-
npx skilldrop-cli install prfaq --ide cursor # + writes .cursor/rules/prfaq.mdc
|
|
483
|
-
npx skilldrop-cli install --pack sre-oncall --ide kiro # .kiro/skills — Kiro IDE + Kiro CLI, discovered natively
|
|
484
|
-
npx skilldrop-cli install adr-generator --dest .agents/skills # Codex + Copilot CLI (see below)
|
|
485
|
-
npx skilldrop-cli loops # the six loops, their stages and gates
|
|
486
|
-
npx skilldrop-cli install --loop build # a loop + every stage skill it sequences (RFC-0028)
|
|
487
|
-
npx skilldrop-cli install --loop --pack sre-oncall # every loop that pack declares
|
|
488
|
-
npx skilldrop-cli agents # the reviewer subagents
|
|
489
|
-
npx skilldrop-cli install --agent devils-advocate # -> ~/.claude/agents/ (RFC-0012)
|
|
490
|
-
npx skilldrop-cli install --panel review # the whole review fleet: 3 subagents + the pre-merge-review orchestrator (RFC-0020)
|
|
491
|
-
npx skilldrop-cli outdated && npx skilldrop-cli update # skills improve; files you edited are kept, new copy as <file>.upstream
|
|
492
|
-
npx skilldrop-cli list | skilldrop info <skill> | skilldrop info --pack <name> | skilldrop packs | skilldrop uninstall <skill>
|
|
493
|
-
npx skilldrop-cli list --json # machine-readable: list/info/packs/agents/outdated (RFC-0021)
|
|
494
|
-
```
|
|
495
|
-
|
|
496
|
-
`--loop` installs a loop as an invokable skill (its `LOOP.md` is already `SKILL.md`-shaped) plus the skills its stages name — add `--no-skills` for the loop alone, which still runs because each stage degrades through its declared `fallback`. `--with-related` also pulls each skill's companions. From a clone (or before the package is published): `node bin/skilldrop.js <same args>`. Scope and design: [RFC-0002](docs/rfcs/0002-skilldrop-cli.md), full command surface in [`docs/designs/skilldrop-cli-design.md`](docs/designs/skilldrop-cli-design.md).
|
|
497
|
-
|
|
498
|
-
### Or: the Claude Code plugin marketplace
|
|
499
|
-
|
|
500
|
-
skilldrop is also a **Claude Code plugin marketplace** — one marketplace, nine plugins (the whole catalogue, plus one per pack), no npm step. Add it once:
|
|
501
|
-
|
|
502
|
-
```text
|
|
503
|
-
/plugin marketplace add sananthanarayan/skilldrop
|
|
31
|
+
npx skilldrop-cli install --pack dev-team
|
|
504
32
|
```
|
|
505
33
|
|
|
506
|
-
|
|
34
|
+
The install prints a starter prompt for the pack. For `dev-team`, ask your agent:
|
|
507
35
|
|
|
508
36
|
```text
|
|
509
|
-
|
|
510
|
-
/plugin install dev-team@skilldrop # 18 skills (incl. core) + the 3 reviewer subagents
|
|
511
|
-
/plugin install solution-architect@skilldrop # 15 skills (incl. core)
|
|
512
|
-
/plugin install ai-engineering@skilldrop # 15 skills (incl. core)
|
|
513
|
-
/plugin install product-manager@skilldrop # 12 skills (incl. core)
|
|
514
|
-
/plugin install stakeholder-comms@skilldrop # 10 skills (incl. core)
|
|
515
|
-
/plugin install sre-oncall@skilldrop # 9 skills (incl. core)
|
|
516
|
-
/plugin install claude-api@skilldrop # 4 skills
|
|
517
|
-
/plugin install core@skilldrop # 4 skills, on their own
|
|
518
|
-
```
|
|
519
|
-
|
|
520
|
-
Every skill then invokes as `/<plugin>:<name>` (e.g. `/skilldrop:prfaq`). The whole-catalogue plugin is the repo root itself: its `plugin.json` lists each `packs/<pack>/skills/` folder, and `agents/` sits at the root — same copy-install premise, expressed in Claude's own plugin format.
|
|
521
|
-
|
|
522
|
-
The eight **pack plugins** work differently, because a plugin's skills have to sit in a `skills/` folder inside the plugin. A role pack's plugin also has to carry `core`'s skills and loops, since a plugin installs on its own and cannot reach outside its folder. Rather than copy `core` into every pack folder on `main`, the marketplace entries use Claude's `git-subdir` source to point at `packs/<name>/` on a generated [`plugins`](https://github.com/sananthanarayan/skilldrop/tree/plugins) branch, rebuilt by CI on every push to main, where each pack is assembled with `core` folded in. You still only ever type the one `marketplace add`. A pack carries the reviewer subagents its own skills delegate to, so `dev-team` brings the review panel and `sre-oncall` does not.
|
|
523
|
-
|
|
524
|
-
`.claude-plugin/{marketplace,plugin}.json` are generated from `package.json` + the `packs/` folders by [`build_marketplace.py`](build_marketplace.py) (`--check` guards drift in CI; `--dist` renders the branch). Use the CLI above when you want per-skill granularity, another IDE, or hooks; use the marketplace when you're in Claude Code. Rationale: [RFC-0027](docs/rfcs/0027-retire-agentbundle-export.md).
|
|
525
|
-
|
|
526
|
-
### Everything else about installing
|
|
527
|
-
|
|
528
|
-
The long-form install material moved to [`guides/`](guides/) so this page stays scannable:
|
|
529
|
-
|
|
530
|
-
| If you want to | Read |
|
|
531
|
-
|---|---|
|
|
532
|
-
| Install by hand into a specific IDE | [Install a skill into your IDE](guides/how-to/install-per-ide.md) |
|
|
533
|
-
| Wire a skill to an event (opt-in hooks) | [Wire a skill to an event](guides/how-to/wire-a-hook.md) |
|
|
534
|
-
| Publish your own catalogue for `--from` | [Publish your own catalogue](guides/how-to/publish-a-catalogue.md) |
|
|
535
|
-
| Use the two skills that ship scripts | [Skills that ship scripts](guides/reference/skills-with-scripts.md) |
|
|
536
|
-
| Add a skill or a loop to this repo | [Author a skill](guides/how-to/author-a-skill.md) · [Author a loop](guides/how-to/author-a-loop.md) |
|
|
537
|
-
| Understand why it is built this way | [Why loops](guides/explanation/loops.md) · [ARCHITECTURE.md](ARCHITECTURE.md) |
|
|
538
|
-
| See one change go through the loops | [Follow one change through the loops](guides/tutorial/follow-a-change-through-the-loops.md) |
|
|
539
|
-
| Point a model at this repo | [`llms.txt`](llms.txt) — a generated index so a tool reads the few relevant pages instead of the tree |
|
|
540
|
-
|
|
541
|
-
### Reviewer subagents
|
|
542
|
-
|
|
543
|
-
Three personas you delegate review to, rather than invoke as a skill: [`devils-advocate`](agents/devils-advocate.md) ("will this break?"), [`code-quality`](agents/code-quality.md) ("will the next engineer hate this?") and [`security-reviewer`](agents/security-reviewer.md) ("how would someone abuse this?"). A subagent runs in its own context with its own tool allowlist — a contract a skill can't express — which is why they live in [`agents/`](agents/) instead of a pack's `skills/`.
|
|
544
|
-
|
|
545
|
-
```bash
|
|
546
|
-
npx skilldrop-cli agents # list them
|
|
547
|
-
npx skilldrop-cli install --agent devils-advocate # ~/.claude/agents/
|
|
548
|
-
npx skilldrop-cli install --agent code-quality --project # .claude/agents/, shared with the repo
|
|
37
|
+
Is this branch safe to merge? Run a pre-merge review on the current diff.
|
|
549
38
|
```
|
|
550
39
|
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
Six targets, each projecting only as much as the tool's format demands:
|
|
554
|
-
|
|
555
|
-
| Target | Writes | Projection |
|
|
556
|
-
|---|---|---|
|
|
557
|
-
| *(default)* | `~/.claude/agents/<name>.md` | none — the file already is Claude Code's format |
|
|
558
|
-
| `--ide copilot` | `.github/agents/<name>.agent.md` | a rename |
|
|
559
|
-
| `--ide kiro` | `.kiro/agents/<name>.json` | generated JSON; tool names mapped to Kiro's built-ins |
|
|
560
|
-
| `--ide codex` | `~/.codex/agents/<name>.toml` (`--project` for repo) | generated TOML |
|
|
561
|
-
| `--ide antigravity` | `~/.gemini/config/agents/<name>.md` (`--project` → `.agents/agents/`) | frontmatter rewritten, `subagent: true` added |
|
|
562
|
-
| `--dest <dir>` | `<dir>/<name>.md` | none |
|
|
563
|
-
|
|
564
|
-
The Kiro emitter maps `Read`/`Grep`/`Glob`/`Bash` to `read`/`grep`/`glob`/`shell` against [Kiro's built-in tool reference](https://kiro.dev/docs/cli/reference/built-in-tools/), and **names any tool it can't map instead of dropping it silently** — a mistranslated permission is worse than a missing one. It omits `allowedTools` so you're prompted per tool call.
|
|
565
|
-
|
|
566
|
-
Each generated target omits the permission field it cannot map safely rather than guessing one: Kiro's `allowedTools` and Codex's `sandbox_mode` are both left unset, so an agent inherits the session's permissions and is prompted per call. A widened permission nobody asked for is worse than an extra prompt.
|
|
40
|
+
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>`.
|
|
567
41
|
|
|
568
|
-
|
|
42
|
+
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.
|
|
569
43
|
|
|
570
|
-
##
|
|
44
|
+
## How it works
|
|
571
45
|
|
|
572
|
-
|
|
46
|
+
- **A skill produces one file you own.** Each ships a quality bar, named anti-patterns and acceptance evals, so the output is an artifact, not a conversation. See [every skill, by category](guides/reference/skill-catalogue.md).
|
|
47
|
+
- **Loops order skills, and a gate decides when work moves on.** Five loops cover the lifecycle (`discover`, `design`, `build`, `release`, `operate`), plus the `ship-a-draft` wrapper for any document. Each gate is a script, a review panel or a person, chosen by how expensive the mistake is to undo. See [the loops, stage by stage](guides/reference/loops.md) and [why loops](guides/explanation/loops.md).
|
|
48
|
+
- **Copy, never transform.** A skill is a plain `SKILL.md` folder in the [Agent Skills](https://agentskills.io) format, at `packs/<pack>/skills/<name>/`. What runs in your agent is byte-identical to what is reviewed here. There is no runtime, and the tooling has zero dependencies.
|
|
49
|
+
- **Updates keep your edits.** `npx skilldrop-cli update` replaces files you haven't touched. For any file you changed, it leaves the new version beside it as `<file>.upstream`. See [upgrade installed skills](guides/how-to/upgrade-skills.md).
|
|
573
50
|
|
|
574
|
-
|
|
575
|
-
|---|---|---|
|
|
576
|
-
| [`devils-advocate`](agents/devils-advocate.md) | Correctness — edge cases, broken assumptions, staff-engineer pushback, test gaps | "Will this break?" |
|
|
577
|
-
| [`code-quality`](agents/code-quality.md) | Craft — naming, structure, duplication, complexity, readability | "Will the next engineer hate this?" |
|
|
578
|
-
| [`security-reviewer`](agents/security-reviewer.md) | Exploitability — injection, authz gaps, secret handling, unsafe deserialisation | "How would someone abuse this?" |
|
|
51
|
+
## Go deeper
|
|
579
52
|
|
|
580
|
-
|
|
53
|
+
- **Use it:** [docs portal](https://sananthanarayan.github.io/skilldrop/docs/) · [install in any IDE](guides/how-to/install-per-ide.md) · [profiles](guides/how-to/profiles.md) · [hooks](guides/how-to/wire-a-hook.md) · [publish your own catalogue](guides/how-to/publish-a-catalogue.md)
|
|
54
|
+
- **Reviewers:** three subagents that push back on generated work: `devils-advocate`, `security-reviewer` and `code-quality`. See [`agents/`](agents/README.md).
|
|
55
|
+
- **Cost:** each skill declares a provider-neutral model tier (`light`, `standard` or `heavy`). See [MODEL-ROUTING.md](MODEL-ROUTING.md).
|
|
56
|
+
- **How it is built:** [ARCHITECTURE.md](ARCHITECTURE.md) · [machine-readable contracts](contracts/) · [decision records](docs/rfcs/) · [`llms.txt`](llms.txt) for tools
|
|
57
|
+
- **Contribute:** [CONTRIBUTING.md](CONTRIBUTING.md) · [author a skill](guides/how-to/author-a-skill.md) · [author a loop](guides/how-to/author-a-loop.md) · [repository conventions](AGENTS.md)
|
|
581
58
|
|
|
582
59
|
## License
|
|
583
60
|
|