@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
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"title": "Accessibility retrofit on a seeded page",
|
|
4
|
+
"objective": "The craftbook drives a real accessibility retrofit of a page seeded with five concrete violations: missing alt text on two meaningful images, a placeholder-as-label email input, a div-as-button control with no keyboard path, a heading jump from h1 to h4, and a decorative divider whose empty alt must survive untouched. Every repair is verified mechanically by string-parsing the fixed markup.",
|
|
5
|
+
"tags": [
|
|
6
|
+
"code",
|
|
7
|
+
"accessibility",
|
|
8
|
+
"a11y",
|
|
9
|
+
"tactical-fleet"
|
|
10
|
+
],
|
|
11
|
+
"prompt": "Use the Accessibility Retrofit craftbook on this site: readers using screen readers and keyboards report the Field Notes page is unusable — images carry no descriptions, the signup field has no label, and the Join the list control cannot be reached or activated with the keyboard. Audit index.html, fix every violation at its real site in the markup, and verify the result.",
|
|
12
|
+
"setup": {
|
|
13
|
+
"projectName": "Acme Field Notes",
|
|
14
|
+
"about": "A small static newsletter site: index.html plus styles.css and a few inline SVG images. No build step and no test suite.",
|
|
15
|
+
"files": [
|
|
16
|
+
{
|
|
17
|
+
"path": "package.json",
|
|
18
|
+
"content": "{\n \"name\": \"field-notes\",\n \"private\": true,\n \"version\": \"1.0.0\",\n \"type\": \"module\"\n}\n"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"path": "index.html",
|
|
22
|
+
"content": "<!doctype html>\n<html lang=\"en\">\n<head>\n<meta charset=\"utf-8\">\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">\n<title>Acme Field Notes</title>\n<link rel=\"stylesheet\" href=\"styles.css\">\n</head>\n<body>\n<div class=\"masthead\">\n <h1>Acme Field Notes</h1>\n <img src=\"images/divider.svg\" class=\"divider\" alt=\"\">\n</div>\n<div class=\"content\">\n <h4>Latest dispatch</h4>\n <img src=\"images/harvest-crew.svg\" class=\"feature\">\n <p>The harvest crew finished the north field on Tuesday, two days ahead of schedule, and moved on to the orchard rows.</p>\n <h4>Sign up for dispatches</h4>\n <p>Get the weekly note by email.</p>\n <input type=\"email\" placeholder=\"Your email address\">\n <div class=\"button\" onclick=\"joinList()\">Join the list</div>\n <p id=\"joined-note\" hidden>You are on the list.</p>\n <h4>From the archive</h4>\n <img src=\"images/seed-chart.svg\" class=\"feature\">\n <p>Germination rates for the last five seasons, charted by seed lot and sowing week.</p>\n</div>\n<script>\nfunction joinList() {\n document.getElementById('joined-note').hidden = false;\n}\n</script>\n</body>\n</html>\n"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"path": "styles.css",
|
|
26
|
+
"content": "body { margin: 0; font-family: Georgia, serif; color: #222; background: #faf8f4; }\n.masthead { padding: 2rem 1.5rem 0; }\n.divider { width: 100%; height: 12px; }\n.content { max-width: 40rem; padding: 1rem 1.5rem 3rem; }\n.feature { max-width: 100%; }\n.button { display: inline-block; padding: 0.5rem 1rem; background: #2e5d3b; color: #fff; cursor: pointer; }\n.button:hover { background: #234a2e; }\ninput[type=\"email\"] { padding: 0.5rem; width: 16rem; }\n"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"path": "images/harvest-crew.svg",
|
|
30
|
+
"content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 180\"><rect width=\"320\" height=\"180\" fill=\"#dce8d8\"/><text x=\"16\" y=\"95\" font-size=\"16\">Harvest crew walking the north field at dawn</text></svg>\n"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"path": "images/seed-chart.svg",
|
|
34
|
+
"content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 180\"><rect width=\"320\" height=\"180\" fill=\"#e8e2d4\"/><text x=\"16\" y=\"95\" font-size=\"16\">Germination rate by season, 2021 to 2025</text></svg>\n"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"path": "images/divider.svg",
|
|
38
|
+
"content": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 12\"><line x1=\"0\" y1=\"6\" x2=\"320\" y2=\"6\" stroke=\"#b8b0a0\" stroke-width=\"2\"/></svg>\n"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"path": "tests/verify-retrofit.mjs",
|
|
42
|
+
"content": "import assert from 'node:assert/strict';\nimport { readFileSync } from 'node:fs';\n\nconst html = readFileSync('index.html', 'utf8');\n\nfunction imgTag(src) {\n const tags = [...html.matchAll(/<img\\b[^>]*>/gi)].map((m) => m[0]);\n const tag = tags.find((t) => t.includes(src));\n assert.ok(tag, `an img referencing ${src} still exists`);\n return tag;\n}\nfunction altOf(tag, src) {\n const alt = tag.match(/\\balt\\s*=\\s*(\"([^\"]*)\"|'([^']*)')/i);\n assert.ok(alt, `image ${src} carries an alt attribute`);\n return alt[2] ?? alt[3] ?? '';\n}\n\n// 1) Meaningful images: specific, non-empty alt text.\nfor (const src of ['harvest-crew', 'seed-chart']) {\n const alt = altOf(imgTag(src), src).trim();\n assert.ok(alt.length >= 10, `alt for ${src} must be specific, got \"${alt}\"`);\n assert.ok(!/^(image|photo|picture|graphic|img)$/i.test(alt), `alt for ${src} must not be filler`);\n assert.ok(!/^(an? )?(image|photo|picture) of/i.test(alt), `alt for ${src} must not open with \"image of\"`);\n}\nconsole.log('A11YRETRO_ORACLE alts ok');\n\n// 2) The decorative divider keeps an EMPTY alt - no sprayed description.\nassert.equal(altOf(imgTag('divider'), 'divider').trim(), '', 'decorative divider keeps alt=\"\"');\nconsole.log('A11YRETRO_ORACLE decorative ok');\n\n// 3) The email input is labeled by a real label whose for resolves to its id.\nconst labels = [...html.matchAll(/<label\\b[^>]*\\bfor\\s*=\\s*[\"']([^\"']+)[\"'][^>]*>/gi)];\nassert.ok(labels.length >= 1, 'a label element with a for attribute exists');\nconst paired = labels.filter((m) => new RegExp(`<input\\\\b[^>]*\\\\bid\\\\s*=\\\\s*[\"']${m[1]}[\"']`, 'i').test(html));\nassert.ok(paired.length >= 1, \"a label's for attribute resolves to a real input id\");\nconsole.log('A11YRETRO_ORACLE label ok');\n\n// 4) The join control is a real button, or carries complete ARIA button semantics.\nconst join = html.match(/<([a-z0-9]+)\\b([^>]*)>\\s*Join the list/i);\nassert.ok(join, 'the \"Join the list\" control still exists');\nconst [, joinTag, joinAttrs] = join;\nif (joinTag.toLowerCase() !== 'button') {\n assert.ok(/\\brole\\s*=\\s*[\"']button[\"']/i.test(joinAttrs), 'non-button control carries role=\"button\"');\n assert.ok(/\\btabindex\\s*=\\s*[\"']0[\"']/i.test(joinAttrs), 'non-button control is focusable via tabindex=\"0\"');\n const keyWired = /\\bonkey(?:down|up|press)\\s*=/i.test(joinAttrs) || /addEventListener\\s*\\(\\s*[\"']key(?:down|up|press)[\"']/i.test(html);\n assert.ok(keyWired, 'non-button control has keyboard activation wired');\n}\nconsole.log('A11YRETRO_ORACLE control ok');\n\n// 5) Heading order is monotonic from a single h1.\nconst levels = [...html.matchAll(/<h([1-6])\\b[^>]*>/gi)].map((m) => Number(m[1]));\nassert.ok(levels.length >= 3, 'the page keeps its headings');\nassert.equal(levels[0], 1, 'the page starts at h1');\nfor (let i = 1; i < levels.length; i++) {\n assert.ok(levels[i] <= levels[i - 1] + 1, `heading level jumps from h${levels[i - 1]} to h${levels[i]}`);\n}\nconsole.log('A11YRETRO_ORACLE headings ok');\n\n// 6) The join behavior target survives the retrofit.\nassert.ok(/joined-note/.test(html), 'the joined-note behavior target survives');\nconsole.log('A11YRETRO_ORACLE done');\n",
|
|
43
|
+
"surface": "harness"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
"craftbookParams": {
|
|
47
|
+
"workPath": "tasks/eval"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"mocks": [],
|
|
51
|
+
"success": {
|
|
52
|
+
"summary": "All five seeded violations are repaired at their real sites in index.html — specific alts on the meaningful images, an empty alt preserved on the decorative divider, a paired label, a keyboard-operable join control, monotonic headings — and every fleet artifact exists with honest citations.",
|
|
53
|
+
"deliverables": [
|
|
54
|
+
{
|
|
55
|
+
"path": "tasks/eval/audit.md",
|
|
56
|
+
"kind": "markdown-notes",
|
|
57
|
+
"artifact": true,
|
|
58
|
+
"minBytes": 600,
|
|
59
|
+
"checks": [
|
|
60
|
+
{
|
|
61
|
+
"kind": "contains",
|
|
62
|
+
"file": "tasks/eval/audit.md",
|
|
63
|
+
"pattern": "^##\\s+Scope[\\s\\S]*^##\\s+Violations[\\s\\S]*^##\\s+Priorities",
|
|
64
|
+
"flags": "im",
|
|
65
|
+
"label": "audit sections in order"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"kind": "tableShape",
|
|
69
|
+
"file": "tasks/eval/audit.md",
|
|
70
|
+
"requiredColumns": [
|
|
71
|
+
"File",
|
|
72
|
+
"Issue",
|
|
73
|
+
"Priority"
|
|
74
|
+
],
|
|
75
|
+
"minRows": 3,
|
|
76
|
+
"artifact": true
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
"kind": "citationsResolve",
|
|
80
|
+
"file": "tasks/eval/audit.md",
|
|
81
|
+
"minCitations": 2,
|
|
82
|
+
"artifact": true
|
|
83
|
+
},
|
|
84
|
+
{
|
|
85
|
+
"kind": "contains",
|
|
86
|
+
"file": "tasks/eval/audit.md",
|
|
87
|
+
"pattern": "index\\.html",
|
|
88
|
+
"label": "the audit names the real page"
|
|
89
|
+
}
|
|
90
|
+
]
|
|
91
|
+
},
|
|
92
|
+
{
|
|
93
|
+
"path": "tasks/eval/fix-notes.md",
|
|
94
|
+
"kind": "markdown-notes",
|
|
95
|
+
"artifact": true,
|
|
96
|
+
"minBytes": 700,
|
|
97
|
+
"checks": [
|
|
98
|
+
{
|
|
99
|
+
"kind": "contains",
|
|
100
|
+
"file": "tasks/eval/fix-notes.md",
|
|
101
|
+
"pattern": "^##\\s+Problem[\\s\\S]*^##\\s+Change[\\s\\S]*^##\\s+Files touched[\\s\\S]*^##\\s+Per-violation disposition[\\s\\S]*^##\\s+Risk[\\s\\S]*^##\\s+How to verify",
|
|
102
|
+
"flags": "im",
|
|
103
|
+
"label": "fix-notes sections in order"
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
"kind": "citationsResolve",
|
|
107
|
+
"file": "tasks/eval/fix-notes.md",
|
|
108
|
+
"minCitations": 2,
|
|
109
|
+
"artifact": true
|
|
110
|
+
}
|
|
111
|
+
]
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"path": "tasks/eval/validation.md",
|
|
115
|
+
"kind": "markdown-notes",
|
|
116
|
+
"artifact": true,
|
|
117
|
+
"minBytes": 500,
|
|
118
|
+
"checks": [
|
|
119
|
+
{
|
|
120
|
+
"kind": "contains",
|
|
121
|
+
"file": "tasks/eval/validation.md",
|
|
122
|
+
"pattern": "^##\\s+Per-item verification[\\s\\S]*^##\\s+Keyboard walk[\\s\\S]*^##\\s+Result",
|
|
123
|
+
"flags": "im",
|
|
124
|
+
"label": "validation sections in order"
|
|
125
|
+
}
|
|
126
|
+
]
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"path": "tasks/eval/review.md",
|
|
130
|
+
"kind": "markdown-report",
|
|
131
|
+
"artifact": true,
|
|
132
|
+
"minBytes": 400,
|
|
133
|
+
"checks": [
|
|
134
|
+
{
|
|
135
|
+
"kind": "contains",
|
|
136
|
+
"file": "tasks/eval/review.md",
|
|
137
|
+
"pattern": "Verdict:\\s*(?:PASS|REVISE)",
|
|
138
|
+
"flags": "i",
|
|
139
|
+
"label": "explicit reviewer verdict"
|
|
140
|
+
}
|
|
141
|
+
]
|
|
142
|
+
}
|
|
143
|
+
],
|
|
144
|
+
"checks": [
|
|
145
|
+
{
|
|
146
|
+
"kind": "notContains",
|
|
147
|
+
"file": "index.html",
|
|
148
|
+
"pattern": "<img\\b(?![^>]*\\balt\\s*=)[^>]*>",
|
|
149
|
+
"label": "no image is missing its alt attribute"
|
|
150
|
+
},
|
|
151
|
+
{
|
|
152
|
+
"kind": "htmlLint",
|
|
153
|
+
"file": "index.html"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"kind": "nodeScriptPasses",
|
|
157
|
+
"script": "tests/verify-retrofit.mjs",
|
|
158
|
+
"timeoutMs": 60000,
|
|
159
|
+
"requiredOutput": [
|
|
160
|
+
{
|
|
161
|
+
"pattern": "A11YRETRO_ORACLE alts ok",
|
|
162
|
+
"label": "meaningful images carry specific alt text"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"pattern": "A11YRETRO_ORACLE decorative ok",
|
|
166
|
+
"label": "the decorative divider keeps its empty alt"
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
"pattern": "A11YRETRO_ORACLE label ok",
|
|
170
|
+
"label": "the label's for pairs with a real input id"
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"pattern": "A11YRETRO_ORACLE control ok",
|
|
174
|
+
"label": "the join control is keyboard-operable"
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
"pattern": "A11YRETRO_ORACLE headings ok",
|
|
178
|
+
"label": "heading order is monotonic"
|
|
179
|
+
}
|
|
180
|
+
]
|
|
181
|
+
}
|
|
182
|
+
],
|
|
183
|
+
"taskNotes": {
|
|
184
|
+
"minBytes": 120,
|
|
185
|
+
"checks": [
|
|
186
|
+
{
|
|
187
|
+
"kind": "contains",
|
|
188
|
+
"file": "task-notes.md",
|
|
189
|
+
"pattern": "\\bDONE\\b[\\s\\S]*(validation\\.md|fix-notes\\.md|audit\\.md)",
|
|
190
|
+
"flags": "i",
|
|
191
|
+
"label": "DONE note names the deliverables"
|
|
192
|
+
}
|
|
193
|
+
]
|
|
194
|
+
},
|
|
195
|
+
"taskGraph": {
|
|
196
|
+
"requireCraftbookTask": true,
|
|
197
|
+
"requireTerminalStep": true
|
|
198
|
+
},
|
|
199
|
+
"unchangedFixtures": [
|
|
200
|
+
"package.json",
|
|
201
|
+
"images/harvest-crew.svg",
|
|
202
|
+
"images/seed-chart.svg",
|
|
203
|
+
"images/divider.svg"
|
|
204
|
+
]
|
|
205
|
+
},
|
|
206
|
+
"rubric": {
|
|
207
|
+
"artifact": {
|
|
208
|
+
"path": "tasks/eval/fix-notes.md",
|
|
209
|
+
"kind": "markdown"
|
|
210
|
+
},
|
|
211
|
+
"axes": [
|
|
212
|
+
{
|
|
213
|
+
"name": "Real-site repair",
|
|
214
|
+
"description": "Violations were fixed in the actual markup with semantic elements preferred over ARIA bolt-ons — a real button and a real label rather than aria-label sprayed on divs."
|
|
215
|
+
},
|
|
216
|
+
{
|
|
217
|
+
"name": "Classification judgment",
|
|
218
|
+
"description": "Meaningful versus decorative images were classified correctly: specific purposeful alt text for the content images, an empty alt preserved on the divider, and the decorative call stated in the notes."
|
|
219
|
+
},
|
|
220
|
+
{
|
|
221
|
+
"name": "Honest verification trail",
|
|
222
|
+
"description": "Audit, fix-notes, and validation reconcile item for item, and validation separates what was inspected in the code from what was actually exercised."
|
|
223
|
+
}
|
|
224
|
+
]
|
|
225
|
+
},
|
|
226
|
+
"qualityFocus": [
|
|
227
|
+
"real-site fixes over ARIA theater",
|
|
228
|
+
"content vs decorative image judgment",
|
|
229
|
+
"enforced review loop"
|
|
230
|
+
]
|
|
231
|
+
}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "ad-variations",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "marketing",
|
|
6
7
|
"name": "A/B Ad Copy Variations",
|
|
7
8
|
"description": "Generate a set of distinct, testable ad-copy variations for one offer across the angles worth A/B testing: it first locks the platform and its constraints (headline/description character limits), the offer, audience, and the distinct messaging angles to test (benefit, pain, social proof, urgency, curiosity), then drafts multiple complete variants per angle so each is a genuine test of a hypothesis rather than a trivial reword. Covers ad copy, A/B testing, Google/Facebook/LinkedIn ads, PPC copy, ad variations, and marketing experiments. Locking the angles and limits before writing is the point: a small model that commits to distinct hypotheses produces variants that actually test something, not ten near-duplicates that teach the advertiser nothing.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "album-curate",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "media",
|
|
6
7
|
"name": "Curate an Album",
|
|
7
8
|
"description": "Turn a thousand camera-roll photos into the forty that tell the story: cull the near-duplicates, keep the keepers for honest reasons, caption what matters, and leave an album manifest the family will actually revisit. Locks the occasion and the selection criteria FIRST, then curates the manifest one moment at a time, then writes the album's short story. Use for curating an album, photo culling, 'make an album from the weekend', picking the keepers, and turning imports into albums.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "alert-rules",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "code-ops",
|
|
6
7
|
"name": "Monitoring Alert Rules",
|
|
7
8
|
"description": "Author a set of monitoring/alerting rules as a deployable config (Prometheus alerting rules, Grafana/Alertmanager YAML, or a CloudWatch-style spec): the right signals, thresholds, severities, for-durations, and routing labels. Scopes the SLOs and alert philosophy FIRST (what to alert on, symptom-vs-cause, thresholds and burn windows, severity ladder, noise budget), then a developer writes the rules config to that spec, then a reviewer validates for completeness, dedupe, and anti-flapping. Scoping thresholds and severities before writing YAML is what produces actionable, low-noise alerts instead of a wall of CPU-over-80% pages. Use for alerting rules, Prometheus alerts, SLO monitoring, on-call paging rules, and reducing alert fatigue.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "alt-text-pass",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "code-review",
|
|
6
7
|
"name": "Alt-Text Pass",
|
|
7
8
|
"description": "Generate accurate, WCAG-appropriate alt text for every image referenced by a site or folder and apply it back into the markup. Scope FIRST which images are content vs decorative (decorative images get empty alt, not a description) and the voice/length rules, because the most common alt-text failure is verbose, redundant, or wrong-purpose descriptions. Then caption each content image from what is actually visible and write the alt attributes back into the HTML. Covers accessibility, alt text, image descriptions, WCAG compliance, screen-reader support, and a11y retrofits.",
|
|
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": "anniversary-cut",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "media",
|
|
6
7
|
"name": "Anniversary Cut",
|
|
7
8
|
"description": "Build the highlight reel for the occasion: the archive queried for the person and the years that matter, clips chosen with stated reasons, assembled through the project's media pipeline with a run log, and delivered with a chapter list and a dedication — the reel that makes the birthday. Locks the occasion and the selection criteria FIRST (era coverage, the famous moments in, a length budget), then selects from the archive with no invented footage, then assembles, then writes the presentation notes. Use for birthday reels, anniversary videos, memorial montages, 'make a highlight reel', and milestone tributes.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "annotated-bibliography",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "research",
|
|
6
7
|
"name": "Annotated Bibliography",
|
|
7
8
|
"description": "Build a formal annotated bibliography for a research topic: a planner locks the scope, the citation style, and the annotation rubric (summary + evaluation + relevance), then a researcher locates each source and writes a consistent, properly-formatted annotation that summarizes, critically evaluates, and situates it for the research question. The ordering matters because annotations written without a fixed rubric vary wildly in depth and a bibliography assembled without a citation style is inconsistent; locking style and the three-part annotation rubric first yields a uniform, scholarly, reusable artifact. Use this for annotated bibliographies, a sourced reference list with summaries, research source logs, literature foundations for a paper, and 'list and evaluate my sources' requests.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "annual-document-review",
|
|
5
5
|
"role": "maintenance-review",
|
|
6
|
+
"category": "personal",
|
|
6
7
|
"name": "Annual Document Review",
|
|
7
8
|
"description": "Walk a life binder's document roster once a year: inventory what is present and missing, confirm each present document is still current (right beneficiaries, right address, not expired), record the review so staleness tracking resets, and produce a prioritized to-do for the gaps. Locks the currency criteria per document kind FIRST, then verifies each record, then reports — so the binder's completeness claim is re-earned annually instead of rotting silently. Use for annual life-binder reviews, estate document checkups, 'is our paperwork still right', and insurance/beneficiary reviews.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "anomaly-scan",
|
|
5
5
|
"role": "general",
|
|
6
|
+
"category": "research",
|
|
6
7
|
"name": "Anomaly / Outlier Scan",
|
|
7
8
|
"description": "Scan a dataset for anomalies and outliers and report what is genuinely unusual versus expected noise. Defines the detection criteria and thresholds FIRST (statistical and rule-based, with an explicit definition of 'anomalous') so findings are reproducible, then runs the scan to flag and rank suspect records, then writes a prioritized report a human can triage. Use this for outlier detection, anomaly scanning, finding bad records, fraud/error spotting, or surfacing data points that don't fit.",
|
|
8
9
|
"tags": [
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"kind": "craftbook-template",
|
|
4
4
|
"id": "api-contract-review",
|
|
5
5
|
"role": "maintenance-review",
|
|
6
|
+
"category": "code-data",
|
|
6
7
|
"name": "API Contract Review",
|
|
7
8
|
"description": "Review an API contract or specification (OpenAPI/REST/GraphQL) for correctness, consistency, and developer ergonomics, then produce a findings report. First scopes the surface and locks an API design checklist (resource naming and HTTP semantics, status codes, pagination and filtering, error schema consistency, auth, versioning and backward compatibility, idempotency, and schema/type rigor), then reviews each endpoint and type against those rules and REST/GraphQL best practices, then writes a findings report rating each issue and giving the corrected contract snippet. Use this for an API design review, reviewing an OpenAPI/Swagger spec, a REST or GraphQL contract review, endpoint/schema critique, or checking an API for consistency and backward compatibility before it ships — it returns specific, spec-anchored fixes rather than 'make the API cleaner'.",
|
|
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
|
+
"slate",
|
|
8
|
+
"ochre"
|
|
9
|
+
],
|
|
10
|
+
"sourceSummary": "Take an existing review’s findings and close each one at its real site, with per-finding dispositions and verification.",
|
|
11
|
+
"styleReference": "bug-fix-tdd"
|
|
12
|
+
}
|
|
Binary file
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"kind": "craftbook-template",
|
|
4
|
+
"id": "apply-review-findings",
|
|
5
|
+
"name": "Apply Review Findings",
|
|
6
|
+
"description": "Take an existing review's findings and close them for real: triage each one against the current code, fix the real ones at their actual sites with the smallest correct change, verify per finding, and account for every finding end to end under an enforced review.",
|
|
7
|
+
"role": "general",
|
|
8
|
+
"category": "code-quality",
|
|
9
|
+
"tags": [
|
|
10
|
+
"review-findings",
|
|
11
|
+
"follow-up",
|
|
12
|
+
"bug-fix",
|
|
13
|
+
"triage",
|
|
14
|
+
"quality",
|
|
15
|
+
"maintenance"
|
|
16
|
+
],
|
|
17
|
+
"maintainer": {
|
|
18
|
+
"name": "Gezel"
|
|
19
|
+
},
|
|
20
|
+
"license": "MIT",
|
|
21
|
+
"yankedVersions": [],
|
|
22
|
+
"logo": "logo.webp"
|
|
23
|
+
}
|