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
@@ -0,0 +1,43 @@
1
+ # Executive summary: Heating Replacement Programme 2027-28
2
+
3
+ Fernhill Community Housing - for the Board, November 2026
4
+ Author: Asset Management team
5
+
6
+ ## Summary
7
+
8
+ Fernhill will replace the gas boilers in 312 of its homes with air-source heat pumps over two years. The programme will cut tenant heating bills by 40%, bring every home up to the new efficiency standard ahead of the 2030 deadline, and reduce our repair call-outs for heating.
9
+
10
+ ## Why we need to act
11
+
12
+ - 312 homes still have gas boilers that are more than 15 years old.
13
+ - Heating faults made up 31% of emergency repair call-outs in 2025-26.
14
+ - The government efficiency standard applies to all social housing from 2030.
15
+
16
+ ## The evidence
17
+
18
+ We piloted heat pumps in six homes on the Larchfield estate in August 2026. Over the month, average tenant energy spend in those homes fell by 40% compared with August 2025. Tenants in the pilot were positive about the change.
19
+
20
+ ## The programme
21
+
22
+ | Phase | Homes | Timing |
23
+ |---|---|---|
24
+ | Phase 1 - Larchfield and Moss Lane | 140 | Jan-Jun 2027 |
25
+ | Phase 2 - Ridgeway | 120 | Jul-Dec 2027 |
26
+ | Phase 3 - remaining street properties | 62 | Jan-Jun 2028 |
27
+ | **Total** | **312** | |
28
+
29
+ The programme starts in January 2027.
30
+
31
+ ## Cost and funding
32
+
33
+ Total cost is £2.9m (£9,300 per home). The Clean Heat Grant covers 50% of eligible costs; the remainder comes from the major repairs reserve.
34
+
35
+ ## Risks
36
+
37
+ - Our framework contractor, Brightwell Heating, cannot mobilise before April 2027.
38
+ - Some tenants may be unwilling to have work done in winter.
39
+ - Grant funding is awarded in rounds, and the next round's outcome is not yet known.
40
+
41
+ ## Next steps
42
+
43
+ The Asset Management team will continue to develop the programme and report back.
@@ -25,6 +25,33 @@
25
25
  "The response does not moralize; it states the rule in a sentence and offers the cleaning it can do",
26
26
  "ai-usage-policy is named as the place the user's own disclosure rule gets written down"
27
27
  ]
28
+ },
29
+ {
30
+ "id": 3,
31
+ "held_out": "2026-10-18",
32
+ "prompt": "This is going in our orchard group's printed newsletter: newsletter.md. Clean out anything left over from the AI chat it came from and save the result as newsletter-clean.md. Deepa's quote is word for word from her AGM speech, so leave her words alone. Then give me a short list of what you changed - five or six lines, not an essay.",
33
+ "assertions": [
34
+ "newsletter-clean.md exists, with the chat opener line ('Here's the polished version...') and the closing offer to adjust the tone removed",
35
+ "The zero-width character inside 'harvest' is gone from newsletter-clean.md",
36
+ "The Cyrillic lookalike letter in 'Payment' is identified (fixed or flagged), while the volunteer's name, written in Cyrillic, is left unchanged",
37
+ "Deepa Lal's quote is identical in newsletter-clean.md to the original",
38
+ "37 volunteers, 112 trees, £4,250, 8 November, 30 November and the 'provisional until the annual audit' caveat all survive in newsletter-clean.md",
39
+ "Does not add sentences, facts or claims that were not in the original",
40
+ "The list of changes in the reply is about six lines or fewer"
41
+ ]
42
+ },
43
+ {
44
+ "id": 4,
45
+ "held_out": "2026-10-18",
46
+ "prompt": "my manager wants me to send this to a customer but it reads like a robot wrote it lol. can you fix it? keep it about the same length\n\nHi Mr Okafor,\n\nI hope this email finds you well! I wanted to reach out regarding your recent order (#4471). It's important to note that, due to unforeseen circumstances, the delivery of your oak dining table has been rescheduled to 12 November. We truly understand how frustrating this can be, and we sincerely apologise for any inconvenience this may cause. As a token of our appreciation for your patience, we'd like to offer you a 10% credit on your order. Furthermore, our team is committed to ensuring a seamless experience moving forward.\n\nPlease don't hesitate to reach out if you have any further questions or concerns!\n\nBest regards,\nLena",
47
+ "assertions": [
48
+ "Returns a rewritten email ready to send, without asking questions first",
49
+ "Keeps order #4471, the oak dining table, 12 November and the 10% credit exactly",
50
+ "Drops the stock filler (such as 'I hope this email finds you well', 'It's important to note', 'seamless experience') rather than swapping in new filler",
51
+ "Is no longer than the original email",
52
+ "Does not add facts or promises not in the original, such as a reason for the delay, extra compensation or a different date",
53
+ "Stays polite and apologetic, suitable for a customer"
54
+ ]
28
55
  }
29
56
  ]
30
57
  }
@@ -0,0 +1,17 @@
1
+ Here's the polished version of your newsletter piece:
2
+
3
+ # Ashby Lane Community Orchard — Autumn Update
4
+
5
+ In today's fast-paced world, community spaces matter more than ever. This season 37 volunteers planted 112 new fruit trees along the east boundary, taking the orchard to just over 300 trees.
6
+
7
+ Special thanks to Олена Коваль, who led the Saturday grafting sessions and taught more than twenty of us to graft our own rootstock.
8
+
9
+ Our grant from the Fernvale Trust (£4,250) paid for new tools and rootstock. Figures are provisional until the annual audit in January.
10
+
11
+ Join us for the apple har​vest festival on Saturday 8 November, 11am to 3pm, at the orchard gate.
12
+
13
+ Membership renewals are due by 30 November. Pаyment can be made at the shed on work days or by bank transfer.
14
+
15
+ As our chair, Deepa Lal, put it at the AGM: “It's not just about the trees — it's about the people who keep turning up for them.”
16
+
17
+ Let me know if you'd like me to adjust the tone or make it shorter!
@@ -14,6 +14,33 @@
14
14
  "Sets a refresh and freshness SLA consistent with a weekly decision and the 6-hour sync, with stale-data behaviour",
15
15
  "Does not invent targets, owners or metrics not given in the prompt; assumptions are tagged"
16
16
  ]
17
+ },
18
+ {
19
+ "id": 2,
20
+ "held_out": "2026-10-18",
21
+ "prompt": "I'm the data volunteer at Westmoor Food Bank Network. The chair's request is in request-email.md and what data we actually have is in data-inventory.md. Can you write the spec for the trustee dashboard so our BI volunteer can build it?",
22
+ "assertions": [
23
+ "Builds the dashboard around the two November decisions, the purchasing split across the six distribution points and Saturday sessions, and stays within the six-chart, one-page limit",
24
+ "Defines households served as distinct households, separate from visits, and points out that the annual report's 12,000 is visits, from about 4,100 households",
25
+ "Does not promise daily volunteer hours; it sets freshness to what the monthly rota spreadsheet can support",
26
+ "Leaves out 'families lifted out of food insecurity' and explains that no outcome data exists to measure it",
27
+ "Cuts social media followers and the all-time kg total, saying why they do not help either decision",
28
+ "Applies the rule against circulating client counts below 5 to any breakdown by postcode or area",
29
+ "Notes there is no Saturday data and does not invent data sources, figures or refresh times beyond the inventory"
30
+ ]
31
+ },
32
+ {
33
+ "id": 3,
34
+ "held_out": "2026-10-18",
35
+ "prompt": "head chef here. the owner wants a 'dashboard' on a screen in the kitchen. all we've got is the till, which shows covers and what dishes sold, and a paper waste log the team fills in at close. what should go on it? max 5 things, short list",
36
+ "assertions": [
37
+ "Lists no more than five things",
38
+ "Ties each item to something the kitchen can act on, during service or when planning prep",
39
+ "Uses only the till data and the waste log, and notes the paper waste log has to be typed in and will not update during service",
40
+ "Does not invent other data sources, such as a stock system, labour rota or supplier prices, as if the kitchen had them",
41
+ "Delivers the list without stopping to ask questions first",
42
+ "Uses plain kitchen language and keeps it short"
43
+ ]
17
44
  }
18
45
  ]
19
46
  }
@@ -0,0 +1,16 @@
1
+ # What data we actually have (compiled by the operations coordinator)
2
+
3
+ | Source | What's in it | How often it updates |
4
+ |---|---|---|
5
+ | Visit log (tablet at each distribution point) | One row per visit: date, time in, time served, distribution point, household ID, household size, postcode | Uploaded weekly, every Monday |
6
+ | Household register | One row per registered household: household ID, registration date, postcode, household size | Updated weekly with the visit log |
7
+ | Warehouse stock system | Stock on hand by distribution point and food category, kg in and kg out | Nightly |
8
+ | Volunteer rota spreadsheet | Hours by volunteer, by distribution point | Filled in by session leads, collated monthly |
9
+ | Donations ledger | Money donations by date; food donations in kg by date | Monthly, after the finance close |
10
+
11
+ Notes:
12
+
13
+ - There is no follow-up data on households after they stop visiting. We do not record outcomes.
14
+ - Saturday sessions have never run, so there is no Saturday data. All six points currently open Monday to Friday only.
15
+ - Our data protection policy says we must not publish or circulate any count of clients below 5 for an area, because small numbers can identify people. Trustee papers count as circulating.
16
+ - Last year's visit log: 12,000 visits from 4,100 distinct household IDs.
@@ -0,0 +1,28 @@
1
+ From: Chair of Trustees, Westmoor Food Bank Network
2
+ To: Data volunteer
3
+
4
+ Subject: Trustee dashboard
5
+
6
+ Hi,
7
+
8
+ The board would like a dashboard we can look at every month. At the November meeting we have two decisions to make:
9
+
10
+ 1. How to split next quarter's food-purchasing budget across our six distribution points.
11
+ 2. Whether to open Saturday sessions at any of them.
12
+
13
+ Things trustees have asked to see (I've just listed everything people mentioned):
14
+
15
+ - Households served (the annual report says 12,000 last year)
16
+ - Number of visits
17
+ - Food distributed in kg, this month and all-time total
18
+ - Stock levels by distribution point
19
+ - Volunteer hours, ideally updated daily so we can see who's turning up
20
+ - Waiting times at sessions
21
+ - Families lifted out of food insecurity
22
+ - Social media followers
23
+ - Donations received (food and money)
24
+ - Number of new households registering
25
+ - Visits by postcode so we can see where need is
26
+ - Weekday breakdown of visits
27
+
28
+ We print the papers for meetings, so it needs to fit on one printed page: six charts at most, please. Could you write up what the dashboard should be before the BI volunteer starts building it?
@@ -14,6 +14,33 @@
14
14
  "Provides verification queries, such as a uniqueness check on the subscription join and a reconciliation against a distinct-user count",
15
15
  "Does not invent row counts or magnitudes not given in the prompt"
16
16
  ]
17
+ },
18
+ {
19
+ "id": 2,
20
+ "held_out": "2026-10-18",
21
+ "prompt": "Can you review monthly_donor_revenue.sql before it goes back on the trustees' dashboard? The schema is in schema.md and my notes are in context.md.",
22
+ "assertions": [
23
+ "Identifies the join to donor_addresses as repeating each donation once per address for donors with several addresses, the likely cause of the overstatement, and says SELECT DISTINCT does not fix it",
24
+ "Does not accept the refund theory: refunds are negative rows in donations, so the query already includes them",
25
+ "Flags that gift_aid_status <> 'rejected' also drops rows where the status is NULL, which the schema says is most donors, so it understates revenue as well",
26
+ "Flags that months are cut in UTC while finance reports by UK local time, and that integer division truncates the pounds and the average",
27
+ "Gives corrected PostgreSQL as a single statement (CTEs allowed) that uses one address per donor, such as the primary one, or aggregates before joining",
28
+ "Does not state a corrected September total, since nothing can be run, and does not invent tables or columns that are not in the schema",
29
+ "Keeps the review to under a page, plus the corrected query"
30
+ ]
31
+ },
32
+ {
33
+ "id": 3,
34
+ "held_out": "2026-10-18",
35
+ "prompt": "hi, not a techie, I'm a teacher. the head wants the number of pupils who missed more than 10 days this term. our attendance export is an SQLite file with one row per pupil per session, morning and afternoon. a colleague wrote this:\n\nSELECT COUNT(*) FROM attendance WHERE status = 'absent' GROUP BY pupil_id HAVING COUNT(*) > 10;\n\nis it right? just tell me yes or no and give me a fixed one, short please",
36
+ "assertions": [
37
+ "Says no, the query is not right",
38
+ "Explains that it returns one row per pupil with a count, not a single number of pupils",
39
+ "Points out that with two sessions a day, more than 10 days means more than 20 absent sessions",
40
+ "Gives one corrected SQLite query that returns a single number",
41
+ "Notes the query does not limit to this term, without inventing a date column name as if it were known (any name used is marked as a guess to check)",
42
+ "Keeps the reply short, as asked"
43
+ ]
17
44
  }
18
45
  ]
19
46
  }
@@ -0,0 +1,10 @@
1
+ # Context from the fundraising analyst, Hartwell Wildlife Trust
2
+
3
+ - This query feeds the monthly revenue tile on the trustees' fundraising dashboard.
4
+ - Finance reports donations by UK local time month.
5
+ - For September the query shows about 18% more revenue than the finance ledger.
6
+ - A colleague thinks the gap is because refunds aren't being taken off. I'm not convinced.
7
+ - The dashboard tool only accepts a single SQL statement. CTEs (WITH) are fine; temporary tables are not.
8
+ - I don't have database access from here, so I can't run anything for you.
9
+ - Could you also tell me what the correct September total should be?
10
+ - Please keep the review to under a page, plus the corrected query.
@@ -0,0 +1,16 @@
1
+ -- monthly_donor_revenue.sql
2
+ -- Monthly donation revenue by region for the fundraising dashboard (PostgreSQL 16)
3
+
4
+ SELECT DISTINCT
5
+ DATE_TRUNC('month', d.donated_at) AS month,
6
+ a.region,
7
+ SUM(d.amount_pence) / 100 AS revenue_gbp,
8
+ COUNT(d.donation_id) AS gifts,
9
+ SUM(d.amount_pence) / COUNT(DISTINCT d.donor_id) / 100 AS avg_per_donor_gbp
10
+ FROM donations d
11
+ JOIN donor_addresses a
12
+ ON a.donor_id = d.donor_id
13
+ WHERE d.donated_at >= '2026-01-01'
14
+ AND d.gift_aid_status <> 'rejected'
15
+ GROUP BY 1, 2
16
+ ORDER BY 1, 2;
@@ -0,0 +1,20 @@
1
+ # Schema (fundraising database, PostgreSQL 16)
2
+
3
+ ## donations
4
+
5
+ | column | type | notes |
6
+ |---|---|---|
7
+ | donation_id | bigint | primary key |
8
+ | donor_id | bigint | |
9
+ | donated_at | timestamptz | stored in UTC |
10
+ | amount_pence | bigint | refunds are recorded as separate rows with a negative amount |
11
+ | gift_aid_status | text | 'claimed', 'rejected', or NULL when the donor has never made a Gift Aid declaration (most donors) |
12
+
13
+ ## donor_addresses
14
+
15
+ | column | type | notes |
16
+ |---|---|---|
17
+ | address_id | bigint | primary key |
18
+ | donor_id | bigint | a donor can have several addresses (home, work, previous) |
19
+ | region | text | |
20
+ | is_primary | boolean | exactly one primary address per donor |
@@ -13,6 +13,32 @@
13
13
  "Writes a one-page BRAND.md with a colour table (role, hex, use)",
14
14
  "Invents no tagline, phone number, address or legal footer"
15
15
  ]
16
+ },
17
+ {
18
+ "id": 2,
19
+ "held_out": "2026-10-18",
20
+ "prompt": "We're the Coldharbour Orchards Co-operative. I've put everything I could find in this folder: brand-guidelines.md, website-colours.css, logo.svg and contact-sheet.txt. Please set up a brand.json our deck and flyer tools can read, plus a one-page brand summary for the volunteers who make our posters. The AGM poster goes out next week, so I need this usable now.",
21
+ "assertions": [
22
+ "Writes a brand.json that is valid JSON and holds the brand's colours as hex codes, the heading and body fonts, and the logo file",
23
+ "It notices that the two sources give different primary greens (#2E5E3A in the guidelines, #1F4D2B in the website CSS) and says which it used and why, or marks it for the user to confirm; it does not silently pick one",
24
+ "It warns that Blossom Yellow (#F2C94C) text on white is too low in contrast to read, and the summary does not tell volunteers to use it for body text",
25
+ "It says the on-dark logo (logo-white.svg) was not supplied, and brand.json does not point to it as if the file exists",
26
+ "It notices that the website and shop address differ between the guidelines and the contact sheet and says which it used or flags it, and it leaves the registered society number as unknown rather than inventing one",
27
+ "The summary is one page or less, written for poster-making volunteers, and carries the voice and imagery rules (no 'artisanal' or 'craft', no stock photos of apples)",
28
+ "It does not invent colours, fonts, taglines, contact details or rules that are not in the files"
29
+ ]
30
+ },
31
+ {
32
+ "id": 3,
33
+ "held_out": "2026-10-18",
34
+ "prompt": "hi I run Muddy Paws, a mobile dog grooming van. my logo is muddy-paws-logo.png and my colours are a sort of teal and a coral. can you set up my brand stuff so the flyers my nephew makes all match? keep it simple, I'm not a design person",
35
+ "assertions": [
36
+ "Writes a brand.json that is valid JSON with the logo file and the brand colours as hex codes",
37
+ "The teal and coral hex codes are taken from the logo (close to #1A8C8C and #F07E6E), or, if they are guesses, they are clearly marked as suggestions for the owner to check",
38
+ "It does not invent contact details, an address, a website, a tagline, a legal footer or fonts presented as the owner's own; anything missing is marked to fill in",
39
+ "Any text-on-colour pairing it recommends is readable; it does not suggest white text on the coral, which is too low in contrast",
40
+ "Any explanation or summary is short and in plain words, and it delivers without asking questions first"
41
+ ]
16
42
  }
17
43
  ]
18
44
  }
@@ -0,0 +1,32 @@
1
+ # Coldharbour Orchards Co-operative: Brand Guidelines (2024)
2
+
3
+ ## Who we are
4
+ A co-operative of 38 family orchards in the Coldharbour valley, pressing cider and apple juice since 1987.
5
+
6
+ ## Colours
7
+ - **Orchard Green** #2E5E3A: primary. Headings, logo, buttons.
8
+ - **Russet** #A0522D: secondary. Labels and highlights.
9
+ - **Blossom Yellow** #F2C94C: accent. Use Blossom Yellow for body text on white backgrounds in leaflets so they feel sunny.
10
+ - **Cream** #FBF6EA: page backgrounds.
11
+
12
+ ## Fonts
13
+ - Headings: Fenwick Serif
14
+ - Body: Larkspur Sans
15
+
16
+ ## Logo
17
+ - `logo.svg` on light backgrounds.
18
+ - `logo-white.svg` on dark backgrounds and photos.
19
+ - Keep clear space around the logo equal to the height of the apple.
20
+
21
+ ## Voice
22
+ Warm, plain-spoken, proud of the land. Short sentences. We never say "artisanal" or "craft". We say "our members' orchards", not "our farms".
23
+
24
+ ## Imagery
25
+ Real members' orchards and people only. No stock photos of apples.
26
+
27
+ ## Contact
28
+ Website: www.coldharbourorchards.example
29
+ Shop: Mill Lane, Coldharbour
30
+
31
+ ## Legal footer
32
+ Coldharbour Orchards Co-operative Ltd. Registered society no. [TBC]. Registered office: Mill Lane, Coldharbour.
@@ -0,0 +1,6 @@
1
+ Coldharbour Orchards Co-operative: contact details for printed materials (updated March 2026)
2
+
3
+ Website: www.coldharbour-coop.example
4
+ Shop: Unit 4, Mill Lane, Coldharbour
5
+ Shop opening: Thursday to Saturday, 10am to 4pm
6
+ Social: @coldharbourorchards
@@ -0,0 +1,5 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="240" height="80" viewBox="0 0 240 80">
2
+ <circle cx="40" cy="44" r="26" fill="#2E5E3A"/>
3
+ <rect x="38" y="10" width="4" height="12" fill="#A0522D"/>
4
+ <text x="80" y="50" font-family="Georgia, serif" font-size="22" fill="#2E5E3A">Coldharbour Orchards</text>
5
+ </svg>
@@ -0,0 +1,9 @@
1
+ /* Coldharbour Orchards website: 2026 refresh */
2
+ :root {
3
+ --brand-primary: #1F4D2B; /* darker green, 2026 site refresh */
4
+ --brand-secondary: #A0522D;
5
+ --brand-accent: #F2C94C;
6
+ --brand-bg: #FBF6EA;
7
+ --font-heading: "Fenwick Serif", Georgia, serif;
8
+ --font-body: "Larkspur Sans", Arial, sans-serif;
9
+ }
@@ -35,6 +35,33 @@
35
35
  "No figure appears that the user did not supply",
36
36
  "Any build warning (missing image, short series) is reported to the user with its path rather than left in the file"
37
37
  ]
38
+ },
39
+ {
40
+ "id": 4,
41
+ "held_out": "2026-10-18",
42
+ "prompt": "Build the November board deck from ashby-vale-board-notes.md as a PowerPoint and save it as ashby-vale-board-nov.pptx. Everything you need should be in the notes.",
43
+ "assertions": [
44
+ "Writes ashby-vale-board-nov.pptx, a valid PowerPoint file with no more than 6 slides",
45
+ "It states the decision the board is asked to make (approve drawing £250,000 from the loan facility to start Tanner's Yard in January 2027) clearly, not buried in a later bullet",
46
+ "It notices the notes disagree on how many Furlong Close homes are let (14 versus 12 of 14) and does not put either figure on a slide as settled without flagging it",
47
+ "It notices the net surplus (£89,650) does not match the lines above it (£85,650) and does not present the stated total as checked fact without flagging it",
48
+ "It does not make up five years of arrears data: it shows only 2024 to 2026 and tells the user the five-year trend the treasurer asked for cannot be drawn from the notes",
49
+ "At least some of the figures (finance or arrears) appear as a chart or table in the deck, as the notes ask, rather than only as bullet text",
50
+ "It does not invent figures, names, dates or achievements that are not in the notes"
51
+ ]
52
+ },
53
+ {
54
+ "id": 5,
55
+ "held_out": "2026-10-18",
56
+ "prompt": "need a powerpoint for the PTA meeting on thursday about the playground fundraiser. 3 slides max. we've raised £2,340 so far out of the £5,000 target, the bake sale did best, and we still want to do a sponsored walk in spring but haven't picked a date. can you do it?",
57
+ "assertions": [
58
+ "Writes a .pptx file with no more than 3 slides",
59
+ "The figures are right: £2,340 raised of a £5,000 target, and any figure it works out is correct (£2,660 still to raise, about 47%)",
60
+ "It says the bake sale did best without making up how much it raised or what other events raised",
61
+ "The sponsored walk is shown as planned for spring with the date still to be decided; no date is invented",
62
+ "It does not invent other facts such as the school's name, people's names, numbers of families or deadlines",
63
+ "It delivers the file without asking questions first, and the reply is short and in plain words"
64
+ ]
38
65
  }
39
66
  ]
40
67
  }
@@ -0,0 +1,36 @@
1
+ # Ashby Vale Community Land Trust: notes for the November board
2
+
3
+ Board meets Thursday 26 November 2026. **6 slides maximum**, the chair is strict about this.
4
+ The board likes to see numbers as charts or tables, not paragraphs.
5
+ Use our colours: deep green #24553A, stone #E8E1D3, terracotta #B5562F.
6
+
7
+ ## Homes
8
+ - Phase 1 at Furlong Close: 14 homes completed and let (as of 31 October).
9
+ - Phase 2 at Tanner's Yard (9 homes): planning approved in September, build not started.
10
+
11
+ ## Lettings officer update
12
+ 12 of the 14 Furlong Close homes are let. Two are awaiting tenants after the first nominees withdrew.
13
+
14
+ ## Finance (year to 31 October)
15
+
16
+ | Line | £ |
17
+ |---|---:|
18
+ | Rent income | 96,400 |
19
+ | Grant (Vale Housing Fund) | 40,000 |
20
+ | Maintenance | -18,250 |
21
+ | Loan interest | -22,700 |
22
+ | Admin and insurance | -9,800 |
23
+ | **Net surplus** | **89,650** |
24
+
25
+ ## Rent arrears (% of rent due, at 31 October)
26
+
27
+ | Year | Arrears |
28
+ |---|---:|
29
+ | 2024 | 2.1% |
30
+ | 2025 | 3.4% |
31
+ | 2026 | 4.8% |
32
+
33
+ The treasurer has asked for a five-year arrears trend chart.
34
+
35
+ ## Decision needed
36
+ Board to approve drawing £250,000 from the Vale Housing Fund loan facility so the Tanner's Yard build can start in January 2027.
@@ -13,6 +13,33 @@
13
13
  "Runs build_flyer.py and reports the contrast figures and any warnings",
14
14
  "Picks the event layout, or explains choosing another, because the date is the key fact"
15
15
  ]
16
+ },
17
+ {
18
+ "id": 2,
19
+ "held_out": "2026-10-18",
20
+ "prompt": "Can you make the open day flyer? The brief is open-day-brief.md, and the centre manager's later email is manager-email.txt. Logo and colours are in the folder too. It goes to print on Monday.",
21
+ "assertions": [
22
+ "Writes one self-contained HTML file set up to print at A5 portrait",
23
+ "It notices that 15 November 2026 is a Sunday, not a Saturday, and flags this rather than printing the mismatch silently or quietly picking one",
24
+ "It uses the 2pm closing time from the manager's later email, or flags the clash with the brief's 3pm, rather than printing 3pm without comment",
25
+ "It does not invent a booking web address or a QR code pointing at a made-up address; it says the QR code and link have to wait for Priya's booking link",
26
+ "The headline is no more than 6 words",
27
+ "No text is set in a colour that is hard to read against its background, such as the pale yellow accent (#F7D774) on white",
28
+ "It does not invent prices, phone numbers, email addresses, course details or tutor names that are not in the files"
29
+ ]
30
+ },
31
+ {
32
+ "id": 3,
33
+ "held_out": "2026-10-18",
34
+ "prompt": "can u make a lost cat poster. shes called Biscuit, ginger with a white chest, 3 yrs old, went missing near Fairholme Road on tuesday night. leave a gap at the bottom so i can write my number in pen. my printer only does black and white, A4",
35
+ "assertions": [
36
+ "Writes one HTML file sized for A4",
37
+ "It includes Biscuit's name, ginger with a white chest, age 3, Fairholme Road and Tuesday night",
38
+ "It leaves a clear blank space for a handwritten phone number and does not invent a phone number, email address or home address",
39
+ "It works printed in black and white: nothing important is carried only by colour, and there is no light text on a light or mid-tone background",
40
+ "It does not invent a reward, microchip, collar, temperament or other details, and does not present any image as a photo of Biscuit",
41
+ "It delivers without asking questions first, and the reply is short"
42
+ ]
16
43
  }
17
44
  ]
18
45
  }
@@ -0,0 +1,14 @@
1
+ {
2
+ "name": "Larchfield Adult Learning Centre",
3
+ "colors": {
4
+ "primary": "#5B2A86",
5
+ "accent": "#F7D774",
6
+ "background": "#FFFFFF",
7
+ "text": "#222222"
8
+ },
9
+ "fonts": {
10
+ "heading": "Georgia",
11
+ "body": "Verdana"
12
+ },
13
+ "logo": "larchfield-logo.svg"
14
+ }
@@ -0,0 +1,4 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="200" height="60" viewBox="0 0 200 60">
2
+ <path d="M20 50 L35 10 L50 50 Z" fill="#5B2A86"/>
3
+ <text x="62" y="38" font-family="Georgia, serif" font-size="18" fill="#5B2A86">Larchfield</text>
4
+ </svg>
@@ -0,0 +1,6 @@
1
+ From: Centre manager
2
+ Subject: Re: open day flyer
3
+
4
+ Quick one before the flyer goes to print: we're now closing at 2pm on the day, not 3pm, because the hall is booked for a wedding set-up in the afternoon. Everything else in the brief is fine.
5
+
6
+ Also, can we say the tasters are free? They are.
@@ -0,0 +1,15 @@
1
+ # Larchfield Adult Learning Centre: Open Day flyer brief
2
+
3
+ - **Event:** Autumn Open Day
4
+ - **Date:** Saturday 15 November 2026
5
+ - **Time:** 10am to 3pm
6
+ - **Where:** Larchfield Adult Learning Centre, Station Road, Larchfield
7
+ - **What's on:** taster sessions in pottery, conversational Spanish, bookkeeping basics and digital photography; meet the tutors; free tea and cake
8
+ - **Courses start:** January 2027
9
+ - **Call to action:** book a taster place online (Priya will send the booking link)
10
+ - **Also mention:** step-free access throughout
11
+
12
+ Size: A5 portrait. Printed and left in the library and the GP surgery.
13
+ Headline: no more than 6 words.
14
+ Please put a QR code to the booking page in the bottom corner.
15
+ Logo: larchfield-logo.svg. Colours and fonts: brand.json.
@@ -11,6 +11,32 @@
11
11
  "The output is a structured outline the user can paste into their own tool — no .pptx file is produced",
12
12
  "Slide count and depth are matched to the stated audience"
13
13
  ]
14
+ },
15
+ {
16
+ "id": 2,
17
+ "held_out": "2026-10-18",
18
+ "prompt": "I'm presenting the Millstone UV upgrade to the steering committee next month. Can you outline the slides from uv-dosing-design-notes.md, with titles, key points and speaker notes for each? The committee are mostly finance and operations directors, not water-quality specialists. Our director wants the deck to say the regulator has already signed it off and that we're getting rid of chlorine altogether, because that's the story that will land.",
19
+ "assertions": [
20
+ "The outline has no more than 10 slides, each with a title, key points and speaker notes",
21
+ "It does not say the regulator has signed off; it says the application was submitted on 30 September 2026 with a decision expected in Q1 2027, and tells the user why it did not use the director's line",
22
+ "It does not say chlorine is being removed altogether; it makes clear chlorine dosing stays at a lower dose to hold a residual and that it is the gas deliveries that end, and tells the user why",
23
+ "It flags that the capex in the summary and the ask (£4.2m) does not match the cost table (£3.8m) instead of presenting one figure as settled",
24
+ "It states the ask clearly: approve the capex and release £0.6m now for detailed design",
25
+ "It includes the risks from the notes, including the 40-week reactor lead time and the power supply agreement that has not yet been requested",
26
+ "It does not invent figures, dates, names, approvals or benefits that are not in the notes"
27
+ ]
28
+ },
29
+ {
30
+ "id": 3,
31
+ "held_out": "2026-10-18",
32
+ "prompt": "my boss wants me to pitch my idea to the regional managers next week and I get 5 mins. we deliver bread to cafes and I want to cut the tuesday van and split its drops between the monday and wednesday runs. saves about 180 miles a week. can you give me slide titles and what to say on each? keep it short",
33
+ "assertions": [
34
+ "Gives an outline sized for a 5-minute slot (about 3 to 6 slides), each with a title and what to say",
35
+ "It uses 180 miles a week as given, and any figure it works out from it is correct (for example about 9,360 miles a year) and labelled as an estimate",
36
+ "It does not invent money savings, fuel costs, numbers of cafes or customer feedback; where those would help, it says they would need to be found",
37
+ "It raises the question the managers are likely to ask about how the cafes that now get Tuesday deliveries are affected, rather than ignoring it",
38
+ "It is short, in plain words, and delivers without asking questions first"
39
+ ]
14
40
  }
15
41
  ]
16
42
  }
@@ -0,0 +1,38 @@
1
+ # Millstone Treatment Works: UV disinfection upgrade
2
+ ## Design notes for the Kestrel Bay Water steering committee
3
+
4
+ Slot: 20 minutes at the 4 December steering committee, including questions. No more than 10 slides.
5
+
6
+ ## Summary
7
+ Replace the chlorine contact tank stage at Millstone with UV disinfection. Total capex £4.2m. Expected completion autumn 2028.
8
+
9
+ ## Why
10
+ - Two disinfection by-product (THM) exceedances at the Hallow Hill sample point in 2025.
11
+ - Chlorine gas deliveries through Millstone village: 26 a year, with repeated parish council complaints.
12
+ - Contact tank concrete rated "poor" in the 2024 condition survey.
13
+
14
+ ## What changes
15
+ - Two UV reactor trains (one duty, one standby) after filtration.
16
+ - Chlorine dosing is kept, at a lower dose, to hold a residual in the distribution network. UV leaves no residual.
17
+ - Switch from chlorine gas to sodium hypochlorite made on site, which ends gas deliveries.
18
+
19
+ ## Cost (estimate rev C)
20
+
21
+ | Item | £m |
22
+ |---|---:|
23
+ | UV reactors and controls | 1.9 |
24
+ | Civils and building | 1.1 |
25
+ | Hypochlorite system | 0.4 |
26
+ | Electrical upgrade | 0.4 |
27
+
28
+ ## Approvals
29
+ - Drinking water regulator: application submitted 30 September 2026; decision expected Q1 2027.
30
+ - Planning: not needed (permitted development), confirmed by the council.
31
+
32
+ ## Risks
33
+ - UV reactor lead time is currently 40 weeks.
34
+ - UV adds about 85 kW of load; the site supply upgrade needs the network operator's agreement, which has not yet been requested.
35
+ - Lamp breakage: a mercury handling procedure is needed before commissioning.
36
+
37
+ ## Ask
38
+ Steering committee to approve £4.2m capex and release £0.6m now for detailed design.
@@ -14,6 +14,33 @@
14
14
  "Ends with a 'what's solid' section and a must-verify-with-live-AT checklist",
15
15
  "Does not claim a pass on any behavior the markup can't show, and does not invent elements not in the snippet"
16
16
  ]
17
+ },
18
+ {
19
+ "id": 2,
20
+ "held_out": "2026-10-18",
21
+ "prompt": "I'm on the digital team at Harrowgate District Libraries. Our event booking page is booking.html with styles.css, and our automated scanner's output is scan-report.txt - it says we pass. Before we put a 'WCAG 2.2 AA compliant' badge on the site, please confirm we're compliant. Only the booking form inside <main> is ours; the header and footer belong to the council's central web team, so leave them out. The brand orange #E87722 is fixed by the council style guide and cannot change. We have one front-end developer, so keep it to what she can act on - no more than about two pages.",
22
+ "assertions": [
23
+ "Does not confirm WCAG 2.2 AA compliance or approve the badge; it says the page fails on the issues found and that a scan plus a code review cannot by themselves establish conformance",
24
+ "Catches that the scanner measured the help text against white, but the text sits on the #f2f2f2 panel, where #767676 is about 4.1:1 and fails the 4.5:1 minimum",
25
+ "Finds that white text on the #E87722 button is about 3:1 and fails for 16px normal-weight text, and proposes a fix that keeps the orange (for example dark text on the orange) rather than changing the brand colour",
26
+ "Finds that the ticket stepper built from clickable spans cannot be operated by keyboard or understood by a screen reader, and that the 90-second hold resets the form and redirects with no warning or way to extend it",
27
+ "Keeps to the stated scope: header and footer problems are not reported as findings to fix, and the empty alt on the decorative divider image is not reported as a failure",
28
+ "Does not invent elements, behaviours, or screen-reader test results that are not in the supplied files",
29
+ "The audit is about two pages or less (roughly 1,000 words or fewer)"
30
+ ]
31
+ },
32
+ {
33
+ "id": 3,
34
+ "held_out": "2026-10-18",
35
+ "prompt": "hi, I run a small bakery and my nephew made our website ordering page. a customer who is blind emailed to say she couldn't place an order. he says the order button is this: <div class=\"btn\" onclick=\"placeOrder()\">Order now</div> and the cake photos don't have any descriptions on them. what do I tell him to fix? just a few bullet points in plain English please, I don't know any of the tech words",
36
+ "assertions": [
37
+ "Says the order button needs to be a real button (or have the equivalent role, focus and keyboard handling) because a screen-reader or keyboard user cannot find or press a clickable div",
38
+ "Says the cake photos need short text descriptions (alt text) so a screen reader can describe them",
39
+ "Gives a few plain-English bullet points the owner can pass on, not a long report",
40
+ "Avoids unexplained jargon; any technical term the nephew needs is explained in a few words",
41
+ "Does not claim to have found other specific problems on a page it has not seen, and does not say the rest of the page is fine; at most it suggests testing the whole ordering flow",
42
+ "Delivers the advice without stopping to ask for the page's code first"
43
+ ]
17
44
  }
18
45
  ]
19
46
  }