skilldrop-cli 0.9.0 → 0.9.1

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 (57) hide show
  1. package/README.md +1 -0
  2. package/bin/skilldrop.js +179 -3
  3. package/package.json +1 -1
  4. package/skills/adr-generator/evals/eval_queries.json +34 -0
  5. package/skills/adr-generator/evals/evals.json +17 -0
  6. package/skills/api-contract-draft/evals/eval_queries.json +34 -0
  7. package/skills/api-contract-draft/evals/evals.json +18 -0
  8. package/skills/architecture-diagrams/evals/eval_queries.json +34 -0
  9. package/skills/architecture-diagrams/evals/evals.json +16 -0
  10. package/skills/audience-profile/evals/eval_queries.json +34 -0
  11. package/skills/audience-profile/evals/evals.json +15 -0
  12. package/skills/brief-intake/evals/eval_queries.json +34 -0
  13. package/skills/brief-intake/evals/evals.json +16 -0
  14. package/skills/council-review/evals/eval_queries.json +38 -0
  15. package/skills/council-review/evals/evals.json +18 -0
  16. package/skills/data-contract/evals/eval_queries.json +34 -0
  17. package/skills/data-contract/evals/evals.json +16 -0
  18. package/skills/db-schema-design/evals/eval_queries.json +34 -0
  19. package/skills/db-schema-design/evals/evals.json +16 -0
  20. package/skills/decision-log/evals/eval_queries.json +34 -0
  21. package/skills/decision-log/evals/evals.json +17 -0
  22. package/skills/deck-builder/evals/eval_queries.json +34 -0
  23. package/skills/deck-builder/evals/evals.json +17 -0
  24. package/skills/design-doc/evals/eval_queries.json +34 -0
  25. package/skills/design-doc/evals/evals.json +17 -0
  26. package/skills/devils-advocate/evals/eval_queries.json +38 -0
  27. package/skills/devils-advocate/evals/evals.json +19 -0
  28. package/skills/doc-critique/evals/eval_queries.json +38 -0
  29. package/skills/doc-critique/evals/evals.json +17 -0
  30. package/skills/exec-summary/evals/eval_queries.json +34 -0
  31. package/skills/exec-summary/evals/evals.json +17 -0
  32. package/skills/figma-diagrams/evals/eval_queries.json +34 -0
  33. package/skills/figma-diagrams/evals/evals.json +15 -0
  34. package/skills/incident-comms/evals/eval_queries.json +34 -0
  35. package/skills/incident-comms/evals/evals.json +16 -0
  36. package/skills/nfr-spec/evals/eval_queries.json +34 -0
  37. package/skills/nfr-spec/evals/evals.json +16 -0
  38. package/skills/observability-plan/evals/eval_queries.json +34 -0
  39. package/skills/observability-plan/evals/evals.json +16 -0
  40. package/skills/postmortem-generator/evals/eval_queries.json +34 -0
  41. package/skills/postmortem-generator/evals/evals.json +17 -0
  42. package/skills/prd-draft/evals/eval_queries.json +34 -0
  43. package/skills/prd-draft/evals/evals.json +17 -0
  44. package/skills/requirements-interview/evals/eval_queries.json +34 -0
  45. package/skills/requirements-interview/evals/evals.json +16 -0
  46. package/skills/reverse-architecture/evals/eval_queries.json +34 -0
  47. package/skills/reverse-architecture/evals/evals.json +16 -0
  48. package/skills/runbook-generator/evals/eval_queries.json +34 -0
  49. package/skills/runbook-generator/evals/evals.json +17 -0
  50. package/skills/slide-outliner/evals/eval_queries.json +34 -0
  51. package/skills/slide-outliner/evals/evals.json +16 -0
  52. package/skills/sonar-onboard/evals/eval_queries.json +34 -0
  53. package/skills/sonar-onboard/evals/evals.json +16 -0
  54. package/skills/sonar-review/evals/eval_queries.json +34 -0
  55. package/skills/sonar-review/evals/evals.json +16 -0
  56. package/skills/threat-model/evals/eval_queries.json +34 -0
  57. package/skills/threat-model/evals/evals.json +18 -0
@@ -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": "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
+ }