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,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
|
+
}
|