skilldrop-cli 0.13.7 → 0.13.8

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.
Files changed (44) hide show
  1. package/bin/skilldrop.js +455 -41
  2. package/contracts/pack.schema.json +26 -0
  3. package/package.json +1 -1
  4. package/packs/ai-engineering/pack.json +36 -1
  5. package/packs/ai-engineering/skills/agent-threat-model/SKILL.md +5 -2
  6. package/packs/ai-engineering/skills/agent-threat-model/manifest.json +1 -1
  7. package/packs/ai-engineering/skills/agent-threat-model/reference.md +19 -0
  8. package/packs/ai-engineering/skills/agent-threat-model/templates/agent-threat-model.md +3 -3
  9. package/packs/ai-engineering/skills/ai-usage-report/evals/eval_queries.json +30 -0
  10. package/packs/ai-engineering/skills/ai-usage-report/evals/evals.json +19 -0
  11. package/packs/ai-engineering/skills/llm-eval-harness/evals/eval_queries.json +34 -0
  12. package/packs/ai-engineering/skills/llm-eval-harness/evals/evals.json +19 -0
  13. package/packs/claude-api/pack.json +27 -0
  14. package/packs/claude-api/skills/eval-harness-generator/evals/eval_queries.json +30 -0
  15. package/packs/claude-api/skills/eval-harness-generator/evals/evals.json +19 -0
  16. package/packs/claude-api/skills/prompt-caching-advisor/evals/eval_queries.json +30 -0
  17. package/packs/claude-api/skills/prompt-caching-advisor/evals/evals.json +19 -0
  18. package/packs/claude-api/skills/token-budget-estimator/evals/eval_queries.json +30 -0
  19. package/packs/claude-api/skills/token-budget-estimator/evals/evals.json +18 -0
  20. package/packs/claude-api/skills/tool-use-schema-writer/evals/eval_queries.json +30 -0
  21. package/packs/claude-api/skills/tool-use-schema-writer/evals/evals.json +18 -0
  22. package/packs/core/pack.json +29 -0
  23. package/packs/design/pack.json +39 -1
  24. package/packs/dev-team/pack.json +35 -1
  25. package/packs/dev-team/skills/accessibility-audit/evals/eval_queries.json +30 -0
  26. package/packs/dev-team/skills/accessibility-audit/evals/evals.json +19 -0
  27. package/packs/dev-team/skills/contribution-wizard/evals/eval_queries.json +30 -0
  28. package/packs/dev-team/skills/contribution-wizard/evals/evals.json +19 -0
  29. package/packs/dev-team/skills/feature-implement-loop/evals/eval_queries.json +30 -0
  30. package/packs/dev-team/skills/feature-implement-loop/evals/evals.json +19 -0
  31. package/packs/dev-team/skills/release-notes/evals/eval_queries.json +30 -0
  32. package/packs/dev-team/skills/release-notes/evals/evals.json +19 -0
  33. package/packs/product-manager/pack.json +40 -1
  34. package/packs/product-manager/skills/business-case/evals/eval_queries.json +30 -0
  35. package/packs/product-manager/skills/business-case/evals/evals.json +19 -0
  36. package/packs/solution-architect/pack.json +44 -1
  37. package/packs/solution-architect/skills/tech-comparison-matrix/evals/eval_queries.json +30 -0
  38. package/packs/solution-architect/skills/tech-comparison-matrix/evals/evals.json +18 -0
  39. package/packs/sre-oncall/pack.json +33 -1
  40. package/packs/sre-oncall/skills/capacity-cost-model/evals/eval_queries.json +30 -0
  41. package/packs/sre-oncall/skills/capacity-cost-model/evals/evals.json +19 -0
  42. package/packs/stakeholder-comms/pack.json +39 -1
  43. package/packs/stakeholder-comms/skills/guide-builder/evals/eval_queries.json +34 -0
  44. package/packs/stakeholder-comms/skills/guide-builder/evals/evals.json +18 -0
@@ -18,5 +18,39 @@
18
18
  "verification": "pre-merge-review runs the project's lint, typecheck and tests through its gate script, then the reviewer panel, and ends with READY or NOT READY.",
19
19
  "recovery": "If the gate script cannot find your lint or test commands, tell it what they are. If the panel is skipped, install the reviewer subagents with `skilldrop install --panel review`."
20
20
  },
21
- "requires": ["core"]
21
+ "requires": ["core"],
22
+ "journey": {
23
+ "when": "You have an agreed requirement or a triaged bug and want it implemented, verified and ready to merge.",
24
+ "you_bring": [
25
+ "the epic, story or bug report",
26
+ "a repo with working lint, typecheck and test commands",
27
+ "who owns the merge"
28
+ ],
29
+ "steps": [
30
+ {
31
+ "skill": "user-story-splitter",
32
+ "you_do": "Paste the epic or feature request (use bug-triage instead for a defect).",
33
+ "you_get": "Independently shippable stories with Gherkin acceptance criteria and a recommended build order.",
34
+ "decide": "Pick the one slice to build now; criteria a test cannot assert send it back to be reshaped."
35
+ },
36
+ {
37
+ "skill": "feature-implement-loop",
38
+ "you_do": "Hand it the slice and its acceptance criteria.",
39
+ "you_get": "Code and tests, reviewed for edge cases, security and craft for up to three rounds, with a status (VERIFIED, VERIFIED WITH OPEN ITEMS or BLOCKED), a criteria-to-test table and a round log."
40
+ },
41
+ {
42
+ "skill": "pre-merge-review",
43
+ "you_do": "Ask whether the current diff is safe to merge.",
44
+ "you_get": "The gate script's lint, typecheck and test result, then findings from the correctness, security and code-quality reviewers, ending in one verdict.",
45
+ "decide": "Gate G2 is the script's exit code: READY moves on; NOT READY goes back to implementation, at most three times before BLOCKED."
46
+ },
47
+ {
48
+ "skill": "council-review",
49
+ "you_do": "Only if the review surfaced a design disagreement, put it to the panel.",
50
+ "you_get": "Independent positions, the named cruxes, and a Chair's verdict with dissent recorded.",
51
+ "decide": "Gate G2.1: a human merges. SPLIT and RECONSIDER leave the loop rather than revising in the diff."
52
+ }
53
+ ],
54
+ "you_end_with": "A shaped story, verified code and tests, a READY verdict with the review findings, and a human merge decision."
55
+ }
22
56
  }
@@ -0,0 +1,30 @@
1
+ [
2
+ {
3
+ "query": "Run an a11y audit on this signup page markup",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Is this component WCAG 2.2 AA compliant? Find what blocks screen-reader users",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Here's a screenshot of our dashboard — what accessibility issues can you spot before we build it?",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "We failed an accessibility review; check this modal for keyboard traps and focus problems",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "What WCAG level should our new product commit to, and on which scope?",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Review this PR for correctness bugs and edge cases",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Implement this date-picker story with tests until the acceptance criteria pass",
28
+ "should_trigger": false
29
+ }
30
+ ]
@@ -0,0 +1,19 @@
1
+ {
2
+ "skill_name": "accessibility-audit",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Audit this checkout form component before we ship:\n\n<form>\n <div class=\"title\">Payment</div>\n <input placeholder=\"Card number\" style=\"color:#999;background:#fff\">\n <input placeholder=\"Expiry\">\n <span class=\"err\" style=\"color:red\">Invalid</span>\n <img src=\"lock.svg\" alt=\"image\">\n <div class=\"btn\" onclick=\"submit()\" style=\"width:20px;height:20px\">Pay</div>\n</form>\n\nTarget is WCAG 2.2 AA.",
7
+ "assertions": [
8
+ "Opens with a coverage note stating what markup alone can and cannot verify (e.g. actual screen-reader output, live focus order)",
9
+ "Every finding cites a specific success criterion with number, name, and level (e.g. 2.1.1 Keyboard [A], 4.1.2 Name, Role, Value [A])",
10
+ "Every finding names the user group and assistive tech it blocks (e.g. keyboard-only, NVDA/VoiceOver users)",
11
+ "The div-as-button is a blocker for keyboard and screen-reader users; minor issues like the lock icon's alt text are not inflated to blocker",
12
+ "Contrast for #999 on #fff is given as a computed ratio (about 2.85:1) against the 4.5:1 threshold, and the 20x20 target is checked against 2.5.8's 24x24 minimum",
13
+ "Each finding is tagged [auto] or [manual] and has a concrete fix",
14
+ "Ends with a 'what's solid' section and a must-verify-with-live-AT checklist",
15
+ "Does not claim a pass on any behavior the markup can't show, and does not invent elements not in the snippet"
16
+ ]
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,30 @@
1
+ [
2
+ {
3
+ "query": "Help me create a new skilldrop skill from scratch",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Generate the manifest, SKILL.md, and evals for a skill I want to contribute",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "I have an idea for a skill in the dev-team pack — walk me through authoring it",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Scaffold a new skill for our private fork so it passes validate.py",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "I edited the bug-triage SKILL.md — regenerate its eval cases",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Add more eval coverage to an existing skill's evals folder",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Generate an AGENTS.md for this repository",
28
+ "should_trigger": false
29
+ }
30
+ ]
@@ -0,0 +1,19 @@
1
+ {
2
+ "skill_name": "contribution-wizard",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "I want to add a new skill to skilldrop called `sla-credit-calculator`. It takes a customer contract's SLA terms plus a month of uptime data and outputs the service credit owed, with the calculation shown. It belongs in the sre-oncall pack, it generates an artifact (not a gate), it relates to runbook-generator and incident-comms, and it needs no external deps. Generate everything I need to submit it.",
7
+ "assertions": [
8
+ "Produces manifest.json, SKILL.md, evals/cases.json, and a skill-catalogue row, each in its own fenced code block, in a single response",
9
+ "The manifest includes every required field (name, version, description, entrypoint, deps, env, related, tags, model with tier and rationale)",
10
+ "The related array lists only skills that exist (runbook-generator, incident-comms) and tells the author to check the skills directory before finalizing",
11
+ "SKILL.md's How to respond steps are observable actions — none read 'think about X' or 'consider Y'",
12
+ "The quality bar names at least two things the output must never do (e.g. never invent uptime figures not in the input)",
13
+ "evals/cases.json has eight cases with realistic triggers, covering happy-path, edge, anti-pattern, and boundary cases",
14
+ "Ends with next steps that place files under packs/sre-oncall/skills/sla-credit-calculator/ and require python3 validate.py to pass before opening a PR",
15
+ "Does not invent inputs, deps, or related skills the author did not give"
16
+ ]
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,30 @@
1
+ [
2
+ {
3
+ "query": "Implement this ticket and make sure every acceptance criterion actually has a test",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Build this story, review your own code adversarially, and fix the gaps",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Here's a feature spec with acceptance criteria — give me shippable, self-checked code",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Implement the password-reset flow per these criteria and loop until the review is clean",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Review this PR I wrote for edge cases and broken assumptions",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Should we use Postgres or DynamoDB for the new service? Write it up for review",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Run the pre-merge gate on my branch before I open the PR",
28
+ "should_trigger": false
29
+ }
30
+ ]
@@ -0,0 +1,19 @@
1
+ {
2
+ "skill_name": "feature-implement-loop",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Implement this story in our Python/FastAPI service (pytest, ruff, mypy already set up):\n\nAs an admin, I can export the audit log for a date range as CSV.\nAcceptance criteria:\n1. GET /admin/audit/export?from=YYYY-MM-DD&to=YYYY-MM-DD returns text/csv.\n2. Non-admins get 403.\n3. from after to returns 400 with a clear message.\n4. Ranges over 90 days return 400.\n5. The CSV opens cleanly in Excel.\n\nBuild it and check your own work.",
7
+ "assertions": [
8
+ "Restates the five acceptance criteria as a numbered checklist before writing code",
9
+ "Plans a named test per criterion up front and flags criterion 5 (opens cleanly in Excel) as manual-verify",
10
+ "Runs the project's tests plus ruff and mypy, and does not report VERIFIED while any command is red",
11
+ "Review findings are tagged blocker/major/minor/nit with file:line and a concrete fix, covering edge cases, security (e.g. authz on the admin route, CSV formula injection), and craft",
12
+ "Tests assert the criterion's expected output (status codes, content type, messages), not just that the call didn't throw",
13
+ "Stops at or before 3 rounds, and later rounds patch only the named gaps rather than regenerating the whole feature",
14
+ "Final report has a status (VERIFIED, VERIFIED WITH OPEN ITEMS, or BLOCKED), an acceptance-criteria table mapping each criterion to a test, manual-verify, or open item, an honest round log, and open items",
15
+ "Does not add criteria the user did not give without echoing them back first"
16
+ ]
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,30 @@
1
+ [
2
+ {
3
+ "query": "Write release notes for everything since the last tag",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Update CHANGELOG.md for v3.1 from the git history",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "What's in this release? Turn v1.8.0..v1.9.0 into customer-facing notes",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Draft a deploy announcement for internal stakeholders from these merged PRs",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Review the changes in this release for risk before we ship",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Write a one-page summary for the board on why this release matters strategically",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Run a Sonar quality review on the code merged this sprint",
28
+ "should_trigger": false
29
+ }
30
+ ]
@@ -0,0 +1,19 @@
1
+ {
2
+ "skill_name": "release-notes",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Write release notes for v2.4.0 from this log (range v2.3.0..HEAD, 2026-08-12 to 2026-09-28):\n\na1b2c3d|feat: bulk CSV import for contacts (#412)\ne4f5a6b|fix: NPE in ReportExporter.flush() when >10k rows (#418)\nc7d8e9f|feat!: remove legacy /v1/contacts endpoint (#420)\n0a1b2c3|chore(deps): bump lodash 4.17.20 -> 4.17.21\n4d5e6f7|refactor: extract ExportService\n8a9b0c1|fix stuff\n2d3e4f5|perf: cache tenant settings, report export ~3x faster (#425)",
7
+ "assertions": [
8
+ "States the range, commit count (7), and date span at the top",
9
+ "The removal of /v1/contacts is hoisted to the top of both artifacts with an 'Action required' line and names the !: marker that flagged it",
10
+ "Customer notes contain no commit-speak — no ReportExporter.flush(), class names, ticket numbers, or author names",
11
+ "The lodash bump and the ExportService refactor appear only in the internal changelog, never in customer notes, not even as 'various improvements'",
12
+ "Every internal changelog line ends with its short hash, plus PR number where present",
13
+ "The vague 'fix stuff' commit (8a9b0c1) goes in the Needs review list with its hash, not guessed into customer notes",
14
+ "No marketing adjectives; the performance line states the measured change (~3x faster export) rather than 'blazing fast'",
15
+ "Does not invent features or fixes not present in the log"
16
+ ]
17
+ }
18
+ ]
19
+ }
@@ -18,5 +18,44 @@
18
18
  "verification": "prfaq returns a launch press release, a customer FAQ and an internal FAQ that names the hard questions.",
19
19
  "recovery": "If prfaq does not activate, ask for it by name (\"use prfaq\") and check that its folder exists in your skills folder (`~/.claude/skills/` by default)."
20
20
  },
21
- "requires": ["core"]
21
+ "requires": ["core"],
22
+ "journey": {
23
+ "when": "You are deciding what to build and need a requirement a human has agreed to before design starts.",
24
+ "you_bring": [
25
+ "the feature idea or problem and who it is for",
26
+ "the stakeholders you can talk to",
27
+ "interview notes or evidence you already have"
28
+ ],
29
+ "time": "1–2 hours of working time, plus the interviews themselves",
30
+ "steps": [
31
+ {
32
+ "skill": "requirements-interview",
33
+ "you_do": "Describe the feature idea and list the stakeholders.",
34
+ "you_get": "An interview kit per stakeholder with up to seven questions ranked by how much the answer changes the design, at least one disconfirming question each, and an assumptions ledger."
35
+ },
36
+ {
37
+ "skill": "brief-intake",
38
+ "you_do": "Paste the interview notes once you have run the interviews.",
39
+ "you_get": "One brief with every field tagged explicit, implied, inferred or missing, quoting the source.",
40
+ "decide": "Resolve the missing fields yourself; the PRD must not invent them."
41
+ },
42
+ {
43
+ "skill": "prd-draft",
44
+ "you_do": "Hand it the resolved brief.",
45
+ "you_get": "A PRD with an evidence-backed problem statement, numbered MoSCoW requirements, non-goals, and a success line per goal."
46
+ },
47
+ {
48
+ "skill": "doc-critique",
49
+ "you_do": "Run it on the PRD, then take the result to whoever owns the decision.",
50
+ "you_get": "A severity-tagged critique of the PRD with a verdict and a fix for each finding.",
51
+ "decide": "Gate G0, a human call: PROCEED, PROCEED WITH CONDITIONS, REVISE (back to the brief), RECONSIDER (wrong problem) or BLOCKED."
52
+ },
53
+ {
54
+ "skill": "success-metrics",
55
+ "you_do": "Once the PRD is ratified, ask how you will know the feature worked.",
56
+ "you_get": "One primary metric with baseline, target and timeframe, guardrail metrics, the events to instrument, and a decision rule if the target is missed."
57
+ }
58
+ ],
59
+ "you_end_with": "Interview kits, a tagged brief, a ratified PRD, and a measurement plan agreed before anyone builds."
60
+ }
22
61
  }
@@ -0,0 +1,30 @@
1
+ [
2
+ {
3
+ "query": "Write the business case for building our own feature-flag service versus buying one",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Should we invest two engineer-quarters in rebuilding search? I need something to take to the sponsor",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Compare build vs buy vs defer for the new data pipeline, with the cost of doing nothing priced",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "I need budget approval for an observability overhaul — help me justify the spend",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "The investment's approved — now write the PRD for the ML router",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Pick between Kafka, Kinesis, and Pub/Sub for the approved event bus",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Compress this 12-page business case into a one-page summary for the board",
28
+ "should_trigger": false
29
+ }
30
+ ]
@@ -0,0 +1,19 @@
1
+ {
2
+ "skill_name": "business-case",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Write the business case for replacing our homegrown support ticket router at Northwind. Today 40 agents each spend about 20 minutes a day manually re-routing misassigned tickets (from a two-week time study). Loaded agent cost is $45/hour. Options on the table: build a ML router (estimate 3 engineers for 2 quarters), buy a vendor tool (Vendor X quoted $60k/year, year-two price unknown), or keep things as they are. The same 3 engineers would otherwise ship the self-serve billing portal. The VP of Support decides by November 15.",
7
+ "assertions": [
8
+ "The first lines state the ask — option, cost, benefit range, and the November 15 deadline — in under 40 words",
9
+ "Option 0 (do nothing) is present and costed using the user's 40 agents x 20 min/day x $45/hour figures",
10
+ "Every benefit is a re-runnable calculation with formula, sourced inputs, and a confidence tag (high/medium/low)",
11
+ "Outputs such as ROI and payback are ranges with a stated lean, not single-point figures like '327% ROI'",
12
+ "Each option shows build, run, and opportunity cost, with the displaced work named as the self-serve billing portal",
13
+ "The vendor's unknown year-two price is called out as an unknown or flagged assumption, not filled with an invented number",
14
+ "Names the flip-assumption that would reverse the recommendation, with a de-risking step if its confidence is low",
15
+ "Recommends exactly one option and states the runner-up's strongest argument fairly"
16
+ ]
17
+ }
18
+ ]
19
+ }
@@ -18,5 +18,48 @@
18
18
  "verification": "adr-generator returns an ADR with context, the options considered with their trade-offs, the decision, and its consequences.",
19
19
  "recovery": "If adr-generator does not activate, ask for it by name (\"use adr-generator\") and check that its folder exists in your skills folder (`~/.claude/skills/` by default)."
20
20
  },
21
- "requires": ["core"]
21
+ "requires": ["core"],
22
+ "journey": {
23
+ "when": "You have an agreed requirement and need to decide how to build it, then record that decision.",
24
+ "you_bring": [
25
+ "the ratified requirement or PRD",
26
+ "known constraints: traffic, data, compliance, existing systems",
27
+ "the options you are weighing, if you already have them"
28
+ ],
29
+ "time": "1–3 hours",
30
+ "steps": [
31
+ {
32
+ "skill": "nfr-spec",
33
+ "you_do": "Describe the feature or system and what you know about load, data and users.",
34
+ "you_get": "Every non-functional category set to a measurable target, an explicit n/a, or a tagged default."
35
+ },
36
+ {
37
+ "skill": "design-doc",
38
+ "you_do": "Give it the requirement and the NFR targets.",
39
+ "you_get": "A design doc with problem, goals and non-goals, options considered, the recommended approach, risks and rollout."
40
+ },
41
+ {
42
+ "skill": "architecture-diagrams",
43
+ "you_do": "Ask for diagrams of the recommended approach from the design doc.",
44
+ "you_get": "Mermaid, PlantUML or C4 diagrams that must agree with the doc."
45
+ },
46
+ {
47
+ "skill": "threat-model",
48
+ "you_do": "Hand it the design doc and diagrams.",
49
+ "you_get": "A STRIDE threat model with assets and trust boundaries, attack scenarios at each boundary crossing, and ranked, verifiable mitigations."
50
+ },
51
+ {
52
+ "skill": "council-review",
53
+ "you_do": "Put the design and threat model in front of the review panel.",
54
+ "you_get": "Independent positions from each seat, the named cruxes, and a Chair's verdict that records dissent and what would change the decision.",
55
+ "decide": "Gate G1: PROCEED or PROCEED WITH CONDITIONS moves on; REVISE sends you back to the design doc; SPLIT or RECONSIDER leaves the loop."
56
+ },
57
+ {
58
+ "skill": "adr-generator",
59
+ "you_do": "Ask for the ADR once the panel has agreed, including any conditions it set.",
60
+ "you_get": "An ADR in MADR or Nygard format with context, the options and why each was rejected, the decision and its consequences."
61
+ }
62
+ ],
63
+ "you_end_with": "NFR targets, a design doc with matching diagrams, a threat model, the panel's verdict, and an ADR that carries its conditions."
64
+ }
22
65
  }
@@ -0,0 +1,30 @@
1
+ [
2
+ {
3
+ "query": "Postgres vs DynamoDB for our multi-tenant OLTP store — build me a weighted matrix",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "We're choosing between Snowflake and Databricks; score them against our criteria",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Compare three observability vendors and recommend one for our team",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Which frontend framework should we pick — React, Vue, or Svelte — for this app? Show the scoring",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Write the business case for whether to invest in a data platform at all",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Record the decision to adopt Kafka as an architecture decision record",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Write a design doc proposing the new event-driven architecture for review",
28
+ "should_trigger": false
29
+ }
30
+ ]
@@ -0,0 +1,18 @@
1
+ {
2
+ "skill_name": "tech-comparison-matrix",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Help us pick a message broker: Kafka (self-managed), Amazon Kinesis, or RabbitMQ. Use case: order-event streaming for a multi-tenant SaaS app at Acme, about 5k events/sec at peak, consumers need replay for up to 7 days, ordering per tenant matters. Hard constraints: we run on AWS, and the platform team is two people with no capacity to run self-hosted clusters on call.",
7
+ "assertions": [
8
+ "Uses 8 to 10 criteria spanning capability fit, operational, cost, and risk, and names any criteria deliberately excluded",
9
+ "Shows a 1-5 weight for every criterion with the weight tied in writing to the use case or constraints (e.g. operational burden weighted high because the platform team is two people)",
10
+ "Every score has a one-line justification, and every 5 and every 1 is explained",
11
+ "Totals are computed as sum(weight x score), and a gap under 5% between the top options is called out",
12
+ "Ties are allowed where options genuinely don't differ; scores are not uniformly 3/5",
13
+ "The recommendation is one sentence and says what would change the answer; if it isn't the top scorer, the override is explained",
14
+ "Numbers that are estimates are marked 'rough' or 'directional'; no benchmarks are invented beyond the figures in the prompt"
15
+ ]
16
+ }
17
+ ]
18
+ }
@@ -18,5 +18,37 @@
18
18
  "verification": "runbook-generator returns a runbook with rollback commands, the common incidents and what to do for each, and an escalation path. Facts you did not give it are marked missing, not invented.",
19
19
  "recovery": "If runbook-generator does not activate, ask for it by name (\"use runbook-generator\") and check that its folder exists in your skills folder (`~/.claude/skills/` by default)."
20
20
  },
21
- "requires": ["core"]
21
+ "requires": ["core"],
22
+ "journey": {
23
+ "when": "You are getting a service ready to run, handling an incident, or writing it up afterwards; you can join at whichever stage you are in.",
24
+ "you_bring": [
25
+ "the service: what it does, where it runs, what it depends on, who gets paged",
26
+ "during or after an incident: the timeline, the Slack thread or pager log, and the known impact",
27
+ "facts only; the skills mark anything you leave out as missing rather than guessing it"
28
+ ],
29
+ "steps": [
30
+ {
31
+ "skill": "observability-plan",
32
+ "you_do": "Describe the service and its main user journeys.",
33
+ "you_get": "SLIs and SLOs with error budgets, burn-rate alerts split into page and ticket, and a metrics, logs and traces plan with a cardinality and cost budget."
34
+ },
35
+ {
36
+ "skill": "runbook-generator",
37
+ "you_do": "Give it the service details and the alerts from the plan.",
38
+ "you_get": "A runbook with deploy and rollback steps, what to do for each common incident, escalation, SLOs, dashboards and dependencies, with unknown facts marked missing."
39
+ },
40
+ {
41
+ "skill": "incident-comms",
42
+ "you_do": "During an incident, say what users are seeing and what stage you are in (detect, mitigate or resolve).",
43
+ "you_get": "Separate updates for the status page, internal stakeholders and execs, each leading with user impact and naming the next update time, with no guessed cause or ETA."
44
+ },
45
+ {
46
+ "skill": "postmortem-generator",
47
+ "you_do": "Paste the incident thread, pager timeline and notes once it is over.",
48
+ "you_get": "A blameless postmortem with quantified impact, a UTC timeline showing detection and mitigation gaps, contributing factors, up to eight action items, and runbook deltas phrased as edits.",
49
+ "decide": "Gate G3, a human call: PROCEED closes it, PROCEED WITH CONDITIONS closes it with named follow-ups, REVISE sends the deltas back to the runbook."
50
+ }
51
+ ],
52
+ "you_end_with": "An observability plan, a runbook tied to its alerts, the incident updates you sent, and a postmortem whose deltas go back into the runbook."
53
+ }
22
54
  }
@@ -0,0 +1,30 @@
1
+ [
2
+ {
3
+ "query": "What will this service cost to run at 10x our current tenants?",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Size capacity and estimate the AWS bill for our launch next quarter",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Our cloud bill jumped — model what's driving it and where the next cliff is",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Build a cost-per-request model for the new ingestion pipeline",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Should we build or buy a search platform? Write the business case",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Set the latency and availability targets for the search service",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Plan the cutover sequence for moving search from Elasticsearch to OpenSearch",
28
+ "should_trigger": false
29
+ }
30
+ ]
@@ -0,0 +1,19 @@
1
+ {
2
+ "skill_name": "capacity-cost-model",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Model the run cost for our new document-search service at Northwind on AWS. Demand: 1,200 active tenants today, growing about 8% a month; average 15 searches/sec, peak 60/sec weekday mornings. Each tenant indexes about 2 GB. We'll use OpenSearch, ECS Fargate for the API, and CloudWatch for logs. There are dev and staging environments too. What will it cost now and at 3x and 10x?",
7
+ "assertions": [
8
+ "Sizes from the demand driver (tenants and searches/sec, with the 8%/month growth curve), not from a chosen instance count",
9
+ "Every cost line is a unit price x quantity, with the unit price's source and date tagged",
10
+ "Expresses unit economics (e.g. cost per active tenant per month), not just a bare monthly total",
11
+ "Egress, observability (CloudWatch logs), and non-prod (dev and staging) lines are present or explicitly marked n/a",
12
+ "States average and peak load separately and makes the headroom/target-utilization choice explicit with reasoning",
13
+ "Projects 1x/3x/10x and names at least one scaling cliff (e.g. an OpenSearch tier or shard step) rather than extrapolating linearly",
14
+ "Outputs are low/expected/high ranges with a lean, and the cost-per-tenant trend at scale is checked and flagged if it rises",
15
+ "Does not invent demand figures or services beyond those in the prompt; unknown inputs are stated as assumptions"
16
+ ]
17
+ }
18
+ ]
19
+ }
@@ -18,5 +18,43 @@
18
18
  "verification": "exec-summary returns a one-page summary that a time-poor reader can act on in 30 seconds, written without jargon.",
19
19
  "recovery": "If exec-summary does not activate, ask for it by name (\"use exec-summary\") and check that its folder exists in your skills folder (`~/.claude/skills/` by default)."
20
20
  },
21
- "requires": ["core"]
21
+ "requires": ["core"],
22
+ "journey": {
23
+ "when": "You need to turn a long document or a meeting into something a non-technical or time-poor audience can act on.",
24
+ "you_bring": [
25
+ "the long document, such as a design doc or proposal",
26
+ "notes or a transcript from the meeting where it was discussed",
27
+ "who the audience is, such as a steering committee or an exec sponsor"
28
+ ],
29
+ "time": "30–60 minutes",
30
+ "steps": [
31
+ {
32
+ "skill": "decision-log",
33
+ "you_do": "Paste the meeting notes, thread or transcript.",
34
+ "you_get": "A structured log of decisions, action items, owners and due dates you can paste into a doc or tracker."
35
+ },
36
+ {
37
+ "skill": "audience-profile",
38
+ "you_do": "Say who will read it, in your own words.",
39
+ "you_get": "The audience archetype with its rules: length, density, tone, must-have sections and things to never include."
40
+ },
41
+ {
42
+ "skill": "exec-summary",
43
+ "you_do": "Hand it the long document, the decisions, and the audience profile.",
44
+ "you_get": "A one-page summary a time-poor reader can act on in 30 seconds, without jargon."
45
+ },
46
+ {
47
+ "skill": "doc-critique",
48
+ "you_do": "Run it on the summary before it goes out.",
49
+ "you_get": "A verdict and severity-tagged findings, such as a missing Ask, each with a suggested fix.",
50
+ "decide": "Ship, ship with the listed changes, or rewrite."
51
+ },
52
+ {
53
+ "skill": "output-hygiene",
54
+ "you_do": "Run it on the final version.",
55
+ "you_get": "The text with machine artifacts stripped and any prose tells quoted with rewrites."
56
+ }
57
+ ],
58
+ "you_end_with": "A decision log with owners and dates, and a reviewed one-page summary ready to send."
59
+ }
22
60
  }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Write setup instructions for getting our service running locally from these notes",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Turn this architecture description into an onboarding walkthrough for new engineers",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Document these webhook events and payloads for the developers who'll consume them",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Make a quickstart guide out of this messy README",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Write the on-call runbook with escalation and rollback for the billing service",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Draft a design proposal with options and trade-offs for the new billing architecture",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Summarize this 20-page spec for the executive team",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Here's a raw Slack thread — structure it into a brief first",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,18 @@
1
+ {
2
+ "skill_name": "guide-builder",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Turn these notes into a guide for new engineers getting our Acme billing service running locally:\n\n- need docker + node 20\n- clone acme/billing, cp .env.example .env, set STRIPE_KEY to a test key\n- docker compose up -d postgres\n- npm ci then npm run migrate\n- npm run dev, it listens on 4000\n- if migrate fails it's usually postgres not up yet",
7
+ "assertions": [
8
+ "States the detected style (setup guide) up front with a one-line why and an invitation to redirect",
9
+ "Prerequisites are listed before the first step, and placeholders like <YOUR_STRIPE_TEST_KEY> are unmistakable and listed once up front",
10
+ "Each numbered step contains one action — 'npm ci then npm run migrate' is split into separate steps",
11
+ "Every command block is complete, paste-able, and followed by an expected result or verification (e.g. the service answers on port 4000)",
12
+ "Leads with the outcome rather than backstory, and pushes troubleshooting (migrate failing because postgres isn't up) to the end",
13
+ "No forward references that break top-to-bottom reading",
14
+ "Missing facts (e.g. the repo URL host or how to get a Stripe test key) are flagged as NEEDS INPUT rather than invented"
15
+ ]
16
+ }
17
+ ]
18
+ }