skilldrop-cli 0.9.0 → 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 +7 -2
- package/bin/skilldrop.js +179 -3
- package/model-routing.json +4 -0
- package/package.json +2 -2
- package/packs.json +8 -3
- package/skills/adr-generator/evals/eval_queries.json +34 -0
- package/skills/adr-generator/evals/evals.json +17 -0
- 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/api-contract-draft/evals/eval_queries.json +34 -0
- package/skills/api-contract-draft/evals/evals.json +18 -0
- package/skills/architecture-diagrams/evals/eval_queries.json +34 -0
- package/skills/architecture-diagrams/evals/evals.json +16 -0
- package/skills/audience-profile/evals/eval_queries.json +34 -0
- package/skills/audience-profile/evals/evals.json +15 -0
- package/skills/brief-intake/evals/eval_queries.json +34 -0
- package/skills/brief-intake/evals/evals.json +16 -0
- package/skills/bug-triage/evals/eval_queries.json +34 -0
- package/skills/bug-triage/evals/evals.json +17 -0
- package/skills/council-review/evals/eval_queries.json +38 -0
- package/skills/council-review/evals/evals.json +18 -0
- package/skills/data-contract/evals/eval_queries.json +34 -0
- package/skills/data-contract/evals/evals.json +16 -0
- package/skills/db-schema-design/evals/eval_queries.json +34 -0
- package/skills/db-schema-design/evals/evals.json +16 -0
- package/skills/decision-log/evals/eval_queries.json +34 -0
- package/skills/decision-log/evals/evals.json +17 -0
- package/skills/deck-builder/evals/eval_queries.json +34 -0
- package/skills/deck-builder/evals/evals.json +17 -0
- package/skills/design-doc/evals/eval_queries.json +34 -0
- package/skills/design-doc/evals/evals.json +17 -0
- package/skills/devils-advocate/evals/eval_queries.json +38 -0
- package/skills/devils-advocate/evals/evals.json +19 -0
- package/skills/doc-critique/evals/eval_queries.json +38 -0
- package/skills/doc-critique/evals/evals.json +17 -0
- package/skills/exec-summary/evals/eval_queries.json +34 -0
- package/skills/exec-summary/evals/evals.json +17 -0
- package/skills/figma-diagrams/evals/eval_queries.json +34 -0
- package/skills/figma-diagrams/evals/evals.json +15 -0
- package/skills/incident-comms/evals/eval_queries.json +34 -0
- package/skills/incident-comms/evals/evals.json +16 -0
- package/skills/migration-plan/evals/eval_queries.json +34 -0
- package/skills/migration-plan/evals/evals.json +16 -0
- package/skills/nfr-spec/evals/eval_queries.json +34 -0
- package/skills/nfr-spec/evals/evals.json +16 -0
- package/skills/observability-plan/evals/eval_queries.json +34 -0
- package/skills/observability-plan/evals/evals.json +16 -0
- package/skills/postmortem-generator/evals/eval_queries.json +34 -0
- package/skills/postmortem-generator/evals/evals.json +17 -0
- package/skills/prd-draft/evals/eval_queries.json +34 -0
- package/skills/prd-draft/evals/evals.json +17 -0
- package/skills/requirements-interview/evals/eval_queries.json +34 -0
- package/skills/requirements-interview/evals/evals.json +16 -0
- package/skills/reverse-architecture/evals/eval_queries.json +34 -0
- package/skills/reverse-architecture/evals/evals.json +16 -0
- package/skills/runbook-generator/evals/eval_queries.json +34 -0
- package/skills/runbook-generator/evals/evals.json +17 -0
- package/skills/slide-outliner/evals/eval_queries.json +34 -0
- package/skills/slide-outliner/evals/evals.json +16 -0
- package/skills/sonar-onboard/evals/eval_queries.json +34 -0
- package/skills/sonar-onboard/evals/evals.json +16 -0
- package/skills/sonar-review/evals/eval_queries.json +34 -0
- package/skills/sonar-review/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/threat-model/evals/eval_queries.json +34 -0
- package/skills/threat-model/evals/evals.json +18 -0
- package/skills/user-story-splitter/evals/eval_queries.json +34 -0
- package/skills/user-story-splitter/evals/evals.json +16 -0
|
@@ -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": "Draft the OpenAPI spec for this API",
|
|
4
|
+
"should_trigger": true
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"query": "Write the REST contract for these endpoints",
|
|
8
|
+
"should_trigger": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "I need an API contract with a proper error catalog and pagination decided",
|
|
12
|
+
"should_trigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"query": "Turn this user story into an OpenAPI 3.1 definition",
|
|
16
|
+
"should_trigger": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"query": "Define the contract for this Kafka topic our team publishes",
|
|
20
|
+
"should_trigger": false
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"query": "Design the Postgres schema and indexes for this feature",
|
|
24
|
+
"should_trigger": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"query": "What latency and availability targets should this service have?",
|
|
28
|
+
"should_trigger": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"query": "Review this API implementation for security bugs",
|
|
32
|
+
"should_trigger": false
|
|
33
|
+
}
|
|
34
|
+
]
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "api-contract-draft",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Draft the OpenAPI contract for our orders API — clients need to create an order, fetch one, and list a customer's orders.",
|
|
7
|
+
"assertions": [
|
|
8
|
+
"The emitted YAML is parseable OpenAPI 3.1 and every $ref resolves",
|
|
9
|
+
"Paths are resource-oriented rather than RPC-style verbs in the URL",
|
|
10
|
+
"Every operation enumerates its 4xx set with stable machine-switchable code values — not a bare '400: Bad Request'",
|
|
11
|
+
"Errors follow RFC 9457 problem-details shape",
|
|
12
|
+
"Pagination, idempotency, and versioning are each decided explicitly rather than deferred",
|
|
13
|
+
"Every operation carries at least one example",
|
|
14
|
+
"Each decision in the log has a rationale, and any deviation from the skill's conventions is logged rather than made silently"
|
|
15
|
+
]
|
|
16
|
+
}
|
|
17
|
+
]
|
|
18
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"query": "Draw an architecture diagram for this system",
|
|
4
|
+
"should_trigger": true
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"query": "Generate a Mermaid diagram of these services",
|
|
8
|
+
"should_trigger": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "Create a C4 container diagram from this description",
|
|
12
|
+
"should_trigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"query": "Diagram the sequence flow I just described",
|
|
16
|
+
"should_trigger": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"query": "Reverse-engineer the architecture from our Terraform and repo",
|
|
20
|
+
"should_trigger": false
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"query": "Read the frames in our Figma file",
|
|
24
|
+
"should_trigger": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"query": "Threat model this design",
|
|
28
|
+
"should_trigger": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"query": "Write the design doc for this system",
|
|
32
|
+
"should_trigger": false
|
|
33
|
+
}
|
|
34
|
+
]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "architecture-diagrams",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Draw the architecture for a checkout service: an API gateway, an orders service, a payments service calling Stripe, and a Postgres primary with a read replica.",
|
|
7
|
+
"assertions": [
|
|
8
|
+
"The diagram fits on one screen; beyond roughly 15 nodes it is split into separate Context and Container diagrams rather than crammed",
|
|
9
|
+
"Arrows show direction of data flow, not undirected connections",
|
|
10
|
+
"Every arrow crossing a trust boundary is labelled",
|
|
11
|
+
"The diagram is generated from the written description provided — no components are invented beyond it",
|
|
12
|
+
"A named format is produced (Mermaid, PlantUML, or C4) and renders as valid syntax"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"query": "Who is my audience and what rules should the deck follow?",
|
|
4
|
+
"should_trigger": true
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"query": "What are the structural rules for presenting to a board versus engineers?",
|
|
8
|
+
"should_trigger": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "Profile this audience so I know how technical to go",
|
|
12
|
+
"should_trigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"query": "We have a mixed exec and technical room — how should I pitch it?",
|
|
16
|
+
"should_trigger": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"query": "Build the PowerPoint for the board meeting",
|
|
20
|
+
"should_trigger": false
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"query": "Outline the slides for this deck",
|
|
24
|
+
"should_trigger": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"query": "Write the one-page executive summary",
|
|
28
|
+
"should_trigger": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"query": "Map the customer's journey through our product",
|
|
32
|
+
"should_trigger": false
|
|
33
|
+
}
|
|
34
|
+
]
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "audience-profile",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "We're presenting our platform strategy to a mixed room — the board plus two engineering leads. What audience rules should we design to?",
|
|
7
|
+
"assertions": [
|
|
8
|
+
"Output is concrete and structural (slide count ranges, density, tone, must-have sections, things to avoid) rather than advice like 'keep it short'",
|
|
9
|
+
"A mixed audience resolves to the least-technical archetype, with the more-technical material moved to an appendix",
|
|
10
|
+
"No new archetype is invented for a one-off case — the closest existing one is chosen and the divergence noted",
|
|
11
|
+
"The profile is reusable across deliverables rather than being a deck or summary itself"
|
|
12
|
+
]
|
|
13
|
+
}
|
|
14
|
+
]
|
|
15
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
[
|
|
2
|
+
{
|
|
3
|
+
"query": "Turn this Slack thread into a structured brief",
|
|
4
|
+
"should_trigger": true
|
|
5
|
+
},
|
|
6
|
+
{
|
|
7
|
+
"query": "I have a messy transcript — get it into shape for the design-doc skill",
|
|
8
|
+
"should_trigger": true
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"query": "Structure this raw context into a brief before I run the next skill",
|
|
12
|
+
"should_trigger": true
|
|
13
|
+
},
|
|
14
|
+
{
|
|
15
|
+
"query": "Take this half-written Notion page and extract a clean brief",
|
|
16
|
+
"should_trigger": true
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"query": "Extract the decisions, owners, and due dates from this discussion",
|
|
20
|
+
"should_trigger": false
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"query": "Write the ADR itself from this context",
|
|
24
|
+
"should_trigger": false
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"query": "Critique this brief's quality",
|
|
28
|
+
"should_trigger": false
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"query": "Summarize this thread for the executive team",
|
|
32
|
+
"should_trigger": false
|
|
33
|
+
}
|
|
34
|
+
]
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
{
|
|
2
|
+
"skill_name": "brief-intake",
|
|
3
|
+
"evals": [
|
|
4
|
+
{
|
|
5
|
+
"id": 1,
|
|
6
|
+
"prompt": "Here's a messy Slack thread about our caching problem — turn it into a brief I can hand to design-doc.",
|
|
7
|
+
"assertions": [
|
|
8
|
+
"Extracted fields marked [explicit] or [implied] carry a short verbatim snippet from the source so nothing is hallucinated",
|
|
9
|
+
"Relative dates are converted to absolute YYYY-MM-DD, marked implied where computed",
|
|
10
|
+
"Gaps are named as missing rather than filled in with plausible invention",
|
|
11
|
+
"The output names the downstream skill the brief is shaped for",
|
|
12
|
+
"The brief is structured into the fields that downstream skill needs, not a summary"
|
|
13
|
+
]
|
|
14
|
+
}
|
|
15
|
+
]
|
|
16
|
+
}
|
|
@@ -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
|
+
]
|