@bendyline/gilde 0.1.50 → 0.1.51
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/craftbook-templates/ac/accessibility-retrofit/versions/2.0.0/test.json +14 -17
- package/data/craftbook-templates/ad/ad-variations/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/al/album-curate/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/al/alert-rules/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/an/anniversary-cut/versions/1.0.4/test.json +0 -3
- package/data/craftbook-templates/an/annotated-bibliography/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.0/test.json +21 -22
- package/data/craftbook-templates/au/audio-ad-spot/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/au/audio-highlight-reel/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.4/test.json +0 -3
- package/data/craftbook-templates/au/automation-recipe/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ba/backup-routine/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/bl/blog-post/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/bo/board-deck/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/bo/board-game-web/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/bo/booking-automation/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.5/test.json +1 -4
- package/data/craftbook-templates/bu/bug-fix-tdd/versions/2.0.0/test.json +14 -15
- package/data/craftbook-templates/ca/calendar-brief/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ca/canvas-generative-art/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ca/case-study/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ca/case-study-writeup/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.3/test.json +0 -3
- package/data/craftbook-templates/ch/chapter-weave/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ch/character-sheet/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ch/character-turnaround/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ch/chart-pack/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ch/chrome-extension/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ci/ci-pipeline/versions/2.0.0/test.json +14 -17
- package/data/craftbook-templates/cl/cli-tool/versions/1.1.2/test.json +0 -3
- package/data/craftbook-templates/co/codemod-sweep/versions/1.0.0/test.json +12 -13
- package/data/craftbook-templates/co/company-research-brief/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/co/comparison-matrix/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/co/config-scaffold/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/co/content-deck/versions/1.2.2/craftbook.json +217 -0
- package/data/craftbook-templates/co/content-deck/versions/1.2.2/test.json +169 -0
- package/data/craftbook-templates/co/contract-template/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/co/cookbook-layout/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.2/craftbook.json +221 -0
- package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.2/test.json +187 -0
- package/data/craftbook-templates/co/cover-letter/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/cr/crm-update-batch/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/cr/cron-job/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/cs/csv-transformer/versions/1.2.3/test.json +0 -3
- package/data/craftbook-templates/da/dashboard-spec/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/da/data-dictionary/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/da/data-export-migrate/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/da/data-join-merge/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.3/test.json +0 -3
- package/data/craftbook-templates/da/data-viz-page/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/da/dataset-clean/versions/1.2.3/test.json +0 -3
- package/data/craftbook-templates/db/db-index-tuning/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/de/deep-security-review/versions/1.1.2/test.json +0 -3
- package/data/craftbook-templates/de/dependency-upgrade/versions/1.0.0/test.json +12 -13
- package/data/craftbook-templates/de/deploy-checklist/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/de/design-system-consultation/versions/2.0.4/test.json +1 -4
- package/data/craftbook-templates/di/diagram-from-text/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/di/digest-from-feeds/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/do/doc-rewrite/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/do/dockerize-app/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/do/docs-site/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/dr/drive-wrap-up/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/du/due-diligence-brief/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/eb/ebook-compile/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ed/edit-notes/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/em/email-sequence/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/em/email-template/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.4/test.json +1 -4
- package/data/craftbook-templates/es/escalation-playbook/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ev/evidence-brief/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ex/expense-categorize/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/fa/fact-check/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/fa/faq-from-docs/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/fa/favicon-set/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.1.0/test.json +0 -3
- package/data/craftbook-templates/fe/feedback-widget/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/fl/flaky-test-fix/versions/1.0.0/test.json +15 -16
- package/data/craftbook-templates/fo/folder-to-audio/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/fo/forecast-model/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/fo/form-wizard/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ga/game-with-screens/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/gl/glossary-build/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/gr/graphql-api/versions/1.0.3/test.json +0 -3
- package/data/craftbook-templates/gr/grpc-service/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ha/handbook-section/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/he/hero-image/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ho/hotfix-flow/versions/2.0.0/test.json +12 -13
- package/data/craftbook-templates/ht/html-puzzle-game/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ic/icon-pack/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/id/idea-office-hours/versions/2.0.4/test.json +1 -4
- package/data/craftbook-templates/id/idle-clicker-game/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/im/image-batch-edit/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/im/image-dedup-cluster/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/im/image-palette-extract/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/im/image-seo-rename/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/in/inbox-triage/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/in/incident-comms-templates/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/in/incident-postmortem/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/in/insurance-inventory/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/in/interactive-quiz/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/in/invitation-design/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/in/invoice-generator/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/in/invoice-run/versions/1.1.2/test.json +0 -3
- package/data/craftbook-templates/index.json +1 -1
- package/data/craftbook-templates/it/item-intake/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ju/juice-pass/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/kn/knowledge-base-article/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/kp/kpi-scorecard/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/la/landing-copy/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/la/landing-page/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/le/lead-enrichment/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/li/library-package/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/li/literature-review/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/lo/localize-content/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/lo/logo-set/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/me/meeting-minutes/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/me/meeting-summary-audio/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/me/message-queue-consumer/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/mi/micro-game-jam/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/mo/mock-interview/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/mo/month-close/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/mo/moodboard/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/mo/morning-brief/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/mo/morning-report/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/mu/music-metadata-tag/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.2/test.json +0 -3
- package/data/craftbook-templates/ne/newsletter-issue/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ni/nightly-fix-sweep/versions/1.0.0/test.json +3 -4
- package/data/craftbook-templates/no/notification-router/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/oc/ocr-extract/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/of/offer-compare/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/on/onboarding-checklist/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/on/onboarding-flow/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/on/oncall-handoff/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/on/one-pager/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/op/ops-runbook/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pa/page-spread/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pa/parser-grammar/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pe/perf-audit/versions/1.1.0/test.json +0 -3
- package/data/craftbook-templates/pe/perf-optimization/versions/2.0.0/test.json +16 -17
- package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ph/photo-cull/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ph/physics-toy/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pi/pitch-deck/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pl/playtest-report/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/po/podcast-chaptering/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/po/portfolio-site/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.8/craftbook.json +404 -0
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.8/test.json +240 -0
- package/data/craftbook-templates/pr/pr-security-review/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pr/practice-exam/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pr/practice-session/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pr/pre-departure-countdown/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pr/press-release/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pr/price-tracker/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pr/pricing-page/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pr/product-descriptions/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pr/proposal-sow/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pu/pull-request-review/versions/1.9.0/test.json +0 -3
- package/data/craftbook-templates/pu/puzzle-pack-layout/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/pw/pwa-offline/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/re/reading-list/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/re/receipt-intake/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/re/reception-report/versions/1.0.1/test.json +8 -9
- package/data/craftbook-templates/re/recipe-capture/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/re/record-a-relative/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/re/refactor-module/versions/2.0.0/test.json +15 -16
- package/data/craftbook-templates/re/regex-builder/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/re/release-announcement/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/re/release-notes/versions/1.0.3/test.json +0 -3
- package/data/craftbook-templates/re/release-readiness-review/versions/1.1.0/test.json +0 -3
- package/data/craftbook-templates/re/report-pdf/versions/1.1.2/test.json +0 -3
- package/data/craftbook-templates/re/rest-api/versions/1.0.3/test.json +0 -3
- package/data/craftbook-templates/re/resume-cv/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ro/rollback-plan/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.3/test.json +0 -3
- package/data/craftbook-templates/ru/runbook/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/sc/schema-migration/versions/2.0.0/test.json +12 -13
- package/data/craftbook-templates/sc/scrape-to-structured/versions/1.0.3/test.json +0 -3
- package/data/craftbook-templates/sc/script-automation/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.3/test.json +0 -3
- package/data/craftbook-templates/se/seasonal-maintenance-sweep/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/se/seo-meta-pack/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/so/social-digest/versions/1.0.1/test.json +7 -8
- package/data/craftbook-templates/so/social-thread/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/so/source-quality-audit/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/sp/spa-dashboard/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/sp/spec-authoring/versions/2.0.4/test.json +1 -4
- package/data/craftbook-templates/sp/spec-doc/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/sp/spreadsheet-model/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/sp/sprite-sheet/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/sq/sql-analysis/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/st/standup-summary/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/st/state-machine/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/st/status-report/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/su/subscription-audit/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/su/subtitle-generator/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/su/summarize-long/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/su/survey-analysis/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/sv/svg-animation/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ta/tailor-resume/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/te/technical-documentation/versions/2.0.4/test.json +1 -4
- package/data/craftbook-templates/te/test-suite-backfill/versions/2.0.0/test.json +13 -16
- package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/th/threat-model/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/th/thumbnail-generator/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ti/tileset-batch/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/to/tone-rewrite/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/to/topic-explainer/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/tr/transcribe-audio/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/tr/translate-content/versions/1.1.1/craftbook.json +90 -0
- package/data/craftbook-templates/tr/translate-content/versions/1.1.1/test.json +141 -0
- package/data/craftbook-templates/ty/type-safety-pass/versions/2.0.0/test.json +13 -14
- package/data/craftbook-templates/ux/ux-update/versions/1.0.0/test.json +12 -13
- package/data/craftbook-templates/ve/version-bump/versions/1.1.0/test.json +0 -3
- package/data/craftbook-templates/vi/video-storyboard/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/vi/visit-prep/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/vo/voiceover-script/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/we/web-app-crud/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/we/web-component/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/we/webhook-handler/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/we/weekly-menu-plan/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/we/weekly-pipeline-review/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/we/weekly-review/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/ye/year-in-review/versions/1.0.2/test.json +0 -3
- package/data/craftbook-templates/yo/youtube-chapters-seo/versions/1.0.2/test.json +0 -3
- package/package.json +1 -1
|
@@ -38,78 +38,75 @@
|
|
|
38
38
|
"content": "import assert from 'node:assert/strict';\nimport { readFileSync, readdirSync } from 'node:fs';\nimport { join } from 'node:path';\n\nconst dir = '.github/workflows';\nlet names = [];\ntry {\n names = readdirSync(dir).filter((f) => /\\.ya?ml$/i.test(f));\n} catch {}\nassert.ok(names.length >= 1, 'no workflow file exists under .github/workflows/');\nconst raw = names.map((f) => readFileSync(join(dir, f), 'utf8')).join('\\n---\\n');\n// Judge only active YAML: a comment honestly noting \"no typecheck script\"\n// must never trip the anti-invention assertions below.\nconst all = raw.replace(/#[^\\n]*/g, '');\nconsole.log('CIPIPE_ORACLE workflow found');\n\n// Checkout and Node setup, pinned to major versions.\nassert.ok(/actions\\/checkout@v\\d+/.test(all), 'uses actions/checkout pinned to a major version');\nassert.ok(/actions\\/setup-node@v\\d+/.test(all), 'uses actions/setup-node pinned to a major version');\nconsole.log('CIPIPE_ORACLE actions ok');\n\n// Runs both real scripts.\nassert.ok(/\\bnpm\\s+(?:run\\s+)?test\\b/.test(all), 'the workflow runs the test script');\nassert.ok(/\\bnpm\\s+run\\s+lint\\b/.test(all), 'the workflow runs the lint script');\nconsole.log('CIPIPE_ORACLE scripts ok');\n\n// Invokes nothing the repo does not have.\nassert.ok(!/typecheck/i.test(all), 'no invented typecheck stage - the repo has no such script');\nconst pkg = JSON.parse(readFileSync('package.json', 'utf8'));\nfor (const m of all.matchAll(/npm\\s+run\\s+([A-Za-z0-9:_-]+)/g)) {\n if (m[1].startsWith('-')) continue;\n assert.ok(pkg.scripts && pkg.scripts[m[1]], `workflow invokes \"npm run ${m[1]}\" but package.json has no such script`);\n}\nconsole.log('CIPIPE_ORACLE no invented commands');\n\n// Triggers on push and pull_request.\nassert.ok(/\\bpush\\b/.test(all), 'triggers on push');\nassert.ok(/\\bpull_request\\b/.test(all), 'triggers on pull_request');\nconsole.log('CIPIPE_ORACLE triggers ok');\n\n// No invented secrets, and no publish job in a repo with no release evidence.\nfor (const m of all.matchAll(/secrets\\.([A-Za-z0-9_]+)/g)) {\n assert.equal(m[1], 'GITHUB_TOKEN', `workflow references invented secret \"${m[1]}\"`);\n}\nassert.ok(!/npm\\s+publish/.test(all), 'no publish step - the repo shows no release configuration');\nconsole.log('CIPIPE_ORACLE nothing invented');\nconsole.log('CIPIPE_ORACLE done');\n",
|
|
39
39
|
"surface": "harness"
|
|
40
40
|
}
|
|
41
|
-
]
|
|
42
|
-
"craftbookParams": {
|
|
43
|
-
"workPath": "tasks/eval"
|
|
44
|
-
}
|
|
41
|
+
]
|
|
45
42
|
},
|
|
46
43
|
"mocks": [],
|
|
47
44
|
"success": {
|
|
48
45
|
"summary": "A real GitHub Actions workflow exists at the conventional location, runs exactly the repo's two scripts on push and pull_request with pinned actions, invents no command, secret, or publish job — and every fleet artifact exists with the workflow commands verified against quoted package.json lines.",
|
|
49
46
|
"deliverables": [
|
|
50
47
|
{
|
|
51
|
-
"path": "
|
|
48
|
+
"path": "{{task.dir}}/ci-plan.md",
|
|
52
49
|
"kind": "markdown-notes",
|
|
53
50
|
"artifact": true,
|
|
54
51
|
"minBytes": 500,
|
|
55
52
|
"checks": [
|
|
56
53
|
{
|
|
57
54
|
"kind": "contains",
|
|
58
|
-
"file": "
|
|
55
|
+
"file": "{{task.dir}}/ci-plan.md",
|
|
59
56
|
"pattern": "^##\\s+Detected commands[\\s\\S]*^##\\s+Pipeline stages[\\s\\S]*^##\\s+Caching[\\s\\S]*^##\\s+Triggers",
|
|
60
57
|
"flags": "im",
|
|
61
58
|
"label": "ci-plan sections in order"
|
|
62
59
|
},
|
|
63
60
|
{
|
|
64
61
|
"kind": "contains",
|
|
65
|
-
"file": "
|
|
62
|
+
"file": "{{task.dir}}/ci-plan.md",
|
|
66
63
|
"pattern": "package\\.json",
|
|
67
64
|
"label": "the plan reads the real manifest"
|
|
68
65
|
},
|
|
69
66
|
{
|
|
70
67
|
"kind": "citationsResolve",
|
|
71
|
-
"file": "
|
|
68
|
+
"file": "{{task.dir}}/ci-plan.md",
|
|
72
69
|
"minCitations": 2,
|
|
73
70
|
"artifact": true
|
|
74
71
|
}
|
|
75
72
|
]
|
|
76
73
|
},
|
|
77
74
|
{
|
|
78
|
-
"path": "
|
|
75
|
+
"path": "{{task.dir}}/ci-notes.md",
|
|
79
76
|
"kind": "markdown-notes",
|
|
80
77
|
"artifact": true,
|
|
81
78
|
"minBytes": 500,
|
|
82
79
|
"checks": [
|
|
83
80
|
{
|
|
84
81
|
"kind": "contains",
|
|
85
|
-
"file": "
|
|
82
|
+
"file": "{{task.dir}}/ci-notes.md",
|
|
86
83
|
"pattern": "^##\\s+Files written[\\s\\S]*^##\\s+Stages[\\s\\S]*^##\\s+Choices explained",
|
|
87
84
|
"flags": "im",
|
|
88
85
|
"label": "ci-notes sections in order"
|
|
89
86
|
},
|
|
90
87
|
{
|
|
91
88
|
"kind": "contains",
|
|
92
|
-
"file": "
|
|
89
|
+
"file": "{{task.dir}}/ci-notes.md",
|
|
93
90
|
"pattern": "\\.github/workflows/",
|
|
94
91
|
"label": "names the conventional workflow location"
|
|
95
92
|
},
|
|
96
93
|
{
|
|
97
94
|
"kind": "citationsResolve",
|
|
98
|
-
"file": "
|
|
95
|
+
"file": "{{task.dir}}/ci-notes.md",
|
|
99
96
|
"minCitations": 2,
|
|
100
97
|
"artifact": true
|
|
101
98
|
}
|
|
102
99
|
]
|
|
103
100
|
},
|
|
104
101
|
{
|
|
105
|
-
"path": "
|
|
102
|
+
"path": "{{task.dir}}/verification.md",
|
|
106
103
|
"kind": "markdown-notes",
|
|
107
104
|
"artifact": true,
|
|
108
105
|
"minBytes": 500,
|
|
109
106
|
"checks": [
|
|
110
107
|
{
|
|
111
108
|
"kind": "contains",
|
|
112
|
-
"file": "
|
|
109
|
+
"file": "{{task.dir}}/verification.md",
|
|
113
110
|
"pattern": "^##\\s+Workflow files[\\s\\S]*^##\\s+Commands verified against package\\.json[\\s\\S]*^##\\s+Result",
|
|
114
111
|
"flags": "im",
|
|
115
112
|
"label": "verification sections in order"
|
|
@@ -117,14 +114,14 @@
|
|
|
117
114
|
]
|
|
118
115
|
},
|
|
119
116
|
{
|
|
120
|
-
"path": "
|
|
117
|
+
"path": "{{task.dir}}/review.md",
|
|
121
118
|
"kind": "markdown-report",
|
|
122
119
|
"artifact": true,
|
|
123
120
|
"minBytes": 400,
|
|
124
121
|
"checks": [
|
|
125
122
|
{
|
|
126
123
|
"kind": "contains",
|
|
127
|
-
"file": "
|
|
124
|
+
"file": "{{task.dir}}/review.md",
|
|
128
125
|
"pattern": "Verdict:\\s*(?:PASS|REVISE)",
|
|
129
126
|
"flags": "i",
|
|
130
127
|
"label": "explicit reviewer verdict"
|
|
@@ -202,7 +199,7 @@
|
|
|
202
199
|
},
|
|
203
200
|
"rubric": {
|
|
204
201
|
"artifact": {
|
|
205
|
-
"path": "
|
|
202
|
+
"path": "{{task.dir}}/ci-notes.md",
|
|
206
203
|
"kind": "markdown"
|
|
207
204
|
},
|
|
208
205
|
"axes": [
|
|
@@ -52,7 +52,6 @@
|
|
|
52
52
|
}
|
|
53
53
|
],
|
|
54
54
|
"craftbookParams": {
|
|
55
|
-
"workPath": "tasks/eval",
|
|
56
55
|
"scope": "Rename fetchUserData to loadUser everywhere, including log strings that mention it; CHANGELOG.md keeps the historical name; no behavior change. See source/rename-brief.md."
|
|
57
56
|
}
|
|
58
57
|
},
|
|
@@ -61,62 +60,62 @@
|
|
|
61
60
|
"summary": "Zero references to the old name remain outside the excluded changelog and brief, every site (including the re-export and the log string) behaves under the new name, the suite is green, and every fleet artifact exists with counts that reconcile.",
|
|
62
61
|
"deliverables": [
|
|
63
62
|
{
|
|
64
|
-
"path": "
|
|
63
|
+
"path": "{{task.dir}}/sites.md",
|
|
65
64
|
"kind": "markdown-notes",
|
|
66
65
|
"artifact": true,
|
|
67
66
|
"minBytes": 500,
|
|
68
67
|
"checks": [
|
|
69
68
|
{
|
|
70
69
|
"kind": "contains",
|
|
71
|
-
"file": "
|
|
70
|
+
"file": "{{task.dir}}/sites.md",
|
|
72
71
|
"pattern": "^##\\s+Pattern[\\s\\S]*^##\\s+Sites found[\\s\\S]*^##\\s+Exclusions",
|
|
73
72
|
"flags": "im",
|
|
74
73
|
"label": "sites sections in order"
|
|
75
74
|
},
|
|
76
75
|
{
|
|
77
76
|
"kind": "contains",
|
|
78
|
-
"file": "
|
|
77
|
+
"file": "{{task.dir}}/sites.md",
|
|
79
78
|
"pattern": "src/index\\.js",
|
|
80
79
|
"label": "found the re-export site"
|
|
81
80
|
},
|
|
82
81
|
{
|
|
83
82
|
"kind": "citationsResolve",
|
|
84
|
-
"file": "
|
|
83
|
+
"file": "{{task.dir}}/sites.md",
|
|
85
84
|
"minCitations": 2,
|
|
86
85
|
"artifact": true
|
|
87
86
|
}
|
|
88
87
|
]
|
|
89
88
|
},
|
|
90
89
|
{
|
|
91
|
-
"path": "
|
|
90
|
+
"path": "{{task.dir}}/change-notes.md",
|
|
92
91
|
"kind": "markdown-notes",
|
|
93
92
|
"artifact": true,
|
|
94
93
|
"minBytes": 500,
|
|
95
94
|
"checks": [
|
|
96
95
|
{
|
|
97
96
|
"kind": "contains",
|
|
98
|
-
"file": "
|
|
97
|
+
"file": "{{task.dir}}/change-notes.md",
|
|
99
98
|
"pattern": "^##\\s+Sites changed[\\s\\S]*^##\\s+Files touched[\\s\\S]*^##\\s+Invariants held",
|
|
100
99
|
"flags": "im",
|
|
101
100
|
"label": "change-notes sections in order"
|
|
102
101
|
},
|
|
103
102
|
{
|
|
104
103
|
"kind": "citationsResolve",
|
|
105
|
-
"file": "
|
|
104
|
+
"file": "{{task.dir}}/change-notes.md",
|
|
106
105
|
"minCitations": 2,
|
|
107
106
|
"artifact": true
|
|
108
107
|
}
|
|
109
108
|
]
|
|
110
109
|
},
|
|
111
110
|
{
|
|
112
|
-
"path": "
|
|
111
|
+
"path": "{{task.dir}}/verification.md",
|
|
113
112
|
"kind": "markdown-notes",
|
|
114
113
|
"artifact": true,
|
|
115
114
|
"minBytes": 450,
|
|
116
115
|
"checks": [
|
|
117
116
|
{
|
|
118
117
|
"kind": "contains",
|
|
119
|
-
"file": "
|
|
118
|
+
"file": "{{task.dir}}/verification.md",
|
|
120
119
|
"pattern": "^##\\s+Residual scan[\\s\\S]*^##\\s+Counts reconciled[\\s\\S]*^##\\s+Suite[\\s\\S]*^##\\s+Result",
|
|
121
120
|
"flags": "im",
|
|
122
121
|
"label": "verification sections in order"
|
|
@@ -124,14 +123,14 @@
|
|
|
124
123
|
]
|
|
125
124
|
},
|
|
126
125
|
{
|
|
127
|
-
"path": "
|
|
126
|
+
"path": "{{task.dir}}/review.md",
|
|
128
127
|
"kind": "markdown-report",
|
|
129
128
|
"artifact": true,
|
|
130
129
|
"minBytes": 400,
|
|
131
130
|
"checks": [
|
|
132
131
|
{
|
|
133
132
|
"kind": "contains",
|
|
134
|
-
"file": "
|
|
133
|
+
"file": "{{task.dir}}/review.md",
|
|
135
134
|
"pattern": "Verdict:\\s*(?:PASS|REVISE)",
|
|
136
135
|
"flags": "i",
|
|
137
136
|
"label": "explicit reviewer verdict"
|
|
@@ -227,7 +226,7 @@
|
|
|
227
226
|
},
|
|
228
227
|
"rubric": {
|
|
229
228
|
"artifact": {
|
|
230
|
-
"path": "
|
|
229
|
+
"path": "{{task.dir}}/verification.md",
|
|
231
230
|
"kind": "markdown"
|
|
232
231
|
},
|
|
233
232
|
"axes": [
|
|
@@ -0,0 +1,217 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "content-deck",
|
|
3
|
+
"name": "Slide Deck from Content",
|
|
4
|
+
"description": "Turn a body of source content into a presentation deck. Outlines the narrative first, designs a consistent slide look, then builds the deck (HTML slides), evaluating for narrative flow and visual consistency.\n\nA gallery craftbook generated from an archetype spec. It runs\n`phase → (per-phase gate) → … → evaluate → (loop) → finish`. Each build\nphase that produces a checkable artifact is followed by a **runtime\ngate-checkpoint** — the runtime verifies the artifact and routes with no\nmodel turn, looping back to redo the phase on a miss. The final `evaluate`\nstep holds a static deliverable gate plus a reviewer QA pass. What it adds\nover the generic `build-loop`: a specialist role per phase, a\ndomain-correct ordering, and a concrete per-phase quality bar.\n\nDeliverables marked \"artifact\" land in the project's artifacts drawer (`write_artifact` / `read_artifact`), not the shipped workspace — review output is not product source.\n\nPhases:\n\n1. Outline the deck (planner) — narrative arc + per-slide bullets from the source → gated on artifact `deck/outline.md` (markdown-notes)\n2. Slide design (designer) — a consistent slide template + palette → gated on artifact `deck/design-system.md` (markdown-notes)\n3. Build the deck (developer) — generate the slides to the template → gated on `index.html` (slide-deck)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n",
|
|
5
|
+
"entryStepId": "outline",
|
|
6
|
+
"triggers": [
|
|
7
|
+
"slide deck",
|
|
8
|
+
"powerpoint",
|
|
9
|
+
"presentation",
|
|
10
|
+
"build a deck"
|
|
11
|
+
],
|
|
12
|
+
"steps": [
|
|
13
|
+
{
|
|
14
|
+
"id": "outline",
|
|
15
|
+
"name": "Outline the deck",
|
|
16
|
+
"description": "narrative arc + per-slide bullets from the source",
|
|
17
|
+
"prompt": "Read every supplied source file with workspace `read_file` before outlining. Build a source-grounded deck plan: a title slide, a clear narrative arc, 5-7 content slides with one idea and 2-4 bullets each, and a takeaways/CTA ending. Attach a source filename or source heading to every factual claim. Write an **acceptance-criteria checklist** (\"opens with a title slide\", \"one idea per slide\", \"ends with takeaways/CTA\", \"every claim traces to the source\"). Save the outline + checklist to artifact `{{workPath}}/outline.md` with `write_artifact`; note the path in task notes.",
|
|
18
|
+
"suggestedRole": "planner",
|
|
19
|
+
"advanceWhen": {
|
|
20
|
+
"file": "{{workPath}}/outline.md",
|
|
21
|
+
"minBytes": 1,
|
|
22
|
+
"sniff": "nonempty",
|
|
23
|
+
"artifact": true
|
|
24
|
+
},
|
|
25
|
+
"gate": {
|
|
26
|
+
"at": "completion",
|
|
27
|
+
"checks": [
|
|
28
|
+
{
|
|
29
|
+
"kind": "minBytes",
|
|
30
|
+
"file": "{{workPath}}/outline.md",
|
|
31
|
+
"bytes": 700,
|
|
32
|
+
"artifact": true
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"kind": "sniff",
|
|
36
|
+
"file": "{{workPath}}/outline.md",
|
|
37
|
+
"sniff": "nonempty",
|
|
38
|
+
"artifact": true
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
"kind": "contains",
|
|
42
|
+
"file": "{{workPath}}/outline.md",
|
|
43
|
+
"pattern": "title slide|slide 1",
|
|
44
|
+
"flags": "i",
|
|
45
|
+
"label": "title slide",
|
|
46
|
+
"artifact": true
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"kind": "contains",
|
|
50
|
+
"file": "{{workPath}}/outline.md",
|
|
51
|
+
"pattern": "takeaway|CTA|call.to.action|recommendation",
|
|
52
|
+
"flags": "i",
|
|
53
|
+
"label": "closing slide",
|
|
54
|
+
"artifact": true
|
|
55
|
+
}
|
|
56
|
+
],
|
|
57
|
+
"onReject": "outline",
|
|
58
|
+
"maxAttempts": 3
|
|
59
|
+
},
|
|
60
|
+
"next": "slide-design"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"id": "slide-design",
|
|
64
|
+
"name": "Slide design",
|
|
65
|
+
"description": "a consistent slide template + palette",
|
|
66
|
+
"prompt": "Read artifact `{{workPath}}/outline.md` with `read_artifact`. Design one reusable slide system: title position, body/grid layout, exact palette, type scale, spacing, progress affordance, and focused/inactive slide states. Include desktop and narrow-screen behavior plus keyboard/button navigation treatment. Consistency matters more than flourish. Save the template spec to artifact `{{workPath}}/design-system.md` with `write_artifact`; note the path in task notes. No slide content yet.",
|
|
67
|
+
"suggestedRole": "designer",
|
|
68
|
+
"consumes": [
|
|
69
|
+
{
|
|
70
|
+
"file": "deck/outline.md",
|
|
71
|
+
"artifact": true
|
|
72
|
+
}
|
|
73
|
+
],
|
|
74
|
+
"advanceWhen": {
|
|
75
|
+
"file": "{{workPath}}/design-system.md",
|
|
76
|
+
"minBytes": 1,
|
|
77
|
+
"sniff": "nonempty",
|
|
78
|
+
"artifact": true
|
|
79
|
+
},
|
|
80
|
+
"gate": {
|
|
81
|
+
"at": "completion",
|
|
82
|
+
"checks": [
|
|
83
|
+
{
|
|
84
|
+
"kind": "minBytes",
|
|
85
|
+
"file": "{{workPath}}/design-system.md",
|
|
86
|
+
"bytes": 500,
|
|
87
|
+
"artifact": true
|
|
88
|
+
},
|
|
89
|
+
{
|
|
90
|
+
"kind": "sniff",
|
|
91
|
+
"file": "{{workPath}}/design-system.md",
|
|
92
|
+
"sniff": "nonempty",
|
|
93
|
+
"artifact": true
|
|
94
|
+
},
|
|
95
|
+
{
|
|
96
|
+
"kind": "contains",
|
|
97
|
+
"file": "{{workPath}}/design-system.md",
|
|
98
|
+
"pattern": "#[0-9a-f]{3,8}|rgb\\(|hsl\\(",
|
|
99
|
+
"flags": "i",
|
|
100
|
+
"label": "concrete palette",
|
|
101
|
+
"artifact": true
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
"kind": "contains",
|
|
105
|
+
"file": "{{workPath}}/design-system.md",
|
|
106
|
+
"pattern": "keyboard|arrow|previous|next|navigation",
|
|
107
|
+
"flags": "i",
|
|
108
|
+
"label": "navigation treatment",
|
|
109
|
+
"artifact": true
|
|
110
|
+
}
|
|
111
|
+
],
|
|
112
|
+
"onReject": "slide-design",
|
|
113
|
+
"maxAttempts": 3
|
|
114
|
+
},
|
|
115
|
+
"next": "build"
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"id": "build",
|
|
119
|
+
"name": "Build the deck",
|
|
120
|
+
"description": "generate the slides to the template",
|
|
121
|
+
"prompt": "Read artifacts `{{workPath}}/outline.md` and `{{workPath}}/design-system.md` with `read_artifact`. Build the deck in workspace `index.html` with `write_file`: one semantic section per slide, inline CSS/JS, visible slide count/progress, previous/next controls, and ArrowLeft/ArrowRight keyboard navigation. Apply the template uniformly and use only claims in the outline/source. Keep it self-contained with no external assets. On a loop-back, fix only the named gaps. `write_task_note` the workspace path and slide count.",
|
|
122
|
+
"suggestedRole": "developer",
|
|
123
|
+
"consumes": [
|
|
124
|
+
{
|
|
125
|
+
"file": "deck/outline.md",
|
|
126
|
+
"artifact": true
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
"file": "deck/design-system.md",
|
|
130
|
+
"artifact": true
|
|
131
|
+
}
|
|
132
|
+
],
|
|
133
|
+
"advanceWhen": {
|
|
134
|
+
"file": "index.html",
|
|
135
|
+
"minBytes": 1,
|
|
136
|
+
"sniff": "nonempty"
|
|
137
|
+
},
|
|
138
|
+
"gate": {
|
|
139
|
+
"at": "completion",
|
|
140
|
+
"checks": [
|
|
141
|
+
{
|
|
142
|
+
"kind": "minBytes",
|
|
143
|
+
"file": "index.html",
|
|
144
|
+
"bytes": 3600
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
"kind": "htmlLint",
|
|
148
|
+
"file": "index.html"
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
"kind": "cssMinBytes",
|
|
152
|
+
"bytes": 700,
|
|
153
|
+
"file": "index.html"
|
|
154
|
+
},
|
|
155
|
+
{
|
|
156
|
+
"kind": "jsParses",
|
|
157
|
+
"file": "index.html"
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
"kind": "contains",
|
|
161
|
+
"file": "index.html",
|
|
162
|
+
"pattern": "ArrowLeft|ArrowRight|keydown",
|
|
163
|
+
"label": "keyboard navigation"
|
|
164
|
+
}
|
|
165
|
+
],
|
|
166
|
+
"scripts": [
|
|
167
|
+
{
|
|
168
|
+
"name": "checkContains",
|
|
169
|
+
"scope": "standard",
|
|
170
|
+
"inputs": {
|
|
171
|
+
"file": "index.html",
|
|
172
|
+
"pattern": "(?:slide|section|^---$)",
|
|
173
|
+
"flags": "im"
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
],
|
|
177
|
+
"onReject": "build",
|
|
178
|
+
"maxAttempts": 4
|
|
179
|
+
},
|
|
180
|
+
"next": "evaluate"
|
|
181
|
+
},
|
|
182
|
+
{
|
|
183
|
+
"id": "evaluate",
|
|
184
|
+
"name": "Evaluate",
|
|
185
|
+
"description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
|
|
186
|
+
"prompt": "Read workspace `index.html` with `read_file` and artifacts `{{workPath}}/outline.md` and `{{workPath}}/design-system.md` with `read_artifact`. Check narrative flow (title opening, one idea per slide, takeaways ending), visual consistency, source fidelity, and both button and keyboard navigation. Render and exercise it if browser QA is available; otherwise trace the event handlers. Write PASS/FAIL per criterion.\n\nThen route — this is the whole point of the loop:\n\n- **Every criterion PASSES →** call `advance_task_step({ ref, stepId: \"evaluate\", next: \"finish\" })`.\n- **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: \"evaluate\", next: \"build\" })` to loop back. The builder fixes exactly those gaps.\n\nNever route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in.",
|
|
187
|
+
"suggestedRole": "reviewer",
|
|
188
|
+
"consumes": [
|
|
189
|
+
{
|
|
190
|
+
"file": "index.html"
|
|
191
|
+
}
|
|
192
|
+
],
|
|
193
|
+
"next": "build"
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
"id": "finish",
|
|
197
|
+
"name": "Finish",
|
|
198
|
+
"description": "All acceptance criteria met. Stamp a short summary and report DONE.",
|
|
199
|
+
"prompt": "Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.",
|
|
200
|
+
"suggestedRole": "developer",
|
|
201
|
+
"terminal": true
|
|
202
|
+
}
|
|
203
|
+
],
|
|
204
|
+
"version": "1.2.2",
|
|
205
|
+
"releasedAt": "2026-08-14T00:00:00Z",
|
|
206
|
+
"paramSchema": {
|
|
207
|
+
"type": "object",
|
|
208
|
+
"properties": {
|
|
209
|
+
"workPath": {
|
|
210
|
+
"type": "string",
|
|
211
|
+
"title": "Working folder",
|
|
212
|
+
"description": "Per-task working folder in the artifacts drawer for this run's intermediate files. Defaults to this task's own folder so concurrent runs never overwrite each other; override with a stable name only when runs should deliberately share working files.",
|
|
213
|
+
"default": "{{task.dir}}"
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|