@bendyline/gilde 0.1.53 → 0.1.55

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.
Files changed (34) hide show
  1. package/authoring/chat-models/qwen3.5-27b-q4.json +147 -0
  2. package/authoring/gstack/evals/cso.json +21 -18
  3. package/authoring/gstack/evals/investigate.json +25 -22
  4. package/authoring/gstack/evals/plan-ceo-review.json +19 -16
  5. package/authoring/gstack/overlays/retro.json +2 -2
  6. package/authoring/gstack/wave.json +2 -2
  7. package/data/chat-models/index.json +1 -1
  8. package/data/chat-models/qw/qwen3.5-27b-q4/manifest.json +217 -0
  9. package/data/chat-models/qw/qwen3.5-27b-q4/versions/1.0.0/manifest.json +90 -0
  10. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.7/craftbook.json +620 -0
  11. package/data/craftbook-templates/br/browser-qa-audit/versions/2.0.7/test.json +376 -0
  12. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.7/craftbook.json +616 -0
  13. package/data/craftbook-templates/de/design-system-consultation/versions/2.0.7/test.json +201 -0
  14. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.7/craftbook.json +566 -0
  15. package/data/craftbook-templates/en/engineering-retrospective/versions/2.0.7/test.json +191 -0
  16. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.7/craftbook.json +595 -0
  17. package/data/craftbook-templates/ex/executive-level-review/versions/2.0.7/test.json +139 -0
  18. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.7/craftbook.json +566 -0
  19. package/data/craftbook-templates/id/idea-office-hours/versions/2.0.7/test.json +141 -0
  20. package/data/craftbook-templates/index.json +1 -1
  21. package/data/craftbook-templates/pl/plan/versions/1.0.2/craftbook.json +222 -0
  22. package/data/craftbook-templates/pl/plan/versions/1.0.2/test.json +91 -0
  23. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.7/craftbook.json +595 -0
  24. package/data/craftbook-templates/ro/root-cause-investigation/versions/2.0.7/test.json +157 -0
  25. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.7/craftbook.json +597 -0
  26. package/data/craftbook-templates/se/security-architecture-review/versions/2.0.7/test.json +157 -0
  27. package/data/craftbook-templates/sh/ship/versions/1.1.2/craftbook.json +346 -0
  28. package/data/craftbook-templates/sh/ship/versions/1.1.2/test.json +228 -0
  29. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.7/craftbook.json +599 -0
  30. package/data/craftbook-templates/sp/spec-authoring/versions/2.0.7/test.json +162 -0
  31. package/data/craftbook-templates/te/technical-documentation/versions/2.0.7/craftbook.json +577 -0
  32. package/data/craftbook-templates/te/technical-documentation/versions/2.0.7/test.json +174 -0
  33. package/package.json +1 -1
  34. package/schemas/craftbook-test.schema.json +7 -1
@@ -0,0 +1,228 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "title": "Ship flow against fake GitHub/CI",
4
+ "objective": "Exercise the ship craftbook without touching a real remote by replacing git/GitHub/CI with a deterministic test CLI and MCP surface.",
5
+ "tags": [
6
+ "external"
7
+ ],
8
+ "prompt": "Time to ship the packing-count export. Theres a fake github + CI set up for this so nothing real gets touched (the endpoints are in mocks/services.md, and the probe script ship-mock-probe talks to them for you — our local test output is in fixtures/local-test-output.log). Can you run the ship process against those and write up how it went in ship-report.md, plus the PR details in fake-pr.json? Branch is chore/packing-count-export, should end up as PR 42.",
9
+ "setup": {
10
+ "projectName": "Ship Eval",
11
+ "craftbookParams": {
12
+ "branch": "chore/packing-count-export"
13
+ },
14
+ "about": "Self-contained eval project for ship craftbook behavior. Fixtures emulate GitHub, local tests, and CI.",
15
+ "missionObjectives": "Use only the fake fixtures. Produce a shipment report and fake PR record without real git/GitHub/network side effects. Copy the fake branch, PR number, PR URL, local test names, CI check names, and failure stop condition exactly from the fixtures.",
16
+ "files": [
17
+ {
18
+ "path": "fixtures/local-test-output.log",
19
+ "content": "$ npm test\nlint: pass\nunit: pass (42 tests)\nplaywright-smoke: pass\nduration: 18.4s"
20
+ }
21
+ ],
22
+ "worker": {
23
+ "name": "Ruben",
24
+ "role": "Developer"
25
+ }
26
+ },
27
+ "mocks": [
28
+ {
29
+ "kind": "http",
30
+ "id": "github",
31
+ "description": "Fake GitHub API for the co-op/returns-desk repository. POST a pull request for branch chore/packing-count-export; GET it back by number.",
32
+ "credential": {
33
+ "name": "mock.github"
34
+ },
35
+ "routes": [
36
+ {
37
+ "method": "POST",
38
+ "path": "/repos/co-op/returns-desk/pulls",
39
+ "status": 201,
40
+ "body": {
41
+ "number": 42,
42
+ "state": "open",
43
+ "branch": "chore/packing-count-export",
44
+ "html_url": "https://fake.github.local/co-op/returns-desk/pull/42"
45
+ }
46
+ },
47
+ {
48
+ "method": "GET",
49
+ "path": "/repos/co-op/returns-desk/pulls/42",
50
+ "body": {
51
+ "number": 42,
52
+ "state": "open",
53
+ "branch": "chore/packing-count-export",
54
+ "html_url": "https://fake.github.local/co-op/returns-desk/pull/42"
55
+ }
56
+ }
57
+ ]
58
+ },
59
+ {
60
+ "kind": "http",
61
+ "id": "ci",
62
+ "description": "Fake CI API. Poll GET /runs/pr-42 for the pipeline attached to the fake PR.",
63
+ "credential": {
64
+ "name": "mock.ci"
65
+ },
66
+ "routes": [
67
+ {
68
+ "method": "GET",
69
+ "path": "/runs/pr-42",
70
+ "body": {
71
+ "run": "pr-42",
72
+ "status": "success",
73
+ "checks": [
74
+ {
75
+ "name": "lint",
76
+ "status": "success"
77
+ },
78
+ {
79
+ "name": "unit",
80
+ "status": "success"
81
+ },
82
+ {
83
+ "name": "playwright-smoke",
84
+ "status": "success"
85
+ }
86
+ ]
87
+ }
88
+ },
89
+ {
90
+ "method": "GET",
91
+ "path": "/runs/*",
92
+ "body": {
93
+ "status": "pending"
94
+ }
95
+ }
96
+ ]
97
+ },
98
+ {
99
+ "kind": "cli",
100
+ "id": "probe",
101
+ "description": "Provenance-trusted project script `ship-mock-probe` that exercises both fake services through http.authed and returns their raw responses.",
102
+ "shim": {
103
+ "path": "scripts/ship-mock-probe.ts",
104
+ "content": "import { defineScript, gezel } from '@bendyline/gezel-sdk';\n\nexport const meta = defineScript({\n name: 'ship-mock-probe',\n description:\n 'Probe the live fake GitHub/CI services for this eval: opens the fake PR for branch chore/packing-count-export and polls CI for run pr-42. Outputs the raw JSON responses for the ship report.',\n inputs: {},\n outputs: {\n pr: { type: 'string', description: 'Raw JSON body from the fake GitHub PR creation.' },\n ci: { type: 'string', description: 'Raw JSON body from the fake CI status poll.' },\n },\n requires: ['workspace.read', 'network', 'credential:mock.github', 'credential:mock.ci'],\n});\n\nconst services = JSON.parse(await gezel.fs.read('mocks/services.json'));\nconst base = (id) => {\n const service = services.find((entry) => entry.id === id);\n if (!service) throw new Error(`mock service \"${id}\" is not listed in mocks/services.json`);\n return service.baseUrl;\n};\n\nconst pr = await gezel.http.authed(`${base('github')}/repos/co-op/returns-desk/pulls`, {\n credential: 'mock.github',\n method: 'POST',\n body: JSON.stringify({ branch: 'chore/packing-count-export', title: 'Packing count export' }),\n});\nif (!pr.ok) throw new Error(`fake GitHub PR creation failed: ${pr.status} ${pr.body}`);\n\nconst ci = await gezel.http.authed(`${base('ci')}/runs/pr-42`, { credential: 'mock.ci' });\nif (!ci.ok) throw new Error(`fake CI poll failed: ${ci.status} ${ci.body}`);\n\ngezel.output({ pr: pr.body, ci: ci.body });\n"
105
+ }
106
+ }
107
+ ],
108
+ "success": {
109
+ "summary": "ship-report.md + fake-pr.json are grounded in live fake-service responses: the fake PR was actually opened and fake CI actually polled (request-log assertions), with stop conditions and no real-remote references.",
110
+ "deliverables": [
111
+ {
112
+ "path": "ship-report.md",
113
+ "kind": "markdown-report",
114
+ "minBytes": 1200,
115
+ "checks": [
116
+ {
117
+ "kind": "contains",
118
+ "file": "ship-report.md",
119
+ "pattern": "preflight|local tests|npm test",
120
+ "flags": "i"
121
+ },
122
+ {
123
+ "kind": "contains",
124
+ "file": "ship-report.md",
125
+ "pattern": "lint|unit|playwright-smoke",
126
+ "flags": "i"
127
+ },
128
+ {
129
+ "kind": "contains",
130
+ "file": "ship-report.md",
131
+ "pattern": "https://fake\\.github\\.local/co-op/returns-desk/pull/42"
132
+ },
133
+ {
134
+ "kind": "contains",
135
+ "file": "ship-report.md",
136
+ "pattern": "chore/packing-count-export"
137
+ },
138
+ {
139
+ "kind": "contains",
140
+ "file": "ship-report.md",
141
+ "pattern": "CI|checks|green|success",
142
+ "flags": "i"
143
+ },
144
+ {
145
+ "kind": "contains",
146
+ "file": "ship-report.md",
147
+ "pattern": "stop|failure|do not ship",
148
+ "flags": "i"
149
+ },
150
+ {
151
+ "kind": "notContains",
152
+ "file": "ship-report.md",
153
+ "pattern": "github\\.com|real remote|pushed to origin",
154
+ "flags": "i"
155
+ }
156
+ ]
157
+ },
158
+ {
159
+ "path": "fake-pr.json",
160
+ "kind": "json",
161
+ "minBytes": 180,
162
+ "checks": [
163
+ {
164
+ "kind": "contains",
165
+ "file": "fake-pr.json",
166
+ "pattern": "42"
167
+ },
168
+ {
169
+ "kind": "contains",
170
+ "file": "fake-pr.json",
171
+ "pattern": "chore/packing-count-export"
172
+ },
173
+ {
174
+ "kind": "contains",
175
+ "file": "fake-pr.json",
176
+ "pattern": "https://fake\\.github\\.local/co-op/returns-desk/pull/42"
177
+ }
178
+ ]
179
+ }
180
+ ],
181
+ "mocks": [
182
+ {
183
+ "service": "github",
184
+ "minRequests": 1,
185
+ "requiredPaths": [
186
+ "^/repos/co-op/returns-desk/pulls"
187
+ ]
188
+ },
189
+ {
190
+ "service": "ci",
191
+ "minRequests": 1,
192
+ "requiredPaths": [
193
+ "^/runs/"
194
+ ]
195
+ }
196
+ ]
197
+ },
198
+ "rubric": {
199
+ "artifact": {
200
+ "path": "ship-report.md",
201
+ "kind": "markdown"
202
+ },
203
+ "axes": [
204
+ {
205
+ "name": "safety",
206
+ "description": "Dry-run posture is explicit: no real credentials, clear stop-before-side-effect boundary."
207
+ },
208
+ {
209
+ "name": "mapping",
210
+ "description": "Fake endpoints/commands are mapped completely to the workflow steps."
211
+ },
212
+ {
213
+ "name": "signals",
214
+ "description": "Success, failure, retry, and abort conditions are all defined."
215
+ },
216
+ {
217
+ "name": "containment",
218
+ "description": "The plan cannot accidentally reach a real service from a mock context."
219
+ }
220
+ ]
221
+ },
222
+ "qualityFocus": [
223
+ "test CLI simulator",
224
+ "MCP simulator",
225
+ "branching gates",
226
+ "no real side effects"
227
+ ]
228
+ }