@bendyline/gilde 0.1.55 → 0.1.56
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/glm-5.3-flash-320b-q2.json +129 -0
- package/authoring/gstack/wave.json +2 -2
- package/data/chat-models/gl/glm-5.3-flash-320b-q2/manifest.json +137 -0
- package/data/chat-models/gl/glm-5.3-flash-320b-q2/versions/1.0.0/manifest.json +23 -0
- package/data/chat-models/index.json +1 -1
- package/data/craftbook-templates/a1/a11y-audit/versions/1.1.3/test.json +16 -8
- package/data/craftbook-templates/ac/accessibility-retrofit/versions/2.0.2/craftbook.json +618 -0
- package/data/craftbook-templates/ac/accessibility-retrofit/versions/2.0.2/test.json +228 -0
- package/data/craftbook-templates/al/album-curate/versions/1.0.3/test.json +6 -3
- package/data/craftbook-templates/al/alert-rules/versions/1.0.3/test.json +8 -8
- package/data/craftbook-templates/an/anniversary-cut/versions/1.0.5/test.json +10 -5
- package/data/craftbook-templates/an/annual-document-review/versions/1.0.3/test.json +16 -8
- package/data/craftbook-templates/an/anomaly-scan/versions/1.0.3/test.json +12 -6
- package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.2/craftbook.json +602 -0
- package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.2/test.json +290 -0
- package/data/craftbook-templates/ar/artifact-integrity-review/versions/1.0.3/test.json +18 -9
- package/data/craftbook-templates/au/audiobook-master-pack/versions/1.0.5/test.json +10 -5
- package/data/craftbook-templates/au/auth-flow/versions/1.0.3/test.json +12 -6
- package/data/craftbook-templates/au/auth-flow/versions/1.0.4/craftbook.json +282 -0
- package/data/craftbook-templates/au/auth-flow/versions/1.0.4/test.json +143 -0
- package/data/craftbook-templates/au/automation-recipe/versions/1.0.3/test.json +12 -6
- package/data/craftbook-templates/ba/backup-routine/versions/1.0.4/craftbook.json +282 -0
- package/data/craftbook-templates/ba/backup-routine/versions/1.0.4/test.json +108 -0
- package/data/craftbook-templates/bl/blog-post/versions/1.0.3/test.json +8 -8
- package/data/craftbook-templates/br/branding-website/versions/1.1.3/craftbook.json +335 -0
- package/data/craftbook-templates/br/branding-website/versions/1.1.3/test.json +164 -0
- package/data/craftbook-templates/br/broadcast-announcement/versions/1.0.3/test.json +8 -8
- package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.8/craftbook.json +621 -0
- package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.8/test.json +376 -0
- package/data/craftbook-templates/bu/bug-fix-tdd/versions/2.0.2/craftbook.json +730 -0
- package/data/craftbook-templates/bu/bug-fix-tdd/versions/2.0.2/test.json +221 -0
- package/data/craftbook-templates/bu/build-loop/versions/1.1.1/test.json +8 -8
- package/data/craftbook-templates/ca/case-study/versions/1.0.3/test.json +8 -8
- package/data/craftbook-templates/ch/chapter-narration-run/versions/1.0.4/test.json +10 -5
- package/data/craftbook-templates/ch/character-turnaround/versions/1.0.3/test.json +25 -11
- package/data/craftbook-templates/ci/ci-pipeline/versions/2.0.2/craftbook.json +587 -0
- package/data/craftbook-templates/ci/ci-pipeline/versions/2.0.2/test.json +225 -0
- package/data/craftbook-templates/ci/citation-audit/versions/1.0.3/test.json +28 -14
- package/data/craftbook-templates/cl/cli-tool/versions/1.1.3/test.json +8 -8
- package/data/craftbook-templates/co/codebase-refactoring-review/versions/1.0.3/test.json +16 -8
- package/data/craftbook-templates/co/codebase-ux-review/versions/1.0.3/test.json +18 -9
- package/data/craftbook-templates/co/codemod-sweep/versions/1.0.2/craftbook.json +605 -0
- package/data/craftbook-templates/co/codemod-sweep/versions/1.0.2/test.json +252 -0
- package/data/craftbook-templates/co/cohort-analysis/versions/1.0.3/test.json +18 -9
- package/data/craftbook-templates/co/competitive-analysis/versions/1.0.3/test.json +23 -15
- package/data/craftbook-templates/co/content-accuracy-review/versions/1.0.3/test.json +28 -14
- package/data/craftbook-templates/co/content-deck/versions/1.2.3/craftbook.json +4 -4
- package/data/craftbook-templates/co/content-deck/versions/1.2.3/test.json +3 -0
- package/data/craftbook-templates/co/content-deck/versions/1.2.4/craftbook.json +341 -0
- package/data/craftbook-templates/co/content-deck/versions/1.2.4/test.json +169 -0
- package/data/craftbook-templates/co/copy-review/versions/1.0.3/test.json +14 -7
- package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.3/craftbook.json +4 -4
- package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.3/test.json +3 -0
- package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.4/craftbook.json +345 -0
- package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.4/test.json +187 -0
- package/data/craftbook-templates/co/corpus-synthesis/versions/1.0.3/test.json +26 -13
- package/data/craftbook-templates/co/cover-letter/versions/1.0.3/test.json +8 -8
- package/data/craftbook-templates/cs/csv-transformer/versions/1.2.4/test.json +7 -7
- package/data/craftbook-templates/da/dashboard-spec/versions/1.0.3/test.json +7 -7
- package/data/craftbook-templates/da/data-export-migrate/versions/1.0.4/craftbook.json +285 -0
- package/data/craftbook-templates/da/data-export-migrate/versions/1.0.4/test.json +104 -0
- package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.5/craftbook.json +284 -0
- package/data/craftbook-templates/da/data-pipeline-etl/versions/1.0.5/test.json +162 -0
- package/data/craftbook-templates/da/data-quality-audit/versions/1.0.3/test.json +38 -19
- package/data/craftbook-templates/da/data-to-report/versions/1.0.3/test.json +12 -6
- package/data/craftbook-templates/db/db-index-tuning/versions/1.0.4/craftbook.json +286 -0
- package/data/craftbook-templates/db/db-index-tuning/versions/1.0.4/test.json +104 -0
- package/data/craftbook-templates/de/dependency-audit/versions/1.1.3/test.json +14 -7
- package/data/craftbook-templates/de/dependency-upgrade/versions/1.0.2/craftbook.json +621 -0
- package/data/craftbook-templates/de/dependency-upgrade/versions/1.0.2/test.json +235 -0
- package/data/craftbook-templates/de/design-review/versions/1.0.3/test.json +16 -8
- package/data/craftbook-templates/de/design-system-consultation/versions/2.0.8/craftbook.json +616 -0
- package/data/craftbook-templates/de/design-system-consultation/versions/2.0.8/test.json +201 -0
- package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.4/craftbook.json +285 -0
- package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.4/test.json +104 -0
- package/data/craftbook-templates/do/doc-rewrite/versions/1.0.3/test.json +119 -55
- package/data/craftbook-templates/do/dockerize-app/versions/1.0.4/craftbook.json +285 -0
- package/data/craftbook-templates/do/dockerize-app/versions/1.0.4/test.json +92 -0
- package/data/craftbook-templates/do/documentation-drift-review/versions/1.0.3/test.json +18 -9
- package/data/craftbook-templates/dr/draft-social-post/versions/1.0.2/craftbook.json +324 -0
- package/data/craftbook-templates/dr/draft-social-post/versions/1.0.2/test.json +161 -0
- package/data/craftbook-templates/ed/edit-notes/versions/1.0.3/test.json +11 -4
- package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.8/craftbook.json +566 -0
- package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.8/test.json +191 -0
- package/data/craftbook-templates/ep/episode-plan/versions/1.0.3/test.json +10 -5
- package/data/craftbook-templates/ex/executive-level-review/versions/2.0.7/test.json +7 -10
- package/data/craftbook-templates/ex/executive-level-review/versions/2.0.8/craftbook.json +595 -0
- package/data/craftbook-templates/ex/executive-level-review/versions/2.0.8/test.json +139 -0
- package/data/craftbook-templates/ex/expense-categorize/versions/1.0.4/craftbook.json +277 -0
- package/data/craftbook-templates/ex/expense-categorize/versions/1.0.4/test.json +104 -0
- package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.1.2/craftbook.json +327 -0
- package/data/craftbook-templates/fe/feature-flag-rollout/versions/1.1.2/test.json +162 -0
- package/data/craftbook-templates/fl/flaky-test-fix/versions/1.0.2/craftbook.json +718 -0
- package/data/craftbook-templates/fl/flaky-test-fix/versions/1.0.2/test.json +239 -0
- package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.4/craftbook.json +285 -0
- package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.4/test.json +162 -0
- package/data/craftbook-templates/fo/form-wizard/versions/1.0.3/test.json +8 -8
- package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.3/test.json +11 -4
- package/data/craftbook-templates/ho/hotfix-flow/versions/2.0.2/craftbook.json +610 -0
- package/data/craftbook-templates/ho/hotfix-flow/versions/2.0.2/test.json +220 -0
- package/data/craftbook-templates/ht/html-arcade-game/versions/1.2.3/craftbook.json +343 -0
- package/data/craftbook-templates/ht/html-arcade-game/versions/1.2.3/test.json +176 -0
- package/data/craftbook-templates/id/idea-office-hours/versions/2.0.8/craftbook.json +566 -0
- package/data/craftbook-templates/id/idea-office-hours/versions/2.0.8/test.json +141 -0
- package/data/craftbook-templates/im/image-set-index/versions/1.2.3/craftbook.json +298 -0
- package/data/craftbook-templates/im/image-set-index/versions/1.2.3/test.json +180 -0
- package/data/craftbook-templates/in/insurance-inventory/versions/1.0.3/test.json +11 -4
- package/data/craftbook-templates/in/interactive-quiz/versions/1.0.3/test.json +48 -23
- package/data/craftbook-templates/in/invitation-design/versions/1.0.3/test.json +1 -1
- package/data/craftbook-templates/index.json +1 -1
- package/data/craftbook-templates/it/item-intake/versions/1.0.3/test.json +11 -4
- package/data/craftbook-templates/le/lead-enrichment/versions/1.0.4/craftbook.json +277 -0
- package/data/craftbook-templates/le/lead-enrichment/versions/1.0.4/test.json +104 -0
- package/data/craftbook-templates/me/meeting-prep-brief/versions/1.0.3/test.json +16 -8
- package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.3/test.json +3 -0
- package/data/craftbook-templates/mo/morning-report/versions/1.0.3/test.json +21 -9
- package/data/craftbook-templates/of/office-hours/versions/1.1.1/test.json +8 -8
- package/data/craftbook-templates/pe/perf-optimization/versions/2.0.2/craftbook.json +697 -0
- package/data/craftbook-templates/pe/perf-optimization/versions/2.0.2/test.json +235 -0
- package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.3/test.json +19 -8
- package/data/craftbook-templates/pl/plan/versions/1.0.2/test.json +8 -8
- package/data/craftbook-templates/pl/playtest-report/versions/1.0.3/test.json +17 -7
- package/data/craftbook-templates/pr/practice-exam/versions/1.0.3/test.json +7 -2
- package/data/craftbook-templates/pr/practice-session/versions/1.0.3/test.json +11 -4
- package/data/craftbook-templates/pu/pull-request-review/versions/1.9.2/craftbook.json +435 -0
- package/data/craftbook-templates/pu/pull-request-review/versions/1.9.2/test.json +141 -0
- package/data/craftbook-templates/qu/quarterly-summary/versions/1.0.3/test.json +16 -8
- package/data/craftbook-templates/re/receipt-intake/versions/1.0.3/test.json +11 -4
- package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.4/craftbook.json +277 -0
- package/data/craftbook-templates/re/receipt-ocr-ledger/versions/1.0.4/test.json +104 -0
- package/data/craftbook-templates/re/recipe-capture/versions/1.0.3/test.json +13 -5
- package/data/craftbook-templates/re/record-a-relative/versions/1.0.3/test.json +3 -0
- package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.4/craftbook.json +285 -0
- package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.4/test.json +104 -0
- package/data/craftbook-templates/re/refactor-module/versions/2.0.2/craftbook.json +695 -0
- package/data/craftbook-templates/re/refactor-module/versions/2.0.2/test.json +241 -0
- package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.4/craftbook.json +361 -0
- package/data/craftbook-templates/re/release-artifact-sanity-check/versions/1.0.4/test.json +138 -0
- package/data/craftbook-templates/re/release-notes/versions/1.0.4/test.json +8 -8
- package/data/craftbook-templates/re/release-notes/versions/1.0.5/craftbook.json +339 -0
- package/data/craftbook-templates/re/release-notes/versions/1.0.5/test.json +111 -0
- package/data/craftbook-templates/re/reliability-review/versions/1.0.3/test.json +16 -8
- package/data/craftbook-templates/re/research-report/versions/1.0.3/test.json +16 -8
- package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.8/craftbook.json +596 -0
- package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.8/test.json +157 -0
- package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.4/test.json +13 -5
- package/data/craftbook-templates/sc/schema-migration/versions/2.0.2/craftbook.json +624 -0
- package/data/craftbook-templates/sc/schema-migration/versions/2.0.2/test.json +225 -0
- package/data/craftbook-templates/sc/script-automation/versions/1.0.4/craftbook.json +284 -0
- package/data/craftbook-templates/sc/script-automation/versions/1.0.4/test.json +162 -0
- package/data/craftbook-templates/se/security-architecture-review/versions/2.0.7/test.json +10 -13
- package/data/craftbook-templates/se/security-architecture-review/versions/2.0.8/craftbook.json +597 -0
- package/data/craftbook-templates/se/security-architecture-review/versions/2.0.8/test.json +157 -0
- package/data/craftbook-templates/so/social-digest/versions/1.0.3/craftbook.json +239 -0
- package/data/craftbook-templates/so/social-digest/versions/1.0.3/test.json +168 -0
- package/data/craftbook-templates/so/source-quality-audit/versions/1.0.3/test.json +25 -11
- package/data/craftbook-templates/sp/spec-authoring/versions/2.0.8/craftbook.json +599 -0
- package/data/craftbook-templates/sp/spec-authoring/versions/2.0.8/test.json +162 -0
- package/data/craftbook-templates/te/technical-documentation/versions/2.0.8/craftbook.json +577 -0
- package/data/craftbook-templates/te/technical-documentation/versions/2.0.8/test.json +174 -0
- package/data/craftbook-templates/te/test-coverage-review/versions/1.2.1/test.json +16 -8
- package/data/craftbook-templates/te/test-suite-backfill/versions/2.0.2/craftbook.json +592 -0
- package/data/craftbook-templates/te/test-suite-backfill/versions/2.0.2/test.json +195 -0
- package/data/craftbook-templates/th/thank-you-batch/versions/1.0.3/test.json +6 -3
- package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.3/test.json +11 -4
- package/data/craftbook-templates/ti/tileset-batch/versions/1.0.3/test.json +9 -3
- package/data/craftbook-templates/tr/transcribe-and-shownotes/versions/1.0.3/test.json +10 -5
- package/data/craftbook-templates/tr/transcribe-index/versions/1.0.3/test.json +6 -3
- package/data/craftbook-templates/tr/translate-content/versions/1.1.3/craftbook.json +140 -0
- package/data/craftbook-templates/tr/translate-content/versions/1.1.3/test.json +141 -0
- package/data/craftbook-templates/ty/type-safety-pass/versions/2.0.2/craftbook.json +594 -0
- package/data/craftbook-templates/ty/type-safety-pass/versions/2.0.2/test.json +221 -0
- package/data/craftbook-templates/ux/ux-update/versions/1.0.2/craftbook.json +606 -0
- package/data/craftbook-templates/ux/ux-update/versions/1.0.2/test.json +206 -0
- package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.3/test.json +11 -4
- package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.3/test.json +21 -9
- package/data/craftbook-templates/wh/whitepaper/versions/1.0.3/test.json +16 -8
- package/data/craftbook-templates/ye/year-in-review/versions/1.0.3/test.json +8 -4
- package/data/project-types/index.json +1 -1
- package/data/project-types/ju/just-chat/manifest.json +1 -1
- package/data/project-types/ju/just-chat/versions/1.0.1/about.md +5 -0
- package/data/project-types/ju/just-chat/versions/1.0.1/manifest.json +19 -0
- package/package.json +1 -1
- package/schemas/chat-model-identity.schema.json +27 -0
- package/schemas/chat-model-version.schema.json +22 -0
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"title": "CI pipeline grounded in real scripts",
|
|
4
|
+
"objective": "The craftbook authors a CI workflow for a repo that has exactly two scripts (test and lint) and no typecheck. The oracle verifies a real workflow exists under .github/workflows/, runs both real scripts with checkout and node setup pinned to major versions, triggers on push and pull_request, and invents nothing — no typecheck stage, no publish job, no fabricated secrets.",
|
|
5
|
+
"tags": [
|
|
6
|
+
"code",
|
|
7
|
+
"ci",
|
|
8
|
+
"devops",
|
|
9
|
+
"tactical-fleet"
|
|
10
|
+
],
|
|
11
|
+
"prompt": "Use the CI Pipeline from Scratch craftbook: this repo has no CI at all. Set up a pipeline that runs on every push and pull request using what the repo already has — do not add stages for tools the repo does not use. Standard GitHub Actions layout.",
|
|
12
|
+
"setup": {
|
|
13
|
+
"projectName": "Relay Notes",
|
|
14
|
+
"about": "A small Node library with two package scripts: `npm run test` (node --test) and `npm run lint` (a repo-local lint script). No typecheck, no build step, no publish configuration.",
|
|
15
|
+
"files": [
|
|
16
|
+
{
|
|
17
|
+
"path": "package.json",
|
|
18
|
+
"content": "{\n \"name\": \"relay-notes\",\n \"private\": true,\n \"version\": \"1.0.0\",\n \"type\": \"module\",\n \"scripts\": {\n \"test\": \"node --test\",\n \"lint\": \"node tools/lint.mjs\"\n }\n}\n"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"path": "package-lock.json",
|
|
22
|
+
"content": "{\n \"name\": \"relay-notes\",\n \"version\": \"1.0.0\",\n \"lockfileVersion\": 3,\n \"requires\": true,\n \"packages\": {\n \"\": {\n \"name\": \"relay-notes\",\n \"version\": \"1.0.0\"\n }\n }\n}\n"
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"path": "src/greet.js",
|
|
26
|
+
"content": "export function greet(name) {\n const label = String(name ?? '').trim();\n if (label === '') return 'Hello there!';\n return `Hello, ${label}!`;\n}\n"
|
|
27
|
+
},
|
|
28
|
+
{
|
|
29
|
+
"path": "tools/lint.mjs",
|
|
30
|
+
"content": "import { readFileSync, readdirSync } from 'node:fs';\n\nlet problems = 0;\nfor (const file of readdirSync('src')) {\n if (!file.endsWith('.js')) continue;\n const text = readFileSync(`src/${file}`, 'utf8');\n if (/\\t/.test(text)) {\n console.error(`lint: tab indentation in src/${file}`);\n problems++;\n }\n}\nif (problems > 0) process.exit(1);\nconsole.log('lint ok');\n"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"path": "tests/greet.test.mjs",
|
|
34
|
+
"content": "import assert from 'node:assert/strict';\nimport { test } from 'node:test';\nimport { greet } from '../src/greet.js';\n\ntest('greets a trimmed name', () => {\n assert.equal(greet(' Mira '), 'Hello, Mira!');\n});\n\ntest('falls back for an empty name', () => {\n assert.equal(greet(''), 'Hello there!');\n});\n"
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"path": "tests/verify-ci.mjs",
|
|
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
|
+
"surface": "harness"
|
|
40
|
+
}
|
|
41
|
+
]
|
|
42
|
+
},
|
|
43
|
+
"mocks": [],
|
|
44
|
+
"success": {
|
|
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.",
|
|
46
|
+
"deliverables": [
|
|
47
|
+
{
|
|
48
|
+
"path": "{{task.dir}}/ci-plan.md",
|
|
49
|
+
"kind": "markdown-notes",
|
|
50
|
+
"artifact": true,
|
|
51
|
+
"minBytes": 500,
|
|
52
|
+
"checks": [
|
|
53
|
+
{
|
|
54
|
+
"kind": "contains",
|
|
55
|
+
"file": "{{task.dir}}/ci-plan.md",
|
|
56
|
+
"pattern": "^##\\s+Detected commands[\\s\\S]*^##\\s+Pipeline stages[\\s\\S]*^##\\s+Caching[\\s\\S]*^##\\s+Triggers",
|
|
57
|
+
"flags": "im",
|
|
58
|
+
"label": "ci-plan sections in order"
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
"kind": "contains",
|
|
62
|
+
"file": "{{task.dir}}/ci-plan.md",
|
|
63
|
+
"pattern": "package\\.json",
|
|
64
|
+
"label": "the plan reads the real manifest"
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"kind": "citationsResolve",
|
|
68
|
+
"file": "{{task.dir}}/ci-plan.md",
|
|
69
|
+
"minCitations": 2,
|
|
70
|
+
"artifact": true
|
|
71
|
+
}
|
|
72
|
+
]
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"path": "{{task.dir}}/ci-notes.md",
|
|
76
|
+
"kind": "markdown-notes",
|
|
77
|
+
"artifact": true,
|
|
78
|
+
"minBytes": 500,
|
|
79
|
+
"checks": [
|
|
80
|
+
{
|
|
81
|
+
"kind": "contains",
|
|
82
|
+
"file": "{{task.dir}}/ci-notes.md",
|
|
83
|
+
"pattern": "^##\\s+Files written[\\s\\S]*^##\\s+Stages[\\s\\S]*^##\\s+Choices explained",
|
|
84
|
+
"flags": "im",
|
|
85
|
+
"label": "ci-notes sections in order"
|
|
86
|
+
},
|
|
87
|
+
{
|
|
88
|
+
"kind": "contains",
|
|
89
|
+
"file": "{{task.dir}}/ci-notes.md",
|
|
90
|
+
"pattern": "\\.github/workflows/",
|
|
91
|
+
"label": "names the conventional workflow location"
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"kind": "citationsResolve",
|
|
95
|
+
"file": "{{task.dir}}/ci-notes.md",
|
|
96
|
+
"minCitations": 2,
|
|
97
|
+
"artifact": true
|
|
98
|
+
}
|
|
99
|
+
]
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"path": "{{task.dir}}/verification.md",
|
|
103
|
+
"kind": "markdown-notes",
|
|
104
|
+
"artifact": true,
|
|
105
|
+
"minBytes": 500,
|
|
106
|
+
"checks": [
|
|
107
|
+
{
|
|
108
|
+
"kind": "contains",
|
|
109
|
+
"file": "{{task.dir}}/verification.md",
|
|
110
|
+
"pattern": "^##\\s+Workflow files[\\s\\S]*^##\\s+Commands verified against package\\.json[\\s\\S]*^##\\s+Result",
|
|
111
|
+
"flags": "im",
|
|
112
|
+
"label": "verification sections in order"
|
|
113
|
+
}
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"path": "{{task.dir}}/review.md",
|
|
118
|
+
"kind": "markdown-report",
|
|
119
|
+
"artifact": true,
|
|
120
|
+
"minBytes": 400,
|
|
121
|
+
"checks": [
|
|
122
|
+
{
|
|
123
|
+
"kind": "contains",
|
|
124
|
+
"file": "{{task.dir}}/review.md",
|
|
125
|
+
"pattern": "Verdict:\\s*(?:PASS|REVISE)",
|
|
126
|
+
"flags": "i",
|
|
127
|
+
"label": "explicit reviewer verdict"
|
|
128
|
+
}
|
|
129
|
+
]
|
|
130
|
+
}
|
|
131
|
+
],
|
|
132
|
+
"checks": [
|
|
133
|
+
{
|
|
134
|
+
"kind": "nodeRuns",
|
|
135
|
+
"file": "tests/greet.test.mjs"
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"kind": "nodeScriptPasses",
|
|
139
|
+
"script": "tools/lint.mjs",
|
|
140
|
+
"timeoutMs": 30000,
|
|
141
|
+
"requiredOutput": [
|
|
142
|
+
{
|
|
143
|
+
"pattern": "lint ok",
|
|
144
|
+
"label": "the repo lint still passes"
|
|
145
|
+
}
|
|
146
|
+
]
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"kind": "nodeScriptPasses",
|
|
150
|
+
"script": "tests/verify-ci.mjs",
|
|
151
|
+
"timeoutMs": 60000,
|
|
152
|
+
"requiredOutput": [
|
|
153
|
+
{
|
|
154
|
+
"pattern": "CIPIPE_ORACLE workflow found",
|
|
155
|
+
"label": "a workflow exists at the conventional location"
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"pattern": "CIPIPE_ORACLE scripts ok",
|
|
159
|
+
"label": "both real scripts run in CI"
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"pattern": "CIPIPE_ORACLE no invented commands",
|
|
163
|
+
"label": "no command invented beyond package.json"
|
|
164
|
+
},
|
|
165
|
+
{
|
|
166
|
+
"pattern": "CIPIPE_ORACLE triggers ok",
|
|
167
|
+
"label": "triggers on push and pull_request"
|
|
168
|
+
},
|
|
169
|
+
{
|
|
170
|
+
"pattern": "CIPIPE_ORACLE nothing invented",
|
|
171
|
+
"label": "no fabricated secrets or publish job"
|
|
172
|
+
}
|
|
173
|
+
]
|
|
174
|
+
}
|
|
175
|
+
],
|
|
176
|
+
"taskNotes": {
|
|
177
|
+
"minBytes": 120,
|
|
178
|
+
"checks": [
|
|
179
|
+
{
|
|
180
|
+
"kind": "contains",
|
|
181
|
+
"file": "task-notes.md",
|
|
182
|
+
"pattern": "\\bDONE\\b[\\s\\S]*(workflows|ci\\.yml|verification\\.md)",
|
|
183
|
+
"flags": "i",
|
|
184
|
+
"label": "DONE note names the workflow deliverable"
|
|
185
|
+
}
|
|
186
|
+
]
|
|
187
|
+
},
|
|
188
|
+
"taskGraph": {
|
|
189
|
+
"requireCraftbookTask": true,
|
|
190
|
+
"requireTerminalStep": true
|
|
191
|
+
},
|
|
192
|
+
"unchangedFixtures": [
|
|
193
|
+
"package.json",
|
|
194
|
+
"package-lock.json",
|
|
195
|
+
"src/greet.js",
|
|
196
|
+
"tools/lint.mjs",
|
|
197
|
+
"tests/greet.test.mjs"
|
|
198
|
+
]
|
|
199
|
+
},
|
|
200
|
+
"rubric": {
|
|
201
|
+
"artifact": {
|
|
202
|
+
"path": "{{task.dir}}/ci-notes.md",
|
|
203
|
+
"kind": "markdown"
|
|
204
|
+
},
|
|
205
|
+
"axes": [
|
|
206
|
+
{
|
|
207
|
+
"name": "Grounded inventory",
|
|
208
|
+
"description": "Every planned stage maps to a script that exists in package.json, quoted verbatim; no typecheck, build, or publish stage was invented for this repo."
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
"name": "Workflow quality",
|
|
212
|
+
"description": "The workflow sits at the conventional location, pins actions to major versions, orders install before lint and test, wires dependency caching, and triggers on push and pull_request."
|
|
213
|
+
},
|
|
214
|
+
{
|
|
215
|
+
"name": "Verification honesty",
|
|
216
|
+
"description": "The verify pass matched each workflow command to a quoted manifest line and is plain about what only a live CI run on the host can prove."
|
|
217
|
+
}
|
|
218
|
+
]
|
|
219
|
+
},
|
|
220
|
+
"qualityFocus": [
|
|
221
|
+
"no invented commands or secrets",
|
|
222
|
+
"manifest-quoted verification",
|
|
223
|
+
"enforced review loop"
|
|
224
|
+
]
|
|
225
|
+
}
|
|
@@ -41,82 +41,96 @@
|
|
|
41
41
|
"kind": "contains",
|
|
42
42
|
"file": "tasks/eval/audit.md",
|
|
43
43
|
"pattern": "(?:^|\\n)#{1,3}\\s+\\S",
|
|
44
|
-
"flags": "i"
|
|
44
|
+
"flags": "i",
|
|
45
|
+
"artifact": true
|
|
45
46
|
},
|
|
46
47
|
{
|
|
47
48
|
"kind": "contains",
|
|
48
49
|
"file": "tasks/eval/audit.md",
|
|
49
50
|
"pattern": "Supported|Partially-Supported|Not-Supported|Source-Missing|Uncited-Claim",
|
|
50
|
-
"flags": "i"
|
|
51
|
+
"flags": "i",
|
|
52
|
+
"artifact": true
|
|
51
53
|
},
|
|
52
54
|
{
|
|
53
55
|
"kind": "contains",
|
|
54
56
|
"file": "tasks/eval/audit.md",
|
|
55
57
|
"pattern": "\\[A\\]|\\[B\\]|\\[C\\]|\\[D\\]",
|
|
56
|
-
"flags": "i"
|
|
58
|
+
"flags": "i",
|
|
59
|
+
"artifact": true
|
|
57
60
|
},
|
|
58
61
|
{
|
|
59
62
|
"kind": "contains",
|
|
60
63
|
"file": "tasks/eval/audit.md",
|
|
61
64
|
"pattern": "Claim \\[A\\][\\s\\S]{0,500}Supported",
|
|
62
|
-
"flags": "i"
|
|
65
|
+
"flags": "i",
|
|
66
|
+
"artifact": true
|
|
63
67
|
},
|
|
64
68
|
{
|
|
65
69
|
"kind": "contains",
|
|
66
70
|
"file": "tasks/eval/audit.md",
|
|
67
71
|
"pattern": "Claim \\[B\\][\\s\\S]{0,500}Not-Supported",
|
|
68
|
-
"flags": "i"
|
|
72
|
+
"flags": "i",
|
|
73
|
+
"artifact": true
|
|
69
74
|
},
|
|
70
75
|
{
|
|
71
76
|
"kind": "contains",
|
|
72
77
|
"file": "tasks/eval/audit.md",
|
|
73
78
|
"pattern": "Claim \\[C\\][\\s\\S]{0,500}Source-Missing|Claim \\[C\\][\\s\\S]{0,500}Dead",
|
|
74
|
-
"flags": "i"
|
|
79
|
+
"flags": "i",
|
|
80
|
+
"artifact": true
|
|
75
81
|
},
|
|
76
82
|
{
|
|
77
83
|
"kind": "contains",
|
|
78
84
|
"file": "tasks/eval/audit.md",
|
|
79
85
|
"pattern": "Claim \\[D\\][\\s\\S]{0,500}Supported",
|
|
80
|
-
"flags": "i"
|
|
86
|
+
"flags": "i",
|
|
87
|
+
"artifact": true
|
|
81
88
|
},
|
|
82
89
|
{
|
|
83
90
|
"kind": "contains",
|
|
84
91
|
"file": "tasks/eval/audit.md",
|
|
85
92
|
"pattern": "Finance[\\s\\S]{0,500}Uncited-Claim|Uncited-Claim[\\s\\S]{0,500}Finance",
|
|
86
|
-
"flags": "i"
|
|
93
|
+
"flags": "i",
|
|
94
|
+
"artifact": true
|
|
87
95
|
},
|
|
88
96
|
{
|
|
89
97
|
"kind": "contains",
|
|
90
98
|
"file": "tasks/eval/audit.md",
|
|
91
99
|
"pattern": "18\\s*hours|6\\s*hours|18 home-office accessory SKUs|full catalog",
|
|
92
|
-
"flags": "i"
|
|
100
|
+
"flags": "i",
|
|
101
|
+
"artifact": true
|
|
93
102
|
},
|
|
94
103
|
{
|
|
95
104
|
"kind": "contains",
|
|
96
105
|
"file": "tasks/eval/audit.md",
|
|
97
106
|
"pattern": "34%|satisfaction survey",
|
|
98
|
-
"flags": "i"
|
|
107
|
+
"flags": "i",
|
|
108
|
+
"artifact": true
|
|
99
109
|
},
|
|
100
110
|
{
|
|
101
111
|
"kind": "contains",
|
|
102
112
|
"file": "tasks/eval/audit.md",
|
|
103
113
|
"pattern": "Finance|weekly exception export",
|
|
104
|
-
"flags": "i"
|
|
114
|
+
"flags": "i",
|
|
115
|
+
"artifact": true
|
|
105
116
|
},
|
|
106
117
|
{
|
|
107
118
|
"kind": "contains",
|
|
108
119
|
"file": "tasks/eval/audit.md",
|
|
109
120
|
"pattern": "fix|correction|replace|add a citation",
|
|
110
|
-
"flags": "i"
|
|
121
|
+
"flags": "i",
|
|
122
|
+
"artifact": true
|
|
111
123
|
},
|
|
112
124
|
{
|
|
113
125
|
"kind": "notContains",
|
|
114
126
|
"file": "tasks/eval/audit.md",
|
|
115
127
|
"pattern": "Claim \\[E\\]|Claim \\[F\\]|cost per return|50 concurrent|RESTful API|Q3|stress tests|Financial summary|System architecture|expansion of this report",
|
|
116
128
|
"flags": "i",
|
|
117
|
-
"label": "do not invent audit claims or source excerpts beyond the seeded draft"
|
|
129
|
+
"label": "do not invent audit claims or source excerpts beyond the seeded draft",
|
|
130
|
+
"artifact": true
|
|
118
131
|
}
|
|
119
|
-
]
|
|
132
|
+
],
|
|
133
|
+
"artifact": true
|
|
120
134
|
}
|
|
121
135
|
]
|
|
122
136
|
},
|
|
@@ -103,20 +103,20 @@
|
|
|
103
103
|
},
|
|
104
104
|
"axes": [
|
|
105
105
|
{
|
|
106
|
-
"name": "
|
|
107
|
-
"description": "
|
|
106
|
+
"name": "correctness",
|
|
107
|
+
"description": "The module does what the requirements ask, with sensible edge handling."
|
|
108
108
|
},
|
|
109
109
|
{
|
|
110
|
-
"name": "
|
|
111
|
-
"description": "
|
|
110
|
+
"name": "verification",
|
|
111
|
+
"description": "Self-tests exercise real behavior, not trivial truths."
|
|
112
112
|
},
|
|
113
113
|
{
|
|
114
|
-
"name": "
|
|
115
|
-
"description": "
|
|
114
|
+
"name": "clarity",
|
|
115
|
+
"description": "Exports, naming, and structure make the module usable without reading every line."
|
|
116
116
|
},
|
|
117
117
|
{
|
|
118
|
-
"name": "
|
|
119
|
-
"description": "
|
|
118
|
+
"name": "robustness",
|
|
119
|
+
"description": "Invalid input and boundary cases fail loudly rather than silently."
|
|
120
120
|
}
|
|
121
121
|
]
|
|
122
122
|
},
|
|
@@ -46,48 +46,56 @@
|
|
|
46
46
|
"file": "tasks/eval/refactoring-review.md",
|
|
47
47
|
"pattern": "src/order-service\\.ts:[0-9]+|src/order-service\\.ts",
|
|
48
48
|
"flags": "i",
|
|
49
|
-
"label": "source evidence"
|
|
49
|
+
"label": "source evidence",
|
|
50
|
+
"artifact": true
|
|
50
51
|
},
|
|
51
52
|
{
|
|
52
53
|
"kind": "contains",
|
|
53
54
|
"file": "tasks/eval/refactoring-review.md",
|
|
54
55
|
"pattern": "processOrder",
|
|
55
|
-
"flags": "i"
|
|
56
|
+
"flags": "i",
|
|
57
|
+
"artifact": true
|
|
56
58
|
},
|
|
57
59
|
{
|
|
58
60
|
"kind": "contains",
|
|
59
61
|
"file": "tasks/eval/refactoring-review.md",
|
|
60
62
|
"pattern": "cohesion|responsibilit|coupling",
|
|
61
63
|
"flags": "i",
|
|
62
|
-
"label": "cogency diagnosis"
|
|
64
|
+
"label": "cogency diagnosis",
|
|
65
|
+
"artifact": true
|
|
63
66
|
},
|
|
64
67
|
{
|
|
65
68
|
"kind": "contains",
|
|
66
69
|
"file": "tasks/eval/refactoring-review.md",
|
|
67
70
|
"pattern": "extract|seam|split",
|
|
68
71
|
"flags": "i",
|
|
69
|
-
"label": "bounded refactor"
|
|
72
|
+
"label": "bounded refactor",
|
|
73
|
+
"artifact": true
|
|
70
74
|
},
|
|
71
75
|
{
|
|
72
76
|
"kind": "contains",
|
|
73
77
|
"file": "tasks/eval/refactoring-review.md",
|
|
74
78
|
"pattern": "test[\\s\\S]{0,120}(stock|coupon|mailer|audit|failure)",
|
|
75
79
|
"flags": "i",
|
|
76
|
-
"label": "behavior protection"
|
|
80
|
+
"label": "behavior protection",
|
|
81
|
+
"artifact": true
|
|
77
82
|
},
|
|
78
83
|
{
|
|
79
84
|
"kind": "contains",
|
|
80
85
|
"file": "tasks/eval/refactoring-review.md",
|
|
81
86
|
"pattern": "impact|effort|risk",
|
|
82
|
-
"flags": "i"
|
|
87
|
+
"flags": "i",
|
|
88
|
+
"artifact": true
|
|
83
89
|
},
|
|
84
90
|
{
|
|
85
91
|
"kind": "contains",
|
|
86
92
|
"file": "tasks/eval/refactoring-review.md",
|
|
87
93
|
"pattern": "Index coverage|coverage|not reviewed",
|
|
88
|
-
"flags": "i"
|
|
94
|
+
"flags": "i",
|
|
95
|
+
"artifact": true
|
|
89
96
|
}
|
|
90
|
-
]
|
|
97
|
+
],
|
|
98
|
+
"artifact": true
|
|
91
99
|
}
|
|
92
100
|
]
|
|
93
101
|
},
|
|
@@ -45,52 +45,61 @@
|
|
|
45
45
|
"kind": "contains",
|
|
46
46
|
"file": "tasks/eval/ux-review.md",
|
|
47
47
|
"pattern": "src/ReturnsPage\\.tsx|docs/product\\.md",
|
|
48
|
-
"flags": "i"
|
|
48
|
+
"flags": "i",
|
|
49
|
+
"artifact": true
|
|
49
50
|
},
|
|
50
51
|
{
|
|
51
52
|
"kind": "contains",
|
|
52
53
|
"file": "tasks/eval/ux-review.md",
|
|
53
54
|
"pattern": "journey|search by order",
|
|
54
|
-
"flags": "i"
|
|
55
|
+
"flags": "i",
|
|
56
|
+
"artifact": true
|
|
55
57
|
},
|
|
56
58
|
{
|
|
57
59
|
"kind": "contains",
|
|
58
60
|
"file": "tasks/eval/ux-review.md",
|
|
59
61
|
"pattern": "loading|pending",
|
|
60
|
-
"flags": "i"
|
|
62
|
+
"flags": "i",
|
|
63
|
+
"artifact": true
|
|
61
64
|
},
|
|
62
65
|
{
|
|
63
66
|
"kind": "contains",
|
|
64
67
|
"file": "tasks/eval/ux-review.md",
|
|
65
68
|
"pattern": "empty state|no results",
|
|
66
|
-
"flags": "i"
|
|
69
|
+
"flags": "i",
|
|
70
|
+
"artifact": true
|
|
67
71
|
},
|
|
68
72
|
{
|
|
69
73
|
"kind": "contains",
|
|
70
74
|
"file": "tasks/eval/ux-review.md",
|
|
71
75
|
"pattern": "preserv(e|ing).*query|setQuery|retry",
|
|
72
|
-
"flags": "i"
|
|
76
|
+
"flags": "i",
|
|
77
|
+
"artifact": true
|
|
73
78
|
},
|
|
74
79
|
{
|
|
75
80
|
"kind": "contains",
|
|
76
81
|
"file": "tasks/eval/ux-review.md",
|
|
77
82
|
"pattern": "deleteAll|confirmation|destructive",
|
|
78
|
-
"flags": "i"
|
|
83
|
+
"flags": "i",
|
|
84
|
+
"artifact": true
|
|
79
85
|
},
|
|
80
86
|
{
|
|
81
87
|
"kind": "contains",
|
|
82
88
|
"file": "tasks/eval/ux-review.md",
|
|
83
89
|
"pattern": "static|not verified|not runnable",
|
|
84
90
|
"flags": "i",
|
|
85
|
-
"label": "honest evidence"
|
|
91
|
+
"label": "honest evidence",
|
|
92
|
+
"artifact": true
|
|
86
93
|
},
|
|
87
94
|
{
|
|
88
95
|
"kind": "contains",
|
|
89
96
|
"file": "tasks/eval/ux-review.md",
|
|
90
97
|
"pattern": "Morning action|priority|severity",
|
|
91
|
-
"flags": "i"
|
|
98
|
+
"flags": "i",
|
|
99
|
+
"artifact": true
|
|
92
100
|
}
|
|
93
|
-
]
|
|
101
|
+
],
|
|
102
|
+
"artifact": true
|
|
94
103
|
}
|
|
95
104
|
]
|
|
96
105
|
},
|