skilldrop-cli 0.16.12 → 0.16.13

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 (112) hide show
  1. package/bin/skilldrop.js +36 -11
  2. package/catalogue.json +8 -6
  3. package/contracts/catalogue.schema.json +15 -1
  4. package/model-routing.json +1 -17
  5. package/package.json +1 -1
  6. package/packs/ai-engineering/skills/ai-readiness-assessment/SKILL.md +1 -1
  7. package/packs/ai-engineering/skills/ai-readiness-assessment/manifest.json +2 -3
  8. package/packs/ai-engineering/skills/llm-eval-harness/SKILL.md +1 -1
  9. package/packs/ai-engineering/skills/llm-eval-harness/manifest.json +2 -2
  10. package/packs/api-builder/pack.json +1 -1
  11. package/packs/api-builder/skills/eval-harness-generator/SKILL.md +1 -1
  12. package/packs/api-builder/skills/eval-harness-generator/manifest.json +2 -2
  13. package/packs/api-builder/skills/tool-use-schema-writer/SKILL.md +3 -3
  14. package/packs/api-builder/skills/tool-use-schema-writer/evals/evals.json +1 -1
  15. package/packs/api-builder/skills/tool-use-schema-writer/manifest.json +2 -2
  16. package/packs/core/skills/brief-intake/SKILL.md +2 -2
  17. package/packs/core/skills/brief-intake/manifest.json +3 -3
  18. package/packs/core/skills/brief-intake/templates/brief-tech-comparison.md +1 -1
  19. package/packs/core/skills/council-review/SKILL.md +2 -2
  20. package/packs/core/skills/council-review/manifest.json +2 -2
  21. package/packs/core/skills/council-review/reference.md +0 -1
  22. package/packs/core/skills/doc-critique/SKILL.md +1 -1
  23. package/packs/core/skills/doc-critique/manifest.json +2 -2
  24. package/packs/core/skills/doc-critique/rubrics/tech-comparison.md +1 -1
  25. package/packs/data-analytics/pack.json +8 -14
  26. package/packs/data-analytics/skills/dashboard-spec/SKILL.md +2 -2
  27. package/packs/data-analytics/skills/dashboard-spec/examples/support-staffing.md +1 -1
  28. package/packs/data-analytics/skills/dashboard-spec/manifest.json +1 -10
  29. package/packs/data-analytics/skills/dashboard-spec/templates/dashboard-spec.md +1 -1
  30. package/packs/data-analytics/skills/sql-review/SKILL.md +2 -2
  31. package/packs/data-analytics/skills/sql-review/manifest.json +1 -11
  32. package/packs/dev-team/skills/migration-plan/SKILL.md +1 -1
  33. package/packs/dev-team/skills/migration-plan/manifest.json +2 -2
  34. package/packs/product-manager/skills/business-case/SKILL.md +2 -2
  35. package/packs/product-manager/skills/business-case/manifest.json +3 -3
  36. package/packs/product-manager/skills/strategy-analysis/SKILL.md +3 -3
  37. package/packs/product-manager/skills/strategy-analysis/evals/evals.json +1 -1
  38. package/packs/product-manager/skills/strategy-analysis/manifest.json +2 -3
  39. package/packs/research/skills/hypothesis-comparison/SKILL.md +3 -3
  40. package/packs/research/skills/hypothesis-comparison/manifest.json +2 -3
  41. package/packs/research/skills/research-plan/SKILL.md +0 -1
  42. package/packs/research/skills/research-plan/manifest.json +2 -3
  43. package/packs/skill-engineering/skills/skill-author/SKILL.md +1 -1
  44. package/packs/skill-engineering/skills/skill-author/manifest.json +1 -2
  45. package/packs/skill-engineering/skills/skill-review/SKILL.md +1 -1
  46. package/packs/skill-engineering/skills/skill-review/manifest.json +1 -2
  47. package/packs/solution-architect/skills/api-contract-draft/SKILL.md +1 -1
  48. package/packs/solution-architect/skills/api-contract-draft/manifest.json +2 -2
  49. package/packs/data-analytics/skills/metric-definition/SKILL.md +0 -92
  50. package/packs/data-analytics/skills/metric-definition/evals/eval_queries.json +0 -34
  51. package/packs/data-analytics/skills/metric-definition/evals/evals.json +0 -79
  52. package/packs/data-analytics/skills/metric-definition/evals/files/2/tables.md +0 -42
  53. package/packs/data-analytics/skills/metric-definition/evals/files/2/thread.md +0 -40
  54. package/packs/data-analytics/skills/metric-definition/evals/files/4/tables.md +0 -32
  55. package/packs/data-analytics/skills/metric-definition/evals/files/4/thread.md +0 -31
  56. package/packs/data-analytics/skills/metric-definition/examples/refund-rate.md +0 -104
  57. package/packs/data-analytics/skills/metric-definition/manifest.json +0 -41
  58. package/packs/data-analytics/skills/metric-definition/reference.md +0 -67
  59. package/packs/data-analytics/skills/metric-definition/templates/metric-spec.md +0 -70
  60. package/packs/dev-team/skills/contribution-wizard/SKILL.md +0 -142
  61. package/packs/dev-team/skills/contribution-wizard/evals/eval_queries.json +0 -30
  62. package/packs/dev-team/skills/contribution-wizard/evals/evals.json +0 -78
  63. package/packs/dev-team/skills/contribution-wizard/evals/files/2/AGENTS.md +0 -9
  64. package/packs/dev-team/skills/contribution-wizard/evals/files/2/CATALOG.md +0 -18
  65. package/packs/dev-team/skills/contribution-wizard/evals/files/2/CONTRIBUTING.md +0 -45
  66. package/packs/dev-team/skills/contribution-wizard/evals/files/2/OWNERS.md +0 -7
  67. package/packs/dev-team/skills/contribution-wizard/evals/files/2/skills/detention-claim-letter/INSTRUCTIONS.md +0 -20
  68. package/packs/dev-team/skills/contribution-wizard/evals/files/2/skills/detention-claim-letter/skill.yaml +0 -11
  69. package/packs/dev-team/skills/contribution-wizard/evals/files/2/skills/detention-claim-letter/tests/cases.yaml +0 -25
  70. package/packs/dev-team/skills/contribution-wizard/evals/files/2/skills/rate-con-extractor/INSTRUCTIONS.md +0 -20
  71. package/packs/dev-team/skills/contribution-wizard/evals/files/2/skills/rate-con-extractor/skill.yaml +0 -8
  72. package/packs/dev-team/skills/contribution-wizard/evals/files/2/skills/rate-con-extractor/tests/cases.yaml +0 -32
  73. package/packs/dev-team/skills/contribution-wizard/evals/files/4/CONTRIBUTING.md +0 -63
  74. package/packs/dev-team/skills/contribution-wizard/evals/files/4/registry.json +0 -15
  75. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/flag-overdue-holds/PROMPT.md +0 -10
  76. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/flag-overdue-holds/examples/01-expected.md +0 -2
  77. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/flag-overdue-holds/examples/01-input.md +0 -3
  78. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/flag-overdue-holds/examples/02-expected.md +0 -1
  79. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/flag-overdue-holds/examples/02-input.md +0 -2
  80. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/flag-overdue-holds/examples/03-expected.md +0 -1
  81. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/flag-overdue-holds/examples/03-input.md +0 -2
  82. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/flag-overdue-holds/meta.json +0 -7
  83. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/summarise-reading-list/PROMPT.md +0 -11
  84. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/summarise-reading-list/examples/01-expected.md +0 -4
  85. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/summarise-reading-list/examples/01-input.md +0 -4
  86. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/summarise-reading-list/examples/02-expected.md +0 -6
  87. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/summarise-reading-list/examples/02-input.md +0 -2
  88. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/summarise-reading-list/examples/03-expected.md +0 -1
  89. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/summarise-reading-list/examples/03-input.md +0 -1
  90. package/packs/dev-team/skills/contribution-wizard/evals/files/4/skills/summarise-reading-list/skill.toml +0 -6
  91. package/packs/dev-team/skills/contribution-wizard/manifest.json +0 -11
  92. package/packs/solution-architect/skills/db-schema-design/SKILL.md +0 -76
  93. package/packs/solution-architect/skills/db-schema-design/evals/eval_queries.json +0 -34
  94. package/packs/solution-architect/skills/db-schema-design/evals/evals.json +0 -75
  95. package/packs/solution-architect/skills/db-schema-design/evals/files/2/current_tables.sql +0 -29
  96. package/packs/solution-architect/skills/db-schema-design/evals/files/2/notes.md +0 -53
  97. package/packs/solution-architect/skills/db-schema-design/evals/files/4/finance-email.md +0 -18
  98. package/packs/solution-architect/skills/db-schema-design/evals/files/4/members_sample.csv +0 -5
  99. package/packs/solution-architect/skills/db-schema-design/evals/files/4/points_txn_sample.csv +0 -17
  100. package/packs/solution-architect/skills/db-schema-design/evals/files/4/requirements.md +0 -28
  101. package/packs/solution-architect/skills/db-schema-design/manifest.json +0 -11
  102. package/packs/solution-architect/skills/db-schema-design/reference.md +0 -56
  103. package/packs/solution-architect/skills/db-schema-design/templates/schema-design.md +0 -75
  104. package/packs/solution-architect/skills/tech-comparison-matrix/SKILL.md +0 -64
  105. package/packs/solution-architect/skills/tech-comparison-matrix/evals/eval_queries.json +0 -30
  106. package/packs/solution-architect/skills/tech-comparison-matrix/evals/evals.json +0 -76
  107. package/packs/solution-architect/skills/tech-comparison-matrix/evals/files/2/requirements.md +0 -20
  108. package/packs/solution-architect/skills/tech-comparison-matrix/evals/files/2/vendor-notes.md +0 -29
  109. package/packs/solution-architect/skills/tech-comparison-matrix/evals/files/4/mobile-options.md +0 -45
  110. package/packs/solution-architect/skills/tech-comparison-matrix/examples/queue-selection.md +0 -41
  111. package/packs/solution-architect/skills/tech-comparison-matrix/manifest.json +0 -11
  112. package/packs/solution-architect/skills/tech-comparison-matrix/templates/matrix.md +0 -45
@@ -1,76 +0,0 @@
1
- {
2
- "skill_name": "tech-comparison-matrix",
3
- "evals": [
4
- {
5
- "id": 1,
6
- "prompt": "Help us pick a message broker: Kafka (self-managed), Amazon Kinesis, or RabbitMQ. Use case: order-event streaming for a multi-tenant SaaS app at Acme, about 5k events/sec at peak, consumers need replay for up to 7 days, ordering per tenant matters. Hard constraints: we run on AWS, and the platform team is two people with no capacity to run self-hosted clusters on call.",
7
- "assertions": [
8
- "Uses 8 to 10 criteria spanning capability fit, operational, cost, and risk, and names any criteria deliberately excluded",
9
- "Shows a 1-5 weight for every criterion with the weight tied in writing to the use case or constraints (e.g. operational burden weighted high because the platform team is two people)",
10
- "Every score has a one-line justification, and every 5 and every 1 is explained",
11
- "Totals are computed as sum(weight x score), and a gap under 5% between the top options is called out",
12
- "Ties are allowed where options genuinely don't differ; scores are not uniformly 3/5",
13
- "The recommendation is one sentence and says what would change the answer; if it isn't the top scorer, the override is explained",
14
- "Numbers that are estimates are marked 'rough' or 'directional'; no benchmarks are invented beyond the figures in the prompt"
15
- ]
16
- },
17
- {
18
- "id": 2,
19
- "held_out": "2026-10-05",
20
- "prompt": "We have to pick an observability platform by 16 Oct. requirements.md is what we need and vendor-notes.md is what Davide gathered on the three options. Can you put together the comparison with scores and a recommendation I can take to board prep? Please score query speed using the p95 numbers from the trials. For what it's worth most of the team wants Graywell.",
21
- "assertions": [
22
- "Graywell is shown as failing the EU data residency must-have today (US-East only, EU region only on the roadmap for Q2 2027) and is not the recommended option",
23
- "It flags that the Lumenstack quote does not add up: EUR 18 x 140 hosts x 12 months is EUR 30,240, not the EUR 25,200 on the quote",
24
- "It notes that at EUR 30,240 Lumenstack is over the EUR 30,000 budget cap, or that whether it fits depends on getting the quote clarified",
25
- "Self-hosted is shown as having no measured p95 query time because it was never trialled; no latency number is invented for it",
26
- "The self-hosted assessment names the staffing risk: the team drops from 3 to 2 at the end of November and the person leaving is the only one who has run Loki in production",
27
- "It notes that Graywell's EUR 18,480 is not an all-in or firm price: SAML SSO is Enterprise-tier with price on request, or the figure comes from a March sales deck and not a quote",
28
- "It gives one clear recommendation and says what would change it",
29
- "It does not introduce benchmarks, prices or vendor features that are not in the two files"
30
- ]
31
- },
32
- {
33
- "id": 3,
34
- "held_out": "2026-10-05",
35
- "prompt": "postgres vs mongo vs just sqlite for a small internal tool? it's inventory tracking for our workshop, maybe 20 people using it, and I'm the only dev and only part time. my boss wants a table he can show the owner so he can see we thought about it",
36
- "assertions": [
37
- "All three options (PostgreSQL, MongoDB, SQLite) are compared in one table against the same named criteria, each with a score or rating",
38
- "The relative importance of the criteria is shown and tied to the facts given (about 20 users, one part-time developer)",
39
- "Each score or rating has a short reason next to it",
40
- "It gives one clear recommendation, not 'it depends'",
41
- "It states the assumptions it had to make and what would change the answer (for example how many people write at the same time, where it is hosted, how backups are handled)",
42
- "It does not invent benchmark figures, throughput numbers or costs",
43
- "Large-scale performance, horizontal scaling or community popularity is not among the highest-weighted criteria"
44
- ]
45
- },
46
- {
47
- "id": 4,
48
- "held_out": "2026-10-06",
49
- "prompt": "We need to decide what to do with our driver app: keep the two native apps, rewrite in React Native, or rewrite in Flutter. Everything I've collected is in mobile-options.md. Leadership wants a scored table and a recommendation on one page. Use the cold start times from the spikes for the performance score.",
50
- "assertions": [
51
- "It states that a full rewrite cannot deliver the proof-of-delivery photo feature by 1 Feb 2027: 26 weeks (React Native) or 30 weeks (Flutter) from 2 Nov 2026 ends in May 2027, so the feature has to ship in the native apps first or the rewrite options miss the contract date",
52
- "It says Orrin does not publish or support React Native or Flutter wrappers (the 9 Sept 2026 email) and that a bridge has to be written in-house; the March 2024 wiki claim of official plugins is not relied on",
53
- "It points out that the Flutter cold start of 2.1 s was measured on a Pixel 8 and not on the H4, so it is not comparable with the 2.9 s (React Native) and 1.8 s (native) H4 figures; no H4 figure is invented for Flutter",
54
- "It notes that the Flutter prototype's scan screen crashed on the H4 and was not investigated, as an open risk against the scanner must-have",
55
- "The share of drivers on the handheld is given as about 70% (2,650 of 3,800), or the '80%' in the notes is flagged as not matching the counts",
56
- "All three options are scored against the same named criteria, with weights shown and a total per option",
57
- "It gives one clear recommendation and says what would change it",
58
- "It does not introduce costs, benchmark figures or effort estimates that are not in the file"
59
- ]
60
- },
61
- {
62
- "id": 5,
63
- "held_out": "2026-10-06",
64
- "prompt": "need to pick how we run inference for our model: the GPU box in the office, cloud GPU instances, or just pay for a hosted inference API. we're 6 people, it's a document classifier, the documents are customers' contracts and a couple of them are touchy about where their data goes. volume is low right now but a big customer might sign. Kofi says the office box is basically free since we already own it. just the table and your pick, I'm pasting it into slack",
65
- "assertions": [
66
- "All three options (office GPU box, cloud GPU instances, hosted inference API) are compared in one table against the same named criteria, each with a score or rating",
67
- "Where customer data goes, or data confidentiality, is one of the criteria and is among the most heavily weighted, tied to the remark that the documents are customers' contracts",
68
- "The office box is not treated as free: the output names at least one ongoing cost or risk of it, such as the team's time to run it, no redundancy if it fails, or power and hardware upkeep",
69
- "It gives one clear pick, not 'it depends'",
70
- "It states that current and future volume are unknown and says how the pick would change if the big customer signs or volume grows",
71
- "It does not invent prices, per-hour or per-request costs, latency or throughput figures",
72
- "It is short enough to paste into Slack: the table plus no more than about 250 words of other text"
73
- ]
74
- }
75
- ]
76
- }
@@ -1,20 +0,0 @@
1
- # Observability platform: what we need (Pellingham Diagnostics)
2
-
3
- Written by Anneke Vos (Head of Platform), 21 Sept 2026.
4
-
5
- We're replacing the home-grown ELK box. Decision needed for the 16 Oct board prep.
6
-
7
- ## Facts
8
- - 140 hosts today (112 prod, 28 non-prod). Expect about 160 by the end of 2027.
9
- - Platform team: 3 engineers. One (Bashir) leaves at the end of November and the backfill is not approved.
10
- - Log volume is about 90 GB/day. We need 30 days searchable.
11
-
12
- ## Must-haves (not negotiable)
13
- 1. All telemetry stored and processed in the EU. Logs contain patient sample IDs. Our DPO has confirmed this is a hard requirement from day one: no exceptions and no "coming soon".
14
- 2. Total cost at or under EUR 30,000 per year, all-in. That is what's in the 2027 budget.
15
- 3. SSO through our existing SAML identity provider.
16
-
17
- ## Nice-to-haves
18
- - Fast log search. Devs complain the current one takes 20+ seconds.
19
- - Alert routing into our pager.
20
- - Not having to babysit it.
@@ -1,29 +0,0 @@
1
- # Options: notes from trials and quotes
2
-
3
- Compiled by Davide Marchetti, platform. Last touched 29 Sept 2026.
4
-
5
- ## A. Lumenstack (SaaS)
6
- - Quote ref LS-Q-7731, dated 22 Sept 2026, valid 30 days.
7
- - EUR 18 per host per month. Logs, metrics and traces bundled, 30-day retention included.
8
- - Quote summary line: "140 hosts, 12 months: EUR 25,200".
9
- - Region: Frankfurt, available now. Signed DPA available.
10
- - SAML SSO: included.
11
- - Two-week trial on 20 staging hosts: p95 log query 1.8 s. Pager integration worked out of the box.
12
- - Setup effort in the trial: about 2 days for one engineer.
13
-
14
- ## B. Graywell (SaaS)
15
- - Pricing from their sales deck of 3 March 2026: EUR 11 per host per month, 12-month commit. No formal quote yet.
16
- - 140 hosts x 11 x 12 = EUR 18,480.
17
- - Region: US-East only today. Sales rep email (18 Sept): "EU region is on the roadmap for Q2 2027."
18
- - SAML SSO: on the Enterprise tier only, price on request.
19
- - Two-week trial on 20 staging hosts: p95 log query 0.9 s. Nicest UI by far, devs loved it.
20
- - Pager integration: via webhook, needed a small script.
21
-
22
- ## C. Self-hosted (Grafana + Loki + Prometheus on our own cluster)
23
- - No licence cost.
24
- - Davide's estimate of extra infra: EUR 800/month (storage + 3 nodes), so EUR 9,600/year.
25
- - Davide's estimate of people time: 0.4 of an engineer ongoing, plus 4-6 weeks to build.
26
- - Runs in our Amsterdam region, so EU by construction.
27
- - SAML: supported through our identity provider, needs config.
28
- - Not trialled. We never stood it up, so there are no query numbers.
29
- - Bashir is the only one of us who has run Loki in production before.
@@ -1,45 +0,0 @@
1
- # DriverRun app: rewrite or not?
2
-
3
- Notes for the decision. Ilse Vandermeer, mobile lead, Varley Parcels, 1 Oct 2026.
4
-
5
- ## Where we are
6
- - DriverRun is two separate native apps: Android (Kotlin, since 2019) and iOS (Swift, since 2021).
7
- - Every feature gets built twice. iOS is currently 3 features behind Android.
8
- - Options on the table: (A) keep both native apps, (B) rewrite in React Native, (C) rewrite in Flutter.
9
- - My own preference going in is B, since half the team already writes React.
10
-
11
- ## Who uses it
12
- - 2,650 employed drivers on company handhelds: Orrin H4 (Android 11, 3 GB RAM, built-in barcode scanner)
13
- - 1,150 subcontractor drivers on their own phones: about 700 iPhone, 450 Android
14
- - So about 80% of drivers are on the handheld.
15
-
16
- ## Must-haves
17
- 1. Scan with the H4's built-in scanner (through the Orrin SDK). Camera scanning is too slow for a 140-stop route.
18
- 2. The whole route works offline.
19
- 3. Proof-of-delivery photo feature live for all drivers by 1 Feb 2027. This is in the Hadleigh Home contract, with a penalty clause.
20
- 4. Print to the Bluetooth label printers in the vans.
21
-
22
- ## Team
23
- - 9 mobile engineers: 4 Android, 3 iOS, 2 who do both.
24
- - 5 of the 9 have shipped React/TypeScript (rotations on the web portal).
25
- - Nobody has shipped Dart. 2 have done a Flutter course.
26
-
27
- ## Scanner SDK
28
- - Wiki page "Orrin integration" (last edited March 2024 by Stellan, who has since left):
29
- "Orrin publishes official plugins for both Flutter and React Native, so cross-platform is not a problem."
30
- - Email from Orrin partner support, 9 Sept 2026: "The H4 SDK is distributed as an Android AAR only.
31
- We do not publish or support React Native or Flutter wrappers. The community Flutter plugin you
32
- mention was last updated in 2024 and does not support H4 firmware 7. Partners usually write their own bridge."
33
- - Our handhelds are on firmware 7.
34
-
35
- ## Spike results (August, two weeks each, one engineer)
36
- - React Native prototype: the scan-to-stop-list screen works on the H4 using a bridge we wrote ourselves (4 days). Cold start 2.9 s on the H4.
37
- - Flutter prototype: cold start 2.1 s, measured on a Pixel 8 dev phone. On the H4 the scan screen crashed using the community plugin. Ran out of time, not investigated.
38
- - For reference, today's native Android app cold-starts in 1.8 s on the H4.
39
- - Label printing: not tried in either spike.
40
-
41
- ## Estimates (the team's, calendar time, starting Mon 2 Nov 2026 after the current release)
42
- - A: proof-of-delivery photo in both native apps: 7 weeks.
43
- - B: React Native rewrite to parity with today's Android app: 26 weeks. Photo feature after that: +3 weeks.
44
- - C: Flutter rewrite to parity: 30 weeks. Photo feature after that: +3 weeks.
45
- - Nobody has estimated what it costs us to keep building everything twice under A.
@@ -1,41 +0,0 @@
1
- # Worked example — weighted comparison of message queues
2
-
3
- Input → output oracle for `tech-comparison-matrix`. Shows shown weights, a one-line
4
- justification per score, honest "rough" markers, and a one-sentence recommendation.
5
-
6
- ## Input
7
-
8
- > "We need a message queue for an order-processing pipeline: ~5k msg/s, must not
9
- > lose messages, small team, already on AWS. Compare [managed-broker-A],
10
- > [self-hosted-broker-B], and [cloud-queue-C]."
11
-
12
- ## Output
13
-
14
- **Weights** (sum to 100, set by the stated constraints — durability and ops-load dominate because the team is small and messages can't be lost):
15
-
16
- | Criterion | Weight | Why this weight |
17
- |---|--:|---|
18
- | Durability / no message loss | 30 | Hard requirement — order data. |
19
- | Operational load | 25 | Small team; running a broker is a tax. |
20
- | Throughput headroom | 15 | 5k/s is modest; all three clear it, so it's not decisive. |
21
- | Delivery semantics / ordering | 15 | Orders need per-key ordering. |
22
- | Ecosystem fit (AWS) | 15 | Already on AWS; native integration saves glue. |
23
-
24
- **Scores** (1–5, each justified; ties kept where real):
25
-
26
- | Criterion | Wt | [managed-broker-A] | [self-hosted-broker-B] | [cloud-queue-C] |
27
- |---|--:|--:|--:|--:|
28
- | Durability | 30 | 5 — replicated, managed | 5 — replicated *if* configured right | 5 — replicated, managed |
29
- | Ops load | 25 | 4 — managed, some tuning | 2 — you patch/scale/monitor it | 5 — fully serverless |
30
- | Throughput (rough) | 15 | 4 — ~tens of k/s | 5 — highest ceiling | 4 — ample for 5k/s |
31
- | Semantics/ordering | 15 | 4 — ordered per partition | 5 — most flexible | 3 — FIFO variant, lower quotas |
32
- | AWS fit | 15 | 3 — runs on AWS, not native | 2 — self-run on EC2/EKS | 5 — native service |
33
- | **Weighted total** | | **4.15** | **3.55** | **4.45** |
34
-
35
- **Recommendation:** Pick **[cloud-queue-C]** — its serverless ops profile decisively fits a small team with a modest, durability-critical load, and the only real gap (ordering quotas) is manageable at 5k/s.
36
-
37
- *Directional note:* throughput scores are rough (order-of-magnitude, not benchmarked); if load is likely to 10× within a year, re-weight throughput up and re-score — [self-hosted-broker-B]'s ceiling starts to matter.
38
-
39
- ## Why this passes the quality bar
40
-
41
- Weights are shown and tied to the question; every score carries a one-line justification; ties (durability 5/5/5) are left as ties; the guessed throughput numbers are flagged "rough"/"directional"; and the recommendation is one decisive sentence, not hedged.
@@ -1,11 +0,0 @@
1
- {
2
- "name": "tech-comparison-matrix",
3
- "version": "0.1.1",
4
- "description": "Produce a weighted comparison matrix for a technology selection question (e.g., \"Postgres vs DynamoDB\", \"Kafka vs Kinesis vs RabbitMQ\", \"Snowflake vs Databricks\"). Surfaces criteria, weights, per-option scores, totals, and a recommended pick. Use when the user is choosing between technologies, vendors, frameworks, or architectural approaches.",
5
- "entrypoint": "SKILL.md",
6
- "deps": { "npm": [], "pip": [] },
7
- "env": { "required": [], "optional": [] },
8
- "related": [],
9
- "tags": ["decisions", "comparison", "tech-selection", "vendor-evaluation"],
10
- "model": { "tier": "heavy", "rationale": "Weighted multi-criteria judgment with a recommendation. Mis-weighting is the failure mode. Never downgrade." }
11
- }
@@ -1,45 +0,0 @@
1
- # {Decision title — e.g. "Primary OLTP datastore for ProjectX"}
2
-
3
- **Use case:** {one sentence describing the workload / constraints — this is what the weights are tuned to}
4
-
5
- **Hard constraints:** {bulleted list of things that must be true; an option failing any of these is eliminated, not scored}
6
-
7
- **Options evaluated:** {Option A}, {Option B}, {Option C}
8
- **Options excluded (and why):** {e.g. "MongoDB — single-region writes only, fails the multi-region constraint"}
9
-
10
- ## Scoring scheme
11
-
12
- - **Weight (1–5):** how much this criterion matters for *this* use case. Justified inline.
13
- - **Score (1–5):** how well the option meets the criterion. Each 5 and 1 has a one-line justification.
14
-
15
- ## Matrix
16
-
17
- | Criterion | Weight | {Option A} | {Option B} | {Option C} |
18
- |---|---:|---:|---:|---:|
19
- | Throughput (writes/sec at p99 < 50ms) — *weight 5: directly stated in use case* | 5 | 5 — published bench 50k/s | 3 — caps around 15k/s | 4 — 30k/s with read replicas |
20
- | Consistency model fit — *weight 5: financial data, no eventual consistency tolerated* | 5 | 5 | 2 — eventual by default | 5 |
21
- | Operational complexity (self-hosted) — *weight 4: team has 1 SRE* | 4 | 3 | 4 — fully managed | 2 — manual sharding |
22
- | Cost at projected scale — *weight 3: budget approved but not unlimited* | 3 | 4 | 2 — egress fees | 5 |
23
- | Team familiarity — *weight 3: shortens ramp* | 3 | 5 | 2 | 3 |
24
- | Vendor lock-in — *weight 2: prefer portable but not blocking* | 2 | 5 — open source | 2 — proprietary | 4 |
25
- | Ecosystem / tooling — *weight 2* | 2 | 5 | 4 | 3 |
26
- | Backup & restore story — *weight 4: compliance requirement* | 4 | 4 | 5 | 3 |
27
- | **Weighted total** | | **{=Σ w·s}** | **{=Σ w·s}** | **{=Σ w·s}** |
28
-
29
- ## Justifications for outlier scores
30
-
31
- - *{Option A}, Throughput = 5:* {one-line evidence — link to vendor bench, internal load test, or known reference deployment}
32
- - *{Option B}, Consistency = 2:* {one-line evidence}
33
- - *{Option C}, Operational complexity = 2:* {one-line evidence}
34
-
35
- ## Recommendation
36
-
37
- **Pick {Option X}** — it's strongest on the two highest-weighted criteria (throughput + consistency) and acceptable on the rest. The gap to {next option} is meaningful (~{N}%), so this is not a close call.
38
-
39
- **What would change this answer:**
40
- - If managed-ness becomes the top constraint (e.g., SRE leaves), reconsider {Option B}.
41
- - If we relax the latency target above 100ms, {Option C} becomes viable and cheaper.
42
-
43
- ## Open questions
44
-
45
- - {Question for stakeholders — e.g., "Is multi-region active-active in scope for v1, or v2+?"}