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.
Files changed (83) hide show
  1. package/README.md +7 -2
  2. package/bin/skilldrop.js +179 -3
  3. package/model-routing.json +4 -0
  4. package/package.json +2 -2
  5. package/packs.json +8 -3
  6. package/skills/adr-generator/evals/eval_queries.json +34 -0
  7. package/skills/adr-generator/evals/evals.json +17 -0
  8. package/skills/ai-adoption-rollout/SKILL.md +61 -0
  9. package/skills/ai-adoption-rollout/evals/eval_queries.json +34 -0
  10. package/skills/ai-adoption-rollout/evals/evals.json +19 -0
  11. package/skills/ai-adoption-rollout/manifest.json +33 -0
  12. package/skills/ai-readiness-assessment/SKILL.md +66 -0
  13. package/skills/ai-readiness-assessment/evals/eval_queries.json +34 -0
  14. package/skills/ai-readiness-assessment/evals/evals.json +17 -0
  15. package/skills/ai-readiness-assessment/manifest.json +34 -0
  16. package/skills/ai-usage-policy/SKILL.md +67 -0
  17. package/skills/ai-usage-policy/evals/eval_queries.json +34 -0
  18. package/skills/ai-usage-policy/evals/evals.json +19 -0
  19. package/skills/ai-usage-policy/manifest.json +33 -0
  20. package/skills/ai-use-case-triage/SKILL.md +59 -0
  21. package/skills/ai-use-case-triage/evals/eval_queries.json +34 -0
  22. package/skills/ai-use-case-triage/evals/evals.json +18 -0
  23. package/skills/ai-use-case-triage/manifest.json +34 -0
  24. package/skills/api-contract-draft/evals/eval_queries.json +34 -0
  25. package/skills/api-contract-draft/evals/evals.json +18 -0
  26. package/skills/architecture-diagrams/evals/eval_queries.json +34 -0
  27. package/skills/architecture-diagrams/evals/evals.json +16 -0
  28. package/skills/audience-profile/evals/eval_queries.json +34 -0
  29. package/skills/audience-profile/evals/evals.json +15 -0
  30. package/skills/brief-intake/evals/eval_queries.json +34 -0
  31. package/skills/brief-intake/evals/evals.json +16 -0
  32. package/skills/bug-triage/evals/eval_queries.json +34 -0
  33. package/skills/bug-triage/evals/evals.json +17 -0
  34. package/skills/council-review/evals/eval_queries.json +38 -0
  35. package/skills/council-review/evals/evals.json +18 -0
  36. package/skills/data-contract/evals/eval_queries.json +34 -0
  37. package/skills/data-contract/evals/evals.json +16 -0
  38. package/skills/db-schema-design/evals/eval_queries.json +34 -0
  39. package/skills/db-schema-design/evals/evals.json +16 -0
  40. package/skills/decision-log/evals/eval_queries.json +34 -0
  41. package/skills/decision-log/evals/evals.json +17 -0
  42. package/skills/deck-builder/evals/eval_queries.json +34 -0
  43. package/skills/deck-builder/evals/evals.json +17 -0
  44. package/skills/design-doc/evals/eval_queries.json +34 -0
  45. package/skills/design-doc/evals/evals.json +17 -0
  46. package/skills/devils-advocate/evals/eval_queries.json +38 -0
  47. package/skills/devils-advocate/evals/evals.json +19 -0
  48. package/skills/doc-critique/evals/eval_queries.json +38 -0
  49. package/skills/doc-critique/evals/evals.json +17 -0
  50. package/skills/exec-summary/evals/eval_queries.json +34 -0
  51. package/skills/exec-summary/evals/evals.json +17 -0
  52. package/skills/figma-diagrams/evals/eval_queries.json +34 -0
  53. package/skills/figma-diagrams/evals/evals.json +15 -0
  54. package/skills/incident-comms/evals/eval_queries.json +34 -0
  55. package/skills/incident-comms/evals/evals.json +16 -0
  56. package/skills/migration-plan/evals/eval_queries.json +34 -0
  57. package/skills/migration-plan/evals/evals.json +16 -0
  58. package/skills/nfr-spec/evals/eval_queries.json +34 -0
  59. package/skills/nfr-spec/evals/evals.json +16 -0
  60. package/skills/observability-plan/evals/eval_queries.json +34 -0
  61. package/skills/observability-plan/evals/evals.json +16 -0
  62. package/skills/postmortem-generator/evals/eval_queries.json +34 -0
  63. package/skills/postmortem-generator/evals/evals.json +17 -0
  64. package/skills/prd-draft/evals/eval_queries.json +34 -0
  65. package/skills/prd-draft/evals/evals.json +17 -0
  66. package/skills/requirements-interview/evals/eval_queries.json +34 -0
  67. package/skills/requirements-interview/evals/evals.json +16 -0
  68. package/skills/reverse-architecture/evals/eval_queries.json +34 -0
  69. package/skills/reverse-architecture/evals/evals.json +16 -0
  70. package/skills/runbook-generator/evals/eval_queries.json +34 -0
  71. package/skills/runbook-generator/evals/evals.json +17 -0
  72. package/skills/slide-outliner/evals/eval_queries.json +34 -0
  73. package/skills/slide-outliner/evals/evals.json +16 -0
  74. package/skills/sonar-onboard/evals/eval_queries.json +34 -0
  75. package/skills/sonar-onboard/evals/evals.json +16 -0
  76. package/skills/sonar-review/evals/eval_queries.json +34 -0
  77. package/skills/sonar-review/evals/evals.json +16 -0
  78. package/skills/test-plan-generator/evals/eval_queries.json +34 -0
  79. package/skills/test-plan-generator/evals/evals.json +16 -0
  80. package/skills/threat-model/evals/eval_queries.json +34 -0
  81. package/skills/threat-model/evals/evals.json +18 -0
  82. package/skills/user-story-splitter/evals/eval_queries.json +34 -0
  83. package/skills/user-story-splitter/evals/evals.json +16 -0
@@ -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,38 @@
1
+ [
2
+ {
3
+ "query": "Convene the council on this architecture decision",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "I want multiple senior perspectives to deliberate this change",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Get an architect, security, and SRE view on this before we commit",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Run a pre-mortem style multi-perspective review of this RFC",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "This is risky and load-bearing — I need more than one reviewer's lens",
20
+ "should_trigger": true
21
+ },
22
+ {
23
+ "query": "Review this code for edge cases the first pass missed",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Critique this document against its quality bar",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Score Postgres vs DynamoDB on weighted criteria",
32
+ "should_trigger": false
33
+ },
34
+ {
35
+ "query": "Write the ADR recording the decision we already made",
36
+ "should_trigger": false
37
+ }
38
+ ]
@@ -0,0 +1,18 @@
1
+ {
2
+ "skill_name": "council-review",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "We're considering moving our monolith's checkout flow onto a separate service before Black Friday. Convene the council and give me a verdict.",
7
+ "assertions": [
8
+ "Each of the five standing seats takes an independent stance (support / conditions / oppose / abstain) before any cross-talk",
9
+ "Every seat point is concrete and attached to evidence — file:line for code, or the named assumption for a decision",
10
+ "Genuine disagreements are surfaced as named cruxes; agreement is reported honestly as unanimous rather than manufactured into conflict",
11
+ "A Chair issues a single reconciled verdict (PROCEED / WITH CONDITIONS / REVISE / RECONSIDER / SPLIT)",
12
+ "The verdict names the tradeoff chosen, records dissent, and states what would change the decision",
13
+ "Bench seats are added only when the change warrants them, and benching is stated explicitly",
14
+ "No persona cosplay — the persona is used as a lens, not costume prose"
15
+ ]
16
+ }
17
+ ]
18
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Write a data contract for this table",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "We have downstream consumers of this dataset — define the contract and its SLAs",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Define the schema and quality guarantees for this event stream",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "What should our producers promise consumers about this data?",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Draft the OpenAPI spec for our REST API",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Design the database schema and indexes from our access patterns",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Write the product requirements document",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Plan our observability and alerting",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,16 @@
1
+ {
2
+ "skill_name": "data-contract",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "We publish an `orders_daily` table that three downstream teams consume. Write the data contract.",
7
+ "assertions": [
8
+ "Every field carries a meaning plus a unit or allowed-values, not merely a type — the cents-vs-dollars class of bug is designed out",
9
+ "Every quality SLA states a threshold, a check, and a breach action; 'high quality' is rejected as an SLA",
10
+ "The evolution policy explicitly names meaning-change-under-a-stable-name as a breaking change",
11
+ "The contract names the owner and the consumers it is a promise to",
12
+ "Freshness, completeness, validity, and distribution are each addressed or explicitly marked not-applicable"
13
+ ]
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Design the database schema for this feature",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "What tables, keys, and indexes do I need for these queries?",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Should this be relational or document, given our access patterns?",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Model the data layer for this access pattern list",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Write a data contract for the table our consumers read",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Draft the OpenAPI contract for the service",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Diagram our system architecture",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Plan the migration from the old schema",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,16 @@
1
+ {
2
+ "skill_name": "db-schema-design",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Design the schema for an order-history feature. Queries: fetch one order by id, list a customer's orders newest-first, and report daily totals by region.",
7
+ "assertions": [
8
+ "Access patterns are listed before the schema, with frequency and selectivity",
9
+ "The paradigm choice is justified against those access patterns — relational-by-default needs no defence, every move past it does",
10
+ "Keys and partitioning are justified by the actual queries; a random UUIDv4 clustered primary key is not used without a stated reason",
11
+ "Every index maps to a real predicate from the listed queries rather than being speculative",
12
+ "Denormalization, where proposed, names the read it serves and the write cost it adds"
13
+ ]
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Extract the decisions and action items from these meeting notes",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Turn this Slack thread into a decision log with owners and due dates",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "What did we actually decide in this transcript, and who owns what?",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Give me a structured log of decisions from this design review",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Write an ADR for the decision we made",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Summarize this meeting for executives",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Draft the design doc for what we agreed",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Critique the quality of this decision log",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,17 @@
1
+ {
2
+ "skill_name": "decision-log",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Pull the decisions and action items out of this design-review transcript. [transcript: mixed opinions, a couple of agreed decisions, some unowned follow-ups, and relative dates like 'next Friday']",
7
+ "assertions": [
8
+ "Opinions are not promoted to decisions — only items the group acknowledged appear as decisions",
9
+ "Ownership is never invented; items with no named owner are flagged unowned rather than assigned",
10
+ "The source column quotes the discussion verbatim in a short snippet, not a paraphrase",
11
+ "Action items are written in active voice",
12
+ "Relative dates are converted to absolute dates, marked when inferred",
13
+ "The output is a structured table the user can paste into a doc or tracker"
14
+ ]
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Build me a PowerPoint from this content",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Generate a .pptx deck for this exec presentation",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Turn this into actual slides I can present, with our brand colors",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "I need a real deck file, not an outline",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Just outline the slides — I'll build the deck myself",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Write a one-page summary for executives",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Which audience archetype should I target and what are its rules?",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Critique the deck I already made",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,17 @@
1
+ {
2
+ "skill_name": "deck-builder",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Build a .pptx from this content for an exec audience, using our brand palette (navy/white).",
7
+ "assertions": [
8
+ "A real .pptx file is produced, not an outline",
9
+ "The title slide carries a real title, subtitle, presenter, and date — never left blank",
10
+ "Section dividers appear sparingly, at most one every 4-5 content slides",
11
+ "Big-number layouts use only numbers the user supplied; no statistic is invented for emphasis",
12
+ "Bullet density matches the stated audience rather than a fixed default",
13
+ "The requested palette is applied rather than the default theme"
14
+ ]
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Draft a design doc for this feature",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Write a Google-style engineering design document from this brief",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "I need a technical design with goals, non-goals, alternatives, and rollout",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Turn this feature brief into a design doc the team can review",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Write an ADR recording this one decision",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Draft the product requirements document for this feature",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Critique the design doc I already wrote",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Split this epic into user stories",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,17 @@
1
+ {
2
+ "skill_name": "design-doc",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Draft a design doc for a notification service that consumes domain events and delivers email and push notifications for about 1M events/day.",
7
+ "assertions": [
8
+ "Non-goals are real scope boundaries a reader might otherwise assume are in scope, not throat-clearing",
9
+ "Each alternative carries a two-sentence what-it-is and why-we-didn't-pick-it",
10
+ "Every risk has a mitigation, not a bare list of concerns",
11
+ "Goals are stated with measurable targets rather than adjectives",
12
+ "The rollout section names stages and what would halt it",
13
+ "Facts not supplied by the user are marked as open questions rather than invented"
14
+ ]
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,38 @@
1
+ [
2
+ {
3
+ "query": "Review this code I just wrote before I merge it",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Anything I might have missed in this implementation?",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Adversarially review this diff for edge cases and broken assumptions",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "I just finished the feature and the tests pass — is it ready to ship?",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Find the bugs a staff engineer would push back on in review",
20
+ "should_trigger": true
21
+ },
22
+ {
23
+ "query": "Critique this design document",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Convene multiple senior personas to deliberate this architecture decision",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Implement this ticket from its acceptance criteria",
32
+ "should_trigger": false
33
+ },
34
+ {
35
+ "query": "Run the full gate and reviewers and tell me if this is safe to merge",
36
+ "should_trigger": false
37
+ }
38
+ ]
@@ -0,0 +1,19 @@
1
+ {
2
+ "skill_name": "devils-advocate",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Here's the payment-retry handler I just finished — it retries failed charges up to 3 times with exponential backoff, and the tests pass. Review it before I open the PR.",
7
+ "assertions": [
8
+ "Every finding has a reproducible scenario a senior engineer can replay mentally — named input, current behavior, expected behavior",
9
+ "Every finding cites file:line, not just a section or function name",
10
+ "Severity is calibrated — blockers do not outnumber majors; inflated findings are demoted",
11
+ "Findings are grouped by the four lenses (edge cases, assumptions, staff-engineer pushback, test-coverage gaps), skipping lenses that do not apply rather than padding",
12
+ "Test-coverage gaps name the concrete missing test case, not 'add more tests'",
13
+ "Assertion theater is called out — tests that execute the code without asserting the behavior",
14
+ "Output ends with a 'what's solid' section so the author knows what not to touch",
15
+ "The review scopes to the change under review, never sweeping the whole codebase"
16
+ ]
17
+ }
18
+ ]
19
+ }
@@ -0,0 +1,38 @@
1
+ [
2
+ {
3
+ "query": "Critique this design doc before I share it",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Review this ADR and tell me where it's weak",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Is this runbook actually good? Give me a structured critique",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Score this exec summary against a quality bar",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Review my document and give me severity-tagged findings with fixes",
20
+ "should_trigger": true
21
+ },
22
+ {
23
+ "query": "Review this pull request for bugs",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Write a new ADR for this decision",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Get five senior personas to deliberate whether we should do this",
32
+ "should_trigger": false
33
+ },
34
+ {
35
+ "query": "Summarize this document for executives",
36
+ "should_trigger": false
37
+ }
38
+ ]
@@ -0,0 +1,17 @@
1
+ {
2
+ "skill_name": "doc-critique",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Critique this design doc before I circulate it to the team. [design doc: a TL;DR full of adjectives, an approach section that says 'industry standard', no SLOs, and a one-line rollout plan]",
7
+ "assertions": [
8
+ "Every finding quotes the document verbatim rather than paraphrasing it — the quoted snippet is the audit trail",
9
+ "Findings are local and anchored to a section, not global judgments like 'the tone is off'",
10
+ "Severity is calibrated — blockers do not outnumber majors",
11
+ "Fixes are paste-able: when the fix is 'add a section', the critique shows what that section should contain",
12
+ "The critique reviews whether the doc made its case, and does not re-debate the underlying technical topic",
13
+ "The document archetype is identified and the critique is run against that archetype's quality bar"
14
+ ]
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Summarize this design doc for our executives",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "I need a one-page summary of this long proposal for a non-technical stakeholder",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Give me the 30-second version of this technical document",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Compress this into something our COO will actually read",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Build me a PowerPoint of this",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Outline the slides for this presentation",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "What should I change about how I present to a board audience?",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Critique this document against its quality bar",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,17 @@
1
+ {
2
+ "skill_name": "exec-summary",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Compress this 14-page platform-migration design doc into a one-page summary for our non-technical COO.",
7
+ "assertions": [
8
+ "Fits one page and leads with the decision or ask, not background",
9
+ "Numbers are quantified where available; where they aren't, the summary says 'directional' rather than inventing precision",
10
+ "A non-engineer meets no unexplained technical term in the first paragraph",
11
+ "No internal team-speak (OKRs, swimlanes, north-star metric) survives into the summary",
12
+ "Nothing is asserted that isn't supported by the source document",
13
+ "The output is prose a reader can scan in ~30 seconds — not slides and not a deck outline"
14
+ ]
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "List the frames in our Figma file",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Read this Figma file structure via the API",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Post a comment on this Figma frame",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Convert this FigJam connector graph into a diagram spec",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Draw an architecture diagram in Mermaid from this description",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Reverse-engineer our architecture from the repo",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Build a PowerPoint deck from this content",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Audit this UI for accessibility issues",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,15 @@
1
+ {
2
+ "skill_name": "figma-diagrams",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "List the pages and frames in this Figma file and post a comment on the checkout frame.",
7
+ "assertions": [
8
+ "The token is read from the FIGMA_TOKEN environment variable and never logged or passed on the command line",
9
+ "Output is filtered to pages, frames, and groups (about three levels) and summarized rather than dumping raw JSON",
10
+ "Before posting any comment, the exact comment text and target frame are shown for confirmation",
11
+ "The skill states clearly when FIGMA_TOKEN is missing rather than failing opaquely"
12
+ ]
13
+ }
14
+ ]
15
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Draft a status page update for this ongoing incident",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "We're live in an incident — I need customer, internal, and exec updates",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Write the customer-facing comms while we investigate",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "How do I tell stakeholders about this outage right now?",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Write the blameless postmortem now that it's resolved",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Generate the runbook for this service",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Summarize this technical doc for executives",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Extract decisions and action items from the incident channel",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,16 @@
1
+ {
2
+ "skill_name": "incident-comms",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "We're 20 minutes into a live incident — checkout is failing for about 30% of users, cause not yet confirmed. Draft the customer, internal, and exec updates.",
7
+ "assertions": [
8
+ "Each message's first sentence is reader-facing impact, not an internal symptom or architecture detail",
9
+ "Every message names the next-update time, or marks it [set HH:MM] when unknown",
10
+ "No unconfirmed cause is stated and no commitment is made that might need retracting",
11
+ "The three audiences (customer status page, internal stakeholders, exec) get genuinely different messages rather than one text reused",
12
+ "Nothing is asserted beyond what the operator supplied"
13
+ ]
14
+ }
15
+ ]
16
+ }
@@ -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
+ ]