@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,105 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "forecast-model",
|
|
3
|
+
"name": "Simple Forecast / Trend Model",
|
|
4
|
+
"description": "Build a simple, defensible forecast of a time series (revenue, demand, signups, usage) with the assumptions and method stated up front and the projection plus a confidence band as the output. Scopes the series, horizon, method, and assumptions FIRST (so the forecast isn't an unexplained black box), then builds the projection with a baseline and an interval, then reviews it for sanity against history and overfitting. Use this for forecasting a metric, projecting a trend, estimating future demand, a simple time-series projection, or a 'what will this be next quarter' estimate.\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 forecast (data-analyst) — lock the series, horizon, method, and assumptions → gated on artifact `notes/scope.md` (markdown-notes)\n2. Build the forecast (developer) — compute the projection with a baseline and an uncertainty band → gated on `data/forecast.json` (json)\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
|
+
"forecast this metric",
|
|
8
|
+
"project a trend",
|
|
9
|
+
"estimate future demand",
|
|
10
|
+
"time series forecast",
|
|
11
|
+
"what will next quarter be"
|
|
12
|
+
],
|
|
13
|
+
"steps": [
|
|
14
|
+
{
|
|
15
|
+
"id": "scope",
|
|
16
|
+
"name": "Scope the forecast",
|
|
17
|
+
"description": "lock the series, horizon, method, and assumptions",
|
|
18
|
+
"prompt": "Frame the forecast before computing it. Step 1: identify the metric, its time grain (daily/weekly/monthly), and how much history you have. Step 2: inspect the history for trend, seasonality, and level shifts, and note them. Step 3: pick a method appropriate to the data and JUSTIFY it (linear/exponential trend, simple moving average, naive-seasonal, simple exponential smoothing) — prefer the simplest method the data supports; avoid overfitting short series. Step 4: state the forecast horizon and the key assumptions (no regime change, seasonality repeats). Step 5: write an acceptance-criteria checklist ('method is justified by the observed pattern', 'forecast covers the stated horizon', 'output includes a confidence/uncertainty band', 'assumptions are stated', 'projection is continuous with recent history'). Call write_task_note and write the method choice + assumptions + checklist to 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": "data-analyst",
|
|
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": "build"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "build",
|
|
49
|
+
"name": "Build the forecast",
|
|
50
|
+
"description": "compute the projection with a baseline and an uncertainty band",
|
|
51
|
+
"prompt": "Compute the forecast with the scoped method. Step 1: fit the chosen method to the history (e.g. fit a trend line, compute smoothing, or seasonal-naive). Step 2: project the metric over the full horizon and produce point forecasts per period. Step 3: compute an uncertainty band (e.g. +/- from the residual standard error, or a simple high/low scenario) so the output is a range, not just a line. Step 4: emit data/forecast.json with history, point forecast per period, and the band; if helpful, also render a small inline line chart of history + forecast in index.html. Step 5: ensure the forecast joins smoothly to the last actual value (no implausible jump). On a loop-back, fix only the named gaps. Call write_task_note with the projected values and the band.",
|
|
52
|
+
"suggestedRole": "developer",
|
|
53
|
+
"advanceWhen": {
|
|
54
|
+
"file": "data/forecast.json",
|
|
55
|
+
"minBytes": 1,
|
|
56
|
+
"sniff": "json-valid"
|
|
57
|
+
},
|
|
58
|
+
"gate": {
|
|
59
|
+
"at": "completion",
|
|
60
|
+
"checks": [
|
|
61
|
+
{
|
|
62
|
+
"kind": "minBytes",
|
|
63
|
+
"file": "data/forecast.json",
|
|
64
|
+
"bytes": 2
|
|
65
|
+
}
|
|
66
|
+
],
|
|
67
|
+
"scripts": [
|
|
68
|
+
{
|
|
69
|
+
"name": "checkJsonValid",
|
|
70
|
+
"scope": "standard",
|
|
71
|
+
"inputs": {
|
|
72
|
+
"file": "data/forecast.json"
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
],
|
|
76
|
+
"onReject": "build",
|
|
77
|
+
"maxAttempts": 4
|
|
78
|
+
},
|
|
79
|
+
"next": "evaluate"
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
"id": "evaluate",
|
|
83
|
+
"name": "Evaluate",
|
|
84
|
+
"description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
|
|
85
|
+
"prompt": "Open data/forecast.json and review it for plausibility and rigor against notes/scope.md. Step 1: confirm the chosen method is justified by the observed pattern, the forecast covers the full stated horizon, and the assumptions are stated. Step 2: confirm the projection is continuous with recent actuals (no implausible jump) and the trend direction matches the history. Step 3: confirm the output includes an uncertainty band (not just a point line) that widens with the horizon or is at least present and reasonable. Step 4: re-compute one forecast period by hand from the method and confirm the model agrees. Step 5: watch for overfit or absurd extrapolation — a short, noisy series projected into a steep unbounded curve. Write PASS/FAIL per criterion; any FAIL loops back to build.\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: \"build\" })` 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.",
|
|
86
|
+
"suggestedRole": "reviewer",
|
|
87
|
+
"consumes": [
|
|
88
|
+
{
|
|
89
|
+
"file": "data/forecast.json"
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"next": "build"
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"id": "finish",
|
|
96
|
+
"name": "Finish",
|
|
97
|
+
"description": "All acceptance criteria met. Stamp a short summary and report DONE.",
|
|
98
|
+
"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.",
|
|
99
|
+
"suggestedRole": "developer",
|
|
100
|
+
"terminal": true
|
|
101
|
+
}
|
|
102
|
+
],
|
|
103
|
+
"version": "1.0.1",
|
|
104
|
+
"releasedAt": "2026-08-14T00:00:00Z"
|
|
105
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"title": "Simple Forecast / Trend Model smoke eval",
|
|
4
|
+
"objective": "Self-contained smoke eval for the Simple Forecast / Trend Model craftbook using the data generic harness.",
|
|
5
|
+
"tags": [
|
|
6
|
+
"data"
|
|
7
|
+
],
|
|
8
|
+
"prompt": "I dropped our numbers in source/records.csv. Can you look at the data, analyze it, and put togehter some results in analysis.md?",
|
|
9
|
+
"setup": {
|
|
10
|
+
"projectName": "Simple Forecast / Trend Model Eval",
|
|
11
|
+
"about": "Self-contained eval project for forecast-model. Seeded inputs are under workspace/source or workspace/fixtures; final deliverable is workspace/analysis.md.",
|
|
12
|
+
"missionObjectives": "Use the Simple Forecast / Trend Model craftbook/template, read the seeded local fixtures, and write analysis.md without network calls, real credentials, or live services.",
|
|
13
|
+
"files": [
|
|
14
|
+
{
|
|
15
|
+
"path": "source/brief.md",
|
|
16
|
+
"content": "# Simple Forecast / Trend Model 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: forecast-model - Simple Forecast / Trend Model.\n"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"path": "source/records.csv",
|
|
20
|
+
"content": "customer,region,orders,revenue_usd,churn_risk\nAster,North,12,1440,low\nBoreal,South,8,720,medium\nCedar,West,15,2100,high\nDune,North,5,500,low\n"
|
|
21
|
+
}
|
|
22
|
+
],
|
|
23
|
+
"worker": {
|
|
24
|
+
"name": "Jules",
|
|
25
|
+
"role": "Data Analyst"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
"mocks": [],
|
|
29
|
+
"success": {
|
|
30
|
+
"summary": "analysis.md is a seeded-data analysis with deterministic computed facts.",
|
|
31
|
+
"deliverables": [
|
|
32
|
+
{
|
|
33
|
+
"path": "analysis.md",
|
|
34
|
+
"kind": "markdown-report",
|
|
35
|
+
"minBytes": 900,
|
|
36
|
+
"checks": [
|
|
37
|
+
{
|
|
38
|
+
"kind": "contains",
|
|
39
|
+
"file": "analysis.md",
|
|
40
|
+
"pattern": "(?:^|\\n)#{1,3}\\s+\\S",
|
|
41
|
+
"flags": "i"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"kind": "contains",
|
|
45
|
+
"file": "analysis.md",
|
|
46
|
+
"pattern": "40\\b",
|
|
47
|
+
"flags": "i",
|
|
48
|
+
"label": "include total orders of 40"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"kind": "contains",
|
|
52
|
+
"file": "analysis.md",
|
|
53
|
+
"pattern": "\\$?4,?760\\b",
|
|
54
|
+
"flags": "i",
|
|
55
|
+
"label": "include total revenue of 4760"
|
|
56
|
+
},
|
|
57
|
+
{
|
|
58
|
+
"kind": "contains",
|
|
59
|
+
"file": "analysis.md",
|
|
60
|
+
"pattern": "Cedar",
|
|
61
|
+
"flags": "i",
|
|
62
|
+
"label": "identify Cedar as top revenue and high risk"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"kind": "contains",
|
|
66
|
+
"file": "analysis.md",
|
|
67
|
+
"pattern": "high",
|
|
68
|
+
"flags": "i",
|
|
69
|
+
"label": "include churn-risk finding"
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
},
|
|
75
|
+
"rubric": {
|
|
76
|
+
"artifact": {
|
|
77
|
+
"path": "analysis.md",
|
|
78
|
+
"kind": "markdown"
|
|
79
|
+
},
|
|
80
|
+
"axes": [
|
|
81
|
+
{
|
|
82
|
+
"name": "accuracy",
|
|
83
|
+
"description": "Computed figures are correct against the seeded records."
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"name": "grounding",
|
|
87
|
+
"description": "Every claim traces to the seeded data — nothing invented."
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"name": "structure",
|
|
91
|
+
"description": "Tables and sections make the analysis checkable at a glance."
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"name": "actionability",
|
|
95
|
+
"description": "Recommendations follow from the findings and are concretely doable."
|
|
96
|
+
}
|
|
97
|
+
]
|
|
98
|
+
},
|
|
99
|
+
"qualityFocus": [
|
|
100
|
+
"seeded data reading",
|
|
101
|
+
"computed facts",
|
|
102
|
+
"recommendation grounding"
|
|
103
|
+
]
|
|
104
|
+
}
|
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "form-fill-batch",
|
|
3
|
+
"name": "Batch-Fill Forms from a Dataset",
|
|
4
|
+
"description": "Automate filling a web or PDF form once per row of an input dataset — registrations, applications, data-entry portals, mail-merge into a form. Scopes the field-to-column mapping and a per-row success signal FIRST, then builds a loop that loads each record, maps it onto the form fields, submits, and records the outcome, then verifies every row was attempted, each submission was confirmed, and failures are logged with the reason. Mapping-before-build is the wisdom: lock the column→field map and the 'submitted OK' signal so the run is idempotent, resumable, and auditable rather than a blind click-through.\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 fill job (planner) — map dataset columns to form fields + success signal → gated on artifact `notes/scope.md` (markdown-notes)\n2. Build the fill automation (developer) — loop records, fill, submit, log each outcome → gated on `form_fill.py` (code-module)\n3. Verify the run (reviewer) — coverage, confirmations, and failure logging → gated on artifact `notes/verify.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
|
+
"fill out forms automatically",
|
|
8
|
+
"batch form submission",
|
|
9
|
+
"mail merge into a form",
|
|
10
|
+
"auto-fill a portal",
|
|
11
|
+
"submit a form for each row"
|
|
12
|
+
],
|
|
13
|
+
"steps": [
|
|
14
|
+
{
|
|
15
|
+
"id": "scope",
|
|
16
|
+
"name": "Scope the fill job",
|
|
17
|
+
"description": "map dataset columns to form fields + success signal",
|
|
18
|
+
"prompt": "Plan the batch fill before automating anything. Step 1: identify the input dataset (path + columns) and the target form (URL or PDF) and list every fillable field with its type (text, select, checkbox, date, file). Step 2: build an explicit mapping from each dataset column to a form field, and note required form fields that have no column (these need a default or must abort the row). Step 3: define the per-row success signal — what proves a submission landed (a confirmation URL, a success banner text, a generated ID, or a saved PDF). Step 4: decide the results log shape (one row per input record with status submitted/failed/skipped and a reason/confirmation). Step 5: write an acceptance-criteria checklist ('every input row is attempted', 'each success is confirmed by the signal', 'failures logged with a reason', 'no row submitted twice', 'run is resumable from the log'). Call write_task_note with the mapping + signal + checklist and write it to notes/scope.md. No automation 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.",
|
|
19
|
+
"suggestedRole": "planner",
|
|
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": "build"
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
"id": "build",
|
|
49
|
+
"name": "Build the fill automation",
|
|
50
|
+
"description": "loop records, fill, submit, log each outcome",
|
|
51
|
+
"prompt": "Implement the batch-fill driver to the locked mapping. Step 1: load the dataset and the results log; skip any row already marked submitted so the run is resumable. Step 2: for each remaining row, populate every mapped form field by type (set text, choose selects, toggle checkboxes, attach files), applying defaults for required-but-unmapped fields. Step 3: submit, then assert the success signal from scope before recording success — never assume submission worked. Step 4: append a results-log row with status and the confirmation token or the failure reason; on error, catch it, log failed, and continue to the next row. Step 5: write the automation to a runnable code module and produce/update the results log. Call write_task_note with the module path, the log path, and counts (submitted/failed/skipped).",
|
|
52
|
+
"suggestedRole": "developer",
|
|
53
|
+
"advanceWhen": {
|
|
54
|
+
"file": "form_fill.py",
|
|
55
|
+
"minBytes": 1,
|
|
56
|
+
"sniff": "nonempty"
|
|
57
|
+
},
|
|
58
|
+
"gate": {
|
|
59
|
+
"at": "completion",
|
|
60
|
+
"checks": [
|
|
61
|
+
{
|
|
62
|
+
"kind": "minBytes",
|
|
63
|
+
"file": "form_fill.py",
|
|
64
|
+
"bytes": 200
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"kind": "sniff",
|
|
68
|
+
"file": "form_fill.py",
|
|
69
|
+
"sniff": "nonempty"
|
|
70
|
+
},
|
|
71
|
+
{
|
|
72
|
+
"kind": "esmImports",
|
|
73
|
+
"file": "form_fill.py"
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
"kind": "sourceParses",
|
|
77
|
+
"file": "form_fill.py"
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"onReject": "build",
|
|
81
|
+
"maxAttempts": 3
|
|
82
|
+
},
|
|
83
|
+
"next": "verify"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"id": "verify",
|
|
87
|
+
"name": "Verify the run",
|
|
88
|
+
"description": "coverage, confirmations, and failure logging",
|
|
89
|
+
"prompt": "Verify the batch run did what scope promised. Step 1: confirm the automation runs without throwing and produces a results log. Step 2: check coverage — the log has exactly one entry per input row, none missing. Step 3: confirm every 'submitted' entry carries the success signal (confirmation token / banner / saved file) and is not just assumed. Step 4: confirm every 'failed' entry has a concrete reason and that failures did not abort the rest of the batch. Step 5: confirm idempotency — a re-run skips already-submitted rows and does not double-submit. Write PASS/FAIL per criterion to notes/verify.md and task notes; on failure, name the rows and loop back to build.\n\nThe deliverable `notes/verify.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.",
|
|
90
|
+
"suggestedRole": "reviewer",
|
|
91
|
+
"advanceWhen": {
|
|
92
|
+
"file": "notes/verify.md",
|
|
93
|
+
"minBytes": 1,
|
|
94
|
+
"sniff": "nonempty",
|
|
95
|
+
"artifact": true
|
|
96
|
+
},
|
|
97
|
+
"gate": {
|
|
98
|
+
"at": "completion",
|
|
99
|
+
"checks": [
|
|
100
|
+
{
|
|
101
|
+
"kind": "minBytes",
|
|
102
|
+
"file": "form_fill.py",
|
|
103
|
+
"bytes": 200
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"kind": "sniff",
|
|
107
|
+
"file": "form_fill.py",
|
|
108
|
+
"sniff": "nonempty"
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"kind": "esmImports",
|
|
112
|
+
"file": "form_fill.py"
|
|
113
|
+
},
|
|
114
|
+
{
|
|
115
|
+
"kind": "sourceParses",
|
|
116
|
+
"file": "form_fill.py"
|
|
117
|
+
}
|
|
118
|
+
],
|
|
119
|
+
"onReject": "verify",
|
|
120
|
+
"maxAttempts": 4
|
|
121
|
+
},
|
|
122
|
+
"next": "evaluate"
|
|
123
|
+
},
|
|
124
|
+
{
|
|
125
|
+
"id": "evaluate",
|
|
126
|
+
"name": "Evaluate",
|
|
127
|
+
"description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
|
|
128
|
+
"prompt": "Exercise form_fill.py against the dataset (or trace it if execution is unavailable) and verify every criterion from notes/scope.md. Confirm: one log entry per input row, each success carries the defined success signal, each failure has a reason and did not abort the batch, no row is submitted twice, and a re-run resumes from the log. Write PASS/FAIL per criterion; on any failure, name the rows and loop back to build.\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: \"build\" })` 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.",
|
|
129
|
+
"suggestedRole": "reviewer",
|
|
130
|
+
"consumes": [
|
|
131
|
+
{
|
|
132
|
+
"file": "form_fill.py"
|
|
133
|
+
}
|
|
134
|
+
],
|
|
135
|
+
"next": "build"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"id": "finish",
|
|
139
|
+
"name": "Finish",
|
|
140
|
+
"description": "All acceptance criteria met. Stamp a short summary and report DONE.",
|
|
141
|
+
"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.",
|
|
142
|
+
"suggestedRole": "developer",
|
|
143
|
+
"terminal": true
|
|
144
|
+
}
|
|
145
|
+
],
|
|
146
|
+
"version": "1.0.1",
|
|
147
|
+
"releasedAt": "2026-08-14T00:00:00Z"
|
|
148
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"title": "Batch-Fill Forms from a Dataset smoke eval",
|
|
4
|
+
"objective": "Self-contained smoke eval for the Batch-Fill Forms from a Dataset craftbook using the external generic harness.",
|
|
5
|
+
"tags": [
|
|
6
|
+
"external"
|
|
7
|
+
],
|
|
8
|
+
"prompt": "Theres a fake ops service wired up for this so nothing real gets touched — the endpoints are in mocks/services.md, and the ready-made mock-probe script talks to them for you. Can you run the automation against it and write up how it went in automation.md?",
|
|
9
|
+
"setup": {
|
|
10
|
+
"projectName": "Batch-Fill Forms from a Dataset Eval",
|
|
11
|
+
"about": "Self-contained eval project for form-fill-batch. Seeded inputs are under workspace/source or workspace/fixtures; final deliverable is workspace/automation.md.",
|
|
12
|
+
"missionObjectives": "Use the Batch-Fill Forms from a Dataset craftbook/template, read the seeded local fixtures, and write automation.md without network calls, real credentials, or live services.",
|
|
13
|
+
"files": [
|
|
14
|
+
{
|
|
15
|
+
"path": "source/brief.md",
|
|
16
|
+
"content": "# Batch-Fill Forms from a Dataset 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: form-fill-batch - Batch-Fill Forms from a Dataset.\n"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"worker": {
|
|
20
|
+
"name": "Jules",
|
|
21
|
+
"role": "Developer"
|
|
22
|
+
}
|
|
23
|
+
},
|
|
24
|
+
"mocks": [
|
|
25
|
+
{
|
|
26
|
+
"kind": "http",
|
|
27
|
+
"id": "ops",
|
|
28
|
+
"description": "Fake operations service for this eval. GET /api/bookings/open lists the open work items; POST /api/bookings/dry-run records a simulated submission and returns DRY_RUN_OK.",
|
|
29
|
+
"credential": {
|
|
30
|
+
"name": "mock.ops"
|
|
31
|
+
},
|
|
32
|
+
"routes": [
|
|
33
|
+
{
|
|
34
|
+
"method": "GET",
|
|
35
|
+
"path": "/api/bookings/open",
|
|
36
|
+
"body": {
|
|
37
|
+
"items": [
|
|
38
|
+
"BKG-1001",
|
|
39
|
+
"BKG-1002",
|
|
40
|
+
"BKG-1003"
|
|
41
|
+
]
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"method": "POST",
|
|
46
|
+
"path": "/api/bookings/dry-run",
|
|
47
|
+
"status": 201,
|
|
48
|
+
"body": {
|
|
49
|
+
"status": "DRY_RUN_OK",
|
|
50
|
+
"recorded": 3
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
]
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"kind": "webhook",
|
|
57
|
+
"id": "notify",
|
|
58
|
+
"description": "Notification receiver. POST a JSON completion notice here when the run finishes.",
|
|
59
|
+
"path": "/hooks/notify"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"kind": "cli",
|
|
63
|
+
"id": "probe",
|
|
64
|
+
"description": "Provenance-trusted project script `mock-probe` that exercises the fake ops service through http.authed and returns the raw responses.",
|
|
65
|
+
"shim": {
|
|
66
|
+
"path": "scripts/mock-probe.ts",
|
|
67
|
+
"content": "import { defineScript, gezel } from '@bendyline/gezel-sdk';\n\nexport const meta = defineScript({\n name: 'mock-probe',\n description:\n 'Probe the live fake ops service for this eval: lists the open work items and records a dry-run submission. Outputs the raw JSON responses as evidence for the write-up.',\n inputs: {},\n outputs: {\n open: { type: 'string', description: 'Raw JSON body from the open-items listing.' },\n dryRun: { type: 'string', description: 'Raw JSON body from the dry-run submission.' },\n },\n requires: ['workspace.read', 'network', 'credential:mock.ops'],\n});\n\nconst services = JSON.parse(await gezel.fs.read('mocks/services.json'));\nconst base = (id) => {\n const service = services.find((entry) => entry.id === id);\n if (!service) throw new Error(`mock service \"${id}\" is not listed in mocks/services.json`);\n return service.baseUrl;\n};\n\nconst open = await gezel.http.authed(`${base('ops')}/api/bookings/open`, {\n credential: 'mock.ops',\n});\nif (!open.ok) throw new Error(`open-items listing failed: ${open.status} ${open.body}`);\n\nconst dryRun = await gezel.http.authed(`${base('ops')}/api/bookings/dry-run`, {\n credential: 'mock.ops',\n method: 'POST',\n body: JSON.stringify({ items: JSON.parse(open.body).items, mode: 'dry-run' }),\n});\nif (!dryRun.ok) throw new Error(`dry-run submission failed: ${dryRun.status} ${dryRun.body}`);\n\ngezel.output({ open: open.body, dryRun: dryRun.body });\n"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"success": {
|
|
72
|
+
"summary": "automation.md is grounded in live fake-service responses: the open items were actually listed and a dry-run actually recorded (request-log assertions), with safety guards and signals described.",
|
|
73
|
+
"deliverables": [
|
|
74
|
+
{
|
|
75
|
+
"path": "automation.md",
|
|
76
|
+
"kind": "markdown-report",
|
|
77
|
+
"minBytes": 900,
|
|
78
|
+
"checks": [
|
|
79
|
+
{
|
|
80
|
+
"kind": "contains",
|
|
81
|
+
"file": "automation.md",
|
|
82
|
+
"pattern": "(?:^|\\n)#{1,3}\\s+\\S",
|
|
83
|
+
"flags": "i"
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
"kind": "contains",
|
|
87
|
+
"file": "automation.md",
|
|
88
|
+
"pattern": "DRY_RUN_OK|dry-run|dry run",
|
|
89
|
+
"flags": "i"
|
|
90
|
+
},
|
|
91
|
+
{
|
|
92
|
+
"kind": "contains",
|
|
93
|
+
"file": "automation.md",
|
|
94
|
+
"pattern": "fake-ci|fake-github|/api/bookings",
|
|
95
|
+
"flags": "i"
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"kind": "contains",
|
|
99
|
+
"file": "automation.md",
|
|
100
|
+
"pattern": "no real|credentials|safety|guard",
|
|
101
|
+
"flags": "i"
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"kind": "contains",
|
|
105
|
+
"file": "automation.md",
|
|
106
|
+
"pattern": "success|failure|retry|abort",
|
|
107
|
+
"flags": "i"
|
|
108
|
+
}
|
|
109
|
+
]
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"mocks": [
|
|
113
|
+
{
|
|
114
|
+
"service": "ops",
|
|
115
|
+
"minRequests": 2,
|
|
116
|
+
"requiredPaths": [
|
|
117
|
+
"^/api/bookings/open$",
|
|
118
|
+
"^/api/bookings/dry-run$"
|
|
119
|
+
]
|
|
120
|
+
}
|
|
121
|
+
]
|
|
122
|
+
},
|
|
123
|
+
"rubric": {
|
|
124
|
+
"artifact": {
|
|
125
|
+
"path": "automation.md",
|
|
126
|
+
"kind": "markdown"
|
|
127
|
+
},
|
|
128
|
+
"axes": [
|
|
129
|
+
{
|
|
130
|
+
"name": "safety",
|
|
131
|
+
"description": "Dry-run posture is explicit: no real credentials, clear stop-before-side-effect boundary."
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
"name": "mapping",
|
|
135
|
+
"description": "Fake endpoints/commands are mapped completely to the workflow steps."
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"name": "signals",
|
|
139
|
+
"description": "Success, failure, retry, and abort conditions are all defined."
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
"name": "containment",
|
|
143
|
+
"description": "The plan cannot accidentally reach a real service from a mock context."
|
|
144
|
+
}
|
|
145
|
+
]
|
|
146
|
+
},
|
|
147
|
+
"qualityFocus": [
|
|
148
|
+
"dry-run safety",
|
|
149
|
+
"fake tool mapping",
|
|
150
|
+
"side-effect containment"
|
|
151
|
+
],
|
|
152
|
+
"extensions": {
|
|
153
|
+
"legacySimulators": [
|
|
154
|
+
{
|
|
155
|
+
"id": "form-fill-batch-fake-service-fixture",
|
|
156
|
+
"kind": "data-source",
|
|
157
|
+
"status": "implemented",
|
|
158
|
+
"description": "Seeded local fake service contract replacing live CLIs, HTTP APIs, credentials, and side effects."
|
|
159
|
+
}
|
|
160
|
+
]
|
|
161
|
+
}
|
|
162
|
+
}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "form-wizard",
|
|
3
|
+
"name": "Multi-Step Form Wizard",
|
|
4
|
+
"description": "Build a single-file multi-step form wizard — a signup, checkout, survey, or onboarding form split across steps with a progress indicator, per-step validation, back/next navigation, and a final review-and-submit. Designs the step flow, fields per step, and validation rules first, then implements stateful navigation that preserves entered data across steps. Wizards break when going back loses data or a step advances with invalid input, so the flow-design phase locks the field-per-step map and validation before any markup.\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. Flow design (designer) — steps, fields per step, validation, progress → gated on artifact `notes/flow-design.md` (markdown-notes)\n2. Build (developer) — implement index.html with stateful step navigation → gated on `index.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": "flow-design",
|
|
6
|
+
"triggers": [
|
|
7
|
+
"multi step form",
|
|
8
|
+
"form wizard",
|
|
9
|
+
"checkout flow",
|
|
10
|
+
"survey form",
|
|
11
|
+
"step by step form",
|
|
12
|
+
"onboarding form"
|
|
13
|
+
],
|
|
14
|
+
"steps": [
|
|
15
|
+
{
|
|
16
|
+
"id": "flow-design",
|
|
17
|
+
"name": "Flow design",
|
|
18
|
+
"description": "steps, fields per step, validation, progress",
|
|
19
|
+
"prompt": "Design the wizard flow. (1) Enumerate the steps in order and the fields collected on each (with types: text, email, select, radio). (2) Define per-field validation rules and the exact error messages. (3) Specify navigation: Next validates the current step before advancing; Back preserves all entered data; a progress indicator shows current step of N. (4) Define the final review step that summarizes all answers before submit, and the success state. (5) Write an acceptance-criteria checklist of 6-8 items, e.g. 'Next is blocked until the current step is valid', 'Back preserves entered values', 'the progress indicator reflects the current step', 'the review step shows every answer', 'submit shows a success state', 'invalid fields show their error', 'no console errors'. Write to notes/flow-design.md and via write_task_note. No HTML yet.\n\nThe deliverable `notes/flow-design.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": "designer",
|
|
21
|
+
"advanceWhen": {
|
|
22
|
+
"file": "notes/flow-design.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/flow-design.md",
|
|
33
|
+
"bytes": 120,
|
|
34
|
+
"artifact": true
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"kind": "sniff",
|
|
38
|
+
"file": "notes/flow-design.md",
|
|
39
|
+
"sniff": "nonempty",
|
|
40
|
+
"artifact": true
|
|
41
|
+
}
|
|
42
|
+
],
|
|
43
|
+
"onReject": "flow-design",
|
|
44
|
+
"maxAttempts": 3
|
|
45
|
+
},
|
|
46
|
+
"next": "build"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"id": "build",
|
|
50
|
+
"name": "Build",
|
|
51
|
+
"description": "implement index.html with stateful step navigation",
|
|
52
|
+
"prompt": "Implement index.html with inline CSS/JS to the flow design. (1) Render all steps but show only the active one; track current step and a form-data object. (2) On Next, validate the current step's fields; block advance and show inline errors if invalid; otherwise save values and advance. (3) On Back, go to the previous step with all values intact (re-populate inputs from the data object). (4) Render a progress indicator (step N of M or a bar). (5) Build the final review step summarizing every answer, and a submit that shows a success message. Style it cleanly and responsively. Vanilla JS, no CDN. On a loop-back, fix only the named gaps without regressing passing criteria. write_task_note the path and passing criteria.",
|
|
53
|
+
"suggestedRole": "developer",
|
|
54
|
+
"advanceWhen": {
|
|
55
|
+
"file": "index.html",
|
|
56
|
+
"minBytes": 1,
|
|
57
|
+
"sniff": "html-complete"
|
|
58
|
+
},
|
|
59
|
+
"gate": {
|
|
60
|
+
"at": "completion",
|
|
61
|
+
"checks": [
|
|
62
|
+
{
|
|
63
|
+
"kind": "minBytes",
|
|
64
|
+
"file": "index.html",
|
|
65
|
+
"bytes": 800
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"kind": "htmlLint",
|
|
69
|
+
"file": "index.html"
|
|
70
|
+
}
|
|
71
|
+
],
|
|
72
|
+
"scripts": [
|
|
73
|
+
{
|
|
74
|
+
"name": "checkHtmlComplete",
|
|
75
|
+
"scope": "standard",
|
|
76
|
+
"inputs": {
|
|
77
|
+
"file": "index.html"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
],
|
|
81
|
+
"onReject": "build",
|
|
82
|
+
"maxAttempts": 4
|
|
83
|
+
},
|
|
84
|
+
"next": "evaluate"
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
"id": "evaluate",
|
|
88
|
+
"name": "Evaluate",
|
|
89
|
+
"description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
|
|
90
|
+
"prompt": "Walk the whole wizard. Open index.html if possible: try to advance with invalid input, fill steps, go Back and forward to confirm data is kept, reach the review, and submit. Check EACH criterion from notes/flow-design.md and write PASS/FAIL with a reason: is Next blocked when invalid, does Back preserve values, does the progress indicator update, does review show every answer, does submit succeed, zero console errors? Going Back and losing entered data is a FAIL — loop back to build.\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: \"build\" })` 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.",
|
|
91
|
+
"suggestedRole": "reviewer",
|
|
92
|
+
"consumes": [
|
|
93
|
+
{
|
|
94
|
+
"file": "index.html"
|
|
95
|
+
}
|
|
96
|
+
],
|
|
97
|
+
"next": "build"
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "finish",
|
|
101
|
+
"name": "Finish",
|
|
102
|
+
"description": "All acceptance criteria met. Stamp a short summary and report DONE.",
|
|
103
|
+
"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.",
|
|
104
|
+
"suggestedRole": "developer",
|
|
105
|
+
"terminal": true
|
|
106
|
+
}
|
|
107
|
+
],
|
|
108
|
+
"version": "1.0.1",
|
|
109
|
+
"releasedAt": "2026-08-14T00:00:00Z"
|
|
110
|
+
}
|