skilldrop-cli 0.16.18 → 0.16.20

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 (371) hide show
  1. package/agents/devils-advocate.md +34 -22
  2. package/bin/skilldrop.js +18 -4
  3. package/catalogue.json +2 -1
  4. package/model-routing.json +219 -215
  5. package/package.json +1 -1
  6. package/packs/ai-engineering/skills/agent-adoption-stage/evals/evals.json +28 -0
  7. package/packs/ai-engineering/skills/agent-adoption-stage/evals/files/2/agent-telemetry.csv +7 -0
  8. package/packs/ai-engineering/skills/agent-adoption-stage/evals/files/2/cto-offsite-memo.md +9 -0
  9. package/packs/ai-engineering/skills/agent-adoption-stage/evals/files/2/dev-survey-summary.md +9 -0
  10. package/packs/ai-engineering/skills/agent-adoption-stage/evals/files/2/engineering-policy.md +15 -0
  11. package/packs/ai-engineering/skills/agent-budget/evals/evals.json +27 -0
  12. package/packs/ai-engineering/skills/agent-budget/evals/files/3/finance-note.md +10 -0
  13. package/packs/ai-engineering/skills/agent-budget/evals/files/3/pipeline.md +18 -0
  14. package/packs/ai-engineering/skills/agent-budget/evals/files/3/price-sheet.md +9 -0
  15. package/packs/ai-engineering/skills/agent-budget/evals/files/3/september-usage.csv +7 -0
  16. package/packs/ai-engineering/skills/agent-loop-design/evals/evals.json +28 -0
  17. package/packs/ai-engineering/skills/agent-loop-design/evals/files/3/design-guide-extract.md +13 -0
  18. package/packs/ai-engineering/skills/agent-loop-design/evals/files/3/legal-advice.md +9 -0
  19. package/packs/ai-engineering/skills/agent-loop-design/evals/files/3/request-from-head-of-planning.md +11 -0
  20. package/packs/ai-engineering/skills/agent-loop-design/evals/files/3/trial-notes.md +13 -0
  21. package/packs/ai-engineering/skills/agent-threat-model/evals/evals.json +27 -0
  22. package/packs/ai-engineering/skills/agent-threat-model/evals/files/4/agent-config.yaml +19 -0
  23. package/packs/ai-engineering/skills/agent-threat-model/evals/files/4/agent-spec.md +17 -0
  24. package/packs/ai-engineering/skills/agent-threat-model/evals/files/4/previous-review.md +10 -0
  25. package/packs/ai-engineering/skills/agent-threat-model/evals/files/4/vendor-security-note.md +4 -0
  26. package/packs/ai-engineering/skills/ai-adoption-rollout/evals/evals.json +28 -0
  27. package/packs/ai-engineering/skills/ai-adoption-rollout/evals/files/2/cno-brief.md +17 -0
  28. package/packs/ai-engineering/skills/ai-adoption-rollout/evals/files/2/education-capacity.md +5 -0
  29. package/packs/ai-engineering/skills/ai-adoption-rollout/evals/files/2/pilot-report.md +14 -0
  30. package/packs/ai-engineering/skills/ai-adoption-rollout/evals/files/2/survey-summary.md +7 -0
  31. package/packs/ai-engineering/skills/ai-adoption-rollout/evals/files/2/union-letter.md +8 -0
  32. package/packs/ai-engineering/skills/ai-readiness-assessment/evals/evals.json +28 -0
  33. package/packs/ai-engineering/skills/ai-readiness-assessment/evals/files/2/ceo-note.md +5 -0
  34. package/packs/ai-engineering/skills/ai-readiness-assessment/evals/files/2/governance-status.md +6 -0
  35. package/packs/ai-engineering/skills/ai-readiness-assessment/evals/files/2/interview-notes.md +18 -0
  36. package/packs/ai-engineering/skills/ai-readiness-assessment/evals/files/2/it-inventory.md +12 -0
  37. package/packs/ai-engineering/skills/ai-usage-report/evals/evals.json +27 -0
  38. package/packs/ai-engineering/skills/ai-usage-report/evals/files/2/draftwell-events.csv +249 -0
  39. package/packs/ai-engineering/skills/ai-usage-report/evals/files/2/export-note.md +9 -0
  40. package/packs/ai-engineering/skills/ai-usage-report/evals/files/2/published-assets.csv +44 -0
  41. package/packs/ai-engineering/skills/ai-usage-report/evals/files/2/team-roster.md +10 -0
  42. package/packs/ai-engineering/skills/ai-use-case-triage/evals/evals.json +27 -0
  43. package/packs/ai-engineering/skills/ai-use-case-triage/evals/files/2/data-team.md +5 -0
  44. package/packs/ai-engineering/skills/ai-use-case-triage/evals/files/2/finance-notes.md +7 -0
  45. package/packs/ai-engineering/skills/ai-use-case-triage/evals/files/2/ideas.csv +10 -0
  46. package/packs/ai-engineering/skills/ai-use-case-triage/evals/files/2/legal-note.md +7 -0
  47. package/packs/ai-engineering/skills/llm-eval-harness/evals/evals.json +28 -0
  48. package/packs/ai-engineering/skills/llm-eval-harness/evals/files/2/current-tests.md +6 -0
  49. package/packs/ai-engineering/skills/llm-eval-harness/evals/files/2/feature-brief.md +14 -0
  50. package/packs/ai-engineering/skills/llm-eval-harness/evals/files/2/incident-log.md +8 -0
  51. package/packs/ai-engineering/skills/llm-eval-harness/evals/files/2/pm-request.md +10 -0
  52. package/packs/ai-engineering/skills/subagent-design/evals/evals.json +27 -0
  53. package/packs/ai-engineering/skills/subagent-design/evals/files/3/current-process.md +11 -0
  54. package/packs/ai-engineering/skills/subagent-design/evals/files/3/director-proposal.md +6 -0
  55. package/packs/ai-engineering/skills/subagent-design/evals/files/3/scoring-rubric.md +9 -0
  56. package/packs/ai-engineering/skills/subagent-design/evals/files/3/trial-and-round-notes.md +11 -0
  57. package/packs/api-builder/skills/eval-harness-generator/evals/evals.json +27 -0
  58. package/packs/api-builder/skills/eval-harness-generator/evals/files/2/SKILL.md +35 -0
  59. package/packs/api-builder/skills/prompt-caching-advisor/evals/evals.json +25 -0
  60. package/packs/api-builder/skills/prompt-caching-advisor/evals/files/2/build_request.py +40 -0
  61. package/packs/api-builder/skills/prompt-caching-advisor/evals/files/2/notes.md +10 -0
  62. package/packs/api-builder/skills/token-budget-estimator/evals/evals.json +27 -0
  63. package/packs/api-builder/skills/token-budget-estimator/evals/files/2/pilot-usage.csv +17 -0
  64. package/packs/api-builder/skills/token-budget-estimator/evals/files/2/workflow.md +42 -0
  65. package/packs/career/pack.json +1 -1
  66. package/packs/career/skills/job-fit-analysis/SKILL.md +2 -1
  67. package/packs/career/skills/job-fit-analysis/manifest.json +3 -2
  68. package/packs/career/skills/role-shortlist/SKILL.md +107 -0
  69. package/packs/career/skills/role-shortlist/evals/eval_queries.json +34 -0
  70. package/packs/career/skills/role-shortlist/evals/evals.json +75 -0
  71. package/packs/career/skills/role-shortlist/evals/files/1/careers-index.html +22 -0
  72. package/packs/career/skills/role-shortlist/evals/files/1/cv.md +44 -0
  73. package/packs/career/skills/role-shortlist/evals/files/1/postings/clinical-coding-officer-bramwick.md +23 -0
  74. package/packs/career/skills/role-shortlist/evals/files/1/postings/data-and-performance-analyst.html +28 -0
  75. package/packs/career/skills/role-shortlist/evals/files/1/postings/estates-maintenance-electrician-bramwick.md +20 -0
  76. package/packs/career/skills/role-shortlist/evals/files/1/postings/healthcare-support-worker-nights-corrin-bay.md +20 -0
  77. package/packs/career/skills/role-shortlist/evals/files/1/postings/medical-secretary-cardiology-elsford.html +30 -0
  78. package/packs/career/skills/role-shortlist/evals/files/1/postings/outpatient-booking-team-leader-bramwick.md +23 -0
  79. package/packs/career/skills/role-shortlist/evals/files/1/postings/patient-pathway-coordinator-bramwick.md +30 -0
  80. package/packs/career/skills/role-shortlist/evals/files/1/postings/patient-pathway-coordinator-elsford.md +30 -0
  81. package/packs/career/skills/role-shortlist/evals/files/1/postings/reception-and-admin-assistant-corrin-bay.md +21 -0
  82. package/packs/career/skills/role-shortlist/evals/files/1/postings/senior-care-coordinator.md +25 -0
  83. package/packs/career/skills/role-shortlist/evals/files/2/cv.md +33 -0
  84. package/packs/career/skills/role-shortlist/evals/files/2/job-board-export.csv +11 -0
  85. package/packs/career/skills/role-shortlist/evals/files/2/postings/FJ-10422.md +26 -0
  86. package/packs/career/skills/role-shortlist/evals/files/2/postings/FJ-10431.md +25 -0
  87. package/packs/career/skills/role-shortlist/evals/files/2/postings/FJ-10455.md +27 -0
  88. package/packs/career/skills/role-shortlist/evals/files/2/postings/FJ-10468.md +25 -0
  89. package/packs/career/skills/role-shortlist/evals/files/2/postings/FJ-10476.md +25 -0
  90. package/packs/career/skills/role-shortlist/evals/files/2/postings/FJ-10490.md +24 -0
  91. package/packs/career/skills/role-shortlist/evals/files/2/postings/FJ-10587.md +26 -0
  92. package/packs/career/skills/role-shortlist/evals/files/4/brackwater-careers.html +118 -0
  93. package/packs/career/skills/role-shortlist/evals/files/4/mere-castell-cv.md +44 -0
  94. package/packs/career/skills/role-shortlist/evals/files/4/tradesboard-export.csv +6 -0
  95. package/packs/career/skills/role-shortlist/manifest.json +38 -0
  96. package/packs/converters/skills/file-to-markdown/evals/evals.json +27 -0
  97. package/packs/converters/skills/file-to-markdown/evals/files/3/harbourline-shift-policy.docx +0 -0
  98. package/packs/converters/skills/file-to-markdown/evals/files/4/seed-swap-2026.csv +10 -0
  99. package/packs/converters/skills/md-to-docx/evals/evals.json +28 -0
  100. package/packs/converters/skills/md-to-docx/evals/files/3/brand.json +12 -0
  101. package/packs/converters/skills/md-to-docx/evals/files/3/img/team-photo.png +0 -0
  102. package/packs/converters/skills/md-to-docx/evals/files/3/tender-response.md +51 -0
  103. package/packs/converters/skills/md-to-html/evals/evals.json +26 -0
  104. package/packs/converters/skills/md-to-html/evals/files/2/brand.json +13 -0
  105. package/packs/converters/skills/md-to-html/evals/files/2/img/kick-net.png +0 -0
  106. package/packs/converters/skills/md-to-html/evals/files/2/river-survey-guide.md +53 -0
  107. package/packs/converters/skills/md-to-html/evals/files/3/nanas-lentil-soup.md +21 -0
  108. package/packs/converters/skills/md-to-html/evals/files/3/pot.png +0 -0
  109. package/packs/converters/skills/md-to-xlsx/evals/evals.json +26 -0
  110. package/packs/converters/skills/md-to-xlsx/evals/files/3/depot-costs-q3.md +20 -0
  111. package/packs/converters/skills/md-to-xlsx/evals/files/4/hollowmere-5k-results.json +7 -0
  112. package/packs/converters/skills/mermaid-render/evals/evals.json +26 -0
  113. package/packs/converters/skills/mermaid-render/evals/files/2/dispensing-diagrams.md +39 -0
  114. package/packs/core/skills/brief-intake/evals/evals.json +27 -0
  115. package/packs/core/skills/brief-intake/evals/files/2/ops-meeting-notes.md +18 -0
  116. package/packs/core/skills/brief-intake/evals/files/2/thread.txt +40 -0
  117. package/packs/core/skills/council-review/evals/evals.json +28 -0
  118. package/packs/core/skills/council-review/evals/files/2/compliance-note.md +11 -0
  119. package/packs/core/skills/council-review/evals/files/2/link-outages-q3.csv +11 -0
  120. package/packs/core/skills/council-review/evals/files/2/proposal.md +39 -0
  121. package/packs/core/skills/council-review/evals/files/2/vendor-letter.txt +12 -0
  122. package/packs/core/skills/doc-critique/evals/evals.json +27 -0
  123. package/packs/core/skills/doc-critique/evals/files/2/exec-summary.md +43 -0
  124. package/packs/core/skills/output-hygiene/evals/evals.json +27 -0
  125. package/packs/core/skills/output-hygiene/evals/files/3/newsletter.md +17 -0
  126. package/packs/data-analytics/skills/dashboard-spec/evals/evals.json +27 -0
  127. package/packs/data-analytics/skills/dashboard-spec/evals/files/2/data-inventory.md +16 -0
  128. package/packs/data-analytics/skills/dashboard-spec/evals/files/2/request-email.md +28 -0
  129. package/packs/data-analytics/skills/sql-review/evals/evals.json +27 -0
  130. package/packs/data-analytics/skills/sql-review/evals/files/2/context.md +10 -0
  131. package/packs/data-analytics/skills/sql-review/evals/files/2/monthly_donor_revenue.sql +16 -0
  132. package/packs/data-analytics/skills/sql-review/evals/files/2/schema.md +20 -0
  133. package/packs/design/skills/brand-kit/evals/evals.json +26 -0
  134. package/packs/design/skills/brand-kit/evals/files/2/brand-guidelines.md +32 -0
  135. package/packs/design/skills/brand-kit/evals/files/2/contact-sheet.txt +6 -0
  136. package/packs/design/skills/brand-kit/evals/files/2/logo.svg +5 -0
  137. package/packs/design/skills/brand-kit/evals/files/2/website-colours.css +9 -0
  138. package/packs/design/skills/brand-kit/evals/files/3/muddy-paws-logo.png +0 -0
  139. package/packs/design/skills/deck-builder/evals/evals.json +27 -0
  140. package/packs/design/skills/deck-builder/evals/files/4/ashby-vale-board-notes.md +36 -0
  141. package/packs/design/skills/marketing-flyer/evals/evals.json +27 -0
  142. package/packs/design/skills/marketing-flyer/evals/files/2/brand.json +14 -0
  143. package/packs/design/skills/marketing-flyer/evals/files/2/larchfield-logo.svg +4 -0
  144. package/packs/design/skills/marketing-flyer/evals/files/2/manager-email.txt +6 -0
  145. package/packs/design/skills/marketing-flyer/evals/files/2/open-day-brief.md +15 -0
  146. package/packs/design/skills/slide-outliner/evals/evals.json +26 -0
  147. package/packs/design/skills/slide-outliner/evals/files/2/uv-dosing-design-notes.md +38 -0
  148. package/packs/dev-team/skills/accessibility-audit/evals/evals.json +27 -0
  149. package/packs/dev-team/skills/accessibility-audit/evals/files/2/booking.html +79 -0
  150. package/packs/dev-team/skills/accessibility-audit/evals/files/2/scan-report.txt +23 -0
  151. package/packs/dev-team/skills/accessibility-audit/evals/files/2/styles.css +56 -0
  152. package/packs/dev-team/skills/agents-md-generator/evals/evals.json +27 -0
  153. package/packs/dev-team/skills/agents-md-generator/evals/files/5/.github/workflows/ci.yml +12 -0
  154. package/packs/dev-team/skills/agents-md-generator/evals/files/5/CONTRIBUTING.md +20 -0
  155. package/packs/dev-team/skills/agents-md-generator/evals/files/5/README.md +15 -0
  156. package/packs/dev-team/skills/agents-md-generator/evals/files/5/data/raw/README.md +7 -0
  157. package/packs/dev-team/skills/agents-md-generator/evals/files/5/pyproject.toml +23 -0
  158. package/packs/dev-team/skills/agents-md-generator/evals/files/5/scripts/deploy.sh +6 -0
  159. package/packs/dev-team/skills/agents-md-generator/evals/files/5/src/sensor_ingest/__init__.py +1 -0
  160. package/packs/dev-team/skills/agents-md-generator/evals/files/5/src/sensor_ingest/parse.py +20 -0
  161. package/packs/dev-team/skills/agents-md-generator/evals/files/5/tests/test_gateway.py +10 -0
  162. package/packs/dev-team/skills/agents-md-generator/evals/files/5/tests/test_parse.py +7 -0
  163. package/packs/dev-team/skills/agents-md-generator/evals/files/6/clean_marks.R +5 -0
  164. package/packs/dev-team/skills/agents-md-generator/evals/files/6/grades_final.csv +6 -0
  165. package/packs/dev-team/skills/agents-md-generator/evals/files/6/make_report.R +7 -0
  166. package/packs/dev-team/skills/agents-md-generator/evals/files/6/notes.txt +8 -0
  167. package/packs/dev-team/skills/agents-md-generator/evals/files/6/raw_marks.csv +6 -0
  168. package/packs/dev-team/skills/bug-triage/evals/evals.json +27 -0
  169. package/packs/dev-team/skills/bug-triage/evals/files/2/payments-log.csv +15 -0
  170. package/packs/dev-team/skills/bug-triage/evals/files/2/slack-thread.txt +16 -0
  171. package/packs/dev-team/skills/bug-triage/evals/files/2/ticket.txt +10 -0
  172. package/packs/dev-team/skills/devils-advocate/SKILL.md +65 -124
  173. package/packs/dev-team/skills/devils-advocate/evals/evals.json +27 -0
  174. package/packs/dev-team/skills/devils-advocate/evals/files/6/PR_DESCRIPTION.md +20 -0
  175. package/packs/dev-team/skills/devils-advocate/evals/files/6/redeem.py +102 -0
  176. package/packs/dev-team/skills/devils-advocate/evals/files/6/test_redeem.py +54 -0
  177. package/packs/dev-team/skills/devils-advocate/examples/rate-limiter-review.md +36 -16
  178. package/packs/dev-team/skills/devils-advocate/manifest.json +3 -3
  179. package/packs/dev-team/skills/feature-implement-loop/evals/evals.json +27 -0
  180. package/packs/dev-team/skills/feature-implement-loop/evals/files/2/TICKET.md +20 -0
  181. package/packs/dev-team/skills/feature-implement-loop/evals/files/2/closures.csv +5 -0
  182. package/packs/dev-team/skills/feature-implement-loop/evals/files/2/desk.py +11 -0
  183. package/packs/dev-team/skills/feature-implement-loop/evals/files/2/fees.py +14 -0
  184. package/packs/dev-team/skills/feature-implement-loop/evals/files/2/tests/test_fees.py +26 -0
  185. package/packs/dev-team/skills/feature-implement-loop/evals/files/3/away.txt +5 -0
  186. package/packs/dev-team/skills/feature-implement-loop/evals/files/3/members.txt +8 -0
  187. package/packs/dev-team/skills/feature-implement-loop/evals/files/3/rota.py +12 -0
  188. package/packs/dev-team/skills/launch-readiness/evals/evals.json +27 -0
  189. package/packs/dev-team/skills/launch-readiness/evals/files/2/launch-brief.md +32 -0
  190. package/packs/dev-team/skills/launch-readiness/evals/files/2/load-test-summary.txt +11 -0
  191. package/packs/dev-team/skills/launch-readiness/evals/files/2/privacy-signoff.txt +9 -0
  192. package/packs/dev-team/skills/launch-readiness/evals/files/2/sms-template.txt +2 -0
  193. package/packs/dev-team/skills/migration-plan/evals/evals.json +27 -0
  194. package/packs/dev-team/skills/migration-plan/evals/files/2/context.md +27 -0
  195. package/packs/dev-team/skills/migration-plan/evals/files/2/deferral-codes.csv +8 -0
  196. package/packs/dev-team/skills/migration-plan/evals/files/2/field-mapping.csv +11 -0
  197. package/packs/dev-team/skills/migration-plan/evals/files/2/trial-import-summary.txt +9 -0
  198. package/packs/dev-team/skills/pr-description-writer/evals/evals.json +27 -0
  199. package/packs/dev-team/skills/pr-description-writer/evals/files/4/changes.diff +64 -0
  200. package/packs/dev-team/skills/pr-description-writer/evals/files/4/commits.txt +2 -0
  201. package/packs/dev-team/skills/pre-merge-review/evals/evals.json +28 -0
  202. package/packs/dev-team/skills/pre-merge-review/evals/files/3/CHANGE.md +12 -0
  203. package/packs/dev-team/skills/pre-merge-review/evals/files/3/CONTRIBUTING.md +5 -0
  204. package/packs/dev-team/skills/pre-merge-review/evals/files/3/change.diff +53 -0
  205. package/packs/dev-team/skills/pre-merge-review/evals/files/3/clinic_dosing/__init__.py +1 -0
  206. package/packs/dev-team/skills/pre-merge-review/evals/files/3/clinic_dosing/dosing.py +30 -0
  207. package/packs/dev-team/skills/pre-merge-review/evals/files/3/clinic_dosing/drugs.py +6 -0
  208. package/packs/dev-team/skills/pre-merge-review/evals/files/3/tests/__init__.py +0 -0
  209. package/packs/dev-team/skills/pre-merge-review/evals/files/3/tests/test_dosing.py +29 -0
  210. package/packs/dev-team/skills/sonar-onboard/evals/evals.json +27 -0
  211. package/packs/dev-team/skills/sonar-onboard/evals/files/2/.github/workflows/ci.yml +10 -0
  212. package/packs/dev-team/skills/sonar-onboard/evals/files/2/.gitlab-ci.yml +32 -0
  213. package/packs/dev-team/skills/sonar-onboard/evals/files/2/README.md +11 -0
  214. package/packs/dev-team/skills/sonar-onboard/evals/files/2/pyproject.toml +16 -0
  215. package/packs/dev-team/skills/sonar-onboard/evals/files/2/src/wayline/__init__.py +1 -0
  216. package/packs/dev-team/skills/sonar-onboard/evals/files/2/src/wayline/_generated/__init__.py +0 -0
  217. package/packs/dev-team/skills/sonar-onboard/evals/files/2/src/wayline/_generated/stops_pb2.py +4 -0
  218. package/packs/dev-team/skills/sonar-onboard/evals/files/2/src/wayline/timetable.py +12 -0
  219. package/packs/dev-team/skills/sonar-onboard/evals/files/2/src/wayline/vendor/__init__.py +0 -0
  220. package/packs/dev-team/skills/sonar-onboard/evals/files/2/src/wayline/vendor/gtfs_lite/__init__.py +3 -0
  221. package/packs/dev-team/skills/sonar-onboard/evals/files/2/tests/test_timetable.py +14 -0
  222. package/packs/dev-team/skills/sonar-onboard/evals/files/2/web/package.json +20 -0
  223. package/packs/dev-team/skills/sonar-onboard/evals/files/2/web/src/board.test.ts +9 -0
  224. package/packs/dev-team/skills/sonar-onboard/evals/files/2/web/src/board.ts +8 -0
  225. package/packs/dev-team/skills/sonar-review/evals/evals.json +27 -0
  226. package/packs/dev-team/skills/sonar-review/evals/files/2/changed-files.txt +5 -0
  227. package/packs/dev-team/skills/sonar-review/evals/files/2/hotspots.json +7 -0
  228. package/packs/dev-team/skills/sonar-review/evals/files/2/issues.json +26 -0
  229. package/packs/dev-team/skills/sonar-review/evals/files/2/quality-gate.json +19 -0
  230. package/packs/dev-team/skills/tech-debt-register/evals/evals.json +28 -0
  231. package/packs/dev-team/skills/tech-debt-register/evals/files/4/incidents.csv +7 -0
  232. package/packs/dev-team/skills/tech-debt-register/evals/files/4/retro-notes.md +21 -0
  233. package/packs/dev-team/skills/test-plan-generator/evals/evals.json +27 -0
  234. package/packs/dev-team/skills/test-plan-generator/evals/files/2/permit-renewal-spec.md +40 -0
  235. package/packs/dev-team/skills/user-story-splitter/evals/evals.json +27 -0
  236. package/packs/dev-team/skills/user-story-splitter/evals/files/2/prd-shift-swap.md +38 -0
  237. package/packs/experience-design/skills/content-design/evals/evals.json +27 -0
  238. package/packs/experience-design/skills/content-design/evals/files/2/contact-centre-notes.md +18 -0
  239. package/packs/experience-design/skills/content-design/evals/files/2/current-page.md +17 -0
  240. package/packs/experience-design/skills/content-design/evals/files/2/policy-extract.md +17 -0
  241. package/packs/experience-design/skills/design-system-spec/evals/evals.json +27 -0
  242. package/packs/experience-design/skills/design-system-spec/evals/files/2/designer-notes.md +23 -0
  243. package/packs/experience-design/skills/design-system-spec/evals/files/2/eng-thread.md +11 -0
  244. package/packs/experience-design/skills/design-system-spec/evals/files/2/tokens.json +27 -0
  245. package/packs/experience-design/skills/information-architecture/evals/evals.json +27 -0
  246. package/packs/experience-design/skills/information-architecture/evals/files/2/page-inventory.csv +28 -0
  247. package/packs/experience-design/skills/information-architecture/evals/files/2/search-log.csv +16 -0
  248. package/packs/experience-design/skills/information-architecture/evals/files/2/stakeholder-notes.md +13 -0
  249. package/packs/experience-design/skills/service-blueprint/evals/evals.json +27 -0
  250. package/packs/experience-design/skills/service-blueprint/evals/files/2/complaints-summary.md +14 -0
  251. package/packs/experience-design/skills/service-blueprint/evals/files/2/process-notes.md +15 -0
  252. package/packs/experience-design/skills/service-blueprint/evals/files/2/timings.csv +5 -0
  253. package/packs/experience-design/skills/ux-writing/evals/evals.json +27 -0
  254. package/packs/experience-design/skills/ux-writing/evals/files/2/brand-notes.md +8 -0
  255. package/packs/experience-design/skills/ux-writing/evals/files/2/error-codes.csv +6 -0
  256. package/packs/experience-design/skills/ux-writing/evals/files/2/screens.md +26 -0
  257. package/packs/grc/skills/dpia/evals/evals.json +27 -0
  258. package/packs/grc/skills/dpia/evals/files/2/legal-notes.md +6 -0
  259. package/packs/grc/skills/dpia/evals/files/2/project-brief.md +17 -0
  260. package/packs/grc/skills/dpia/evals/files/2/vendor-factsheet.md +8 -0
  261. package/packs/grc/skills/risk-register/evals/evals.json +27 -0
  262. package/packs/grc/skills/risk-register/evals/files/2/committee-notes.md +8 -0
  263. package/packs/grc/skills/risk-register/evals/files/2/risks-draft.csv +9 -0
  264. package/packs/grc/skills/risk-register/evals/files/2/scoring-scale.md +12 -0
  265. package/packs/grc/skills/security-questionnaire-response/evals/evals.json +27 -0
  266. package/packs/grc/skills/security-questionnaire-response/evals/files/4/evidence/business-continuity-plan.md +7 -0
  267. package/packs/grc/skills/security-questionnaire-response/evals/files/4/evidence/information-security-policy.md +10 -0
  268. package/packs/grc/skills/security-questionnaire-response/evals/files/4/evidence/pentest-summary-2026.md +10 -0
  269. package/packs/grc/skills/security-questionnaire-response/evals/files/4/evidence/staff-handbook-extract.md +3 -0
  270. package/packs/grc/skills/security-questionnaire-response/evals/files/4/instructions.md +10 -0
  271. package/packs/grc/skills/security-questionnaire-response/evals/files/4/questionnaire.csv +11 -0
  272. package/packs/grc/skills/soc2-evidence-map/evals/evals.json +27 -0
  273. package/packs/grc/skills/soc2-evidence-map/evals/files/2/audit-scope.md +10 -0
  274. package/packs/grc/skills/soc2-evidence-map/evals/files/2/controls.csv +13 -0
  275. package/packs/grc/skills/soc2-evidence-map/evals/files/2/tooling-notes.md +8 -0
  276. package/packs/infra-as-code/skills/terraform-module/evals/evals.json +27 -0
  277. package/packs/infra-as-code/skills/terraform-module/evals/files/3/requirements.md +23 -0
  278. package/packs/infra-as-code/skills/terraform-plan-review/evals/evals.json +27 -0
  279. package/packs/infra-as-code/skills/terraform-plan-review/evals/files/3/plan.txt +87 -0
  280. package/packs/product-manager/skills/business-case/evals/evals.json +27 -0
  281. package/packs/product-manager/skills/business-case/evals/files/2/hollin_vale_inputs.md +46 -0
  282. package/packs/product-manager/skills/okr-cascade/evals/evals.json +27 -0
  283. package/packs/product-manager/skills/okr-cascade/evals/files/3/quillfield_2027.md +45 -0
  284. package/packs/product-manager/skills/prd-draft/evals/evals.json +27 -0
  285. package/packs/product-manager/skills/prd-draft/evals/files/2/brief.md +7 -0
  286. package/packs/product-manager/skills/prd-draft/evals/files/2/call_center_notes.md +7 -0
  287. package/packs/product-manager/skills/prd-draft/evals/files/2/meter_facts.md +6 -0
  288. package/packs/product-manager/skills/prfaq/evals/evals.json +26 -0
  289. package/packs/product-manager/skills/prfaq/evals/files/3/drone_notes.md +25 -0
  290. package/packs/product-manager/skills/requirements-interview/evals/evals.json +27 -0
  291. package/packs/product-manager/skills/requirements-interview/evals/files/2/project_brief.md +29 -0
  292. package/packs/product-manager/skills/strategy-analysis/evals/evals.json +27 -0
  293. package/packs/product-manager/skills/strategy-analysis/evals/files/4/market_notes.md +21 -0
  294. package/packs/product-manager/skills/success-metrics/evals/evals.json +28 -0
  295. package/packs/product-manager/skills/success-metrics/evals/files/3/brief.md +21 -0
  296. package/packs/product-manager/skills/user-journey-map/evals/evals.json +26 -0
  297. package/packs/product-manager/skills/user-journey-map/evals/files/3/research_notes.md +30 -0
  298. package/packs/research/skills/hypothesis-comparison/evals/evals.json +27 -0
  299. package/packs/research/skills/hypothesis-comparison/evals/files/2/season_notes.md +29 -0
  300. package/packs/research/skills/research-plan/evals/evals.json +28 -0
  301. package/packs/research/skills/research-plan/evals/files/3/request.md +19 -0
  302. package/packs/skill-engineering/skills/skill-author/evals/evals.json +27 -0
  303. package/packs/skill-engineering/skills/skill-author/evals/files/2/constraints.md +7 -0
  304. package/packs/skill-engineering/skills/skill-author/evals/files/2/example-discharge.md +22 -0
  305. package/packs/skill-engineering/skills/skill-author/evals/files/2/process.md +15 -0
  306. package/packs/skill-engineering/skills/skill-review/evals/evals.json +27 -0
  307. package/packs/skill-engineering/skills/skill-review/evals/files/2/invoice-chaser/SKILL.md +20 -0
  308. package/packs/skill-engineering/skills/skill-review/evals/files/2/invoice-chaser/evals/evals.json +12 -0
  309. package/packs/skill-engineering/skills/skill-review/evals/files/2/invoice-chaser/scripts/send_reminders.py +46 -0
  310. package/packs/solution-architect/skills/adr-generator/evals/evals.json +27 -0
  311. package/packs/solution-architect/skills/adr-generator/evals/files/2/integration-notes.md +23 -0
  312. package/packs/solution-architect/skills/adr-generator/evals/files/2/larchway-quote.txt +10 -0
  313. package/packs/solution-architect/skills/api-contract-draft/evals/evals.json +27 -0
  314. package/packs/solution-architect/skills/api-contract-draft/evals/files/2/booking-brief.md +18 -0
  315. package/packs/solution-architect/skills/api-contract-draft/evals/files/2/facilities-policy-excerpt.md +7 -0
  316. package/packs/solution-architect/skills/architecture-diagrams/evals/evals.json +27 -0
  317. package/packs/solution-architect/skills/architecture-diagrams/evals/files/2/telemetry-overview.md +23 -0
  318. package/packs/solution-architect/skills/data-contract/evals/evals.json +27 -0
  319. package/packs/solution-architect/skills/data-contract/evals/files/2/grain_deliveries.sql +15 -0
  320. package/packs/solution-architect/skills/data-contract/evals/files/2/publisher-notes.md +14 -0
  321. package/packs/solution-architect/skills/data-contract/evals/files/2/sample_rows.csv +6 -0
  322. package/packs/solution-architect/skills/figma-diagrams/evals/evals.json +26 -0
  323. package/packs/solution-architect/skills/figma-diagrams/evals/files/2/signage-file.json +373 -0
  324. package/packs/solution-architect/skills/nfr-spec/evals/evals.json +27 -0
  325. package/packs/solution-architect/skills/nfr-spec/evals/files/2/vehicle-booking-brief.md +21 -0
  326. package/packs/solution-architect/skills/reverse-architecture/evals/evals.json +28 -0
  327. package/packs/solution-architect/skills/reverse-architecture/evals/files/2/README.md +11 -0
  328. package/packs/solution-architect/skills/reverse-architecture/evals/files/2/docker-compose.yml +42 -0
  329. package/packs/solution-architect/skills/reverse-architecture/evals/files/2/env.example +3 -0
  330. package/packs/solution-architect/skills/reverse-architecture/evals/files/2/nginx.conf +15 -0
  331. package/packs/solution-architect/skills/reverse-architecture/evals/files/2/worker-requirements.txt +4 -0
  332. package/packs/solution-architect/skills/threat-model/evals/evals.json +28 -0
  333. package/packs/solution-architect/skills/threat-model/evals/files/2/permits-design.md +23 -0
  334. package/packs/sre-oncall/skills/capacity-cost-model/evals/evals.json +28 -0
  335. package/packs/sre-oncall/skills/capacity-cost-model/evals/files/2/brief.md +22 -0
  336. package/packs/sre-oncall/skills/capacity-cost-model/evals/files/2/price-sheet.md +13 -0
  337. package/packs/sre-oncall/skills/capacity-cost-model/evals/files/2/rollout-plan.md +27 -0
  338. package/packs/sre-oncall/skills/cloud-cost-review/evals/evals.json +28 -0
  339. package/packs/sre-oncall/skills/cloud-cost-review/evals/files/3/cost-export-2026-09.csv +25 -0
  340. package/packs/sre-oncall/skills/cloud-cost-review/evals/files/3/notes.md +11 -0
  341. package/packs/sre-oncall/skills/cloud-cost-review/evals/files/3/utilisation-2026-09.csv +12 -0
  342. package/packs/sre-oncall/skills/delivery-metrics-report/evals/evals.json +27 -0
  343. package/packs/sre-oncall/skills/delivery-metrics-report/evals/files/3/deploys.csv +68 -0
  344. package/packs/sre-oncall/skills/delivery-metrics-report/evals/files/3/incidents.csv +7 -0
  345. package/packs/sre-oncall/skills/delivery-metrics-report/evals/files/3/prs.csv +46 -0
  346. package/packs/sre-oncall/skills/incident-comms/evals/evals.json +27 -0
  347. package/packs/sre-oncall/skills/incident-comms/evals/files/2/comms-rules.md +6 -0
  348. package/packs/sre-oncall/skills/incident-comms/evals/files/2/incident-channel.txt +17 -0
  349. package/packs/sre-oncall/skills/incident-comms/evals/files/2/last-status-update.md +5 -0
  350. package/packs/sre-oncall/skills/observability-plan/evals/evals.json +27 -0
  351. package/packs/sre-oncall/skills/observability-plan/evals/files/2/constraints.md +9 -0
  352. package/packs/sre-oncall/skills/observability-plan/evals/files/2/current-alerts.csv +10 -0
  353. package/packs/sre-oncall/skills/observability-plan/evals/files/2/service-overview.md +27 -0
  354. package/packs/sre-oncall/skills/runbook-generator/evals/evals.json +27 -0
  355. package/packs/sre-oncall/skills/runbook-generator/evals/files/2/deploy.sh +14 -0
  356. package/packs/sre-oncall/skills/runbook-generator/evals/files/2/handover-chat.txt +8 -0
  357. package/packs/sre-oncall/skills/runbook-generator/evals/files/2/service-notes.md +26 -0
  358. package/packs/sre-oncall/skills/runbook-generator/evals/files/2/standing-order.md +3 -0
  359. package/packs/stakeholder-comms/skills/audience-profile/evals/evals.json +26 -0
  360. package/packs/stakeholder-comms/skills/decision-log/evals/evals.json +26 -0
  361. package/packs/stakeholder-comms/skills/decision-log/evals/files/2/committee-meeting-2026-09-03.txt +23 -0
  362. package/packs/stakeholder-comms/skills/decision-log/evals/files/2/followup-thread.txt +6 -0
  363. package/packs/stakeholder-comms/skills/exec-summary/evals/evals.json +26 -0
  364. package/packs/stakeholder-comms/skills/exec-summary/evals/files/2/library-branches-options-paper.md +67 -0
  365. package/packs/trackers/skills/backlog-triage/evals/evals.json +27 -0
  366. package/packs/trackers/skills/backlog-triage/evals/files/3/parks-backlog.csv +19 -0
  367. package/packs/trackers/skills/team-status-report/evals/evals.json +28 -0
  368. package/packs/trackers/skills/team-status-report/evals/files/3/larkspur-week-42.csv +15 -0
  369. package/packs/trackers/skills/tracker-brief-sync/evals/evals.json +28 -0
  370. package/packs/trackers/skills/tracker-brief-sync/evals/files/3/brief-home-delivery.md +44 -0
  371. package/packs/dev-team/skills/devils-advocate/templates/challenge.md +0 -118
@@ -11,6 +11,33 @@
11
11
  "The contract names the owner and the consumers it is a promise to",
12
12
  "Freshness, completeness, validity, and distribution are each addressed or explicitly marked not-applicable"
13
13
  ]
14
+ },
15
+ {
16
+ "id": 2,
17
+ "held_out": "2026-10-18",
18
+ "prompt": "We're publishing the grain_deliveries table to Finance and Logistics and want a data contract in place before anyone else builds on it. Everything is in this folder: grain_deliveries.sql, sample_rows.csv and publisher-notes.md.",
19
+ "assertions": [
20
+ "Saves data-contract.yaml, which parses as YAML, and keeps the open issues in the reply to a few lines as asked",
21
+ "Resolves or flags the weight unit conflict: the notes say kg, but the schema comment and the sample values point to tonnes",
22
+ "Flags that moisture_pct in the sample rows mixes percentages (such as 14.2) with fractions (such as 0.138), and sets a check that would catch it",
23
+ "Classifies farmer_name and farmer_phone as personal data, despite the notes saying the table holds none",
24
+ "Does not promise 15-minute freshness, noting that the table is loaded nightly from the weighbridge export",
25
+ "Does not name an owner; leaves ownership as an open issue for the two teams to settle",
26
+ "Does not invent columns, consumers or allowed values that are not in the supplied files"
27
+ ]
28
+ },
29
+ {
30
+ "id": 3,
31
+ "held_out": "2026-10-18",
32
+ "prompt": "I'm the transport coordinator for Millbeck School District. The bus company emails us a spreadsheet of routes every week, and every time they rename or move a column our parent text alerts break. Someone said we need a 'data contract' with them. Can you write one I can send? A few bullets, they're not techy. The columns now are: Route No, Stop Name, Pickup Time, Driver First Name, Bus Reg.",
33
+ "assertions": [
34
+ "Delivers bullets ready to send, without asking questions first",
35
+ "Asks the bus company to keep the listed column names and order the same, and to give notice before changing them",
36
+ "Sets an expected format for at least one field that would break the alerts, such as pickup time (for example 24-hour HH:MM)",
37
+ "Raises whether Driver First Name needs to be shared, since it is personal information about the drivers",
38
+ "Does not invent columns, penalties, legal terms or deadlines not in the message; any notice period is offered as a suggestion",
39
+ "Keeps to a few bullets in plain language a non-technical bus company would follow"
40
+ ]
14
41
  }
15
42
  ]
16
43
  }
@@ -0,0 +1,15 @@
1
+ -- Harrowgate Grain Co-operative — warehouse.grain_deliveries
2
+ -- Loaded nightly (02:00) from the weighbridge export.
3
+ CREATE TABLE warehouse.grain_deliveries (
4
+ delivery_id VARCHAR(20) NOT NULL PRIMARY KEY, -- weighbridge ticket number
5
+ delivered_at TIMESTAMP NOT NULL, -- local time at the weighbridge
6
+ site_code CHAR(3) NOT NULL, -- HGT, MLB or RSW
7
+ member_id VARCHAR(10) NOT NULL, -- co-op member number
8
+ farmer_name VARCHAR(120),
9
+ farmer_phone VARCHAR(20),
10
+ crop VARCHAR(30) NOT NULL, -- wheat, barley, oilseed_rape, oats
11
+ net_weight NUMERIC(8,3) NOT NULL, -- net weight in tonnes
12
+ moisture_pct NUMERIC(5,3), -- moisture content
13
+ grade CHAR(1), -- A, B, C or R (rejected); null until graded
14
+ price_per_tonne NUMERIC(8,2) -- GBP, set by the grading team; null until graded
15
+ );
@@ -0,0 +1,14 @@
1
+ # Notes from the data team — publishing grain_deliveries
2
+
3
+ Consumers:
4
+ - Finance: pays members weekly from this table (net weight x price_per_tonne). Runs Tuesdays 09:00.
5
+ - Logistics: plans haulage from site volumes.
6
+
7
+ What we want in the contract:
8
+ - Weights are in kg.
9
+ - moisture_pct is a percentage, 0-100.
10
+ - No personal data in this table, so no special handling needed.
11
+ - Freshness: Finance asked for deliveries to be in the table within 15 minutes of crossing the weighbridge.
12
+ - Owner: not agreed yet. The data team says weighbridge operations own it; weighbridge operations say the data team does.
13
+
14
+ Please write the contract as data-contract.yaml and give me the open issues in a few lines.
@@ -0,0 +1,6 @@
1
+ delivery_id,delivered_at,site_code,member_id,farmer_name,farmer_phone,crop,net_weight,moisture_pct,grade,price_per_tonne
2
+ WB-2026-081201,2026-08-12 06:42:10,HGT,M0412,Example Farmer One,07700 900101,wheat,28.420,14.200,A,192.50
3
+ WB-2026-081202,2026-08-12 07:05:44,HGT,M0388,Example Farmer Two,07700 900102,barley,24.115,0.138,B,171.00
4
+ WB-2026-081203,2026-08-12 07:31:09,MLB,M0129,Example Farmer Three,,oilseed_rape,19.870,8.900,A,
5
+ WB-2026-081204,2026-08-12 08:02:51,RSW,M0412,Example Farmer One,07700 900101,wheat,27.960,0.151,R,0.00
6
+ WB-2026-081205,2026-08-12 08:14:30,HGT,M0233,Example Farmer Four,07700 900104,oats,21.300,15.600,,
@@ -10,6 +10,32 @@
10
10
  "Before posting any comment, the exact comment text and target frame are shown for confirmation",
11
11
  "The skill states clearly when FIGMA_TOKEN is missing rather than failing opaquely"
12
12
  ]
13
+ },
14
+ {
15
+ "id": 2,
16
+ "held_out": "2026-10-18",
17
+ "prompt": "Our design agency sent the Figma file for Ostwick Museum's new signage as a JSON export, signage-file.json. We don't have a Figma login or API token at the museum, so please work from the file. Can you (1) list the pages and the frames on each, (2) check the Final page against what the Brief page asks for, and (3) draft the comments I should leave for the agency on any frames with problems — one line each, and don't post anything, I'll paste them in myself. The agency's cover email says 'all 12 sign types are on the Sign Types page and every floor is final'.",
18
+ "assertions": [
19
+ "Lists the pages and their frames as they appear in signage-file.json, without inventing frames",
20
+ "Points out that Level 2 has no frame on the Final page, only an old version on the Archive page",
21
+ "Points out that the 'Floor Plan – Level 1 – Final' frame contains text saying it is a draft not approved by the museum",
22
+ "Points out that only 11 sign types are present and Type 07 is missing, contradicting the agency's email",
23
+ "Does not claim to have posted comments or called the Figma API, and does not stop to ask for a token before doing the work",
24
+ "The draft comments are one line each and each is tied to a specific frame"
25
+ ]
26
+ },
27
+ {
28
+ "id": 3,
29
+ "held_out": "2026-10-18",
30
+ "prompt": "I'm the HR manager at Brindle & Co (about 40 people). I'd like our new-starter process on our FigJam team board: offer accepted → IT sets up laptop → first-day welcome → buddy assigned → 30-day check-in. I don't have an API token or any developer stuff, I just want something I can get onto the board. Keep it tiny.",
31
+ "assertions": [
32
+ "Delivers something the user can get onto the FigJam board without an API token, rather than stopping to ask for a token or access",
33
+ "Contains the five steps in the stated order",
34
+ "Does not claim to have created or posted anything in Figma or FigJam",
35
+ "Gives short, non-technical steps for getting it onto the board",
36
+ "Does not invent extra steps, owners or timings beyond those in the message",
37
+ "Keeps the whole reply short"
38
+ ]
13
39
  }
14
40
  ]
15
41
  }
@@ -0,0 +1,373 @@
1
+ {
2
+ "name": "Ostwick Museum — Wayfinding Signage",
3
+ "lastModified": "2026-10-12T15:04:22Z",
4
+ "version": "4418823190",
5
+ "schemaVersion": 0,
6
+ "document": {
7
+ "id": "0:0",
8
+ "name": "Document",
9
+ "type": "DOCUMENT",
10
+ "children": [
11
+ {
12
+ "id": "0:1",
13
+ "name": "Cover",
14
+ "type": "CANVAS",
15
+ "children": [
16
+ {
17
+ "id": "1:2",
18
+ "name": "Cover",
19
+ "type": "FRAME",
20
+ "absoluteBoundingBox": {
21
+ "x": 0,
22
+ "y": 0,
23
+ "width": 1920,
24
+ "height": 1080
25
+ },
26
+ "children": [
27
+ {
28
+ "id": "1:3",
29
+ "name": "Title",
30
+ "type": "TEXT",
31
+ "characters": "Ostwick Museum wayfinding — agency delivery, October 2026"
32
+ }
33
+ ]
34
+ }
35
+ ]
36
+ },
37
+ {
38
+ "id": "10:0",
39
+ "name": "Brief",
40
+ "type": "CANVAS",
41
+ "children": [
42
+ {
43
+ "id": "10:1",
44
+ "name": "Brief",
45
+ "type": "FRAME",
46
+ "absoluteBoundingBox": {
47
+ "x": 0,
48
+ "y": 0,
49
+ "width": 1920,
50
+ "height": 1080
51
+ },
52
+ "children": [
53
+ {
54
+ "id": "10:2",
55
+ "name": "Scope",
56
+ "type": "TEXT",
57
+ "characters": "Scope: floor plans for Ground, Level 1, Level 2 and Level 3. Sign family of 12 sign types (Type 01 to Type 12). All floor plans approved by the museum before the Final page is signed off."
58
+ }
59
+ ]
60
+ }
61
+ ]
62
+ },
63
+ {
64
+ "id": "30:0",
65
+ "name": "Sign Types",
66
+ "type": "CANVAS",
67
+ "children": [
68
+ {
69
+ "id": "30:1",
70
+ "name": "Type 01 – Directional",
71
+ "type": "FRAME",
72
+ "absoluteBoundingBox": {
73
+ "x": 0,
74
+ "y": 0,
75
+ "width": 1920,
76
+ "height": 1080
77
+ },
78
+ "children": [
79
+ {
80
+ "id": "30:101",
81
+ "name": "Label",
82
+ "type": "TEXT",
83
+ "characters": "Sign type 01: Directional"
84
+ }
85
+ ]
86
+ },
87
+ {
88
+ "id": "30:2",
89
+ "name": "Type 02 – Gallery ID",
90
+ "type": "FRAME",
91
+ "absoluteBoundingBox": {
92
+ "x": 0,
93
+ "y": 0,
94
+ "width": 1920,
95
+ "height": 1080
96
+ },
97
+ "children": [
98
+ {
99
+ "id": "30:102",
100
+ "name": "Label",
101
+ "type": "TEXT",
102
+ "characters": "Sign type 02: Gallery ID"
103
+ }
104
+ ]
105
+ },
106
+ {
107
+ "id": "30:3",
108
+ "name": "Type 03 – Lift",
109
+ "type": "FRAME",
110
+ "absoluteBoundingBox": {
111
+ "x": 0,
112
+ "y": 0,
113
+ "width": 1920,
114
+ "height": 1080
115
+ },
116
+ "children": [
117
+ {
118
+ "id": "30:103",
119
+ "name": "Label",
120
+ "type": "TEXT",
121
+ "characters": "Sign type 03: Lift"
122
+ }
123
+ ]
124
+ },
125
+ {
126
+ "id": "30:4",
127
+ "name": "Type 04 – Toilets",
128
+ "type": "FRAME",
129
+ "absoluteBoundingBox": {
130
+ "x": 0,
131
+ "y": 0,
132
+ "width": 1920,
133
+ "height": 1080
134
+ },
135
+ "children": [
136
+ {
137
+ "id": "30:104",
138
+ "name": "Label",
139
+ "type": "TEXT",
140
+ "characters": "Sign type 04: Toilets"
141
+ }
142
+ ]
143
+ },
144
+ {
145
+ "id": "30:5",
146
+ "name": "Type 05 – Exit",
147
+ "type": "FRAME",
148
+ "absoluteBoundingBox": {
149
+ "x": 0,
150
+ "y": 0,
151
+ "width": 1920,
152
+ "height": 1080
153
+ },
154
+ "children": [
155
+ {
156
+ "id": "30:105",
157
+ "name": "Label",
158
+ "type": "TEXT",
159
+ "characters": "Sign type 05: Exit"
160
+ }
161
+ ]
162
+ },
163
+ {
164
+ "id": "30:6",
165
+ "name": "Type 06 – Cafe",
166
+ "type": "FRAME",
167
+ "absoluteBoundingBox": {
168
+ "x": 0,
169
+ "y": 0,
170
+ "width": 1920,
171
+ "height": 1080
172
+ },
173
+ "children": [
174
+ {
175
+ "id": "30:106",
176
+ "name": "Label",
177
+ "type": "TEXT",
178
+ "characters": "Sign type 06: Cafe"
179
+ }
180
+ ]
181
+ },
182
+ {
183
+ "id": "30:8",
184
+ "name": "Type 08 – Shop",
185
+ "type": "FRAME",
186
+ "absoluteBoundingBox": {
187
+ "x": 0,
188
+ "y": 0,
189
+ "width": 1920,
190
+ "height": 1080
191
+ },
192
+ "children": [
193
+ {
194
+ "id": "30:108",
195
+ "name": "Label",
196
+ "type": "TEXT",
197
+ "characters": "Sign type 08: Shop"
198
+ }
199
+ ]
200
+ },
201
+ {
202
+ "id": "30:9",
203
+ "name": "Type 09 – Accessible route",
204
+ "type": "FRAME",
205
+ "absoluteBoundingBox": {
206
+ "x": 0,
207
+ "y": 0,
208
+ "width": 1920,
209
+ "height": 1080
210
+ },
211
+ "children": [
212
+ {
213
+ "id": "30:109",
214
+ "name": "Label",
215
+ "type": "TEXT",
216
+ "characters": "Sign type 09: Accessible route"
217
+ }
218
+ ]
219
+ },
220
+ {
221
+ "id": "30:10",
222
+ "name": "Type 10 – Floor directory",
223
+ "type": "FRAME",
224
+ "absoluteBoundingBox": {
225
+ "x": 0,
226
+ "y": 0,
227
+ "width": 1920,
228
+ "height": 1080
229
+ },
230
+ "children": [
231
+ {
232
+ "id": "30:110",
233
+ "name": "Label",
234
+ "type": "TEXT",
235
+ "characters": "Sign type 10: Floor directory"
236
+ }
237
+ ]
238
+ },
239
+ {
240
+ "id": "30:11",
241
+ "name": "Type 11 – Room number",
242
+ "type": "FRAME",
243
+ "absoluteBoundingBox": {
244
+ "x": 0,
245
+ "y": 0,
246
+ "width": 1920,
247
+ "height": 1080
248
+ },
249
+ "children": [
250
+ {
251
+ "id": "30:111",
252
+ "name": "Label",
253
+ "type": "TEXT",
254
+ "characters": "Sign type 11: Room number"
255
+ }
256
+ ]
257
+ },
258
+ {
259
+ "id": "30:12",
260
+ "name": "Type 12 – Temporary exhibition",
261
+ "type": "FRAME",
262
+ "absoluteBoundingBox": {
263
+ "x": 0,
264
+ "y": 0,
265
+ "width": 1920,
266
+ "height": 1080
267
+ },
268
+ "children": [
269
+ {
270
+ "id": "30:112",
271
+ "name": "Label",
272
+ "type": "TEXT",
273
+ "characters": "Sign type 12: Temporary exhibition"
274
+ }
275
+ ]
276
+ }
277
+ ]
278
+ },
279
+ {
280
+ "id": "40:0",
281
+ "name": "Final",
282
+ "type": "CANVAS",
283
+ "children": [
284
+ {
285
+ "id": "40:1",
286
+ "name": "Floor Plan – Ground – Final",
287
+ "type": "FRAME",
288
+ "absoluteBoundingBox": {
289
+ "x": 0,
290
+ "y": 0,
291
+ "width": 1920,
292
+ "height": 1080
293
+ },
294
+ "children": [
295
+ {
296
+ "id": "40:11",
297
+ "name": "Status",
298
+ "type": "TEXT",
299
+ "characters": "Approved by museum 2 Oct 2026"
300
+ }
301
+ ]
302
+ },
303
+ {
304
+ "id": "40:2",
305
+ "name": "Floor Plan – Level 1 – Final",
306
+ "type": "FRAME",
307
+ "absoluteBoundingBox": {
308
+ "x": 0,
309
+ "y": 0,
310
+ "width": 1920,
311
+ "height": 1080
312
+ },
313
+ "children": [
314
+ {
315
+ "id": "40:21",
316
+ "name": "Status",
317
+ "type": "TEXT",
318
+ "characters": "DRAFT v3 — not approved by museum"
319
+ }
320
+ ]
321
+ },
322
+ {
323
+ "id": "40:3",
324
+ "name": "Floor Plan – Level 3 – Final",
325
+ "type": "FRAME",
326
+ "absoluteBoundingBox": {
327
+ "x": 0,
328
+ "y": 0,
329
+ "width": 1920,
330
+ "height": 1080
331
+ },
332
+ "children": [
333
+ {
334
+ "id": "40:31",
335
+ "name": "Status",
336
+ "type": "TEXT",
337
+ "characters": "Approved by museum 9 Oct 2026"
338
+ }
339
+ ]
340
+ }
341
+ ]
342
+ },
343
+ {
344
+ "id": "50:0",
345
+ "name": "Archive",
346
+ "type": "CANVAS",
347
+ "children": [
348
+ {
349
+ "id": "50:1",
350
+ "name": "Floor Plan – Level 2 (OLD)",
351
+ "type": "FRAME",
352
+ "absoluteBoundingBox": {
353
+ "x": 0,
354
+ "y": 0,
355
+ "width": 1920,
356
+ "height": 1080
357
+ },
358
+ "children": [
359
+ {
360
+ "id": "50:11",
361
+ "name": "Status",
362
+ "type": "TEXT",
363
+ "characters": "Superseded — layout before gallery 2B refit"
364
+ }
365
+ ]
366
+ }
367
+ ]
368
+ }
369
+ ]
370
+ },
371
+ "components": {},
372
+ "styles": {}
373
+ }
@@ -11,6 +11,33 @@
11
11
  "Privacy and retention are given concrete periods rather than 'per policy'",
12
12
  "The output is a reviewable ledger covering all categories, not a prose paragraph about quality"
13
13
  ]
14
+ },
15
+ {
16
+ "id": 2,
17
+ "held_out": "2026-10-18",
18
+ "prompt": "Can you write the non-functional requirements for this? The brief is vehicle-booking-brief.md. It goes to the delivery team and the supplier next week. No more than two pages.",
19
+ "assertions": [
20
+ "Points out that 2,000 bookings a day does not imply 500 requests per second, and bases the load target on the evidence given (the 1 March opening rush of 6,000 bookings in the first hour)",
21
+ "Replaces '100% of the time' with a measurable availability target and explains why 100% is not a usable requirement",
22
+ "Requires ramp scanning to keep working when the mobile signal drops out at Harrick pier and Saltness slipway",
23
+ "Flags the conflict between keeping passenger details forever and the 3-year manifest deletion and marketing opt-in rules, and does not adopt 'forever'",
24
+ "Does not treat accessibility as not applicable, given passengers must be able to request an accessible space",
25
+ "Does not invent facts about the business not in the brief; any figure not derived from it is marked as an assumption",
26
+ "Fits within two pages"
27
+ ]
28
+ },
29
+ {
30
+ "id": 3,
31
+ "held_out": "2026-10-18",
32
+ "prompt": "I own a small bakery (Crumb & Co, two shops). We're getting a website where people can order birthday cakes and collect them. The web guy asked me for 'non-functional requirements' and I have no idea what that means. What should I tell him? A few bullets in plain English please.",
33
+ "assertions": [
34
+ "Answers with bullets the owner can pass on directly, without asking questions first",
35
+ "Uses plain English; any technical term is explained or avoided",
36
+ "Gives concrete, checkable targets (for example a page-load time or how much downtime is acceptable) rather than only words like 'fast' or 'reliable'",
37
+ "Covers looking after customers' personal and payment details",
38
+ "Marks figures as suggestions to confirm, and does not state facts about the bakery (order volumes, opening hours, prices) that were not given",
39
+ "Stays to a few bullets (roughly 10 or fewer)"
40
+ ]
14
41
  }
15
42
  ]
16
43
  }
@@ -0,0 +1,21 @@
1
+ # Vellmoor Ferries — online vehicle booking and ramp scanning (brief v0.3)
2
+
3
+ ## What we're building
4
+ Passengers book a vehicle space on a sailing online and get a QR boarding pass. At the port, ramp staff scan the QR code on a handheld before the vehicle drives on.
5
+
6
+ 3 routes, 5 ports. 22 sailings a day in summer, 9 in winter. The largest vessel carries 140 cars.
7
+
8
+ ## From the product manager
9
+ - "It has to be up 100% of the time — if it's down we can't load the ship."
10
+ - "Peak is about 2,000 bookings a day on summer Saturdays, so we need to handle 500 requests per second."
11
+ - "Accessibility isn't really relevant, it's a booking site."
12
+ - "Keep passenger details forever — marketing want them."
13
+
14
+ ## From operations
15
+ - The mobile signal at Harrick pier and Saltness slipway drops out for minutes at a time. Ramp staff can't wait for a signal to load a vehicle.
16
+ - Summer bookings open on 1 March at 09:00. Last year 6,000 bookings were made in the first hour, and the old site fell over at 09:04.
17
+ - Passengers who need an accessible space (blue-badge holders, wheelchair users) must be able to say so when booking, so the crew can park their vehicle near the lift.
18
+
19
+ ## From legal
20
+ - Passenger manifests must be kept for 3 years for the maritime regulator, then deleted.
21
+ - Using contact details for marketing needs the passenger's opt-in.
@@ -11,6 +11,34 @@
11
11
  "Nodes are grouped by deployment boundary as the artifacts reveal it",
12
12
  "The output is derived from the supplied artifacts, not from a written description of intent"
13
13
  ]
14
+ },
15
+ {
16
+ "id": 2,
17
+ "held_out": "2026-10-18",
18
+ "prompt": "I've just taken over the Gilded Lantern Theatre's box-office system and there's no architecture diagram. The files I have are docker-compose.yml, nginx.conf, env.example, worker-requirements.txt and an old README.md. Draw what actually exists — one Mermaid diagram plus a description of no more than 300 words — and save both in as-is.md.",
19
+ "assertions": [
20
+ "as-is.md is saved with one Mermaid diagram and a description of no more than about 300 words",
21
+ "The diagram shows the services defined in docker-compose.yml (proxy, web, worker, db, cache), with both web and worker connecting to the database and Redis",
22
+ "Notes that the README's RabbitMQ does not appear in the files and that the worker uses Redis (rq) as its queue",
23
+ "Flags that nginx routes /admin/ to an 'admin' service that is not defined in docker-compose.yml, rather than drawing it as a working service without comment",
24
+ "Marks legacy-reports as not started by default (it sits in the 'manual' profile)",
25
+ "Shows the payment gateway, the SMTP server and the seat-map host as external dependencies",
26
+ "Does not invent components that are not in the files (for example load balancers, Kubernetes, monitoring or extra databases)"
27
+ ]
28
+ },
29
+ {
30
+ "id": 3,
31
+ "held_out": "2026-10-18",
32
+ "prompt": "our postdoc left and nobody in the lab knows how the greenhouse sensor setup works. this is what's on the raspberry pi in the greenhouse. can you tell me what talks to what? short please, I'm a plant scientist not a programmer\n\ncrontab -l:\n*/10 * * * * /home/pi/gh/read_sensors.py >> /home/pi/gh/log.txt 2>&1\n0 2 * * * rsync -a /home/pi/gh/data/ archive@backup.lab.test:/srv/greenhouse/\n30 6 * * * /home/pi/gh/water.py --zone all\n\n/home/pi/gh/config.ini:\n[sensors]\ntype = dht22\ngpio_pins = 4,17,27\n[storage]\ncsv_dir = /home/pi/gh/data\n[watering]\nrelay_pin = 22\nduration_seconds = 90\n[alerts]\nenabled = false\nwebhook = https://hooks.example.test/greenhouse",
33
+ "assertions": [
34
+ "Explains that the sensors are read every 10 minutes and the readings saved to files on the Pi",
35
+ "Explains that the data is copied to a backup server every night at 2am",
36
+ "Explains that watering runs every day at 6:30am, switched by a relay, with a configured duration of 90 seconds",
37
+ "Points out that alerts are switched off, so nobody is notified if something goes wrong",
38
+ "Says what cannot be told from these files (for example what the scripts do inside, or what happens on the backup server) rather than guessing",
39
+ "Does not invent devices, services or behaviour that are not in the crontab or config",
40
+ "Is short and in plain language for a non-programmer"
41
+ ]
14
42
  }
15
43
  ]
16
44
  }
@@ -0,0 +1,11 @@
1
+ # Gilded Lantern Box Office
2
+
3
+ Online ticketing for the Gilded Lantern Theatre.
4
+
5
+ ## Architecture
6
+ - Django web app behind nginx
7
+ - Postgres database
8
+ - Redis for sessions
9
+ - RabbitMQ for the background job queue (ticket PDFs and confirmation emails)
10
+ - Admin console at /admin (separate service)
11
+ - Nightly sales reports
@@ -0,0 +1,42 @@
1
+ services:
2
+ proxy:
3
+ image: nginx:1.27
4
+ ports:
5
+ - "443:443"
6
+ volumes:
7
+ - ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
8
+ depends_on: [web]
9
+
10
+ web:
11
+ build: ./web
12
+ env_file: env.example
13
+ environment:
14
+ DATABASE_URL: postgres://boxoffice@db:5432/boxoffice
15
+ REDIS_URL: redis://cache:6379/0
16
+ depends_on: [db, cache]
17
+
18
+ worker:
19
+ build: ./worker
20
+ command: rq worker emails tickets
21
+ environment:
22
+ DATABASE_URL: postgres://boxoffice@db:5432/boxoffice
23
+ REDIS_URL: redis://cache:6379/0
24
+ SMTP_HOST: smtp.mail.example.test
25
+ depends_on: [db, cache]
26
+
27
+ db:
28
+ image: postgres:16
29
+ volumes:
30
+ - dbdata:/var/lib/postgresql/data
31
+
32
+ cache:
33
+ image: redis:7
34
+
35
+ legacy-reports:
36
+ build: ./reports
37
+ profiles: ["manual"]
38
+ environment:
39
+ DATABASE_URL: postgres://reports_ro@db:5432/boxoffice
40
+
41
+ volumes:
42
+ dbdata:
@@ -0,0 +1,3 @@
1
+ PAYMENT_GATEWAY_URL=https://pay.example.test/v1
2
+ PAYMENT_GATEWAY_KEY=replace-me
3
+ SEATMAP_CDN_URL=https://seatmaps.example.test
@@ -0,0 +1,15 @@
1
+ server {
2
+ listen 443 ssl;
3
+ server_name tickets.gildedlantern.example.test;
4
+
5
+ ssl_certificate /etc/nginx/certs/site.crt;
6
+ ssl_certificate_key /etc/nginx/certs/site.key;
7
+
8
+ location / {
9
+ proxy_pass http://web:8000;
10
+ }
11
+
12
+ location /admin/ {
13
+ proxy_pass http://admin:8080;
14
+ }
15
+ }
@@ -0,0 +1,4 @@
1
+ rq==1.16.2
2
+ redis==5.0.4
3
+ psycopg[binary]==3.2.1
4
+ jinja2==3.1.4