skilldrop-cli 0.12.2 → 0.13.1
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 +61 -6
- package/bin/skilldrop.js +56 -1
- package/loops/release/LOOP.md +76 -0
- package/loops/release/loop.json +47 -0
- package/model-routing.json +258 -63
- package/package.json +1 -1
- package/packs.json +31 -6
- package/skills/contribution-wizard/SKILL.md +132 -0
- package/skills/contribution-wizard/manifest.json +11 -0
- package/skills/eval-harness-generator/SKILL.md +84 -0
- package/skills/eval-harness-generator/manifest.json +11 -0
- package/skills/launch-readiness/SKILL.md +95 -0
- package/skills/launch-readiness/evals/eval_queries.json +10 -0
- package/skills/launch-readiness/evals/evals.json +19 -0
- package/skills/launch-readiness/examples/schema-change-revise.md +54 -0
- package/skills/launch-readiness/manifest.json +24 -0
- package/skills/launch-readiness/templates/readiness-report.md +41 -0
- package/skills/prompt-caching-advisor/SKILL.md +90 -0
- package/skills/prompt-caching-advisor/manifest.json +11 -0
- package/skills/token-budget-estimator/SKILL.md +75 -0
- package/skills/token-budget-estimator/manifest.json +11 -0
- package/skills/tool-use-schema-writer/SKILL.md +111 -0
- package/skills/tool-use-schema-writer/manifest.json +11 -0
package/model-routing.json
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
{
|
|
2
|
-
"$comment": "Provider-neutral, cost-aware model routing for skilldrop skills. Skills declare an ABSTRACT tier (light/standard/heavy) describing how much reasoning the task needs. The `providers` map resolves that tier to a concrete model for whatever tool you use (Claude Code, Cursor, Codex, Kiro, ...). Set `active_provider` to your tool. Tier is decided ONCE per skill (the decision is stable), not re-derived per call
|
|
2
|
+
"$comment": "Provider-neutral, cost-aware model routing for skilldrop skills. Skills declare an ABSTRACT tier (light/standard/heavy) describing how much reasoning the task needs. The `providers` map resolves that tier to a concrete model for whatever tool you use (Claude Code, Cursor, Codex, Kiro, ...). Set `active_provider` to your tool. Tier is decided ONCE per skill (the decision is stable), not re-derived per call \u2014 that keeps routing free. Runtime heuristics in `escalation_rules` handle the cases that actually vary.",
|
|
3
3
|
"version": "0.2.0",
|
|
4
4
|
"active_provider": "claude-code",
|
|
5
5
|
"tiers": {
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"standard": "<your default model>",
|
|
35
35
|
"heavy": "<your most capable model>"
|
|
36
36
|
},
|
|
37
|
-
"select_via": "Pick the model in the chat/composer model dropdown before invoking the skill. Cursor rules cannot switch models programmatically
|
|
37
|
+
"select_via": "Pick the model in the chat/composer model dropdown before invoking the skill. Cursor rules cannot switch models programmatically \u2014 this is a manual lookup.",
|
|
38
38
|
"automation": null,
|
|
39
39
|
"note": "Cursor exposes whatever models your plan enables (Claude, GPT, Gemini). Fill in the three you actually use."
|
|
40
40
|
},
|
|
@@ -47,7 +47,7 @@
|
|
|
47
47
|
},
|
|
48
48
|
"select_via": "Set the model via the Codex `--model` flag or its config before running the skill.",
|
|
49
49
|
"automation": null,
|
|
50
|
-
"note": "Fill in with the model identifiers your Codex install accepts. Model names change
|
|
50
|
+
"note": "Fill in with the model identifiers your Codex install accepts. Model names change \u2014 verify against `codex --help` / your config."
|
|
51
51
|
},
|
|
52
52
|
"kiro": {
|
|
53
53
|
"label": "Kiro",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"escalation_rules": [
|
|
74
74
|
{
|
|
75
75
|
"id": "large-input",
|
|
76
|
-
"rule": "Escalate one tier (light
|
|
76
|
+
"rule": "Escalate one tier (light\u2192standard, standard\u2192heavy) when the input the skill must reason over exceeds ~30 pages / ~20k words / ~15 source files. Large context degrades small models faster than large ones.",
|
|
77
77
|
"type": "heuristic_no_llm"
|
|
78
78
|
},
|
|
79
79
|
{
|
|
@@ -88,7 +88,7 @@
|
|
|
88
88
|
},
|
|
89
89
|
{
|
|
90
90
|
"id": "downgrade-trivial",
|
|
91
|
-
"rule": "Downgrade one tier (never below 'light', never below the skill's declared floor) when the input is tiny and templated
|
|
91
|
+
"rule": "Downgrade one tier (never below 'light', never below the skill's declared floor) when the input is tiny and templated \u2014 e.g. a one-paragraph brief into adr-generator, a 3-line note into decision-log.",
|
|
92
92
|
"type": "heuristic_no_llm"
|
|
93
93
|
},
|
|
94
94
|
{
|
|
@@ -98,62 +98,257 @@
|
|
|
98
98
|
}
|
|
99
99
|
],
|
|
100
100
|
"skills": {
|
|
101
|
-
"audience-profile": {
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
"
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
"
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
"
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
"
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
"
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
"
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
"
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
"
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
"
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
"
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
"
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
"
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
"
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
"
|
|
101
|
+
"audience-profile": {
|
|
102
|
+
"tier": "light",
|
|
103
|
+
"rationale": "Maps a fixed set of audience archetypes to structural rules. Lookup against a rubric, not synthesis."
|
|
104
|
+
},
|
|
105
|
+
"decision-log": {
|
|
106
|
+
"tier": "light",
|
|
107
|
+
"rationale": "Extracts decisions/owners/dates from notes. Pattern extraction; escalate on long transcripts via large-input rule."
|
|
108
|
+
},
|
|
109
|
+
"sonar-onboard": {
|
|
110
|
+
"tier": "light",
|
|
111
|
+
"rationale": "Scaffolds config from detected language + a template. Deterministic fill-in; little judgment."
|
|
112
|
+
},
|
|
113
|
+
"adr-generator": {
|
|
114
|
+
"tier": "standard",
|
|
115
|
+
"rationale": "Structures a decision into MADR/Nygard. Some judgment on title/consequences; not adversarial."
|
|
116
|
+
},
|
|
117
|
+
"architecture-diagrams": {
|
|
118
|
+
"tier": "standard",
|
|
119
|
+
"rationale": "Translates prose to diagram syntax. Correctness matters; reasoning is bounded."
|
|
120
|
+
},
|
|
121
|
+
"brief-intake": {
|
|
122
|
+
"tier": "standard",
|
|
123
|
+
"rationale": "Extraction + tagging [explicit]/[implied]/[inferred]. The tagging needs care \u2014 above light, below heavy."
|
|
124
|
+
},
|
|
125
|
+
"deck-builder": {
|
|
126
|
+
"tier": "standard",
|
|
127
|
+
"rationale": "Shapes content, maps a brand template's layouts, and runs a script. Judgment, not hard reasoning."
|
|
128
|
+
},
|
|
129
|
+
"design-doc": {
|
|
130
|
+
"tier": "standard",
|
|
131
|
+
"rationale": "Synthesizes a design doc from a brief. Escalate to heavy via large-input or ambiguous-input when alternatives are genuinely contested."
|
|
132
|
+
},
|
|
133
|
+
"exec-summary": {
|
|
134
|
+
"tier": "standard",
|
|
135
|
+
"rationale": "Compression to one page. Needs to keep the right signal; escalate on very long source docs."
|
|
136
|
+
},
|
|
137
|
+
"figma-diagrams": {
|
|
138
|
+
"tier": "standard",
|
|
139
|
+
"rationale": "API calls + spec generation. Bounded transformation."
|
|
140
|
+
},
|
|
141
|
+
"guide-builder": {
|
|
142
|
+
"tier": "standard",
|
|
143
|
+
"rationale": "Shapes notes into a styled guide. Generation, not adversarial review."
|
|
144
|
+
},
|
|
145
|
+
"reverse-architecture": {
|
|
146
|
+
"tier": "standard",
|
|
147
|
+
"rationale": "Extracts architecture from code/IaC. Escalate to heavy on large codebases where cross-file inference is heavy."
|
|
148
|
+
},
|
|
149
|
+
"launch-readiness": {
|
|
150
|
+
"tier": "standard",
|
|
151
|
+
"rationale": "Checks evidence against a fixed checklist. Bounded synthesis, not adversarial review."
|
|
152
|
+
},
|
|
153
|
+
"runbook-generator": {
|
|
154
|
+
"tier": "standard",
|
|
155
|
+
"rationale": "Operational doc from service facts. Bounded synthesis."
|
|
156
|
+
},
|
|
157
|
+
"slide-outliner": {
|
|
158
|
+
"tier": "standard",
|
|
159
|
+
"rationale": "Outlines a deck to a time budget. Structuring, not deep reasoning."
|
|
160
|
+
},
|
|
161
|
+
"sonar-review": {
|
|
162
|
+
"tier": "standard",
|
|
163
|
+
"rationale": "Formats Sonar API findings into a report. The hard analysis is Sonar's; this is synthesis. Escalate on very large diffs."
|
|
164
|
+
},
|
|
165
|
+
"ai-usage-report": {
|
|
166
|
+
"tier": "standard",
|
|
167
|
+
"rationale": "Tabulates telemetry into a report. Mostly mechanical, but the 'AI theater' effectiveness call needs judgment."
|
|
168
|
+
},
|
|
169
|
+
"ai-readiness-assessment": {
|
|
170
|
+
"tier": "standard",
|
|
171
|
+
"rationale": "Scores six fixed dimensions against a rubric and ranks gaps by blocking order. Bounded structured judgment, not adversarial reasoning; escalate via ambiguous-input when the evidence is thin or contested."
|
|
172
|
+
},
|
|
173
|
+
"agent-adoption-stage": {
|
|
174
|
+
"tier": "standard",
|
|
175
|
+
"rationale": "Places a team on a fixed 5-stage ladder from observables and routes one unlock. Bounded diagnosis against a rubric; escalate via ambiguous-input when the observables are contradictory or the distribution is heavily skewed."
|
|
176
|
+
},
|
|
177
|
+
"ai-use-case-triage": {
|
|
178
|
+
"tier": "standard",
|
|
179
|
+
"rationale": "Scores candidates on weighted axes and forces a rejection list. Structured comparison with stated weights; escalate via ambiguous-input when candidates are numerous or the value data is contested."
|
|
180
|
+
},
|
|
181
|
+
"ai-adoption-rollout": {
|
|
182
|
+
"tier": "standard",
|
|
183
|
+
"rationale": "Generates a phased people-rollout with gates and enablement from a stated tool and population. Structured planning against a fixed shape; escalate via ambiguous-input for large or politically contested rollouts."
|
|
184
|
+
},
|
|
185
|
+
"ai-usage-policy": {
|
|
186
|
+
"tier": "standard",
|
|
187
|
+
"rationale": "Drafts a policy document against a fixed structure (tiers, behaviours, review matrix, exception route). Bounded generation; escalate via ambiguous-input where a regulatory regime is named or contested."
|
|
188
|
+
},
|
|
189
|
+
"feature-implement-loop": {
|
|
190
|
+
"tier": "standard",
|
|
191
|
+
"rationale": "Code + test generation against acceptance criteria. The adversarial pass delegates to devils-advocate (heavy) where available; the loop itself is generation."
|
|
192
|
+
},
|
|
193
|
+
"pre-merge-review": {
|
|
194
|
+
"tier": "standard",
|
|
195
|
+
"rationale": "Orchestration: runs a deterministic gate script, dispatches the (heavy) reviewer subagents, and renders a rule-based go/no-go. The adversarial reasoning is delegated to the panel, so the skill itself is coordination."
|
|
196
|
+
},
|
|
197
|
+
"user-story-splitter": {
|
|
198
|
+
"tier": "standard",
|
|
199
|
+
"rationale": "Decomposes an epic into INVEST slices with testable ACs. Structured synthesis; escalation rules cover large or contradictory PRDs."
|
|
200
|
+
},
|
|
201
|
+
"test-plan-generator": {
|
|
202
|
+
"tier": "standard",
|
|
203
|
+
"rationale": "Synthesizes a structured plan from a change description. Risk ranking needs judgment but is bounded; escalate via ambiguous-input on contested or high-stakes releases."
|
|
204
|
+
},
|
|
205
|
+
"release-notes": {
|
|
206
|
+
"tier": "standard",
|
|
207
|
+
"rationale": "Classifies commits and rewrites them for a reader. The audience translation needs judgment; escalate via large-input on very long ranges."
|
|
208
|
+
},
|
|
209
|
+
"postmortem-generator": {
|
|
210
|
+
"tier": "standard",
|
|
211
|
+
"rationale": "Synthesizes a structured doc from incident notes. Contributing-factor chains need judgment but are bounded; escalate via large-input on huge scrollbacks."
|
|
212
|
+
},
|
|
213
|
+
"migration-plan": {
|
|
214
|
+
"tier": "standard",
|
|
215
|
+
"rationale": "Phased plan synthesis with a strong template. Ordering judgment is bounded by the expand/migrate/contract pattern; escalate via ambiguous-input on contested, high-stakes cutovers."
|
|
216
|
+
},
|
|
217
|
+
"api-contract-draft": {
|
|
218
|
+
"tier": "standard",
|
|
219
|
+
"rationale": "Schema synthesis against fixed conventions. The resource modeling needs judgment; the conventions bound it. Escalate via ambiguous-input on contested multi-team contracts."
|
|
220
|
+
},
|
|
221
|
+
"bug-triage": {
|
|
222
|
+
"tier": "standard",
|
|
223
|
+
"rationale": "Extraction plus judgment calls (severity vs priority, hypothesis ranking) \u2014 same shape as brief-intake: above light, below heavy."
|
|
224
|
+
},
|
|
225
|
+
"prd-draft": {
|
|
226
|
+
"tier": "standard",
|
|
227
|
+
"rationale": "Synthesizes a structured requirements doc from a brief. The solution-language discipline needs care; bounded by the template. Escalate via ambiguous-input on contested scope."
|
|
228
|
+
},
|
|
229
|
+
"nfr-spec": {
|
|
230
|
+
"tier": "standard",
|
|
231
|
+
"rationale": "Rubric-driven sweep with archetype defaults; the judgment is calibrating targets to business reality. Bounded by the catalog; escalate via ambiguous-input on contested SLOs."
|
|
232
|
+
},
|
|
233
|
+
"success-metrics": {
|
|
234
|
+
"tier": "standard",
|
|
235
|
+
"rationale": "Structured measurement design; the primary-metric and counter-metric choices need judgment but the template bounds it. Escalate via ambiguous-input when the goal itself is contested."
|
|
236
|
+
},
|
|
237
|
+
"requirements-interview": {
|
|
238
|
+
"tier": "standard",
|
|
239
|
+
"rationale": "Question banks are rubric-shaped, but ranking by design impact and deriving falsification conditions for the specific feature is synthesis \u2014 above light."
|
|
240
|
+
},
|
|
241
|
+
"business-case": {
|
|
242
|
+
"tier": "heavy",
|
|
243
|
+
"rationale": "Weighted multi-option judgment with a committal recommendation \u2014 same failure mode as tech-comparison-matrix: cheaper models mis-weight costs, inflate benefits, and miss the flip-assumption. Never downgrade."
|
|
244
|
+
},
|
|
245
|
+
"incident-comms": {
|
|
246
|
+
"tier": "standard",
|
|
247
|
+
"rationale": "Audience-segmented message generation under a strict don't-retract discipline. Same shape as exec-summary/audience-profile \u2014 translation and altitude, not adversarial reasoning."
|
|
248
|
+
},
|
|
249
|
+
"data-contract": {
|
|
250
|
+
"tier": "standard",
|
|
251
|
+
"rationale": "Schema + SLA synthesis against fixed quality dimensions and an evolution matrix. Semantics capture needs care; bounded by the catalog. Escalate via large-input on wide schemas."
|
|
252
|
+
},
|
|
253
|
+
"llm-eval-harness": {
|
|
254
|
+
"tier": "standard",
|
|
255
|
+
"rationale": "Methodology synthesis against a fixed decision tree and pitfall catalog. Grading-method and metric choices need judgment but are bounded; escalate via ambiguous-input on novel task types."
|
|
256
|
+
},
|
|
257
|
+
"capacity-cost-model": {
|
|
258
|
+
"tier": "standard",
|
|
259
|
+
"rationale": "Quantitative projection from a demand model against a fixed cost catalog. Headroom and scaling-cliff judgment is bounded by the reference; escalate via ambiguous-input on novel architectures."
|
|
260
|
+
},
|
|
261
|
+
"accessibility-audit": {
|
|
262
|
+
"tier": "heavy",
|
|
263
|
+
"rationale": "Adversarial review against WCAG success criteria \u2014 cheaper models fault alt-text presence over quality, under-call severity, miss focus-order/name-role-value issues, and claim AT passes from screenshots. Never downgrade."
|
|
264
|
+
},
|
|
265
|
+
"db-schema-design": {
|
|
266
|
+
"tier": "standard",
|
|
267
|
+
"rationale": "Design synthesis from access patterns against a fixed paradigm/indexing/anti-pattern reference. Paradigm and denormalization judgment is bounded; escalate via ambiguous-input on contested scale/consistency tradeoffs."
|
|
268
|
+
},
|
|
269
|
+
"observability-plan": {
|
|
270
|
+
"tier": "standard",
|
|
271
|
+
"rationale": "Methodology synthesis against fixed SRE practices (golden signals, burn-rate alerting, pillar split). SLO calibration needs judgment but is bounded; escalate via ambiguous-input on contested reliability targets."
|
|
272
|
+
},
|
|
273
|
+
"council-review": {
|
|
274
|
+
"tier": "heavy",
|
|
275
|
+
"rationale": "Multi-perspective deliberation + weighted reconciliation across distinct expert seats. Cheaper models collapse the seats into one voice and either manufacture or miss the real cruxes. Never downgrade."
|
|
276
|
+
},
|
|
277
|
+
"devils-advocate": {
|
|
278
|
+
"tier": "heavy",
|
|
279
|
+
"rationale": "Adversarial code review across four lenses. Cheaper models miss edge cases and under-call severity \u2014 the whole value is the hard thinking. Never downgrade."
|
|
280
|
+
},
|
|
281
|
+
"output-hygiene": {
|
|
282
|
+
"tier": "standard",
|
|
283
|
+
"rationale": "The mechanical pass is a deterministic script; the model does bounded rewriting of flagged prose against a fixed tell list, not adversarial review."
|
|
284
|
+
},
|
|
285
|
+
"doc-critique": {
|
|
286
|
+
"tier": "heavy",
|
|
287
|
+
"rationale": "Adversarial doc review against rubrics. Same as devils-advocate: the value is catching what a fast pass misses. Never downgrade."
|
|
288
|
+
},
|
|
289
|
+
"tech-comparison-matrix": {
|
|
290
|
+
"tier": "heavy",
|
|
291
|
+
"rationale": "Weighted multi-criteria judgment with a recommendation. Mis-weighting is the failure mode; heavy is worth it. Never downgrade."
|
|
292
|
+
},
|
|
293
|
+
"threat-model": {
|
|
294
|
+
"tier": "heavy",
|
|
295
|
+
"rationale": "Adversarial reasoning over a design \u2014 cheaper models emit checklist residue, miss authz/insider paths, and inflate severity. Never downgrade."
|
|
296
|
+
},
|
|
297
|
+
"prfaq": {
|
|
298
|
+
"tier": "standard",
|
|
299
|
+
"rationale": "Synthesizes a press release and FAQs from a product concept against a fixed format. The specificity discipline needs care but the template bounds it; escalate via ambiguous-input when the concept itself is contested."
|
|
300
|
+
},
|
|
301
|
+
"okr-cascade": {
|
|
302
|
+
"tier": "standard",
|
|
303
|
+
"rationale": "Structured derivation against a fixed roll-up discipline; the causal-sentence and gap judgments need care but the template bounds them. Escalate via ambiguous-input when the company objectives themselves are contested."
|
|
304
|
+
},
|
|
305
|
+
"user-journey-map": {
|
|
306
|
+
"tier": "standard",
|
|
307
|
+
"rationale": "Structured synthesis into a fixed four-row stage model plus bounded ranking judgment. Escalate via ambiguous-input when the persona or outcome is contested or research inputs conflict."
|
|
308
|
+
},
|
|
309
|
+
"strategy-analysis": {
|
|
310
|
+
"tier": "heavy",
|
|
311
|
+
"rationale": "Framework selection plus evidenced multi-factor judgment ending in a ranked, committal verdict. Cheaper models fill cells with generic filler, skip the TOWS crossings, and refuse to take a side. Never downgrade."
|
|
312
|
+
},
|
|
313
|
+
"agent-loop-design": {
|
|
314
|
+
"tier": "standard",
|
|
315
|
+
"rationale": "Design synthesis against a fixed state-machine pattern and exit-criteria catalog. The gate-placement judgment is bounded by the blast-radius rule; escalate via ambiguous-input when the task itself is contested."
|
|
316
|
+
},
|
|
317
|
+
"subagent-design": {
|
|
318
|
+
"tier": "standard",
|
|
319
|
+
"rationale": "Design synthesis against a fixed topology catalog and role-card template. The fan-out-or-refuse judgment is bounded by the three-reasons rule; escalate via ambiguous-input on genuinely novel workflow shapes."
|
|
320
|
+
},
|
|
321
|
+
"agent-budget": {
|
|
322
|
+
"tier": "standard",
|
|
323
|
+
"rationale": "Quantitative spec synthesis against a fixed tier vocabulary and degradation ladder. Cap-setting judgment is bounded by the 3-5x rule; escalate via ambiguous-input when the workflow itself is undefined."
|
|
324
|
+
},
|
|
325
|
+
"agents-md-generator": {
|
|
326
|
+
"tier": "standard",
|
|
327
|
+
"rationale": "Repo inspection plus synthesis against a fixed section order and line budget \u2014 the same shape as reverse-architecture. The judgment is the counterfactual test on each convention line, which is bounded; escalate via large-input on monorepos."
|
|
328
|
+
},
|
|
329
|
+
"agent-threat-model": {
|
|
330
|
+
"tier": "heavy",
|
|
331
|
+
"rationale": "Adversarial reasoning over a capability graph \u2014 the judgment is which mitigations are architectural versus theatrical, and that call is exactly where a weaker model produces a confident wrong answer. Never downgraded."
|
|
332
|
+
},
|
|
333
|
+
"prompt-caching-advisor": {
|
|
334
|
+
"tier": "standard",
|
|
335
|
+
"rationale": "Structural analysis of prompt with threshold arithmetic and pattern matching \u2014 above light, no need for heavy."
|
|
336
|
+
},
|
|
337
|
+
"token-budget-estimator": {
|
|
338
|
+
"tier": "standard",
|
|
339
|
+
"rationale": "Arithmetic breakdown plus heuristic judgment on dominant cost drivers \u2014 standard fits."
|
|
340
|
+
},
|
|
341
|
+
"eval-harness-generator": {
|
|
342
|
+
"tier": "standard",
|
|
343
|
+
"rationale": "Reads a SKILL.md and synthesizes eval cases \u2014 requires understanding of skill intent but not heavy reasoning."
|
|
344
|
+
},
|
|
345
|
+
"tool-use-schema-writer": {
|
|
346
|
+
"tier": "standard",
|
|
347
|
+
"rationale": "Schema generation from natural-language description \u2014 structured output task that fits standard tier."
|
|
348
|
+
},
|
|
349
|
+
"contribution-wizard": {
|
|
350
|
+
"tier": "standard",
|
|
351
|
+
"rationale": "Intake plus structured generation \u2014 standard tier covers template-filling and schema-adherence judgment."
|
|
352
|
+
}
|
|
158
353
|
}
|
|
159
|
-
}
|
|
354
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skilldrop-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.13.1",
|
|
4
4
|
"description": "Portable AI-agent skills for the deliverables knowledge workers ship \u2014 diagrams, ADRs, PRDs, runbooks, decks, reviews \u2014 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",
|
package/packs.json
CHANGED
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
},
|
|
47
47
|
"dev-team": {
|
|
48
48
|
"description": "Build-and-ship loop: story implementation with adversarial review, test plans, triage, migrations, release notes, agent-policy files, and code-quality gates.",
|
|
49
|
-
"loops": ["build", "ship-a-draft"],
|
|
49
|
+
"loops": ["build", "release", "ship-a-draft"],
|
|
50
50
|
"skills": [
|
|
51
51
|
"agents-md-generator",
|
|
52
52
|
"user-story-splitter",
|
|
@@ -61,18 +61,21 @@
|
|
|
61
61
|
"sonar-onboard",
|
|
62
62
|
"sonar-review",
|
|
63
63
|
"accessibility-audit",
|
|
64
|
-
"output-hygiene"
|
|
64
|
+
"output-hygiene",
|
|
65
|
+
"contribution-wizard",
|
|
66
|
+
"launch-readiness"
|
|
65
67
|
]
|
|
66
68
|
},
|
|
67
69
|
"sre-oncall": {
|
|
68
70
|
"description": "Operate the service: runbooks, observability design, incident communications, postmortems, and capacity/cost models.",
|
|
69
|
-
"loops": ["operate"],
|
|
71
|
+
"loops": ["release", "operate"],
|
|
70
72
|
"skills": [
|
|
71
73
|
"runbook-generator",
|
|
72
74
|
"observability-plan",
|
|
73
75
|
"incident-comms",
|
|
74
76
|
"postmortem-generator",
|
|
75
|
-
"capacity-cost-model"
|
|
77
|
+
"capacity-cost-model",
|
|
78
|
+
"launch-readiness"
|
|
76
79
|
]
|
|
77
80
|
},
|
|
78
81
|
"stakeholder-comms": {
|
|
@@ -107,6 +110,16 @@
|
|
|
107
110
|
"ai-usage-policy",
|
|
108
111
|
"agent-adoption-stage"
|
|
109
112
|
]
|
|
113
|
+
},
|
|
114
|
+
"claude-api": {
|
|
115
|
+
"description": "Skills for teams building on the Anthropic API — prompt caching, token budgeting, eval generation for skills, and tool-use schema writing.",
|
|
116
|
+
"loops": [],
|
|
117
|
+
"skills": [
|
|
118
|
+
"prompt-caching-advisor",
|
|
119
|
+
"token-budget-estimator",
|
|
120
|
+
"eval-harness-generator",
|
|
121
|
+
"tool-use-schema-writer"
|
|
122
|
+
]
|
|
110
123
|
}
|
|
111
124
|
},
|
|
112
125
|
"outcomes": {
|
|
@@ -159,7 +172,18 @@
|
|
|
159
172
|
"test-plan-generator",
|
|
160
173
|
"bug-triage",
|
|
161
174
|
"agents-md-generator",
|
|
162
|
-
"llm-eval-harness"
|
|
175
|
+
"llm-eval-harness",
|
|
176
|
+
"eval-harness-generator",
|
|
177
|
+
"contribution-wizard"
|
|
178
|
+
]
|
|
179
|
+
},
|
|
180
|
+
"build-on-the-claude-api": {
|
|
181
|
+
"description": "Skills for teams building directly on the Anthropic API — prompt caching strategy, token budgeting, eval generation, and tool-use schema writing.",
|
|
182
|
+
"skills": [
|
|
183
|
+
"prompt-caching-advisor",
|
|
184
|
+
"token-budget-estimator",
|
|
185
|
+
"eval-harness-generator",
|
|
186
|
+
"tool-use-schema-writer"
|
|
163
187
|
]
|
|
164
188
|
},
|
|
165
189
|
"run-and-recover-the-service": {
|
|
@@ -169,7 +193,8 @@
|
|
|
169
193
|
"observability-plan",
|
|
170
194
|
"release-notes",
|
|
171
195
|
"incident-comms",
|
|
172
|
-
"postmortem-generator"
|
|
196
|
+
"postmortem-generator",
|
|
197
|
+
"launch-readiness"
|
|
173
198
|
]
|
|
174
199
|
},
|
|
175
200
|
"explain-it-to-decision-makers": {
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: contribution-wizard
|
|
3
|
+
description: Guides an author through creating a new skilldrop skill from scratch — generates the manifest, SKILL.md, eval cases, and README entry from a plain-language description of the skill's purpose. Use when authoring a new skill for this repo or a private fork, ensuring a new skill meets the schema and validation requirements before submission.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# contribution-wizard
|
|
7
|
+
|
|
8
|
+
Walks an author through the full arc of creating a new skilldrop skill: intake → manifest + SKILL.md + evals + README entry. The output is copy-paste-ready — the author drops the files into `skills/<name>/` and runs `python3 validate.py` to confirm before opening a PR.
|
|
9
|
+
|
|
10
|
+
## How to respond
|
|
11
|
+
|
|
12
|
+
### Step 1 — Intake (ask all at once)
|
|
13
|
+
|
|
14
|
+
Ask these questions in a single block — not one at a time:
|
|
15
|
+
|
|
16
|
+
> **New skill intake**
|
|
17
|
+
>
|
|
18
|
+
> 1. **Purpose**: what does this skill do in one sentence?
|
|
19
|
+
> 2. **Input**: what does the agent receive? (paste, file, structured data, conversational context)
|
|
20
|
+
> 3. **Output**: what does the agent produce? (artifact type, format, length)
|
|
21
|
+
> 4. **Pack**: which role pack does it belong to? (solution-architect / product-manager / dev-team / sre-oncall / stakeholder-comms / ai-engineering / claude-api / new pack)
|
|
22
|
+
> 5. **Is it a gate?** Does it emit a pass/fail verdict, or generate an artifact?
|
|
23
|
+
> 6. **Related skills**: which existing skills does it complement or hand off to?
|
|
24
|
+
> 7. **External deps**: does it need API keys, npm packages, or pip libraries?
|
|
25
|
+
|
|
26
|
+
### Step 2 — Generate all artifacts in one response
|
|
27
|
+
|
|
28
|
+
After intake, produce the following in a single response, each in its own fenced code block:
|
|
29
|
+
|
|
30
|
+
#### `manifest.json`
|
|
31
|
+
|
|
32
|
+
```json
|
|
33
|
+
{
|
|
34
|
+
"name": "<kebab-case-name>",
|
|
35
|
+
"version": "1.0.0",
|
|
36
|
+
"description": "<use-case-first description — what it does, then trigger phrases>",
|
|
37
|
+
"entrypoint": "SKILL.md",
|
|
38
|
+
"deps": { "npm": [], "pip": [] },
|
|
39
|
+
"env": { "required": [], "optional": [] },
|
|
40
|
+
"related": ["<related-skill-1>", "<related-skill-2>"],
|
|
41
|
+
"tags": ["<tag1>", "<tag2>"],
|
|
42
|
+
"model": {
|
|
43
|
+
"tier": "<light|standard|heavy>",
|
|
44
|
+
"rationale": "<one sentence: why this tier fits what the skill does>"
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Tier guidance:
|
|
50
|
+
- **light**: pattern matching, formatting, extraction with no judgment calls
|
|
51
|
+
- **standard**: synthesis, judgment calls, structured output requiring reasoning (most skills)
|
|
52
|
+
- **heavy**: multi-step reasoning with high stakes or adversarial review (gates, threat models)
|
|
53
|
+
|
|
54
|
+
#### `SKILL.md`
|
|
55
|
+
|
|
56
|
+
```markdown
|
|
57
|
+
---
|
|
58
|
+
name: <skill-name>
|
|
59
|
+
description: <same as manifest description>
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
# <skill-name>
|
|
63
|
+
|
|
64
|
+
<One paragraph: what this skill does and why it's useful. Name the problem it solves.>
|
|
65
|
+
|
|
66
|
+
## How to respond
|
|
67
|
+
|
|
68
|
+
<Numbered steps. Each step is an observable action. No vague "reason about X" steps.>
|
|
69
|
+
|
|
70
|
+
## Quality bar
|
|
71
|
+
|
|
72
|
+
<Three to five bullet points: what a good output includes and what it never does. Name anti-patterns explicitly.>
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
#### `evals/cases.json`
|
|
76
|
+
|
|
77
|
+
Eight eval cases covering: 2 happy-path, 2 minimal/edge input, 2 anti-pattern (the quality bar failures), 2 refusal or boundary cases. Format:
|
|
78
|
+
|
|
79
|
+
```json
|
|
80
|
+
[
|
|
81
|
+
{
|
|
82
|
+
"id": "happy-path-standard",
|
|
83
|
+
"trigger": "<realistic input>",
|
|
84
|
+
"expected_shape": ["<checkable criterion 1>", "<checkable criterion 2>"],
|
|
85
|
+
"must_not_include": ["<anti-pattern from quality bar>"],
|
|
86
|
+
"verdict_class": "pass",
|
|
87
|
+
"notes": "<one sentence on what this tests>"
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
#### `README.md` entry
|
|
93
|
+
|
|
94
|
+
One row for the skill table, matching the format of existing rows:
|
|
95
|
+
|
|
96
|
+
```
|
|
97
|
+
| [`<skill-name>`](skills/<skill-name>/SKILL.md) | <One sentence describing what the skill does and the output it produces.> |
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
#### `packs.json` addition
|
|
101
|
+
|
|
102
|
+
State which pack to add the skill to and the exact line to add to the skills array.
|
|
103
|
+
|
|
104
|
+
### Step 3 — Install check reminder
|
|
105
|
+
|
|
106
|
+
After generating, tell the author:
|
|
107
|
+
|
|
108
|
+
```
|
|
109
|
+
Next steps:
|
|
110
|
+
1. mkdir skills/<skill-name> && cd skills/<skill-name>
|
|
111
|
+
2. Drop in manifest.json, SKILL.md, and evals/cases.json
|
|
112
|
+
3. python3 validate.py # must pass before opening a PR
|
|
113
|
+
4. Add the README row to the correct section
|
|
114
|
+
5. Add the skill to packs.json under the right pack
|
|
115
|
+
6. If the skill has a how-to guide, add it to guides/how-to/ and guides/README.md
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
## Anti-patterns
|
|
119
|
+
|
|
120
|
+
- **Generating manifests without checking the schema.** The most common contribution failure is a manifest missing a required field. Always instruct the author to run `python3 validate.py` before opening a PR.
|
|
121
|
+
- **Generating eval triggers that test nothing.** "Run this skill" is not an eval case. Insist on realistic triggers that would expose a specific failure mode if the model got it wrong.
|
|
122
|
+
- **Listing related skills that don't exist.** A manifest that references a non-existent skill fails validation. Instruct the author to run `ls skills/` before finalizing the `related` array.
|
|
123
|
+
|
|
124
|
+
After generating eval cases, the author can use `eval-harness-generator` to add more coverage or to regenerate cases after modifying the SKILL.md.
|
|
125
|
+
|
|
126
|
+
## Quality bar
|
|
127
|
+
|
|
128
|
+
- **Manifests must be schema-valid.** Every field required by `contracts/skill.schema.json` must be present. Use `python3 validate.py` as the check — not a visual review.
|
|
129
|
+
- **Eval triggers are realistic.** A trigger of "use this skill" is not an eval case. Each trigger should be a plausible user input, not a test harness artifact.
|
|
130
|
+
- **SKILL.md has observable steps.** Every step in "How to respond" must describe an action the agent takes — never "think about X" or "consider Y".
|
|
131
|
+
- **The quality bar names anti-patterns.** A quality bar that only says what good looks like doesn't help the agent avoid common failures. Name at least two things the output must never do.
|
|
132
|
+
- **Related skills are real.** Every skill listed in `related` must exist in the skills directory. Run `ls skills/` to check before outputting.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "contribution-wizard",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "Guides an author through creating a new skilldrop skill from scratch — generates the manifest, SKILL.md, eval cases, and README entry from a plain-language description of the skill's purpose. Use when authoring a new skill for this repo or a private fork, ensuring a new skill meets the schema and validation requirements before submission.",
|
|
5
|
+
"entrypoint": "SKILL.md",
|
|
6
|
+
"deps": { "npm": [], "pip": [] },
|
|
7
|
+
"env": { "required": [], "optional": [] },
|
|
8
|
+
"related": ["eval-harness-generator"],
|
|
9
|
+
"tags": ["meta", "authoring", "contribution", "skilldrop-meta"],
|
|
10
|
+
"model": { "tier": "standard", "rationale": "Intake + structured generation — standard tier covers the template-filling and schema-adherence judgment this requires." }
|
|
11
|
+
}
|