@bendyline/gilde 0.1.38 → 0.1.39
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/data/craftbook-templates/a1/a11y-audit/versions/1.1.2/craftbook.json +153 -0
- package/data/craftbook-templates/a1/a11y-audit/versions/1.1.2/test.json +118 -0
- package/data/craftbook-templates/ab/ab-test-readout/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/ab/ab-test-readout/versions/1.0.2/test.json +189 -0
- package/data/craftbook-templates/ac/accessibility-retrofit/versions/1.0.2/craftbook.json +122 -0
- package/data/craftbook-templates/ac/accessibility-retrofit/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/ad/ad-variations/versions/1.0.2/craftbook.json +117 -0
- package/data/craftbook-templates/ad/ad-variations/versions/1.0.2/test.json +111 -0
- package/data/craftbook-templates/al/album-curate/versions/1.0.2/craftbook.json +127 -0
- package/data/craftbook-templates/al/album-curate/versions/1.0.2/test.json +150 -0
- package/data/craftbook-templates/al/alert-rules/versions/1.0.2/craftbook.json +113 -0
- package/data/craftbook-templates/al/alert-rules/versions/1.0.2/test.json +148 -0
- package/data/craftbook-templates/al/alt-text-pass/versions/1.0.2/craftbook.json +154 -0
- package/data/craftbook-templates/al/alt-text-pass/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/an/anniversary-cut/versions/1.0.4/craftbook.json +238 -0
- package/data/craftbook-templates/an/anniversary-cut/versions/1.0.4/test.json +160 -0
- package/data/craftbook-templates/an/annotated-bibliography/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/an/annotated-bibliography/versions/1.0.2/test.json +105 -0
- package/data/craftbook-templates/an/annual-document-review/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/an/annual-document-review/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/an/anomaly-scan/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/an/anomaly-scan/versions/1.0.2/test.json +123 -0
- package/data/craftbook-templates/ap/api-contract-review/versions/1.1.2/craftbook.json +153 -0
- package/data/craftbook-templates/ap/api-contract-review/versions/1.1.2/test.json +118 -0
- package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.2/craftbook.json +170 -0
- package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.2/test.json +139 -0
- package/data/craftbook-templates/au/audio-ad-spot/versions/1.0.2/craftbook.json +141 -0
- package/data/craftbook-templates/au/audio-ad-spot/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/au/audio-highlight-reel/versions/1.0.2/craftbook.json +135 -0
- package/data/craftbook-templates/au/audio-highlight-reel/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.4/craftbook.json +222 -0
- package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.4/test.json +224 -0
- package/data/craftbook-templates/au/auth-flow/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/au/auth-flow/versions/1.0.2/test.json +143 -0
- package/data/craftbook-templates/au/automation-recipe/versions/1.0.2/craftbook.json +176 -0
- package/data/craftbook-templates/au/automation-recipe/versions/1.0.2/test.json +299 -0
- package/data/craftbook-templates/ba/backup-routine/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/ba/backup-routine/versions/1.0.2/test.json +111 -0
- package/data/craftbook-templates/bl/blog-post/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/bl/blog-post/versions/1.0.2/test.json +121 -0
- package/data/craftbook-templates/bo/board-deck/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/bo/board-deck/versions/1.0.2/test.json +103 -0
- package/data/craftbook-templates/bo/board-game-web/versions/1.0.2/craftbook.json +162 -0
- package/data/craftbook-templates/bo/board-game-web/versions/1.0.2/test.json +102 -0
- package/data/craftbook-templates/bo/booking-automation/versions/1.0.2/craftbook.json +170 -0
- package/data/craftbook-templates/bo/booking-automation/versions/1.0.2/test.json +165 -0
- package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.4/craftbook.json +429 -0
- package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.4/test.json +379 -0
- package/data/craftbook-templates/bu/bug-fix-tdd/versions/1.0.3/craftbook.json +176 -0
- package/data/craftbook-templates/bu/bug-fix-tdd/versions/1.0.3/test.json +95 -0
- package/data/craftbook-templates/ca/calendar-brief/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/ca/calendar-brief/versions/1.0.2/test.json +105 -0
- package/data/craftbook-templates/ca/canvas-generative-art/versions/1.0.2/craftbook.json +122 -0
- package/data/craftbook-templates/ca/canvas-generative-art/versions/1.0.2/test.json +109 -0
- package/data/craftbook-templates/ca/case-study/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/ca/case-study/versions/1.0.2/test.json +115 -0
- package/data/craftbook-templates/ca/case-study-writeup/versions/1.0.2/craftbook.json +163 -0
- package/data/craftbook-templates/ca/case-study-writeup/versions/1.0.2/test.json +108 -0
- package/data/craftbook-templates/ch/changelog-cut/versions/1.0.2/craftbook.json +125 -0
- package/data/craftbook-templates/ch/changelog-cut/versions/1.0.2/test.json +109 -0
- package/data/craftbook-templates/ch/changelog-writeup/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/ch/changelog-writeup/versions/1.0.2/test.json +132 -0
- package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.3/craftbook.json +135 -0
- package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.3/test.json +158 -0
- package/data/craftbook-templates/ch/chapter-weave/versions/1.0.2/craftbook.json +86 -0
- package/data/craftbook-templates/ch/chapter-weave/versions/1.0.2/test.json +101 -0
- package/data/craftbook-templates/ch/character-sheet/versions/1.0.2/craftbook.json +94 -0
- package/data/craftbook-templates/ch/character-sheet/versions/1.0.2/test.json +146 -0
- package/data/craftbook-templates/ch/character-turnaround/versions/1.0.2/craftbook.json +133 -0
- package/data/craftbook-templates/ch/character-turnaround/versions/1.0.2/test.json +181 -0
- package/data/craftbook-templates/ch/chart-pack/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/ch/chart-pack/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/ch/chrome-extension/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/ch/chrome-extension/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/ci/ci-pipeline/versions/1.0.2/craftbook.json +144 -0
- package/data/craftbook-templates/ci/ci-pipeline/versions/1.0.2/test.json +165 -0
- package/data/craftbook-templates/ci/citation-audit/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/ci/citation-audit/versions/1.0.2/test.json +152 -0
- package/data/craftbook-templates/cl/cli-tool/versions/1.1.2/craftbook.json +159 -0
- package/data/craftbook-templates/cl/cli-tool/versions/1.1.2/test.json +131 -0
- package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.2/craftbook.json +165 -0
- package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.2/test.json +119 -0
- package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.2/craftbook.json +165 -0
- package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.2/test.json +122 -0
- package/data/craftbook-templates/co/cohort-analysis/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/co/cohort-analysis/versions/1.0.2/test.json +229 -0
- package/data/craftbook-templates/co/company-research-brief/versions/1.0.2/craftbook.json +151 -0
- package/data/craftbook-templates/co/company-research-brief/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/co/comparison-matrix/versions/1.0.2/craftbook.json +165 -0
- package/data/craftbook-templates/co/comparison-matrix/versions/1.0.2/test.json +112 -0
- package/data/craftbook-templates/co/compat-check/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/co/compat-check/versions/1.0.2/test.json +148 -0
- package/data/craftbook-templates/co/competitive-analysis/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/co/competitive-analysis/versions/1.0.2/test.json +119 -0
- package/data/craftbook-templates/co/config-scaffold/versions/1.0.2/craftbook.json +117 -0
- package/data/craftbook-templates/co/config-scaffold/versions/1.0.2/test.json +123 -0
- package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.2/test.json +152 -0
- package/data/craftbook-templates/co/contract-template/versions/1.0.2/craftbook.json +157 -0
- package/data/craftbook-templates/co/contract-template/versions/1.0.2/test.json +105 -0
- package/data/craftbook-templates/co/cookbook-layout/versions/1.0.2/craftbook.json +133 -0
- package/data/craftbook-templates/co/cookbook-layout/versions/1.0.2/test.json +162 -0
- package/data/craftbook-templates/co/copy-review/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/co/copy-review/versions/1.0.2/test.json +105 -0
- package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.2/test.json +159 -0
- package/data/craftbook-templates/co/cover-letter/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/co/cover-letter/versions/1.0.2/test.json +103 -0
- package/data/craftbook-templates/cr/crm-update-batch/versions/1.0.2/craftbook.json +113 -0
- package/data/craftbook-templates/cr/crm-update-batch/versions/1.0.2/test.json +210 -0
- package/data/craftbook-templates/cr/cron-job/versions/1.0.2/craftbook.json +159 -0
- package/data/craftbook-templates/cr/cron-job/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/cr/crossword-forge/versions/1.0.2/craftbook.json +176 -0
- package/data/craftbook-templates/cr/crossword-forge/versions/1.0.2/test.json +138 -0
- package/data/craftbook-templates/cs/csv-transformer/versions/1.2.3/craftbook.json +113 -0
- package/data/craftbook-templates/cs/csv-transformer/versions/1.2.3/test.json +105 -0
- package/data/craftbook-templates/da/dashboard-spec/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/da/dashboard-spec/versions/1.0.2/test.json +117 -0
- package/data/craftbook-templates/da/data-dictionary/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/da/data-dictionary/versions/1.0.2/test.json +104 -0
- package/data/craftbook-templates/da/data-export-migrate/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/da/data-export-migrate/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/da/data-join-merge/versions/1.0.2/craftbook.json +113 -0
- package/data/craftbook-templates/da/data-join-merge/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.3/craftbook.json +160 -0
- package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.3/test.json +165 -0
- package/data/craftbook-templates/da/data-quality-audit/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/da/data-quality-audit/versions/1.0.2/test.json +329 -0
- package/data/craftbook-templates/da/data-to-report/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/da/data-to-report/versions/1.0.2/test.json +98 -0
- package/data/craftbook-templates/da/data-viz-page/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/da/data-viz-page/versions/1.0.2/test.json +120 -0
- package/data/craftbook-templates/da/dataset-clean/versions/1.2.3/craftbook.json +113 -0
- package/data/craftbook-templates/da/dataset-clean/versions/1.2.3/test.json +98 -0
- package/data/craftbook-templates/db/db-index-tuning/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/db/db-index-tuning/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/de/deep-security-review/versions/1.1.2/craftbook.json +223 -0
- package/data/craftbook-templates/de/deep-security-review/versions/1.1.2/test.json +160 -0
- package/data/craftbook-templates/de/dependency-audit/versions/1.1.2/craftbook.json +153 -0
- package/data/craftbook-templates/de/dependency-audit/versions/1.1.2/test.json +111 -0
- package/data/craftbook-templates/de/deploy-checklist/versions/1.0.2/craftbook.json +171 -0
- package/data/craftbook-templates/de/deploy-checklist/versions/1.0.2/test.json +168 -0
- package/data/craftbook-templates/de/design-review/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/de/design-review/versions/1.0.2/test.json +121 -0
- package/data/craftbook-templates/de/design-system-consultation/versions/2.0.4/craftbook.json +443 -0
- package/data/craftbook-templates/de/design-system-consultation/versions/2.0.4/test.json +204 -0
- package/data/craftbook-templates/di/diagram-from-text/versions/1.0.2/craftbook.json +121 -0
- package/data/craftbook-templates/di/diagram-from-text/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/di/digest-from-feeds/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/di/digest-from-feeds/versions/1.0.2/test.json +165 -0
- package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/do/doc-rewrite/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/do/doc-rewrite/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/do/dockerize-app/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/do/dockerize-app/versions/1.0.2/test.json +95 -0
- package/data/craftbook-templates/do/docs-site/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/do/docs-site/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.2/craftbook.json +165 -0
- package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.2/test.json +135 -0
- package/data/craftbook-templates/dr/drive-wrap-up/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/dr/drive-wrap-up/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/du/due-diligence-brief/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/du/due-diligence-brief/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/eb/ebook-compile/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/eb/ebook-compile/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/ed/edit-notes/versions/1.0.2/craftbook.json +188 -0
- package/data/craftbook-templates/ed/edit-notes/versions/1.0.2/test.json +149 -0
- package/data/craftbook-templates/em/email-sequence/versions/1.0.2/craftbook.json +154 -0
- package/data/craftbook-templates/em/email-sequence/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/em/email-template/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/em/email-template/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.4/craftbook.json +415 -0
- package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.4/test.json +194 -0
- package/data/craftbook-templates/ep/episode-plan/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/ep/episode-plan/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/es/escalation-playbook/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/es/escalation-playbook/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/ev/evidence-brief/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/ev/evidence-brief/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/ex/executive-level-review/versions/2.0.4/craftbook.json +445 -0
- package/data/craftbook-templates/ex/executive-level-review/versions/2.0.4/test.json +139 -0
- package/data/craftbook-templates/ex/expense-categorize/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/ex/expense-categorize/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/fa/fact-check/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/fa/fact-check/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/fa/family-story-chapter/versions/1.0.2/craftbook.json +86 -0
- package/data/craftbook-templates/fa/family-story-chapter/versions/1.0.2/test.json +111 -0
- package/data/craftbook-templates/fa/faq-from-docs/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/fa/faq-from-docs/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/fa/favicon-set/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/fa/favicon-set/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/fe/feature-flag-release/versions/1.0.2/craftbook.json +171 -0
- package/data/craftbook-templates/fe/feature-flag-release/versions/1.0.2/test.json +165 -0
- package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.0.2/test.json +165 -0
- package/data/craftbook-templates/fe/feedback-widget/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/fe/feedback-widget/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/fo/folder-to-audio/versions/1.0.2/craftbook.json +115 -0
- package/data/craftbook-templates/fo/folder-to-audio/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/fo/forecast-model/versions/1.0.2/craftbook.json +117 -0
- package/data/craftbook-templates/fo/forecast-model/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.2/test.json +165 -0
- package/data/craftbook-templates/fo/form-wizard/versions/1.0.2/craftbook.json +122 -0
- package/data/craftbook-templates/fo/form-wizard/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/ga/game-with-screens/versions/1.0.2/craftbook.json +180 -0
- package/data/craftbook-templates/ga/game-with-screens/versions/1.0.2/test.json +102 -0
- package/data/craftbook-templates/gl/glossary-build/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/gl/glossary-build/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/gr/graphql-api/versions/1.0.3/craftbook.json +158 -0
- package/data/craftbook-templates/gr/graphql-api/versions/1.0.3/test.json +95 -0
- package/data/craftbook-templates/gr/grpc-service/versions/1.0.2/craftbook.json +159 -0
- package/data/craftbook-templates/gr/grpc-service/versions/1.0.2/test.json +95 -0
- package/data/craftbook-templates/ha/handbook-section/versions/1.0.2/craftbook.json +157 -0
- package/data/craftbook-templates/ha/handbook-section/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/he/hero-image/versions/1.0.2/craftbook.json +166 -0
- package/data/craftbook-templates/he/hero-image/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.2/craftbook.json +214 -0
- package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.2/test.json +131 -0
- package/data/craftbook-templates/ho/hotfix-flow/versions/1.0.2/craftbook.json +194 -0
- package/data/craftbook-templates/ho/hotfix-flow/versions/1.0.2/test.json +95 -0
- package/data/craftbook-templates/ht/html-puzzle-game/versions/1.0.2/craftbook.json +162 -0
- package/data/craftbook-templates/ht/html-puzzle-game/versions/1.0.2/test.json +102 -0
- package/data/craftbook-templates/ic/icon-pack/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/ic/icon-pack/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/id/idea-office-hours/versions/2.0.4/craftbook.json +409 -0
- package/data/craftbook-templates/id/idea-office-hours/versions/2.0.4/test.json +144 -0
- package/data/craftbook-templates/id/idle-clicker-game/versions/1.0.2/craftbook.json +162 -0
- package/data/craftbook-templates/id/idle-clicker-game/versions/1.0.2/test.json +102 -0
- package/data/craftbook-templates/im/image-batch-edit/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/im/image-batch-edit/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/im/image-dedup-cluster/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/im/image-dedup-cluster/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/im/image-palette-extract/versions/1.0.2/craftbook.json +121 -0
- package/data/craftbook-templates/im/image-palette-extract/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/im/image-seo-rename/versions/1.0.2/craftbook.json +117 -0
- package/data/craftbook-templates/im/image-seo-rename/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/in/inbox-triage/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/in/inbox-triage/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/in/incident-comms-templates/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/in/incident-comms-templates/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/in/incident-postmortem/versions/1.0.2/craftbook.json +170 -0
- package/data/craftbook-templates/in/incident-postmortem/versions/1.0.2/test.json +112 -0
- package/data/craftbook-templates/in/insurance-inventory/versions/1.0.2/craftbook.json +165 -0
- package/data/craftbook-templates/in/insurance-inventory/versions/1.0.2/test.json +124 -0
- package/data/craftbook-templates/in/interactive-quiz/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/in/interactive-quiz/versions/1.0.2/test.json +102 -0
- package/data/craftbook-templates/in/investigate-root-cause/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/in/investigate-root-cause/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/in/invitation-design/versions/1.0.2/craftbook.json +140 -0
- package/data/craftbook-templates/in/invitation-design/versions/1.0.2/test.json +124 -0
- package/data/craftbook-templates/in/invoice-generator/versions/1.0.2/craftbook.json +122 -0
- package/data/craftbook-templates/in/invoice-generator/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/in/invoice-run/versions/1.1.2/craftbook.json +211 -0
- package/data/craftbook-templates/in/invoice-run/versions/1.1.2/test.json +143 -0
- package/data/craftbook-templates/index.json +1 -1
- package/data/craftbook-templates/it/item-intake/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/it/item-intake/versions/1.0.2/test.json +148 -0
- package/data/craftbook-templates/ju/juice-pass/versions/1.0.2/craftbook.json +128 -0
- package/data/craftbook-templates/ju/juice-pass/versions/1.0.2/test.json +119 -0
- package/data/craftbook-templates/kn/knowledge-base-article/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/kn/knowledge-base-article/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/kp/kpi-scorecard/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/kp/kpi-scorecard/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/la/landing-copy/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/la/landing-copy/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/la/landing-page/versions/1.0.2/craftbook.json +196 -0
- package/data/craftbook-templates/la/landing-page/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/le/lead-enrichment/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/le/lead-enrichment/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/li/library-package/versions/1.0.2/craftbook.json +159 -0
- package/data/craftbook-templates/li/library-package/versions/1.0.2/test.json +95 -0
- package/data/craftbook-templates/li/literature-review/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/li/literature-review/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/li/live-browser-qa/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/li/live-browser-qa/versions/1.0.2/test.json +165 -0
- package/data/craftbook-templates/lo/localize-content/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/lo/localize-content/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/lo/logo-set/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/lo/logo-set/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/ma/market-scan/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/ma/market-scan/versions/1.0.2/test.json +213 -0
- package/data/craftbook-templates/me/meeting-minutes/versions/1.0.2/craftbook.json +120 -0
- package/data/craftbook-templates/me/meeting-minutes/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.2/test.json +187 -0
- package/data/craftbook-templates/me/meeting-summary-audio/versions/1.0.2/craftbook.json +121 -0
- package/data/craftbook-templates/me/meeting-summary-audio/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.2/craftbook.json +127 -0
- package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.2/test.json +115 -0
- package/data/craftbook-templates/me/message-queue-consumer/versions/1.0.2/craftbook.json +159 -0
- package/data/craftbook-templates/me/message-queue-consumer/versions/1.0.2/test.json +95 -0
- package/data/craftbook-templates/mi/micro-game-jam/versions/1.0.2/craftbook.json +129 -0
- package/data/craftbook-templates/mi/micro-game-jam/versions/1.0.2/test.json +102 -0
- package/data/craftbook-templates/mo/mock-interview/versions/1.0.2/craftbook.json +151 -0
- package/data/craftbook-templates/mo/mock-interview/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/mo/mod-scaffold/versions/1.0.2/craftbook.json +168 -0
- package/data/craftbook-templates/mo/mod-scaffold/versions/1.0.2/test.json +136 -0
- package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.2/craftbook.json +170 -0
- package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.2/test.json +200 -0
- package/data/craftbook-templates/mo/month-close/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/mo/month-close/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/mo/monthly-recording-review/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/mo/monthly-recording-review/versions/1.0.2/test.json +120 -0
- package/data/craftbook-templates/mo/moodboard/versions/1.0.2/craftbook.json +121 -0
- package/data/craftbook-templates/mo/moodboard/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/mo/morning-brief/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/mo/morning-brief/versions/1.0.2/test.json +228 -0
- package/data/craftbook-templates/mo/morning-report/versions/1.0.2/craftbook.json +164 -0
- package/data/craftbook-templates/mo/morning-report/versions/1.0.2/test.json +253 -0
- package/data/craftbook-templates/mu/music-metadata-tag/versions/1.0.2/craftbook.json +113 -0
- package/data/craftbook-templates/mu/music-metadata-tag/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.2/craftbook.json +193 -0
- package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.2/test.json +89 -0
- package/data/craftbook-templates/ne/newsletter-issue/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/ne/newsletter-issue/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/no/notification-router/versions/1.0.2/craftbook.json +170 -0
- package/data/craftbook-templates/no/notification-router/versions/1.0.2/test.json +165 -0
- package/data/craftbook-templates/oc/ocr-extract/versions/1.0.2/craftbook.json +149 -0
- package/data/craftbook-templates/oc/ocr-extract/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/of/offer-compare/versions/1.0.2/craftbook.json +118 -0
- package/data/craftbook-templates/of/offer-compare/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/on/onboarding-checklist/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/on/onboarding-checklist/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/on/onboarding-flow/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/on/onboarding-flow/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/on/oncall-handoff/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/on/oncall-handoff/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/on/one-pager/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/on/one-pager/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/op/ops-runbook/versions/1.0.2/craftbook.json +124 -0
- package/data/craftbook-templates/op/ops-runbook/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/pa/page-spread/versions/1.0.2/craftbook.json +94 -0
- package/data/craftbook-templates/pa/page-spread/versions/1.0.2/test.json +135 -0
- package/data/craftbook-templates/pa/parser-grammar/versions/1.0.2/craftbook.json +159 -0
- package/data/craftbook-templates/pa/parser-grammar/versions/1.0.2/test.json +95 -0
- package/data/craftbook-templates/pe/perf-audit/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/pe/perf-audit/versions/1.0.2/test.json +165 -0
- package/data/craftbook-templates/pe/perf-optimization/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/pe/perf-optimization/versions/1.0.2/test.json +95 -0
- package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.2/test.json +125 -0
- package/data/craftbook-templates/ph/photo-cull/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/ph/photo-cull/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/ph/physics-toy/versions/1.0.2/craftbook.json +122 -0
- package/data/craftbook-templates/ph/physics-toy/versions/1.0.2/test.json +102 -0
- package/data/craftbook-templates/pi/pitch-deck/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/pi/pitch-deck/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/pl/playtest-report/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/pl/playtest-report/versions/1.0.2/test.json +114 -0
- package/data/craftbook-templates/po/podcast-chaptering/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/po/podcast-chaptering/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/po/portfolio-site/versions/1.0.2/craftbook.json +163 -0
- package/data/craftbook-templates/po/portfolio-site/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.4/craftbook.json +397 -0
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.4/test.json +242 -0
- package/data/craftbook-templates/pr/pr-security-review/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/pr/pr-security-review/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/pr/practice-exam/versions/1.0.2/craftbook.json +171 -0
- package/data/craftbook-templates/pr/practice-exam/versions/1.0.2/test.json +120 -0
- package/data/craftbook-templates/pr/practice-session/versions/1.0.2/craftbook.json +127 -0
- package/data/craftbook-templates/pr/practice-session/versions/1.0.2/test.json +117 -0
- package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/pr/press-release/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/pr/press-release/versions/1.0.2/test.json +359 -0
- package/data/craftbook-templates/pr/price-tracker/versions/1.0.2/craftbook.json +121 -0
- package/data/craftbook-templates/pr/price-tracker/versions/1.0.2/test.json +153 -0
- package/data/craftbook-templates/pr/pricing-page/versions/1.0.2/craftbook.json +196 -0
- package/data/craftbook-templates/pr/pricing-page/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/pr/product-descriptions/versions/1.0.2/craftbook.json +117 -0
- package/data/craftbook-templates/pr/product-descriptions/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/pr/proposal-sow/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/pr/proposal-sow/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/pu/pull-request-review/versions/1.7.2/craftbook.json +279 -0
- package/data/craftbook-templates/pu/pull-request-review/versions/1.7.2/test.json +144 -0
- package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.2/craftbook.json +133 -0
- package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.2/test.json +126 -0
- package/data/craftbook-templates/pw/pwa-offline/versions/1.0.2/craftbook.json +167 -0
- package/data/craftbook-templates/pw/pwa-offline/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.2/test.json +116 -0
- package/data/craftbook-templates/re/reading-list/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/re/reading-list/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/re/receipt-intake/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/re/receipt-intake/versions/1.0.2/test.json +152 -0
- package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/re/reception-report/versions/1.0.1/craftbook.json +177 -0
- package/data/craftbook-templates/re/reception-report/versions/1.0.1/test.json +169 -0
- package/data/craftbook-templates/re/recipe-capture/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/re/recipe-capture/versions/1.0.2/test.json +131 -0
- package/data/craftbook-templates/re/record-a-relative/versions/1.0.2/craftbook.json +127 -0
- package/data/craftbook-templates/re/record-a-relative/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/re/refactor-module/versions/1.0.3/craftbook.json +160 -0
- package/data/craftbook-templates/re/refactor-module/versions/1.0.3/test.json +95 -0
- package/data/craftbook-templates/re/regex-builder/versions/1.0.2/craftbook.json +159 -0
- package/data/craftbook-templates/re/regex-builder/versions/1.0.2/test.json +95 -0
- package/data/craftbook-templates/re/release-announcement/versions/1.0.2/craftbook.json +171 -0
- package/data/craftbook-templates/re/release-announcement/versions/1.0.2/test.json +205 -0
- package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.2/craftbook.json +226 -0
- package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.2/test.json +141 -0
- package/data/craftbook-templates/re/release-notes/versions/1.0.2/craftbook.json +171 -0
- package/data/craftbook-templates/re/release-notes/versions/1.0.2/test.json +114 -0
- package/data/craftbook-templates/re/release-pipeline-ci/versions/1.0.2/craftbook.json +159 -0
- package/data/craftbook-templates/re/release-pipeline-ci/versions/1.0.2/test.json +165 -0
- package/data/craftbook-templates/re/release-readiness-review/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/re/release-readiness-review/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/re/reliability-review/versions/1.0.2/craftbook.json +165 -0
- package/data/craftbook-templates/re/reliability-review/versions/1.0.2/test.json +115 -0
- package/data/craftbook-templates/re/report-pdf/versions/1.1.2/craftbook.json +185 -0
- package/data/craftbook-templates/re/report-pdf/versions/1.1.2/test.json +101 -0
- package/data/craftbook-templates/re/research-report/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/re/research-report/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/re/research-to-document/versions/1.2.2/craftbook.json +228 -0
- package/data/craftbook-templates/re/research-to-document/versions/1.2.2/test.json +243 -0
- package/data/craftbook-templates/re/rest-api/versions/1.0.3/craftbook.json +159 -0
- package/data/craftbook-templates/re/rest-api/versions/1.0.3/test.json +390 -0
- package/data/craftbook-templates/re/resume-cv/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/re/resume-cv/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/ro/rollback-plan/versions/1.0.2/craftbook.json +171 -0
- package/data/craftbook-templates/ro/rollback-plan/versions/1.0.2/test.json +165 -0
- package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.4/craftbook.json +425 -0
- package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.4/test.json +157 -0
- package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.3/craftbook.json +179 -0
- package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.3/test.json +140 -0
- package/data/craftbook-templates/ru/runbook/versions/1.0.2/craftbook.json +157 -0
- package/data/craftbook-templates/ru/runbook/versions/1.0.2/test.json +121 -0
- package/data/craftbook-templates/sc/schema-migration/versions/1.0.2/craftbook.json +156 -0
- package/data/craftbook-templates/sc/schema-migration/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.3/craftbook.json +152 -0
- package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.3/test.json +165 -0
- package/data/craftbook-templates/sc/script-automation/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/sc/script-automation/versions/1.0.2/test.json +165 -0
- package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.3/craftbook.json +159 -0
- package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.3/test.json +93 -0
- package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/se/security-architecture-review/versions/2.0.4/craftbook.json +452 -0
- package/data/craftbook-templates/se/security-architecture-review/versions/2.0.4/test.json +157 -0
- package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.2/craftbook.json +117 -0
- package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/so/social-digest/versions/1.0.1/craftbook.json +140 -0
- package/data/craftbook-templates/so/social-digest/versions/1.0.1/test.json +169 -0
- package/data/craftbook-templates/so/social-thread/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/so/social-thread/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/so/source-quality-audit/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/so/source-quality-audit/versions/1.0.2/test.json +161 -0
- package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/sp/spec-authoring/versions/2.0.4/craftbook.json +448 -0
- package/data/craftbook-templates/sp/spec-authoring/versions/2.0.4/test.json +165 -0
- package/data/craftbook-templates/sp/spec-doc/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/sp/spec-doc/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.2/craftbook.json +121 -0
- package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.2/test.json +163 -0
- package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.2/craftbook.json +149 -0
- package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/sq/sql-analysis/versions/1.0.2/craftbook.json +121 -0
- package/data/craftbook-templates/sq/sql-analysis/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/st/standup-summary/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/st/standup-summary/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/st/state-machine/versions/1.0.2/craftbook.json +159 -0
- package/data/craftbook-templates/st/state-machine/versions/1.0.2/test.json +95 -0
- package/data/craftbook-templates/st/status-report/versions/1.0.2/craftbook.json +158 -0
- package/data/craftbook-templates/st/status-report/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/su/subscription-audit/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/su/subscription-audit/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/su/subtitle-generator/versions/1.0.2/craftbook.json +140 -0
- package/data/craftbook-templates/su/subtitle-generator/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/su/summarize-long/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/su/summarize-long/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/su/survey-analysis/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/su/survey-analysis/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/sv/svg-animation/versions/1.0.2/craftbook.json +122 -0
- package/data/craftbook-templates/sv/svg-animation/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/ta/tailor-resume/versions/1.0.2/craftbook.json +126 -0
- package/data/craftbook-templates/ta/tailor-resume/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/te/technical-documentation/versions/2.0.4/craftbook.json +420 -0
- package/data/craftbook-templates/te/technical-documentation/versions/2.0.4/test.json +177 -0
- package/data/craftbook-templates/te/test-coverage-review/versions/1.1.2/craftbook.json +153 -0
- package/data/craftbook-templates/te/test-coverage-review/versions/1.1.2/test.json +116 -0
- package/data/craftbook-templates/te/test-suite-backfill/versions/1.0.2/craftbook.json +132 -0
- package/data/craftbook-templates/te/test-suite-backfill/versions/1.0.2/test.json +95 -0
- package/data/craftbook-templates/th/thank-you-batch/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/th/thank-you-batch/versions/1.0.2/test.json +144 -0
- package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.2/test.json +145 -0
- package/data/craftbook-templates/th/threat-model/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/th/threat-model/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.2/craftbook.json +115 -0
- package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/ti/tileset-batch/versions/1.0.2/craftbook.json +172 -0
- package/data/craftbook-templates/ti/tileset-batch/versions/1.0.2/test.json +162 -0
- package/data/craftbook-templates/to/tone-rewrite/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/to/tone-rewrite/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/to/topic-explainer/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/to/topic-explainer/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.2/craftbook.json +127 -0
- package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.2/test.json +101 -0
- package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/tr/transcribe-index/versions/1.0.2/craftbook.json +183 -0
- package/data/craftbook-templates/tr/transcribe-index/versions/1.0.2/test.json +154 -0
- package/data/craftbook-templates/ty/type-safety-pass/versions/1.0.2/craftbook.json +160 -0
- package/data/craftbook-templates/ty/type-safety-pass/versions/1.0.2/test.json +95 -0
- package/data/craftbook-templates/ve/version-bump/versions/1.0.2/craftbook.json +167 -0
- package/data/craftbook-templates/ve/version-bump/versions/1.0.2/test.json +95 -0
- package/data/craftbook-templates/vi/video-storyboard/versions/1.0.2/craftbook.json +121 -0
- package/data/craftbook-templates/vi/video-storyboard/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/vi/visit-prep/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/vi/visit-prep/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/vo/voiceover-script/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/vo/voiceover-script/versions/1.0.2/test.json +106 -0
- package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.2/craftbook.json +166 -0
- package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.2/test.json +127 -0
- package/data/craftbook-templates/we/web-app-crud/versions/1.0.2/craftbook.json +155 -0
- package/data/craftbook-templates/we/web-app-crud/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/we/web-component/versions/1.0.2/craftbook.json +122 -0
- package/data/craftbook-templates/we/web-component/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/we/webhook-handler/versions/1.0.2/craftbook.json +159 -0
- package/data/craftbook-templates/we/webhook-handler/versions/1.0.2/test.json +165 -0
- package/data/craftbook-templates/we/week-plan/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/we/week-plan/versions/1.0.2/test.json +258 -0
- package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.2/test.json +100 -0
- package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.2/craftbook.json +118 -0
- package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.2/test.json +107 -0
- package/data/craftbook-templates/we/weekly-review/versions/1.0.2/craftbook.json +119 -0
- package/data/craftbook-templates/we/weekly-review/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.2/craftbook.json +152 -0
- package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.2/test.json +141 -0
- package/data/craftbook-templates/wh/whitepaper/versions/1.0.2/craftbook.json +153 -0
- package/data/craftbook-templates/wh/whitepaper/versions/1.0.2/test.json +113 -0
- package/data/craftbook-templates/ye/year-in-review/versions/1.0.2/craftbook.json +127 -0
- package/data/craftbook-templates/ye/year-in-review/versions/1.0.2/test.json +148 -0
- package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.2/craftbook.json +146 -0
- package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.2/test.json +106 -0
- package/package.json +1 -1
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "hero-image",
|
|
3
|
+
"name": "Marketing Hero Image",
|
|
4
|
+
"description": "Create a single high-impact marketing hero image from a brief and place it into a working hero section. Lock the brief FIRST — aspect ratio, subject, mood, palette, focal point, and crucially the safe zone where headline and CTA text will overlay — because a beautiful hero that has no room for copy (or whose focal point sits under the button) is useless. Then generate the image to the brief and place it behind real overlaid text to prove it works. Covers hero banners, marketing imagery, landing-page art, website headers, and key visuals.\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. Hero brief (visual-designer) — lock ratio, subject, mood, palette, focal point, text safe-zone → gated on artifact `{{workPath}}/brief.md` (markdown-notes)\n2. Generate the hero (image-generator) — render the hero image to the brief → gated on `assets` (image-set)\n3. Place in a hero section (developer) — build index.html with the hero behind real overlaid text → gated on `index.html` (html-marketing-site)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n",
|
|
5
|
+
"entryStepId": "brief",
|
|
6
|
+
"triggers": [
|
|
7
|
+
"make a hero image",
|
|
8
|
+
"marketing banner",
|
|
9
|
+
"landing page hero",
|
|
10
|
+
"website header image",
|
|
11
|
+
"key visual"
|
|
12
|
+
],
|
|
13
|
+
"steps": [
|
|
14
|
+
{
|
|
15
|
+
"id": "brief",
|
|
16
|
+
"name": "Hero brief",
|
|
17
|
+
"description": "lock ratio, subject, mood, palette, focal point, text safe-zone",
|
|
18
|
+
"prompt": "1) Decide the aspect ratio and target use (e.g. 16:9 full-bleed web hero). 2) Lock the subject and scene, the mood/style, and the palette (hex) so the image will harmonize with the brand. 3) Define the FOCAL POINT and, critically, the TEXT SAFE ZONE — which third of the frame stays low-contrast/empty so an overlaid headline + CTA remains readable. 4) Note the headline and CTA copy that will sit on it (even placeholder) so placement is concrete. 5) Write an acceptance-criteria checklist: 'aspect ratio is <X>', 'focal point is off the text safe zone', 'palette matches <hex>', 'overlaid headline + CTA are readable against the image', 'image is delivered at usable resolution'. 6) Record brief + checklist via write_task_note AND to {{workPath}}/brief.md. No image yet.\n\nThe deliverable `{{workPath}}/brief.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": "visual-designer",
|
|
20
|
+
"advanceWhen": {
|
|
21
|
+
"file": "{{workPath}}/brief.md",
|
|
22
|
+
"minBytes": 1,
|
|
23
|
+
"sniff": "nonempty",
|
|
24
|
+
"artifact": true
|
|
25
|
+
},
|
|
26
|
+
"gate": {
|
|
27
|
+
"at": "completion",
|
|
28
|
+
"checks": [
|
|
29
|
+
{
|
|
30
|
+
"kind": "minBytes",
|
|
31
|
+
"file": "{{workPath}}/brief.md",
|
|
32
|
+
"bytes": 120,
|
|
33
|
+
"artifact": true
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"kind": "sniff",
|
|
37
|
+
"file": "{{workPath}}/brief.md",
|
|
38
|
+
"sniff": "nonempty",
|
|
39
|
+
"artifact": true
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"onReject": "brief",
|
|
43
|
+
"maxAttempts": 3
|
|
44
|
+
},
|
|
45
|
+
"next": "generate"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "generate",
|
|
49
|
+
"name": "Generate the hero",
|
|
50
|
+
"description": "render the hero image to the brief",
|
|
51
|
+
"prompt": "1) Read brief.md. 2) Using the image-generation capability (or a tasteful CSS/SVG composition if no image model is available), produce the hero at the locked aspect ratio and palette. 3) Compose so the focal point lands OUTSIDE the declared text safe zone and that zone stays calm enough for overlaid copy. 4) Match the mood and avoid clutter near where text goes. 5) Save it to assets/ (e.g. assets/hero.png or hero.svg) at usable resolution. 6) Generate at least one alternate framing if quick, so placement has options. Good looks like: a striking image with obvious clear space for the headline.",
|
|
52
|
+
"suggestedRole": "image-generator",
|
|
53
|
+
"advanceWhen": {
|
|
54
|
+
"file": "assets",
|
|
55
|
+
"minBytes": 1,
|
|
56
|
+
"sniff": "nonempty"
|
|
57
|
+
},
|
|
58
|
+
"gate": {
|
|
59
|
+
"at": "completion",
|
|
60
|
+
"checks": [
|
|
61
|
+
{
|
|
62
|
+
"kind": "fileCount",
|
|
63
|
+
"ext": [
|
|
64
|
+
"png",
|
|
65
|
+
"jpg",
|
|
66
|
+
"jpeg",
|
|
67
|
+
"svg",
|
|
68
|
+
"webp"
|
|
69
|
+
],
|
|
70
|
+
"min": 3,
|
|
71
|
+
"dir": "assets"
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"onReject": "generate",
|
|
75
|
+
"maxAttempts": 3
|
|
76
|
+
},
|
|
77
|
+
"next": "place"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"id": "place",
|
|
81
|
+
"name": "Place in a hero section",
|
|
82
|
+
"description": "build index.html with the hero behind real overlaid text",
|
|
83
|
+
"prompt": "1) Build a single index.html hero section that uses the generated image as a full-bleed background (object-fit: cover or background-size: cover) at the locked aspect ratio. 2) Overlay the real headline and CTA button positioned within the safe zone, with a subtle scrim/gradient ONLY if needed for contrast. 3) Make it responsive — the focal point must survive a mobile crop. 4) Reference the real assets/ file (relative path). 5) On a loop-back, fix only named gaps (unreadable text, focal point clipped, wrong ratio). 6) write_task_note the page path and image used. Good looks like: a hero you could ship, with crisp, readable copy over the art.",
|
|
84
|
+
"suggestedRole": "developer",
|
|
85
|
+
"consumes": [
|
|
86
|
+
{
|
|
87
|
+
"file": "assets"
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"advanceWhen": {
|
|
91
|
+
"file": "index.html",
|
|
92
|
+
"minBytes": 1,
|
|
93
|
+
"sniff": "html-complete"
|
|
94
|
+
},
|
|
95
|
+
"gate": {
|
|
96
|
+
"at": "completion",
|
|
97
|
+
"checks": [
|
|
98
|
+
{
|
|
99
|
+
"kind": "minBytes",
|
|
100
|
+
"file": "index.html",
|
|
101
|
+
"bytes": 1200
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"kind": "htmlLint",
|
|
105
|
+
"file": "index.html"
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
"scripts": [
|
|
109
|
+
{
|
|
110
|
+
"name": "checkHtmlComplete",
|
|
111
|
+
"scope": "standard",
|
|
112
|
+
"inputs": {
|
|
113
|
+
"file": "index.html"
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"name": "checkCssMinBytes",
|
|
118
|
+
"scope": "standard",
|
|
119
|
+
"inputs": {
|
|
120
|
+
"file": "index.html",
|
|
121
|
+
"minBytes": 600
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
],
|
|
125
|
+
"onReject": "place",
|
|
126
|
+
"maxAttempts": 4
|
|
127
|
+
},
|
|
128
|
+
"next": "evaluate"
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"id": "evaluate",
|
|
132
|
+
"name": "Evaluate",
|
|
133
|
+
"description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
|
|
134
|
+
"prompt": "1) Confirm assets/ contains the hero image (PASS/FAIL). 2) Open index.html and verify the image renders full-bleed at the locked aspect ratio. 3) The decisive check: is the overlaid headline + CTA clearly READABLE against the image and is the focal point clear of the text (PASS/FAIL)? 4) Resize to a narrow viewport — does it survive the mobile crop? 5) Confirm the palette matches the brief. 6) Write PASS/FAIL per criterion. Unreadable/clashing text → loop back to place; bad image/focal point → note it for generate.\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: \"place\" })` 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.",
|
|
135
|
+
"suggestedRole": "reviewer",
|
|
136
|
+
"consumes": [
|
|
137
|
+
{
|
|
138
|
+
"file": "index.html"
|
|
139
|
+
}
|
|
140
|
+
],
|
|
141
|
+
"next": "place"
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
"id": "finish",
|
|
145
|
+
"name": "Finish",
|
|
146
|
+
"description": "All acceptance criteria met. Stamp a short summary and report DONE.",
|
|
147
|
+
"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.",
|
|
148
|
+
"suggestedRole": "developer",
|
|
149
|
+
"terminal": true
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
"version": "1.0.2",
|
|
153
|
+
"releasedAt": "2026-08-21T00:00:00Z",
|
|
154
|
+
"paramSchema": {
|
|
155
|
+
"type": "object",
|
|
156
|
+
"properties": {
|
|
157
|
+
"workPath": {
|
|
158
|
+
"type": "string",
|
|
159
|
+
"title": "Working folder",
|
|
160
|
+
"description": "Per-task working folder in the artifacts drawer. Defaults to this task's own folder so runs never collide; override with a stable name when you deliberately want runs to share files.",
|
|
161
|
+
"default": "{{task.dir}}"
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
"minGezelVersion": "1.26233"
|
|
166
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"title": "Marketing Hero Image smoke eval",
|
|
4
|
+
"objective": "Self-contained smoke eval for the Marketing Hero Image craftbook using the media generic harness.",
|
|
5
|
+
"tags": [
|
|
6
|
+
"media"
|
|
7
|
+
],
|
|
8
|
+
"prompt": "Our media files are all listd in source/media-index.csv. Can you put together the production plan for them as media-plan.json?",
|
|
9
|
+
"setup": {
|
|
10
|
+
"projectName": "Marketing Hero Image Eval",
|
|
11
|
+
"about": "Self-contained eval project for hero-image. Seeded inputs are under workspace/source or workspace/fixtures; final deliverable is workspace/media-plan.json.",
|
|
12
|
+
"missionObjectives": "Use the Marketing Hero Image craftbook/template, read the seeded local fixtures, and write media-plan.json without network calls, real credentials, or live services.",
|
|
13
|
+
"files": [
|
|
14
|
+
{
|
|
15
|
+
"path": "source/brief.md",
|
|
16
|
+
"content": "# Marketing Hero Image Eval Brief\n\nClient: Boreal Desk, a home-office accessories company.\nAudience: operations leads who need an artifact they can use this week.\n\nFixed source facts for grounding:\n- The returns desk pilot covered 18 SKUs.\n- Median first response improved from 18 hours to 6 hours.\n- Preventable refund leakage fell from 14.2% to 8.9%.\n- The top unresolved complaint is status silence after photo submission.\n- Required next actions are automated status emails, barcode-exception training, and a weekly Finance exception export.\n\nUse these facts when the task asks for prose, analysis, copy, UI content, or test data. Do not use live web services, real credentials, or current outside data.\n\nCraftbook under test: hero-image - Marketing Hero Image.\n"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"path": "source/media-index.csv",
|
|
20
|
+
"content": "filename,type,duration_or_size,notes\npilot-interview.wav,audio,00:02:15,mentions response time and status silence\nreturns-desk.png,image,1600x900,shows intake form and photo evidence step\nlaunch-clip.mp4,video,00:01:05,shows barcode exception handling\n"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"worker": {
|
|
24
|
+
"name": "Jules",
|
|
25
|
+
"role": "Producer"
|
|
26
|
+
},
|
|
27
|
+
"craftbookParams": {
|
|
28
|
+
"workPath": "tasks/eval"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"mocks": [],
|
|
32
|
+
"success": {
|
|
33
|
+
"summary": "media-plan.json is a valid JSON media-production manifest grounded in seeded fixture metadata.",
|
|
34
|
+
"deliverables": [
|
|
35
|
+
{
|
|
36
|
+
"path": "media-plan.json",
|
|
37
|
+
"kind": "json",
|
|
38
|
+
"minBytes": 700,
|
|
39
|
+
"checks": [
|
|
40
|
+
{
|
|
41
|
+
"kind": "sniff",
|
|
42
|
+
"file": "media-plan.json",
|
|
43
|
+
"sniff": "json-valid"
|
|
44
|
+
},
|
|
45
|
+
{
|
|
46
|
+
"kind": "contains",
|
|
47
|
+
"file": "media-plan.json",
|
|
48
|
+
"pattern": "pilot-interview\\.wav|returns-desk\\.png|launch-clip\\.mp4",
|
|
49
|
+
"flags": "i"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"kind": "contains",
|
|
53
|
+
"file": "media-plan.json",
|
|
54
|
+
"pattern": "outputs|assets|steps|cues|verification",
|
|
55
|
+
"flags": "i"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"kind": "contains",
|
|
59
|
+
"file": "media-plan.json",
|
|
60
|
+
"pattern": "accessibility|alt|caption|transcript|metadata",
|
|
61
|
+
"flags": "i"
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
},
|
|
67
|
+
"rubric": {
|
|
68
|
+
"artifact": {
|
|
69
|
+
"path": "media-plan.json",
|
|
70
|
+
"kind": "json"
|
|
71
|
+
},
|
|
72
|
+
"axes": [
|
|
73
|
+
{
|
|
74
|
+
"name": "completeness",
|
|
75
|
+
"description": "The manifest covers sources, outputs, and processing steps end to end."
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"name": "grounding",
|
|
79
|
+
"description": "Only seeded media fixtures are referenced, with faithful metadata."
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"name": "accessibility",
|
|
83
|
+
"description": "Alt text, captions, or transcripts are planned wherever the class requires."
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "precision",
|
|
87
|
+
"description": "Timestamps, crops, and cues are specific enough to execute."
|
|
88
|
+
}
|
|
89
|
+
]
|
|
90
|
+
},
|
|
91
|
+
"qualityFocus": [
|
|
92
|
+
"media fixture handling",
|
|
93
|
+
"structured manifest",
|
|
94
|
+
"verification metadata"
|
|
95
|
+
],
|
|
96
|
+
"extensions": {
|
|
97
|
+
"legacySimulators": [
|
|
98
|
+
{
|
|
99
|
+
"id": "hero-image-media-fixtures",
|
|
100
|
+
"kind": "data-source",
|
|
101
|
+
"status": "implemented",
|
|
102
|
+
"description": "Seeded local media index replacing real audio, video, image generation, and external media metadata services."
|
|
103
|
+
}
|
|
104
|
+
]
|
|
105
|
+
}
|
|
106
|
+
}
|
|
@@ -0,0 +1,214 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "holiday-card-run",
|
|
3
|
+
"name": "Holiday Card Run",
|
|
4
|
+
"description": "Make the December run a pleasure instead of a panic: sweep the address list while there is still time to fix it, settle the card message, and produce the print-ready card and the address sheet in one sitting. Locks the roster sweep and the message criteria FIRST, then builds the card, then the address sheet, then reports the gaps that still need a human. Use for holiday cards, the annual card run, 'time for the holiday cards', address list cleanup before card season, and the December mailing.\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. Sweep the roster (letter-writer) — who's in, stale or missing addresses, message criteria → gated on artifact `{{workPath}}/scope.md` (markdown-notes)\n2. Build the card (designer) — print-ready card front and inside message → gated on `cards/card.html` (html-page)\n3. Build the address sheet (archivist) — print-ready address sheet, roster fixes recorded → gated on `cards/addresses.html` (html-page)\n4. Write the run summary (letter-writer) — what went to print, gaps that need a human → gated on artifact `{{workPath}}/report.md` (markdown-report)\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
|
+
"run the holiday cards",
|
|
8
|
+
"time for the holiday cards",
|
|
9
|
+
"holiday card run",
|
|
10
|
+
"make the card and the address sheet",
|
|
11
|
+
"december card season"
|
|
12
|
+
],
|
|
13
|
+
"steps": [
|
|
14
|
+
{
|
|
15
|
+
"id": "scope",
|
|
16
|
+
"name": "Sweep the roster",
|
|
17
|
+
"description": "who's in, stale or missing addresses, message criteria",
|
|
18
|
+
"prompt": "Sweep the list before designing anything. Step 1: read correspondents.json from the workspace — who gets a card this run, and check every address: present, missing, or suspect (a move noted, an old date, a gap). Step 2: confirm the list with the owner — who is in, who is out this year, and anyone new. Step 3: settle the message criteria — the greeting's warmth and register, anything it must say or avoid, and that one message has to work for every household on the list. Step 4: write an acceptance-criteria checklist ('every household is in or out on purpose', 'stale and missing addresses are flagged by name', 'the card message is settled and fits everyone it goes to', 'card and address sheet are print-ready — proper page setup, nothing screen-only'). Call write_task_note with the list count + flagged addresses + checklist and write {{workPath}}/scope.md.\n\nThe deliverable `{{workPath}}/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": "letter-writer",
|
|
20
|
+
"advanceWhen": {
|
|
21
|
+
"file": "{{workPath}}/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": "{{workPath}}/scope.md",
|
|
32
|
+
"bytes": 120,
|
|
33
|
+
"artifact": true
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
"kind": "sniff",
|
|
37
|
+
"file": "{{workPath}}/scope.md",
|
|
38
|
+
"sniff": "nonempty",
|
|
39
|
+
"artifact": true
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"onReject": "scope",
|
|
43
|
+
"maxAttempts": 3
|
|
44
|
+
},
|
|
45
|
+
"next": "card"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "card",
|
|
49
|
+
"name": "Build the card",
|
|
50
|
+
"description": "print-ready card front and inside message",
|
|
51
|
+
"prompt": "Build the card as one print-ready HTML file at cards/card.html. Step 1: the front — the settled greeting, designed to print well on a home printer: strong type, honest margins, colors that survive paper. Step 2: the inside — the message, with room left for a handwritten line. Step 3: style it for paper — an @page rule with the card's size and margins, print styles that drop any screen-only chrome, and page breaks exactly where the fold logic wants them. Step 4: proof the text letter by letter — a typo prints twenty times. Call write_task_note with the card file path and the settled message in one line.",
|
|
52
|
+
"suggestedRole": "designer",
|
|
53
|
+
"advanceWhen": {
|
|
54
|
+
"file": "cards/card.html",
|
|
55
|
+
"minBytes": 1,
|
|
56
|
+
"sniff": "html-complete"
|
|
57
|
+
},
|
|
58
|
+
"gate": {
|
|
59
|
+
"at": "completion",
|
|
60
|
+
"checks": [
|
|
61
|
+
{
|
|
62
|
+
"kind": "minBytes",
|
|
63
|
+
"file": "cards/card.html",
|
|
64
|
+
"bytes": 800
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"kind": "htmlLint",
|
|
68
|
+
"file": "cards/card.html"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"kind": "cssMinBytes",
|
|
72
|
+
"bytes": 650,
|
|
73
|
+
"file": "cards/card.html"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"kind": "contains",
|
|
77
|
+
"file": "cards/card.html",
|
|
78
|
+
"pattern": "@page|@media\\s+print",
|
|
79
|
+
"flags": "i",
|
|
80
|
+
"label": "print CSS"
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"scripts": [
|
|
84
|
+
{
|
|
85
|
+
"name": "checkHtmlComplete",
|
|
86
|
+
"scope": "standard",
|
|
87
|
+
"inputs": {
|
|
88
|
+
"file": "cards/card.html"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"onReject": "card",
|
|
93
|
+
"maxAttempts": 3
|
|
94
|
+
},
|
|
95
|
+
"next": "addresses"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"id": "addresses",
|
|
99
|
+
"name": "Build the address sheet",
|
|
100
|
+
"description": "print-ready address sheet, roster fixes recorded",
|
|
101
|
+
"prompt": "Produce the address side of the run. Step 1: build cards/addresses.html — a print-ready address or label sheet with one block per household from the locked list, using each household's own label from the roster. Step 2: state the run count plainly on the sheet — how many households it covers. Step 3: where the owner has confirmed a correction for a flagged address, fix it on the sheet and record the update through the project's correspondence capabilities. Step 4: leave clearly-marked gaps for addresses still missing so the sheet never quietly drops a household. Call write_task_note with the covered count and the still-missing count.",
|
|
102
|
+
"suggestedRole": "archivist",
|
|
103
|
+
"advanceWhen": {
|
|
104
|
+
"file": "cards/addresses.html",
|
|
105
|
+
"minBytes": 1,
|
|
106
|
+
"sniff": "html-complete"
|
|
107
|
+
},
|
|
108
|
+
"gate": {
|
|
109
|
+
"at": "completion",
|
|
110
|
+
"checks": [
|
|
111
|
+
{
|
|
112
|
+
"kind": "minBytes",
|
|
113
|
+
"file": "cards/addresses.html",
|
|
114
|
+
"bytes": 800
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"kind": "htmlLint",
|
|
118
|
+
"file": "cards/addresses.html"
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"kind": "contains",
|
|
122
|
+
"file": "cards/addresses.html",
|
|
123
|
+
"pattern": "\\d+\\s*(?:households?|addresses|recipients?|cards)",
|
|
124
|
+
"flags": "i",
|
|
125
|
+
"label": "run count claim"
|
|
126
|
+
}
|
|
127
|
+
],
|
|
128
|
+
"scripts": [
|
|
129
|
+
{
|
|
130
|
+
"name": "checkHtmlComplete",
|
|
131
|
+
"scope": "standard",
|
|
132
|
+
"inputs": {
|
|
133
|
+
"file": "cards/addresses.html"
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
],
|
|
137
|
+
"onReject": "addresses",
|
|
138
|
+
"maxAttempts": 3
|
|
139
|
+
},
|
|
140
|
+
"next": "report"
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
"id": "report",
|
|
144
|
+
"name": "Write the run summary",
|
|
145
|
+
"description": "what went to print, gaps that need a human",
|
|
146
|
+
"prompt": "Write the run summary. Step 1: state what is ready — the card, the address sheet, and how many households the run covers. Step 2: list the stale and missing addresses by name with the concrete next step for each (who to ask, where to look). Step 3: note anything the owner still does by hand — signing, stamps, the mail date that makes the season. Step 4: keep it under a page. Write {{workPath}}/report.md and call write_task_note with the covered and outstanding counts.\n\nThe deliverable `{{workPath}}/report.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.",
|
|
147
|
+
"suggestedRole": "letter-writer",
|
|
148
|
+
"advanceWhen": {
|
|
149
|
+
"file": "{{workPath}}/report.md",
|
|
150
|
+
"minBytes": 1,
|
|
151
|
+
"sniff": "nonempty",
|
|
152
|
+
"artifact": true
|
|
153
|
+
},
|
|
154
|
+
"gate": {
|
|
155
|
+
"at": "completion",
|
|
156
|
+
"checks": [
|
|
157
|
+
{
|
|
158
|
+
"kind": "minBytes",
|
|
159
|
+
"file": "{{workPath}}/report.md",
|
|
160
|
+
"bytes": 600,
|
|
161
|
+
"artifact": true
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
"kind": "contains",
|
|
165
|
+
"file": "{{workPath}}/report.md",
|
|
166
|
+
"pattern": "(?:^|\\n)#{1,3}\\s+\\S",
|
|
167
|
+
"flags": "i",
|
|
168
|
+
"label": "at least one markdown heading",
|
|
169
|
+
"artifact": true
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"onReject": "report",
|
|
173
|
+
"maxAttempts": 4
|
|
174
|
+
},
|
|
175
|
+
"next": "evaluate"
|
|
176
|
+
},
|
|
177
|
+
{
|
|
178
|
+
"id": "evaluate",
|
|
179
|
+
"name": "Evaluate",
|
|
180
|
+
"description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
|
|
181
|
+
"prompt": "Open cards/card.html, cards/addresses.html, and {{workPath}}/report.md and verify every criterion from {{workPath}}/scope.md: the card is complete, print-styled, and carries the settled message; the address sheet covers every in-list household or marks the gap plainly — cross-check the names against correspondents.json, a household the sheet quietly dropped is the classic failure; the run count claim matches the sheet; and the report names every stale or missing address with a next step. Write PASS/FAIL per criterion; on any failure, name the gap and loop back to card.\n\nThe deliverable lives in the project's artifacts drawer — open `{{workPath}}/report.md` with `read_artifact`, not `read_file`.\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: \"card\" })` 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.",
|
|
182
|
+
"suggestedRole": "reviewer",
|
|
183
|
+
"consumes": [
|
|
184
|
+
{
|
|
185
|
+
"file": "{{workPath}}/report.md",
|
|
186
|
+
"artifact": true
|
|
187
|
+
}
|
|
188
|
+
],
|
|
189
|
+
"next": "card"
|
|
190
|
+
},
|
|
191
|
+
{
|
|
192
|
+
"id": "finish",
|
|
193
|
+
"name": "Finish",
|
|
194
|
+
"description": "All acceptance criteria met. Stamp a short summary and report DONE.",
|
|
195
|
+
"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.",
|
|
196
|
+
"suggestedRole": "developer",
|
|
197
|
+
"terminal": true
|
|
198
|
+
}
|
|
199
|
+
],
|
|
200
|
+
"version": "1.0.2",
|
|
201
|
+
"releasedAt": "2026-08-21T00:00:00Z",
|
|
202
|
+
"paramSchema": {
|
|
203
|
+
"type": "object",
|
|
204
|
+
"properties": {
|
|
205
|
+
"workPath": {
|
|
206
|
+
"type": "string",
|
|
207
|
+
"title": "Working folder",
|
|
208
|
+
"description": "Per-task working folder in the artifacts drawer. Defaults to this task's own folder so runs never collide; override with a stable name when you deliberately want runs to share files.",
|
|
209
|
+
"default": "{{task.dir}}"
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"minGezelVersion": "1.26233"
|
|
214
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"title": "Holiday Card Run — roster sweep to print-ready card and address sheet",
|
|
4
|
+
"objective": "Measure whether the holiday-card-run craftbook sweeps a seeded address roster, produces a print-ready card and address sheet, and reports the stale and missing addresses instead of quietly dropping households.",
|
|
5
|
+
"tags": [
|
|
6
|
+
"html-page"
|
|
7
|
+
],
|
|
8
|
+
"prompt": "time for the holliday cards — can you do the card and the address sheet from the list? a few adresses might be stale. warm message, nothing over the top",
|
|
9
|
+
"setup": {
|
|
10
|
+
"projectName": "Bracken Lane Card Run",
|
|
11
|
+
"about": "Correspondence desk for the Miller-Osei household's annual card run. The address roster lives at workspace/correspondents.json; the run's print files go under workspace/cards.",
|
|
12
|
+
"missionObjectives": "Get the December run print-ready with a clean address list. Everything is grounded in the roster — no live services, no real credentials.",
|
|
13
|
+
"files": [
|
|
14
|
+
{
|
|
15
|
+
"path": "correspondents.json",
|
|
16
|
+
"content": "{\n \"household\": \"the Miller-Oseis\",\n \"cardList\": [\n { \"family\": \"Barrett\", \"cardLabel\": \"The Barrett Family\", \"address\": \"14 Cedar Loop, Halstead, MN 55301\" },\n { \"family\": \"Okonkwo\", \"cardLabel\": \"The Okonkwo Family\", \"address\": \"902 Birchwood Ave, Halstead, MN 55301\" },\n { \"family\": \"Reyes\", \"cardLabel\": \"The Reyes Family\", \"address\": \"77 Quarry Rd, Duluth, MN 55803\" },\n { \"family\": \"Lindqvist\", \"cardLabel\": \"The Lindqvist Family\", \"address\": \"5 Aspen Ct, Halstead, MN 55301\", \"note\": \"moved last spring — address unconfirmed\" },\n { \"family\": \"Achterberg\", \"cardLabel\": \"The Achterberg Family\", \"address\": \"310 Mill Pond Ln, Roseau, MN 56751\" },\n { \"family\": \"Nguyen\", \"cardLabel\": \"The Nguyen Family\", \"address\": null },\n { \"family\": \"Castellano\", \"cardLabel\": \"The Castellano Family\", \"address\": \"48 Harbor View Dr, Bayfield, WI 54814\" },\n { \"family\": \"Whitfield\", \"cardLabel\": \"The Whitfield Family\", \"address\": \"\" },\n { \"family\": \"Dube\", \"cardLabel\": \"The Dube Family\", \"address\": \"221 Larkspur St, Halstead, MN 55301\" },\n { \"family\": \"Petrov\", \"cardLabel\": \"The Petrov Family\", \"address\": \"1600 Winter Hill Rd, Grand Marais, MN 55604\" }\n ]\n}\n"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"worker": {
|
|
20
|
+
"name": "Sanne",
|
|
21
|
+
"role": "Designer"
|
|
22
|
+
},
|
|
23
|
+
"craftbookParams": {
|
|
24
|
+
"workPath": "tasks/eval"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"mocks": [],
|
|
28
|
+
"success": {
|
|
29
|
+
"summary": "cards/card.html is a print-styled card with the settled message; cards/addresses.html covers the roster with the gaps marked; tasks/eval/report.md names the stale and missing addresses.",
|
|
30
|
+
"deliverables": [
|
|
31
|
+
{
|
|
32
|
+
"path": "cards/card.html",
|
|
33
|
+
"kind": "html-page",
|
|
34
|
+
"minBytes": 1200,
|
|
35
|
+
"checks": [
|
|
36
|
+
{
|
|
37
|
+
"kind": "cssMinBytes",
|
|
38
|
+
"bytes": 650,
|
|
39
|
+
"file": "cards/card.html"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"kind": "contains",
|
|
43
|
+
"file": "cards/card.html",
|
|
44
|
+
"pattern": "@page|@media\\s+print",
|
|
45
|
+
"flags": "i",
|
|
46
|
+
"label": "print CSS"
|
|
47
|
+
}
|
|
48
|
+
]
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"path": "cards/addresses.html",
|
|
52
|
+
"kind": "html-page",
|
|
53
|
+
"minBytes": 1000,
|
|
54
|
+
"checks": [
|
|
55
|
+
{
|
|
56
|
+
"kind": "valuesSubsetOf",
|
|
57
|
+
"file": "cards/addresses.html",
|
|
58
|
+
"sourceFiles": [
|
|
59
|
+
"correspondents.json"
|
|
60
|
+
],
|
|
61
|
+
"pattern": "The\\s+([A-Z][A-Za-z-]+)\\s+Family",
|
|
62
|
+
"minMatches": 8,
|
|
63
|
+
"label": "address blocks use the roster's own labels"
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
"kind": "contains",
|
|
67
|
+
"file": "cards/addresses.html",
|
|
68
|
+
"pattern": "\\d+\\s*(?:households?|addresses|recipients?|cards)",
|
|
69
|
+
"flags": "i",
|
|
70
|
+
"label": "run count stated on the sheet"
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"path": "tasks/eval/report.md",
|
|
76
|
+
"kind": "markdown-report",
|
|
77
|
+
"minBytes": 600,
|
|
78
|
+
"checks": [
|
|
79
|
+
{
|
|
80
|
+
"kind": "contains",
|
|
81
|
+
"file": "tasks/eval/report.md",
|
|
82
|
+
"pattern": "(?:^|\\n)#{1,3}\\s+\\S"
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"kind": "contains",
|
|
86
|
+
"file": "tasks/eval/report.md",
|
|
87
|
+
"pattern": "missing|stale|unconfirmed",
|
|
88
|
+
"flags": "i",
|
|
89
|
+
"label": "address gaps surfaced"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"kind": "contains",
|
|
93
|
+
"file": "tasks/eval/report.md",
|
|
94
|
+
"pattern": "Nguyen|Whitfield|Lindqvist",
|
|
95
|
+
"flags": "i",
|
|
96
|
+
"label": "flagged households named"
|
|
97
|
+
}
|
|
98
|
+
]
|
|
99
|
+
}
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
"rubric": {
|
|
103
|
+
"artifact": {
|
|
104
|
+
"path": "cards/card.html",
|
|
105
|
+
"kind": "html"
|
|
106
|
+
},
|
|
107
|
+
"axes": [
|
|
108
|
+
{
|
|
109
|
+
"name": "print readiness",
|
|
110
|
+
"description": "The card and sheet carry real print styling — page setup, margins, breaks — not a screen layout with a print label."
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
"name": "address hygiene",
|
|
114
|
+
"description": "Stale and missing addresses are flagged by name; no household quietly dropped from the run."
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"name": "message warmth",
|
|
118
|
+
"description": "The card message is warm and works for every household on the list."
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"name": "run completeness",
|
|
122
|
+
"description": "Card, address sheet, and summary together make the run finishable in one sitting."
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
},
|
|
126
|
+
"qualityFocus": [
|
|
127
|
+
"print-ready output",
|
|
128
|
+
"address hygiene",
|
|
129
|
+
"no dropped households"
|
|
130
|
+
]
|
|
131
|
+
}
|