@bendyline/gilde 0.1.54 → 0.1.56

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 (211) hide show
  1. package/authoring/chat-models/glm-5.3-flash-320b-q2.json +129 -0
  2. package/authoring/chat-models/qwen3.5-27b-q4.json +147 -0
  3. package/authoring/gstack/evals/cso.json +21 -18
  4. package/authoring/gstack/evals/investigate.json +25 -22
  5. package/authoring/gstack/evals/plan-ceo-review.json +19 -16
  6. package/authoring/gstack/overlays/retro.json +2 -2
  7. package/authoring/gstack/wave.json +2 -2
  8. package/data/chat-models/gl/glm-5.3-flash-320b-q2/manifest.json +137 -0
  9. package/data/chat-models/gl/glm-5.3-flash-320b-q2/versions/1.0.0/manifest.json +23 -0
  10. package/data/chat-models/index.json +1 -1
  11. package/data/chat-models/qw/qwen3.5-27b-q4/manifest.json +217 -0
  12. package/data/chat-models/qw/qwen3.5-27b-q4/versions/1.0.0/manifest.json +90 -0
  13. package/data/craftbook-templates/a1/a11y-audit/versions/1.1.3/test.json +16 -8
  14. package/data/craftbook-templates/ac/accessibility-retrofit/versions/2.0.2/craftbook.json +618 -0
  15. package/data/craftbook-templates/ac/accessibility-retrofit/versions/2.0.2/test.json +228 -0
  16. package/data/craftbook-templates/al/album-curate/versions/1.0.3/test.json +6 -3
  17. package/data/craftbook-templates/al/alert-rules/versions/1.0.3/test.json +8 -8
  18. package/data/craftbook-templates/an/anniversary-cut/versions/1.0.5/test.json +10 -5
  19. package/data/craftbook-templates/an/annual-document-review/versions/1.0.3/test.json +16 -8
  20. package/data/craftbook-templates/an/anomaly-scan/versions/1.0.3/test.json +12 -6
  21. package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.2/craftbook.json +602 -0
  22. package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.2/test.json +290 -0
  23. package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.3/test.json +18 -9
  24. package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.5/test.json +10 -5
  25. package/data/craftbook-templates/au/auth-flow/versions/1.0.3/test.json +12 -6
  26. package/data/craftbook-templates/au/auth-flow/versions/1.0.4/craftbook.json +282 -0
  27. package/data/craftbook-templates/au/auth-flow/versions/1.0.4/test.json +143 -0
  28. package/data/craftbook-templates/au/automation-recipe/versions/1.0.3/test.json +12 -6
  29. package/data/craftbook-templates/ba/backup-routine/versions/1.0.4/craftbook.json +282 -0
  30. package/data/craftbook-templates/ba/backup-routine/versions/1.0.4/test.json +108 -0
  31. package/data/craftbook-templates/bl/blog-post/versions/1.0.3/test.json +8 -8
  32. package/data/craftbook-templates/br/branding-website/versions/1.1.3/craftbook.json +335 -0
  33. package/data/craftbook-templates/br/branding-website/versions/1.1.3/test.json +164 -0
  34. package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.3/test.json +8 -8
  35. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.7/craftbook.json +620 -0
  36. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.7/test.json +376 -0
  37. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.8/craftbook.json +621 -0
  38. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.8/test.json +376 -0
  39. package/data/craftbook-templates/bu/bug-fix-tdd/versions/2.0.2/craftbook.json +730 -0
  40. package/data/craftbook-templates/bu/bug-fix-tdd/versions/2.0.2/test.json +221 -0
  41. package/data/craftbook-templates/bu/build-loop/versions/1.1.1/test.json +8 -8
  42. package/data/craftbook-templates/ca/case-study/versions/1.0.3/test.json +8 -8
  43. package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.4/test.json +10 -5
  44. package/data/craftbook-templates/ch/character-turnaround/versions/1.0.3/test.json +25 -11
  45. package/data/craftbook-templates/ci/ci-pipeline/versions/2.0.2/craftbook.json +587 -0
  46. package/data/craftbook-templates/ci/ci-pipeline/versions/2.0.2/test.json +225 -0
  47. package/data/craftbook-templates/ci/citation-audit/versions/1.0.3/test.json +28 -14
  48. package/data/craftbook-templates/cl/cli-tool/versions/1.1.3/test.json +8 -8
  49. package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.3/test.json +16 -8
  50. package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.3/test.json +18 -9
  51. package/data/craftbook-templates/co/codemod-sweep/versions/1.0.2/craftbook.json +605 -0
  52. package/data/craftbook-templates/co/codemod-sweep/versions/1.0.2/test.json +252 -0
  53. package/data/craftbook-templates/co/cohort-analysis/versions/1.0.3/test.json +18 -9
  54. package/data/craftbook-templates/co/competitive-analysis/versions/1.0.3/test.json +23 -15
  55. package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.3/test.json +28 -14
  56. package/data/craftbook-templates/co/content-deck/versions/1.2.3/craftbook.json +4 -4
  57. package/data/craftbook-templates/co/content-deck/versions/1.2.3/test.json +3 -0
  58. package/data/craftbook-templates/co/content-deck/versions/1.2.4/craftbook.json +341 -0
  59. package/data/craftbook-templates/co/content-deck/versions/1.2.4/test.json +169 -0
  60. package/data/craftbook-templates/co/copy-review/versions/1.0.3/test.json +14 -7
  61. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.3/craftbook.json +4 -4
  62. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.3/test.json +3 -0
  63. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.4/craftbook.json +345 -0
  64. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.4/test.json +187 -0
  65. package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.3/test.json +26 -13
  66. package/data/craftbook-templates/co/cover-letter/versions/1.0.3/test.json +8 -8
  67. package/data/craftbook-templates/cs/csv-transformer/versions/1.2.4/test.json +7 -7
  68. package/data/craftbook-templates/da/dashboard-spec/versions/1.0.3/test.json +7 -7
  69. package/data/craftbook-templates/da/data-export-migrate/versions/1.0.4/craftbook.json +285 -0
  70. package/data/craftbook-templates/da/data-export-migrate/versions/1.0.4/test.json +104 -0
  71. package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.5/craftbook.json +284 -0
  72. package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.5/test.json +162 -0
  73. package/data/craftbook-templates/da/data-quality-audit/versions/1.0.3/test.json +38 -19
  74. package/data/craftbook-templates/da/data-to-report/versions/1.0.3/test.json +12 -6
  75. package/data/craftbook-templates/db/db-index-tuning/versions/1.0.4/craftbook.json +286 -0
  76. package/data/craftbook-templates/db/db-index-tuning/versions/1.0.4/test.json +104 -0
  77. package/data/craftbook-templates/de/dependency-audit/versions/1.1.3/test.json +14 -7
  78. package/data/craftbook-templates/de/dependency-upgrade/versions/1.0.2/craftbook.json +621 -0
  79. package/data/craftbook-templates/de/dependency-upgrade/versions/1.0.2/test.json +235 -0
  80. package/data/craftbook-templates/de/design-review/versions/1.0.3/test.json +16 -8
  81. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.7/craftbook.json +616 -0
  82. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.7/test.json +201 -0
  83. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.8/craftbook.json +616 -0
  84. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.8/test.json +201 -0
  85. package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.4/craftbook.json +285 -0
  86. package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.4/test.json +104 -0
  87. package/data/craftbook-templates/do/doc-rewrite/versions/1.0.3/test.json +119 -55
  88. package/data/craftbook-templates/do/dockerize-app/versions/1.0.4/craftbook.json +285 -0
  89. package/data/craftbook-templates/do/dockerize-app/versions/1.0.4/test.json +92 -0
  90. package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.3/test.json +18 -9
  91. package/data/craftbook-templates/dr/draft-social-post/versions/1.0.2/craftbook.json +324 -0
  92. package/data/craftbook-templates/dr/draft-social-post/versions/1.0.2/test.json +161 -0
  93. package/data/craftbook-templates/ed/edit-notes/versions/1.0.3/test.json +11 -4
  94. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.7/craftbook.json +566 -0
  95. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.7/test.json +191 -0
  96. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.8/craftbook.json +566 -0
  97. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.8/test.json +191 -0
  98. package/data/craftbook-templates/ep/episode-plan/versions/1.0.3/test.json +10 -5
  99. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.7/craftbook.json +595 -0
  100. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.7/test.json +136 -0
  101. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.8/craftbook.json +595 -0
  102. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.8/test.json +139 -0
  103. package/data/craftbook-templates/ex/expense-categorize/versions/1.0.4/craftbook.json +277 -0
  104. package/data/craftbook-templates/ex/expense-categorize/versions/1.0.4/test.json +104 -0
  105. package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.1.2/craftbook.json +327 -0
  106. package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.1.2/test.json +162 -0
  107. package/data/craftbook-templates/fl/flaky-test-fix/versions/1.0.2/craftbook.json +718 -0
  108. package/data/craftbook-templates/fl/flaky-test-fix/versions/1.0.2/test.json +239 -0
  109. package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.4/craftbook.json +285 -0
  110. package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.4/test.json +162 -0
  111. package/data/craftbook-templates/fo/form-wizard/versions/1.0.3/test.json +8 -8
  112. package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.3/test.json +11 -4
  113. package/data/craftbook-templates/ho/hotfix-flow/versions/2.0.2/craftbook.json +610 -0
  114. package/data/craftbook-templates/ho/hotfix-flow/versions/2.0.2/test.json +220 -0
  115. package/data/craftbook-templates/ht/html-arcade-game/versions/1.2.3/craftbook.json +343 -0
  116. package/data/craftbook-templates/ht/html-arcade-game/versions/1.2.3/test.json +176 -0
  117. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.7/craftbook.json +566 -0
  118. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.7/test.json +141 -0
  119. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.8/craftbook.json +566 -0
  120. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.8/test.json +141 -0
  121. package/data/craftbook-templates/im/image-set-index/versions/1.2.3/craftbook.json +298 -0
  122. package/data/craftbook-templates/im/image-set-index/versions/1.2.3/test.json +180 -0
  123. package/data/craftbook-templates/in/insurance-inventory/versions/1.0.3/test.json +11 -4
  124. package/data/craftbook-templates/in/interactive-quiz/versions/1.0.3/test.json +48 -23
  125. package/data/craftbook-templates/in/invitation-design/versions/1.0.3/test.json +1 -1
  126. package/data/craftbook-templates/index.json +1 -1
  127. package/data/craftbook-templates/it/item-intake/versions/1.0.3/test.json +11 -4
  128. package/data/craftbook-templates/le/lead-enrichment/versions/1.0.4/craftbook.json +277 -0
  129. package/data/craftbook-templates/le/lead-enrichment/versions/1.0.4/test.json +104 -0
  130. package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.3/test.json +16 -8
  131. package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.3/test.json +3 -0
  132. package/data/craftbook-templates/mo/morning-report/versions/1.0.3/test.json +21 -9
  133. package/data/craftbook-templates/of/office-hours/versions/1.1.1/test.json +8 -8
  134. package/data/craftbook-templates/pe/perf-optimization/versions/2.0.2/craftbook.json +697 -0
  135. package/data/craftbook-templates/pe/perf-optimization/versions/2.0.2/test.json +235 -0
  136. package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.3/test.json +19 -8
  137. package/data/craftbook-templates/pl/plan/versions/1.0.2/craftbook.json +222 -0
  138. package/data/craftbook-templates/pl/plan/versions/1.0.2/test.json +91 -0
  139. package/data/craftbook-templates/pl/playtest-report/versions/1.0.3/test.json +17 -7
  140. package/data/craftbook-templates/pr/practice-exam/versions/1.0.3/test.json +7 -2
  141. package/data/craftbook-templates/pr/practice-session/versions/1.0.3/test.json +11 -4
  142. package/data/craftbook-templates/pu/pull-request-review/versions/1.9.2/craftbook.json +435 -0
  143. package/data/craftbook-templates/pu/pull-request-review/versions/1.9.2/test.json +141 -0
  144. package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.3/test.json +16 -8
  145. package/data/craftbook-templates/re/receipt-intake/versions/1.0.3/test.json +11 -4
  146. package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.4/craftbook.json +277 -0
  147. package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.4/test.json +104 -0
  148. package/data/craftbook-templates/re/recipe-capture/versions/1.0.3/test.json +13 -5
  149. package/data/craftbook-templates/re/record-a-relative/versions/1.0.3/test.json +3 -0
  150. package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.4/craftbook.json +285 -0
  151. package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.4/test.json +104 -0
  152. package/data/craftbook-templates/re/refactor-module/versions/2.0.2/craftbook.json +695 -0
  153. package/data/craftbook-templates/re/refactor-module/versions/2.0.2/test.json +241 -0
  154. package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.4/craftbook.json +361 -0
  155. package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.4/test.json +138 -0
  156. package/data/craftbook-templates/re/release-notes/versions/1.0.4/test.json +8 -8
  157. package/data/craftbook-templates/re/release-notes/versions/1.0.5/craftbook.json +339 -0
  158. package/data/craftbook-templates/re/release-notes/versions/1.0.5/test.json +111 -0
  159. package/data/craftbook-templates/re/reliability-review/versions/1.0.3/test.json +16 -8
  160. package/data/craftbook-templates/re/research-report/versions/1.0.3/test.json +16 -8
  161. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.7/craftbook.json +595 -0
  162. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.7/test.json +157 -0
  163. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.8/craftbook.json +596 -0
  164. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.8/test.json +157 -0
  165. package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.4/test.json +13 -5
  166. package/data/craftbook-templates/sc/schema-migration/versions/2.0.2/craftbook.json +624 -0
  167. package/data/craftbook-templates/sc/schema-migration/versions/2.0.2/test.json +225 -0
  168. package/data/craftbook-templates/sc/script-automation/versions/1.0.4/craftbook.json +284 -0
  169. package/data/craftbook-templates/sc/script-automation/versions/1.0.4/test.json +162 -0
  170. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.7/craftbook.json +597 -0
  171. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.7/test.json +154 -0
  172. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.8/craftbook.json +597 -0
  173. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.8/test.json +157 -0
  174. package/data/craftbook-templates/sh/ship/versions/1.1.2/craftbook.json +346 -0
  175. package/data/craftbook-templates/sh/ship/versions/1.1.2/test.json +228 -0
  176. package/data/craftbook-templates/so/social-digest/versions/1.0.3/craftbook.json +239 -0
  177. package/data/craftbook-templates/so/social-digest/versions/1.0.3/test.json +168 -0
  178. package/data/craftbook-templates/so/source-quality-audit/versions/1.0.3/test.json +25 -11
  179. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.7/craftbook.json +599 -0
  180. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.7/test.json +162 -0
  181. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.8/craftbook.json +599 -0
  182. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.8/test.json +162 -0
  183. package/data/craftbook-templates/te/technical-documentation/versions/2.0.7/craftbook.json +577 -0
  184. package/data/craftbook-templates/te/technical-documentation/versions/2.0.7/test.json +174 -0
  185. package/data/craftbook-templates/te/technical-documentation/versions/2.0.8/craftbook.json +577 -0
  186. package/data/craftbook-templates/te/technical-documentation/versions/2.0.8/test.json +174 -0
  187. package/data/craftbook-templates/te/test-coverage-review/versions/1.2.1/test.json +16 -8
  188. package/data/craftbook-templates/te/test-suite-backfill/versions/2.0.2/craftbook.json +592 -0
  189. package/data/craftbook-templates/te/test-suite-backfill/versions/2.0.2/test.json +195 -0
  190. package/data/craftbook-templates/th/thank-you-batch/versions/1.0.3/test.json +6 -3
  191. package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.3/test.json +11 -4
  192. package/data/craftbook-templates/ti/tileset-batch/versions/1.0.3/test.json +9 -3
  193. package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.3/test.json +10 -5
  194. package/data/craftbook-templates/tr/transcribe-index/versions/1.0.3/test.json +6 -3
  195. package/data/craftbook-templates/tr/translate-content/versions/1.1.3/craftbook.json +140 -0
  196. package/data/craftbook-templates/tr/translate-content/versions/1.1.3/test.json +141 -0
  197. package/data/craftbook-templates/ty/type-safety-pass/versions/2.0.2/craftbook.json +594 -0
  198. package/data/craftbook-templates/ty/type-safety-pass/versions/2.0.2/test.json +221 -0
  199. package/data/craftbook-templates/ux/ux-update/versions/1.0.2/craftbook.json +606 -0
  200. package/data/craftbook-templates/ux/ux-update/versions/1.0.2/test.json +206 -0
  201. package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.3/test.json +11 -4
  202. package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.3/test.json +21 -9
  203. package/data/craftbook-templates/wh/whitepaper/versions/1.0.3/test.json +16 -8
  204. package/data/craftbook-templates/ye/year-in-review/versions/1.0.3/test.json +8 -4
  205. package/data/project-types/index.json +1 -1
  206. package/data/project-types/ju/just-chat/manifest.json +1 -1
  207. package/data/project-types/ju/just-chat/versions/1.0.1/about.md +5 -0
  208. package/data/project-types/ju/just-chat/versions/1.0.1/manifest.json +19 -0
  209. package/package.json +1 -1
  210. package/schemas/chat-model-identity.schema.json +27 -0
  211. package/schemas/chat-model-version.schema.json +22 -0
@@ -0,0 +1,174 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "Technical Documentation — rate limiter Diataxis set",
4
+ "objective": "Exercise the Technical Documentation craftbook on a small real code surface and require a coherent, cross-linked Diataxis documentation set grounded in source behavior.",
5
+ "tags": [
6
+ "workflow",
7
+ "documentation",
8
+ "diataxis",
9
+ "typescript"
10
+ ],
11
+ "prompt": "Use the Technical Documentation craftbook to document the dependency-free rate limiter in this workspace. Inspect the source and test rather than guessing. Produce the craftbook inventory and plan plus a coherent set under `docs/`: `documentation-index.md`, `tutorial-rate-limit.md`, `how-to-configure-rate-limit.md`, `reference-rate-limit.md`, and `explanation-fixed-window.md`. The index must clearly organize tutorials, how-to, reference, and explanation, link to every page, cite the implementation/test where claims come from, and state how the documented examples were verified.",
12
+ "setup": {
13
+ "projectName": "Rate limiter documentation",
14
+ "about": "A hermetic TypeScript library documentation exercise. There are no external APIs or package dependencies.",
15
+ "missionObjectives": "Create accurate, navigable documentation that helps a first-time adopter use `createFixedWindowLimiter` and understand its tradeoffs without reading all source code.",
16
+ "files": [
17
+ {
18
+ "path": "README.md",
19
+ "content": "# tiny-limit\n\nA dependency-free fixed-window request limiter. Public behavior is defined by `src/rate-limit.ts` and its test. Documentation is intentionally incomplete.\n"
20
+ },
21
+ {
22
+ "path": "src/rate-limit.ts",
23
+ "content": "export interface RateLimitOptions {\n windowMs: number;\n max: number;\n}\n\nexport interface RateLimitDecision {\n allowed: boolean;\n remaining: number;\n resetAt: number;\n}\n\nexport function createFixedWindowLimiter(options: RateLimitOptions) {\n if (!Number.isInteger(options.max) || options.max < 1) throw new RangeError('max must be a positive integer');\n if (!Number.isFinite(options.windowMs) || options.windowMs <= 0) throw new RangeError('windowMs must be positive');\n const buckets = new Map<string, { count: number; resetAt: number }>();\n\n return function check(key: string, now = Date.now()): RateLimitDecision {\n const current = buckets.get(key);\n const bucket = !current || now >= current.resetAt\n ? { count: 0, resetAt: now + options.windowMs }\n : current;\n bucket.count += 1;\n buckets.set(key, bucket);\n return {\n allowed: bucket.count <= options.max,\n remaining: Math.max(0, options.max - bucket.count),\n resetAt: bucket.resetAt,\n };\n };\n}\n"
24
+ },
25
+ {
26
+ "path": "test/rate-limit.test.ts",
27
+ "content": "import { strict as assert } from 'node:assert';\nimport { createFixedWindowLimiter } from '../src/rate-limit.js';\n\nconst check = createFixedWindowLimiter({ windowMs: 1000, max: 2 });\nassert.deepEqual(check('ada', 100), { allowed: true, remaining: 1, resetAt: 1100 });\nassert.deepEqual(check('ada', 200), { allowed: true, remaining: 0, resetAt: 1100 });\nassert.deepEqual(check('ada', 300), { allowed: false, remaining: 0, resetAt: 1100 });\nassert.deepEqual(check('ada', 1100), { allowed: true, remaining: 1, resetAt: 2100 });\n"
28
+ }
29
+ ]
30
+ },
31
+ "mocks": [],
32
+ "success": {
33
+ "summary": "The craftbook produces a complete, grounded five-page Diataxis set with a navigable index and terminal task evidence.",
34
+ "deliverables": [
35
+ {
36
+ "path": "docs/documentation-index.md",
37
+ "kind": "markdown-doc",
38
+ "minBytes": 850,
39
+ "checks": [
40
+ {
41
+ "kind": "contains",
42
+ "file": "docs/documentation-index.md",
43
+ "pattern": "^#{1,3}\\s+Tutorials?\\b[\\s\\S]*^#{1,3}\\s+How-to guides?\\b[\\s\\S]*^#{1,3}\\s+Reference\\b[\\s\\S]*^#{1,3}\\s+Explanation\\b[\\s\\S]*^#{1,3}\\s+Verification\\b",
44
+ "flags": "im",
45
+ "label": "Diataxis map and verification"
46
+ },
47
+ {
48
+ "kind": "contains",
49
+ "file": "docs/documentation-index.md",
50
+ "pattern": "tutorial-rate-limit\\.md[\\s\\S]*how-to-configure-rate-limit\\.md[\\s\\S]*reference-rate-limit\\.md[\\s\\S]*explanation-fixed-window\\.md",
51
+ "flags": "i",
52
+ "label": "all requested pages linked"
53
+ },
54
+ {
55
+ "kind": "citationsResolve",
56
+ "file": "docs/documentation-index.md",
57
+ "minCitations": 4
58
+ }
59
+ ]
60
+ },
61
+ {
62
+ "path": "docs/tutorial-rate-limit.md",
63
+ "kind": "markdown-doc",
64
+ "minBytes": 650,
65
+ "checks": [
66
+ {
67
+ "kind": "contains",
68
+ "file": "docs/tutorial-rate-limit.md",
69
+ "pattern": "createFixedWindowLimiter[\\s\\S]*windowMs[\\s\\S]*max[\\s\\S]*(allowed|remaining|resetAt)",
70
+ "label": "runnable API walkthrough"
71
+ }
72
+ ]
73
+ },
74
+ {
75
+ "path": "docs/how-to-configure-rate-limit.md",
76
+ "kind": "markdown-doc",
77
+ "minBytes": 550,
78
+ "checks": [
79
+ {
80
+ "kind": "contains",
81
+ "file": "docs/how-to-configure-rate-limit.md",
82
+ "pattern": "windowMs[\\s\\S]*max[\\s\\S]*(positive|greater than|at least)[\\s\\S]*(integer|finite)",
83
+ "flags": "i",
84
+ "label": "configuration constraints"
85
+ }
86
+ ]
87
+ },
88
+ {
89
+ "path": "docs/reference-rate-limit.md",
90
+ "kind": "markdown-doc",
91
+ "minBytes": 650,
92
+ "checks": [
93
+ {
94
+ "kind": "contains",
95
+ "file": "docs/reference-rate-limit.md",
96
+ "pattern": "RateLimitOptions[\\s\\S]*RateLimitDecision[\\s\\S]*allowed[\\s\\S]*remaining[\\s\\S]*resetAt",
97
+ "label": "public type reference"
98
+ }
99
+ ]
100
+ },
101
+ {
102
+ "path": "docs/explanation-fixed-window.md",
103
+ "kind": "markdown-doc",
104
+ "minBytes": 600,
105
+ "checks": [
106
+ {
107
+ "kind": "contains",
108
+ "file": "docs/explanation-fixed-window.md",
109
+ "pattern": "fixed[- ]window[\\s\\S]*(boundary|burst|trade[- ]?off)[\\s\\S]*(memory|Map|process)",
110
+ "flags": "i",
111
+ "label": "mechanism and tradeoffs"
112
+ }
113
+ ]
114
+ }
115
+ ],
116
+ "checks": [
117
+ {
118
+ "kind": "fileCount",
119
+ "ext": [
120
+ ".md"
121
+ ],
122
+ "min": 5,
123
+ "dir": "docs"
124
+ }
125
+ ],
126
+ "taskNotes": {
127
+ "minBytes": 180,
128
+ "checks": [
129
+ {
130
+ "kind": "contains",
131
+ "file": "task-notes.md",
132
+ "pattern": "\\bDONE\\b[\\s\\S]*docs/documentation-index\\.md[\\s\\S]*(5|five)\\s+(pages|documents)",
133
+ "flags": "i",
134
+ "label": "terminal note records the documentation set"
135
+ }
136
+ ],
137
+ "requireCraftbookTask": true
138
+ },
139
+ "taskGraph": {
140
+ "requireCraftbookTask": true,
141
+ "requireTerminalStep": true
142
+ },
143
+ "unchangedFixtures": [
144
+ "README.md",
145
+ "src/rate-limit.ts",
146
+ "test/rate-limit.test.ts"
147
+ ]
148
+ },
149
+ "rubric": {
150
+ "artifact": {
151
+ "path": "docs/documentation-index.md",
152
+ "kind": "markdown"
153
+ },
154
+ "axes": [
155
+ {
156
+ "name": "Source fidelity",
157
+ "description": "Claims, examples, inputs, outputs, and edge cases agree with the supplied implementation and test."
158
+ },
159
+ {
160
+ "name": "Diataxis separation",
161
+ "description": "Tutorial, how-to, reference, and explanation pages each serve their distinct reader need without becoming duplicate summaries."
162
+ },
163
+ {
164
+ "name": "Navigation and verification",
165
+ "description": "The set is cross-linked, easy to scan, and transparent about how examples and factual claims were checked."
166
+ }
167
+ ]
168
+ },
169
+ "qualityFocus": [
170
+ "Every public option and result field matches the source",
171
+ "Each Diataxis page has a distinct job",
172
+ "The index links the complete set and explains verification"
173
+ ]
174
+ }
@@ -45,46 +45,54 @@
45
45
  "kind": "contains",
46
46
  "file": "tasks/eval/coverage-review.md",
47
47
  "pattern": "src/price\\.ts|test/price\\.test\\.ts",
48
- "flags": "i"
48
+ "flags": "i",
49
+ "artifact": true
49
50
  },
50
51
  {
51
52
  "kind": "contains",
52
53
  "file": "tasks/eval/coverage-review.md",
53
54
  "pattern": "100%[\\s\\S]{0,120}25%|line coverage[\\s\\S]{0,120}branch",
54
55
  "flags": "i",
55
- "label": "coverage is not behavior"
56
+ "label": "coverage is not behavior",
57
+ "artifact": true
56
58
  },
57
59
  {
58
60
  "kind": "contains",
59
61
  "file": "tasks/eval/coverage-review.md",
60
62
  "pattern": "toBeDefined|weak assertion|assert.*exact",
61
- "flags": "i"
63
+ "flags": "i",
64
+ "artifact": true
62
65
  },
63
66
  {
64
67
  "kind": "contains",
65
68
  "file": "tasks/eval/coverage-review.md",
66
69
  "pattern": "negative|invalid cents",
67
- "flags": "i"
70
+ "flags": "i",
71
+ "artifact": true
68
72
  },
69
73
  {
70
74
  "kind": "contains",
71
75
  "file": "tasks/eval/coverage-review.md",
72
76
  "pattern": "HALF|SAVE10",
73
- "flags": "i"
77
+ "flags": "i",
78
+ "artifact": true
74
79
  },
75
80
  {
76
81
  "kind": "contains",
77
82
  "file": "tasks/eval/coverage-review.md",
78
83
  "pattern": "unknown coupon|toThrow",
79
- "flags": "i"
84
+ "flags": "i",
85
+ "artifact": true
80
86
  },
81
87
  {
82
88
  "kind": "contains",
83
89
  "file": "tasks/eval/coverage-review.md",
84
90
  "pattern": "Quick wins|priority|high",
85
- "flags": "i"
91
+ "flags": "i",
92
+ "artifact": true
86
93
  }
87
- ]
94
+ ],
95
+ "artifact": true
88
96
  }
89
97
  ]
90
98
  },