@bendyline/gilde 0.1.26 → 0.1.28
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.
- package/authoring/chat-models/README.md +5 -0
- package/authoring/chat-models/deepseek-v4-flash-284b-mxfp4.json +4 -0
- package/authoring/chat-models/deepseek-v4-flash-284b-q2.json +4 -0
- package/authoring/chat-models/deepseek-v4-flash-284b-q2q4.json +4 -0
- package/authoring/chat-models/glm-5.2-754b-q2.json +4 -0
- package/authoring/gstack/evals/investigate.json +1 -0
- package/authoring/gstack/evals/plan-ceo-review.json +1 -0
- package/authoring/gstack/wave.json +2 -2
- package/data/chat-models/de/deepseek-v4-flash-284b-mxfp4/manifest.json +4 -0
- package/data/chat-models/de/deepseek-v4-flash-284b-q2/manifest.json +4 -0
- package/data/chat-models/de/deepseek-v4-flash-284b-q2q4/manifest.json +4 -0
- package/data/chat-models/gl/glm-5.2-754b-q2/manifest.json +4 -0
- package/data/chat-models/index.json +1 -1
- package/data/craftbook-templates/a1/a11y-audit/versions/1.1.1/craftbook.json +141 -0
- package/data/craftbook-templates/a1/a11y-audit/versions/1.1.1/test.json +115 -0
- package/data/craftbook-templates/ab/ab-test-readout/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/ab/ab-test-readout/versions/1.0.1/test.json +186 -0
- package/data/craftbook-templates/ac/accessibility-retrofit/versions/1.0.1/craftbook.json +110 -0
- package/data/craftbook-templates/ac/accessibility-retrofit/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/ad/ad-variations/versions/1.0.1/craftbook.json +105 -0
- package/data/craftbook-templates/ad/ad-variations/versions/1.0.1/test.json +108 -0
- package/data/craftbook-templates/al/album-curate/versions/1.0.1/craftbook.json +115 -0
- package/data/craftbook-templates/al/album-curate/versions/1.0.1/test.json +147 -0
- package/data/craftbook-templates/al/alert-rules/versions/1.0.1/craftbook.json +101 -0
- package/data/craftbook-templates/al/alert-rules/versions/1.0.1/test.json +145 -0
- package/data/craftbook-templates/al/alt-text-pass/versions/1.0.1/craftbook.json +142 -0
- package/data/craftbook-templates/al/alt-text-pass/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/an/anniversary-cut/versions/1.0.3/craftbook.json +226 -0
- package/data/craftbook-templates/an/anniversary-cut/versions/1.0.3/test.json +157 -0
- package/data/craftbook-templates/an/annotated-bibliography/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/an/annotated-bibliography/versions/1.0.1/test.json +102 -0
- package/data/craftbook-templates/an/annual-document-review/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/an/annual-document-review/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/an/anomaly-scan/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/an/anomaly-scan/versions/1.0.1/test.json +120 -0
- package/data/craftbook-templates/ap/api-contract-review/versions/1.1.1/craftbook.json +141 -0
- package/data/craftbook-templates/ap/api-contract-review/versions/1.1.1/test.json +115 -0
- package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.1/craftbook.json +158 -0
- package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.1/test.json +136 -0
- package/data/craftbook-templates/au/audio-ad-spot/versions/1.0.1/craftbook.json +129 -0
- package/data/craftbook-templates/au/audio-ad-spot/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/au/audio-highlight-reel/versions/1.0.1/craftbook.json +123 -0
- package/data/craftbook-templates/au/audio-highlight-reel/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.3/craftbook.json +210 -0
- package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.3/test.json +221 -0
- package/data/craftbook-templates/au/auth-flow/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/au/auth-flow/versions/1.0.1/test.json +140 -0
- package/data/craftbook-templates/au/automation-recipe/versions/1.0.1/craftbook.json +164 -0
- package/data/craftbook-templates/au/automation-recipe/versions/1.0.1/test.json +296 -0
- package/data/craftbook-templates/ba/backup-routine/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/ba/backup-routine/versions/1.0.1/test.json +108 -0
- package/data/craftbook-templates/bl/blog-post/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/bl/blog-post/versions/1.0.1/test.json +118 -0
- package/data/craftbook-templates/bo/board-deck/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/bo/board-deck/versions/1.0.1/test.json +100 -0
- package/data/craftbook-templates/bo/board-game-web/versions/1.0.1/craftbook.json +150 -0
- package/data/craftbook-templates/bo/board-game-web/versions/1.0.1/test.json +99 -0
- package/data/craftbook-templates/bo/booking-automation/versions/1.0.1/craftbook.json +158 -0
- package/data/craftbook-templates/bo/booking-automation/versions/1.0.1/test.json +162 -0
- package/data/craftbook-templates/br/branding-website/versions/1.1.1/craftbook.json +211 -0
- package/data/craftbook-templates/br/branding-website/versions/1.1.1/test.json +164 -0
- package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.3/craftbook.json +417 -0
- package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.3/test.json +376 -0
- package/data/craftbook-templates/bu/bug-fix-tdd/versions/1.0.2/craftbook.json +164 -0
- package/data/craftbook-templates/bu/bug-fix-tdd/versions/1.0.2/test.json +92 -0
- package/data/craftbook-templates/ca/calendar-brief/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/ca/calendar-brief/versions/1.0.1/test.json +102 -0
- package/data/craftbook-templates/ca/canvas-generative-art/versions/1.0.1/craftbook.json +110 -0
- package/data/craftbook-templates/ca/canvas-generative-art/versions/1.0.1/test.json +106 -0
- package/data/craftbook-templates/ca/case-study/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/ca/case-study/versions/1.0.1/test.json +112 -0
- package/data/craftbook-templates/ca/case-study-writeup/versions/1.0.1/craftbook.json +151 -0
- package/data/craftbook-templates/ca/case-study-writeup/versions/1.0.1/test.json +105 -0
- package/data/craftbook-templates/ch/changelog-cut/versions/1.0.1/craftbook.json +113 -0
- package/data/craftbook-templates/ch/changelog-cut/versions/1.0.1/test.json +106 -0
- package/data/craftbook-templates/ch/changelog-writeup/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/ch/changelog-writeup/versions/1.0.1/test.json +129 -0
- package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.2/craftbook.json +123 -0
- package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.2/test.json +155 -0
- package/data/craftbook-templates/ch/chapter-weave/versions/1.0.1/craftbook.json +74 -0
- package/data/craftbook-templates/ch/chapter-weave/versions/1.0.1/test.json +98 -0
- package/data/craftbook-templates/ch/character-sheet/versions/1.0.1/craftbook.json +82 -0
- package/data/craftbook-templates/ch/character-sheet/versions/1.0.1/test.json +143 -0
- package/data/craftbook-templates/ch/character-turnaround/versions/1.0.1/craftbook.json +121 -0
- package/data/craftbook-templates/ch/character-turnaround/versions/1.0.1/test.json +178 -0
- package/data/craftbook-templates/ch/chart-pack/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/ch/chart-pack/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/ch/chrome-extension/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/ch/chrome-extension/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/ci/ci-pipeline/versions/1.0.1/craftbook.json +132 -0
- package/data/craftbook-templates/ci/ci-pipeline/versions/1.0.1/test.json +162 -0
- package/data/craftbook-templates/ci/citation-audit/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/ci/citation-audit/versions/1.0.1/test.json +149 -0
- package/data/craftbook-templates/cl/cli-tool/versions/1.1.1/craftbook.json +147 -0
- package/data/craftbook-templates/cl/cli-tool/versions/1.1.1/test.json +128 -0
- package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.1/craftbook.json +153 -0
- package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.1/test.json +116 -0
- package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.1/craftbook.json +153 -0
- package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.1/test.json +119 -0
- package/data/craftbook-templates/co/cohort-analysis/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/co/cohort-analysis/versions/1.0.1/test.json +226 -0
- package/data/craftbook-templates/co/company-research-brief/versions/1.0.1/craftbook.json +139 -0
- package/data/craftbook-templates/co/company-research-brief/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/co/comparison-matrix/versions/1.0.1/craftbook.json +153 -0
- package/data/craftbook-templates/co/comparison-matrix/versions/1.0.1/test.json +109 -0
- package/data/craftbook-templates/co/compat-check/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/co/compat-check/versions/1.0.1/test.json +145 -0
- package/data/craftbook-templates/co/competitive-analysis/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/co/competitive-analysis/versions/1.0.1/test.json +116 -0
- package/data/craftbook-templates/co/config-scaffold/versions/1.0.1/craftbook.json +105 -0
- package/data/craftbook-templates/co/config-scaffold/versions/1.0.1/test.json +120 -0
- package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.1/test.json +149 -0
- package/data/craftbook-templates/co/content-deck/versions/1.2.1/craftbook.json +206 -0
- package/data/craftbook-templates/co/content-deck/versions/1.2.1/test.json +169 -0
- package/data/craftbook-templates/co/contract-template/versions/1.0.1/craftbook.json +145 -0
- package/data/craftbook-templates/co/contract-template/versions/1.0.1/test.json +102 -0
- package/data/craftbook-templates/co/cookbook-layout/versions/1.0.1/craftbook.json +121 -0
- package/data/craftbook-templates/co/cookbook-layout/versions/1.0.1/test.json +159 -0
- package/data/craftbook-templates/co/copy-review/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/co/copy-review/versions/1.0.1/test.json +102 -0
- package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.1/craftbook.json +210 -0
- package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.1/test.json +187 -0
- package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.1/test.json +156 -0
- package/data/craftbook-templates/co/cover-letter/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/co/cover-letter/versions/1.0.1/test.json +100 -0
- package/data/craftbook-templates/cr/crm-update-batch/versions/1.0.1/craftbook.json +101 -0
- package/data/craftbook-templates/cr/crm-update-batch/versions/1.0.1/test.json +207 -0
- package/data/craftbook-templates/cr/cron-job/versions/1.0.1/craftbook.json +147 -0
- package/data/craftbook-templates/cr/cron-job/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/cr/crossword-forge/versions/1.0.1/craftbook.json +164 -0
- package/data/craftbook-templates/cr/crossword-forge/versions/1.0.1/test.json +135 -0
- package/data/craftbook-templates/cs/csv-transformer/versions/1.2.2/craftbook.json +101 -0
- package/data/craftbook-templates/cs/csv-transformer/versions/1.2.2/test.json +102 -0
- package/data/craftbook-templates/da/dashboard-spec/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/da/dashboard-spec/versions/1.0.1/test.json +114 -0
- package/data/craftbook-templates/da/data-dictionary/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/da/data-dictionary/versions/1.0.1/test.json +101 -0
- package/data/craftbook-templates/da/data-export-migrate/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/da/data-export-migrate/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/da/data-join-merge/versions/1.0.1/craftbook.json +101 -0
- package/data/craftbook-templates/da/data-join-merge/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.2/craftbook.json +148 -0
- package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.2/test.json +162 -0
- package/data/craftbook-templates/da/data-quality-audit/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/da/data-quality-audit/versions/1.0.1/test.json +326 -0
- package/data/craftbook-templates/da/data-to-report/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/da/data-to-report/versions/1.0.1/test.json +95 -0
- package/data/craftbook-templates/da/data-viz-page/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/da/data-viz-page/versions/1.0.1/test.json +117 -0
- package/data/craftbook-templates/da/dataset-clean/versions/1.2.2/craftbook.json +101 -0
- package/data/craftbook-templates/da/dataset-clean/versions/1.2.2/test.json +95 -0
- package/data/craftbook-templates/db/db-index-tuning/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/db/db-index-tuning/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/de/deep-security-review/versions/1.1.1/craftbook.json +211 -0
- package/data/craftbook-templates/de/deep-security-review/versions/1.1.1/test.json +157 -0
- package/data/craftbook-templates/de/dependency-audit/versions/1.1.1/craftbook.json +141 -0
- package/data/craftbook-templates/de/dependency-audit/versions/1.1.1/test.json +108 -0
- package/data/craftbook-templates/de/deploy-checklist/versions/1.0.1/craftbook.json +159 -0
- package/data/craftbook-templates/de/deploy-checklist/versions/1.0.1/test.json +165 -0
- package/data/craftbook-templates/de/design-review/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/de/design-review/versions/1.0.1/test.json +118 -0
- package/data/craftbook-templates/de/design-system-consultation/versions/2.0.3/craftbook.json +431 -0
- package/data/craftbook-templates/de/design-system-consultation/versions/2.0.3/test.json +201 -0
- package/data/craftbook-templates/di/diagram-from-text/versions/1.0.1/craftbook.json +109 -0
- package/data/craftbook-templates/di/diagram-from-text/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/di/digest-from-feeds/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/di/digest-from-feeds/versions/1.0.1/test.json +162 -0
- package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/do/doc-rewrite/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/do/doc-rewrite/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/do/dockerize-app/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/do/dockerize-app/versions/1.0.1/test.json +92 -0
- package/data/craftbook-templates/do/docs-site/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/do/docs-site/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.1/craftbook.json +153 -0
- package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.1/test.json +132 -0
- package/data/craftbook-templates/dr/drive-wrap-up/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/dr/drive-wrap-up/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/du/due-diligence-brief/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/du/due-diligence-brief/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/eb/ebook-compile/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/eb/ebook-compile/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/ed/edit-notes/versions/1.0.1/craftbook.json +176 -0
- package/data/craftbook-templates/ed/edit-notes/versions/1.0.1/test.json +146 -0
- package/data/craftbook-templates/em/email-sequence/versions/1.0.1/craftbook.json +142 -0
- package/data/craftbook-templates/em/email-sequence/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/em/email-template/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/em/email-template/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.3/craftbook.json +403 -0
- package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.3/test.json +191 -0
- package/data/craftbook-templates/ep/episode-plan/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/ep/episode-plan/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/es/escalation-playbook/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/es/escalation-playbook/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/ev/evidence-brief/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/ev/evidence-brief/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/ex/executive-level-review/versions/2.0.3/craftbook.json +433 -0
- package/data/craftbook-templates/ex/executive-level-review/versions/2.0.3/test.json +136 -0
- package/data/craftbook-templates/ex/expense-categorize/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/ex/expense-categorize/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/fa/fact-check/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/fa/fact-check/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/fa/family-story-chapter/versions/1.0.1/craftbook.json +74 -0
- package/data/craftbook-templates/fa/family-story-chapter/versions/1.0.1/test.json +108 -0
- package/data/craftbook-templates/fa/faq-from-docs/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/fa/faq-from-docs/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/fa/favicon-set/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/fa/favicon-set/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/fe/feature-flag-release/versions/1.0.1/craftbook.json +159 -0
- package/data/craftbook-templates/fe/feature-flag-release/versions/1.0.1/test.json +162 -0
- package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.0.1/test.json +162 -0
- package/data/craftbook-templates/fe/feedback-widget/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/fe/feedback-widget/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/fo/folder-to-audio/versions/1.0.1/craftbook.json +103 -0
- package/data/craftbook-templates/fo/folder-to-audio/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/fo/forecast-model/versions/1.0.1/craftbook.json +105 -0
- package/data/craftbook-templates/fo/forecast-model/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.1/test.json +162 -0
- package/data/craftbook-templates/fo/form-wizard/versions/1.0.1/craftbook.json +110 -0
- package/data/craftbook-templates/fo/form-wizard/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/ga/game-with-screens/versions/1.0.1/craftbook.json +168 -0
- package/data/craftbook-templates/ga/game-with-screens/versions/1.0.1/test.json +99 -0
- package/data/craftbook-templates/gl/glossary-build/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/gl/glossary-build/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/gr/graphql-api/versions/1.0.2/craftbook.json +146 -0
- package/data/craftbook-templates/gr/graphql-api/versions/1.0.2/test.json +92 -0
- package/data/craftbook-templates/gr/grpc-service/versions/1.0.1/craftbook.json +147 -0
- package/data/craftbook-templates/gr/grpc-service/versions/1.0.1/test.json +92 -0
- package/data/craftbook-templates/ha/handbook-section/versions/1.0.1/craftbook.json +145 -0
- package/data/craftbook-templates/ha/handbook-section/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/he/hero-image/versions/1.0.1/craftbook.json +154 -0
- package/data/craftbook-templates/he/hero-image/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.1/craftbook.json +202 -0
- package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.1/test.json +128 -0
- package/data/craftbook-templates/ho/hotfix-flow/versions/1.0.1/craftbook.json +182 -0
- package/data/craftbook-templates/ho/hotfix-flow/versions/1.0.1/test.json +92 -0
- package/data/craftbook-templates/ht/html-arcade-game/versions/1.2.1/craftbook.json +218 -0
- package/data/craftbook-templates/ht/html-arcade-game/versions/1.2.1/test.json +176 -0
- package/data/craftbook-templates/ht/html-puzzle-game/versions/1.0.1/craftbook.json +150 -0
- package/data/craftbook-templates/ht/html-puzzle-game/versions/1.0.1/test.json +99 -0
- package/data/craftbook-templates/ic/icon-pack/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/ic/icon-pack/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/id/idea-office-hours/versions/2.0.3/craftbook.json +397 -0
- package/data/craftbook-templates/id/idea-office-hours/versions/2.0.3/test.json +141 -0
- package/data/craftbook-templates/id/idle-clicker-game/versions/1.0.1/craftbook.json +150 -0
- package/data/craftbook-templates/id/idle-clicker-game/versions/1.0.1/test.json +99 -0
- package/data/craftbook-templates/im/image-batch-edit/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/im/image-batch-edit/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/im/image-dedup-cluster/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/im/image-dedup-cluster/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/im/image-palette-extract/versions/1.0.1/craftbook.json +109 -0
- package/data/craftbook-templates/im/image-palette-extract/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/im/image-seo-rename/versions/1.0.1/craftbook.json +105 -0
- package/data/craftbook-templates/im/image-seo-rename/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/im/image-set-index/versions/1.2.1/craftbook.json +179 -0
- package/data/craftbook-templates/im/image-set-index/versions/1.2.1/test.json +180 -0
- package/data/craftbook-templates/in/inbox-triage/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/in/inbox-triage/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/in/incident-comms-templates/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/in/incident-comms-templates/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/in/incident-postmortem/versions/1.0.1/craftbook.json +158 -0
- package/data/craftbook-templates/in/incident-postmortem/versions/1.0.1/test.json +109 -0
- package/data/craftbook-templates/in/insurance-inventory/versions/1.0.1/craftbook.json +153 -0
- package/data/craftbook-templates/in/insurance-inventory/versions/1.0.1/test.json +121 -0
- package/data/craftbook-templates/in/interactive-quiz/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/in/interactive-quiz/versions/1.0.1/test.json +99 -0
- package/data/craftbook-templates/in/investigate-root-cause/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/in/investigate-root-cause/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/in/invitation-design/versions/1.0.1/craftbook.json +128 -0
- package/data/craftbook-templates/in/invitation-design/versions/1.0.1/test.json +121 -0
- package/data/craftbook-templates/in/invoice-generator/versions/1.0.1/craftbook.json +110 -0
- package/data/craftbook-templates/in/invoice-generator/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/in/invoice-run/versions/1.1.1/craftbook.json +199 -0
- package/data/craftbook-templates/in/invoice-run/versions/1.1.1/test.json +140 -0
- package/data/craftbook-templates/index.json +1 -1
- package/data/craftbook-templates/it/item-intake/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/it/item-intake/versions/1.0.1/test.json +145 -0
- package/data/craftbook-templates/ju/juice-pass/versions/1.0.1/craftbook.json +116 -0
- package/data/craftbook-templates/ju/juice-pass/versions/1.0.1/test.json +116 -0
- package/data/craftbook-templates/kn/knowledge-base-article/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/kn/knowledge-base-article/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/kp/kpi-scorecard/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/kp/kpi-scorecard/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/la/landing-copy/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/la/landing-copy/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/la/landing-page/versions/1.0.1/craftbook.json +184 -0
- package/data/craftbook-templates/la/landing-page/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/le/lead-enrichment/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/le/lead-enrichment/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/li/library-package/versions/1.0.1/craftbook.json +147 -0
- package/data/craftbook-templates/li/library-package/versions/1.0.1/test.json +92 -0
- package/data/craftbook-templates/li/literature-review/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/li/literature-review/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/li/live-browser-qa/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/li/live-browser-qa/versions/1.0.1/test.json +162 -0
- package/data/craftbook-templates/lo/localize-content/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/lo/localize-content/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/lo/logo-set/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/lo/logo-set/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/ma/market-scan/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/ma/market-scan/versions/1.0.1/test.json +210 -0
- package/data/craftbook-templates/me/meeting-minutes/versions/1.0.1/craftbook.json +108 -0
- package/data/craftbook-templates/me/meeting-minutes/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.1/test.json +184 -0
- package/data/craftbook-templates/me/meeting-summary-audio/versions/1.0.1/craftbook.json +109 -0
- package/data/craftbook-templates/me/meeting-summary-audio/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.1/craftbook.json +115 -0
- package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.1/test.json +112 -0
- package/data/craftbook-templates/me/message-queue-consumer/versions/1.0.1/craftbook.json +147 -0
- package/data/craftbook-templates/me/message-queue-consumer/versions/1.0.1/test.json +92 -0
- package/data/craftbook-templates/mi/micro-game-jam/versions/1.0.1/craftbook.json +117 -0
- package/data/craftbook-templates/mi/micro-game-jam/versions/1.0.1/test.json +99 -0
- package/data/craftbook-templates/mo/mock-interview/versions/1.0.1/craftbook.json +139 -0
- package/data/craftbook-templates/mo/mock-interview/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/mo/mod-scaffold/versions/1.0.1/craftbook.json +156 -0
- package/data/craftbook-templates/mo/mod-scaffold/versions/1.0.1/test.json +133 -0
- package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.1/craftbook.json +158 -0
- package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.1/test.json +197 -0
- package/data/craftbook-templates/mo/month-close/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/mo/month-close/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/mo/monthly-recording-review/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/mo/monthly-recording-review/versions/1.0.1/test.json +117 -0
- package/data/craftbook-templates/mo/moodboard/versions/1.0.1/craftbook.json +109 -0
- package/data/craftbook-templates/mo/moodboard/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/mo/morning-brief/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/mo/morning-brief/versions/1.0.1/test.json +225 -0
- package/data/craftbook-templates/mo/morning-report/versions/1.0.1/craftbook.json +152 -0
- package/data/craftbook-templates/mo/morning-report/versions/1.0.1/test.json +250 -0
- package/data/craftbook-templates/mu/music-metadata-tag/versions/1.0.1/craftbook.json +101 -0
- package/data/craftbook-templates/mu/music-metadata-tag/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.1/craftbook.json +181 -0
- package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.1/test.json +86 -0
- package/data/craftbook-templates/ne/newsletter-issue/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/ne/newsletter-issue/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/no/notification-router/versions/1.0.1/craftbook.json +158 -0
- package/data/craftbook-templates/no/notification-router/versions/1.0.1/test.json +162 -0
- package/data/craftbook-templates/oc/ocr-extract/versions/1.0.1/craftbook.json +137 -0
- package/data/craftbook-templates/oc/ocr-extract/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/of/offer-compare/versions/1.0.1/craftbook.json +106 -0
- package/data/craftbook-templates/of/offer-compare/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/on/onboarding-checklist/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/on/onboarding-checklist/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/on/onboarding-flow/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/on/onboarding-flow/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/on/oncall-handoff/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/on/oncall-handoff/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/on/one-pager/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/on/one-pager/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/op/ops-runbook/versions/1.0.1/craftbook.json +112 -0
- package/data/craftbook-templates/op/ops-runbook/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/pa/page-spread/versions/1.0.1/craftbook.json +82 -0
- package/data/craftbook-templates/pa/page-spread/versions/1.0.1/test.json +132 -0
- package/data/craftbook-templates/pa/parser-grammar/versions/1.0.1/craftbook.json +147 -0
- package/data/craftbook-templates/pa/parser-grammar/versions/1.0.1/test.json +92 -0
- package/data/craftbook-templates/pe/perf-audit/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/pe/perf-audit/versions/1.0.1/test.json +162 -0
- package/data/craftbook-templates/pe/perf-optimization/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/pe/perf-optimization/versions/1.0.1/test.json +92 -0
- package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.1/test.json +122 -0
- package/data/craftbook-templates/ph/photo-cull/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/ph/photo-cull/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/ph/physics-toy/versions/1.0.1/craftbook.json +110 -0
- package/data/craftbook-templates/ph/physics-toy/versions/1.0.1/test.json +99 -0
- package/data/craftbook-templates/pi/pitch-deck/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/pi/pitch-deck/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/pl/playtest-report/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/pl/playtest-report/versions/1.0.1/test.json +111 -0
- package/data/craftbook-templates/po/podcast-chaptering/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/po/podcast-chaptering/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/po/portfolio-site/versions/1.0.1/craftbook.json +151 -0
- package/data/craftbook-templates/po/portfolio-site/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.0/craftbook.json +257 -0
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.0/test.json +228 -0
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.1/craftbook.json +347 -0
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.1/test.json +228 -0
- package/data/craftbook-templates/pr/pr-security-review/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/pr/pr-security-review/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/pr/practice-exam/versions/1.0.1/craftbook.json +159 -0
- package/data/craftbook-templates/pr/practice-exam/versions/1.0.1/test.json +117 -0
- package/data/craftbook-templates/pr/practice-session/versions/1.0.1/craftbook.json +115 -0
- package/data/craftbook-templates/pr/practice-session/versions/1.0.1/test.json +114 -0
- package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/pr/press-release/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/pr/press-release/versions/1.0.1/test.json +356 -0
- package/data/craftbook-templates/pr/price-tracker/versions/1.0.1/craftbook.json +109 -0
- package/data/craftbook-templates/pr/price-tracker/versions/1.0.1/test.json +150 -0
- package/data/craftbook-templates/pr/pricing-page/versions/1.0.1/craftbook.json +184 -0
- package/data/craftbook-templates/pr/pricing-page/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/pr/product-descriptions/versions/1.0.1/craftbook.json +105 -0
- package/data/craftbook-templates/pr/product-descriptions/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/pr/proposal-sow/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/pr/proposal-sow/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/pu/pull-request-review/manifest.json +3 -1
- package/data/craftbook-templates/pu/pull-request-review/versions/1.4.1/craftbook.json +180 -0
- package/data/craftbook-templates/pu/pull-request-review/versions/1.4.1/test.json +123 -0
- package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.1/craftbook.json +121 -0
- package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.1/test.json +123 -0
- package/data/craftbook-templates/pw/pwa-offline/versions/1.0.1/craftbook.json +155 -0
- package/data/craftbook-templates/pw/pwa-offline/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.1/test.json +113 -0
- package/data/craftbook-templates/re/reading-list/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/re/reading-list/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/re/receipt-intake/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/re/receipt-intake/versions/1.0.1/test.json +149 -0
- package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/re/recipe-capture/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/re/recipe-capture/versions/1.0.1/test.json +128 -0
- package/data/craftbook-templates/re/record-a-relative/versions/1.0.1/craftbook.json +115 -0
- package/data/craftbook-templates/re/record-a-relative/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/re/refactor-module/versions/1.0.2/craftbook.json +148 -0
- package/data/craftbook-templates/re/refactor-module/versions/1.0.2/test.json +92 -0
- package/data/craftbook-templates/re/regex-builder/versions/1.0.1/craftbook.json +147 -0
- package/data/craftbook-templates/re/regex-builder/versions/1.0.1/test.json +92 -0
- package/data/craftbook-templates/re/release-announcement/versions/1.0.1/craftbook.json +159 -0
- package/data/craftbook-templates/re/release-announcement/versions/1.0.1/test.json +202 -0
- package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.1/craftbook.json +214 -0
- package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.1/test.json +138 -0
- package/data/craftbook-templates/re/release-notes/versions/1.0.1/craftbook.json +159 -0
- package/data/craftbook-templates/re/release-notes/versions/1.0.1/test.json +111 -0
- package/data/craftbook-templates/re/release-pipeline-ci/versions/1.0.1/craftbook.json +147 -0
- package/data/craftbook-templates/re/release-pipeline-ci/versions/1.0.1/test.json +162 -0
- package/data/craftbook-templates/re/release-readiness-review/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/re/release-readiness-review/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/re/reliability-review/versions/1.0.1/craftbook.json +153 -0
- package/data/craftbook-templates/re/reliability-review/versions/1.0.1/test.json +112 -0
- package/data/craftbook-templates/re/report-pdf/versions/1.1.1/craftbook.json +173 -0
- package/data/craftbook-templates/re/report-pdf/versions/1.1.1/test.json +98 -0
- package/data/craftbook-templates/re/research-report/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/re/research-report/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/re/research-to-document/versions/1.2.1/craftbook.json +216 -0
- package/data/craftbook-templates/re/research-to-document/versions/1.2.1/test.json +240 -0
- package/data/craftbook-templates/re/rest-api/versions/1.0.2/craftbook.json +147 -0
- package/data/craftbook-templates/re/rest-api/versions/1.0.2/test.json +387 -0
- package/data/craftbook-templates/re/resume-cv/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/re/resume-cv/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/ro/rollback-plan/versions/1.0.1/craftbook.json +159 -0
- package/data/craftbook-templates/ro/rollback-plan/versions/1.0.1/test.json +162 -0
- package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.3/craftbook.json +413 -0
- package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.3/test.json +154 -0
- package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.2/craftbook.json +167 -0
- package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.2/test.json +137 -0
- package/data/craftbook-templates/ru/runbook/versions/1.0.1/craftbook.json +145 -0
- package/data/craftbook-templates/ru/runbook/versions/1.0.1/test.json +118 -0
- package/data/craftbook-templates/sc/schema-migration/versions/1.0.1/craftbook.json +144 -0
- package/data/craftbook-templates/sc/schema-migration/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.2/craftbook.json +140 -0
- package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.2/test.json +162 -0
- package/data/craftbook-templates/sc/script-automation/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/sc/script-automation/versions/1.0.1/test.json +162 -0
- package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.2/craftbook.json +147 -0
- package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.2/test.json +90 -0
- package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/se/security-architecture-review/versions/2.0.3/craftbook.json +440 -0
- package/data/craftbook-templates/se/security-architecture-review/versions/2.0.3/test.json +154 -0
- package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.1/craftbook.json +105 -0
- package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/so/social-thread/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/so/social-thread/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/so/source-quality-audit/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/so/source-quality-audit/versions/1.0.1/test.json +158 -0
- package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/sp/spec-authoring/versions/2.0.3/craftbook.json +436 -0
- package/data/craftbook-templates/sp/spec-authoring/versions/2.0.3/test.json +162 -0
- package/data/craftbook-templates/sp/spec-doc/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/sp/spec-doc/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.1/craftbook.json +109 -0
- package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.1/test.json +160 -0
- package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.1/craftbook.json +137 -0
- package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/sq/sql-analysis/versions/1.0.1/craftbook.json +109 -0
- package/data/craftbook-templates/sq/sql-analysis/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/st/standup-summary/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/st/standup-summary/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/st/state-machine/versions/1.0.1/craftbook.json +147 -0
- package/data/craftbook-templates/st/state-machine/versions/1.0.1/test.json +92 -0
- package/data/craftbook-templates/st/status-report/versions/1.0.1/craftbook.json +146 -0
- package/data/craftbook-templates/st/status-report/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/su/subscription-audit/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/su/subscription-audit/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/su/subtitle-generator/versions/1.0.1/craftbook.json +128 -0
- package/data/craftbook-templates/su/subtitle-generator/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/su/summarize-long/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/su/summarize-long/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/su/survey-analysis/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/su/survey-analysis/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/sv/svg-animation/versions/1.0.1/craftbook.json +110 -0
- package/data/craftbook-templates/sv/svg-animation/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/ta/tailor-resume/versions/1.0.1/craftbook.json +114 -0
- package/data/craftbook-templates/ta/tailor-resume/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/te/technical-documentation/versions/2.0.3/craftbook.json +408 -0
- package/data/craftbook-templates/te/technical-documentation/versions/2.0.3/test.json +174 -0
- package/data/craftbook-templates/te/test-coverage-review/versions/1.1.1/craftbook.json +141 -0
- package/data/craftbook-templates/te/test-coverage-review/versions/1.1.1/test.json +113 -0
- package/data/craftbook-templates/te/test-suite-backfill/versions/1.0.1/craftbook.json +120 -0
- package/data/craftbook-templates/te/test-suite-backfill/versions/1.0.1/test.json +92 -0
- package/data/craftbook-templates/th/thank-you-batch/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/th/thank-you-batch/versions/1.0.1/test.json +141 -0
- package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.1/test.json +142 -0
- package/data/craftbook-templates/th/threat-model/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/th/threat-model/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.1/craftbook.json +103 -0
- package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/ti/tileset-batch/versions/1.0.1/craftbook.json +160 -0
- package/data/craftbook-templates/ti/tileset-batch/versions/1.0.1/test.json +159 -0
- package/data/craftbook-templates/to/tone-rewrite/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/to/tone-rewrite/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/to/topic-explainer/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/to/topic-explainer/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.1/craftbook.json +115 -0
- package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.1/test.json +98 -0
- package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/tr/transcribe-index/versions/1.0.1/craftbook.json +171 -0
- package/data/craftbook-templates/tr/transcribe-index/versions/1.0.1/test.json +151 -0
- package/data/craftbook-templates/ty/type-safety-pass/versions/1.0.1/craftbook.json +148 -0
- package/data/craftbook-templates/ty/type-safety-pass/versions/1.0.1/test.json +92 -0
- package/data/craftbook-templates/ve/version-bump/versions/1.0.1/craftbook.json +155 -0
- package/data/craftbook-templates/ve/version-bump/versions/1.0.1/test.json +92 -0
- package/data/craftbook-templates/vi/video-storyboard/versions/1.0.1/craftbook.json +109 -0
- package/data/craftbook-templates/vi/video-storyboard/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/vi/visit-prep/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/vi/visit-prep/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/vo/voiceover-script/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/vo/voiceover-script/versions/1.0.1/test.json +103 -0
- package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.1/craftbook.json +154 -0
- package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.1/test.json +124 -0
- package/data/craftbook-templates/we/web-app-crud/versions/1.0.1/craftbook.json +143 -0
- package/data/craftbook-templates/we/web-app-crud/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/we/web-component/versions/1.0.1/craftbook.json +110 -0
- package/data/craftbook-templates/we/web-component/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/we/webhook-handler/versions/1.0.1/craftbook.json +147 -0
- package/data/craftbook-templates/we/webhook-handler/versions/1.0.1/test.json +162 -0
- package/data/craftbook-templates/we/week-plan/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/we/week-plan/versions/1.0.1/test.json +255 -0
- package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.1/test.json +97 -0
- package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.1/craftbook.json +106 -0
- package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.1/test.json +104 -0
- package/data/craftbook-templates/we/weekly-review/versions/1.0.1/craftbook.json +107 -0
- package/data/craftbook-templates/we/weekly-review/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.1/test.json +138 -0
- package/data/craftbook-templates/wh/whitepaper/versions/1.0.1/craftbook.json +141 -0
- package/data/craftbook-templates/wh/whitepaper/versions/1.0.1/test.json +110 -0
- package/data/craftbook-templates/ye/year-in-review/versions/1.0.1/craftbook.json +115 -0
- package/data/craftbook-templates/ye/year-in-review/versions/1.0.1/test.json +145 -0
- package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.1/craftbook.json +134 -0
- package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.1/test.json +103 -0
- package/package.json +1 -1
- package/schemas/chat-model-identity.schema.json +16 -0
- package/schemas/craftbook-doc.schema.json +8 -2
- package/schemas/craftbook-template-version.schema.json +8 -2
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "contract-template",
|
|
3
|
+
"name": "Contract Template (Non-Legal-Advice)",
|
|
4
|
+
"description": "Draft a reusable, plain-language agreement template — service agreement, NDA, freelance contract, or terms — with clearly marked fill-in fields, structured numbered clauses, and a prominent non-legal-advice disclaimer. Scopes the parties, obligations, and risk allocation FIRST, drafts clear enforceable-style clauses with placeholders for the variable terms, then has a reviewer check completeness and flag anything that genuinely needs a lawyer. NOT legal advice — every output must say so. Use for templated agreements you will adapt and have counsel review.\n\nA gallery craftbook generated from an archetype spec. It runs\n`phase → (per-phase gate) → … → evaluate → (loop) → finish`. Each build\nphase that produces a checkable artifact is followed by a **runtime\ngate-checkpoint** — the runtime verifies the artifact and routes with no\nmodel turn, looping back to redo the phase on a miss. The final `evaluate`\nstep holds a static deliverable gate plus a reviewer QA pass. What it adds\nover the generic `build-loop`: a specialist role per phase, a\ndomain-correct ordering, and a concrete per-phase quality bar.\n\nDeliverables marked \"artifact\" land in the project's artifacts drawer (`write_artifact` / `read_artifact`), not the shipped workspace — review output is not product source.\n\nPhases:\n\n1. Scope the agreement (planner) — parties, obligations, term, payment, risk allocation, fill-in fields → gated on artifact `notes/scope.md` (markdown-notes)\n2. Draft the clauses (copywriter) — clear numbered clauses with marked placeholders + disclaimer → gated on `contract.md` (markdown-doc)\n3. Review the template (reviewer) — check clause completeness, placeholders, and lawyer-needed flags → gated on artifact `notes/review.md` (markdown-notes)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n",
|
|
5
|
+
"entryStepId": "scope",
|
|
6
|
+
"triggers": [
|
|
7
|
+
"contract template",
|
|
8
|
+
"draft an nda",
|
|
9
|
+
"service agreement template",
|
|
10
|
+
"freelance contract",
|
|
11
|
+
"terms template",
|
|
12
|
+
"agreement document"
|
|
13
|
+
],
|
|
14
|
+
"steps": [
|
|
15
|
+
{
|
|
16
|
+
"id": "scope",
|
|
17
|
+
"name": "Scope the agreement",
|
|
18
|
+
"description": "parties, obligations, term, payment, risk allocation, fill-in fields",
|
|
19
|
+
"prompt": "Map the deal structure before drafting clauses. Step 1: identify the agreement type and the parties and their roles. Step 2: list each party's core obligations and what each receives. Step 3: define the variable terms that must become FILL-IN FIELDS (names, dates, amounts, term length, jurisdiction) and mark them as placeholders like [PARTY_A_NAME]. Step 4: decide the risk-allocation clauses the template needs (confidentiality, IP ownership, liability limits, termination, dispute resolution, governing law) appropriate to the type. Step 5: note that this is a TEMPLATE and not legal advice — a disclaimer is mandatory in the output. Step 6: write an acceptance-criteria checklist ('all parties + roles defined', 'every variable is a marked fill-in field', 'standard protective clauses present for this type', 'termination + governing-law clauses included', 'a prominent non-legal-advice disclaimer is required'). Write the structure + field list + checklist via write_task_note AND to notes/scope.md. No clause prose yet.\n\nThe deliverable `notes/scope.md` lands in the project's artifacts drawer — write it with `write_artifact` and read it back with `read_artifact`; the shipped workspace stays untouched.",
|
|
20
|
+
"suggestedRole": "planner",
|
|
21
|
+
"advanceWhen": {
|
|
22
|
+
"file": "notes/scope.md",
|
|
23
|
+
"minBytes": 1,
|
|
24
|
+
"sniff": "nonempty",
|
|
25
|
+
"artifact": true
|
|
26
|
+
},
|
|
27
|
+
"gate": {
|
|
28
|
+
"at": "completion",
|
|
29
|
+
"checks": [
|
|
30
|
+
{
|
|
31
|
+
"kind": "minBytes",
|
|
32
|
+
"file": "notes/scope.md",
|
|
33
|
+
"bytes": 120,
|
|
34
|
+
"artifact": true
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"kind": "sniff",
|
|
38
|
+
"file": "notes/scope.md",
|
|
39
|
+
"sniff": "nonempty",
|
|
40
|
+
"artifact": true
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"onReject": "scope",
|
|
44
|
+
"maxAttempts": 3
|
|
45
|
+
},
|
|
46
|
+
"next": "draft"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "draft",
|
|
50
|
+
"name": "Draft the clauses",
|
|
51
|
+
"description": "clear numbered clauses with marked placeholders + disclaimer",
|
|
52
|
+
"prompt": "Draft the agreement as contract.md in clear, plain language. Step 1: lead with a bold, unmissable disclaimer: this is a template for informational purposes, NOT legal advice, and should be reviewed by a qualified attorney before use. Step 2: write a preamble identifying the parties using the [PLACEHOLDER] fields and the effective date. Step 3: write the body as NUMBERED clauses (1, 1.1, 2 ...) — one obligation/topic per clause — covering scope of work/subject, payment terms, term and termination, confidentiality, IP ownership, liability/indemnity, dispute resolution, and governing law, each appropriate to the agreement type. Step 4: keep every variable as a clearly marked fill-in field so the user adapts it safely; add brief [GUIDANCE: ...] notes where a choice must be made. Step 5: end with a signature block (party, name, title, date lines). Use precise but readable language; avoid ambiguity in obligations. On a loop-back, fix ONLY the named gaps. Write the path + clause count via write_task_note.",
|
|
53
|
+
"suggestedRole": "copywriter",
|
|
54
|
+
"advanceWhen": {
|
|
55
|
+
"file": "contract.md",
|
|
56
|
+
"minBytes": 1,
|
|
57
|
+
"sniff": "nonempty"
|
|
58
|
+
},
|
|
59
|
+
"gate": {
|
|
60
|
+
"at": "completion",
|
|
61
|
+
"checks": [
|
|
62
|
+
{
|
|
63
|
+
"kind": "minBytes",
|
|
64
|
+
"file": "contract.md",
|
|
65
|
+
"bytes": 500
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
"scripts": [
|
|
69
|
+
{
|
|
70
|
+
"name": "checkContains",
|
|
71
|
+
"scope": "standard",
|
|
72
|
+
"inputs": {
|
|
73
|
+
"file": "contract.md",
|
|
74
|
+
"pattern": "(?:^|\\n)#{1,3}\\s+\\S",
|
|
75
|
+
"flags": "i"
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
],
|
|
79
|
+
"onReject": "draft",
|
|
80
|
+
"maxAttempts": 3
|
|
81
|
+
},
|
|
82
|
+
"next": "review"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"id": "review",
|
|
86
|
+
"name": "Review the template",
|
|
87
|
+
"description": "check clause completeness, placeholders, and lawyer-needed flags",
|
|
88
|
+
"prompt": "Review the template for completeness and honesty about its limits. Step 1: confirm the non-legal-advice disclaimer is present and prominent. Step 2: verify every scoped clause type is present and every variable term is a clearly marked fill-in field (no hard-coded names/amounts leaked in). Step 3: check the signature block and that termination + governing-law clauses exist. Step 4: flag any clause that genuinely requires a lawyer's judgment (e.g. liability caps, jurisdiction-specific enforceability) with a [LAWYER REVIEW] note rather than overstating certainty. Step 5: list concrete gaps with the clause number and fix, recorded as PASS/FAIL against the scope checklist. Write the findings via write_task_note AND to notes/review.md. Gaps must be fixed in the draft phase before this passes.\n\nThe deliverable `notes/review.md` lands in the project's artifacts drawer — write it with `write_artifact` and read it back with `read_artifact`; the shipped workspace stays untouched.",
|
|
89
|
+
"suggestedRole": "reviewer",
|
|
90
|
+
"advanceWhen": {
|
|
91
|
+
"file": "notes/review.md",
|
|
92
|
+
"minBytes": 1,
|
|
93
|
+
"sniff": "nonempty",
|
|
94
|
+
"artifact": true
|
|
95
|
+
},
|
|
96
|
+
"gate": {
|
|
97
|
+
"at": "completion",
|
|
98
|
+
"checks": [
|
|
99
|
+
{
|
|
100
|
+
"kind": "minBytes",
|
|
101
|
+
"file": "contract.md",
|
|
102
|
+
"bytes": 500
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"scripts": [
|
|
106
|
+
{
|
|
107
|
+
"name": "checkContains",
|
|
108
|
+
"scope": "standard",
|
|
109
|
+
"inputs": {
|
|
110
|
+
"file": "contract.md",
|
|
111
|
+
"pattern": "(?:^|\\n)#{1,3}\\s+\\S",
|
|
112
|
+
"flags": "i"
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
],
|
|
116
|
+
"onReject": "review",
|
|
117
|
+
"maxAttempts": 4
|
|
118
|
+
},
|
|
119
|
+
"next": "evaluate"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"id": "evaluate",
|
|
123
|
+
"name": "Evaluate",
|
|
124
|
+
"description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
|
|
125
|
+
"prompt": "QA the contract template against the locked criteria. Step 1: read contract.md. Step 2: confirm FIRST that a prominent non-legal-advice disclaimer is present — if missing, FAIL immediately and loop back. Step 3: check EACH remaining criterion: parties + roles defined via placeholders, every variable is a clearly marked fill-in field, standard protective clauses for this type are present, termination + governing-law clauses included, clauses are numbered and unambiguous, and a signature block exists. Step 4: confirm lawyer-judgment items carry a [LAWYER REVIEW] flag rather than false certainty, folding in notes/review.md. Write PASS/FAIL per criterion with the offending clause on any FAIL.\n\nThen route — this is the whole point of the loop:\n\n- **Every criterion PASSES →** call `advance_task_step({ ref, stepId: \"evaluate\", next: \"finish\" })`.\n- **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: \"evaluate\", next: \"draft\" })` to loop back. The builder fixes exactly those gaps.\n\nNever route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in.",
|
|
126
|
+
"suggestedRole": "reviewer",
|
|
127
|
+
"consumes": [
|
|
128
|
+
{
|
|
129
|
+
"file": "contract.md"
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"next": "draft"
|
|
133
|
+
},
|
|
134
|
+
{
|
|
135
|
+
"id": "finish",
|
|
136
|
+
"name": "Finish",
|
|
137
|
+
"description": "All acceptance criteria met. Stamp a short summary and report DONE.",
|
|
138
|
+
"prompt": "Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.",
|
|
139
|
+
"suggestedRole": "developer",
|
|
140
|
+
"terminal": true
|
|
141
|
+
}
|
|
142
|
+
],
|
|
143
|
+
"version": "1.0.1",
|
|
144
|
+
"releasedAt": "2026-08-14T00:00:00Z"
|
|
145
|
+
}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"title": "Plain-language service agreement template",
|
|
4
|
+
"objective": "Measure whether the contract-template craftbook produces a reusable template with placeholders, protective clauses, and a prominent non-legal-advice disclaimer.",
|
|
5
|
+
"tags": [
|
|
6
|
+
"corpus"
|
|
7
|
+
],
|
|
8
|
+
"prompt": "In the `Contract Template Eval` project, read `source/deal-brief.md` and write `contract.md`: a plain-language service agreement template for a bookkeeping cleanup engagement. Include marked fill-in fields, numbered clauses, signature block, lawyer-review flags, and a prominent non-legal-advice disclaimer.",
|
|
9
|
+
"setup": {
|
|
10
|
+
"projectName": "Contract Template Eval",
|
|
11
|
+
"about": "Self-contained eval project for contract-template. Deal structure is in workspace/source/deal-brief.md.",
|
|
12
|
+
"missionObjectives": "Draft a reusable service agreement template with placeholders, clauses, disclaimer, lawyer-review flags, and no hard-coded final legal advice.",
|
|
13
|
+
"files": [
|
|
14
|
+
{
|
|
15
|
+
"path": "source/deal-brief.md",
|
|
16
|
+
"content": "# Deal brief\n\nAgreement type: bookkeeping cleanup service agreement.\nParties: provider and client should remain placeholders.\nVariable terms: [PROVIDER_NAME], [CLIENT_NAME], [EFFECTIVE_DATE], [PROJECT_FEE], [PAYMENT_SCHEDULE], [TERM_LENGTH], [GOVERNING_LAW_STATE].\nRequired clauses: scope of work, client responsibilities, payment, term and termination, confidentiality, IP ownership of deliverables, limitation of liability, dispute resolution, governing law, signature block.\nFlag for lawyer review: liability cap, governing law, indemnity/dispute language.\n"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"worker": {
|
|
20
|
+
"name": "Lotte",
|
|
21
|
+
"role": "Document Drafter"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"mocks": [],
|
|
25
|
+
"success": {
|
|
26
|
+
"summary": "workspace/contract.md is a placeholder-driven agreement template with disclaimer, numbered clauses, signature block, and lawyer-review flags.",
|
|
27
|
+
"deliverables": [
|
|
28
|
+
{
|
|
29
|
+
"path": "contract.md",
|
|
30
|
+
"kind": "markdown-doc",
|
|
31
|
+
"minBytes": 2800,
|
|
32
|
+
"checks": [
|
|
33
|
+
{
|
|
34
|
+
"kind": "contains",
|
|
35
|
+
"file": "contract.md",
|
|
36
|
+
"pattern": "(?:^|\\n)#{1,3}\\s+\\S",
|
|
37
|
+
"flags": "i"
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"kind": "contains",
|
|
41
|
+
"file": "contract.md",
|
|
42
|
+
"pattern": "not legal advice|qualified attorney|lawyer review",
|
|
43
|
+
"flags": "i"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"kind": "contains",
|
|
47
|
+
"file": "contract.md",
|
|
48
|
+
"pattern": "\\[PROVIDER_NAME\\]|\\[CLIENT_NAME\\]|\\[EFFECTIVE_DATE\\]|\\[PROJECT_FEE\\]",
|
|
49
|
+
"flags": "i"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"kind": "contains",
|
|
53
|
+
"file": "contract.md",
|
|
54
|
+
"pattern": "confidentiality|IP ownership|termination|governing law|dispute",
|
|
55
|
+
"flags": "i"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"kind": "contains",
|
|
59
|
+
"file": "contract.md",
|
|
60
|
+
"pattern": "limitation of liability|indemnity|\\[LAWYER REVIEW\\]",
|
|
61
|
+
"flags": "i"
|
|
62
|
+
},
|
|
63
|
+
{
|
|
64
|
+
"kind": "contains",
|
|
65
|
+
"file": "contract.md",
|
|
66
|
+
"pattern": "Signature|Name|Title|Date",
|
|
67
|
+
"flags": "i"
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
},
|
|
73
|
+
"rubric": {
|
|
74
|
+
"artifact": {
|
|
75
|
+
"path": "contract.md",
|
|
76
|
+
"kind": "markdown"
|
|
77
|
+
},
|
|
78
|
+
"axes": [
|
|
79
|
+
{
|
|
80
|
+
"name": "grounding",
|
|
81
|
+
"description": "Seeded facts appear faithfully and the source is cited."
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"name": "structure",
|
|
85
|
+
"description": "Sections progress logically for the artifact class."
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"name": "completeness",
|
|
89
|
+
"description": "Required elements (risks, next actions, scope) are all present."
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"name": "tone",
|
|
93
|
+
"description": "The register fits the audience and artifact class."
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
},
|
|
97
|
+
"qualityFocus": [
|
|
98
|
+
"disclaimer",
|
|
99
|
+
"placeholder discipline",
|
|
100
|
+
"clause completeness"
|
|
101
|
+
]
|
|
102
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "cookbook-layout",
|
|
3
|
+
"name": "Lay Out the Cookbook",
|
|
4
|
+
"description": "Assemble the heirloom: every tested recipe in its chapter, the provenance kept beside the food — whose recipe it was, what table it came from — chapter intros in the family's voice, print-ready pages. The book that exists because someone finally sat down and made it. Locks the inclusion rule FIRST — tested recipes in, untested listed for the next round, never silently dropped — then lays out the chapters, then proofs every eligible recipe made it in with its story intact. Use for laying out the family cookbook, the heirloom recipe book, 'print the cookbook', and a recipe book for the grandchildren.\n\nA gallery craftbook generated from an archetype spec. It runs\n`phase → (per-phase gate) → … → evaluate → (loop) → finish`. Each build\nphase that produces a checkable artifact is followed by a **runtime\ngate-checkpoint** — the runtime verifies the artifact and routes with no\nmodel turn, looping back to redo the phase on a miss. The final `evaluate`\nstep holds a static deliverable gate plus a reviewer QA pass. What it adds\nover the generic `build-loop`: a specialist role per phase, a\ndomain-correct ordering, and a concrete per-phase quality bar.\n\nDeliverables marked \"artifact\" land in the project's artifacts drawer (`write_artifact` / `read_artifact`), not the shipped workspace — review output is not product source.\n\nPhases:\n\n1. Scope the book (kitchen-master) — inclusion rule from the shelf, chapter order, page rules → gated on artifact `notes/scope.md` (markdown-notes)\n2. Lay out the book (designer) — cover, chapters, one recipe per page with provenance → gated on `book/cookbook.html` (html-page)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n",
|
|
5
|
+
"entryStepId": "scope",
|
|
6
|
+
"triggers": [
|
|
7
|
+
"lay out the cookbook",
|
|
8
|
+
"make the family cookbook",
|
|
9
|
+
"print the recipe book",
|
|
10
|
+
"heirloom cookbook",
|
|
11
|
+
"put the recipes into a book"
|
|
12
|
+
],
|
|
13
|
+
"steps": [
|
|
14
|
+
{
|
|
15
|
+
"id": "scope",
|
|
16
|
+
"name": "Scope the book",
|
|
17
|
+
"description": "inclusion rule from the shelf, chapter order, page rules",
|
|
18
|
+
"prompt": "Read the shelf before laying out a page. Step 1: read recipes.json from the workspace and the recipe files under recipes/ — which recipes are tested and which still pending. Step 2: lock the inclusion rule: tested recipes go in; untested ones go on a short 'still to test' page at the back — listed, never silently dropped. Step 3: settle the chapter order with the owner — by course, by season, or by the family line each recipe came down — and the page rules: one recipe per page, the provenance line under every title, a short chapter intro in the family's voice, print styles throughout. Step 4: write an acceptance-criteria checklist ('every tested recipe appears in its chapter with its provenance line', 'untested recipes listed at the back, not dropped', 'the family's phrasings preserved, not rewritten into recipe-site prose', 'chapters ordered as agreed', 'the book prints cleanly, one recipe per page'). Call write_task_note with the tested/untested counts + chapter order + checklist and write notes/scope.md.\n\nThe deliverable `notes/scope.md` lands in the project's artifacts drawer — write it with `write_artifact` and read it back with `read_artifact`; the shipped workspace stays untouched.",
|
|
19
|
+
"suggestedRole": "kitchen-master",
|
|
20
|
+
"advanceWhen": {
|
|
21
|
+
"file": "notes/scope.md",
|
|
22
|
+
"minBytes": 1,
|
|
23
|
+
"sniff": "nonempty",
|
|
24
|
+
"artifact": true
|
|
25
|
+
},
|
|
26
|
+
"gate": {
|
|
27
|
+
"at": "completion",
|
|
28
|
+
"checks": [
|
|
29
|
+
{
|
|
30
|
+
"kind": "minBytes",
|
|
31
|
+
"file": "notes/scope.md",
|
|
32
|
+
"bytes": 120,
|
|
33
|
+
"artifact": true
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"kind": "sniff",
|
|
37
|
+
"file": "notes/scope.md",
|
|
38
|
+
"sniff": "nonempty",
|
|
39
|
+
"artifact": true
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"onReject": "scope",
|
|
43
|
+
"maxAttempts": 3
|
|
44
|
+
},
|
|
45
|
+
"next": "layout"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "layout",
|
|
49
|
+
"name": "Lay out the book",
|
|
50
|
+
"description": "cover, chapters, one recipe per page with provenance",
|
|
51
|
+
"prompt": "Lay out the cookbook as one print-ready HTML file at book/cookbook.html. Step 1: the cover and a contents page listing the chapters. Step 2: each chapter opens with a short intro in the family's voice — two or three sentences that sound like the kitchen, not a food blog. Step 3: one recipe per page: the title, the provenance line right under it — whose recipe, where it came from — then ingredients and the method in the family's own phrasing from the recipe files, preserved word for word where it matters. Step 4: the 'still to test' page at the back listing the untested recipes by name. Step 5: print styles throughout — an @page rule, page breaks so every recipe starts fresh, type set for reading at arm's length in a working kitchen. Call write_task_note with the recipe count and the chapter list.",
|
|
52
|
+
"suggestedRole": "designer",
|
|
53
|
+
"advanceWhen": {
|
|
54
|
+
"file": "book/cookbook.html",
|
|
55
|
+
"minBytes": 1,
|
|
56
|
+
"sniff": "html-complete"
|
|
57
|
+
},
|
|
58
|
+
"gate": {
|
|
59
|
+
"at": "completion",
|
|
60
|
+
"checks": [
|
|
61
|
+
{
|
|
62
|
+
"kind": "minBytes",
|
|
63
|
+
"file": "book/cookbook.html",
|
|
64
|
+
"bytes": 8000
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"kind": "htmlLint",
|
|
68
|
+
"file": "book/cookbook.html"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"kind": "cssMinBytes",
|
|
72
|
+
"bytes": 650,
|
|
73
|
+
"file": "book/cookbook.html"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"kind": "contains",
|
|
77
|
+
"file": "book/cookbook.html",
|
|
78
|
+
"pattern": "@page|@media\\s+print|page-break|break-after",
|
|
79
|
+
"flags": "i",
|
|
80
|
+
"label": "print CSS"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"scripts": [
|
|
84
|
+
{
|
|
85
|
+
"name": "checkHtmlComplete",
|
|
86
|
+
"scope": "standard",
|
|
87
|
+
"inputs": {
|
|
88
|
+
"file": "book/cookbook.html"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"onReject": "layout",
|
|
93
|
+
"maxAttempts": 4
|
|
94
|
+
},
|
|
95
|
+
"next": "evaluate"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "evaluate",
|
|
99
|
+
"name": "Evaluate",
|
|
100
|
+
"description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
|
|
101
|
+
"prompt": "Open book/cookbook.html against recipes.json and the recipes/ files and verify every criterion from notes/scope.md: every tested recipe appears in its chapter with its provenance line — spot-check three against the shelf, a recipe that lost its story has lost the point — untested recipes are listed at the back and none silently dropped, the family's phrasings survive in the methods, chapters run in the agreed order, and the page styling would print one recipe per page. Write PASS/FAIL per criterion; on any failure, name the recipe and the gap and loop back to layout.\n\nThen route — this is the whole point of the loop:\n\n- **Every criterion PASSES →** call `advance_task_step({ ref, stepId: \"evaluate\", next: \"finish\" })`.\n- **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: \"evaluate\", next: \"layout\" })` to loop back. The builder fixes exactly those gaps.\n\nNever route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in.",
|
|
102
|
+
"suggestedRole": "reviewer",
|
|
103
|
+
"consumes": [
|
|
104
|
+
{
|
|
105
|
+
"file": "book/cookbook.html"
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
"next": "layout"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"id": "finish",
|
|
112
|
+
"name": "Finish",
|
|
113
|
+
"description": "All acceptance criteria met. Stamp a short summary and report DONE.",
|
|
114
|
+
"prompt": "Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.",
|
|
115
|
+
"suggestedRole": "developer",
|
|
116
|
+
"terminal": true
|
|
117
|
+
}
|
|
118
|
+
],
|
|
119
|
+
"version": "1.0.1",
|
|
120
|
+
"releasedAt": "2026-08-14T00:00:00Z"
|
|
121
|
+
}
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"title": "Lay Out the Cookbook — tested recipes to heirloom pages",
|
|
4
|
+
"objective": "Measure whether the cookbook-layout craftbook assembles the seeded recipe shelf into a print-ready book: every tested recipe in its chapter with its provenance line, untested recipes listed at the back, family phrasings preserved.",
|
|
5
|
+
"tags": [
|
|
6
|
+
"html-page"
|
|
7
|
+
],
|
|
8
|
+
"prompt": "i think weve got enough tested recipes — can you lay out the cookbok? one per grandchild eventually so make it printable",
|
|
9
|
+
"setup": {
|
|
10
|
+
"projectName": "Van Daalen Family Recipe Book",
|
|
11
|
+
"about": "Family recipe book project for the Van Daalens. The recipe index is workspace/recipes.json with one markdown file per recipe under workspace/recipes; the laid-out book goes under workspace/book.",
|
|
12
|
+
"missionObjectives": "Tested recipes go in with their provenance intact; untested ones are listed for the next round, never silently dropped. Everything is grounded in the shelf — no live services, no real credentials.",
|
|
13
|
+
"files": [
|
|
14
|
+
{
|
|
15
|
+
"path": "recipes.json",
|
|
16
|
+
"content": "{\n \"family\": \"Van Daalen\",\n \"chapters\": [\"Soups & Starters\", \"Mains\", \"Breads\", \"Sweets\"],\n \"recipes\": [\n { \"id\": \"split-pea\", \"title\": \"Oma Trudy's Split Pea Soup\", \"chapter\": \"Soups & Starters\", \"provenance\": \"Oma Trudy's — came over from Groningen in 1954\", \"tested\": true, \"file\": \"recipes/split-pea.md\" },\n { \"id\": \"brown-bread\", \"title\": \"Saturday Brown Bread\", \"chapter\": \"Breads\", \"provenance\": \"Grandpa Wim's — baked every Saturday for thirty years\", \"tested\": true, \"file\": \"recipes/brown-bread.md\" },\n { \"id\": \"pot-pie\", \"title\": \"Aunt Willa's Chicken Pot Pie\", \"chapter\": \"Mains\", \"provenance\": \"Aunt Willa's — the funeral casserole that became a birthday request\", \"tested\": true, \"file\": \"recipes/pot-pie.md\" },\n { \"id\": \"strawberry-cake\", \"title\": \"Midsummer Strawberry Cake\", \"chapter\": \"Sweets\", \"provenance\": \"Mom's — invented the summer the freezer broke\", \"tested\": true, \"file\": \"recipes/strawberry-cake.md\" },\n { \"id\": \"campfire-chili\", \"title\": \"Pa's Campfire Chili\", \"chapter\": \"Mains\", \"provenance\": \"Pa's — written on the inside of a matchbook, translated by Ria\", \"tested\": true, \"file\": \"recipes/campfire-chili.md\" },\n { \"id\": \"lemon-custard\", \"title\": \"Lemon Custard for Sick Days\", \"chapter\": \"Sweets\", \"provenance\": \"Oma Trudy's — the one that fixed every flu since 1962\", \"tested\": true, \"file\": \"recipes/lemon-custard.md\" },\n { \"id\": \"oliebollen\", \"title\": \"The Contested Oliebollen\", \"chapter\": \"Sweets\", \"provenance\": \"disputed between Ria and Aunt Willa — two versions exist\", \"tested\": false, \"file\": \"recipes/oliebollen.md\" },\n { \"id\": \"maple-fudge\", \"title\": \"Maple Walnut Fudge\", \"chapter\": \"Sweets\", \"provenance\": \"from a fair stall in 1998 — nobody has dared it yet\", \"tested\": false, \"file\": \"recipes/maple-fudge.md\" }\n ]\n}\n"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"path": "recipes/split-pea.md",
|
|
20
|
+
"content": "# Oma Trudy's Split Pea Soup\n\nOma Trudy's — came over from Groningen in 1954.\n\n## Ingredients\n- 500 g split peas\n- 1 smoked sausage (the good one, not the budget one — Oma's margin note)\n- 2 leeks, 1 celeriac, 2 carrots\n- a ham hock\n\n## Method\nSoak the peas while you argue about whether soaking is necessary. Simmer everything except the sausage for two hours until 'a spoon stands up in it'. Add the sausage for the last twenty minutes. Better tomorrow than today.\n"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"path": "recipes/brown-bread.md",
|
|
24
|
+
"content": "# Saturday Brown Bread\n\nGrandpa Wim's — baked every Saturday for thirty years.\n\n## Ingredients\n- 400 g wholemeal flour, 100 g rye\n- 7 g yeast, 10 g salt, a knob of butter\n- 350 ml warm water\n\n## Method\nKnead until your arms complain, then five minutes more. Rise under the tea towel with the blue stripe (any towel works; the blue stripe is tradition). Bake at 220 until it sounds hollow when you knock on the bottom.\n"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"path": "recipes/pot-pie.md",
|
|
28
|
+
"content": "# Aunt Willa's Chicken Pot Pie\n\nAunt Willa's — the funeral casserole that became a birthday request.\n\n## Ingredients\n- 1 whole chicken, poached and picked\n- carrots, peas, pearl onions\n- double crust, all butter, no shortcuts\n\n## Method\nMake the gravy from the poaching broth and do not rush it. Fill, lid, crimp with a fork the way Willa did — three presses, turn, three presses. Vent with her initials if you're feeling brave. Bake until deep gold.\n"
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
"path": "recipes/strawberry-cake.md",
|
|
32
|
+
"content": "# Midsummer Strawberry Cake\n\nMom's — invented the summer the freezer broke.\n\n## Ingredients\n- 250 g flour, 200 g sugar, 3 eggs, 200 g butter\n- a full kilo of strawberries, no apologies\n- whipped cream, double what seems sensible\n\n## Method\nBake the sponge, split it while warm. Sugar the berries and let them bleed a little. Assemble taller than is structurally wise. Eat outside or it doesn't count.\n"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"path": "recipes/campfire-chili.md",
|
|
36
|
+
"content": "# Pa's Campfire Chili\n\nPa's — written on the inside of a matchbook, translated by Ria.\n\n## Ingredients\n- 1 kg beef chuck, cut rough\n- two onions, 'more garlic than the recipe says'\n- dried anchos, a bottle of dark beer, a square of dark chocolate\n\n## Method\nBrown the beef in batches and don't crowd the pot — the matchbook underlines this twice. Low fire, three hours, stir when you think of it. The chocolate goes in at the end and you tell nobody.\n"
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"path": "recipes/lemon-custard.md",
|
|
40
|
+
"content": "# Lemon Custard for Sick Days\n\nOma Trudy's — the one that fixed every flu since 1962.\n\n## Ingredients\n- 500 ml whole milk\n- 3 yolks, 80 g sugar, 30 g cornstarch\n- zest of two lemons, juice of one\n\n## Method\nWarm the milk with the zest. Whisk yolks, sugar, and cornstarch, then marry them slowly so nothing scrambles. Thicken on low until it coats the spoon. Serve warm, in the yellow bowl if the patient is under twelve.\n"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"path": "recipes/oliebollen.md",
|
|
44
|
+
"content": "# The Contested Oliebollen\n\nDisputed between Ria and Aunt Willa — two versions exist and neither yields.\n\n## Status\nNot yet tested side by side. The New Year's bake-off will settle it. Both versions are filed with the arbitration notes.\n"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"path": "recipes/maple-fudge.md",
|
|
48
|
+
"content": "# Maple Walnut Fudge\n\nFrom a fair stall in 1998 — nobody has dared it yet.\n\n## Status\nUntested. The card says 'soft-ball stage' with no thermometer number, which is why it has waited twenty-eight years.\n"
|
|
49
|
+
}
|
|
50
|
+
],
|
|
51
|
+
"worker": {
|
|
52
|
+
"name": "Ria",
|
|
53
|
+
"role": "Designer"
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
"mocks": [],
|
|
57
|
+
"success": {
|
|
58
|
+
"summary": "book/cookbook.html is a print-ready book: all six tested recipes in their chapters with provenance lines, the two untested ones listed at the back, family phrasings preserved.",
|
|
59
|
+
"deliverables": [
|
|
60
|
+
{
|
|
61
|
+
"path": "book/cookbook.html",
|
|
62
|
+
"kind": "html-page",
|
|
63
|
+
"minBytes": 8000,
|
|
64
|
+
"checks": [
|
|
65
|
+
{
|
|
66
|
+
"kind": "cssMinBytes",
|
|
67
|
+
"bytes": 650,
|
|
68
|
+
"file": "book/cookbook.html"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"kind": "contains",
|
|
72
|
+
"file": "book/cookbook.html",
|
|
73
|
+
"pattern": "@page|@media\\s+print|page-break|break-after",
|
|
74
|
+
"flags": "i",
|
|
75
|
+
"label": "print CSS"
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"kind": "contains",
|
|
79
|
+
"file": "book/cookbook.html",
|
|
80
|
+
"pattern": "Split Pea",
|
|
81
|
+
"label": "soup chapter recipe present"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"kind": "contains",
|
|
85
|
+
"file": "book/cookbook.html",
|
|
86
|
+
"pattern": "Brown Bread",
|
|
87
|
+
"label": "bread recipe present"
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"kind": "contains",
|
|
91
|
+
"file": "book/cookbook.html",
|
|
92
|
+
"pattern": "Pot Pie",
|
|
93
|
+
"label": "mains recipe present"
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"kind": "contains",
|
|
97
|
+
"file": "book/cookbook.html",
|
|
98
|
+
"pattern": "Strawberry Cake",
|
|
99
|
+
"label": "sweets recipe present"
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"kind": "contains",
|
|
103
|
+
"file": "book/cookbook.html",
|
|
104
|
+
"pattern": "Campfire Chili",
|
|
105
|
+
"label": "second mains recipe present"
|
|
106
|
+
},
|
|
107
|
+
{
|
|
108
|
+
"kind": "contains",
|
|
109
|
+
"file": "book/cookbook.html",
|
|
110
|
+
"pattern": "Lemon Custard",
|
|
111
|
+
"label": "second sweets recipe present"
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"kind": "contains",
|
|
115
|
+
"file": "book/cookbook.html",
|
|
116
|
+
"pattern": "Groningen|Oma Trudy",
|
|
117
|
+
"label": "provenance preserved"
|
|
118
|
+
},
|
|
119
|
+
{
|
|
120
|
+
"kind": "contains",
|
|
121
|
+
"file": "book/cookbook.html",
|
|
122
|
+
"pattern": "still to test|to be tested|untested|not yet tested",
|
|
123
|
+
"flags": "i",
|
|
124
|
+
"label": "untested recipes listed, not dropped"
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
}
|
|
128
|
+
]
|
|
129
|
+
},
|
|
130
|
+
"rubric": {
|
|
131
|
+
"artifact": {
|
|
132
|
+
"path": "book/cookbook.html",
|
|
133
|
+
"kind": "html"
|
|
134
|
+
},
|
|
135
|
+
"axes": [
|
|
136
|
+
{
|
|
137
|
+
"name": "heirloom feel",
|
|
138
|
+
"description": "The book reads like a family object — chapter intros in the family's voice, not food-blog prose."
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"name": "completeness",
|
|
142
|
+
"description": "All six tested recipes appear in their chapters; the two untested ones are listed at the back."
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"name": "typography",
|
|
146
|
+
"description": "Type set for reading at arm's length in a working kitchen; one recipe per printed page."
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"name": "provenance preservation",
|
|
150
|
+
"description": "Every recipe keeps its provenance line and the family's own phrasings survive in the methods."
|
|
151
|
+
}
|
|
152
|
+
]
|
|
153
|
+
},
|
|
154
|
+
"qualityFocus": [
|
|
155
|
+
"inclusion rule honored",
|
|
156
|
+
"provenance intact",
|
|
157
|
+
"print-ready book"
|
|
158
|
+
]
|
|
159
|
+
}
|