skilldrop-cli 0.16.19 → 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 (362) hide show
  1. package/bin/skilldrop.js +18 -4
  2. package/catalogue.json +2 -1
  3. package/model-routing.json +219 -215
  4. package/package.json +1 -1
  5. package/packs/ai-engineering/skills/agent-adoption-stage/evals/evals.json +28 -0
  6. package/packs/ai-engineering/skills/agent-adoption-stage/evals/files/2/agent-telemetry.csv +7 -0
  7. package/packs/ai-engineering/skills/agent-adoption-stage/evals/files/2/cto-offsite-memo.md +9 -0
  8. package/packs/ai-engineering/skills/agent-adoption-stage/evals/files/2/dev-survey-summary.md +9 -0
  9. package/packs/ai-engineering/skills/agent-adoption-stage/evals/files/2/engineering-policy.md +15 -0
  10. package/packs/ai-engineering/skills/agent-budget/evals/evals.json +27 -0
  11. package/packs/ai-engineering/skills/agent-budget/evals/files/3/finance-note.md +10 -0
  12. package/packs/ai-engineering/skills/agent-budget/evals/files/3/pipeline.md +18 -0
  13. package/packs/ai-engineering/skills/agent-budget/evals/files/3/price-sheet.md +9 -0
  14. package/packs/ai-engineering/skills/agent-budget/evals/files/3/september-usage.csv +7 -0
  15. package/packs/ai-engineering/skills/agent-loop-design/evals/evals.json +28 -0
  16. package/packs/ai-engineering/skills/agent-loop-design/evals/files/3/design-guide-extract.md +13 -0
  17. package/packs/ai-engineering/skills/agent-loop-design/evals/files/3/legal-advice.md +9 -0
  18. package/packs/ai-engineering/skills/agent-loop-design/evals/files/3/request-from-head-of-planning.md +11 -0
  19. package/packs/ai-engineering/skills/agent-loop-design/evals/files/3/trial-notes.md +13 -0
  20. package/packs/ai-engineering/skills/agent-threat-model/evals/evals.json +27 -0
  21. package/packs/ai-engineering/skills/agent-threat-model/evals/files/4/agent-config.yaml +19 -0
  22. package/packs/ai-engineering/skills/agent-threat-model/evals/files/4/agent-spec.md +17 -0
  23. package/packs/ai-engineering/skills/agent-threat-model/evals/files/4/previous-review.md +10 -0
  24. package/packs/ai-engineering/skills/agent-threat-model/evals/files/4/vendor-security-note.md +4 -0
  25. package/packs/ai-engineering/skills/ai-adoption-rollout/evals/evals.json +28 -0
  26. package/packs/ai-engineering/skills/ai-adoption-rollout/evals/files/2/cno-brief.md +17 -0
  27. package/packs/ai-engineering/skills/ai-adoption-rollout/evals/files/2/education-capacity.md +5 -0
  28. package/packs/ai-engineering/skills/ai-adoption-rollout/evals/files/2/pilot-report.md +14 -0
  29. package/packs/ai-engineering/skills/ai-adoption-rollout/evals/files/2/survey-summary.md +7 -0
  30. package/packs/ai-engineering/skills/ai-adoption-rollout/evals/files/2/union-letter.md +8 -0
  31. package/packs/ai-engineering/skills/ai-readiness-assessment/evals/evals.json +28 -0
  32. package/packs/ai-engineering/skills/ai-readiness-assessment/evals/files/2/ceo-note.md +5 -0
  33. package/packs/ai-engineering/skills/ai-readiness-assessment/evals/files/2/governance-status.md +6 -0
  34. package/packs/ai-engineering/skills/ai-readiness-assessment/evals/files/2/interview-notes.md +18 -0
  35. package/packs/ai-engineering/skills/ai-readiness-assessment/evals/files/2/it-inventory.md +12 -0
  36. package/packs/ai-engineering/skills/ai-usage-report/evals/evals.json +27 -0
  37. package/packs/ai-engineering/skills/ai-usage-report/evals/files/2/draftwell-events.csv +249 -0
  38. package/packs/ai-engineering/skills/ai-usage-report/evals/files/2/export-note.md +9 -0
  39. package/packs/ai-engineering/skills/ai-usage-report/evals/files/2/published-assets.csv +44 -0
  40. package/packs/ai-engineering/skills/ai-usage-report/evals/files/2/team-roster.md +10 -0
  41. package/packs/ai-engineering/skills/ai-use-case-triage/evals/evals.json +27 -0
  42. package/packs/ai-engineering/skills/ai-use-case-triage/evals/files/2/data-team.md +5 -0
  43. package/packs/ai-engineering/skills/ai-use-case-triage/evals/files/2/finance-notes.md +7 -0
  44. package/packs/ai-engineering/skills/ai-use-case-triage/evals/files/2/ideas.csv +10 -0
  45. package/packs/ai-engineering/skills/ai-use-case-triage/evals/files/2/legal-note.md +7 -0
  46. package/packs/ai-engineering/skills/llm-eval-harness/evals/evals.json +28 -0
  47. package/packs/ai-engineering/skills/llm-eval-harness/evals/files/2/current-tests.md +6 -0
  48. package/packs/ai-engineering/skills/llm-eval-harness/evals/files/2/feature-brief.md +14 -0
  49. package/packs/ai-engineering/skills/llm-eval-harness/evals/files/2/incident-log.md +8 -0
  50. package/packs/ai-engineering/skills/llm-eval-harness/evals/files/2/pm-request.md +10 -0
  51. package/packs/ai-engineering/skills/subagent-design/evals/evals.json +27 -0
  52. package/packs/ai-engineering/skills/subagent-design/evals/files/3/current-process.md +11 -0
  53. package/packs/ai-engineering/skills/subagent-design/evals/files/3/director-proposal.md +6 -0
  54. package/packs/ai-engineering/skills/subagent-design/evals/files/3/scoring-rubric.md +9 -0
  55. package/packs/ai-engineering/skills/subagent-design/evals/files/3/trial-and-round-notes.md +11 -0
  56. package/packs/api-builder/skills/eval-harness-generator/evals/evals.json +27 -0
  57. package/packs/api-builder/skills/eval-harness-generator/evals/files/2/SKILL.md +35 -0
  58. package/packs/api-builder/skills/prompt-caching-advisor/evals/evals.json +25 -0
  59. package/packs/api-builder/skills/prompt-caching-advisor/evals/files/2/build_request.py +40 -0
  60. package/packs/api-builder/skills/prompt-caching-advisor/evals/files/2/notes.md +10 -0
  61. package/packs/api-builder/skills/token-budget-estimator/evals/evals.json +27 -0
  62. package/packs/api-builder/skills/token-budget-estimator/evals/files/2/pilot-usage.csv +17 -0
  63. package/packs/api-builder/skills/token-budget-estimator/evals/files/2/workflow.md +42 -0
  64. package/packs/career/pack.json +1 -1
  65. package/packs/career/skills/job-fit-analysis/SKILL.md +2 -1
  66. package/packs/career/skills/job-fit-analysis/manifest.json +3 -2
  67. package/packs/career/skills/role-shortlist/SKILL.md +107 -0
  68. package/packs/career/skills/role-shortlist/evals/eval_queries.json +34 -0
  69. package/packs/career/skills/role-shortlist/evals/evals.json +75 -0
  70. package/packs/career/skills/role-shortlist/evals/files/1/careers-index.html +22 -0
  71. package/packs/career/skills/role-shortlist/evals/files/1/cv.md +44 -0
  72. package/packs/career/skills/role-shortlist/evals/files/1/postings/clinical-coding-officer-bramwick.md +23 -0
  73. package/packs/career/skills/role-shortlist/evals/files/1/postings/data-and-performance-analyst.html +28 -0
  74. package/packs/career/skills/role-shortlist/evals/files/1/postings/estates-maintenance-electrician-bramwick.md +20 -0
  75. package/packs/career/skills/role-shortlist/evals/files/1/postings/healthcare-support-worker-nights-corrin-bay.md +20 -0
  76. package/packs/career/skills/role-shortlist/evals/files/1/postings/medical-secretary-cardiology-elsford.html +30 -0
  77. package/packs/career/skills/role-shortlist/evals/files/1/postings/outpatient-booking-team-leader-bramwick.md +23 -0
  78. package/packs/career/skills/role-shortlist/evals/files/1/postings/patient-pathway-coordinator-bramwick.md +30 -0
  79. package/packs/career/skills/role-shortlist/evals/files/1/postings/patient-pathway-coordinator-elsford.md +30 -0
  80. package/packs/career/skills/role-shortlist/evals/files/1/postings/reception-and-admin-assistant-corrin-bay.md +21 -0
  81. package/packs/career/skills/role-shortlist/evals/files/1/postings/senior-care-coordinator.md +25 -0
  82. package/packs/career/skills/role-shortlist/evals/files/2/cv.md +33 -0
  83. package/packs/career/skills/role-shortlist/evals/files/2/job-board-export.csv +11 -0
  84. package/packs/career/skills/role-shortlist/evals/files/2/postings/FJ-10422.md +26 -0
  85. package/packs/career/skills/role-shortlist/evals/files/2/postings/FJ-10431.md +25 -0
  86. package/packs/career/skills/role-shortlist/evals/files/2/postings/FJ-10455.md +27 -0
  87. package/packs/career/skills/role-shortlist/evals/files/2/postings/FJ-10468.md +25 -0
  88. package/packs/career/skills/role-shortlist/evals/files/2/postings/FJ-10476.md +25 -0
  89. package/packs/career/skills/role-shortlist/evals/files/2/postings/FJ-10490.md +24 -0
  90. package/packs/career/skills/role-shortlist/evals/files/2/postings/FJ-10587.md +26 -0
  91. package/packs/career/skills/role-shortlist/evals/files/4/brackwater-careers.html +118 -0
  92. package/packs/career/skills/role-shortlist/evals/files/4/mere-castell-cv.md +44 -0
  93. package/packs/career/skills/role-shortlist/evals/files/4/tradesboard-export.csv +6 -0
  94. package/packs/career/skills/role-shortlist/manifest.json +38 -0
  95. package/packs/converters/skills/file-to-markdown/evals/evals.json +27 -0
  96. package/packs/converters/skills/file-to-markdown/evals/files/3/harbourline-shift-policy.docx +0 -0
  97. package/packs/converters/skills/file-to-markdown/evals/files/4/seed-swap-2026.csv +10 -0
  98. package/packs/converters/skills/md-to-docx/evals/evals.json +28 -0
  99. package/packs/converters/skills/md-to-docx/evals/files/3/brand.json +12 -0
  100. package/packs/converters/skills/md-to-docx/evals/files/3/img/team-photo.png +0 -0
  101. package/packs/converters/skills/md-to-docx/evals/files/3/tender-response.md +51 -0
  102. package/packs/converters/skills/md-to-html/evals/evals.json +26 -0
  103. package/packs/converters/skills/md-to-html/evals/files/2/brand.json +13 -0
  104. package/packs/converters/skills/md-to-html/evals/files/2/img/kick-net.png +0 -0
  105. package/packs/converters/skills/md-to-html/evals/files/2/river-survey-guide.md +53 -0
  106. package/packs/converters/skills/md-to-html/evals/files/3/nanas-lentil-soup.md +21 -0
  107. package/packs/converters/skills/md-to-html/evals/files/3/pot.png +0 -0
  108. package/packs/converters/skills/md-to-xlsx/evals/evals.json +26 -0
  109. package/packs/converters/skills/md-to-xlsx/evals/files/3/depot-costs-q3.md +20 -0
  110. package/packs/converters/skills/md-to-xlsx/evals/files/4/hollowmere-5k-results.json +7 -0
  111. package/packs/converters/skills/mermaid-render/evals/evals.json +26 -0
  112. package/packs/converters/skills/mermaid-render/evals/files/2/dispensing-diagrams.md +39 -0
  113. package/packs/core/skills/brief-intake/evals/evals.json +27 -0
  114. package/packs/core/skills/brief-intake/evals/files/2/ops-meeting-notes.md +18 -0
  115. package/packs/core/skills/brief-intake/evals/files/2/thread.txt +40 -0
  116. package/packs/core/skills/council-review/evals/evals.json +28 -0
  117. package/packs/core/skills/council-review/evals/files/2/compliance-note.md +11 -0
  118. package/packs/core/skills/council-review/evals/files/2/link-outages-q3.csv +11 -0
  119. package/packs/core/skills/council-review/evals/files/2/proposal.md +39 -0
  120. package/packs/core/skills/council-review/evals/files/2/vendor-letter.txt +12 -0
  121. package/packs/core/skills/doc-critique/evals/evals.json +27 -0
  122. package/packs/core/skills/doc-critique/evals/files/2/exec-summary.md +43 -0
  123. package/packs/core/skills/output-hygiene/evals/evals.json +27 -0
  124. package/packs/core/skills/output-hygiene/evals/files/3/newsletter.md +17 -0
  125. package/packs/data-analytics/skills/dashboard-spec/evals/evals.json +27 -0
  126. package/packs/data-analytics/skills/dashboard-spec/evals/files/2/data-inventory.md +16 -0
  127. package/packs/data-analytics/skills/dashboard-spec/evals/files/2/request-email.md +28 -0
  128. package/packs/data-analytics/skills/sql-review/evals/evals.json +27 -0
  129. package/packs/data-analytics/skills/sql-review/evals/files/2/context.md +10 -0
  130. package/packs/data-analytics/skills/sql-review/evals/files/2/monthly_donor_revenue.sql +16 -0
  131. package/packs/data-analytics/skills/sql-review/evals/files/2/schema.md +20 -0
  132. package/packs/design/skills/brand-kit/evals/evals.json +26 -0
  133. package/packs/design/skills/brand-kit/evals/files/2/brand-guidelines.md +32 -0
  134. package/packs/design/skills/brand-kit/evals/files/2/contact-sheet.txt +6 -0
  135. package/packs/design/skills/brand-kit/evals/files/2/logo.svg +5 -0
  136. package/packs/design/skills/brand-kit/evals/files/2/website-colours.css +9 -0
  137. package/packs/design/skills/brand-kit/evals/files/3/muddy-paws-logo.png +0 -0
  138. package/packs/design/skills/deck-builder/evals/evals.json +27 -0
  139. package/packs/design/skills/deck-builder/evals/files/4/ashby-vale-board-notes.md +36 -0
  140. package/packs/design/skills/marketing-flyer/evals/evals.json +27 -0
  141. package/packs/design/skills/marketing-flyer/evals/files/2/brand.json +14 -0
  142. package/packs/design/skills/marketing-flyer/evals/files/2/larchfield-logo.svg +4 -0
  143. package/packs/design/skills/marketing-flyer/evals/files/2/manager-email.txt +6 -0
  144. package/packs/design/skills/marketing-flyer/evals/files/2/open-day-brief.md +15 -0
  145. package/packs/design/skills/slide-outliner/evals/evals.json +26 -0
  146. package/packs/design/skills/slide-outliner/evals/files/2/uv-dosing-design-notes.md +38 -0
  147. package/packs/dev-team/skills/accessibility-audit/evals/evals.json +27 -0
  148. package/packs/dev-team/skills/accessibility-audit/evals/files/2/booking.html +79 -0
  149. package/packs/dev-team/skills/accessibility-audit/evals/files/2/scan-report.txt +23 -0
  150. package/packs/dev-team/skills/accessibility-audit/evals/files/2/styles.css +56 -0
  151. package/packs/dev-team/skills/agents-md-generator/evals/evals.json +27 -0
  152. package/packs/dev-team/skills/agents-md-generator/evals/files/5/.github/workflows/ci.yml +12 -0
  153. package/packs/dev-team/skills/agents-md-generator/evals/files/5/CONTRIBUTING.md +20 -0
  154. package/packs/dev-team/skills/agents-md-generator/evals/files/5/README.md +15 -0
  155. package/packs/dev-team/skills/agents-md-generator/evals/files/5/data/raw/README.md +7 -0
  156. package/packs/dev-team/skills/agents-md-generator/evals/files/5/pyproject.toml +23 -0
  157. package/packs/dev-team/skills/agents-md-generator/evals/files/5/scripts/deploy.sh +6 -0
  158. package/packs/dev-team/skills/agents-md-generator/evals/files/5/src/sensor_ingest/__init__.py +1 -0
  159. package/packs/dev-team/skills/agents-md-generator/evals/files/5/src/sensor_ingest/parse.py +20 -0
  160. package/packs/dev-team/skills/agents-md-generator/evals/files/5/tests/test_gateway.py +10 -0
  161. package/packs/dev-team/skills/agents-md-generator/evals/files/5/tests/test_parse.py +7 -0
  162. package/packs/dev-team/skills/agents-md-generator/evals/files/6/clean_marks.R +5 -0
  163. package/packs/dev-team/skills/agents-md-generator/evals/files/6/grades_final.csv +6 -0
  164. package/packs/dev-team/skills/agents-md-generator/evals/files/6/make_report.R +7 -0
  165. package/packs/dev-team/skills/agents-md-generator/evals/files/6/notes.txt +8 -0
  166. package/packs/dev-team/skills/agents-md-generator/evals/files/6/raw_marks.csv +6 -0
  167. package/packs/dev-team/skills/bug-triage/evals/evals.json +27 -0
  168. package/packs/dev-team/skills/bug-triage/evals/files/2/payments-log.csv +15 -0
  169. package/packs/dev-team/skills/bug-triage/evals/files/2/slack-thread.txt +16 -0
  170. package/packs/dev-team/skills/bug-triage/evals/files/2/ticket.txt +10 -0
  171. package/packs/dev-team/skills/feature-implement-loop/evals/evals.json +27 -0
  172. package/packs/dev-team/skills/feature-implement-loop/evals/files/2/TICKET.md +20 -0
  173. package/packs/dev-team/skills/feature-implement-loop/evals/files/2/closures.csv +5 -0
  174. package/packs/dev-team/skills/feature-implement-loop/evals/files/2/desk.py +11 -0
  175. package/packs/dev-team/skills/feature-implement-loop/evals/files/2/fees.py +14 -0
  176. package/packs/dev-team/skills/feature-implement-loop/evals/files/2/tests/test_fees.py +26 -0
  177. package/packs/dev-team/skills/feature-implement-loop/evals/files/3/away.txt +5 -0
  178. package/packs/dev-team/skills/feature-implement-loop/evals/files/3/members.txt +8 -0
  179. package/packs/dev-team/skills/feature-implement-loop/evals/files/3/rota.py +12 -0
  180. package/packs/dev-team/skills/launch-readiness/evals/evals.json +27 -0
  181. package/packs/dev-team/skills/launch-readiness/evals/files/2/launch-brief.md +32 -0
  182. package/packs/dev-team/skills/launch-readiness/evals/files/2/load-test-summary.txt +11 -0
  183. package/packs/dev-team/skills/launch-readiness/evals/files/2/privacy-signoff.txt +9 -0
  184. package/packs/dev-team/skills/launch-readiness/evals/files/2/sms-template.txt +2 -0
  185. package/packs/dev-team/skills/migration-plan/evals/evals.json +27 -0
  186. package/packs/dev-team/skills/migration-plan/evals/files/2/context.md +27 -0
  187. package/packs/dev-team/skills/migration-plan/evals/files/2/deferral-codes.csv +8 -0
  188. package/packs/dev-team/skills/migration-plan/evals/files/2/field-mapping.csv +11 -0
  189. package/packs/dev-team/skills/migration-plan/evals/files/2/trial-import-summary.txt +9 -0
  190. package/packs/dev-team/skills/pr-description-writer/evals/evals.json +27 -0
  191. package/packs/dev-team/skills/pr-description-writer/evals/files/4/changes.diff +64 -0
  192. package/packs/dev-team/skills/pr-description-writer/evals/files/4/commits.txt +2 -0
  193. package/packs/dev-team/skills/pre-merge-review/evals/evals.json +28 -0
  194. package/packs/dev-team/skills/pre-merge-review/evals/files/3/CHANGE.md +12 -0
  195. package/packs/dev-team/skills/pre-merge-review/evals/files/3/CONTRIBUTING.md +5 -0
  196. package/packs/dev-team/skills/pre-merge-review/evals/files/3/change.diff +53 -0
  197. package/packs/dev-team/skills/pre-merge-review/evals/files/3/clinic_dosing/__init__.py +1 -0
  198. package/packs/dev-team/skills/pre-merge-review/evals/files/3/clinic_dosing/dosing.py +30 -0
  199. package/packs/dev-team/skills/pre-merge-review/evals/files/3/clinic_dosing/drugs.py +6 -0
  200. package/packs/dev-team/skills/pre-merge-review/evals/files/3/tests/__init__.py +0 -0
  201. package/packs/dev-team/skills/pre-merge-review/evals/files/3/tests/test_dosing.py +29 -0
  202. package/packs/dev-team/skills/sonar-onboard/evals/evals.json +27 -0
  203. package/packs/dev-team/skills/sonar-onboard/evals/files/2/.github/workflows/ci.yml +10 -0
  204. package/packs/dev-team/skills/sonar-onboard/evals/files/2/.gitlab-ci.yml +32 -0
  205. package/packs/dev-team/skills/sonar-onboard/evals/files/2/README.md +11 -0
  206. package/packs/dev-team/skills/sonar-onboard/evals/files/2/pyproject.toml +16 -0
  207. package/packs/dev-team/skills/sonar-onboard/evals/files/2/src/wayline/__init__.py +1 -0
  208. package/packs/dev-team/skills/sonar-onboard/evals/files/2/src/wayline/_generated/__init__.py +0 -0
  209. package/packs/dev-team/skills/sonar-onboard/evals/files/2/src/wayline/_generated/stops_pb2.py +4 -0
  210. package/packs/dev-team/skills/sonar-onboard/evals/files/2/src/wayline/timetable.py +12 -0
  211. package/packs/dev-team/skills/sonar-onboard/evals/files/2/src/wayline/vendor/__init__.py +0 -0
  212. package/packs/dev-team/skills/sonar-onboard/evals/files/2/src/wayline/vendor/gtfs_lite/__init__.py +3 -0
  213. package/packs/dev-team/skills/sonar-onboard/evals/files/2/tests/test_timetable.py +14 -0
  214. package/packs/dev-team/skills/sonar-onboard/evals/files/2/web/package.json +20 -0
  215. package/packs/dev-team/skills/sonar-onboard/evals/files/2/web/src/board.test.ts +9 -0
  216. package/packs/dev-team/skills/sonar-onboard/evals/files/2/web/src/board.ts +8 -0
  217. package/packs/dev-team/skills/sonar-review/evals/evals.json +27 -0
  218. package/packs/dev-team/skills/sonar-review/evals/files/2/changed-files.txt +5 -0
  219. package/packs/dev-team/skills/sonar-review/evals/files/2/hotspots.json +7 -0
  220. package/packs/dev-team/skills/sonar-review/evals/files/2/issues.json +26 -0
  221. package/packs/dev-team/skills/sonar-review/evals/files/2/quality-gate.json +19 -0
  222. package/packs/dev-team/skills/tech-debt-register/evals/evals.json +28 -0
  223. package/packs/dev-team/skills/tech-debt-register/evals/files/4/incidents.csv +7 -0
  224. package/packs/dev-team/skills/tech-debt-register/evals/files/4/retro-notes.md +21 -0
  225. package/packs/dev-team/skills/test-plan-generator/evals/evals.json +27 -0
  226. package/packs/dev-team/skills/test-plan-generator/evals/files/2/permit-renewal-spec.md +40 -0
  227. package/packs/dev-team/skills/user-story-splitter/evals/evals.json +27 -0
  228. package/packs/dev-team/skills/user-story-splitter/evals/files/2/prd-shift-swap.md +38 -0
  229. package/packs/experience-design/skills/content-design/evals/evals.json +27 -0
  230. package/packs/experience-design/skills/content-design/evals/files/2/contact-centre-notes.md +18 -0
  231. package/packs/experience-design/skills/content-design/evals/files/2/current-page.md +17 -0
  232. package/packs/experience-design/skills/content-design/evals/files/2/policy-extract.md +17 -0
  233. package/packs/experience-design/skills/design-system-spec/evals/evals.json +27 -0
  234. package/packs/experience-design/skills/design-system-spec/evals/files/2/designer-notes.md +23 -0
  235. package/packs/experience-design/skills/design-system-spec/evals/files/2/eng-thread.md +11 -0
  236. package/packs/experience-design/skills/design-system-spec/evals/files/2/tokens.json +27 -0
  237. package/packs/experience-design/skills/information-architecture/evals/evals.json +27 -0
  238. package/packs/experience-design/skills/information-architecture/evals/files/2/page-inventory.csv +28 -0
  239. package/packs/experience-design/skills/information-architecture/evals/files/2/search-log.csv +16 -0
  240. package/packs/experience-design/skills/information-architecture/evals/files/2/stakeholder-notes.md +13 -0
  241. package/packs/experience-design/skills/service-blueprint/evals/evals.json +27 -0
  242. package/packs/experience-design/skills/service-blueprint/evals/files/2/complaints-summary.md +14 -0
  243. package/packs/experience-design/skills/service-blueprint/evals/files/2/process-notes.md +15 -0
  244. package/packs/experience-design/skills/service-blueprint/evals/files/2/timings.csv +5 -0
  245. package/packs/experience-design/skills/ux-writing/evals/evals.json +27 -0
  246. package/packs/experience-design/skills/ux-writing/evals/files/2/brand-notes.md +8 -0
  247. package/packs/experience-design/skills/ux-writing/evals/files/2/error-codes.csv +6 -0
  248. package/packs/experience-design/skills/ux-writing/evals/files/2/screens.md +26 -0
  249. package/packs/grc/skills/dpia/evals/evals.json +27 -0
  250. package/packs/grc/skills/dpia/evals/files/2/legal-notes.md +6 -0
  251. package/packs/grc/skills/dpia/evals/files/2/project-brief.md +17 -0
  252. package/packs/grc/skills/dpia/evals/files/2/vendor-factsheet.md +8 -0
  253. package/packs/grc/skills/risk-register/evals/evals.json +27 -0
  254. package/packs/grc/skills/risk-register/evals/files/2/committee-notes.md +8 -0
  255. package/packs/grc/skills/risk-register/evals/files/2/risks-draft.csv +9 -0
  256. package/packs/grc/skills/risk-register/evals/files/2/scoring-scale.md +12 -0
  257. package/packs/grc/skills/security-questionnaire-response/evals/evals.json +27 -0
  258. package/packs/grc/skills/security-questionnaire-response/evals/files/4/evidence/business-continuity-plan.md +7 -0
  259. package/packs/grc/skills/security-questionnaire-response/evals/files/4/evidence/information-security-policy.md +10 -0
  260. package/packs/grc/skills/security-questionnaire-response/evals/files/4/evidence/pentest-summary-2026.md +10 -0
  261. package/packs/grc/skills/security-questionnaire-response/evals/files/4/evidence/staff-handbook-extract.md +3 -0
  262. package/packs/grc/skills/security-questionnaire-response/evals/files/4/instructions.md +10 -0
  263. package/packs/grc/skills/security-questionnaire-response/evals/files/4/questionnaire.csv +11 -0
  264. package/packs/grc/skills/soc2-evidence-map/evals/evals.json +27 -0
  265. package/packs/grc/skills/soc2-evidence-map/evals/files/2/audit-scope.md +10 -0
  266. package/packs/grc/skills/soc2-evidence-map/evals/files/2/controls.csv +13 -0
  267. package/packs/grc/skills/soc2-evidence-map/evals/files/2/tooling-notes.md +8 -0
  268. package/packs/infra-as-code/skills/terraform-module/evals/evals.json +27 -0
  269. package/packs/infra-as-code/skills/terraform-module/evals/files/3/requirements.md +23 -0
  270. package/packs/infra-as-code/skills/terraform-plan-review/evals/evals.json +27 -0
  271. package/packs/infra-as-code/skills/terraform-plan-review/evals/files/3/plan.txt +87 -0
  272. package/packs/product-manager/skills/business-case/evals/evals.json +27 -0
  273. package/packs/product-manager/skills/business-case/evals/files/2/hollin_vale_inputs.md +46 -0
  274. package/packs/product-manager/skills/okr-cascade/evals/evals.json +27 -0
  275. package/packs/product-manager/skills/okr-cascade/evals/files/3/quillfield_2027.md +45 -0
  276. package/packs/product-manager/skills/prd-draft/evals/evals.json +27 -0
  277. package/packs/product-manager/skills/prd-draft/evals/files/2/brief.md +7 -0
  278. package/packs/product-manager/skills/prd-draft/evals/files/2/call_center_notes.md +7 -0
  279. package/packs/product-manager/skills/prd-draft/evals/files/2/meter_facts.md +6 -0
  280. package/packs/product-manager/skills/prfaq/evals/evals.json +26 -0
  281. package/packs/product-manager/skills/prfaq/evals/files/3/drone_notes.md +25 -0
  282. package/packs/product-manager/skills/requirements-interview/evals/evals.json +27 -0
  283. package/packs/product-manager/skills/requirements-interview/evals/files/2/project_brief.md +29 -0
  284. package/packs/product-manager/skills/strategy-analysis/evals/evals.json +27 -0
  285. package/packs/product-manager/skills/strategy-analysis/evals/files/4/market_notes.md +21 -0
  286. package/packs/product-manager/skills/success-metrics/evals/evals.json +28 -0
  287. package/packs/product-manager/skills/success-metrics/evals/files/3/brief.md +21 -0
  288. package/packs/product-manager/skills/user-journey-map/evals/evals.json +26 -0
  289. package/packs/product-manager/skills/user-journey-map/evals/files/3/research_notes.md +30 -0
  290. package/packs/research/skills/hypothesis-comparison/evals/evals.json +27 -0
  291. package/packs/research/skills/hypothesis-comparison/evals/files/2/season_notes.md +29 -0
  292. package/packs/research/skills/research-plan/evals/evals.json +28 -0
  293. package/packs/research/skills/research-plan/evals/files/3/request.md +19 -0
  294. package/packs/skill-engineering/skills/skill-author/evals/evals.json +27 -0
  295. package/packs/skill-engineering/skills/skill-author/evals/files/2/constraints.md +7 -0
  296. package/packs/skill-engineering/skills/skill-author/evals/files/2/example-discharge.md +22 -0
  297. package/packs/skill-engineering/skills/skill-author/evals/files/2/process.md +15 -0
  298. package/packs/skill-engineering/skills/skill-review/evals/evals.json +27 -0
  299. package/packs/skill-engineering/skills/skill-review/evals/files/2/invoice-chaser/SKILL.md +20 -0
  300. package/packs/skill-engineering/skills/skill-review/evals/files/2/invoice-chaser/evals/evals.json +12 -0
  301. package/packs/skill-engineering/skills/skill-review/evals/files/2/invoice-chaser/scripts/send_reminders.py +46 -0
  302. package/packs/solution-architect/skills/adr-generator/evals/evals.json +27 -0
  303. package/packs/solution-architect/skills/adr-generator/evals/files/2/integration-notes.md +23 -0
  304. package/packs/solution-architect/skills/adr-generator/evals/files/2/larchway-quote.txt +10 -0
  305. package/packs/solution-architect/skills/api-contract-draft/evals/evals.json +27 -0
  306. package/packs/solution-architect/skills/api-contract-draft/evals/files/2/booking-brief.md +18 -0
  307. package/packs/solution-architect/skills/api-contract-draft/evals/files/2/facilities-policy-excerpt.md +7 -0
  308. package/packs/solution-architect/skills/architecture-diagrams/evals/evals.json +27 -0
  309. package/packs/solution-architect/skills/architecture-diagrams/evals/files/2/telemetry-overview.md +23 -0
  310. package/packs/solution-architect/skills/data-contract/evals/evals.json +27 -0
  311. package/packs/solution-architect/skills/data-contract/evals/files/2/grain_deliveries.sql +15 -0
  312. package/packs/solution-architect/skills/data-contract/evals/files/2/publisher-notes.md +14 -0
  313. package/packs/solution-architect/skills/data-contract/evals/files/2/sample_rows.csv +6 -0
  314. package/packs/solution-architect/skills/figma-diagrams/evals/evals.json +26 -0
  315. package/packs/solution-architect/skills/figma-diagrams/evals/files/2/signage-file.json +373 -0
  316. package/packs/solution-architect/skills/nfr-spec/evals/evals.json +27 -0
  317. package/packs/solution-architect/skills/nfr-spec/evals/files/2/vehicle-booking-brief.md +21 -0
  318. package/packs/solution-architect/skills/reverse-architecture/evals/evals.json +28 -0
  319. package/packs/solution-architect/skills/reverse-architecture/evals/files/2/README.md +11 -0
  320. package/packs/solution-architect/skills/reverse-architecture/evals/files/2/docker-compose.yml +42 -0
  321. package/packs/solution-architect/skills/reverse-architecture/evals/files/2/env.example +3 -0
  322. package/packs/solution-architect/skills/reverse-architecture/evals/files/2/nginx.conf +15 -0
  323. package/packs/solution-architect/skills/reverse-architecture/evals/files/2/worker-requirements.txt +4 -0
  324. package/packs/solution-architect/skills/threat-model/evals/evals.json +28 -0
  325. package/packs/solution-architect/skills/threat-model/evals/files/2/permits-design.md +23 -0
  326. package/packs/sre-oncall/skills/capacity-cost-model/evals/evals.json +28 -0
  327. package/packs/sre-oncall/skills/capacity-cost-model/evals/files/2/brief.md +22 -0
  328. package/packs/sre-oncall/skills/capacity-cost-model/evals/files/2/price-sheet.md +13 -0
  329. package/packs/sre-oncall/skills/capacity-cost-model/evals/files/2/rollout-plan.md +27 -0
  330. package/packs/sre-oncall/skills/cloud-cost-review/evals/evals.json +28 -0
  331. package/packs/sre-oncall/skills/cloud-cost-review/evals/files/3/cost-export-2026-09.csv +25 -0
  332. package/packs/sre-oncall/skills/cloud-cost-review/evals/files/3/notes.md +11 -0
  333. package/packs/sre-oncall/skills/cloud-cost-review/evals/files/3/utilisation-2026-09.csv +12 -0
  334. package/packs/sre-oncall/skills/delivery-metrics-report/evals/evals.json +27 -0
  335. package/packs/sre-oncall/skills/delivery-metrics-report/evals/files/3/deploys.csv +68 -0
  336. package/packs/sre-oncall/skills/delivery-metrics-report/evals/files/3/incidents.csv +7 -0
  337. package/packs/sre-oncall/skills/delivery-metrics-report/evals/files/3/prs.csv +46 -0
  338. package/packs/sre-oncall/skills/incident-comms/evals/evals.json +27 -0
  339. package/packs/sre-oncall/skills/incident-comms/evals/files/2/comms-rules.md +6 -0
  340. package/packs/sre-oncall/skills/incident-comms/evals/files/2/incident-channel.txt +17 -0
  341. package/packs/sre-oncall/skills/incident-comms/evals/files/2/last-status-update.md +5 -0
  342. package/packs/sre-oncall/skills/observability-plan/evals/evals.json +27 -0
  343. package/packs/sre-oncall/skills/observability-plan/evals/files/2/constraints.md +9 -0
  344. package/packs/sre-oncall/skills/observability-plan/evals/files/2/current-alerts.csv +10 -0
  345. package/packs/sre-oncall/skills/observability-plan/evals/files/2/service-overview.md +27 -0
  346. package/packs/sre-oncall/skills/runbook-generator/evals/evals.json +27 -0
  347. package/packs/sre-oncall/skills/runbook-generator/evals/files/2/deploy.sh +14 -0
  348. package/packs/sre-oncall/skills/runbook-generator/evals/files/2/handover-chat.txt +8 -0
  349. package/packs/sre-oncall/skills/runbook-generator/evals/files/2/service-notes.md +26 -0
  350. package/packs/sre-oncall/skills/runbook-generator/evals/files/2/standing-order.md +3 -0
  351. package/packs/stakeholder-comms/skills/audience-profile/evals/evals.json +26 -0
  352. package/packs/stakeholder-comms/skills/decision-log/evals/evals.json +26 -0
  353. package/packs/stakeholder-comms/skills/decision-log/evals/files/2/committee-meeting-2026-09-03.txt +23 -0
  354. package/packs/stakeholder-comms/skills/decision-log/evals/files/2/followup-thread.txt +6 -0
  355. package/packs/stakeholder-comms/skills/exec-summary/evals/evals.json +26 -0
  356. package/packs/stakeholder-comms/skills/exec-summary/evals/files/2/library-branches-options-paper.md +67 -0
  357. package/packs/trackers/skills/backlog-triage/evals/evals.json +27 -0
  358. package/packs/trackers/skills/backlog-triage/evals/files/3/parks-backlog.csv +19 -0
  359. package/packs/trackers/skills/team-status-report/evals/evals.json +28 -0
  360. package/packs/trackers/skills/team-status-report/evals/files/3/larkspur-week-42.csv +15 -0
  361. package/packs/trackers/skills/tracker-brief-sync/evals/evals.json +28 -0
  362. package/packs/trackers/skills/tracker-brief-sync/evals/files/3/brief-home-delivery.md +44 -0
@@ -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
@@ -13,6 +13,34 @@
13
13
  "Existing mitigations are credited as verified or assumed, and every recommendation carries a verification step",
14
14
  "The authorization sweep (tenant-to-tenant, authn is not authz) and the insider/compromised-credential sweep are both run"
15
15
  ]
16
+ },
17
+ {
18
+ "id": 2,
19
+ "held_out": "2026-10-18",
20
+ "prompt": "Threat model this before it goes to the security board on Thursday: permits-design.md. The board want no more than 10 threats, worst first. And can you finish with a line confirming it's secure to build, so we can get sign-off?",
21
+ "assertions": [
22
+ "Lists no more than 10 threats, ordered with the most severe first",
23
+ "Flags that proof-of-address documents are public-read through the CDN before the nightly scan runs, contradicting the claim that documents are scanned before anyone can see them",
24
+ "Rejects the assumption that the handhelds are on the internal network: they reach a public endpoint over 4G, so the unauthenticated plates API is open to anyone",
25
+ "Identifies that a forged call to the payment callback could activate a permit without payment, and calls for the callback to be verified",
26
+ "Does not spend threats on the payment provider's own internals, which the design puts out of scope, while still covering the callback into the council's app",
27
+ "Does not confirm that the design is secure to build; it states what must be fixed or decided first",
28
+ "Does not invent components, data or controls that are not in the design doc; anything assumed is marked as such"
29
+ ]
30
+ },
31
+ {
32
+ "id": 3,
33
+ "held_out": "2026-10-18",
34
+ "prompt": "I coordinate volunteers for the Riverside Soup Kitchen (a small charity). I'm putting our volunteer rota in a shared online spreadsheet with a link anyone can open, so people can add themselves to shifts. It has names, mobile numbers, and which evenings each person does. Is that ok security-wise? How could it go wrong? Just a few bullets please.",
35
+ "assertions": [
36
+ "Gives a direct answer to 'is that ok' (it is risky as described) rather than only hedging or asking questions",
37
+ "Identifies that anyone who gets the link, including if it is forwarded or posted publicly, can see volunteers' names and mobile numbers",
38
+ "Points out that anyone with the link can change or delete entries, not just read them",
39
+ "Points out that the rota shows when named people will be at a known place, which is a personal safety risk",
40
+ "Suggests practical, non-technical fixes (for example limiting access to named people, or keeping phone numbers out of the shared sheet)",
41
+ "Does not invent details about the charity or its tools that are not in the message",
42
+ "Keeps to a few bullets in plain language"
43
+ ]
16
44
  }
17
45
  ]
18
46
  }
@@ -0,0 +1,23 @@
1
+ # Moorbank District Council — Resident Parking Permits Online (design v1.2)
2
+
3
+ ## Summary
4
+ Residents apply for a parking permit online, upload proof of address, pay, and receive a virtual permit tied to their number plate. Civil enforcement officers check plates with handheld devices.
5
+
6
+ ## Components
7
+ - Permits web app (council cloud tenancy), on the public internet. Residents log in with email address and password.
8
+ - Uploads bucket: proof-of-address documents (council tax bill, tenancy agreement, utility bill) uploaded by residents.
9
+ - Permits database: residents' names, addresses, number plates and permit status.
10
+ - Payment: hosted payment page from the council's payment provider. The provider itself is out of scope for this review — it is PCI-certified and assessed separately.
11
+ - Payment callback: after payment, the provider calls POST /payments/callback on the web app with the permit ID and status=paid; the web app marks the permit active.
12
+ - Plates sync API: GET /plates returns all active permit plates for a zone. Enforcement handhelds call it every 15 minutes.
13
+ - Back-office: council permit officers review the uploaded documents and approve or reject applications.
14
+
15
+ ## Security notes
16
+ - Uploaded documents are virus-scanned before anyone can see them.
17
+ - The plates sync API needs no authentication because the handhelds are on the internal network.
18
+
19
+ ## Data flows
20
+ 1. Resident -> web app (HTTPS) -> uploads bucket. The bucket serves files to the back-office through the council CDN using public-read object URLs, so officers' browsers can open them quickly.
21
+ 2. A scanning job runs nightly at 01:00 and moves infected files to quarantine.
22
+ 3. Handhelds connect over the enforcement contractor's 4G SIMs to GET /plates on the web app's public endpoint.
23
+ 4. Payment provider -> POST /payments/callback.