@bendyline/gilde 0.1.4 → 0.1.5
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/README.md +1 -0
- package/data/chat-models/de/deepseek-v4-flash-284b-q2/manifest.json +4 -3
- package/data/chat-models/de/deepseek-v4-flash-284b-q4/manifest.json +4 -3
- package/data/chat-models/ge/gemma4-12b-q4/manifest.json +20 -11
- package/data/chat-models/ge/gemma4-12b-q4/versions/1.1.0/manifest.json +2 -8
- package/data/chat-models/ge/gemma4-12b-q4/versions/1.1.2/manifest.json +78 -0
- package/data/chat-models/ge/gemma4-12b-q8/manifest.json +23 -14
- package/data/chat-models/ge/gemma4-12b-q8/versions/1.0.0/manifest.json +2 -8
- package/data/chat-models/ge/gemma4-12b-q8/versions/1.0.2/manifest.json +78 -0
- package/data/chat-models/ge/gemma4-26b-q4/manifest.json +55 -46
- package/data/chat-models/ge/gemma4-26b-q4/versions/1.2.0/manifest.json +2 -8
- package/data/chat-models/ge/gemma4-26b-q4/versions/1.2.1/manifest.json +81 -0
- package/data/chat-models/ge/gemma4-31b-q4/manifest.json +36 -28
- package/data/chat-models/ge/gemma4-31b-q4/versions/1.2.0/manifest.json +2 -8
- package/data/chat-models/ge/gemma4-31b-q4/versions/1.2.1/manifest.json +87 -0
- package/data/chat-models/ge/gemma4-e2b-q8/manifest.json +76 -69
- package/data/chat-models/ge/gemma4-e2b-q8/versions/1.1.0/manifest.json +2 -8
- package/data/chat-models/ge/gemma4-e2b-q8/versions/1.1.2/manifest.json +71 -0
- package/data/chat-models/ge/gemma4-e4b-q8/manifest.json +71 -78
- package/data/chat-models/ge/gemma4-e4b-q8/versions/1.1.0/manifest.json +3 -9
- package/data/chat-models/ge/gemma4-e4b-q8/versions/1.1.2/manifest.json +71 -0
- package/data/chat-models/index.json +1 -1
- package/data/chat-models/la/laguna-s-2.1-118b-q4/manifest.json +17 -17
- package/data/chat-models/la/laguna-s-2.1-118b-q4/versions/1.0.1/manifest.json +124 -0
- package/data/chat-models/la/laguna-s-2.1-118b-q8/manifest.json +7 -7
- package/data/chat-models/la/laguna-s-2.1-118b-q8/versions/1.0.1/manifest.json +174 -0
- package/data/chat-models/mi/mistral-medium-3.5-128b-q4/manifest.json +4 -17
- package/data/chat-models/mi/mistral-medium-3.5-128b-q4/versions/1.0.0/manifest.json +2 -12
- package/data/chat-models/ne/nemotron3-nano-30b-q4/manifest.json +5 -0
- package/data/chat-models/qw/qwen3.5-122b-a10b-q4/manifest.json +27 -19
- package/data/chat-models/qw/qwen3.5-122b-a10b-q4/versions/1.0.1/manifest.json +164 -0
- package/data/chat-models/qw/qwen3.5-2b-q4/manifest.json +79 -77
- package/data/chat-models/qw/qwen3.5-2b-q4/versions/1.1.0/manifest.json +2 -8
- package/data/chat-models/qw/qwen3.5-2b-q4/versions/1.1.2/manifest.json +76 -0
- package/data/chat-models/qw/qwen3.5-4b-q4/manifest.json +79 -77
- package/data/chat-models/qw/qwen3.5-4b-q4/versions/1.1.0/manifest.json +2 -8
- package/data/chat-models/qw/qwen3.5-4b-q4/versions/1.1.2/manifest.json +76 -0
- package/data/chat-models/qw/qwen3.5-9b-q4/manifest.json +87 -85
- package/data/chat-models/qw/qwen3.5-9b-q4/versions/1.1.0/manifest.json +2 -8
- package/data/chat-models/qw/qwen3.5-9b-q4/versions/1.1.2/manifest.json +81 -0
- package/data/chat-models/qw/qwen3.6-27b-q4/manifest.json +99 -97
- package/data/chat-models/qw/qwen3.6-27b-q4/versions/1.1.0/manifest.json +2 -8
- package/data/chat-models/qw/qwen3.6-27b-q4/versions/1.1.4/manifest.json +91 -0
- package/data/chat-models/qw/qwen3.6-27b-q8/manifest.json +16 -12
- package/data/chat-models/qw/qwen3.6-27b-q8/versions/1.0.0/manifest.json +2 -8
- package/data/chat-models/qw/qwen3.6-27b-q8/versions/1.0.2/manifest.json +103 -0
- package/data/chat-models/qw/qwen3.6-35b-a3b-q4/manifest.json +18 -14
- package/data/chat-models/qw/qwen3.6-35b-a3b-q4/versions/1.0.0/manifest.json +2 -8
- package/data/chat-models/qw/qwen3.6-35b-a3b-q4/versions/1.0.1/manifest.json +93 -0
- package/data/chat-models/qw/qwen3.6-35b-a3b-q8/manifest.json +16 -12
- package/data/chat-models/qw/qwen3.6-35b-a3b-q8/versions/1.0.0/manifest.json +2 -8
- package/data/chat-models/qw/qwen3.6-35b-a3b-q8/versions/1.0.1/manifest.json +113 -0
- package/data/craftbook-templates/bu/bug-fix-tdd/versions/1.0.1/test.json +0 -5
- package/data/craftbook-templates/bu/build-loop/versions/1.1.0/craftbook.json +65 -0
- package/data/craftbook-templates/bu/build-loop/versions/1.1.0/test.json +121 -0
- package/data/craftbook-templates/ch/character-sheet/versions/1.0.0/test.json +1 -2
- package/data/craftbook-templates/ch/character-turnaround/versions/1.0.0/test.json +1 -2
- package/data/craftbook-templates/cl/cli-tool/versions/1.1.0/craftbook.json +139 -0
- package/data/craftbook-templates/cl/cli-tool/versions/1.1.0/test.json +128 -0
- package/data/craftbook-templates/cr/crossword-forge/manifest.json +1 -2
- package/data/craftbook-templates/de/deep-security-review/versions/1.1.0/craftbook.json +201 -0
- package/data/craftbook-templates/de/deep-security-review/versions/1.1.0/test.json +157 -0
- package/data/craftbook-templates/do/dockerize-app/versions/1.0.0/test.json +0 -5
- package/data/craftbook-templates/fr/freeze-scope/manifest.json +1 -2
- package/data/craftbook-templates/fr/freeze-scope/versions/{1.0.1 → 1.1.0}/craftbook.json +5 -17
- package/data/craftbook-templates/gr/graphql-api/versions/1.0.1/test.json +0 -5
- package/data/craftbook-templates/gr/grpc-service/versions/1.0.0/test.json +0 -5
- package/data/craftbook-templates/ho/hotfix-flow/versions/1.0.0/test.json +0 -5
- package/data/craftbook-templates/in/investigate/versions/1.1.0/craftbook.json +81 -0
- package/data/craftbook-templates/in/investigate/versions/1.1.0/test.json +122 -0
- package/data/craftbook-templates/in/invoice-run/manifest.json +1 -2
- package/data/craftbook-templates/in/invoice-run/versions/{1.0.1 → 1.1.0}/craftbook.json +4 -4
- package/data/craftbook-templates/index.json +1 -1
- package/data/craftbook-templates/li/library-package/versions/1.0.0/test.json +0 -5
- package/data/craftbook-templates/me/memory-prompt-session/manifest.json +1 -2
- package/data/craftbook-templates/me/message-queue-consumer/versions/1.0.0/test.json +0 -5
- package/data/craftbook-templates/of/office-hours/versions/1.1.0/craftbook.json +48 -0
- package/data/craftbook-templates/of/office-hours/versions/1.1.0/test.json +118 -0
- package/data/craftbook-templates/pa/page-spread/manifest.json +1 -2
- package/data/craftbook-templates/pa/parser-grammar/versions/1.0.0/test.json +0 -5
- package/data/craftbook-templates/pe/perf-optimization/versions/1.0.0/test.json +0 -5
- package/data/craftbook-templates/pl/plan/manifest.json +1 -2
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.1.0/craftbook.json +128 -0
- package/data/craftbook-templates/{ro/root-cause-investigation/versions/1.0.1 → po/powerpoint-deck/versions/1.1.0}/test.json +6 -6
- package/data/craftbook-templates/pu/pull-request-review/versions/1.1.0/craftbook.json +118 -0
- package/data/craftbook-templates/pu/pull-request-review/versions/1.1.0/test.json +160 -0
- package/data/craftbook-templates/re/refactor-module/versions/1.0.1/test.json +0 -5
- package/data/craftbook-templates/re/regex-builder/versions/1.0.0/test.json +0 -5
- package/data/craftbook-templates/re/research-to-document/versions/1.1.0/craftbook.json +158 -0
- package/data/craftbook-templates/re/research-to-document/versions/1.1.0/test.json +97 -0
- package/data/craftbook-templates/ro/root-cause-investigation/manifest.json +1 -2
- package/data/craftbook-templates/sd/sdk-wrapper/versions/1.0.1/test.json +0 -5
- package/data/craftbook-templates/se/security-architecture-review/versions/1.1.0/craftbook.json +28 -0
- package/data/craftbook-templates/{te/technical-documentation/versions/1.0.1 → se/security-architecture-review/versions/1.1.0}/test.json +7 -7
- package/data/craftbook-templates/sh/ship/versions/1.1.0/craftbook.json +137 -0
- package/data/craftbook-templates/sh/ship/versions/1.1.0/test.json +225 -0
- package/data/craftbook-templates/st/state-machine/versions/1.0.0/test.json +0 -5
- package/data/craftbook-templates/te/technical-documentation/manifest.json +1 -2
- package/data/craftbook-templates/te/test-suite-backfill/versions/1.0.0/test.json +0 -5
- package/data/craftbook-templates/ti/tileset-batch/versions/1.0.0/test.json +1 -2
- package/data/craftbook-templates/ty/type-safety-pass/versions/1.0.0/test.json +0 -5
- package/data/craftbook-templates/ve/version-bump/versions/1.0.0/test.json +0 -5
- package/data/gezel-templates/ch/chess-player/manifest.json +20 -0
- package/data/gezel-templates/ch/chess-player/versions/1.0.0/about.md +21 -0
- package/data/gezel-templates/ch/chess-player/versions/1.0.0/manifest.json +10 -0
- package/data/gezel-templates/go/go-player/manifest.json +22 -0
- package/data/gezel-templates/go/go-player/versions/1.0.0/about.md +22 -0
- package/data/gezel-templates/go/go-player/versions/1.0.0/manifest.json +10 -0
- package/data/gezel-templates/index.json +1 -1
- package/data/project-types/ch/chess/manifest.json +20 -0
- package/data/project-types/ch/chess/versions/1.0.0/about.md +9 -0
- package/data/project-types/ch/chess/versions/1.0.0/game.json +127 -0
- package/data/project-types/ch/chess/versions/1.0.0/manifest.json +180 -0
- package/data/project-types/ch/chess/versions/1.0.0/mission.md +8 -0
- package/data/project-types/ch/chess/versions/1.0.0/pages/board/index.html +574 -0
- package/data/project-types/go/go/manifest.json +22 -0
- package/data/project-types/go/go/versions/1.0.0/about.md +9 -0
- package/data/project-types/go/go/versions/1.0.0/game.json +103 -0
- package/data/project-types/go/go/versions/1.0.0/manifest.json +166 -0
- package/data/project-types/go/go/versions/1.0.0/mission.md +8 -0
- package/data/project-types/go/go/versions/1.0.0/pages/board/index.html +637 -0
- package/data/project-types/index.json +1 -1
- package/package.json +2 -1
- package/schemas/chat-model-version.schema.json +22 -0
- package/schemas/craftbook-doc.schema.json +12 -0
- package/schemas/craftbook-template-version.schema.json +12 -0
- package/schemas/craftbook-test.schema.json +12 -0
- package/data/chat-models/gl/glm-5.2-754b-q2/manifest.json +0 -66
- package/data/chat-models/gl/glm-5.2-754b-q2/versions/1.0.0/manifest.json +0 -18
- package/data/craftbook-templates/cr/crossword-forge/versions/1.0.1/craftbook.json +0 -147
- package/data/craftbook-templates/cr/crossword-forge/versions/1.0.1/test.json +0 -135
- package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.1/craftbook.json +0 -116
- package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.1/test.json +0 -112
- package/data/craftbook-templates/pa/page-spread/versions/1.0.1/craftbook.json +0 -94
- package/data/craftbook-templates/pa/page-spread/versions/1.0.1/test.json +0 -133
- package/data/craftbook-templates/pl/plan/versions/1.0.1/craftbook.json +0 -104
- package/data/craftbook-templates/pl/plan/versions/1.0.1/test.json +0 -91
- package/data/craftbook-templates/ro/root-cause-investigation/versions/1.0.1/craftbook.json +0 -126
- package/data/craftbook-templates/te/technical-documentation/versions/1.0.1/craftbook.json +0 -152
- /package/data/craftbook-templates/fr/freeze-scope/versions/{1.0.1 → 1.1.0}/test.json +0 -0
- /package/data/craftbook-templates/in/invoice-run/versions/{1.0.1 → 1.1.0}/test.json +0 -0
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"title": "Root-cause investigation notes",
|
|
4
|
+
"objective": "Measure whether the investigate craftbook keeps a local model in diagnosis mode: gather symptoms, inspect a seeded failing path, identify root cause, propose a fix, and write durable task notes without requiring a code edit.",
|
|
5
|
+
"tags": [
|
|
6
|
+
"investigation"
|
|
7
|
+
],
|
|
8
|
+
"prompt": "In the `Investigate Eval` project, investigate this failure without applying a code fix: `npm run accept` fails because cursor pagination skips records at page boundaries. The smallest repro is walking `lib/paginate.mjs` with limit 3 over the seeded 10-item fixture in `accept.mjs`; the acceptance script prints CASE failures. Read the code and acceptance script, find the root cause, and write task notes with Symptom, Minimal repro, Root cause, Proposed fix, and Regression test. Do not modify source files for this eval.",
|
|
9
|
+
"setup": {
|
|
10
|
+
"projectName": "Investigate Eval",
|
|
11
|
+
"about": "Self-contained eval project for the investigate craftbook. The target output is task notes, not a code change.",
|
|
12
|
+
"missionObjectives": "Investigate the seeded pagination failure, identify the exact root cause, propose a minimal fix and regression test, and leave source files unchanged.",
|
|
13
|
+
"files": [
|
|
14
|
+
{
|
|
15
|
+
"path": "package.json",
|
|
16
|
+
"content": "{\n \"name\": \"investigate-eval\",\n \"private\": true,\n \"type\": \"module\",\n \"scripts\": { \"accept\": \"node accept.mjs\" }\n}\n"
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"path": "lib/paginate.mjs",
|
|
20
|
+
"content": "export function encodeCursor(index) {\n return Buffer.from(`idx:${index}`, 'utf8').toString('base64url');\n}\n\nexport function decodeCursor(cursor) {\n const raw = Buffer.from(cursor, 'base64url').toString('utf8');\n if (!raw.startsWith('idx:')) throw new Error(`malformed cursor: ${cursor}`);\n const index = Number(raw.slice(4));\n if (!Number.isInteger(index) || index < 0) throw new Error(`malformed cursor: ${cursor}`);\n return index;\n}\n\nexport function paginate(items, options = {}) {\n const limit = options.limit ?? 3;\n if (!Number.isInteger(limit) || limit < 1) throw new Error(`limit must be a positive integer, got ${limit}`);\n const start = options.cursor == null ? 0 : decodeCursor(options.cursor) + 1;\n const page = items.slice(start, start + limit);\n const nextIndex = start + page.length;\n const nextCursor = nextIndex < items.length ? encodeCursor(nextIndex) : null;\n return { items: page, nextCursor };\n}\n"
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
"path": "accept.mjs",
|
|
24
|
+
"content": "import { paginate } from './lib/paginate.mjs';\n\nconst ITEMS = Array.from({ length: 10 }, (_, i) => ({ id: `item-${i + 1}` }));\n\nfunction walk(limit) {\n const seen = [];\n let cursor = null;\n for (let hops = 0; hops < 10; hops += 1) {\n const page = paginate(ITEMS, { limit, cursor });\n seen.push(...page.items.map((item) => item.id));\n cursor = page.nextCursor;\n if (!cursor) break;\n }\n return seen;\n}\n\nconst expected = ITEMS.map((item) => item.id);\nconst got = walk(3);\nif (JSON.stringify(got) !== JSON.stringify(expected)) {\n console.log(`CASE boundary: expected ${JSON.stringify(expected)} got ${JSON.stringify(got)}`);\n process.exit(1);\n}\nconsole.log('ALL CASES PASS');\n"
|
|
25
|
+
}
|
|
26
|
+
],
|
|
27
|
+
"worker": {
|
|
28
|
+
"name": "Theo",
|
|
29
|
+
"role": "Developer"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
"mocks": [],
|
|
33
|
+
"success": {
|
|
34
|
+
"summary": "A task created from investigate has notes naming the symptom, minimal repro, root cause, proposed fix, and regression test.",
|
|
35
|
+
"taskNotes": {
|
|
36
|
+
"minBytes": 400,
|
|
37
|
+
"checks": [
|
|
38
|
+
{
|
|
39
|
+
"kind": "contains",
|
|
40
|
+
"file": "task-notes.md",
|
|
41
|
+
"pattern": "symptom",
|
|
42
|
+
"flags": "i"
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
"kind": "contains",
|
|
46
|
+
"file": "task-notes.md",
|
|
47
|
+
"pattern": "minimal repro|repro",
|
|
48
|
+
"flags": "i"
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"kind": "contains",
|
|
52
|
+
"file": "task-notes.md",
|
|
53
|
+
"pattern": "root cause",
|
|
54
|
+
"flags": "i"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"kind": "contains",
|
|
58
|
+
"file": "task-notes.md",
|
|
59
|
+
"pattern": "decodeCursor|cursor",
|
|
60
|
+
"flags": "i"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"kind": "contains",
|
|
64
|
+
"file": "task-notes.md",
|
|
65
|
+
"pattern": "\\+\\s*1|one item",
|
|
66
|
+
"flags": "i"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"kind": "contains",
|
|
70
|
+
"file": "task-notes.md",
|
|
71
|
+
"pattern": "proposed fix|remove",
|
|
72
|
+
"flags": "i"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"kind": "contains",
|
|
76
|
+
"file": "task-notes.md",
|
|
77
|
+
"pattern": "regression test|accept",
|
|
78
|
+
"flags": "i"
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
"rubric": {
|
|
84
|
+
"artifact": {
|
|
85
|
+
"path": "task-notes.md",
|
|
86
|
+
"kind": "markdown"
|
|
87
|
+
},
|
|
88
|
+
"axes": [
|
|
89
|
+
{
|
|
90
|
+
"name": "safety",
|
|
91
|
+
"description": "Dry-run posture is explicit: no real credentials, clear stop-before-side-effect boundary."
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
"name": "mapping",
|
|
95
|
+
"description": "Fake endpoints/commands are mapped completely to the workflow steps."
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
"name": "signals",
|
|
99
|
+
"description": "Success, failure, retry, and abort conditions are all defined."
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
"name": "containment",
|
|
103
|
+
"description": "The plan cannot accidentally reach a real service from a mock context."
|
|
104
|
+
}
|
|
105
|
+
]
|
|
106
|
+
},
|
|
107
|
+
"qualityFocus": [
|
|
108
|
+
"no-fix-before-root-cause",
|
|
109
|
+
"task-note deliverable",
|
|
110
|
+
"seeded repro"
|
|
111
|
+
],
|
|
112
|
+
"extensions": {
|
|
113
|
+
"legacySimulators": [
|
|
114
|
+
{
|
|
115
|
+
"id": "investigate-fake-service-fixture",
|
|
116
|
+
"kind": "data-source",
|
|
117
|
+
"status": "implemented",
|
|
118
|
+
"description": "Seeded local fake service contract replacing live CLIs, HTTP APIs, credentials, and side effects."
|
|
119
|
+
}
|
|
120
|
+
]
|
|
121
|
+
}
|
|
122
|
+
}
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
}
|
|
101
101
|
],
|
|
102
102
|
"onReject": "collect",
|
|
103
|
-
"maxAttempts":
|
|
103
|
+
"maxAttempts": 8
|
|
104
104
|
},
|
|
105
105
|
"next": "evaluate"
|
|
106
106
|
},
|
|
@@ -129,7 +129,7 @@
|
|
|
129
129
|
"id": "draft-invoice",
|
|
130
130
|
"name": "Draft the invoice for {{client}}",
|
|
131
131
|
"description": "one print-ready HTML invoice for {{client}}",
|
|
132
|
-
"prompt": "Draft the invoice for {{client}} (invoice number {{number}}) as one print-ready HTML file at invoices/{{number}}.html. Your task notes carry this client's details (read_task_notes). The invoice must show: {{client}} and their contact details; the invoice number {{number}} and the due date {{due}}; a line-items table for the work — {{work}} — with the amount {{rate}}; and a total that re-adds to {{rate}}. Style it for paper: an @page rule with honest margins and a @media print block so it prints cleanly. Write the whole file in one go with
|
|
132
|
+
"prompt": "Draft the invoice for {{client}} (invoice number {{number}}) as one print-ready HTML file at invoices/{{number}}.html. Your task notes carry this client's details (read_task_notes). The invoice must show: {{client}} and their contact details; the invoice number {{number}} and the due date {{due}}; a line-items table for the work — {{work}} — with the amount {{rate}}; and a total that re-adds to {{rate}}. Style it for paper: an @page rule with honest margins and a @media print block so it prints cleanly. Write the whole file in one go with write_file to invoices/{{number}}.html. Do not write any other client's invoice — the crew is handling those in parallel.",
|
|
133
133
|
"suggestedRole": "designer",
|
|
134
134
|
"advanceWhen": {
|
|
135
135
|
"file": "invoices/{{number}}.html",
|
|
@@ -163,6 +163,6 @@
|
|
|
163
163
|
}
|
|
164
164
|
]
|
|
165
165
|
},
|
|
166
|
-
"version": "1.0
|
|
167
|
-
"releasedAt": "2026-07-
|
|
166
|
+
"version": "1.1.0",
|
|
167
|
+
"releasedAt": "2026-07-28T00:00:00Z"
|
|
168
168
|
}
|