@bendyline/gilde 0.1.39 → 0.1.41
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/muse-glimmer-30b-q4.json +3 -3
- package/authoring/chat-models/ornith-9b-q4.json +1 -1
- package/authoring/chat-models/ornith1.5-9b-q4.json +149 -0
- package/authoring/chat-models/qwen3.8-27b-iq1-s.json +190 -0
- package/authoring/chat-models/qwen3.8-27b-q2.json +189 -0
- package/authoring/gstack/overlays/investigate.json +1 -0
- package/authoring/gstack/overlays/qa-only.json +1 -0
- package/authoring/gstack/wave.json +12 -2
- package/authoring/tactical/books/accessibility-retrofit.json +188 -0
- package/authoring/tactical/books/apply-review-findings.json +189 -0
- package/authoring/tactical/books/bug-fix-tdd.json +237 -0
- package/authoring/tactical/books/ci-pipeline.json +168 -0
- package/authoring/tactical/books/codemod-sweep.json +182 -0
- package/authoring/tactical/books/dependency-upgrade.json +196 -0
- package/authoring/tactical/books/flaky-test-fix.json +238 -0
- package/authoring/tactical/books/hotfix-flow.json +187 -0
- package/authoring/tactical/books/perf-optimization.json +219 -0
- package/authoring/tactical/books/refactor-module.json +217 -0
- package/authoring/tactical/books/schema-migration.json +192 -0
- package/authoring/tactical/books/test-suite-backfill.json +172 -0
- package/authoring/tactical/books/type-safety-pass.json +185 -0
- package/authoring/tactical/books/ux-update.json +178 -0
- package/authoring/tactical/evals/accessibility-retrofit.json +230 -0
- package/authoring/tactical/evals/apply-review-findings.json +290 -0
- package/authoring/tactical/evals/bug-fix-tdd.json +221 -0
- package/authoring/tactical/evals/ci-pipeline.json +227 -0
- package/authoring/tactical/evals/codemod-sweep.json +252 -0
- package/authoring/tactical/evals/dependency-upgrade.json +235 -0
- package/authoring/tactical/evals/flaky-test-fix.json +239 -0
- package/authoring/tactical/evals/hotfix-flow.json +220 -0
- package/authoring/tactical/evals/perf-optimization.json +235 -0
- package/authoring/tactical/evals/refactor-module.json +241 -0
- package/authoring/tactical/evals/schema-migration.json +225 -0
- package/authoring/tactical/evals/test-suite-backfill.json +197 -0
- package/authoring/tactical/evals/type-safety-pass.json +221 -0
- package/authoring/tactical/evals/ux-update.json +206 -0
- package/authoring/tactical/wave.json +89 -0
- package/data/chat-models/de/deepseek-r1-8b-q4/manifest.json +56 -1
- package/data/chat-models/gl/glm-5.2-754b-q2/manifest.json +56 -0
- package/data/chat-models/gp/gpt-oss-120b-q4/manifest.json +73 -1
- package/data/chat-models/gp/gpt-oss-20b-q4/manifest.json +77 -1
- package/data/chat-models/index.json +1 -1
- package/data/chat-models/ll/llama3.2-3b-q4/manifest.json +3 -1
- package/data/chat-models/mi/mistral-7b-q4/manifest.json +54 -3
- package/data/chat-models/mi/mistral-medium-3.5-128b-q4/manifest.json +76 -1
- package/data/chat-models/mu/muse-glimmer-30b-q4/manifest.json +4 -3
- package/data/chat-models/mu/muse-glimmer-30b-q4/versions/1.0.2/manifest.json +20 -0
- package/data/chat-models/or/ornith-9b-q4/manifest.json +1 -1
- package/data/chat-models/or/ornith1.5-9b-q4/manifest.json +187 -0
- package/data/chat-models/or/ornith1.5-9b-q4/versions/1.0.0/manifest.json +53 -0
- package/data/chat-models/qw/qwen3.8-27b-iq1-s/manifest.json +195 -0
- package/data/chat-models/qw/qwen3.8-27b-iq1-s/versions/1.0.0/manifest.json +19 -0
- package/data/chat-models/qw/qwen3.8-27b-q2/manifest.json +194 -0
- package/data/chat-models/qw/qwen3.8-27b-q2/versions/1.0.0/manifest.json +19 -0
- package/data/craftbook-templates/a1/a11y-audit/manifest.json +1 -0
- package/data/craftbook-templates/ab/ab-test-readout/manifest.json +1 -0
- package/data/craftbook-templates/ac/accessibility-retrofit/manifest.json +6 -4
- package/data/craftbook-templates/ac/accessibility-retrofit/versions/2.0.0/craftbook.json +451 -0
- package/data/craftbook-templates/ac/accessibility-retrofit/versions/2.0.0/test.json +231 -0
- package/data/craftbook-templates/ad/ad-variations/manifest.json +1 -0
- package/data/craftbook-templates/al/album-curate/manifest.json +1 -0
- package/data/craftbook-templates/al/alert-rules/manifest.json +1 -0
- package/data/craftbook-templates/al/alt-text-pass/manifest.json +6 -1
- package/data/craftbook-templates/an/anniversary-cut/manifest.json +1 -0
- package/data/craftbook-templates/an/annotated-bibliography/manifest.json +1 -0
- package/data/craftbook-templates/an/annual-document-review/manifest.json +1 -0
- package/data/craftbook-templates/an/anomaly-scan/manifest.json +1 -0
- package/data/craftbook-templates/ap/api-contract-review/manifest.json +1 -0
- package/data/craftbook-templates/ap/apply-review-findings/art.json +12 -0
- package/data/craftbook-templates/ap/apply-review-findings/logo.webp +0 -0
- package/data/craftbook-templates/ap/apply-review-findings/manifest.json +23 -0
- package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.0/craftbook.json +436 -0
- package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.0/test.json +291 -0
- package/data/craftbook-templates/ar/artifact-integrity-review/manifest.json +1 -0
- package/data/craftbook-templates/au/audio-ad-spot/manifest.json +1 -0
- package/data/craftbook-templates/au/audio-highlight-reel/manifest.json +1 -0
- package/data/craftbook-templates/au/audiobook-master-pack/manifest.json +1 -0
- package/data/craftbook-templates/au/auth-flow/manifest.json +1 -0
- package/data/craftbook-templates/au/automation-recipe/manifest.json +1 -0
- package/data/craftbook-templates/ba/backup-routine/manifest.json +1 -0
- package/data/craftbook-templates/bl/blog-post/manifest.json +1 -0
- package/data/craftbook-templates/bo/board-deck/manifest.json +1 -0
- package/data/craftbook-templates/bo/board-game-web/manifest.json +1 -0
- package/data/craftbook-templates/bo/booking-automation/manifest.json +1 -0
- package/data/craftbook-templates/br/branding-website/manifest.json +1 -0
- package/data/craftbook-templates/br/broadcast-announcement/manifest.json +1 -0
- package/data/craftbook-templates/br/browser-qa-audit/manifest.json +6 -1
- package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.5/craftbook.json +438 -0
- package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.5/test.json +379 -0
- package/data/craftbook-templates/bu/bug-fix-tdd/manifest.json +4 -3
- package/data/craftbook-templates/bu/bug-fix-tdd/versions/2.0.0/craftbook.json +545 -0
- package/data/craftbook-templates/bu/bug-fix-tdd/versions/2.0.0/test.json +222 -0
- package/data/craftbook-templates/bu/build-loop/manifest.json +1 -0
- package/data/craftbook-templates/ca/calendar-brief/manifest.json +1 -0
- package/data/craftbook-templates/ca/canvas-generative-art/manifest.json +1 -0
- package/data/craftbook-templates/ca/careful-mode/manifest.json +1 -0
- package/data/craftbook-templates/ca/case-study/manifest.json +1 -0
- package/data/craftbook-templates/ca/case-study-writeup/manifest.json +1 -0
- package/data/craftbook-templates/ch/changelog-cut/manifest.json +6 -1
- package/data/craftbook-templates/ch/changelog-writeup/manifest.json +6 -1
- package/data/craftbook-templates/ch/chapter-narration-run/manifest.json +1 -0
- package/data/craftbook-templates/ch/chapter-weave/manifest.json +1 -0
- package/data/craftbook-templates/ch/character-sheet/manifest.json +1 -0
- package/data/craftbook-templates/ch/character-turnaround/manifest.json +1 -0
- package/data/craftbook-templates/ch/chart-pack/manifest.json +1 -0
- package/data/craftbook-templates/ch/chrome-extension/manifest.json +1 -0
- package/data/craftbook-templates/ci/ci-pipeline/manifest.json +6 -3
- package/data/craftbook-templates/ci/ci-pipeline/versions/2.0.0/craftbook.json +423 -0
- package/data/craftbook-templates/ci/ci-pipeline/versions/2.0.0/test.json +228 -0
- package/data/craftbook-templates/ci/citation-audit/manifest.json +1 -0
- package/data/craftbook-templates/cl/cli-tool/manifest.json +1 -0
- package/data/craftbook-templates/co/code-review/manifest.json +1 -0
- package/data/craftbook-templates/co/codebase-refactoring-review/manifest.json +1 -0
- package/data/craftbook-templates/co/codebase-ux-review/manifest.json +1 -0
- package/data/craftbook-templates/co/codemod-sweep/art.json +12 -0
- package/data/craftbook-templates/co/codemod-sweep/logo.webp +0 -0
- package/data/craftbook-templates/co/codemod-sweep/manifest.json +23 -0
- package/data/craftbook-templates/co/codemod-sweep/versions/1.0.0/craftbook.json +441 -0
- package/data/craftbook-templates/co/codemod-sweep/versions/1.0.0/test.json +253 -0
- package/data/craftbook-templates/co/cohort-analysis/manifest.json +1 -0
- package/data/craftbook-templates/co/company-research-brief/manifest.json +1 -0
- package/data/craftbook-templates/co/comparison-matrix/manifest.json +1 -0
- package/data/craftbook-templates/co/compat-check/manifest.json +1 -0
- package/data/craftbook-templates/co/competitive-analysis/manifest.json +1 -0
- package/data/craftbook-templates/co/comprehensive-codebase-review/art.json +12 -0
- package/data/craftbook-templates/co/comprehensive-codebase-review/logo.webp +0 -0
- package/data/craftbook-templates/co/comprehensive-codebase-review/manifest.json +27 -0
- package/data/craftbook-templates/co/comprehensive-codebase-review/versions/1.0.0/craftbook.json +337 -0
- package/data/craftbook-templates/co/comprehensive-codebase-review/versions/1.0.0/test.json +160 -0
- package/data/craftbook-templates/co/config-scaffold/manifest.json +1 -0
- package/data/craftbook-templates/co/content-accuracy-review/manifest.json +1 -0
- package/data/craftbook-templates/co/content-deck/manifest.json +1 -0
- package/data/craftbook-templates/co/contract-template/manifest.json +1 -0
- package/data/craftbook-templates/co/cookbook-layout/manifest.json +1 -0
- package/data/craftbook-templates/co/copy-review/manifest.json +1 -0
- package/data/craftbook-templates/co/corpus-email-digest/manifest.json +1 -0
- package/data/craftbook-templates/co/corpus-synthesis/manifest.json +1 -0
- package/data/craftbook-templates/co/cover-letter/manifest.json +1 -0
- package/data/craftbook-templates/cr/crm-update-batch/manifest.json +1 -0
- package/data/craftbook-templates/cr/cron-job/manifest.json +1 -0
- package/data/craftbook-templates/cr/crossword-forge/manifest.json +1 -0
- package/data/craftbook-templates/cs/csv-transformer/manifest.json +1 -0
- package/data/craftbook-templates/da/dashboard-spec/manifest.json +1 -0
- package/data/craftbook-templates/da/data-dictionary/manifest.json +1 -0
- package/data/craftbook-templates/da/data-export-migrate/manifest.json +1 -0
- package/data/craftbook-templates/da/data-join-merge/manifest.json +1 -0
- package/data/craftbook-templates/da/data-pipeline-etl/manifest.json +1 -0
- package/data/craftbook-templates/da/data-quality-audit/manifest.json +1 -0
- package/data/craftbook-templates/da/data-to-report/manifest.json +1 -0
- package/data/craftbook-templates/da/data-viz-page/manifest.json +1 -0
- package/data/craftbook-templates/da/dataset-clean/manifest.json +1 -0
- package/data/craftbook-templates/db/db-index-tuning/manifest.json +1 -0
- package/data/craftbook-templates/de/deep-security-review/manifest.json +1 -0
- package/data/craftbook-templates/de/dependency-audit/manifest.json +1 -0
- package/data/craftbook-templates/de/dependency-upgrade/art.json +12 -0
- package/data/craftbook-templates/de/dependency-upgrade/logo.webp +0 -0
- package/data/craftbook-templates/de/dependency-upgrade/manifest.json +23 -0
- package/data/craftbook-templates/de/dependency-upgrade/versions/1.0.0/craftbook.json +459 -0
- package/data/craftbook-templates/de/dependency-upgrade/versions/1.0.0/test.json +236 -0
- package/data/craftbook-templates/de/deploy-checklist/manifest.json +1 -0
- package/data/craftbook-templates/de/design-review/manifest.json +1 -0
- package/data/craftbook-templates/de/design-system-consultation/manifest.json +1 -0
- package/data/craftbook-templates/di/diagram-from-text/manifest.json +1 -0
- package/data/craftbook-templates/di/digest-from-feeds/manifest.json +1 -0
- package/data/craftbook-templates/do/doc-intake-pipeline/manifest.json +1 -0
- package/data/craftbook-templates/do/doc-rewrite/manifest.json +1 -0
- package/data/craftbook-templates/do/dockerize-app/manifest.json +1 -0
- package/data/craftbook-templates/do/docs-site/manifest.json +1 -0
- package/data/craftbook-templates/do/documentation-drift-review/manifest.json +1 -0
- package/data/craftbook-templates/dr/draft-social-post/manifest.json +1 -0
- package/data/craftbook-templates/dr/drive-wrap-up/manifest.json +1 -0
- package/data/craftbook-templates/du/due-diligence-brief/manifest.json +1 -0
- package/data/craftbook-templates/eb/ebook-compile/manifest.json +1 -0
- package/data/craftbook-templates/ed/edit-notes/manifest.json +1 -0
- package/data/craftbook-templates/em/email-sequence/manifest.json +1 -0
- package/data/craftbook-templates/em/email-template/manifest.json +1 -0
- package/data/craftbook-templates/en/engineering-retrospective/manifest.json +1 -0
- package/data/craftbook-templates/ep/episode-plan/manifest.json +1 -0
- package/data/craftbook-templates/es/escalation-playbook/manifest.json +1 -0
- package/data/craftbook-templates/ev/evidence-brief/manifest.json +1 -0
- package/data/craftbook-templates/ex/executive-level-review/manifest.json +1 -0
- package/data/craftbook-templates/ex/expense-categorize/manifest.json +1 -0
- package/data/craftbook-templates/fa/fact-check/manifest.json +1 -0
- package/data/craftbook-templates/fa/family-story-chapter/manifest.json +1 -0
- package/data/craftbook-templates/fa/faq-from-docs/manifest.json +1 -0
- package/data/craftbook-templates/fa/favicon-set/manifest.json +1 -0
- package/data/craftbook-templates/fe/feature-flag-release/manifest.json +6 -1
- package/data/craftbook-templates/fe/feature-flag-rollout/manifest.json +5 -1
- package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.1.0/craftbook.json +203 -0
- package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.1.0/test.json +165 -0
- package/data/craftbook-templates/fe/feedback-widget/manifest.json +1 -0
- package/data/craftbook-templates/fl/flaky-test-fix/art.json +12 -0
- package/data/craftbook-templates/fl/flaky-test-fix/logo.webp +0 -0
- package/data/craftbook-templates/fl/flaky-test-fix/manifest.json +24 -0
- package/data/craftbook-templates/fl/flaky-test-fix/versions/1.0.0/craftbook.json +534 -0
- package/data/craftbook-templates/fl/flaky-test-fix/versions/1.0.0/test.json +240 -0
- package/data/craftbook-templates/fo/folder-to-audio/manifest.json +1 -0
- package/data/craftbook-templates/fo/forecast-model/manifest.json +1 -0
- package/data/craftbook-templates/fo/form-fill-batch/manifest.json +1 -0
- package/data/craftbook-templates/fo/form-wizard/manifest.json +1 -0
- package/data/craftbook-templates/fr/freeze-scope/manifest.json +1 -0
- package/data/craftbook-templates/ga/game-with-screens/manifest.json +1 -0
- package/data/craftbook-templates/gl/glossary-build/manifest.json +1 -0
- package/data/craftbook-templates/gr/graphql-api/manifest.json +1 -0
- package/data/craftbook-templates/gr/grpc-service/manifest.json +1 -0
- package/data/craftbook-templates/ha/handbook-section/manifest.json +1 -0
- package/data/craftbook-templates/he/hero-image/manifest.json +1 -0
- package/data/craftbook-templates/ho/holiday-card-run/manifest.json +1 -0
- package/data/craftbook-templates/ho/hotfix-flow/manifest.json +6 -3
- package/data/craftbook-templates/ho/hotfix-flow/versions/2.0.0/craftbook.json +442 -0
- package/data/craftbook-templates/ho/hotfix-flow/versions/2.0.0/test.json +221 -0
- package/data/craftbook-templates/ht/html-arcade-game/manifest.json +1 -0
- package/data/craftbook-templates/ht/html-puzzle-game/manifest.json +1 -0
- package/data/craftbook-templates/ic/icon-pack/manifest.json +1 -0
- package/data/craftbook-templates/id/idea-office-hours/manifest.json +1 -0
- package/data/craftbook-templates/id/idle-clicker-game/manifest.json +1 -0
- package/data/craftbook-templates/im/image-batch-edit/manifest.json +1 -0
- package/data/craftbook-templates/im/image-dedup-cluster/manifest.json +1 -0
- package/data/craftbook-templates/im/image-palette-extract/manifest.json +1 -0
- package/data/craftbook-templates/im/image-seo-rename/manifest.json +1 -0
- package/data/craftbook-templates/im/image-set-index/manifest.json +1 -0
- package/data/craftbook-templates/in/inbox-triage/manifest.json +1 -0
- package/data/craftbook-templates/in/incident-comms-templates/manifest.json +1 -0
- package/data/craftbook-templates/in/incident-postmortem/manifest.json +1 -0
- package/data/craftbook-templates/in/insurance-inventory/manifest.json +1 -0
- package/data/craftbook-templates/in/interactive-quiz/manifest.json +1 -0
- package/data/craftbook-templates/in/investigate/manifest.json +5 -1
- package/data/craftbook-templates/in/investigate-root-cause/manifest.json +6 -1
- package/data/craftbook-templates/in/invitation-design/manifest.json +1 -0
- package/data/craftbook-templates/in/invoice-generator/manifest.json +1 -0
- package/data/craftbook-templates/in/invoice-run/manifest.json +1 -0
- package/data/craftbook-templates/index.json +1 -1
- package/data/craftbook-templates/it/item-intake/manifest.json +1 -0
- package/data/craftbook-templates/ju/juice-pass/manifest.json +1 -0
- package/data/craftbook-templates/kn/knowledge-base-article/manifest.json +1 -0
- package/data/craftbook-templates/kp/kpi-scorecard/manifest.json +1 -0
- package/data/craftbook-templates/la/landing-copy/manifest.json +1 -0
- package/data/craftbook-templates/la/landing-page/manifest.json +1 -0
- package/data/craftbook-templates/le/lead-enrichment/manifest.json +1 -0
- package/data/craftbook-templates/li/library-package/manifest.json +1 -0
- package/data/craftbook-templates/li/literature-review/manifest.json +1 -0
- package/data/craftbook-templates/li/live-browser-qa/manifest.json +6 -1
- package/data/craftbook-templates/lo/localize-content/manifest.json +1 -0
- package/data/craftbook-templates/lo/logo-set/manifest.json +1 -0
- package/data/craftbook-templates/ma/market-scan/manifest.json +1 -0
- package/data/craftbook-templates/me/meeting-minutes/manifest.json +1 -0
- package/data/craftbook-templates/me/meeting-notes-to-actions/manifest.json +1 -0
- package/data/craftbook-templates/me/meeting-prep-brief/manifest.json +1 -0
- package/data/craftbook-templates/me/meeting-summary-audio/manifest.json +1 -0
- package/data/craftbook-templates/me/memory-prompt-session/manifest.json +1 -0
- package/data/craftbook-templates/me/message-queue-consumer/manifest.json +1 -0
- package/data/craftbook-templates/mi/micro-game-jam/manifest.json +1 -0
- package/data/craftbook-templates/mo/mock-interview/manifest.json +1 -0
- package/data/craftbook-templates/mo/mod-scaffold/manifest.json +1 -0
- package/data/craftbook-templates/mo/monitor-and-alert/manifest.json +1 -0
- package/data/craftbook-templates/mo/month-close/manifest.json +1 -0
- package/data/craftbook-templates/mo/monthly-recording-review/manifest.json +1 -0
- package/data/craftbook-templates/mo/moodboard/manifest.json +1 -0
- package/data/craftbook-templates/mo/morning-brief/manifest.json +1 -0
- package/data/craftbook-templates/mo/morning-report/manifest.json +1 -0
- package/data/craftbook-templates/mu/music-metadata-tag/manifest.json +1 -0
- package/data/craftbook-templates/na/narrated-slideshow/manifest.json +1 -0
- package/data/craftbook-templates/ne/newsletter-issue/manifest.json +1 -0
- package/data/craftbook-templates/ni/nightly-fix-sweep/art.json +12 -0
- package/data/craftbook-templates/ni/nightly-fix-sweep/logo.webp +0 -0
- package/data/craftbook-templates/ni/nightly-fix-sweep/manifest.json +23 -0
- package/data/craftbook-templates/ni/nightly-fix-sweep/versions/1.0.0/craftbook.json +145 -0
- package/data/craftbook-templates/ni/nightly-fix-sweep/versions/1.0.0/test.json +121 -0
- package/data/craftbook-templates/no/notification-router/manifest.json +1 -0
- package/data/craftbook-templates/oc/ocr-extract/manifest.json +1 -0
- package/data/craftbook-templates/of/offer-compare/manifest.json +1 -0
- package/data/craftbook-templates/of/office-hours/manifest.json +1 -0
- package/data/craftbook-templates/on/onboarding-checklist/manifest.json +1 -0
- package/data/craftbook-templates/on/onboarding-flow/manifest.json +1 -0
- package/data/craftbook-templates/on/oncall-handoff/manifest.json +1 -0
- package/data/craftbook-templates/on/one-pager/manifest.json +1 -0
- package/data/craftbook-templates/op/ops-runbook/manifest.json +1 -0
- package/data/craftbook-templates/pa/page-spread/manifest.json +1 -0
- package/data/craftbook-templates/pa/parser-grammar/manifest.json +1 -0
- package/data/craftbook-templates/pe/perf-audit/manifest.json +1 -0
- package/data/craftbook-templates/pe/perf-audit/versions/1.1.0/craftbook.json +195 -0
- package/data/craftbook-templates/pe/perf-audit/versions/1.1.0/test.json +165 -0
- package/data/craftbook-templates/pe/perf-optimization/manifest.json +4 -3
- package/data/craftbook-templates/pe/perf-optimization/versions/2.0.0/craftbook.json +511 -0
- package/data/craftbook-templates/pe/perf-optimization/versions/2.0.0/test.json +236 -0
- package/data/craftbook-templates/pe/pest-diagnosis/manifest.json +1 -0
- package/data/craftbook-templates/ph/photo-cull/manifest.json +1 -0
- package/data/craftbook-templates/ph/physics-toy/manifest.json +1 -0
- package/data/craftbook-templates/pi/pitch-deck/manifest.json +1 -0
- package/data/craftbook-templates/pl/plan/manifest.json +1 -0
- package/data/craftbook-templates/pl/playtest-report/manifest.json +1 -0
- package/data/craftbook-templates/po/podcast-chaptering/manifest.json +1 -0
- package/data/craftbook-templates/po/portfolio-site/manifest.json +1 -0
- package/data/craftbook-templates/po/powerpoint-deck/manifest.json +1 -0
- package/data/craftbook-templates/pr/pr-security-review/manifest.json +1 -0
- package/data/craftbook-templates/pr/practice-exam/manifest.json +1 -0
- package/data/craftbook-templates/pr/practice-session/manifest.json +1 -0
- package/data/craftbook-templates/pr/pre-departure-countdown/manifest.json +1 -0
- package/data/craftbook-templates/pr/press-release/manifest.json +1 -0
- package/data/craftbook-templates/pr/price-tracker/manifest.json +1 -0
- package/data/craftbook-templates/pr/pricing-page/manifest.json +1 -0
- package/data/craftbook-templates/pr/product-descriptions/manifest.json +1 -0
- package/data/craftbook-templates/pr/proposal-sow/manifest.json +1 -0
- package/data/craftbook-templates/pu/pull-request-review/manifest.json +1 -0
- package/data/craftbook-templates/pu/puzzle-pack-layout/manifest.json +1 -0
- package/data/craftbook-templates/pw/pwa-offline/manifest.json +1 -0
- package/data/craftbook-templates/qa/qa/manifest.json +4 -1
- package/data/craftbook-templates/qu/quarterly-summary/manifest.json +1 -0
- package/data/craftbook-templates/re/reading-list/manifest.json +1 -0
- package/data/craftbook-templates/re/receipt-intake/manifest.json +1 -0
- package/data/craftbook-templates/re/receipt-ocr-ledger/manifest.json +1 -0
- package/data/craftbook-templates/re/reception-report/manifest.json +1 -0
- package/data/craftbook-templates/re/recipe-capture/manifest.json +1 -0
- package/data/craftbook-templates/re/record-a-relative/manifest.json +1 -0
- package/data/craftbook-templates/re/recurring-invoice-run/manifest.json +1 -0
- package/data/craftbook-templates/re/refactor-module/manifest.json +3 -2
- package/data/craftbook-templates/re/refactor-module/versions/1.0.4/craftbook.json +150 -0
- package/data/craftbook-templates/re/refactor-module/versions/1.0.4/test.json +95 -0
- package/data/craftbook-templates/re/refactor-module/versions/2.0.0/craftbook.json +509 -0
- package/data/craftbook-templates/re/refactor-module/versions/2.0.0/test.json +242 -0
- package/data/craftbook-templates/re/regex-builder/manifest.json +1 -0
- package/data/craftbook-templates/re/release-announcement/manifest.json +1 -0
- package/data/craftbook-templates/re/release-artifact-sanity-check/manifest.json +1 -0
- package/data/craftbook-templates/re/release-notes/manifest.json +6 -1
- package/data/craftbook-templates/re/release-notes/versions/1.0.3/craftbook.json +220 -0
- package/data/craftbook-templates/re/release-notes/versions/1.0.3/test.json +114 -0
- package/data/craftbook-templates/re/release-pipeline-ci/manifest.json +6 -1
- package/data/craftbook-templates/re/release-readiness-review/manifest.json +1 -0
- package/data/craftbook-templates/re/release-readiness-review/versions/1.1.0/craftbook.json +192 -0
- package/data/craftbook-templates/re/release-readiness-review/versions/1.1.0/test.json +113 -0
- package/data/craftbook-templates/re/reliability-review/manifest.json +1 -0
- package/data/craftbook-templates/re/report-pdf/manifest.json +1 -0
- package/data/craftbook-templates/re/research-report/manifest.json +1 -0
- package/data/craftbook-templates/re/research-to-document/manifest.json +1 -0
- package/data/craftbook-templates/re/rest-api/manifest.json +1 -0
- package/data/craftbook-templates/re/resume-cv/manifest.json +1 -0
- package/data/craftbook-templates/re/reviewer-loop/manifest.json +1 -0
- package/data/craftbook-templates/ro/rollback-plan/manifest.json +1 -0
- package/data/craftbook-templates/ro/root-cause-investigation/manifest.json +8 -1
- package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.5/craftbook.json +433 -0
- package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.5/test.json +157 -0
- package/data/craftbook-templates/ro/rough-cut-assembly/manifest.json +1 -0
- package/data/craftbook-templates/ru/runbook/manifest.json +1 -0
- package/data/craftbook-templates/sc/schema-migration/manifest.json +5 -4
- package/data/craftbook-templates/sc/schema-migration/versions/2.0.0/craftbook.json +459 -0
- package/data/craftbook-templates/sc/schema-migration/versions/2.0.0/test.json +226 -0
- package/data/craftbook-templates/sc/scrape-to-structured/manifest.json +1 -0
- package/data/craftbook-templates/sc/script-automation/manifest.json +1 -0
- package/data/craftbook-templates/sd/sdk-wrapper/manifest.json +1 -0
- package/data/craftbook-templates/se/seasonal-maintenance-sweep/manifest.json +1 -0
- package/data/craftbook-templates/se/security-architecture-review/manifest.json +1 -0
- package/data/craftbook-templates/se/seo-meta-pack/manifest.json +1 -0
- package/data/craftbook-templates/sh/ship/manifest.json +1 -0
- package/data/craftbook-templates/so/social-digest/manifest.json +1 -0
- package/data/craftbook-templates/so/social-thread/manifest.json +1 -0
- package/data/craftbook-templates/so/source-quality-audit/manifest.json +1 -0
- package/data/craftbook-templates/sp/spa-dashboard/manifest.json +1 -0
- package/data/craftbook-templates/sp/spec-authoring/manifest.json +1 -0
- package/data/craftbook-templates/sp/spec-doc/manifest.json +1 -0
- package/data/craftbook-templates/sp/spreadsheet-model/manifest.json +1 -0
- package/data/craftbook-templates/sp/sprite-sheet/manifest.json +1 -0
- package/data/craftbook-templates/sq/sql-analysis/manifest.json +1 -0
- package/data/craftbook-templates/st/standup-summary/manifest.json +1 -0
- package/data/craftbook-templates/st/state-machine/manifest.json +1 -0
- package/data/craftbook-templates/st/status-report/manifest.json +1 -0
- package/data/craftbook-templates/su/subscription-audit/manifest.json +1 -0
- package/data/craftbook-templates/su/subtitle-generator/manifest.json +1 -0
- package/data/craftbook-templates/su/summarize-long/manifest.json +1 -0
- package/data/craftbook-templates/su/survey-analysis/manifest.json +1 -0
- package/data/craftbook-templates/sv/svg-animation/manifest.json +1 -0
- package/data/craftbook-templates/ta/tailor-resume/manifest.json +1 -0
- package/data/craftbook-templates/te/technical-documentation/manifest.json +1 -0
- package/data/craftbook-templates/te/test-coverage-review/manifest.json +1 -0
- package/data/craftbook-templates/te/test-coverage-review/versions/1.2.0/craftbook.json +195 -0
- package/data/craftbook-templates/te/test-coverage-review/versions/1.2.0/test.json +116 -0
- package/data/craftbook-templates/te/test-suite-backfill/manifest.json +2 -2
- package/data/craftbook-templates/te/test-suite-backfill/versions/2.0.0/craftbook.json +428 -0
- package/data/craftbook-templates/te/test-suite-backfill/versions/2.0.0/test.json +198 -0
- package/data/craftbook-templates/th/thank-you-batch/manifest.json +1 -0
- package/data/craftbook-templates/th/thank-you-sweep/manifest.json +1 -0
- package/data/craftbook-templates/th/threat-model/manifest.json +1 -0
- package/data/craftbook-templates/th/thumbnail-generator/manifest.json +1 -0
- package/data/craftbook-templates/ti/tileset-batch/manifest.json +1 -0
- package/data/craftbook-templates/to/tone-rewrite/manifest.json +1 -0
- package/data/craftbook-templates/to/topic-explainer/manifest.json +1 -0
- package/data/craftbook-templates/tr/transcribe-and-shownotes/manifest.json +1 -0
- package/data/craftbook-templates/tr/transcribe-audio/manifest.json +1 -0
- package/data/craftbook-templates/tr/transcribe-index/manifest.json +1 -0
- package/data/craftbook-templates/tr/translate-content/manifest.json +1 -0
- package/data/craftbook-templates/ty/type-safety-pass/manifest.json +4 -3
- package/data/craftbook-templates/ty/type-safety-pass/versions/2.0.0/craftbook.json +428 -0
- package/data/craftbook-templates/ty/type-safety-pass/versions/2.0.0/test.json +222 -0
- package/data/craftbook-templates/ux/ux-update/art.json +12 -0
- package/data/craftbook-templates/ux/ux-update/logo.webp +0 -0
- package/data/craftbook-templates/ux/ux-update/manifest.json +22 -0
- package/data/craftbook-templates/ux/ux-update/versions/1.0.0/craftbook.json +439 -0
- package/data/craftbook-templates/ux/ux-update/versions/1.0.0/test.json +207 -0
- package/data/craftbook-templates/ve/version-bump/manifest.json +1 -0
- package/data/craftbook-templates/ve/version-bump/versions/1.1.0/craftbook.json +206 -0
- package/data/craftbook-templates/ve/version-bump/versions/1.1.0/test.json +95 -0
- package/data/craftbook-templates/vi/video-storyboard/manifest.json +1 -0
- package/data/craftbook-templates/vi/visit-prep/manifest.json +1 -0
- package/data/craftbook-templates/vo/voiceover-script/manifest.json +1 -0
- package/data/craftbook-templates/we/weak-spot-drill/manifest.json +1 -0
- package/data/craftbook-templates/we/web-app-crud/manifest.json +1 -0
- package/data/craftbook-templates/we/web-component/manifest.json +1 -0
- package/data/craftbook-templates/we/webhook-handler/manifest.json +1 -0
- package/data/craftbook-templates/we/week-plan/manifest.json +1 -0
- package/data/craftbook-templates/we/weekly-menu-plan/manifest.json +1 -0
- package/data/craftbook-templates/we/weekly-pipeline-review/manifest.json +1 -0
- package/data/craftbook-templates/we/weekly-review/manifest.json +1 -0
- package/data/craftbook-templates/we/weekly-walkthrough/manifest.json +1 -0
- package/data/craftbook-templates/wh/whitepaper/manifest.json +1 -0
- package/data/craftbook-templates/ye/year-in-review/manifest.json +1 -0
- package/data/craftbook-templates/yo/youtube-chapters-seo/manifest.json +1 -0
- package/data/gezel-templates/bo/boekwachter/versions/1.1.0/about.md +29 -0
- package/data/gezel-templates/bo/boekwachter/versions/1.1.0/manifest.json +16 -0
- package/data/gezel-templates/bu/builder/versions/1.5.0/about.md +34 -0
- package/data/gezel-templates/bu/builder/versions/1.5.0/manifest.json +16 -0
- package/data/gezel-templates/de/developer/versions/1.5.0/about.md +34 -0
- package/data/gezel-templates/de/developer/versions/1.5.0/manifest.json +21 -0
- package/data/gezel-templates/index.json +1 -1
- package/data/gezel-templates/re/reviewer/versions/1.4.0/about.md +49 -0
- package/data/gezel-templates/re/reviewer/versions/1.4.0/manifest.json +21 -0
- package/data/project-types/index.json +1 -1
- package/data/project-types/so/software-project/manifest.json +20 -0
- package/data/project-types/so/software-project/versions/1.0.0/about.md +3 -0
- package/data/project-types/so/software-project/versions/1.0.0/manifest.json +41 -0
- package/data/project-types/so/software-project/versions/1.0.0/mission.md +4 -0
- package/package.json +1 -1
- package/schemas/craftbook-doc.schema.json +248 -0
- package/schemas/craftbook-template-identity.schema.json +21 -0
- package/schemas/craftbook-template-version.schema.json +248 -0
- package/schemas/craftbook-test.schema.json +210 -0
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "item-intake",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "personal",
|
|
6
7
|
"name": "Catalog an Item",
|
|
7
8
|
"description": "Take new arrivals from shoebox to catalog: identify each item from its photo notes, record it with condition and an honest value basis, and flag what needs a better photo or an expert eye — uncertain identification stays uncertain in the record instead of becoming confident fiction. Locks the record fields and the honesty rule FIRST, then catalogs each item, then reports confidence and follow-ups. Use for cataloging new items, collection intake, 'catalog these arrivals', and adding finds to the collection.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "juice-pass",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "code-build",
|
|
6
7
|
"name": "Juice Pass",
|
|
7
8
|
"description": "Make the game feel alive without breaking it: feedback on every player action — hit-flash, screenshake, sound hooks, particles, score pops — added with restraint and verified playable after every change. Locks the juice checklist FIRST — every player action gets visible feedback, effects stay tasteful, nothing regresses — then edits the game in place, re-checking that it still runs and still ends. Use for 'the game feels dead', game feel passes, adding screenshake and particles, polishing an arcade game, and making hits feel like hits.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "knowledge-base-article",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "writing",
|
|
6
7
|
"name": "Knowledge Base Article",
|
|
7
8
|
"description": "Write a support knowledge-base article that lets a user solve their problem without contacting support: it first scopes the exact user problem, the search terms they would use, prerequisites, and the success outcome, then writes a task-oriented article with a clear title, a short overview, numbered steps with expected results, screenshots/placeholders where needed, and a troubleshooting section, then a review pass verifies accuracy and self-service completeness. Covers help center article, support documentation, how-to article, KB article, self-service docs, and product help. Scoping the precise problem and search terms before writing is the point: a small model that pins the one job-to-be-done writes a findable, followable article instead of a vague overview that leaves the user still stuck.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "kpi-scorecard",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "business",
|
|
6
7
|
"name": "KPI Scorecard Page",
|
|
7
8
|
"description": "Build a single-page KPI scorecard that rolls a dataset up into the handful of numbers a team tracks, each shown with its current value, target, and period-over-period change. Defines the KPIs and their exact formulas and targets FIRST (so a number is never ambiguous), then computes the rollups, then builds a clean self-contained HTML scorecard with KPI tiles, deltas, and a tiny trend sparkline each. Use this for a KPI dashboard, a metrics scorecard, an executive summary page, a North Star metrics view, or rolling raw data into headline numbers.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "landing-copy",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "marketing",
|
|
6
7
|
"name": "Landing Page Copy",
|
|
7
8
|
"description": "Write conversion-focused copy for a single landing page: it first locks the offer, the one primary audience, the single desired action, and the core promise, then drafts a full message hierarchy — hero headline and subhead, value props, social proof, objection handling, and one repeated CTA — then edits ruthlessly for clarity, specificity, and persuasive flow. Covers landing page copy, sales copy, conversion copywriting, hero copy, CTA copy, and value proposition writing. Offer-first ordering matters: a small model that nails the single offer and one CTA before writing avoids the diluted page that lists ten features, hedges the promise, and offers three competing actions.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "landing-page",
|
|
5
5
|
"role": "project-starter",
|
|
6
|
+
"category": "code-build",
|
|
6
7
|
"name": "Landing Page",
|
|
7
8
|
"description": "Build a single high-conversion landing page for one offer — a product, signup, waitlist, or download — with a focused hero, benefits, social proof, and one primary call to action above and below the fold. Locks the offer, audience, and single CTA first, then a conversion-oriented visual design, then the persuasive copy, then builds responsive HTML with real CSS. The scope-then-design-then-copy ordering keeps the page ruthlessly focused on one conversion goal instead of becoming a sprawling site.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "lead-enrichment",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "marketing",
|
|
6
7
|
"name": "Enrich a Leads List",
|
|
7
8
|
"description": "Take a raw leads or contacts list and enrich each row with derived and looked-up attributes — company domain, industry, size band, role seniority, normalized location, and a quality/score flag — into a clean CRM-ready file. Scopes the enrichment fields, their sources, and the dedup/normalization rules FIRST, then enriches each lead row-by-row, then verifies coverage, that nothing was fabricated when a source had no data, and that duplicates are merged. Defining 'what each field means and where it comes from' before enriching is what stops a small model from inventing plausible-but-false company data.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "library-package",
|
|
5
5
|
"role": "project-starter",
|
|
6
|
+
"category": "code-build",
|
|
6
7
|
"name": "Reusable Library Package",
|
|
7
8
|
"description": "Build a reusable library/SDK with a clean public API surface, sensible defaults, and published documentation. Designs the public API FIRST — exported functions/classes, signatures, types, error contract, and what stays internal — because a library's API is a long-lived promise, then implements it, then writes user-facing docs with installation, quickstart, and a worked example per public function. Covers public-vs-private surface, function signatures, JSDoc/typedoc, README, semantic versioning posture, and usage examples.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "literature-review",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "research",
|
|
6
7
|
"name": "Literature Review",
|
|
7
8
|
"description": "Survey the existing literature on a topic and synthesize it into a structured review: a planner sets the scope, inclusion criteria, and the themes to organize around, then a researcher gathers and characterizes each source (method, finding, quality), then a copywriter synthesizes them thematically rather than source-by-source, surfacing consensus, disagreement, and gaps. The ordering matters because a review written without inclusion criteria becomes an arbitrary pile, and one written source-by-source reads like a list of summaries instead of a synthesis; locking themes and a source matrix first forces the comparative analysis that makes a real lit review. Use this for academic-style literature surveys, state-of-the-art reviews, 'what does the research say' questions, and synthesizing a body of papers or articles.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "live-browser-qa",
|
|
5
5
|
"role": "maintenance-review",
|
|
6
|
+
"category": "code-quality",
|
|
6
7
|
"name": "Live Browser QA Pass",
|
|
7
8
|
"description": "Run a hands-on quality-assurance pass on a running web app or page by actually exercising it in a browser, then emit a defect report with reproduction steps and severity. First derives a test plan and acceptance criteria from the app's intended behavior (happy paths, edge cases, error states, responsive/console health), then drives the UI step-by-step clicking and typing through each flow while watching the console and network for errors, then writes a bug report where every defect has numbered repro steps, expected vs actual, and severity. Use this for QA, manual testing, smoke testing, exploratory testing, click-testing a build, or verifying a feature works in the real browser before shipping — it finds broken flows, console errors, and visual breakage that unit tests miss.",
|
|
8
9
|
"tags": [
|
|
@@ -18,6 +19,10 @@
|
|
|
18
19
|
},
|
|
19
20
|
"logo": "logo.webp",
|
|
20
21
|
"license": "MIT",
|
|
21
|
-
"yankedVersions": [
|
|
22
|
+
"yankedVersions": [
|
|
23
|
+
"1.0.0",
|
|
24
|
+
"1.0.1",
|
|
25
|
+
"1.0.2"
|
|
26
|
+
],
|
|
22
27
|
"workflow": "build-loop"
|
|
23
28
|
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "localize-content",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "writing",
|
|
6
7
|
"name": "Localize Content",
|
|
7
8
|
"description": "Localize and translate content into a target language and locale with cultural adaptation, not just word-for-word translation: it first scopes the target locale, glossary of do-not-translate and must-translate-consistently terms, formatting conventions (dates, currency, units), and tone register, then translates preserving meaning and structure, then a native-level review pass checks fluency, terminology consistency, and cultural fit. Covers translation, localization, i18n content, multilingual copy, translate to Spanish/French/German, and locale adaptation. Scoping the glossary and conventions before translating is the point: a small model that locks terminology and date/currency rules avoids inconsistent term translations and locale-wrong formatting that mark content as machine-translated.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "logo-set",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "design",
|
|
6
7
|
"name": "Logo & Variant Set",
|
|
7
8
|
"description": "Generate a coherent logo and the full set of variants a real brand needs — primary mark, horizontal lockup, stacked lockup, icon-only/favicon, plus light-on-dark and monochrome versions — from a written brief. Lock the brief (concept, geometry, palette, typography, do/don'ts) BEFORE generating pixels so every variant shares one visual DNA instead of looking like five unrelated logos; then assemble them into a delivered folder with a contact sheet. Covers logo design, brand mark, wordmark, logo variations, and brand-asset packs.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "market-scan",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "research",
|
|
6
7
|
"name": "Market & Landscape Scan",
|
|
7
8
|
"description": "Survey a market or landscape and write a scan that sizes it, maps the players, and surfaces trends: a planner scopes the market boundary and the lenses (size, segments, players, trends, drivers, risks), a researcher gathers sized figures and landscape facts with sources, and a copywriter writes a structured landscape report. The ordering matters because a scan without a defined boundary mixes adjacent markets and inflates numbers, and one without locked lenses skips the dimensions a decision-maker needs; fixing boundary and lenses first keeps the scan focused and comparable. Use this for market landscape scans, industry overviews, TAM/segmentation reads, trend analyses, and 'give me the lay of the land in X' requests.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "meeting-minutes",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "business",
|
|
6
7
|
"name": "Meeting Minutes & Actions",
|
|
7
8
|
"description": "Turn a meeting transcript, recording notes, or rough scratch into clean, distributable meeting minutes — attendees, agenda topics discussed, decisions made, and (most importantly) action items with owners and due dates. Scopes the minutes structure and what counts as a decision vs an action FIRST, then writes accurate, neutral minutes where every decision is recorded and every action has an owner and a date — the action table is the part people actually use. Use for board/team meeting minutes, project status meetings, and decision logs.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "meeting-notes-to-actions",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "business",
|
|
6
7
|
"name": "Meeting Notes to Action Items",
|
|
7
8
|
"description": "Convert raw meeting notes or a transcript into a clean, assigned action-item list with owners, due dates, and the decisions that drove them. Extracts the actions and decisions FIRST (every commitment, ask, and decision lifted verbatim-ish into a structured list with source quotes), then a planner assigns owners and due dates and prioritizes — separating extraction from assignment so nothing said in the meeting is lost before triage. The extract-then-assign ordering is what stops a small model from silently dropping commitments or inventing owners. Use for meeting follow-ups, action-item extraction, turning transcripts into to-dos, decision logs, and post-meeting recaps.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "meeting-prep-brief",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "business",
|
|
6
7
|
"name": "Meeting Prep Brief",
|
|
7
8
|
"description": "Walk into the meeting already warm: who's in the room, what was promised last time, what you want out of this one, and the two questions worth asking — one page, read in the elevator. Locks the target meeting and the one-page criteria FIRST, then compiles from the calendar and the prior notes, so every claim in the brief traces to something real instead of memory. Use for meeting prep, 'prep me for the meeting', pre-meeting briefs, vendor and client syncs, and walking in warm.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "meeting-summary-audio",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "business",
|
|
6
7
|
"name": "Meeting Recording to Minutes & Actions",
|
|
7
8
|
"description": "Turn a meeting recording into structured minutes plus a clear action-item list — who agreed to do what by when — derived from the audio. Transcribes the recording FIRST (with speaker labels so attribution is possible), then summarizes into decisions, discussion, and assigned action items with owners and due dates. The transcribe-then-summarize ordering is essential: you cannot reliably attribute decisions and owners without first knowing who said what, and minutes without owners are useless.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "memory-prompt-session",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "writing",
|
|
6
7
|
"name": "Memory Session",
|
|
7
8
|
"description": "Run one guided memory session and bank it properly: pick the theme the timeline is hungriest for, follow the thread of feeling through the recorded conversation, and file the session with the follow-up questions that keep the next one alive. Locks the theme and question set FIRST, then captures the session in the teller's own words, then files it in the store with the threads to pull next time. Use for memory sessions, filing an interview with a parent or grandparent, memoir capture, and 'what should I ask next time'.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "message-queue-consumer",
|
|
5
5
|
"role": "project-starter",
|
|
6
|
+
"category": "code-data",
|
|
6
7
|
"name": "Message Queue Consumer / Worker",
|
|
7
8
|
"description": "Build a queue consumer/worker that pulls messages off a queue, processes them reliably, and handles failures with retries and a dead-letter path — at-least-once delivery done right. Scopes the messaging contract FIRST — the message schema, ack/nack semantics, idempotency key, retry/backoff policy, dead-letter rules, and concurrency — then implements the consumer loop with ack-after-success and DLQ routing, then tests success, retry, poison-message, and duplicate-delivery handling. Covers queue consumers, at-least-once vs at-most-once, ack/nack, idempotent processing, retry with backoff, dead-letter queues, and poison-message isolation.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "micro-game-jam",
|
|
5
5
|
"role": "project-starter",
|
|
6
|
+
"category": "code-build",
|
|
6
7
|
"name": "Micro Game Jam",
|
|
7
8
|
"description": "Build a tiny, complete, themed micro-game from a one-word or one-line prompt — a 60-second arcade or one-mechanic toy that fully fits in a single HTML file with a clear goal and a win/lose. Interprets the theme into one tight mechanic and a scope you can actually finish first, then builds the whole game in one pass. The jam discipline is ruthless scope: pick ONE mechanic that expresses the theme, lock a tiny acceptance bar, and ship it playable rather than sprawling — the ordering that gets a small model to a finished game instead of an unfinished engine.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "mock-interview",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "business",
|
|
6
7
|
"name": "Mock Interview",
|
|
7
8
|
"description": "A realistic practice interview run live with the candidate — planned questions calibrated to the target role and round, a real-time interview with pressure follow-ups, and a kind, specific debrief: strengths in the candidate's own words, fixes with sketched stronger answers, one drill, and an honest readiness read. The debrief is the deliverable. Use before any real interview round.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "mod-scaffold",
|
|
5
5
|
"role": "project-starter",
|
|
6
|
+
"category": "code-build",
|
|
6
7
|
"name": "Scaffold a Mod",
|
|
7
8
|
"description": "Start the mod right: a correctly-shaped Minecraft datapack — pack.mcmeta carrying the right format number for the target game version, namespaced folders laid out properly, and one working example of the mod's core idea — plus install steps a twelve-year-old can follow. Locks the idea and the version's structure rules FIRST, then scaffolds the tree, then writes the README. Use for starting a datapack, scaffolding a mod, 'my kid wants a mod that…', datapack setup, and first-mod projects.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "monitor-and-alert",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "code-ops",
|
|
6
7
|
"name": "Watch a Page or API and Alert",
|
|
7
8
|
"description": "Build a watcher that polls a web page or API endpoint on a schedule, detects a meaningful change or threshold breach, and fires an alert (and only alerts on real changes, not noise). Scopes the watched target, the exact change/threshold condition, and the dedup/cooldown policy FIRST, then builds the poll-diff-notify loop with persisted state, then tests it against simulated change and no-change inputs so it neither misses a real change nor spams on every poll. Condition-and-cooldown-before-build is the wisdom that separates a useful monitor from an alert-fatigue generator.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "month-close",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "business",
|
|
6
7
|
"name": "Close the Month",
|
|
7
8
|
"description": "Close out a month of household spending against the project's ledger: sweep the month's entries for category strays and surprises, compute the in/out/net totals and category breakdown, compare against the prior month, and write a short honest month summary with one concrete action for next month. Locks the target month and the reconciliation checks FIRST, then reconciles the entries, then writes the summary — so the close is a repeatable ritual with the same shape every month, not an ad-hoc glance at the numbers. Use for monthly budget close, month-end money review, 'how did we do this month', and household spending retrospectives.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "monthly-recording-review",
|
|
5
5
|
"role": "maintenance-review",
|
|
6
|
+
"category": "personal",
|
|
6
7
|
"name": "Monthly Recording Review",
|
|
7
8
|
"description": "Sit with the month's recordings the way a teacher would: compare each against last month's marks, hear the progress your own ears stopped noticing, and pick next month's one focus — proof over impression, once a month. Locks the review criteria FIRST (every recording assessed, deltas versus last month, exactly one focus), then assesses each recording with evidence, then writes the month's review. Use for monthly practice reviews, listening back to recordings, progress checks, and 'how did this month go'.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "moodboard",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "design",
|
|
6
7
|
"name": "Visual Moodboard",
|
|
7
8
|
"description": "Compose a visual moodboard that captures a direction — palette, textures, type vibe, imagery, and reference tiles — from a written brief, so a team can align on a look before any production work begins. Lock the brief and the explicit dimensions of the mood (e.g. 'warm/editorial/handmade' vs 'cool/technical/precise') FIRST, then assemble a coherent grid of generated or sourced tiles plus a swatch strip and keyword callouts. Covers moodboards, style boards, visual direction, design inspiration, brand mood, and look-and-feel exploration.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "morning-brief",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "research",
|
|
6
7
|
"name": "Morning Topic Brief",
|
|
7
8
|
"description": "Be informed without the doomscroll: this morning's items per watched topic, each with its source named, rumor separated from reporting, and yesterday's noise skipped — five minutes that replace an hour of feeds. Locks the brief rules FIRST, then gathers from the feeds, then writes the dated brief into the archive next to the previous ones. Use for morning briefs, daily topic digests, 'what happened overnight', news catch-ups on watched topics, and staying informed without the scroll.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "morning-report",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "personal",
|
|
6
7
|
"name": "Morning House Report",
|
|
7
8
|
"description": "The house says good morning properly: every zone's state read through the device tools, anything unusual surfaced first with one suggested action apiece, and the boring rest compressed to a line or two — glanceable before the first coffee. Locks the report criteria FIRST (every zone covered, anomalies before normals, a suggested action per oddity, short enough to read standing up), then polls the house, then writes the report — so the one morning the garage door stayed open all night is the morning it gets noticed. Use for morning house checks, daily home status, 'anything wrong with the house', overnight anomaly sweeps, and a glanceable device roundup.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "music-metadata-tag",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "media",
|
|
6
7
|
"name": "Music Library Metadata Tagging",
|
|
7
8
|
"description": "Tag and organize a folder of audio files with consistent, correct metadata — title, artist, album, track number, year, genre — so the library is clean, sortable, and player-friendly. Locks the tag schema and naming/foldering convention FIRST, applies tags and a consistent file/folder layout across the whole library, then verifies every file is fully and consistently tagged. Defining the schema and the source of truth before touching files is what prevents a half-tagged, inconsistently-named mess.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "narrated-slideshow",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "media",
|
|
6
7
|
"name": "Animated Content Slideshow",
|
|
7
8
|
"description": "Turn written content into a real MP4 video and animated GIF with DocBlocks. Locks the story and one message per scene, writes one H1 per scene in slideshow.md, then performs one multi-target conversion, previews the frames, and saves both rendered files in the artifacts drawer — no hand-built HTML player.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "newsletter-issue",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "marketing",
|
|
6
7
|
"name": "Newsletter Issue",
|
|
7
8
|
"description": "Produce a single polished, email-client-safe newsletter issue — intro, a few curated stories with links, a featured section, and a CTA — that renders correctly across email clients. Outlines the issue's theme and section lineup FIRST, writes scannable, personable copy with working links, then builds the email-safe HTML using inline styles and table layout so it survives Gmail/Outlook. Use for recurring email newsletters, product updates, and curated digests sent to subscribers.",
|
|
8
9
|
"tags": [
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"promptVersion": "workshop-mark-1910-v2",
|
|
4
|
+
"periodCue": "circa-1910-subtle",
|
|
5
|
+
"family": "build-repair",
|
|
6
|
+
"accents": [
|
|
7
|
+
"deep indigo",
|
|
8
|
+
"brass"
|
|
9
|
+
],
|
|
10
|
+
"sourceSummary": "Overnight triage of open code findings into clustered, reviewable change proposals; the tree itself is never touched.",
|
|
11
|
+
"styleReference": "bug-fix-tdd"
|
|
12
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"kind": "craftbook-template",
|
|
4
|
+
"id": "nightly-fix-sweep",
|
|
5
|
+
"role": "maintenance-review",
|
|
6
|
+
"category": "code-quality",
|
|
7
|
+
"name": "Nightly Fix Sweep",
|
|
8
|
+
"description": "Turn a night's open code findings into reviewable change proposals: triage the leads, cluster what belongs together, and draft one focused proposal per cluster for the user to read and apply in the morning. The project's files are never touched.",
|
|
9
|
+
"tags": [
|
|
10
|
+
"bug-fix",
|
|
11
|
+
"night-shift",
|
|
12
|
+
"boekwachter",
|
|
13
|
+
"proposals",
|
|
14
|
+
"quality",
|
|
15
|
+
"batch"
|
|
16
|
+
],
|
|
17
|
+
"maintainer": {
|
|
18
|
+
"name": "Gezel"
|
|
19
|
+
},
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"yankedVersions": [],
|
|
22
|
+
"logo": "logo.webp"
|
|
23
|
+
}
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"id": "nightly-fix-sweep",
|
|
4
|
+
"name": "Nightly Fix Sweep",
|
|
5
|
+
"description": "Turn a batch of open code findings into reviewable change proposals. The host triages the leads against the current code — a lead that no longer matches the file, or that needs a judgement only the owner can make, is legitimately left out — then clusters what belongs together as ONE change (a fix that spans a file and its caller is one cluster, not two) and fans out one drafting shard per cluster. Each shard makes the smallest correct change for its leads and explains it under Problem, Change, Risk, and How to verify. Built for unattended night runs: proposals are what the user reviews and applies in the morning, and the project's files are never touched by the sweep itself.",
|
|
6
|
+
"version": "1.0.0",
|
|
7
|
+
"releasedAt": "2026-08-24T00:00:00.000Z",
|
|
8
|
+
"minGezelVersion": "1.26236",
|
|
9
|
+
"entryStepId": "triage",
|
|
10
|
+
"triggers": [
|
|
11
|
+
"sweep the open findings",
|
|
12
|
+
"nightly fixes",
|
|
13
|
+
"draft fixes for the open issues",
|
|
14
|
+
"fix the boekwachter findings"
|
|
15
|
+
],
|
|
16
|
+
"runModes": {
|
|
17
|
+
"nightShift": "recommended"
|
|
18
|
+
},
|
|
19
|
+
"diffpackCapable": true,
|
|
20
|
+
"capabilityFloor": "small",
|
|
21
|
+
"paramSchema": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"properties": {
|
|
24
|
+
"workPath": {
|
|
25
|
+
"type": "string",
|
|
26
|
+
"title": "Working folder",
|
|
27
|
+
"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.",
|
|
28
|
+
"default": "{{task.dir}}"
|
|
29
|
+
},
|
|
30
|
+
"leads": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"title": "Leads",
|
|
33
|
+
"description": "Comma-separated finding refs to sweep (e.g. BW-3,BW-8). Leave empty when the task description carries the leads.",
|
|
34
|
+
"default": ""
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
},
|
|
38
|
+
"steps": [
|
|
39
|
+
{
|
|
40
|
+
"id": "triage",
|
|
41
|
+
"name": "Triage the leads into clusters",
|
|
42
|
+
"suggestedRole": "developer",
|
|
43
|
+
"capabilityFloor": "medium",
|
|
44
|
+
"prompt": "You have been handed open findings to sweep: {{leads}}. The task description may carry more detail per lead.\n\nRead the affected files and judge each lead against the CURRENT code: real, already fixed, stale, or a judgement only the owner can make. Leaving a lead out is legitimate — say why rather than forcing a change to satisfy a stale review.\n\nCluster what belongs together as ONE change: a fix that spans a file and its caller is one cluster, not two — splitting it would hand the user two half-changes neither of which stands alone. At most 8 clusters; prefer fewer, focused ones.\n\nWrite ONE `write_task_note` starting with the line `## Triage`: per lead, whether you will fix it and which cluster it belongs to, with reasons for anything left out.\n\nThen write the cluster list to the artifact `{{workPath}}/clusters.json` with ONE `write_artifact` call: a JSON array where each entry is an object with exactly these string fields — `slug` (short kebab-case name for the cluster, e.g. \"auth-null-guard\"), `issueRefs` (the refs in that cluster, comma-separated), and `focus` (one sentence on what that cluster should change). If nothing is worth fixing, write an empty array `[]` and say why in your note.",
|
|
45
|
+
"advanceWhen": {
|
|
46
|
+
"file": "{{workPath}}/clusters.json",
|
|
47
|
+
"artifact": true,
|
|
48
|
+
"minBytes": 2,
|
|
49
|
+
"sniff": "json-valid"
|
|
50
|
+
},
|
|
51
|
+
"gate": {
|
|
52
|
+
"at": "completion",
|
|
53
|
+
"checks": [
|
|
54
|
+
{
|
|
55
|
+
"kind": "sniff",
|
|
56
|
+
"file": "{{workPath}}/clusters.json",
|
|
57
|
+
"sniff": "json-valid",
|
|
58
|
+
"artifact": true
|
|
59
|
+
}
|
|
60
|
+
],
|
|
61
|
+
"scripts": [
|
|
62
|
+
{
|
|
63
|
+
"name": "checkTaskNoteContains",
|
|
64
|
+
"scope": "standard",
|
|
65
|
+
"inputs": {
|
|
66
|
+
"taskRef": "{{task.ref}}",
|
|
67
|
+
"pattern": "##\\s*Triage"
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
],
|
|
71
|
+
"onReject": "triage",
|
|
72
|
+
"maxAttempts": 3
|
|
73
|
+
},
|
|
74
|
+
"next": "fanout"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"id": "fanout",
|
|
78
|
+
"name": "Draft the proposals",
|
|
79
|
+
"spawnFanout": true,
|
|
80
|
+
"prompt": "Your clusters are being drafted, one proposal per cluster. Wait for the shards to finish, then call `advance_task_step`.",
|
|
81
|
+
"next": "collect"
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"id": "collect",
|
|
85
|
+
"name": "Hand over",
|
|
86
|
+
"terminal": true,
|
|
87
|
+
"prompt": "The sweep is done. Write one short `write_task_note` naming the proposals your crew drafted (by cluster) and any leads deliberately left alone with their reasons, then call `advance_task_step`. Never claim anything was fixed or applied — these are proposals for the user to review."
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"spawn": {
|
|
91
|
+
"overFile": "{{workPath}}/clusters.json",
|
|
92
|
+
"overArtifact": true,
|
|
93
|
+
"entryStepId": "draft",
|
|
94
|
+
"steps": [
|
|
95
|
+
{
|
|
96
|
+
"id": "draft",
|
|
97
|
+
"name": "Draft the change",
|
|
98
|
+
"suggestedRole": "developer",
|
|
99
|
+
"capabilityFloor": "small",
|
|
100
|
+
"prompt": "Your cluster is {{issueRefs}} ({{slug}}). What it should change: {{focus}}\n\nRead the affected files first, then make the smallest correct change for those leads and nothing else. Use `read_file`, `write_file`, and `replace_in_file` exactly as you always do. Keep it focused — a change a reviewer can read in a minute gets applied; a sprawling one gets dismissed. If a lead turns out to be wrong once you are in the code, leave it alone and say so.\n\nThen write your explanation to the artifact `{{diffpack.dir}}/notes.md` in ONE `write_artifact` call, with exactly these four headings:\n\n## Problem\n## Change\n## Risk\n## How to verify\n\nUnder Change, describe what you altered and why, naming the refs. Under Risk, be honest about what you could not verify without running the code. Then call `advance_task_step`.",
|
|
101
|
+
"advanceWhen": {
|
|
102
|
+
"file": "{{diffpack.dir}}/notes.md",
|
|
103
|
+
"artifact": true,
|
|
104
|
+
"minBytes": 200
|
|
105
|
+
},
|
|
106
|
+
"gate": {
|
|
107
|
+
"at": "completion",
|
|
108
|
+
"checks": [
|
|
109
|
+
{
|
|
110
|
+
"kind": "contains",
|
|
111
|
+
"file": "{{diffpack.dir}}/notes.md",
|
|
112
|
+
"pattern": "##\\s+Problem",
|
|
113
|
+
"label": "Problem section",
|
|
114
|
+
"artifact": true
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"kind": "contains",
|
|
118
|
+
"file": "{{diffpack.dir}}/notes.md",
|
|
119
|
+
"pattern": "##\\s+Change",
|
|
120
|
+
"label": "Change section",
|
|
121
|
+
"artifact": true
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"kind": "contains",
|
|
125
|
+
"file": "{{diffpack.dir}}/notes.md",
|
|
126
|
+
"pattern": "##\\s+Risk",
|
|
127
|
+
"label": "Risk section",
|
|
128
|
+
"artifact": true
|
|
129
|
+
},
|
|
130
|
+
{
|
|
131
|
+
"kind": "contains",
|
|
132
|
+
"file": "{{diffpack.dir}}/notes.md",
|
|
133
|
+
"pattern": "##\\s+How to verify",
|
|
134
|
+
"label": "How to verify section",
|
|
135
|
+
"artifact": true
|
|
136
|
+
}
|
|
137
|
+
],
|
|
138
|
+
"onReject": "draft",
|
|
139
|
+
"maxAttempts": 3
|
|
140
|
+
},
|
|
141
|
+
"terminal": true
|
|
142
|
+
}
|
|
143
|
+
]
|
|
144
|
+
}
|
|
145
|
+
}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"title": "Nightly sweep drafts sealed proposals without touching the tree",
|
|
4
|
+
"objective": "The host triages two seeded findings into clusters and fans out drafting shards; each shard's edits land in a change proposal that seals on completion, the four-heading notes contract holds, and the workspace files stay byte-identical.",
|
|
5
|
+
"tags": [
|
|
6
|
+
"code",
|
|
7
|
+
"night-shift",
|
|
8
|
+
"proposals",
|
|
9
|
+
"fanout",
|
|
10
|
+
"tactical-fleet"
|
|
11
|
+
],
|
|
12
|
+
"prompt": "Run the Nightly Fix Sweep for the two open findings described in the task. LEAD-1: src/greet.js builds the greeting with a stray double space when no title is given. LEAD-2: src/farewell.js says 'Godbye' instead of 'Goodbye'. Draft the fixes as proposals.",
|
|
13
|
+
"setup": {
|
|
14
|
+
"projectName": "Sweep Fixture",
|
|
15
|
+
"about": "A tiny greeting library with two known low-risk defects, used to exercise the nightly proposal sweep.",
|
|
16
|
+
"managedWorkspaceWritePolicy": "deny",
|
|
17
|
+
"files": [
|
|
18
|
+
{
|
|
19
|
+
"path": "src/greet.js",
|
|
20
|
+
"content": "export function greet(name, title) {\n const prefix = title ? `${title} ` : ' ';\n return `Hello, ${prefix}${name}!`;\n}\n"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"path": "src/farewell.js",
|
|
24
|
+
"content": "export function farewell(name) {\n return `Godbye, ${name}.`;\n}\n"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"path": "source/findings.md",
|
|
28
|
+
"content": "# Open findings\n\n- LEAD-1 (minor, src/greet.js): greeting has a leading double space when no title is passed - `greet('Ada')` returns `Hello, Ada!`. The no-title prefix should be empty.\n- LEAD-2 (minor, src/farewell.js): the farewell text misspells Goodbye as 'Godbye'.\n"
|
|
29
|
+
}
|
|
30
|
+
],
|
|
31
|
+
"craftbookParams": {
|
|
32
|
+
"workPath": "tasks/eval",
|
|
33
|
+
"leads": "LEAD-1,LEAD-2"
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"success": {
|
|
37
|
+
"summary": "Clusters were published, shards drafted, at least one proposal sealed with the four-heading notes, and the workspace was never modified.",
|
|
38
|
+
"deliverables": [
|
|
39
|
+
{
|
|
40
|
+
"path": "tasks/eval/clusters.json",
|
|
41
|
+
"kind": "json",
|
|
42
|
+
"artifact": true,
|
|
43
|
+
"minBytes": 2,
|
|
44
|
+
"checks": [
|
|
45
|
+
{
|
|
46
|
+
"kind": "recordSchema",
|
|
47
|
+
"file": "tasks/eval/clusters.json",
|
|
48
|
+
"artifact": true,
|
|
49
|
+
"minRows": 1,
|
|
50
|
+
"fields": [
|
|
51
|
+
{
|
|
52
|
+
"name": "slug",
|
|
53
|
+
"rule": "nonempty"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "issueRefs",
|
|
57
|
+
"rule": "nonempty"
|
|
58
|
+
},
|
|
59
|
+
{
|
|
60
|
+
"name": "focus",
|
|
61
|
+
"rule": "nonempty"
|
|
62
|
+
}
|
|
63
|
+
]
|
|
64
|
+
}
|
|
65
|
+
]
|
|
66
|
+
}
|
|
67
|
+
],
|
|
68
|
+
"taskNotes": {
|
|
69
|
+
"minBytes": 120,
|
|
70
|
+
"requireCraftbookTask": true,
|
|
71
|
+
"checks": [
|
|
72
|
+
{
|
|
73
|
+
"kind": "contains",
|
|
74
|
+
"file": "task-notes.md",
|
|
75
|
+
"pattern": "##\\s*Triage",
|
|
76
|
+
"label": "triage note present"
|
|
77
|
+
}
|
|
78
|
+
]
|
|
79
|
+
},
|
|
80
|
+
"taskGraph": {
|
|
81
|
+
"requireCraftbookTask": true,
|
|
82
|
+
"requireTerminalStep": true
|
|
83
|
+
},
|
|
84
|
+
"history": [
|
|
85
|
+
{
|
|
86
|
+
"kind": "project.diffpack.sealed",
|
|
87
|
+
"minEntries": 1
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
"unchangedFixtures": [
|
|
91
|
+
"src/greet.js",
|
|
92
|
+
"src/farewell.js",
|
|
93
|
+
"source/findings.md"
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
"rubric": {
|
|
97
|
+
"artifact": {
|
|
98
|
+
"path": "tasks/eval/clusters.json",
|
|
99
|
+
"kind": "json"
|
|
100
|
+
},
|
|
101
|
+
"axes": [
|
|
102
|
+
{
|
|
103
|
+
"name": "Triage judgement",
|
|
104
|
+
"description": "Leads were judged against the current code and clustered sensibly; anything left out has an honest reason."
|
|
105
|
+
},
|
|
106
|
+
{
|
|
107
|
+
"name": "Proposal focus",
|
|
108
|
+
"description": "Each drafted proposal is the smallest correct change for its cluster, explained under Problem, Change, Risk, and How to verify."
|
|
109
|
+
},
|
|
110
|
+
{
|
|
111
|
+
"name": "Honesty about mode",
|
|
112
|
+
"description": "Notes never claim anything was fixed or applied; risk sections admit what could not be verified without running the code."
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
"qualityFocus": [
|
|
117
|
+
"proposal discipline",
|
|
118
|
+
"cluster judgement",
|
|
119
|
+
"untouched workspace"
|
|
120
|
+
]
|
|
121
|
+
}
|