@bendyline/gilde 0.1.51 → 0.1.53
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/nanbeige4.2-3b-q4.json +133 -0
- package/data/chat-models/index.json +1 -1
- package/data/chat-models/na/nanbeige4.2-3b-q4/manifest.json +138 -0
- package/data/chat-models/na/nanbeige4.2-3b-q4/versions/1.0.0/manifest.json +14 -0
- package/data/craftbook-templates/a1/a11y-audit/versions/1.1.3/craftbook.json +278 -0
- package/data/craftbook-templates/a1/a11y-audit/versions/1.1.3/test.json +118 -0
- package/data/craftbook-templates/ab/ab-test-readout/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/ab/ab-test-readout/versions/1.0.3/test.json +189 -0
- package/data/craftbook-templates/ac/accessibility-retrofit/versions/2.0.1/craftbook.json +616 -0
- package/data/craftbook-templates/ac/accessibility-retrofit/versions/2.0.1/test.json +228 -0
- package/data/craftbook-templates/ad/ad-variations/versions/1.0.3/craftbook.json +213 -0
- package/data/craftbook-templates/ad/ad-variations/versions/1.0.3/test.json +108 -0
- package/data/craftbook-templates/al/album-curate/versions/1.0.3/craftbook.json +250 -0
- package/data/craftbook-templates/al/album-curate/versions/1.0.3/test.json +147 -0
- package/data/craftbook-templates/al/alert-rules/versions/1.0.3/craftbook.json +213 -0
- package/data/craftbook-templates/al/alert-rules/versions/1.0.3/test.json +145 -0
- package/data/craftbook-templates/an/anniversary-cut/versions/1.0.5/craftbook.json +381 -0
- package/data/craftbook-templates/an/anniversary-cut/versions/1.0.5/test.json +157 -0
- package/data/craftbook-templates/an/annotated-bibliography/versions/1.0.3/craftbook.json +279 -0
- package/data/craftbook-templates/an/annotated-bibliography/versions/1.0.3/test.json +102 -0
- package/data/craftbook-templates/an/annual-document-review/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/an/annual-document-review/versions/1.0.3/test.json +113 -0
- package/data/craftbook-templates/an/anomaly-scan/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/an/anomaly-scan/versions/1.0.3/test.json +123 -0
- package/data/craftbook-templates/ap/api-contract-review/versions/1.1.3/craftbook.json +278 -0
- package/data/craftbook-templates/ap/api-contract-review/versions/1.1.3/test.json +192 -0
- package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.1/craftbook.json +600 -0
- package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.1/test.json +290 -0
- package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.3/craftbook.json +282 -0
- package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.3/test.json +139 -0
- package/data/craftbook-templates/au/audio-ad-spot/versions/1.0.3/craftbook.json +265 -0
- package/data/craftbook-templates/au/audio-ad-spot/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/au/audio-highlight-reel/versions/1.0.3/craftbook.json +259 -0
- package/data/craftbook-templates/au/audio-highlight-reel/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.5/craftbook.json +370 -0
- package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.5/test.json +221 -0
- package/data/craftbook-templates/au/auth-flow/versions/1.0.3/craftbook.json +279 -0
- package/data/craftbook-templates/au/auth-flow/versions/1.0.3/test.json +143 -0
- package/data/craftbook-templates/au/automation-recipe/versions/1.0.3/craftbook.json +324 -0
- package/data/craftbook-templates/au/automation-recipe/versions/1.0.3/test.json +296 -0
- package/data/craftbook-templates/ba/backup-routine/versions/1.0.3/craftbook.json +279 -0
- package/data/craftbook-templates/ba/backup-routine/versions/1.0.3/test.json +108 -0
- package/data/craftbook-templates/bl/blog-post/versions/1.0.3/craftbook.json +278 -0
- package/data/craftbook-templates/bl/blog-post/versions/1.0.3/test.json +118 -0
- package/data/craftbook-templates/bo/board-deck/versions/1.0.3/craftbook.json +279 -0
- package/data/craftbook-templates/bo/board-deck/versions/1.0.3/test.json +100 -0
- package/data/craftbook-templates/bo/board-game-web/versions/1.0.3/craftbook.json +288 -0
- package/data/craftbook-templates/bo/board-game-web/versions/1.0.3/test.json +99 -0
- package/data/craftbook-templates/bo/booking-automation/versions/1.0.3/craftbook.json +294 -0
- package/data/craftbook-templates/bo/booking-automation/versions/1.0.3/test.json +162 -0
- package/data/craftbook-templates/br/branding-website/versions/1.1.2/craftbook.json +329 -0
- package/data/craftbook-templates/br/branding-website/versions/1.1.2/test.json +164 -0
- package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.3/craftbook.json +219 -0
- package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.6/craftbook.json +620 -0
- package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.6/test.json +376 -0
- package/data/craftbook-templates/bu/bug-fix-tdd/versions/2.0.1/craftbook.json +728 -0
- package/data/craftbook-templates/bu/bug-fix-tdd/versions/2.0.1/test.json +221 -0
- package/data/craftbook-templates/bu/build-loop/versions/1.1.1/craftbook.json +139 -0
- package/data/craftbook-templates/bu/build-loop/versions/1.1.1/test.json +121 -0
- package/data/craftbook-templates/ca/calendar-brief/versions/1.0.3/craftbook.json +219 -0
- package/data/craftbook-templates/ca/calendar-brief/versions/1.0.3/test.json +102 -0
- package/data/craftbook-templates/ca/canvas-generative-art/versions/1.0.3/craftbook.json +222 -0
- package/data/craftbook-templates/ca/canvas-generative-art/versions/1.0.3/test.json +106 -0
- package/data/craftbook-templates/ca/careful-mode/versions/1.2.1/craftbook.json +64 -0
- package/data/craftbook-templates/ca/careful-mode/versions/1.2.1/test.json +110 -0
- package/data/craftbook-templates/ca/case-study/versions/1.0.3/craftbook.json +275 -0
- package/data/craftbook-templates/ca/case-study/versions/1.0.3/test.json +112 -0
- package/data/craftbook-templates/ca/case-study-writeup/versions/1.0.3/craftbook.json +289 -0
- package/data/craftbook-templates/ca/case-study-writeup/versions/1.0.3/test.json +105 -0
- package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.4/craftbook.json +279 -0
- package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.4/test.json +155 -0
- package/data/craftbook-templates/ch/chapter-weave/versions/1.0.3/craftbook.json +184 -0
- package/data/craftbook-templates/ch/chapter-weave/versions/1.0.3/test.json +98 -0
- package/data/craftbook-templates/ch/character-sheet/versions/1.0.3/craftbook.json +216 -0
- package/data/craftbook-templates/ch/character-sheet/versions/1.0.3/test.json +143 -0
- package/data/craftbook-templates/ch/character-turnaround/versions/1.0.3/craftbook.json +256 -0
- package/data/craftbook-templates/ch/character-turnaround/versions/1.0.3/test.json +178 -0
- package/data/craftbook-templates/ch/chart-pack/versions/1.0.3/craftbook.json +285 -0
- package/data/craftbook-templates/ch/chart-pack/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/ch/chrome-extension/versions/1.0.3/craftbook.json +286 -0
- package/data/craftbook-templates/ch/chrome-extension/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/ci/ci-pipeline/versions/2.0.1/craftbook.json +585 -0
- package/data/craftbook-templates/ci/ci-pipeline/versions/2.0.1/test.json +225 -0
- package/data/craftbook-templates/ci/citation-audit/versions/1.0.3/craftbook.json +278 -0
- package/data/craftbook-templates/ci/citation-audit/versions/1.0.3/test.json +152 -0
- package/data/craftbook-templates/cl/cli-tool/versions/1.1.3/craftbook.json +283 -0
- package/data/craftbook-templates/cl/cli-tool/versions/1.1.3/test.json +128 -0
- package/data/craftbook-templates/co/code-review/versions/1.0.1/craftbook.json +229 -0
- package/data/craftbook-templates/co/code-review/versions/1.0.1/test.json +249 -0
- package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.3/craftbook.json +280 -0
- package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.3/test.json +119 -0
- package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.3/craftbook.json +279 -0
- package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.3/test.json +122 -0
- package/data/craftbook-templates/co/codemod-sweep/versions/1.0.0/test.json +1 -1
- package/data/craftbook-templates/co/codemod-sweep/versions/1.0.1/craftbook.json +603 -0
- package/data/craftbook-templates/co/codemod-sweep/versions/1.0.1/test.json +252 -0
- package/data/craftbook-templates/co/cohort-analysis/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/co/cohort-analysis/versions/1.0.3/test.json +229 -0
- package/data/craftbook-templates/co/company-research-brief/versions/1.0.3/craftbook.json +272 -0
- package/data/craftbook-templates/co/company-research-brief/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/co/comparison-matrix/versions/1.0.3/craftbook.json +286 -0
- package/data/craftbook-templates/co/comparison-matrix/versions/1.0.3/test.json +109 -0
- package/data/craftbook-templates/co/compat-check/versions/1.0.3/craftbook.json +285 -0
- package/data/craftbook-templates/co/compat-check/versions/1.0.3/test.json +148 -0
- package/data/craftbook-templates/co/competitive-analysis/versions/1.0.3/craftbook.json +273 -0
- package/data/craftbook-templates/co/competitive-analysis/versions/1.0.3/test.json +119 -0
- package/data/craftbook-templates/co/comprehensive-codebase-review/versions/1.0.1/craftbook.json +518 -0
- package/data/craftbook-templates/co/comprehensive-codebase-review/versions/1.0.1/test.json +160 -0
- package/data/craftbook-templates/co/config-scaffold/versions/1.0.3/craftbook.json +215 -0
- package/data/craftbook-templates/co/config-scaffold/versions/1.0.3/test.json +120 -0
- package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.3/test.json +152 -0
- package/data/craftbook-templates/co/content-deck/versions/1.2.3/craftbook.json +335 -0
- package/data/craftbook-templates/co/content-deck/versions/1.2.3/test.json +169 -0
- package/data/craftbook-templates/co/contract-template/versions/1.0.3/craftbook.json +283 -0
- package/data/craftbook-templates/co/contract-template/versions/1.0.3/test.json +102 -0
- package/data/craftbook-templates/co/cookbook-layout/versions/1.0.3/craftbook.json +233 -0
- package/data/craftbook-templates/co/cookbook-layout/versions/1.0.3/test.json +159 -0
- package/data/craftbook-templates/co/copy-review/versions/1.0.3/craftbook.json +278 -0
- package/data/craftbook-templates/co/copy-review/versions/1.0.3/test.json +105 -0
- package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.3/craftbook.json +339 -0
- package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.3/test.json +187 -0
- package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.3/craftbook.json +279 -0
- package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.3/test.json +159 -0
- package/data/craftbook-templates/co/cover-letter/versions/1.0.3/craftbook.json +216 -0
- package/data/craftbook-templates/co/cover-letter/versions/1.0.3/test.json +100 -0
- package/data/craftbook-templates/cr/crm-update-batch/versions/1.0.3/craftbook.json +212 -0
- package/data/craftbook-templates/cr/crm-update-batch/versions/1.0.3/test.json +207 -0
- package/data/craftbook-templates/cr/cron-job/versions/1.0.3/craftbook.json +282 -0
- package/data/craftbook-templates/cr/cron-job/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/cr/crossword-forge/versions/1.0.3/craftbook.json +301 -0
- package/data/craftbook-templates/cr/crossword-forge/versions/1.0.3/test.json +138 -0
- package/data/craftbook-templates/cs/csv-transformer/versions/1.2.4/craftbook.json +211 -0
- package/data/craftbook-templates/cs/csv-transformer/versions/1.2.4/test.json +102 -0
- package/data/craftbook-templates/da/dashboard-spec/versions/1.0.3/craftbook.json +219 -0
- package/data/craftbook-templates/da/dashboard-spec/versions/1.0.3/test.json +114 -0
- package/data/craftbook-templates/da/data-dictionary/versions/1.0.3/craftbook.json +219 -0
- package/data/craftbook-templates/da/data-dictionary/versions/1.0.3/test.json +101 -0
- package/data/craftbook-templates/da/data-export-migrate/versions/1.0.3/craftbook.json +282 -0
- package/data/craftbook-templates/da/data-export-migrate/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/da/data-join-merge/versions/1.0.3/craftbook.json +212 -0
- package/data/craftbook-templates/da/data-join-merge/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.4/craftbook.json +281 -0
- package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.4/test.json +162 -0
- package/data/craftbook-templates/da/data-quality-audit/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/da/data-quality-audit/versions/1.0.3/test.json +329 -0
- package/data/craftbook-templates/da/data-to-report/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/da/data-to-report/versions/1.0.3/test.json +98 -0
- package/data/craftbook-templates/da/data-viz-page/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/da/data-viz-page/versions/1.0.3/test.json +117 -0
- package/data/craftbook-templates/da/dataset-clean/versions/1.2.4/craftbook.json +212 -0
- package/data/craftbook-templates/da/dataset-clean/versions/1.2.4/test.json +95 -0
- package/data/craftbook-templates/db/db-index-tuning/versions/1.0.3/craftbook.json +283 -0
- package/data/craftbook-templates/db/db-index-tuning/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/de/deep-security-review/versions/1.1.3/craftbook.json +378 -0
- package/data/craftbook-templates/de/deep-security-review/versions/1.1.3/test.json +184 -0
- package/data/craftbook-templates/de/dependency-audit/versions/1.1.3/craftbook.json +275 -0
- package/data/craftbook-templates/de/dependency-audit/versions/1.1.3/test.json +111 -0
- package/data/craftbook-templates/de/dependency-upgrade/versions/1.0.1/craftbook.json +619 -0
- package/data/craftbook-templates/de/dependency-upgrade/versions/1.0.1/test.json +235 -0
- package/data/craftbook-templates/de/deploy-checklist/versions/1.0.3/craftbook.json +288 -0
- package/data/craftbook-templates/de/deploy-checklist/versions/1.0.3/test.json +165 -0
- package/data/craftbook-templates/de/design-review/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/de/design-review/versions/1.0.3/test.json +121 -0
- package/data/craftbook-templates/de/design-system-consultation/versions/2.0.5/craftbook.json +627 -0
- package/data/craftbook-templates/de/design-system-consultation/versions/2.0.5/test.json +201 -0
- package/data/craftbook-templates/di/diagram-from-text/versions/1.0.3/craftbook.json +221 -0
- package/data/craftbook-templates/di/diagram-from-text/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/di/digest-from-feeds/versions/1.0.3/craftbook.json +283 -0
- package/data/craftbook-templates/di/digest-from-feeds/versions/1.0.3/test.json +162 -0
- package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.3/craftbook.json +282 -0
- package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/do/doc-rewrite/versions/1.0.3/craftbook.json +216 -0
- package/data/craftbook-templates/do/doc-rewrite/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/do/dockerize-app/versions/1.0.3/craftbook.json +282 -0
- package/data/craftbook-templates/do/dockerize-app/versions/1.0.3/test.json +92 -0
- package/data/craftbook-templates/do/docs-site/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/do/docs-site/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.3/craftbook.json +279 -0
- package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.3/test.json +135 -0
- package/data/craftbook-templates/dr/draft-social-post/versions/1.0.1/craftbook.json +321 -0
- package/data/craftbook-templates/dr/draft-social-post/versions/1.0.1/test.json +161 -0
- package/data/craftbook-templates/dr/drive-wrap-up/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/dr/drive-wrap-up/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/du/due-diligence-brief/versions/1.0.3/craftbook.json +278 -0
- package/data/craftbook-templates/du/due-diligence-brief/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/eb/ebook-compile/versions/1.0.3/craftbook.json +280 -0
- package/data/craftbook-templates/eb/ebook-compile/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/ed/edit-notes/versions/1.0.3/craftbook.json +312 -0
- package/data/craftbook-templates/ed/edit-notes/versions/1.0.3/test.json +146 -0
- package/data/craftbook-templates/em/email-sequence/versions/1.0.3/craftbook.json +274 -0
- package/data/craftbook-templates/em/email-sequence/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/em/email-template/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/em/email-template/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.5/craftbook.json +577 -0
- package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.5/test.json +191 -0
- package/data/craftbook-templates/ep/episode-plan/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/ep/episode-plan/versions/1.0.3/test.json +100 -0
- package/data/craftbook-templates/es/escalation-playbook/versions/1.0.3/craftbook.json +219 -0
- package/data/craftbook-templates/es/escalation-playbook/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/ev/evidence-brief/versions/1.0.3/craftbook.json +279 -0
- package/data/craftbook-templates/ev/evidence-brief/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/ex/executive-level-review/versions/2.0.5/craftbook.json +606 -0
- package/data/craftbook-templates/ex/executive-level-review/versions/2.0.5/test.json +139 -0
- package/data/craftbook-templates/ex/expense-categorize/versions/1.0.3/craftbook.json +274 -0
- package/data/craftbook-templates/ex/expense-categorize/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/fa/fact-check/versions/1.0.3/craftbook.json +278 -0
- package/data/craftbook-templates/fa/fact-check/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/fa/family-story-chapter/versions/1.0.3/craftbook.json +184 -0
- package/data/craftbook-templates/fa/family-story-chapter/versions/1.0.3/test.json +111 -0
- package/data/craftbook-templates/fa/faq-from-docs/versions/1.0.3/craftbook.json +215 -0
- package/data/craftbook-templates/fa/faq-from-docs/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/fa/favicon-set/versions/1.0.3/craftbook.json +284 -0
- package/data/craftbook-templates/fa/favicon-set/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.1.1/craftbook.json +324 -0
- package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.1.1/test.json +162 -0
- package/data/craftbook-templates/fe/feedback-widget/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/fe/feedback-widget/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/fl/flaky-test-fix/versions/1.0.1/craftbook.json +716 -0
- package/data/craftbook-templates/fl/flaky-test-fix/versions/1.0.1/test.json +239 -0
- package/data/craftbook-templates/fo/folder-to-audio/versions/1.0.3/craftbook.json +215 -0
- package/data/craftbook-templates/fo/folder-to-audio/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/fo/forecast-model/versions/1.0.3/craftbook.json +216 -0
- package/data/craftbook-templates/fo/forecast-model/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.3/craftbook.json +282 -0
- package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.3/test.json +162 -0
- package/data/craftbook-templates/fo/form-wizard/versions/1.0.3/craftbook.json +222 -0
- package/data/craftbook-templates/fo/form-wizard/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/fr/freeze-scope/versions/1.3.1/craftbook.json +96 -0
- package/data/craftbook-templates/fr/freeze-scope/versions/1.3.1/test.json +131 -0
- package/data/craftbook-templates/ga/game-with-screens/versions/1.0.3/craftbook.json +306 -0
- package/data/craftbook-templates/ga/game-with-screens/versions/1.0.3/test.json +99 -0
- package/data/craftbook-templates/gl/glossary-build/versions/1.0.3/craftbook.json +274 -0
- package/data/craftbook-templates/gl/glossary-build/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/gr/graphql-api/versions/1.0.4/craftbook.json +281 -0
- package/data/craftbook-templates/gr/graphql-api/versions/1.0.4/test.json +92 -0
- package/data/craftbook-templates/gr/grpc-service/versions/1.0.3/craftbook.json +283 -0
- package/data/craftbook-templates/gr/grpc-service/versions/1.0.3/test.json +92 -0
- package/data/craftbook-templates/ha/handbook-section/versions/1.0.3/craftbook.json +283 -0
- package/data/craftbook-templates/ha/handbook-section/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/he/hero-image/versions/1.0.3/craftbook.json +289 -0
- package/data/craftbook-templates/he/hero-image/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.3/craftbook.json +365 -0
- package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.3/test.json +128 -0
- package/data/craftbook-templates/ho/hotfix-flow/versions/2.0.1/craftbook.json +605 -0
- package/data/craftbook-templates/ho/hotfix-flow/versions/2.0.1/test.json +220 -0
- package/data/craftbook-templates/ht/html-arcade-game/versions/1.2.2/craftbook.json +337 -0
- package/data/craftbook-templates/ht/html-arcade-game/versions/1.2.2/test.json +176 -0
- package/data/craftbook-templates/ht/html-puzzle-game/versions/1.0.3/craftbook.json +288 -0
- package/data/craftbook-templates/ht/html-puzzle-game/versions/1.0.3/test.json +99 -0
- package/data/craftbook-templates/ic/icon-pack/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/ic/icon-pack/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/id/idea-office-hours/versions/2.0.5/craftbook.json +571 -0
- package/data/craftbook-templates/id/idea-office-hours/versions/2.0.5/test.json +141 -0
- package/data/craftbook-templates/id/idle-clicker-game/versions/1.0.3/craftbook.json +288 -0
- package/data/craftbook-templates/id/idle-clicker-game/versions/1.0.3/test.json +99 -0
- package/data/craftbook-templates/im/image-batch-edit/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/im/image-batch-edit/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/im/image-dedup-cluster/versions/1.0.3/craftbook.json +276 -0
- package/data/craftbook-templates/im/image-dedup-cluster/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/im/image-palette-extract/versions/1.0.3/craftbook.json +221 -0
- package/data/craftbook-templates/im/image-palette-extract/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/im/image-seo-rename/versions/1.0.3/craftbook.json +216 -0
- package/data/craftbook-templates/im/image-seo-rename/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/im/image-set-index/versions/1.2.2/craftbook.json +295 -0
- package/data/craftbook-templates/im/image-set-index/versions/1.2.2/test.json +180 -0
- package/data/craftbook-templates/in/inbox-triage/versions/1.0.3/craftbook.json +276 -0
- package/data/craftbook-templates/in/inbox-triage/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/in/incident-comms-templates/versions/1.0.3/craftbook.json +219 -0
- package/data/craftbook-templates/in/incident-comms-templates/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/in/incident-postmortem/versions/1.0.3/craftbook.json +288 -0
- package/data/craftbook-templates/in/incident-postmortem/versions/1.0.3/test.json +109 -0
- package/data/craftbook-templates/in/insurance-inventory/versions/1.0.3/craftbook.json +288 -0
- package/data/craftbook-templates/in/insurance-inventory/versions/1.0.3/test.json +121 -0
- package/data/craftbook-templates/in/interactive-quiz/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/in/interactive-quiz/versions/1.0.3/test.json +99 -0
- package/data/craftbook-templates/in/invitation-design/versions/1.0.3/craftbook.json +240 -0
- package/data/craftbook-templates/in/invitation-design/versions/1.0.3/test.json +121 -0
- package/data/craftbook-templates/in/invoice-generator/versions/1.0.3/craftbook.json +222 -0
- package/data/craftbook-templates/in/invoice-generator/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/in/invoice-run/versions/1.1.3/craftbook.json +354 -0
- package/data/craftbook-templates/in/invoice-run/versions/1.1.3/test.json +140 -0
- package/data/craftbook-templates/index.json +1 -1
- package/data/craftbook-templates/it/item-intake/versions/1.0.3/craftbook.json +276 -0
- package/data/craftbook-templates/it/item-intake/versions/1.0.3/test.json +145 -0
- package/data/craftbook-templates/ju/juice-pass/versions/1.0.3/craftbook.json +228 -0
- package/data/craftbook-templates/ju/juice-pass/versions/1.0.3/test.json +116 -0
- package/data/craftbook-templates/kn/knowledge-base-article/versions/1.0.3/craftbook.json +275 -0
- package/data/craftbook-templates/kn/knowledge-base-article/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/kp/kpi-scorecard/versions/1.0.3/craftbook.json +285 -0
- package/data/craftbook-templates/kp/kpi-scorecard/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/la/landing-copy/versions/1.0.3/craftbook.json +275 -0
- package/data/craftbook-templates/la/landing-copy/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/la/landing-page/versions/1.0.3/craftbook.json +348 -0
- package/data/craftbook-templates/la/landing-page/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/le/lead-enrichment/versions/1.0.3/craftbook.json +274 -0
- package/data/craftbook-templates/le/lead-enrichment/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/li/library-package/versions/1.0.3/craftbook.json +284 -0
- package/data/craftbook-templates/li/library-package/versions/1.0.3/test.json +92 -0
- package/data/craftbook-templates/li/literature-review/versions/1.0.3/craftbook.json +279 -0
- package/data/craftbook-templates/li/literature-review/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/lo/localize-content/versions/1.0.3/craftbook.json +275 -0
- package/data/craftbook-templates/lo/localize-content/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/lo/logo-set/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/lo/logo-set/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/ma/market-scan/versions/1.0.3/craftbook.json +279 -0
- package/data/craftbook-templates/ma/market-scan/versions/1.0.3/test.json +213 -0
- package/data/craftbook-templates/me/meeting-minutes/versions/1.0.3/craftbook.json +220 -0
- package/data/craftbook-templates/me/meeting-minutes/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.0.3/craftbook.json +219 -0
- package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.3/craftbook.json +218 -0
- package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.3/test.json +187 -0
- package/data/craftbook-templates/me/meeting-summary-audio/versions/1.0.3/craftbook.json +220 -0
- package/data/craftbook-templates/me/meeting-summary-audio/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.3/craftbook.json +250 -0
- package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.3/test.json +112 -0
- package/data/craftbook-templates/me/message-queue-consumer/versions/1.0.3/craftbook.json +283 -0
- package/data/craftbook-templates/me/message-queue-consumer/versions/1.0.3/test.json +92 -0
- package/data/craftbook-templates/mi/micro-game-jam/versions/1.0.3/craftbook.json +229 -0
- package/data/craftbook-templates/mi/micro-game-jam/versions/1.0.3/test.json +99 -0
- package/data/craftbook-templates/mo/mock-interview/versions/1.0.3/craftbook.json +270 -0
- package/data/craftbook-templates/mo/mock-interview/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/mo/mod-scaffold/versions/1.0.3/craftbook.json +293 -0
- package/data/craftbook-templates/mo/mod-scaffold/versions/1.0.3/test.json +136 -0
- package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.3/craftbook.json +294 -0
- package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.3/test.json +197 -0
- package/data/craftbook-templates/mo/month-close/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/mo/month-close/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/mo/monthly-recording-review/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/mo/monthly-recording-review/versions/1.0.3/test.json +120 -0
- package/data/craftbook-templates/mo/moodboard/versions/1.0.3/craftbook.json +221 -0
- package/data/craftbook-templates/mo/moodboard/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/mo/morning-brief/versions/1.0.3/craftbook.json +241 -0
- package/data/craftbook-templates/mo/morning-brief/versions/1.0.3/test.json +225 -0
- package/data/craftbook-templates/mo/morning-report/versions/1.0.3/craftbook.json +289 -0
- package/data/craftbook-templates/mo/morning-report/versions/1.0.3/test.json +250 -0
- package/data/craftbook-templates/mu/music-metadata-tag/versions/1.0.3/craftbook.json +212 -0
- package/data/craftbook-templates/mu/music-metadata-tag/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.3/craftbook.json +324 -0
- package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.3/test.json +86 -0
- package/data/craftbook-templates/ne/newsletter-issue/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/ne/newsletter-issue/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/ni/nightly-fix-sweep/versions/1.0.1/craftbook.json +242 -0
- package/data/craftbook-templates/ni/nightly-fix-sweep/versions/1.0.1/test.json +120 -0
- package/data/craftbook-templates/no/notification-router/versions/1.0.3/craftbook.json +293 -0
- package/data/craftbook-templates/no/notification-router/versions/1.0.3/test.json +162 -0
- package/data/craftbook-templates/oc/ocr-extract/versions/1.0.3/craftbook.json +275 -0
- package/data/craftbook-templates/oc/ocr-extract/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/of/offer-compare/versions/1.0.3/craftbook.json +214 -0
- package/data/craftbook-templates/of/offer-compare/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/of/office-hours/versions/1.1.1/craftbook.json +150 -0
- package/data/craftbook-templates/of/office-hours/versions/1.1.1/test.json +118 -0
- package/data/craftbook-templates/on/onboarding-checklist/versions/1.0.3/craftbook.json +219 -0
- package/data/craftbook-templates/on/onboarding-checklist/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/on/onboarding-flow/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/on/onboarding-flow/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/on/oncall-handoff/versions/1.0.3/craftbook.json +219 -0
- package/data/craftbook-templates/on/oncall-handoff/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/on/one-pager/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/on/one-pager/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/op/ops-runbook/versions/1.0.3/craftbook.json +197 -0
- package/data/craftbook-templates/op/ops-runbook/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/pa/page-spread/versions/1.0.3/craftbook.json +216 -0
- package/data/craftbook-templates/pa/page-spread/versions/1.0.3/test.json +132 -0
- package/data/craftbook-templates/pa/parser-grammar/versions/1.0.3/craftbook.json +283 -0
- package/data/craftbook-templates/pa/parser-grammar/versions/1.0.3/test.json +92 -0
- package/data/craftbook-templates/pe/perf-audit/versions/1.1.1/craftbook.json +320 -0
- package/data/craftbook-templates/pe/perf-audit/versions/1.1.1/test.json +162 -0
- package/data/craftbook-templates/pe/perf-optimization/versions/2.0.1/craftbook.json +695 -0
- package/data/craftbook-templates/pe/perf-optimization/versions/2.0.1/test.json +235 -0
- package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.3/craftbook.json +276 -0
- package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.3/test.json +122 -0
- package/data/craftbook-templates/ph/photo-cull/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/ph/photo-cull/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/ph/physics-toy/versions/1.0.3/craftbook.json +222 -0
- package/data/craftbook-templates/ph/physics-toy/versions/1.0.3/test.json +99 -0
- package/data/craftbook-templates/pi/pitch-deck/versions/1.0.3/craftbook.json +279 -0
- package/data/craftbook-templates/pi/pitch-deck/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/pl/plan/versions/1.0.1/craftbook.json +222 -0
- package/data/craftbook-templates/pl/plan/versions/1.0.1/test.json +91 -0
- package/data/craftbook-templates/pl/playtest-report/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/pl/playtest-report/versions/1.0.3/test.json +111 -0
- package/data/craftbook-templates/po/podcast-chaptering/versions/1.0.3/craftbook.json +276 -0
- package/data/craftbook-templates/po/podcast-chaptering/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/po/portfolio-site/versions/1.0.3/craftbook.json +289 -0
- package/data/craftbook-templates/po/portfolio-site/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.9/craftbook.json +589 -0
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.9/test.json +240 -0
- package/data/craftbook-templates/pr/pr-security-review/versions/1.0.3/craftbook.json +273 -0
- package/data/craftbook-templates/pr/pr-security-review/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/pr/practice-exam/versions/1.0.3/craftbook.json +296 -0
- package/data/craftbook-templates/pr/practice-exam/versions/1.0.3/test.json +117 -0
- package/data/craftbook-templates/pr/practice-session/versions/1.0.3/craftbook.json +250 -0
- package/data/craftbook-templates/pr/practice-session/versions/1.0.3/test.json +114 -0
- package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/pr/press-release/versions/1.0.3/craftbook.json +275 -0
- package/data/craftbook-templates/pr/press-release/versions/1.0.3/test.json +356 -0
- package/data/craftbook-templates/pr/price-tracker/versions/1.0.3/craftbook.json +220 -0
- package/data/craftbook-templates/pr/price-tracker/versions/1.0.3/test.json +150 -0
- package/data/craftbook-templates/pr/pricing-page/versions/1.0.3/craftbook.json +348 -0
- package/data/craftbook-templates/pr/pricing-page/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/pr/product-descriptions/versions/1.0.3/craftbook.json +213 -0
- package/data/craftbook-templates/pr/product-descriptions/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/pr/proposal-sow/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/pr/proposal-sow/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/pu/pull-request-review/versions/1.9.1/craftbook.json +432 -0
- package/data/craftbook-templates/pu/pull-request-review/versions/1.9.1/test.json +141 -0
- package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.3/craftbook.json +233 -0
- package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.3/test.json +123 -0
- package/data/craftbook-templates/pw/pwa-offline/versions/1.0.3/craftbook.json +293 -0
- package/data/craftbook-templates/pw/pwa-offline/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.3/test.json +116 -0
- package/data/craftbook-templates/re/reading-list/versions/1.0.3/craftbook.json +218 -0
- package/data/craftbook-templates/re/reading-list/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/re/receipt-intake/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/re/receipt-intake/versions/1.0.3/test.json +149 -0
- package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.3/craftbook.json +274 -0
- package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/re/reception-report/versions/1.0.2/craftbook.json +295 -0
- package/data/craftbook-templates/re/reception-report/versions/1.0.2/test.json +168 -0
- package/data/craftbook-templates/re/recipe-capture/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/re/recipe-capture/versions/1.0.3/test.json +128 -0
- package/data/craftbook-templates/re/record-a-relative/versions/1.0.3/craftbook.json +250 -0
- package/data/craftbook-templates/re/record-a-relative/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.3/craftbook.json +282 -0
- package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/re/refactor-module/versions/2.0.1/craftbook.json +693 -0
- package/data/craftbook-templates/re/refactor-module/versions/2.0.1/test.json +241 -0
- package/data/craftbook-templates/re/regex-builder/versions/1.0.3/craftbook.json +283 -0
- package/data/craftbook-templates/re/regex-builder/versions/1.0.3/test.json +92 -0
- package/data/craftbook-templates/re/release-announcement/versions/1.0.3/craftbook.json +290 -0
- package/data/craftbook-templates/re/release-announcement/versions/1.0.3/test.json +202 -0
- package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.3/craftbook.json +358 -0
- package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.3/test.json +138 -0
- package/data/craftbook-templates/re/release-notes/versions/1.0.4/craftbook.json +336 -0
- package/data/craftbook-templates/re/release-notes/versions/1.0.4/test.json +111 -0
- package/data/craftbook-templates/re/release-readiness-review/versions/1.1.1/craftbook.json +317 -0
- package/data/craftbook-templates/re/release-readiness-review/versions/1.1.1/test.json +110 -0
- package/data/craftbook-templates/re/reliability-review/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/re/reliability-review/versions/1.0.3/test.json +115 -0
- package/data/craftbook-templates/re/report-pdf/versions/1.1.3/craftbook.json +317 -0
- package/data/craftbook-templates/re/report-pdf/versions/1.1.3/test.json +98 -0
- package/data/craftbook-templates/re/research-report/versions/1.0.3/craftbook.json +279 -0
- package/data/craftbook-templates/re/research-report/versions/1.0.3/test.json +113 -0
- package/data/craftbook-templates/re/research-to-document/versions/1.2.3/craftbook.json +388 -0
- package/data/craftbook-templates/re/research-to-document/versions/1.2.3/test.json +243 -0
- package/data/craftbook-templates/re/rest-api/versions/1.0.4/craftbook.json +282 -0
- package/data/craftbook-templates/re/rest-api/versions/1.0.4/test.json +387 -0
- package/data/craftbook-templates/re/resume-cv/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/re/resume-cv/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/re/reviewer-loop/versions/1.0.1/craftbook.json +144 -0
- package/data/craftbook-templates/re/reviewer-loop/versions/1.0.1/test.json +135 -0
- package/data/craftbook-templates/ro/rollback-plan/versions/1.0.3/craftbook.json +290 -0
- package/data/craftbook-templates/ro/rollback-plan/versions/1.0.3/test.json +162 -0
- package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.6/craftbook.json +595 -0
- package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.6/test.json +157 -0
- package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.4/craftbook.json +302 -0
- package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.4/test.json +137 -0
- package/data/craftbook-templates/ru/runbook/versions/1.0.3/craftbook.json +282 -0
- package/data/craftbook-templates/ru/runbook/versions/1.0.3/test.json +118 -0
- package/data/craftbook-templates/sc/schema-migration/versions/2.0.1/craftbook.json +619 -0
- package/data/craftbook-templates/sc/schema-migration/versions/2.0.1/test.json +225 -0
- package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.4/craftbook.json +274 -0
- package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.4/test.json +162 -0
- package/data/craftbook-templates/sc/script-automation/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/sc/script-automation/versions/1.0.3/test.json +162 -0
- package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.4/craftbook.json +282 -0
- package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.4/test.json +90 -0
- package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/se/security-architecture-review/versions/2.0.5/craftbook.json +608 -0
- package/data/craftbook-templates/se/security-architecture-review/versions/2.0.5/test.json +157 -0
- package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.3/craftbook.json +213 -0
- package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/sh/ship/versions/1.1.1/craftbook.json +301 -0
- package/data/craftbook-templates/sh/ship/versions/1.1.1/test.json +225 -0
- package/data/craftbook-templates/so/social-digest/versions/1.0.2/craftbook.json +233 -0
- package/data/craftbook-templates/so/social-digest/versions/1.0.2/test.json +168 -0
- package/data/craftbook-templates/so/social-thread/versions/1.0.3/craftbook.json +216 -0
- package/data/craftbook-templates/so/social-thread/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/so/source-quality-audit/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/so/source-quality-audit/versions/1.0.3/test.json +158 -0
- package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.3/craftbook.json +280 -0
- package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/sp/spec-authoring/versions/2.0.5/craftbook.json +610 -0
- package/data/craftbook-templates/sp/spec-authoring/versions/2.0.5/test.json +162 -0
- package/data/craftbook-templates/sp/spec-doc/versions/1.0.3/craftbook.json +280 -0
- package/data/craftbook-templates/sp/spec-doc/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.3/craftbook.json +221 -0
- package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.3/test.json +160 -0
- package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.3/craftbook.json +271 -0
- package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/sq/sql-analysis/versions/1.0.3/craftbook.json +218 -0
- package/data/craftbook-templates/sq/sql-analysis/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/st/standup-summary/versions/1.0.3/craftbook.json +219 -0
- package/data/craftbook-templates/st/standup-summary/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/st/state-machine/versions/1.0.3/craftbook.json +283 -0
- package/data/craftbook-templates/st/state-machine/versions/1.0.3/test.json +92 -0
- package/data/craftbook-templates/st/status-report/versions/1.0.3/craftbook.json +283 -0
- package/data/craftbook-templates/st/status-report/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/su/subscription-audit/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/su/subscription-audit/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/su/subtitle-generator/versions/1.0.3/craftbook.json +264 -0
- package/data/craftbook-templates/su/subtitle-generator/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/su/summarize-long/versions/1.0.3/craftbook.json +216 -0
- package/data/craftbook-templates/su/summarize-long/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/su/survey-analysis/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/su/survey-analysis/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/sv/svg-animation/versions/1.0.3/craftbook.json +219 -0
- package/data/craftbook-templates/sv/svg-animation/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/ta/tailor-resume/versions/1.0.3/craftbook.json +226 -0
- package/data/craftbook-templates/ta/tailor-resume/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/te/technical-documentation/versions/2.0.5/craftbook.json +582 -0
- package/data/craftbook-templates/te/technical-documentation/versions/2.0.5/test.json +174 -0
- package/data/craftbook-templates/te/test-coverage-review/versions/1.2.1/craftbook.json +320 -0
- package/data/craftbook-templates/te/test-coverage-review/versions/1.2.1/test.json +116 -0
- package/data/craftbook-templates/te/test-suite-backfill/versions/2.0.1/craftbook.json +590 -0
- package/data/craftbook-templates/te/test-suite-backfill/versions/2.0.1/test.json +195 -0
- package/data/craftbook-templates/th/thank-you-batch/versions/1.0.3/craftbook.json +280 -0
- package/data/craftbook-templates/th/thank-you-batch/versions/1.0.3/test.json +144 -0
- package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.3/craftbook.json +280 -0
- package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.3/test.json +142 -0
- package/data/craftbook-templates/th/threat-model/versions/1.0.3/craftbook.json +274 -0
- package/data/craftbook-templates/th/threat-model/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.3/craftbook.json +214 -0
- package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/ti/tileset-batch/versions/1.0.3/craftbook.json +321 -0
- package/data/craftbook-templates/ti/tileset-batch/versions/1.0.3/test.json +159 -0
- package/data/craftbook-templates/to/tone-rewrite/versions/1.0.3/craftbook.json +216 -0
- package/data/craftbook-templates/to/tone-rewrite/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/to/topic-explainer/versions/1.0.3/craftbook.json +274 -0
- package/data/craftbook-templates/to/topic-explainer/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.3/craftbook.json +250 -0
- package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.3/test.json +101 -0
- package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.3/craftbook.json +218 -0
- package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/tr/transcribe-index/versions/1.0.3/craftbook.json +329 -0
- package/data/craftbook-templates/tr/transcribe-index/versions/1.0.3/test.json +154 -0
- package/data/craftbook-templates/tr/translate-content/versions/1.1.2/craftbook.json +139 -0
- package/data/craftbook-templates/tr/translate-content/versions/1.1.2/test.json +141 -0
- package/data/craftbook-templates/ty/type-safety-pass/versions/2.0.1/craftbook.json +589 -0
- package/data/craftbook-templates/ty/type-safety-pass/versions/2.0.1/test.json +221 -0
- package/data/craftbook-templates/ux/ux-update/versions/1.0.1/craftbook.json +604 -0
- package/data/craftbook-templates/ux/ux-update/versions/1.0.1/test.json +206 -0
- package/data/craftbook-templates/ve/version-bump/versions/1.1.1/craftbook.json +322 -0
- package/data/craftbook-templates/ve/version-bump/versions/1.1.1/test.json +92 -0
- package/data/craftbook-templates/vi/video-storyboard/versions/1.0.3/craftbook.json +221 -0
- package/data/craftbook-templates/vi/video-storyboard/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/vi/visit-prep/versions/1.0.3/craftbook.json +274 -0
- package/data/craftbook-templates/vi/visit-prep/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/vo/voiceover-script/versions/1.0.3/craftbook.json +216 -0
- package/data/craftbook-templates/vo/voiceover-script/versions/1.0.3/test.json +103 -0
- package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.3/craftbook.json +291 -0
- package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.3/test.json +124 -0
- package/data/craftbook-templates/we/web-app-crud/versions/1.0.3/craftbook.json +281 -0
- package/data/craftbook-templates/we/web-app-crud/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/we/web-component/versions/1.0.3/craftbook.json +222 -0
- package/data/craftbook-templates/we/web-component/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/we/webhook-handler/versions/1.0.3/craftbook.json +283 -0
- package/data/craftbook-templates/we/webhook-handler/versions/1.0.3/test.json +162 -0
- package/data/craftbook-templates/we/week-plan/versions/1.0.3/craftbook.json +276 -0
- package/data/craftbook-templates/we/week-plan/versions/1.0.3/test.json +258 -0
- package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.3/test.json +97 -0
- package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.3/craftbook.json +214 -0
- package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.3/test.json +104 -0
- package/data/craftbook-templates/we/weekly-review/versions/1.0.3/craftbook.json +219 -0
- package/data/craftbook-templates/we/weekly-review/versions/1.0.3/test.json +110 -0
- package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.3/test.json +138 -0
- package/data/craftbook-templates/wh/whitepaper/versions/1.0.3/craftbook.json +277 -0
- package/data/craftbook-templates/wh/whitepaper/versions/1.0.3/test.json +113 -0
- package/data/craftbook-templates/ye/year-in-review/versions/1.0.3/craftbook.json +250 -0
- package/data/craftbook-templates/ye/year-in-review/versions/1.0.3/test.json +145 -0
- package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.3/craftbook.json +271 -0
- package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.3/test.json +103 -0
- package/package.json +1 -1
- package/schemas/craftbook-doc.schema.json +86 -0
- package/schemas/craftbook-template-version.schema.json +86 -0
- package/schemas/knowledge-catalog-identity.schema.json +122 -0
- package/schemas/knowledge-catalog-version.schema.json +169 -0
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"title": "Apply review findings with a reconciled ledger",
|
|
4
|
+
"objective": "The craftbook drives a real findings pass: three seeded review findings (unvalidated numeric input, a swallowed error, a misleading error message) read from an artifacts-drawer findings file, triaged against the current code, fixed at their actual sites, and verified per finding - with behavior probes proving each one genuinely closed and the neighborhood suite still green.",
|
|
5
|
+
"tags": [
|
|
6
|
+
"code",
|
|
7
|
+
"review-findings",
|
|
8
|
+
"bug-fix",
|
|
9
|
+
"tactical-fleet"
|
|
10
|
+
],
|
|
11
|
+
"prompt": "Use the Apply Review Findings craftbook: last week's code review left three findings in the artifacts drawer at reviews/findings.json. Triage them against the current code, fix what is real at the real sites, and account for every finding.",
|
|
12
|
+
"setup": {
|
|
13
|
+
"projectName": "Order Intake",
|
|
14
|
+
"about": "A tiny order-intake library (quantity parsing, config loading, discounts). Tests run with `npm run test` (node --test).",
|
|
15
|
+
"files": [
|
|
16
|
+
{
|
|
17
|
+
"path": "package.json",
|
|
18
|
+
"content": "{\n \"name\": \"intake\",\n \"private\": true,\n \"version\": \"1.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"test\": \"node --test\"\n }\n}\n",
|
|
19
|
+
"modelInput": false
|
|
20
|
+
},
|
|
21
|
+
{
|
|
22
|
+
"path": "src/quantity.js",
|
|
23
|
+
"content": "export function parseQuantity(raw) {\n return parseInt(raw, 10);\n}\n\nexport function clampQuantity(qty, max) {\n return Math.min(qty, max);\n}\n"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"path": "src/config.js",
|
|
27
|
+
"content": "import { readFileSync } from 'node:fs';\n\nexport function loadConfig(path) {\n try {\n return JSON.parse(readFileSync(path, 'utf8'));\n } catch (err) {\n return {};\n }\n}\n"
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
"path": "src/discount.js",
|
|
31
|
+
"content": "export function applyDiscount(total, percent) {\n if (percent < 0 || percent > 100) {\n throw new Error('quantity out of range');\n }\n return Math.round(total * (1 - percent / 100) * 100) / 100;\n}\n"
|
|
32
|
+
},
|
|
33
|
+
{
|
|
34
|
+
"path": "tests/intake.test.mjs",
|
|
35
|
+
"content": "import assert from 'node:assert/strict';\nimport { test } from 'node:test';\nimport { parseQuantity } from '../src/quantity.js';\nimport { applyDiscount } from '../src/discount.js';\nimport { loadConfig } from '../src/config.js';\n\ntest('parseQuantity reads plain integers', () => {\n assert.equal(parseQuantity('3'), 3);\n assert.equal(parseQuantity('12'), 12);\n});\n\ntest('applyDiscount takes a percentage off', () => {\n assert.equal(applyDiscount(100, 10), 90);\n assert.equal(applyDiscount(80, 0), 80);\n});\n\ntest('loadConfig falls back to defaults for a missing file', () => {\n assert.deepEqual(loadConfig('no-such-config.json'), {});\n});\n",
|
|
36
|
+
"modelInput": false
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"path": "reviews/findings.json",
|
|
40
|
+
"content": "[\n {\n \"id\": \"RV-1\",\n \"file\": \"src/quantity.js\",\n \"severity\": \"major\",\n \"title\": \"parseQuantity accepts invalid numeric input\",\n \"detail\": \"parseInt returns NaN for non-numeric input, and negative or zero values pass through unchecked, so downstream order math silently corrupts. parseQuantity must return only positive integers and throw a RangeError naming the rejected value for anything else.\",\n \"verify\": \"parseQuantity('abc'), parseQuantity('-2'), and parseQuantity('0') must throw; parseQuantity('3') must still return 3.\"\n },\n {\n \"id\": \"RV-2\",\n \"file\": \"src/config.js\",\n \"severity\": \"major\",\n \"title\": \"loadConfig swallows JSON syntax errors\",\n \"detail\": \"The catch returns {} for every failure, so a corrupt config file silently behaves like an empty one and a bad deploy ships. Only a missing file may fall back to {}; a parse failure must propagate to the caller.\",\n \"verify\": \"loadConfig on a file containing invalid JSON must throw; loadConfig on a missing path must still return {}.\"\n },\n {\n \"id\": \"RV-3\",\n \"file\": \"src/discount.js\",\n \"severity\": \"minor\",\n \"title\": \"applyDiscount raises a misleading error message\",\n \"detail\": \"An out-of-range percent raises 'quantity out of range', so support keeps chasing phantom quantity bugs. The message must describe the discount percent that was rejected.\",\n \"verify\": \"applyDiscount(100, 150) must throw with a message that mentions the discount or percent, not quantity.\"\n }\n]\n",
|
|
41
|
+
"surface": "artifact"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"path": "tests/verify-findings.mjs",
|
|
45
|
+
"content": "import assert from 'node:assert/strict';\nimport { execFileSync } from 'node:child_process';\nimport { rmSync, writeFileSync } from 'node:fs';\nimport { join } from 'node:path';\nimport { parseQuantity } from '../src/quantity.js';\nimport { loadConfig } from '../src/config.js';\nimport { applyDiscount } from '../src/discount.js';\n\nconst root = process.cwd();\n\n// RV-1: parseQuantity accepts only positive integers, and still parses them.\nassert.equal(parseQuantity('3'), 3, \"parseQuantity('3') must still return 3\");\nassert.equal(parseQuantity('12'), 12, \"parseQuantity('12') must still return 12\");\nassert.throws(() => parseQuantity('abc'), \"parseQuantity('abc') must throw\");\nassert.throws(() => parseQuantity('-2'), \"parseQuantity('-2') must throw\");\nassert.throws(() => parseQuantity('0'), \"parseQuantity('0') must throw\");\nconsole.log('FINDINGS_ORACLE rv1 closed');\n\n// RV-2: a corrupt config raises; a missing config still falls back to {}.\nconst corruptPath = join(root, '.oracle-corrupt-config.json');\nwriteFileSync(corruptPath, '{ not json');\nassert.throws(() => loadConfig(corruptPath), 'a corrupt config must raise, not vanish into defaults');\nrmSync(corruptPath, { force: true });\nassert.deepEqual(loadConfig(join(root, 'no-such-config.json')), {}, 'a missing config must still fall back to {}');\nconsole.log('FINDINGS_ORACLE rv2 closed');\n\n// RV-3: the out-of-range message describes the discount, not the quantity.\nlet threw = false;\nlet message = '';\ntry {\n applyDiscount(100, 150);\n} catch (err) {\n threw = true;\n message = String((err && err.message) || err);\n}\nassert.ok(threw, 'applyDiscount(100, 150) must throw');\nassert.match(message, /discount|percent/i, 'the error must describe the discount percent');\nassert.ok(!/quantity/i.test(message), 'the error must not blame quantity');\nassert.equal(applyDiscount(100, 10), 90, 'valid discounts must still work');\nassert.equal(applyDiscount(80, 0), 80, 'a zero discount must still be allowed');\nconsole.log('FINDINGS_ORACLE rv3 closed');\n\n// The neighborhood suite stays green after the findings pass.\nexecFileSync(process.execPath, ['--test'], { cwd: root, stdio: 'pipe', timeout: 30000 });\nconsole.log('FINDINGS_ORACLE suite green');\nconsole.log('FINDINGS_ORACLE done');\n",
|
|
46
|
+
"surface": "harness"
|
|
47
|
+
}
|
|
48
|
+
],
|
|
49
|
+
"craftbookParams": {
|
|
50
|
+
"findingsPath": "reviews/findings.json"
|
|
51
|
+
}
|
|
52
|
+
},
|
|
53
|
+
"mocks": [],
|
|
54
|
+
"success": {
|
|
55
|
+
"summary": "All three seeded findings are genuinely closed at their real sites (validated quantity input, propagating config parse errors, an honest discount message), the neighborhood tests stay green, and the finding ids reconcile across triage, fix notes, and verification.",
|
|
56
|
+
"deliverables": [
|
|
57
|
+
{
|
|
58
|
+
"path": "{{task.dir}}/triage.md",
|
|
59
|
+
"kind": "markdown-notes",
|
|
60
|
+
"artifact": true,
|
|
61
|
+
"minBytes": 600,
|
|
62
|
+
"checks": [
|
|
63
|
+
{
|
|
64
|
+
"kind": "contains",
|
|
65
|
+
"file": "{{task.dir}}/triage.md",
|
|
66
|
+
"pattern": "^##\\s+Findings read[\\s\\S]*^##\\s+Will fix[\\s\\S]*^##\\s+Deferred[\\s\\S]*^##\\s+Clusters",
|
|
67
|
+
"flags": "im",
|
|
68
|
+
"label": "triage sections in order"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"kind": "contains",
|
|
72
|
+
"file": "{{task.dir}}/triage.md",
|
|
73
|
+
"pattern": "\\bRV-1\\b",
|
|
74
|
+
"label": "finding RV-1 triaged"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"kind": "contains",
|
|
78
|
+
"file": "{{task.dir}}/triage.md",
|
|
79
|
+
"pattern": "\\bRV-2\\b",
|
|
80
|
+
"label": "finding RV-2 triaged"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"kind": "contains",
|
|
84
|
+
"file": "{{task.dir}}/triage.md",
|
|
85
|
+
"pattern": "\\bRV-3\\b",
|
|
86
|
+
"label": "finding RV-3 triaged"
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"kind": "citationsResolve",
|
|
90
|
+
"file": "{{task.dir}}/triage.md",
|
|
91
|
+
"minCitations": 2,
|
|
92
|
+
"artifact": true
|
|
93
|
+
}
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"path": "{{task.dir}}/fix-notes.md",
|
|
98
|
+
"kind": "markdown-notes",
|
|
99
|
+
"artifact": true,
|
|
100
|
+
"minBytes": 700,
|
|
101
|
+
"checks": [
|
|
102
|
+
{
|
|
103
|
+
"kind": "contains",
|
|
104
|
+
"file": "{{task.dir}}/fix-notes.md",
|
|
105
|
+
"pattern": "^##\\s+Problem[\\s\\S]*^##\\s+Change[\\s\\S]*^##\\s+Files touched[\\s\\S]*^##\\s+Per-finding disposition[\\s\\S]*^##\\s+Risk[\\s\\S]*^##\\s+How to verify",
|
|
106
|
+
"flags": "im",
|
|
107
|
+
"label": "fix-notes sections in order"
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"kind": "contains",
|
|
111
|
+
"file": "{{task.dir}}/fix-notes.md",
|
|
112
|
+
"pattern": "\\bRV-1\\b",
|
|
113
|
+
"label": "disposition for RV-1"
|
|
114
|
+
},
|
|
115
|
+
{
|
|
116
|
+
"kind": "contains",
|
|
117
|
+
"file": "{{task.dir}}/fix-notes.md",
|
|
118
|
+
"pattern": "\\bRV-2\\b",
|
|
119
|
+
"label": "disposition for RV-2"
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
"kind": "contains",
|
|
123
|
+
"file": "{{task.dir}}/fix-notes.md",
|
|
124
|
+
"pattern": "\\bRV-3\\b",
|
|
125
|
+
"label": "disposition for RV-3"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"kind": "citationsResolve",
|
|
129
|
+
"file": "{{task.dir}}/fix-notes.md",
|
|
130
|
+
"minCitations": 2,
|
|
131
|
+
"artifact": true
|
|
132
|
+
}
|
|
133
|
+
]
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"path": "{{task.dir}}/validation.md",
|
|
137
|
+
"kind": "markdown-notes",
|
|
138
|
+
"artifact": true,
|
|
139
|
+
"minBytes": 450,
|
|
140
|
+
"checks": [
|
|
141
|
+
{
|
|
142
|
+
"kind": "contains",
|
|
143
|
+
"file": "{{task.dir}}/validation.md",
|
|
144
|
+
"pattern": "^##\\s+Per-finding verification[\\s\\S]*^##\\s+Result",
|
|
145
|
+
"flags": "im",
|
|
146
|
+
"label": "validation sections in order"
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"kind": "contains",
|
|
150
|
+
"file": "{{task.dir}}/validation.md",
|
|
151
|
+
"pattern": "\\bRV-1\\b",
|
|
152
|
+
"label": "verification for RV-1"
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
"kind": "contains",
|
|
156
|
+
"file": "{{task.dir}}/validation.md",
|
|
157
|
+
"pattern": "\\bRV-2\\b",
|
|
158
|
+
"label": "verification for RV-2"
|
|
159
|
+
},
|
|
160
|
+
{
|
|
161
|
+
"kind": "contains",
|
|
162
|
+
"file": "{{task.dir}}/validation.md",
|
|
163
|
+
"pattern": "\\bRV-3\\b",
|
|
164
|
+
"label": "verification for RV-3"
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"kind": "citationsResolve",
|
|
168
|
+
"file": "{{task.dir}}/validation.md",
|
|
169
|
+
"minCitations": 2,
|
|
170
|
+
"artifact": true
|
|
171
|
+
}
|
|
172
|
+
]
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"path": "{{task.dir}}/review.md",
|
|
176
|
+
"kind": "markdown-report",
|
|
177
|
+
"artifact": true,
|
|
178
|
+
"minBytes": 400,
|
|
179
|
+
"checks": [
|
|
180
|
+
{
|
|
181
|
+
"kind": "contains",
|
|
182
|
+
"file": "{{task.dir}}/review.md",
|
|
183
|
+
"pattern": "Verdict:\\s*(?:PASS|REVISE)",
|
|
184
|
+
"flags": "i",
|
|
185
|
+
"label": "explicit reviewer verdict"
|
|
186
|
+
}
|
|
187
|
+
]
|
|
188
|
+
}
|
|
189
|
+
],
|
|
190
|
+
"checks": [
|
|
191
|
+
{
|
|
192
|
+
"kind": "notContains",
|
|
193
|
+
"file": "src/discount.js",
|
|
194
|
+
"pattern": "quantity out of range",
|
|
195
|
+
"label": "the misleading discount message is gone (RV-3)"
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
"kind": "notContains",
|
|
199
|
+
"file": "src/config.js",
|
|
200
|
+
"pattern": "catch\\s*(?:\\([^)]*\\))?\\s*\\{\\s*return\\s*\\{\\s*\\}",
|
|
201
|
+
"label": "the blanket error swallow is gone (RV-2)"
|
|
202
|
+
},
|
|
203
|
+
{
|
|
204
|
+
"kind": "sourceParses",
|
|
205
|
+
"file": "src/quantity.js"
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"kind": "sourceParses",
|
|
209
|
+
"file": "src/config.js"
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"kind": "sourceParses",
|
|
213
|
+
"file": "src/discount.js"
|
|
214
|
+
},
|
|
215
|
+
{
|
|
216
|
+
"kind": "nodeRuns",
|
|
217
|
+
"file": "tests/intake.test.mjs",
|
|
218
|
+
"timeoutMs": 30000
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"kind": "nodeScriptPasses",
|
|
222
|
+
"script": "tests/verify-findings.mjs",
|
|
223
|
+
"timeoutMs": 60000,
|
|
224
|
+
"requiredOutput": [
|
|
225
|
+
{
|
|
226
|
+
"pattern": "FINDINGS_ORACLE rv1 closed",
|
|
227
|
+
"label": "invalid quantities are rejected (RV-1)"
|
|
228
|
+
},
|
|
229
|
+
{
|
|
230
|
+
"pattern": "FINDINGS_ORACLE rv2 closed",
|
|
231
|
+
"label": "corrupt configs raise, missing configs default (RV-2)"
|
|
232
|
+
},
|
|
233
|
+
{
|
|
234
|
+
"pattern": "FINDINGS_ORACLE rv3 closed",
|
|
235
|
+
"label": "the discount error names the discount (RV-3)"
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
"pattern": "FINDINGS_ORACLE suite green",
|
|
239
|
+
"label": "the neighborhood suite stays green"
|
|
240
|
+
}
|
|
241
|
+
]
|
|
242
|
+
}
|
|
243
|
+
],
|
|
244
|
+
"taskNotes": {
|
|
245
|
+
"minBytes": 120,
|
|
246
|
+
"checks": [
|
|
247
|
+
{
|
|
248
|
+
"kind": "contains",
|
|
249
|
+
"file": "task-notes.md",
|
|
250
|
+
"pattern": "\\bDONE\\b[\\s\\S]*validation\\.md",
|
|
251
|
+
"flags": "i",
|
|
252
|
+
"label": "DONE note names the validation deliverable"
|
|
253
|
+
}
|
|
254
|
+
]
|
|
255
|
+
},
|
|
256
|
+
"taskGraph": {
|
|
257
|
+
"requireCraftbookTask": true,
|
|
258
|
+
"requireTerminalStep": true
|
|
259
|
+
},
|
|
260
|
+
"unchangedFixtures": [
|
|
261
|
+
"package.json",
|
|
262
|
+
"tests/intake.test.mjs"
|
|
263
|
+
]
|
|
264
|
+
},
|
|
265
|
+
"rubric": {
|
|
266
|
+
"artifact": {
|
|
267
|
+
"path": "{{task.dir}}/fix-notes.md",
|
|
268
|
+
"kind": "markdown"
|
|
269
|
+
},
|
|
270
|
+
"axes": [
|
|
271
|
+
{
|
|
272
|
+
"name": "Triage honesty",
|
|
273
|
+
"description": "Every finding is judged against the code as it stands, with a defensible category and no invented or dropped findings."
|
|
274
|
+
},
|
|
275
|
+
{
|
|
276
|
+
"name": "Real closure",
|
|
277
|
+
"description": "Each fix lands at the actual cited site and genuinely resolves what the finding describes - validation added, errors propagated, messages made truthful - with the smallest correct change."
|
|
278
|
+
},
|
|
279
|
+
{
|
|
280
|
+
"name": "Ledger discipline",
|
|
281
|
+
"description": "The same finding ids flow through triage, fix notes, and verification with consistent outcomes, and verification honestly separates what was run from what was only read."
|
|
282
|
+
}
|
|
283
|
+
]
|
|
284
|
+
},
|
|
285
|
+
"qualityFocus": [
|
|
286
|
+
"per-finding accountability",
|
|
287
|
+
"smallest correct change",
|
|
288
|
+
"honest verification"
|
|
289
|
+
]
|
|
290
|
+
}
|
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "artifact-integrity-review",
|
|
3
|
+
"name": "Artifact Integrity & Ship Review",
|
|
4
|
+
"description": "Perform an isolated ship-readiness review of the actual built artifacts of a project—sites, npm packages, archives, CLIs, binaries, installers, checksums, signatures, and release bundles—rather than trusting source or CI status. Inventories expected versus present assets, stages immutable copies, inspects archive contents and metadata, runs safe sandboxed smoke checks where possible, and leaves per-artifact GO/NO-GO verdicts plus a release-wide decision. Can review locally staged assets or public-release evidence supplied to the project. Use before shipping a release or as a recurring artifact-integrity night-shift audit.\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. Inventory and stage the release (reviewer) — lock the expected matrix and immutable evidence set before inspecting it → gated on artifact `{{workPath}}/artifacts/inventory.md` (markdown-notes)\n2. Inspect each artifact (developer) — verify identity, contents, installability, safety, and cross-artifact consistency → gated on artifact `{{workPath}}/artifacts/checks.md` (markdown-notes)\n3. Write the artifact ship report (reviewer) — per-artifact verdicts and a release-wide ship decision → gated on artifact `{{workPath}}/artifact-integrity-review.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": "inventory",
|
|
6
|
+
"triggers": [
|
|
7
|
+
"artifact integrity review",
|
|
8
|
+
"review the built artifacts",
|
|
9
|
+
"test the release assets",
|
|
10
|
+
"are these installers ready to ship",
|
|
11
|
+
"audit a public github release",
|
|
12
|
+
"nightly artifact review"
|
|
13
|
+
],
|
|
14
|
+
"toolsets": [
|
|
15
|
+
{
|
|
16
|
+
"toolsetId": "builtin.archives",
|
|
17
|
+
"autoAllow": true,
|
|
18
|
+
"reason": "inspect zip, tar, tgz, and package contents without trusting filenames"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"toolsetId": "builtin.code-execution",
|
|
22
|
+
"autoAllow": true,
|
|
23
|
+
"reason": "perform bounded, sandboxed metadata and smoke checks on staged artifacts"
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"toolsetId": "builtin.web",
|
|
27
|
+
"autoAllow": true,
|
|
28
|
+
"reason": "read public release metadata and verify supplied public asset URLs when allowed"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"paramSchema": {
|
|
32
|
+
"type": "object",
|
|
33
|
+
"properties": {
|
|
34
|
+
"workPath": {
|
|
35
|
+
"type": "string",
|
|
36
|
+
"title": "Working folder",
|
|
37
|
+
"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.",
|
|
38
|
+
"default": "{{task.dir}}"
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
},
|
|
42
|
+
"steps": [
|
|
43
|
+
{
|
|
44
|
+
"id": "inventory",
|
|
45
|
+
"name": "Inventory and stage the release",
|
|
46
|
+
"description": "lock the expected matrix and immutable evidence set before inspecting it",
|
|
47
|
+
"prompt": "Define the exact release under review (version, commit/tag, target platforms, artifact types). Derive the expected asset matrix from release manifests, package metadata, CI/release configuration, checksums, and supplied release notes. Inventory every locally staged artifact with path, byte size, type/magic when available, and a cryptographic hash. If public release metadata or URLs were supplied and Web Access is allowed, verify the public listing and headers; never claim a remote binary was downloaded or inspected unless it is actually present in the workspace. Preserve the originals and work only on isolated extracted/staged copies. Record missing, duplicate, unexpected, truncated, or zero-byte assets immediately. Write the expected-vs-present matrix, provenance, hashes, acquisition limitations, and isolation plan to `{{workPath}}/artifacts/inventory.md`.\n\nThe deliverable `{{workPath}}/artifacts/inventory.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.",
|
|
48
|
+
"suggestedRole": "reviewer",
|
|
49
|
+
"advanceWhen": {
|
|
50
|
+
"file": "{{workPath}}/artifacts/inventory.md",
|
|
51
|
+
"minBytes": 1,
|
|
52
|
+
"sniff": "nonempty",
|
|
53
|
+
"artifact": true
|
|
54
|
+
},
|
|
55
|
+
"gate": {
|
|
56
|
+
"at": "completion",
|
|
57
|
+
"checks": [
|
|
58
|
+
{
|
|
59
|
+
"kind": "minBytes",
|
|
60
|
+
"file": "{{workPath}}/artifacts/inventory.md",
|
|
61
|
+
"bytes": 120,
|
|
62
|
+
"artifact": true
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"kind": "sniff",
|
|
66
|
+
"file": "{{workPath}}/artifacts/inventory.md",
|
|
67
|
+
"sniff": "nonempty",
|
|
68
|
+
"artifact": true
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"onReject": "inventory",
|
|
72
|
+
"maxAttempts": 3
|
|
73
|
+
},
|
|
74
|
+
"next": "inspect",
|
|
75
|
+
"toolPolicy": {
|
|
76
|
+
"disallowBuiltinToolsets": [
|
|
77
|
+
"ai-apps",
|
|
78
|
+
"archives",
|
|
79
|
+
"audio",
|
|
80
|
+
"browser-automation",
|
|
81
|
+
"code-execution",
|
|
82
|
+
"craftbooks",
|
|
83
|
+
"data-tables",
|
|
84
|
+
"entity-intel",
|
|
85
|
+
"git",
|
|
86
|
+
"image-intel",
|
|
87
|
+
"images",
|
|
88
|
+
"role-delegation",
|
|
89
|
+
"role-delegation-escalation",
|
|
90
|
+
"security-intel",
|
|
91
|
+
"team-management",
|
|
92
|
+
"videos",
|
|
93
|
+
"web",
|
|
94
|
+
"workspace-fs-write"
|
|
95
|
+
],
|
|
96
|
+
"outputMedium": "artifact"
|
|
97
|
+
}
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
"id": "inspect",
|
|
101
|
+
"name": "Inspect each artifact",
|
|
102
|
+
"description": "verify identity, contents, installability, safety, and cross-artifact consistency",
|
|
103
|
+
"prompt": "Inspect every artifact independently. Use `list_archive` before extraction, then extract into isolated paths. Verify filename/type/magic, version and commit identity, checksums/signatures when provided, expected entrypoints, executable bits, package manifests, dependency/lock and license/SBOM notices, source-map/debug-symbol policy, update/uninstall metadata, and absence of secrets, private keys, `.env`, build caches, absolute developer paths, or unexpected source. Check sites for missing referenced assets. For npm/CLI/packages, perform only safe sandboxed pack/install/help/version/smoke checks; never run an untrusted native installer on the host. For platform artifacts that cannot run here, inspect statically and mark the platform smoke test NOT VERIFIED. Compare all artifacts for one version/commit and consistent bundled files. Record commands, exit codes, and evidence per artifact in `{{workPath}}/artifacts/checks.md`.\n\nThe deliverable `{{workPath}}/artifacts/checks.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.",
|
|
104
|
+
"suggestedRole": "developer",
|
|
105
|
+
"advanceWhen": {
|
|
106
|
+
"file": "{{workPath}}/artifacts/checks.md",
|
|
107
|
+
"minBytes": 1,
|
|
108
|
+
"sniff": "nonempty",
|
|
109
|
+
"artifact": true
|
|
110
|
+
},
|
|
111
|
+
"gate": {
|
|
112
|
+
"at": "completion",
|
|
113
|
+
"checks": [
|
|
114
|
+
{
|
|
115
|
+
"kind": "minBytes",
|
|
116
|
+
"file": "{{workPath}}/artifacts/checks.md",
|
|
117
|
+
"bytes": 120,
|
|
118
|
+
"artifact": true
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
"kind": "sniff",
|
|
122
|
+
"file": "{{workPath}}/artifacts/checks.md",
|
|
123
|
+
"sniff": "nonempty",
|
|
124
|
+
"artifact": true
|
|
125
|
+
}
|
|
126
|
+
],
|
|
127
|
+
"onReject": "inspect",
|
|
128
|
+
"maxAttempts": 3
|
|
129
|
+
},
|
|
130
|
+
"next": "report",
|
|
131
|
+
"toolPolicy": {
|
|
132
|
+
"disallowBuiltinToolsets": [
|
|
133
|
+
"ai-apps",
|
|
134
|
+
"audio",
|
|
135
|
+
"browser-automation",
|
|
136
|
+
"craftbooks",
|
|
137
|
+
"data-tables",
|
|
138
|
+
"entity-intel",
|
|
139
|
+
"git",
|
|
140
|
+
"image-intel",
|
|
141
|
+
"images",
|
|
142
|
+
"role-delegation",
|
|
143
|
+
"role-delegation-escalation",
|
|
144
|
+
"security-intel",
|
|
145
|
+
"team-management",
|
|
146
|
+
"videos",
|
|
147
|
+
"web",
|
|
148
|
+
"workspace-fs-write"
|
|
149
|
+
],
|
|
150
|
+
"outputMedium": "artifact"
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
{
|
|
154
|
+
"id": "report",
|
|
155
|
+
"name": "Write the artifact ship report",
|
|
156
|
+
"description": "per-artifact verdicts and a release-wide ship decision",
|
|
157
|
+
"prompt": "Write `{{workPath}}/artifact-integrity-review.md` with: `## Release verdict`, `## Evidence provenance`, `## Artifact matrix`, `## Blocking findings`, `## Advisory findings`, `## Cross-artifact consistency`, `## Not verified`, and `## Reproduction commands`. Give every artifact its own GO / NO-GO / NOT-VERIFIED verdict. Every claim must point to a staged path, hash, manifest field, archive member, command/exit code, or supplied public-release record. Any missing expected artifact, secret/private key, checksum/signature mismatch, version/commit mismatch, broken entrypoint, failed smoke test, or missing referenced site asset is a blocker unless explicitly justified. A release cannot be GO when any required artifact is NO-GO or materially unverified. Keep source-code readiness outside scope except where needed to explain artifact provenance.\n\nThe deliverable `{{workPath}}/artifact-integrity-review.md` lands in the project's artifacts drawer — write it with `write_artifact` and read it back with `read_artifact`; the shipped workspace stays untouched.",
|
|
158
|
+
"suggestedRole": "reviewer",
|
|
159
|
+
"advanceWhen": {
|
|
160
|
+
"file": "{{workPath}}/artifact-integrity-review.md",
|
|
161
|
+
"minBytes": 1,
|
|
162
|
+
"sniff": "nonempty",
|
|
163
|
+
"artifact": true
|
|
164
|
+
},
|
|
165
|
+
"gate": {
|
|
166
|
+
"at": "completion",
|
|
167
|
+
"checks": [
|
|
168
|
+
{
|
|
169
|
+
"kind": "minBytes",
|
|
170
|
+
"file": "{{workPath}}/artifact-integrity-review.md",
|
|
171
|
+
"bytes": 2000,
|
|
172
|
+
"artifact": true
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"kind": "contains",
|
|
176
|
+
"file": "{{workPath}}/artifact-integrity-review.md",
|
|
177
|
+
"pattern": "(?:^|\\n)#{1,3}\\s+\\S",
|
|
178
|
+
"flags": "i",
|
|
179
|
+
"label": "at least one markdown heading",
|
|
180
|
+
"artifact": true
|
|
181
|
+
}
|
|
182
|
+
],
|
|
183
|
+
"onReject": "report",
|
|
184
|
+
"maxAttempts": 4
|
|
185
|
+
},
|
|
186
|
+
"next": "evaluate",
|
|
187
|
+
"toolPolicy": {
|
|
188
|
+
"disallowBuiltinToolsets": [
|
|
189
|
+
"ai-apps",
|
|
190
|
+
"audio",
|
|
191
|
+
"browser-automation",
|
|
192
|
+
"code-execution",
|
|
193
|
+
"craftbooks",
|
|
194
|
+
"data-tables",
|
|
195
|
+
"entity-intel",
|
|
196
|
+
"git",
|
|
197
|
+
"image-intel",
|
|
198
|
+
"images",
|
|
199
|
+
"role-delegation",
|
|
200
|
+
"role-delegation-escalation",
|
|
201
|
+
"security-intel",
|
|
202
|
+
"team-management",
|
|
203
|
+
"videos",
|
|
204
|
+
"web",
|
|
205
|
+
"workspace-fs-write"
|
|
206
|
+
],
|
|
207
|
+
"outputMedium": "artifact"
|
|
208
|
+
}
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"id": "evaluate",
|
|
212
|
+
"name": "Evaluate",
|
|
213
|
+
"description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
|
|
214
|
+
"prompt": "Grade `{{workPath}}/artifact-integrity-review.md`: (1) expected and present assets are reconciled; (2) each artifact has provenance, size/type/hash, checks, and an individual verdict; (3) archive/package contents and metadata were inspected in isolation; (4) safe smoke tests include commands and exit codes while unrun platform tests are NOT VERIFIED; (5) versions/commits and bundled content agree across artifacts; (6) secrets, licenses/SBOM, source maps/debug files, signatures/checksums, entrypoints, and missing site assets were considered where applicable; (7) the release verdict follows blockers and uncertainty. PASS all or loop back with exact gaps.\n\nThe deliverable lives in the project's artifacts drawer — open `{{workPath}}/artifact-integrity-review.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: \"report\" })` 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.",
|
|
215
|
+
"suggestedRole": "reviewer",
|
|
216
|
+
"consumes": [
|
|
217
|
+
{
|
|
218
|
+
"file": "{{workPath}}/artifact-integrity-review.md",
|
|
219
|
+
"artifact": true
|
|
220
|
+
}
|
|
221
|
+
],
|
|
222
|
+
"next": "report",
|
|
223
|
+
"toolPolicy": {
|
|
224
|
+
"disallowBuiltinToolsets": [
|
|
225
|
+
"ai-apps",
|
|
226
|
+
"audio",
|
|
227
|
+
"browser-automation",
|
|
228
|
+
"code-execution",
|
|
229
|
+
"craftbooks",
|
|
230
|
+
"data-tables",
|
|
231
|
+
"entity-intel",
|
|
232
|
+
"git",
|
|
233
|
+
"image-intel",
|
|
234
|
+
"images",
|
|
235
|
+
"role-delegation",
|
|
236
|
+
"role-delegation-escalation",
|
|
237
|
+
"security-intel",
|
|
238
|
+
"team-management",
|
|
239
|
+
"videos",
|
|
240
|
+
"web",
|
|
241
|
+
"workspace-fs-write"
|
|
242
|
+
],
|
|
243
|
+
"outputMedium": "task-note"
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
{
|
|
247
|
+
"id": "finish",
|
|
248
|
+
"name": "Finish",
|
|
249
|
+
"description": "All acceptance criteria met. Stamp a short summary and report DONE.",
|
|
250
|
+
"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.",
|
|
251
|
+
"suggestedRole": "developer",
|
|
252
|
+
"terminal": true,
|
|
253
|
+
"toolPolicy": {
|
|
254
|
+
"disallowBuiltinToolsets": [
|
|
255
|
+
"ai-apps",
|
|
256
|
+
"archives",
|
|
257
|
+
"artifacts",
|
|
258
|
+
"audio",
|
|
259
|
+
"browser-automation",
|
|
260
|
+
"code-execution",
|
|
261
|
+
"craftbooks",
|
|
262
|
+
"data-tables",
|
|
263
|
+
"entity-intel",
|
|
264
|
+
"git",
|
|
265
|
+
"image-intel",
|
|
266
|
+
"images",
|
|
267
|
+
"role-delegation",
|
|
268
|
+
"role-delegation-escalation",
|
|
269
|
+
"security-intel",
|
|
270
|
+
"team-management",
|
|
271
|
+
"videos",
|
|
272
|
+
"web",
|
|
273
|
+
"workspace-fs-write"
|
|
274
|
+
],
|
|
275
|
+
"outputMedium": "task-note"
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
],
|
|
279
|
+
"version": "1.0.3",
|
|
280
|
+
"releasedAt": "2026-09-01T20:00:00Z",
|
|
281
|
+
"minGezelVersion": "1.26233"
|
|
282
|
+
}
|