skilldrop-cli 0.9.1 → 0.9.2
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 +6 -2
- package/model-routing.json +4 -0
- package/package.json +2 -2
- package/packs.json +8 -3
- package/skills/ai-adoption-rollout/SKILL.md +61 -0
- package/skills/ai-adoption-rollout/evals/eval_queries.json +34 -0
- package/skills/ai-adoption-rollout/evals/evals.json +19 -0
- package/skills/ai-adoption-rollout/manifest.json +33 -0
- package/skills/ai-readiness-assessment/SKILL.md +66 -0
- package/skills/ai-readiness-assessment/evals/eval_queries.json +34 -0
- package/skills/ai-readiness-assessment/evals/evals.json +17 -0
- package/skills/ai-readiness-assessment/manifest.json +34 -0
- package/skills/ai-usage-policy/SKILL.md +67 -0
- package/skills/ai-usage-policy/evals/eval_queries.json +34 -0
- package/skills/ai-usage-policy/evals/evals.json +19 -0
- package/skills/ai-usage-policy/manifest.json +33 -0
- package/skills/ai-use-case-triage/SKILL.md +59 -0
- package/skills/ai-use-case-triage/evals/eval_queries.json +34 -0
- package/skills/ai-use-case-triage/evals/evals.json +18 -0
- package/skills/ai-use-case-triage/manifest.json +34 -0
- package/skills/bug-triage/evals/eval_queries.json +34 -0
- package/skills/bug-triage/evals/evals.json +17 -0
- package/skills/migration-plan/evals/eval_queries.json +34 -0
- package/skills/migration-plan/evals/evals.json +16 -0
- package/skills/test-plan-generator/evals/eval_queries.json +34 -0
- package/skills/test-plan-generator/evals/evals.json +16 -0
- package/skills/user-story-splitter/evals/eval_queries.json +34 -0
- package/skills/user-story-splitter/evals/evals.json +16 -0
package/README.md
CHANGED
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
[](https://www.npmjs.com/package/skilldrop-cli)
|
|
4
4
|
[](LICENSE)
|
|
5
5
|
|
|
6
|
-
**[Browse the catalogue →](https://sananthanarayan.github.io/skilldrop/)** — all
|
|
6
|
+
**[Browse the catalogue →](https://sananthanarayan.github.io/skilldrop/)** — all 55 skills, filterable by pack, tag, and model tier.
|
|
7
7
|
|
|
8
|
-
**
|
|
8
|
+
**55 portable AI-agent skills for the deliverables knowledge workers actually ship** — diagrams, design docs, ADRs, PRDs, runbooks, decks, decision logs, threat models, adversarial reviews — installable into **Claude Code**, **Cursor**, **Kiro**, **Codex**, **GitHub Copilot**, and any AI tool that accepts custom instructions, one skill or one role-based pack at a time:
|
|
9
9
|
|
|
10
10
|
```bash
|
|
11
11
|
npx skilldrop-cli install --pack product-manager # or: solution-architect, dev-team,
|
|
@@ -160,6 +160,10 @@ Designing the agentic systems themselves — the loops, orchestrations, and budg
|
|
|
160
160
|
|
|
161
161
|
| Skill | What it does |
|
|
162
162
|
|---|---|
|
|
163
|
+
| [`ai-readiness-assessment`](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. |
|
|
164
|
+
| [`ai-use-case-triage`](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. |
|
|
165
|
+
| [`ai-adoption-rollout`](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. |
|
|
166
|
+
| [`ai-usage-policy`](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. |
|
|
163
167
|
| [`ai-usage-report`](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. |
|
|
164
168
|
| [`llm-eval-harness`](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. |
|
|
165
169
|
|
package/model-routing.json
CHANGED
|
@@ -114,6 +114,10 @@
|
|
|
114
114
|
"slide-outliner": { "tier": "standard", "rationale": "Outlines a deck to a time budget. Structuring, not deep reasoning." },
|
|
115
115
|
"sonar-review": { "tier": "standard", "rationale": "Formats Sonar API findings into a report. The hard analysis is Sonar's; this is synthesis. Escalate on very large diffs." },
|
|
116
116
|
"ai-usage-report": { "tier": "standard", "rationale": "Tabulates telemetry into a report. Mostly mechanical, but the 'AI theater' effectiveness call needs judgment." },
|
|
117
|
+
"ai-readiness-assessment": { "tier": "standard", "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." },
|
|
118
|
+
"ai-use-case-triage": { "tier": "standard", "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." },
|
|
119
|
+
"ai-adoption-rollout": { "tier": "standard", "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." },
|
|
120
|
+
"ai-usage-policy": { "tier": "standard", "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." },
|
|
117
121
|
"feature-implement-loop": { "tier": "standard", "rationale": "Code + test generation against acceptance criteria. The adversarial pass delegates to devils-advocate (heavy) where available; the loop itself is generation." },
|
|
118
122
|
"pre-merge-review": { "tier": "standard", "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." },
|
|
119
123
|
"user-story-splitter": { "tier": "standard", "rationale": "Decomposes an epic into INVEST slices with testable ACs. Structured synthesis; escalation rules cover large or contradictory PRDs." },
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "skilldrop-cli",
|
|
3
|
-
"version": "0.9.
|
|
4
|
-
"description": "Portable AI-agent skills for the deliverables knowledge workers ship
|
|
3
|
+
"version": "0.9.2",
|
|
4
|
+
"description": "Portable AI-agent skills for the deliverables knowledge workers ship — diagrams, ADRs, PRDs, runbooks, decks, reviews — installable into Claude Code, Cursor, Kiro, and any IDE that takes custom instructions. One command per skill or per role-based pack.",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Sanjay Ananthanarayan",
|
|
7
7
|
"url": "https://github.com/sananthanarayan"
|
package/packs.json
CHANGED
|
@@ -38,7 +38,8 @@
|
|
|
38
38
|
"user-story-splitter",
|
|
39
39
|
"success-metrics",
|
|
40
40
|
"exec-summary",
|
|
41
|
-
"doc-critique"
|
|
41
|
+
"doc-critique",
|
|
42
|
+
"ai-use-case-triage"
|
|
42
43
|
]
|
|
43
44
|
},
|
|
44
45
|
"dev-team": {
|
|
@@ -83,7 +84,7 @@
|
|
|
83
84
|
]
|
|
84
85
|
},
|
|
85
86
|
"ai-engineering": {
|
|
86
|
-
"description": "
|
|
87
|
+
"description": "Adopt and build AI systems: readiness assessment, use-case triage, rollout and acceptable-use policy, plus agent loop design, subagent orchestration, spend budgets, agent security review, eval harnesses, AI-usage reporting, and the data contracts AI pipelines depend on.",
|
|
87
88
|
"skills": [
|
|
88
89
|
"agent-loop-design",
|
|
89
90
|
"subagent-design",
|
|
@@ -91,7 +92,11 @@
|
|
|
91
92
|
"agent-threat-model",
|
|
92
93
|
"llm-eval-harness",
|
|
93
94
|
"ai-usage-report",
|
|
94
|
-
"data-contract"
|
|
95
|
+
"data-contract",
|
|
96
|
+
"ai-readiness-assessment",
|
|
97
|
+
"ai-use-case-triage",
|
|
98
|
+
"ai-adoption-rollout",
|
|
99
|
+
"ai-usage-policy"
|
|
95
100
|
]
|
|
96
101
|
}
|
|
97
102
|
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-adoption-rollout
|
|
3
|
+
description: Plan the human rollout of an AI tool or workflow to an organisation — sized cohorts, enablement per cohort, named champions, a comms plan that states what will not change, and an adoption gate every wave must pass before the next one opens. Use when a tool has been chosen and the question is how it reaches people without stalling or backlash. Do NOT use to phase a technical cutover (that's migration-plan) or to choose which use case to roll out (that's ai-use-case-triage).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ai-adoption-rollout
|
|
7
|
+
|
|
8
|
+
The tool is chosen; the risk now is **people**. This plans the human rollout: who gets it when, what they're taught, who they ask, what they're told, and the observable that must hold before the next cohort opens.
|
|
9
|
+
|
|
10
|
+
Rollouts fail quietly. Licences get assigned, a launch email goes out, usage spikes for a week and decays, and nobody can say which step failed. Every wave here carries a gate so that decay is visible while it's still fixable.
|
|
11
|
+
|
|
12
|
+
## How to respond
|
|
13
|
+
|
|
14
|
+
1. **Restate what's being rolled out, to whom, and the adoption outcome.** Not "increase AI usage" — a behaviour: "support agents draft first responses with assistance on the top 3 categories". Usage is a proxy; the behaviour is the goal. Cap clarifying questions at 2.
|
|
15
|
+
|
|
16
|
+
2. **Design cohorts, smallest first.** Default three waves — **pilot** (5–15 volunteers, highest tolerance) → **early** (one whole team or function, includes sceptics) → **general**. Each cohort names who is in it and *why they're next*: the pilot proves the workflow, the early wave proves it survives people who didn't ask for it. Skipping straight to general is the most common failure and this skill refuses it.
|
|
17
|
+
|
|
18
|
+
3. **Specify enablement per cohort, not one training deck.** What each cohort must be able to *do* before they're counted as enabled — a 30-minute hands-on with their own real task beats an hour of slides. Name the format, the time cost, and who delivers it. Later cohorts get shorter enablement built from what the pilot actually got stuck on.
|
|
19
|
+
|
|
20
|
+
4. **Name champions by role, with a time budget.** One per cohort, with hours protected. An unbudgeted champion is a volunteer who quietly stops answering. State what they own: first-line questions, collecting friction, running the office hour.
|
|
21
|
+
|
|
22
|
+
5. **Write the comms plan — including what will not change.** Three messages: the announcement (what, why, what's in it for the reader), the reassurance (**explicitly: whether this affects headcount, evaluation, or how work is judged**), and the follow-up. Silence on the reassurance point is read as bad news and is the single biggest driver of quiet non-adoption.
|
|
23
|
+
|
|
24
|
+
6. **Put an adoption gate on every wave.** Observable, with a threshold and a bake time, before the next cohort opens. ✅ "≥60% of the pilot used it on a real task in week 2, and no unresolved 🟥 issue in the friction log — hold 1 week." A gate that is "the pilot went well" is not a gate. Each wave also names its **rollback**: what happens if the gate fails — extend, narrow, or stop.
|
|
25
|
+
|
|
26
|
+
7. **Name the friction loop.** Where friction is captured, who triages it weekly, and how a fix reaches the next cohort. A rollout with no feedback path teaches the organisation that complaints go nowhere.
|
|
27
|
+
|
|
28
|
+
## Quality bar
|
|
29
|
+
|
|
30
|
+
- **Cohorts get smaller-to-larger with a stated reason each**, and the plan refuses a single big-bang wave.
|
|
31
|
+
- **Every wave has an adoption gate with an observable, a threshold, and a bake time** — plus a rollback if it fails.
|
|
32
|
+
- **The outcome is a behaviour, not a usage number.** Licences activated is not adoption.
|
|
33
|
+
- **The comms plan states explicitly what will not change** (headcount, evaluation, how work is judged). Omitting it is a defect, not a tone choice.
|
|
34
|
+
- **Champions are roles with protected hours**, never names, and never unbudgeted.
|
|
35
|
+
- **Enablement is per cohort and hands-on with the participant's own work** — a single deck for everyone is the failure mode.
|
|
36
|
+
- **The friction loop names an owner and a cadence.**
|
|
37
|
+
|
|
38
|
+
## When to use this skill
|
|
39
|
+
|
|
40
|
+
- ✅ A tool or AI workflow is chosen and now has to reach real people.
|
|
41
|
+
- ✅ A previous rollout decayed after launch and you're planning the retry.
|
|
42
|
+
- ✅ Leadership wants a timeline with checkpoints rather than a launch date.
|
|
43
|
+
|
|
44
|
+
## When NOT to use this skill
|
|
45
|
+
|
|
46
|
+
- ❌ Phasing a *technical* cutover (schema, API version, datastore) — that's `migration-plan`, which sequences systems, not people.
|
|
47
|
+
- ❌ Choosing which use case to roll out — that's [`ai-use-case-triage`](../ai-use-case-triage/SKILL.md).
|
|
48
|
+
- ❌ Deciding whether the organisation is ready at all — that's [`ai-readiness-assessment`](../ai-readiness-assessment/SKILL.md).
|
|
49
|
+
- ❌ Writing the rules for what may be put into the tool — that's [`ai-usage-policy`](../ai-usage-policy/SKILL.md).
|
|
50
|
+
- ❌ Reporting on adoption that already happened — that's `ai-usage-report`.
|
|
51
|
+
|
|
52
|
+
## Anti-patterns to avoid
|
|
53
|
+
|
|
54
|
+
- ❌ **Big-bang rollout.** Everyone at once means no cohort to learn from and no way to stop. The gate structure exists to prevent exactly this.
|
|
55
|
+
- ❌ **Counting licences as adoption.** Seats assigned, logins, "activated users" — all measure procurement, not behaviour change.
|
|
56
|
+
- ❌ **A launch email as the comms plan.** One announcement with no reassurance and no follow-up is how a rollout gets read as a threat.
|
|
57
|
+
- ❌ **Champions with no time.** Naming an enthusiastic person and adding nothing to their calendar is delegation of blame.
|
|
58
|
+
- ❌ **Training everyone identically.** The pilot's stumbling blocks should shorten the next cohort's enablement; if the deck never changes, nobody was listening.
|
|
59
|
+
- ❌ **A gate with no rollback.** "Proceed if it goes well" is not a decision rule — say what happens when it doesn't.
|
|
60
|
+
|
|
61
|
+
**Non-interactive:** with no user to ask, derive cohorts from the stated org size and tag them `[assumption]`. If the input names no tool or workflow to roll out — only a wish to "drive AI adoption" — emit `BLOCKED: need the specific tool or workflow being rolled out and the population it reaches`.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"query": "Plan how we roll this AI tool out to the org",
|
|
4
|
+
"should_trigger": true
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"query": "How do we drive adoption without a backlash?",
|
|
8
|
+
"should_trigger": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "Design the cohorts and enablement for our AI launch",
|
|
12
|
+
"should_trigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"query": "Our last AI rollout decayed after launch — plan the retry",
|
|
16
|
+
"should_trigger": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"query": "Plan the phased migration of our database schema",
|
|
20
|
+
"should_trigger": false
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"query": "Which use case should we roll out first?",
|
|
24
|
+
"should_trigger": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"query": "Write the rules for what people can put into these tools",
|
|
28
|
+
"should_trigger": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"query": "Report on how much AI our team is using",
|
|
32
|
+
"should_trigger": false
|
|
33
|
+
}
|
|
34
|
+
]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "ai-adoption-rollout",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "We've picked an AI assistant for our 300-person support org. Plan the rollout.",
|
|
7
|
+
"assertions": [
|
|
8
|
+
"Cohorts are sized smallest-first (pilot, early, general) with a stated reason each cohort is next",
|
|
9
|
+
"A single big-bang wave is explicitly refused",
|
|
10
|
+
"Every wave has an adoption gate with an observable, a threshold, and a bake time, plus a rollback if the gate fails",
|
|
11
|
+
"The adoption outcome is stated as a behaviour rather than a usage or licence number",
|
|
12
|
+
"The comms plan explicitly states what will not change regarding headcount, evaluation, or how work is judged",
|
|
13
|
+
"Champions are named as roles with protected hours",
|
|
14
|
+
"Enablement differs per cohort and is hands-on with the participant's own work",
|
|
15
|
+
"A friction loop names an owner and a cadence"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ai-adoption-rollout",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Plan the human rollout of an AI tool or workflow to an organisation — sized cohorts, enablement per cohort, named champions, a comms plan that states what will not change, and an adoption gate every wave must pass before the next one opens. Use when a tool has been chosen and the question is how it reaches people without stalling or backlash. Do NOT use to phase a technical cutover (that's migration-plan) or to choose which use case to roll out (that's ai-use-case-triage).",
|
|
5
|
+
"entrypoint": "SKILL.md",
|
|
6
|
+
"deps": {
|
|
7
|
+
"npm": [],
|
|
8
|
+
"pip": []
|
|
9
|
+
},
|
|
10
|
+
"env": {
|
|
11
|
+
"required": [],
|
|
12
|
+
"optional": []
|
|
13
|
+
},
|
|
14
|
+
"related": [
|
|
15
|
+
"ai-readiness-assessment",
|
|
16
|
+
"ai-usage-policy",
|
|
17
|
+
"ai-usage-report",
|
|
18
|
+
"ai-use-case-triage",
|
|
19
|
+
"migration-plan"
|
|
20
|
+
],
|
|
21
|
+
"tags": [
|
|
22
|
+
"ai-adoption",
|
|
23
|
+
"rollout",
|
|
24
|
+
"change-management",
|
|
25
|
+
"enablement",
|
|
26
|
+
"cohorts",
|
|
27
|
+
"comms"
|
|
28
|
+
],
|
|
29
|
+
"model": {
|
|
30
|
+
"tier": "standard",
|
|
31
|
+
"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."
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-readiness-assessment
|
|
3
|
+
description: Score an organisation's or team's readiness to adopt AI tooling across six gating dimensions — data, tooling, skills, governance, process, and culture — with an evidence line per score and the blocking gaps ranked by what stops adoption first. Use when the user asks "are we ready for AI", wants an AI maturity or readiness baseline, or needs to know what to fix before rolling tools out. Do NOT use to pick which use cases to build (that's ai-use-case-triage) or to plan the rollout itself (that's ai-adoption-rollout).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ai-readiness-assessment
|
|
7
|
+
|
|
8
|
+
Produce a **baseline a leadership team can act on**: where the organisation actually stands on the six things that gate AI adoption, what the evidence is for each score, and which gaps block adoption *first*. The output is a scored table plus a ranked gap list — not a maturity label and not a slide.
|
|
9
|
+
|
|
10
|
+
Readiness assessments fail in one of two ways: a number with no evidence behind it, or a diagnosis with no next action. This skill refuses both.
|
|
11
|
+
|
|
12
|
+
## How to respond
|
|
13
|
+
|
|
14
|
+
1. **Establish scope and the decision it feeds.** Whose readiness — one team, a function, the whole company? And what happens with the answer (a go/no-go, a budget request, a sequencing decision)? Scope changes what counts as evidence. Cap clarifying questions at 2.
|
|
15
|
+
|
|
16
|
+
2. **Score the six dimensions.** These are fixed — do not invent new ones for a single engagement, and do not drop one because it's awkward to assess. Score each **0–4** (0 absent · 1 ad hoc · 2 repeatable · 3 managed · 4 optimised):
|
|
17
|
+
|
|
18
|
+
| Dimension | The question it answers |
|
|
19
|
+
|---|---|
|
|
20
|
+
| **Data** | Is the material these tools need reachable, current, and permitted to be used? |
|
|
21
|
+
| **Tooling** | Are licences, access, and environments actually in people's hands? |
|
|
22
|
+
| **Skills** | Can people write a decent prompt, judge an output, and know when not to trust it? |
|
|
23
|
+
| **Governance** | Is there a rule for what may be put in, and a named owner for it? |
|
|
24
|
+
| **Process** | Does the workflow have a place for a machine draft plus a human review gate? |
|
|
25
|
+
| **Culture** | Is the incentive to use it, or to hide that it was used? |
|
|
26
|
+
|
|
27
|
+
3. **Attach evidence to every score.** One line naming what you observed — a system, a document, a stated practice, a number. A score with no evidence line is deleted, not softened. Where the input doesn't support a score, emit `[insufficient evidence: <what to collect>]` rather than guessing a middle number.
|
|
28
|
+
|
|
29
|
+
4. **Rank the gaps by what blocks first, not by what scores lowest.** A 1 in Governance that blocks every use case outranks a 0 in Culture that blocks nothing yet. Name the dependency: "Skills cannot move until Tooling ≥ 2 — people can't practise on access they don't have."
|
|
30
|
+
|
|
31
|
+
5. **Give each gap a first action and an owner role.** Concrete and small enough to start this quarter. ❌ "Improve data governance." ✅ "Name a data owner for the three systems in scope and publish an allowed-use tier for each — legal + platform lead, 2 weeks."
|
|
32
|
+
|
|
33
|
+
6. **State the overall posture in one sentence, and what would change it.** ✅ "Ready for a bounded pilot in engineering; not ready for company-wide rollout until Governance reaches 2." Never a bare maturity label.
|
|
34
|
+
|
|
35
|
+
## Quality bar
|
|
36
|
+
|
|
37
|
+
- **Every score carries an evidence line.** A number with nothing behind it is the failure mode this skill exists to prevent — cut it or mark it `[insufficient evidence]`.
|
|
38
|
+
- **All six dimensions appear**, including the ones the input is thin on. Silence on a dimension reads as a pass, and that's how readiness reports mislead.
|
|
39
|
+
- **Gaps are ranked by blocking order, not by score.** The lowest number is not automatically the first problem, and the plan must say why.
|
|
40
|
+
- **Every gap has a first action and an owner role** — a role, never a person's name, so the assessment doesn't go stale when someone changes teams.
|
|
41
|
+
- **The posture sentence takes a position** and names the condition that would change it. "It depends" is a refusal to do the job.
|
|
42
|
+
- **No invented facts.** Where the input is silent, say so; a fabricated observation is worse than an admitted gap.
|
|
43
|
+
|
|
44
|
+
## When to use this skill
|
|
45
|
+
|
|
46
|
+
- ✅ "Are we ready to roll out AI tooling?" — before committing budget or a timeline.
|
|
47
|
+
- ✅ Establishing a baseline to re-measure against in two quarters.
|
|
48
|
+
- ✅ A leadership team disagrees about whether the blocker is tools, skills, or policy.
|
|
49
|
+
|
|
50
|
+
## When NOT to use this skill
|
|
51
|
+
|
|
52
|
+
- ❌ Choosing *which* workflows to automate — that's [`ai-use-case-triage`](../ai-use-case-triage/SKILL.md).
|
|
53
|
+
- ❌ Planning the rollout once you've decided to go — that's [`ai-adoption-rollout`](../ai-adoption-rollout/SKILL.md).
|
|
54
|
+
- ❌ Writing the rules for what people may put into a tool — that's [`ai-usage-policy`](../ai-usage-policy/SKILL.md).
|
|
55
|
+
- ❌ A market or competitive question ("should we enter this space?") — that's `strategy-analysis`.
|
|
56
|
+
- ❌ Measuring adoption that has already happened — that's `ai-usage-report`.
|
|
57
|
+
|
|
58
|
+
## Anti-patterns to avoid
|
|
59
|
+
|
|
60
|
+
- ❌ **A maturity label as the deliverable.** "You are Level 2 of 5" tells a leader nothing they can fund. The ranked gap list is the product; the score is just its index.
|
|
61
|
+
- ❌ **Scoring what's easy to score.** Tooling is countable, Culture is not — and a report that goes deep on licences and hand-waves incentives has measured the wrong thing.
|
|
62
|
+
- ❌ **Middle scores as a hedge.** A 2 everywhere means the assessment refused to commit. If the evidence is thin, say `[insufficient evidence]` and name what to collect.
|
|
63
|
+
- ❌ **Gaps with no owner.** An unowned action is a wish. Roles, not names.
|
|
64
|
+
- ❌ **Recommending tools.** This assesses readiness; vendor selection is a different decision (`tech-comparison-matrix`) and mixing them lets a vendor pitch masquerade as a diagnosis.
|
|
65
|
+
|
|
66
|
+
**Non-interactive:** with no user to ask, derive the scope from the input and tag it `[assumption]`. If the input contains no observable evidence for any dimension — a request with no organisational context — emit `BLOCKED: need observable context (systems, current practice, or stated policy) for at least three dimensions` rather than scoring from imagination.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"query": "Are we ready to adopt AI?",
|
|
4
|
+
"should_trigger": true
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"query": "Assess our AI maturity and tell me what's blocking us",
|
|
8
|
+
"should_trigger": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "Give me an AI readiness baseline for our engineering org",
|
|
12
|
+
"should_trigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"query": "What do we need to fix before rolling out AI tools?",
|
|
16
|
+
"should_trigger": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"query": "Which AI use cases should we build first?",
|
|
20
|
+
"should_trigger": false
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"query": "Plan how we roll this tool out to 200 people",
|
|
24
|
+
"should_trigger": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"query": "Write our AI acceptable-use policy",
|
|
28
|
+
"should_trigger": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"query": "Run a SWOT on our market position",
|
|
32
|
+
"should_trigger": false
|
|
33
|
+
}
|
|
34
|
+
]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "ai-readiness-assessment",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "We're a 200-person fintech. Engineering has Copilot licences that about a third of people use, we have no written AI policy, our docs are spread across Confluence and Notion, and leadership keeps asking when we'll 'be an AI company'. Are we ready?",
|
|
7
|
+
"assertions": [
|
|
8
|
+
"All six dimensions (data, tooling, skills, governance, process, culture) are scored 0-4 — none is omitted",
|
|
9
|
+
"Every score carries a one-line evidence reference drawn from the input, or is marked [insufficient evidence: <what to collect>]",
|
|
10
|
+
"Gaps are ranked by what blocks adoption first, with the dependency named — not simply sorted by lowest score",
|
|
11
|
+
"Every gap has a concrete first action and an owner expressed as a role, not a person's name",
|
|
12
|
+
"The posture sentence takes a position and names the condition that would change it",
|
|
13
|
+
"No facts are invented beyond what the prompt supplies"
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ai-readiness-assessment",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Score an organisation's or team's readiness to adopt AI tooling across six gating dimensions — data, tooling, skills, governance, process, and culture — with an evidence line per score and the blocking gaps ranked by what stops adoption first. Use when the user asks \"are we ready for AI\", wants an AI maturity or readiness baseline, or needs to know what to fix before rolling tools out. Do NOT use to pick which use cases to build (that's ai-use-case-triage) or to plan the rollout itself (that's ai-adoption-rollout).",
|
|
5
|
+
"entrypoint": "SKILL.md",
|
|
6
|
+
"deps": {
|
|
7
|
+
"npm": [],
|
|
8
|
+
"pip": []
|
|
9
|
+
},
|
|
10
|
+
"env": {
|
|
11
|
+
"required": [],
|
|
12
|
+
"optional": []
|
|
13
|
+
},
|
|
14
|
+
"related": [
|
|
15
|
+
"ai-adoption-rollout",
|
|
16
|
+
"ai-usage-policy",
|
|
17
|
+
"ai-usage-report",
|
|
18
|
+
"ai-use-case-triage",
|
|
19
|
+
"strategy-analysis",
|
|
20
|
+
"tech-comparison-matrix"
|
|
21
|
+
],
|
|
22
|
+
"tags": [
|
|
23
|
+
"ai-adoption",
|
|
24
|
+
"readiness",
|
|
25
|
+
"maturity-assessment",
|
|
26
|
+
"governance",
|
|
27
|
+
"change-management",
|
|
28
|
+
"baseline"
|
|
29
|
+
],
|
|
30
|
+
"model": {
|
|
31
|
+
"tier": "standard",
|
|
32
|
+
"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."
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-usage-policy
|
|
3
|
+
description: Draft an organisation's AI acceptable-use policy — three data-sensitivity tiers with what may be put into a tool at each, permitted and prohibited uses stated as behaviours, a human-review matrix keyed to consequence, an approved-tool list with an exception route, and a named owner per rule. Use when a team needs rules for what people may put into AI tools, or asks for an AI acceptable-use or governance policy. Do NOT use to write a repo's agent-tooling policy (that's agents-md-generator) or to analyse one agent's capability surface (that's agent-threat-model).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ai-usage-policy
|
|
7
|
+
|
|
8
|
+
Write the policy people will actually follow: **what may go in, what must be checked before it goes out, and who to ask when the rule doesn't fit.** The audience is every employee, not the security team — so it reads as rules for a job, not controls for an auditor.
|
|
9
|
+
|
|
10
|
+
A policy that prohibits without offering a permitted path doesn't reduce risk; it moves the same work onto personal accounts where nobody can see it. Every prohibition here carries an alternative.
|
|
11
|
+
|
|
12
|
+
## How to respond
|
|
13
|
+
|
|
14
|
+
1. **Establish scope and the regulatory floor.** Which population, which tools, and any regime already binding (sector rules, customer contracts, an existing data-classification scheme). If the organisation already classifies data, **reuse those tier names** rather than inventing a parallel scheme — two classification systems means neither is followed. Cap clarifying questions at 2.
|
|
15
|
+
|
|
16
|
+
2. **Define three data tiers and what may enter a tool at each.** Three, because five is not memorable and one is not a policy:
|
|
17
|
+
|
|
18
|
+
| Tier | Examples | Rule |
|
|
19
|
+
|---|---|---|
|
|
20
|
+
| **Open** | public docs, published marketing, open-source code | any approved tool |
|
|
21
|
+
| **Internal** | internal docs, non-personal telemetry, private repo code | approved tools with data-retention off / enterprise terms |
|
|
22
|
+
| **Restricted** | personal data, credentials, customer content under contract, regulated records | never pasted; only via a named reviewed integration, if at all |
|
|
23
|
+
|
|
24
|
+
Give each tier **two concrete examples from this organisation's actual work** — abstract tiers are the reason policies get ignored.
|
|
25
|
+
|
|
26
|
+
3. **State permitted and prohibited uses as behaviours.** ✅ "Drafting a first version of a customer email, then editing before sending." ❌ "Inappropriate use." Every prohibition names the **permitted alternative**: "Do not paste customer records to summarise them — use the approved integration, which does the same thing without the data leaving."
|
|
27
|
+
|
|
28
|
+
4. **Build the human-review matrix on consequence, not on technology.** What must a human check before an AI-assisted output is acted on? Key it to blast radius: reaches a customer · commits money or a legal position · changes production · informs a personnel decision. Each row says who reviews and what "reviewed" means. Low-consequence internal drafting needs no gate — say so, or the policy loses credibility everywhere else.
|
|
29
|
+
|
|
30
|
+
5. **List approved tools, and give an exception route.** Named tools with the tier they're cleared to. Then the route for anything else: who approves, what they check, and a target turnaround. **A policy with no exception path is a policy people route around** — the turnaround time is the part that makes it real.
|
|
31
|
+
|
|
32
|
+
6. **Name an owner per section, a review date, and the disclosure rule.** Owners as roles. A review date, because tool terms change. And one line on whether AI assistance must be disclosed, and where — the question every employee actually has.
|
|
33
|
+
|
|
34
|
+
## Quality bar
|
|
35
|
+
|
|
36
|
+
- **Every rule has a named owner role** and the document has a review date. An unowned policy is a document, not a control.
|
|
37
|
+
- **Every prohibition names a permitted alternative**, or it drives the work into the shadows.
|
|
38
|
+
- **Data tiers carry concrete examples from this organisation**, not generic labels.
|
|
39
|
+
- **The review matrix is keyed to consequence, not to tool or model.** Model names age out in months; consequences don't.
|
|
40
|
+
- **There is an exception route with a turnaround time.**
|
|
41
|
+
- **Written for the whole staff.** If a non-technical reader hits an unexplained term, rewrite it — the audience is everyone, and unread rules govern nothing.
|
|
42
|
+
- **No invented regulation.** Cite only regimes the user named; where applicability is unclear, mark `[confirm with counsel]` rather than asserting a legal position.
|
|
43
|
+
|
|
44
|
+
## When to use this skill
|
|
45
|
+
|
|
46
|
+
- ✅ "What are people allowed to put into these tools?" — the question every rollout hits in week one.
|
|
47
|
+
- ✅ Standing up governance before or alongside an AI rollout.
|
|
48
|
+
- ✅ Replacing an informal "be sensible" norm with something reviewable.
|
|
49
|
+
|
|
50
|
+
## When NOT to use this skill
|
|
51
|
+
|
|
52
|
+
- ❌ Writing a repository's agent-tooling policy (`AGENTS.md` — build commands, conventions, what agents may edit) — that's `agents-md-generator`.
|
|
53
|
+
- ❌ Threat-modelling one agent's data reach and exfiltration paths — that's `agent-threat-model`.
|
|
54
|
+
- ❌ Planning how the tool reaches people — that's [`ai-adoption-rollout`](../ai-adoption-rollout/SKILL.md).
|
|
55
|
+
- ❌ Assessing whether governance is mature enough yet — that's [`ai-readiness-assessment`](../ai-readiness-assessment/SKILL.md).
|
|
56
|
+
- ❌ A security review of a design — that's `threat-model`.
|
|
57
|
+
|
|
58
|
+
## Anti-patterns to avoid
|
|
59
|
+
|
|
60
|
+
- ❌ **Prohibition without an alternative.** "Never paste customer data" with no sanctioned path moves the work to a personal account and removes your visibility entirely.
|
|
61
|
+
- ❌ **Naming models and versions in the rules.** They change quarterly; consequence-based rules survive. Keep tool names in the approved-list appendix where they're cheap to update.
|
|
62
|
+
- ❌ **Five or more tiers.** Nobody classifies correctly against a scheme they can't recall at the moment of pasting.
|
|
63
|
+
- ❌ **Writing for auditors.** A policy in control language gets filed, not followed. Plain rules for a working day.
|
|
64
|
+
- ❌ **No exception route.** Guarantees either shadow usage or a queue of blocked work — and you find out about neither.
|
|
65
|
+
- ❌ **Requiring review of everything.** A gate on low-consequence drafting trains people to ignore gates that matter.
|
|
66
|
+
|
|
67
|
+
**Non-interactive:** with no user to ask, assume no sector-specific regime beyond general data-protection practice and tag it `[assumption]`, listing what to confirm. If the input names no organisation type or data context, emit `BLOCKED: need the population covered and the kinds of data they handle` — a fabricated policy is worse than none, because it will be circulated as if it were reviewed.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"query": "Write our AI acceptable-use policy",
|
|
4
|
+
"should_trigger": true
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"query": "What are people allowed to put into these AI tools?",
|
|
8
|
+
"should_trigger": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "We need AI governance rules before we roll this out",
|
|
12
|
+
"should_trigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"query": "Draft data-handling tiers for AI tool usage",
|
|
16
|
+
"should_trigger": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"query": "Generate the AGENTS.md for this repository",
|
|
20
|
+
"should_trigger": false
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"query": "Threat model our agent's data access and exfiltration paths",
|
|
24
|
+
"should_trigger": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"query": "Plan the rollout cohorts and enablement",
|
|
28
|
+
"should_trigger": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"query": "Assess whether our governance is mature enough",
|
|
32
|
+
"should_trigger": false
|
|
33
|
+
}
|
|
34
|
+
]
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "ai-usage-policy",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Write an AI acceptable-use policy for our 500-person company. We handle customer support data including names and order history, and people are already pasting things into chatbots.",
|
|
7
|
+
"assertions": [
|
|
8
|
+
"Exactly three data tiers are defined, each with concrete examples drawn from the organisation described",
|
|
9
|
+
"Permitted and prohibited uses are stated as behaviours, not abstractions like 'inappropriate use'",
|
|
10
|
+
"Every prohibition names a permitted alternative path for the same work",
|
|
11
|
+
"The human-review matrix is keyed to consequence (customer-facing, financial, production, personnel) rather than to tool or model names",
|
|
12
|
+
"An approved-tool list is accompanied by an exception route with an approver and a turnaround time",
|
|
13
|
+
"Every section names an owner role and the document carries a review date",
|
|
14
|
+
"The disclosure rule states whether and where AI assistance must be declared",
|
|
15
|
+
"No regulation is asserted beyond what the prompt names; unclear applicability is marked [confirm with counsel]"
|
|
16
|
+
]
|
|
17
|
+
}
|
|
18
|
+
]
|
|
19
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ai-usage-policy",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Draft an organisation's AI acceptable-use policy — three data-sensitivity tiers with what may be put into a tool at each, permitted and prohibited uses stated as behaviours, a human-review matrix keyed to consequence, an approved-tool list with an exception route, and a named owner per rule. Use when a team needs rules for what people may put into AI tools, or asks for an AI acceptable-use or governance policy. Do NOT use to write a repo's agent-tooling policy (that's agents-md-generator) or to analyse one agent's capability surface (that's agent-threat-model).",
|
|
5
|
+
"entrypoint": "SKILL.md",
|
|
6
|
+
"deps": {
|
|
7
|
+
"npm": [],
|
|
8
|
+
"pip": []
|
|
9
|
+
},
|
|
10
|
+
"env": {
|
|
11
|
+
"required": [],
|
|
12
|
+
"optional": []
|
|
13
|
+
},
|
|
14
|
+
"related": [
|
|
15
|
+
"agent-threat-model",
|
|
16
|
+
"agents-md-generator",
|
|
17
|
+
"ai-adoption-rollout",
|
|
18
|
+
"ai-readiness-assessment",
|
|
19
|
+
"threat-model"
|
|
20
|
+
],
|
|
21
|
+
"tags": [
|
|
22
|
+
"ai-adoption",
|
|
23
|
+
"governance",
|
|
24
|
+
"acceptable-use",
|
|
25
|
+
"policy",
|
|
26
|
+
"data-classification",
|
|
27
|
+
"compliance"
|
|
28
|
+
],
|
|
29
|
+
"model": {
|
|
30
|
+
"tier": "standard",
|
|
31
|
+
"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."
|
|
32
|
+
}
|
|
33
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: ai-use-case-triage
|
|
3
|
+
description: Turn a pile of candidate AI use cases into a ranked portfolio — each scored on value, feasibility, and risk with the weights shown, a recommended first slice that can prove or kill the thesis, and an explicit not-yet list with the condition that would promote each entry. Use when a team has more AI ideas than capacity and needs to choose, or asks "where should we actually start with AI". Do NOT use to assess whether the organisation is ready at all (that's ai-readiness-assessment) or to price a single decision (that's business-case).
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# ai-use-case-triage
|
|
7
|
+
|
|
8
|
+
Most AI adoption stalls not from lack of ideas but from too many, all sounding equally promising. This produces a **ranked portfolio with rejections**: what to do first, what to hold, and the condition that would move a held item onto the list.
|
|
9
|
+
|
|
10
|
+
A triage that promotes everything has triaged nothing. The not-yet list is the deliverable's spine.
|
|
11
|
+
|
|
12
|
+
## How to respond
|
|
13
|
+
|
|
14
|
+
1. **Inventory the candidates.** From whatever the user brought — a brainstorm, a backlog, interview notes. Each candidate is stated as **a workflow and a person**, not a technology: ✅ "Support agents drafting first-response replies" — ❌ "Use LLMs in support." If a candidate is a technology looking for a job, say so and either recast it or drop it.
|
|
15
|
+
|
|
16
|
+
2. **Score each on three axes, 1–5, and show the weights.** Default weights: **value 40 · feasibility 35 · risk 25**. State them, and restate them if the user's context justifies different ones (a regulated environment legitimately weights risk higher). Hidden weights make a ranking an opinion.
|
|
17
|
+
- **Value** — time recovered, quality lifted, or revenue/cost moved. Quantify where the input allows; mark `directional` where it doesn't. Never invent a number.
|
|
18
|
+
- **Feasibility** — is the input data reachable, is the output checkable, does the workflow already have a review step? A task whose output nobody can verify is not feasible, however easy the prompt.
|
|
19
|
+
- **Risk** — blast radius if the output is wrong and someone acts on it. Score the *consequence*, not the technology's reputation.
|
|
20
|
+
|
|
21
|
+
3. **Rank, then sanity-check the top.** The highest score wins only if its **failure is survivable and visible**. A high-value, high-risk item where a wrong answer reaches a customer unreviewed is not a first slice, whatever the arithmetic says — demote it and say why.
|
|
22
|
+
|
|
23
|
+
4. **Name the first slice, and what it proves.** One use case, with the observable that would confirm or kill the thesis and a time box. ✅ "Draft first-response replies for the top 3 ticket categories; the thesis dies if agents edit more than half the draft body after 4 weeks." A first slice with no kill condition is a pilot that runs forever.
|
|
24
|
+
|
|
25
|
+
5. **Write the not-yet list with promotion conditions.** Every rejected candidate gets one line saying what would change the answer — "when the knowledge base is deduplicated", "when a human review step exists in the workflow". A rejection with no condition reads as a permanent no and gets re-litigated next quarter.
|
|
26
|
+
|
|
27
|
+
6. **Hand off.** The first slice's economics → `business-case`; how success will be measured → `success-metrics`; how it reaches people → [`ai-adoption-rollout`](../ai-adoption-rollout/SKILL.md); whether the output can be evaluated at all → `llm-eval-harness`.
|
|
28
|
+
|
|
29
|
+
## Quality bar
|
|
30
|
+
|
|
31
|
+
- **The weights are shown and justified in one line.** A ranking with hidden weights is an opinion wearing a table.
|
|
32
|
+
- **Every score has a one-line reason.** A bare 4 is not a judgement anyone can challenge.
|
|
33
|
+
- **The not-yet list is non-empty**, and every entry carries a promotion condition. If nothing was rejected, the triage didn't happen.
|
|
34
|
+
- **Each candidate names a workflow and a person**, not a technology.
|
|
35
|
+
- **The first slice has a kill condition** with an observable and a time box.
|
|
36
|
+
- **Unknown numbers are marked `directional`**, never invented — a fabricated ROI figure poisons every decision downstream.
|
|
37
|
+
|
|
38
|
+
## When to use this skill
|
|
39
|
+
|
|
40
|
+
- ✅ More AI ideas than capacity, and the team needs a defensible order.
|
|
41
|
+
- ✅ "Where should we start with AI?" from a leader who has heard a dozen pitches.
|
|
42
|
+
- ✅ Re-triaging a stalled portfolio where three pilots are half-running.
|
|
43
|
+
|
|
44
|
+
## When NOT to use this skill
|
|
45
|
+
|
|
46
|
+
- ❌ Assessing whether the organisation can adopt anything yet — that's [`ai-readiness-assessment`](../ai-readiness-assessment/SKILL.md).
|
|
47
|
+
- ❌ Pricing one option properly (build vs buy, Option 0, cost layers) — that's `business-case`.
|
|
48
|
+
- ❌ Planning the human rollout of a chosen use case — that's [`ai-adoption-rollout`](../ai-adoption-rollout/SKILL.md).
|
|
49
|
+
- ❌ Writing requirements for the thing you picked — that's `prd-draft`.
|
|
50
|
+
|
|
51
|
+
## Anti-patterns to avoid
|
|
52
|
+
|
|
53
|
+
- ❌ **A portfolio with no rejections.** Ranking ten ideas 1–10 and calling it a roadmap is capacity denial, not triage.
|
|
54
|
+
- ❌ **Scoring the technology instead of the workflow.** "RAG: 5/5" is not a use case. The unit is a person doing a job.
|
|
55
|
+
- ❌ **Invented value numbers.** A confident "$400k/yr saved" with no source is the single fastest way to lose a room that includes a finance lead.
|
|
56
|
+
- ❌ **Ignoring verifiability.** Feasibility is not "can a model produce this?" — it is "can someone tell whether it's right, before it matters?"
|
|
57
|
+
- ❌ **A first slice that can't fail.** If no observable would kill it, it isn't a pilot; it's a commitment with a pilot's label.
|
|
58
|
+
|
|
59
|
+
**Non-interactive:** with no user to ask, use the default weights and tag them `[assumption]`. If the input contains no candidate use cases — only a general request to "use AI" — emit `BLOCKED: need at least three candidate workflows to triage` rather than inventing a portfolio.
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"query": "Which AI use cases should we do first?",
|
|
4
|
+
"should_trigger": true
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"query": "Rank these AI ideas by value and feasibility",
|
|
8
|
+
"should_trigger": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "We have more AI ideas than capacity — help us choose",
|
|
12
|
+
"should_trigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"query": "Where should we actually start with AI?",
|
|
16
|
+
"should_trigger": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"query": "Are we ready to adopt AI at all?",
|
|
20
|
+
"should_trigger": false
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"query": "Build the business case for this one investment",
|
|
24
|
+
"should_trigger": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"query": "Write the PRD for the feature we picked",
|
|
28
|
+
"should_trigger": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"query": "Plan the rollout to our support team",
|
|
32
|
+
"should_trigger": false
|
|
33
|
+
}
|
|
34
|
+
]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "ai-use-case-triage",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Our support org has five AI ideas: draft first replies, auto-tag tickets, summarise call recordings, generate KB articles, and predict churn from ticket sentiment. Where do we start?",
|
|
7
|
+
"assertions": [
|
|
8
|
+
"Each candidate is restated as a workflow and a person, not a technology",
|
|
9
|
+
"Every candidate is scored on value, feasibility, and risk with the weights shown and justified",
|
|
10
|
+
"Every score carries a one-line reason",
|
|
11
|
+
"The not-yet list is non-empty and each entry names the condition that would promote it",
|
|
12
|
+
"The recommended first slice names an observable kill condition and a time box",
|
|
13
|
+
"Feasibility reasoning addresses whether the output can be verified before it matters",
|
|
14
|
+
"Value figures absent from the input are marked directional rather than invented"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "ai-use-case-triage",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "Turn a pile of candidate AI use cases into a ranked portfolio — each scored on value, feasibility, and risk with the weights shown, a recommended first slice that can prove or kill the thesis, and an explicit not-yet list with the condition that would promote each entry. Use when a team has more AI ideas than capacity and needs to choose, or asks \"where should we actually start with AI\". Do NOT use to assess whether the organisation is ready at all (that's ai-readiness-assessment) or to price a single decision (that's business-case).",
|
|
5
|
+
"entrypoint": "SKILL.md",
|
|
6
|
+
"deps": {
|
|
7
|
+
"npm": [],
|
|
8
|
+
"pip": []
|
|
9
|
+
},
|
|
10
|
+
"env": {
|
|
11
|
+
"required": [],
|
|
12
|
+
"optional": []
|
|
13
|
+
},
|
|
14
|
+
"related": [
|
|
15
|
+
"ai-adoption-rollout",
|
|
16
|
+
"ai-readiness-assessment",
|
|
17
|
+
"business-case",
|
|
18
|
+
"llm-eval-harness",
|
|
19
|
+
"prd-draft",
|
|
20
|
+
"success-metrics"
|
|
21
|
+
],
|
|
22
|
+
"tags": [
|
|
23
|
+
"ai-adoption",
|
|
24
|
+
"prioritization",
|
|
25
|
+
"use-cases",
|
|
26
|
+
"portfolio",
|
|
27
|
+
"value-vs-feasibility",
|
|
28
|
+
"pilot"
|
|
29
|
+
],
|
|
30
|
+
"model": {
|
|
31
|
+
"tier": "standard",
|
|
32
|
+
"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."
|
|
33
|
+
}
|
|
34
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"query": "Turn this vague bug report into an actionable ticket",
|
|
4
|
+
"should_trigger": true
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"query": "A customer says it's broken on mobile sometimes — triage it",
|
|
8
|
+
"should_trigger": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "Write up this Slack complaint as a proper bug with repro steps",
|
|
12
|
+
"should_trigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"query": "Triage and prioritize this support ticket",
|
|
16
|
+
"should_trigger": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"query": "Review this diff for bugs and edge cases",
|
|
20
|
+
"should_trigger": false
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"query": "Write the blameless postmortem for the outage",
|
|
24
|
+
"should_trigger": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"query": "Split this epic into user stories",
|
|
28
|
+
"should_trigger": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"query": "Write a test plan for this release",
|
|
32
|
+
"should_trigger": false
|
|
33
|
+
}
|
|
34
|
+
]
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "bug-triage",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Triage this report: 'checkout is broken on mobile sometimes, a customer complained in Slack this morning'.",
|
|
7
|
+
"assertions": [
|
|
8
|
+
"An engineer could start work without contacting the reporter — either the repro steps stand alone, or a no-repro diagnostics list states exactly what to collect",
|
|
9
|
+
"The title is findable by symptom search, containing the words a future reporter would type",
|
|
10
|
+
"Repro steps are numbered and start from a clean state",
|
|
11
|
+
"Expected versus actual behaviour are stated separately",
|
|
12
|
+
"Every factual claim is tagged [reported], [verified], or [assumption] — nothing is asserted untagged",
|
|
13
|
+
"Severity is assigned with a stated reason rather than inherited from the reporter's tone"
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
]
|
|
17
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"query": "Plan the migration for this schema change",
|
|
4
|
+
"should_trigger": true
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"query": "How do we roll this datastore swap out safely with no downtime?",
|
|
8
|
+
"should_trigger": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "Give me a phased expand-migrate-contract plan for this API version",
|
|
12
|
+
"should_trigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"query": "We're switching auth providers — plan the cutover and rollback",
|
|
16
|
+
"should_trigger": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"query": "Design the new database schema and its indexes",
|
|
20
|
+
"should_trigger": false
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"query": "Split this migration work into user stories",
|
|
24
|
+
"should_trigger": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"query": "Write the runbook for the on-call team",
|
|
28
|
+
"should_trigger": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"query": "Write an ADR recording why we chose this datastore",
|
|
32
|
+
"should_trigger": false
|
|
33
|
+
}
|
|
34
|
+
]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "migration-plan",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Plan the migration from our single-tenant Postgres schema to a multi-tenant one, with no downtime.",
|
|
7
|
+
"assertions": [
|
|
8
|
+
"The plan is phased expand-migrate-contract by default",
|
|
9
|
+
"Every phase is reversible, or is explicitly named as the point of no return — a reader can answer 'how do we get back from here?' for every phase",
|
|
10
|
+
"Every gate is observable with a bake time and a threshold, not 'looks good'",
|
|
11
|
+
"Each phase carries exactly one change, so a failed phase implicates one thing",
|
|
12
|
+
"Rollback steps are stated per phase rather than as a single end-of-plan afterthought"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"query": "Write a test plan for this feature",
|
|
4
|
+
"should_trigger": true
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"query": "What should we test before this release, ranked by risk?",
|
|
8
|
+
"should_trigger": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "Map these acceptance criteria to test cases",
|
|
12
|
+
"should_trigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"query": "Generate a risk-based QA plan for this PR",
|
|
16
|
+
"should_trigger": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"query": "Split this epic into user stories with acceptance criteria",
|
|
20
|
+
"should_trigger": false
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"query": "Review my code and tell me which tests are missing",
|
|
24
|
+
"should_trigger": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"query": "Run the Sonar scan on my branch",
|
|
28
|
+
"should_trigger": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"query": "Draft the PRD for this feature",
|
|
32
|
+
"should_trigger": false
|
|
33
|
+
}
|
|
34
|
+
]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "test-plan-generator",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Write the test plan for this release — a new discount-code feature touching checkout, pricing, and the orders API.",
|
|
7
|
+
"assertions": [
|
|
8
|
+
"A risk table ranked by likelihood times impact precedes the test cases, and depth of coverage tracks that ranking rather than being uniform",
|
|
9
|
+
"Every test case states a concrete expected result — a specific status code, error code, or value, not 'an appropriate error is shown'",
|
|
10
|
+
"Every acceptance criterion appears in a coverage table, with uncovered ACs listed explicitly rather than omitted",
|
|
11
|
+
"Each test is pushed to the lowest pyramid level that would catch the failure",
|
|
12
|
+
"Out-of-scope areas are named rather than silently skipped"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"query": "Split this epic into user stories",
|
|
4
|
+
"should_trigger": true
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"query": "Break this feature down into independently shippable slices",
|
|
8
|
+
"should_trigger": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "Turn this PRD section into stories with Gherkin acceptance criteria",
|
|
12
|
+
"should_trigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"query": "What's the right build order for these stories?",
|
|
16
|
+
"should_trigger": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"query": "Write the product requirements document for this feature",
|
|
20
|
+
"should_trigger": false
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"query": "Write the test plan covering these acceptance criteria",
|
|
24
|
+
"should_trigger": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"query": "Plan the phased rollout of this schema change",
|
|
28
|
+
"should_trigger": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"query": "Turn this bug report into an actionable ticket",
|
|
32
|
+
"should_trigger": false
|
|
33
|
+
}
|
|
34
|
+
]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "user-story-splitter",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Split this epic into shippable stories: 'Customers can save their cart, return later on any device, and check out with a saved payment method.'",
|
|
7
|
+
"assertions": [
|
|
8
|
+
"Every story is demoable to a non-engineer — a story whose demo is 'look at this database table' is re-cut as a vertical slice",
|
|
9
|
+
"Every acceptance criterion is pass/fail without interpretation and written in Gherkin",
|
|
10
|
+
"Acceptance criteria are concrete enough that a tester who has not seen the epic can verdict them",
|
|
11
|
+
"Dependencies between stories are stated, and a recommended build order follows from them",
|
|
12
|
+
"Stories are independently shippable rather than layered horizontally (all backend, then all frontend)"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|