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,16 @@
1
+ {
2
+ "skill_name": "migration-plan",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Plan the migration from our single-tenant Postgres schema to a multi-tenant one, with no downtime.",
7
+ "assertions": [
8
+ "The plan is phased expand-migrate-contract by default",
9
+ "Every phase is reversible, or is explicitly named as the point of no return — a reader can answer 'how do we get back from here?' for every phase",
10
+ "Every gate is observable with a bake time and a threshold, not 'looks good'",
11
+ "Each phase carries exactly one change, so a failed phase implicates one thing",
12
+ "Rollback steps are stated per phase rather than as a single end-of-plan afterthought"
13
+ ]
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "What are the non-functional requirements for this service?",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Sweep the NFRs — latency, availability, privacy, accessibility, operability",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Set performance and availability targets for this feature",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "We keep forgetting the -ilities; give me the full NFR ledger",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Write the functional requirements and user stories",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Draft the OpenAPI contract for this service",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Design the dashboards, SLOs, and alerts we should build",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Model the capacity and cost for this workload",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,16 @@
1
+ {
2
+ "skill_name": "nfr-spec",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Sweep the non-functional requirements for our new checkout service.",
7
+ "assertions": [
8
+ "Every category in the catalog lands in one of three states — a target, not-applicable with a reason, or a tagged default; silence in any category is a failure",
9
+ "Every target states a percentile, a load condition, and how it will be verified — a latency number with no load condition is rejected",
10
+ "The availability target matches the honest answer to what an hour of downtime costs, not a marketing instinct",
11
+ "Privacy and retention are given concrete periods rather than 'per policy'",
12
+ "The output is a reviewable ledger covering all categories, not a prose paragraph about quality"
13
+ ]
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Design an observability plan for this service",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "What SLIs and SLOs should we define, and what should page us?",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Set up burn-rate alerting with error budgets",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "We alert on CPU and it's useless — design symptom-based alerting",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Sweep the full non-functional requirements catalog",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Write the operational runbook for the on-call team",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Model our capacity and infrastructure cost",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Write the postmortem for last week's outage",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,16 @@
1
+ {
2
+ "skill_name": "observability-plan",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Design the observability plan for our checkout service — what should we measure, alert on, and page for?",
7
+ "assertions": [
8
+ "SLIs measure user experience as good-over-valid events, not resource utilization",
9
+ "Latency SLIs are threshold counts at a percentile, never averages",
10
+ "Every SLO carries an error budget stated in human terms plus a policy for when it is spent",
11
+ "Pages are symptom-based, actionable, and runbook-linked; anything not actionable is a ticket, not a page",
12
+ "The plan makes a deliberate metrics-vs-logs-vs-traces choice rather than proposing everything"
13
+ ]
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Write a blameless postmortem for this incident",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Turn this pager timeline and Slack thread into a postmortem",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "We resolved the outage — document what happened and why",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Generate the incident review doc with impact and action items",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "We're still in the incident — draft the customer update",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Extract the decisions and owners from this thread",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Write the runbook so this is handled better next time",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Summarize the incident for the executive team",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,17 @@
1
+ {
2
+ "skill_name": "postmortem-generator",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Write the postmortem from this pager timeline and Slack thread for last Tuesday's checkout outage.",
7
+ "assertions": [
8
+ "Impact is quantified — duration, users or requests affected, SLO burn, revenue where known — or explicitly marked [missing]; 'significant impact' is rejected",
9
+ "No person is named in a causal sentence; roles appear only in response actions",
10
+ "Detection and mitigation gaps are computed and stated as numbers",
11
+ "The timeline is in UTC",
12
+ "Contributing factors are listed rather than a single root cause",
13
+ "Action items carry owners as roles and are derived from the contributing factors"
14
+ ]
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Draft a PRD for this feature",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Write the product requirements document from this idea",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "I need testable requirements with MoSCoW priorities and non-goals",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Turn this feature idea into a PRD engineering can build from",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Write the press release before the product exists",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Draft the engineering design doc for this",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Split this epic into INVEST user stories",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Write interview questions for our stakeholders",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,17 @@
1
+ {
2
+ "skill_name": "prd-draft",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Draft a PRD for a saved-search feature in our analytics product — users keep re-running the same filters every morning.",
7
+ "assertions": [
8
+ "The problem statement contains zero solution language and passes the alternative-solution test — more than one solution could follow from it",
9
+ "Every requirement is verifiable — a tester can demo it pass or fail; adjective requirements and implementation choices are rejected",
10
+ "Requirements are MoSCoW-prioritized",
11
+ "The won't-have list is non-empty and names specific excluded things",
12
+ "Each goal carries a success line stating how it will be measured",
13
+ "Claims that need evidence are marked rather than asserted as fact"
14
+ ]
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Build interview questions for our stakeholders on this feature",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Who should we talk to for this discovery, and what should we ask them?",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Create a discovery interview kit per stakeholder",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "I need non-leading questions that would actually change the design",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Draft the PRD for this feature",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Structure this existing raw input into a brief",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Map the customer's journey through onboarding",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Write the design doc for the billing migration",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,16 @@
1
+ {
2
+ "skill_name": "requirements-interview",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "We're scoping a billing-migration feature. Build interview kits for the stakeholders we should talk to.",
7
+ "assertions": [
8
+ "Each stakeholder script has at most 7 questions, ranked by how much the answer changes the design",
9
+ "Every question is annotated with the decision it informs and how the answer moves the design",
10
+ "No leading questions in discovery position — nothing answerable with a polite yes",
11
+ "Every script contains a kill-question, and the kit states what a kill-answer would mean",
12
+ "Stakeholders are chosen and named by role, with a reason each one is on the list"
13
+ ]
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Reverse-engineer the architecture from this repo",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Work out our system diagram from the Terraform and k8s manifests",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "What does our actual architecture look like based on the code?",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Build a diagram from our existing infrastructure-as-code",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Draw a diagram from this written description of the system",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Read our Figma file and list the frames",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Write an ADR for the architecture we chose",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Review this code for bugs",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,16 @@
1
+ {
2
+ "skill_name": "reverse-architecture",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Reverse-engineer the architecture of this repo — it has Terraform, Kubernetes manifests, and an OpenAPI spec.",
7
+ "assertions": [
8
+ "Every node carries a source-of-truth file path as evidence; nothing appears in the diagram without a reference",
9
+ "Inferred components are marked as inferred rather than asserted as fact",
10
+ "Edges carry direction and, where the source reveals it, protocol",
11
+ "Nodes are grouped by deployment boundary as the artifacts reveal it",
12
+ "The output is derived from the supplied artifacts, not from a written description of intent"
13
+ ]
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Write an operational runbook for this service",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "We're launching a service — what does on-call need documented?",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Document deploy, rollback, and incident response for this system",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Generate the runbook covering escalation and common failures",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Design our SLIs, SLOs, and burn-rate alerts",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "We're in an incident right now — draft the status page update",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Write the postmortem for the outage",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Sweep the full non-functional requirements catalog",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,17 @@
1
+ {
2
+ "skill_name": "runbook-generator",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Write the operational runbook for our new payments service — it deploys via Argo, pages the payments team, and depends on Stripe and Postgres.",
7
+ "assertions": [
8
+ "Ownership is expressed as roles and rotations rather than individual names that go stale",
9
+ "Every alert listed has a corresponding 'what to do when this fires' response — no alert is left without one",
10
+ "Rollback is one command or at most three steps",
11
+ "Dependencies are listed with what breaks when each is unavailable",
12
+ "Escalation names the path and the trigger for escalating, not just a team name",
13
+ "Facts not supplied (dashboard links, SLO values) are marked missing rather than invented"
14
+ ]
15
+ }
16
+ ]
17
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Outline the slides for my architecture review",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Give me slide titles, key points, and speaker notes for this pitch",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Structure this into a deck outline I can build from",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "What slides do I need for this technical presentation?",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Generate the actual .pptx file for me",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Write a one-page executive summary of this doc",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "What are the structural rules for presenting to a board?",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Draw the architecture diagram for this system",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,16 @@
1
+ {
2
+ "skill_name": "slide-outliner",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Outline an architecture review deck for our proposed move to event-driven order processing — the audience is staff engineers plus one VP.",
7
+ "assertions": [
8
+ "Every slide title asserts a claim rather than labelling a topic ('We can ship this in two quarters', not 'Timeline')",
9
+ "No single slide mixes high-level overview with deep technical detail — where both are needed it becomes two slides",
10
+ "Speaker notes carry the narrative while the slide carries the evidence; the script is not dumped onto the slide",
11
+ "The output is a structured outline the user can paste into their own tool — no .pptx file is produced",
12
+ "Slide count and depth are matched to the stated audience"
13
+ ]
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Set up Sonar for this repo",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Scaffold sonar-project.properties and the CI workflow",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Onboard this project onto SonarCloud with a blocking quality gate",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "We want Sonar checks on every PR — configure it",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Run the Sonar scan and tell me if the gate passes",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Adversarially review this diff for edge cases",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Gate my change with lint, tests, and the reviewer panel",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Design our SLOs and alerting",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,16 @@
1
+ {
2
+ "skill_name": "sonar-onboard",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Set this Python repo up for Sonar compliance — we use SonarCloud and run CI on GitHub Actions.",
7
+ "assertions": [
8
+ "sonar.projectKey, sonar.sources, sonar.tests and the coverage path reflect what is actually on disk, not generic example values",
9
+ "The generated CI workflow blocks merge on a quality-gate failure rather than merely running a scan",
10
+ "SonarCloud vs SonarQube server is chosen explicitly and the generated config matches that choice",
11
+ "The coverage report path matches the language's real tooling output",
12
+ "Setup steps that require a token or server-side action are named for the operator rather than silently assumed"
13
+ ]
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Run a Sonar review on this branch",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "What does the quality gate say about my changes?",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Give me the Sonar findings for the files I changed",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Check Sonar compliance before I open the PR",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Set up Sonar in this repository",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Review this code adversarially for edge cases the first pass missed",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Run the full pre-merge gate and reviewer panel",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Write the postmortem for last night's incident",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,16 @@
1
+ {
2
+ "skill_name": "sonar-review",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Run a Sonar review on my current branch before I open the PR.",
7
+ "assertions": [
8
+ "The verdict is taken from the quality gate itself, not from the reviewer's own judgment — PASS is reported as PASS even if other issues are visible",
9
+ "Findings are scoped to files changed on the branch; pre-existing repo debt is not dumped into the report",
10
+ "Findings are severity-tagged and each carries file:line, the Sonar rule ID, why it matters, and a concrete fix",
11
+ "Findings are grouped into the lenses (bugs, vulnerabilities, security hotspots, code smells, coverage/duplication)",
12
+ "Server vs cloud is auto-detected from sonar-project.properties rather than assumed"
13
+ ]
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Write a test plan for this feature",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "What should we test before this release, ranked by risk?",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "Map these acceptance criteria to test cases",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Generate a risk-based QA plan for this PR",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Split this epic into user stories with acceptance criteria",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Review my code and tell me which tests are missing",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Run the Sonar scan on my branch",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Draft the PRD for this feature",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,16 @@
1
+ {
2
+ "skill_name": "test-plan-generator",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Write the test plan for this release — a new discount-code feature touching checkout, pricing, and the orders API.",
7
+ "assertions": [
8
+ "A risk table ranked by likelihood times impact precedes the test cases, and depth of coverage tracks that ranking rather than being uniform",
9
+ "Every test case states a concrete expected result — a specific status code, error code, or value, not 'an appropriate error is shown'",
10
+ "Every acceptance criterion appears in a coverage table, with uncovered ACs listed explicitly rather than omitted",
11
+ "Each test is pushed to the lowest pyramid level that would catch the failure",
12
+ "Out-of-scope areas are named rather than silently skipped"
13
+ ]
14
+ }
15
+ ]
16
+ }
@@ -0,0 +1,34 @@
1
+ [
2
+ {
3
+ "query": "Threat model this design",
4
+ "should_trigger": true
5
+ },
6
+ {
7
+ "query": "Run STRIDE on this architecture before we build it",
8
+ "should_trigger": true
9
+ },
10
+ {
11
+ "query": "What could an attacker do to this system as designed?",
12
+ "should_trigger": true
13
+ },
14
+ {
15
+ "query": "Security review of this design doc, with trust boundaries and attack scenarios",
16
+ "should_trigger": true
17
+ },
18
+ {
19
+ "query": "Review this diff for exploitable security bugs",
20
+ "should_trigger": false
21
+ },
22
+ {
23
+ "query": "Threat model my AI agent's tool and data access",
24
+ "should_trigger": false
25
+ },
26
+ {
27
+ "query": "Audit this UI for accessibility barriers",
28
+ "should_trigger": false
29
+ },
30
+ {
31
+ "query": "Convene a council to deliberate this architecture",
32
+ "should_trigger": false
33
+ }
34
+ ]
@@ -0,0 +1,18 @@
1
+ {
2
+ "skill_name": "threat-model",
3
+ "evals": [
4
+ {
5
+ "id": 1,
6
+ "prompt": "Threat model this design: a multi-tenant reporting service where customers upload CSVs, we process them in a worker, and results are served from an S3 bucket via signed URLs.",
7
+ "assertions": [
8
+ "Assets, entry points, and trust boundaries are established before any threat is listed",
9
+ "Every threat is anchored to a named trust-boundary crossing or asset — unanchored checklist residue is cut",
10
+ "Every threat narrates a scenario with actor, path, and result; 'X is possible' is not accepted as a finding",
11
+ "STRIDE is applied per boundary crossing rather than as a flat checklist",
12
+ "Severity is calibrated to this system's assets rather than CVSS theater — not everything is critical",
13
+ "Existing mitigations are credited as verified or assumed, and every recommendation carries a verification step",
14
+ "The authorization sweep (tenant-to-tenant, authn is not authz) and the insider/compromised-credential sweep are both run"
15
+ ]
16
+ }
17
+ ]
18
+ }