@bendyline/gilde 0.1.57 → 0.1.59

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 (48) hide show
  1. package/data/craftbook-templates/ba/backup-routine/versions/1.0.4/craftbook.json +0 -16
  2. package/data/craftbook-templates/bo/booking-automation/versions/1.0.3/craftbook.json +0 -16
  3. package/data/craftbook-templates/ch/character-turnaround/versions/1.0.3/test.json +7 -10
  4. package/data/craftbook-templates/co/content-deck/versions/1.2.4/craftbook.json +4 -4
  5. package/data/craftbook-templates/co/content-deck/versions/1.2.4/test.json +3 -0
  6. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.4/craftbook.json +4 -4
  7. package/data/craftbook-templates/co/corpus-email-digest/versions/1.2.4/test.json +3 -0
  8. package/data/craftbook-templates/da/data-export-migrate/versions/1.0.4/craftbook.json +0 -16
  9. package/data/craftbook-templates/db/db-index-tuning/versions/1.0.4/craftbook.json +0 -16
  10. package/data/craftbook-templates/do/doc-intake-pipeline/versions/1.0.4/craftbook.json +0 -16
  11. package/data/craftbook-templates/do/doc-rewrite/versions/1.0.3/test.json +3 -6
  12. package/data/craftbook-templates/do/dockerize-app/versions/1.0.4/craftbook.json +0 -16
  13. package/data/craftbook-templates/ed/edit-notes/versions/1.0.3/test.json +5 -8
  14. package/data/craftbook-templates/fo/form-fill-batch/versions/1.0.4/craftbook.json +0 -16
  15. package/data/craftbook-templates/ho/holiday-card-run/versions/1.0.3/test.json +5 -8
  16. package/data/craftbook-templates/in/insurance-inventory/versions/1.0.3/test.json +6 -9
  17. package/data/craftbook-templates/index.json +1 -1
  18. package/data/craftbook-templates/it/item-intake/versions/1.0.3/test.json +7 -10
  19. package/data/craftbook-templates/me/memory-prompt-session/versions/1.0.3/test.json +9 -11
  20. package/data/craftbook-templates/mo/monitor-and-alert/versions/1.0.3/craftbook.json +0 -16
  21. package/data/craftbook-templates/mo/morning-report/versions/1.0.3/test.json +14 -17
  22. package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.4/craftbook.json +314 -0
  23. package/data/craftbook-templates/na/narrated-slideshow/versions/1.1.4/test.json +89 -0
  24. package/data/craftbook-templates/pe/pest-diagnosis/versions/1.0.3/test.json +12 -15
  25. package/data/craftbook-templates/pl/playtest-report/versions/1.0.3/test.json +9 -12
  26. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.10/craftbook.json +581 -0
  27. package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.10/test.json +240 -0
  28. package/data/craftbook-templates/pr/practice-exam/versions/1.0.3/test.json +3 -6
  29. package/data/craftbook-templates/pr/practice-session/versions/1.0.3/test.json +6 -9
  30. package/data/craftbook-templates/pr/price-tracker/versions/1.0.3/craftbook.json +0 -8
  31. package/data/craftbook-templates/re/receipt-intake/versions/1.0.3/test.json +8 -11
  32. package/data/craftbook-templates/re/recipe-capture/versions/1.0.3/test.json +8 -11
  33. package/data/craftbook-templates/re/record-a-relative/versions/1.0.3/test.json +9 -11
  34. package/data/craftbook-templates/re/recurring-invoice-run/versions/1.0.4/craftbook.json +0 -16
  35. package/data/craftbook-templates/re/report-pdf/versions/1.1.4/craftbook.json +315 -0
  36. package/data/craftbook-templates/re/report-pdf/versions/1.1.4/test.json +101 -0
  37. package/data/craftbook-templates/re/research-to-document/versions/1.2.4/craftbook.json +386 -0
  38. package/data/craftbook-templates/re/research-to-document/versions/1.2.4/test.json +242 -0
  39. package/data/craftbook-templates/ro/rough-cut-assembly/versions/1.0.4/test.json +9 -12
  40. package/data/craftbook-templates/so/source-quality-audit/versions/1.0.3/test.json +15 -18
  41. package/data/craftbook-templates/sq/sql-analysis/versions/1.0.3/craftbook.json +0 -8
  42. package/data/craftbook-templates/th/thank-you-sweep/versions/1.0.3/test.json +5 -8
  43. package/data/craftbook-templates/ti/tileset-batch/versions/1.0.3/test.json +5 -8
  44. package/data/craftbook-templates/we/weak-spot-drill/versions/1.0.3/test.json +5 -8
  45. package/data/craftbook-templates/we/weekly-walkthrough/versions/1.0.3/test.json +13 -16
  46. package/data/toolsets/do/docblocks/versions/2.6.0/manifest.json +95 -0
  47. package/data/toolsets/index.json +1 -1
  48. package/package.json +1 -1
@@ -8,8 +8,8 @@
8
8
  "prompt": "cutlist is ready — can you asemble the rough cut with the fake pipeline thats wired up and check it came out right?",
9
9
  "setup": {
10
10
  "projectName": "Video Workshop — Rough Cut Eval",
11
- "about": "Self-contained eval project for rough-cut-assembly. The cut list is cutlist.json and the clip index is media/index.json (durations in seconds). The fake media-assembly pipeline is the ready-made mock-probe project script: it validates the cutlist, writes the stub render to renders/rough-cut.mp4, and writes its run log to renders/assembly-log.json. The run report goes to tasks/eval/report.md.",
12
- "missionObjectives": "Use the Rough Cut Assembly craftbook/template, pre-flight cutlist.json against media/index.json, run the assembly through the provided mock-probe script, and verify the log against the expected duration in tasks/eval/report.md. No real media tools, services, or credentials — only the wired fake pipeline.",
11
+ "about": "Self-contained eval project for rough-cut-assembly. The cut list is cutlist.json and the clip index is media/index.json (durations in seconds). The fake media-assembly pipeline is the ready-made mock-probe project script: it validates the cutlist, writes the stub render to renders/rough-cut.mp4, and writes its run log to renders/assembly-log.json. The run report goes to report.md in this task's own artifacts working folder.",
12
+ "missionObjectives": "Use the Rough Cut Assembly craftbook/template, pre-flight cutlist.json against media/index.json, run the assembly through the provided mock-probe script, and verify the log against the expected duration in report.md in this task's own artifacts working folder. No real media tools, services, or credentials — only the wired fake pipeline.",
13
13
  "files": [
14
14
  {
15
15
  "path": "cutlist.json",
@@ -23,9 +23,6 @@
23
23
  "worker": {
24
24
  "name": "Daan",
25
25
  "role": "Developer"
26
- },
27
- "craftbookParams": {
28
- "workPath": "tasks/eval"
29
26
  }
30
27
  },
31
28
  "mocks": [
@@ -40,7 +37,7 @@
40
37
  }
41
38
  ],
42
39
  "success": {
43
- "summary": "The render and its status-ok log exist because the fake pipeline actually ran, the log's clips all come from the cutlist, and tasks/eval/report.md compares expected versus actual duration with real numbers.",
40
+ "summary": "The render and its status-ok log exist because the fake pipeline actually ran, the log's clips all come from the cutlist, and report.md in this task's own artifacts working folder compares expected versus actual duration with real numbers.",
44
41
  "deliverables": [
45
42
  {
46
43
  "path": "renders/rough-cut.mp4",
@@ -70,20 +67,20 @@
70
67
  ]
71
68
  },
72
69
  {
73
- "path": "tasks/eval/report.md",
70
+ "path": "{{task.dir}}/report.md",
74
71
  "kind": "markdown-report",
75
72
  "minBytes": 600,
76
73
  "checks": [
77
74
  {
78
75
  "kind": "contains",
79
- "file": "tasks/eval/report.md",
76
+ "file": "{{task.dir}}/report.md",
80
77
  "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
81
78
  "flags": "i",
82
79
  "artifact": true
83
80
  },
84
81
  {
85
82
  "kind": "contains",
86
- "file": "tasks/eval/report.md",
83
+ "file": "{{task.dir}}/report.md",
87
84
  "pattern": "duration",
88
85
  "flags": "i",
89
86
  "label": "the report talks about duration",
@@ -91,7 +88,7 @@
91
88
  },
92
89
  {
93
90
  "kind": "contains",
94
- "file": "tasks/eval/report.md",
91
+ "file": "{{task.dir}}/report.md",
95
92
  "pattern": "expected|actual",
96
93
  "flags": "i",
97
94
  "label": "expected versus actual is stated",
@@ -99,7 +96,7 @@
99
96
  },
100
97
  {
101
98
  "kind": "judge",
102
- "file": "tasks/eval/report.md",
99
+ "file": "{{task.dir}}/report.md",
103
100
  "rubric": "The report's segment count and duration figures match renders/assembly-log.json, the expected duration was computed from the cutlist before the run, and any mismatch is stated plainly rather than smoothed over.",
104
101
  "sourceFiles": [
105
102
  "renders/assembly-log.json",
@@ -115,7 +112,7 @@
115
112
  },
116
113
  "rubric": {
117
114
  "artifact": {
118
- "path": "tasks/eval/report.md",
115
+ "path": "{{task.dir}}/report.md",
119
116
  "kind": "markdown"
120
117
  },
121
118
  "axes": [
@@ -8,8 +8,8 @@
8
8
  "prompt": "the brief has felt noisy latly — can you audit the sources this month and tell me what to drop?",
9
9
  "setup": {
10
10
  "projectName": "Topic Watch — Source Audit Eval",
11
- "about": "Self-contained eval project for source-quality-audit. The source roster is seeded at sources.json and the month's briefs sit under briefs/ as the evidence base; the deliverable is tasks/eval/report.md with the verdict table.",
12
- "missionObjectives": "Use the Source Quality Audit craftbook/template, score every roster source against the month's briefs only, and write tasks/eval/report.md. No live feeds, services, or outside data — the seeded briefs are the whole record.",
11
+ "about": "Self-contained eval project for source-quality-audit. The source roster is seeded at sources.json and the month's briefs sit under briefs/ as the evidence base; the deliverable is report.md in this task's own artifacts working folder with the verdict table.",
12
+ "missionObjectives": "Use the Source Quality Audit craftbook/template, score every roster source against the month's briefs only, and write report.md in this task's own artifacts working folder. No live feeds, services, or outside data — the seeded briefs are the whole record.",
13
13
  "files": [
14
14
  {
15
15
  "path": "sources.json",
@@ -35,30 +35,27 @@
35
35
  "worker": {
36
36
  "name": "Isa",
37
37
  "role": "Editor"
38
- },
39
- "craftbookParams": {
40
- "workPath": "tasks/eval"
41
38
  }
42
39
  },
43
40
  "mocks": [],
44
41
  "success": {
45
- "summary": "tasks/eval/report.md carries a verdict table covering all five roster sources, verdicts from the fixed set with cited evidence: The Daily Splash's corrections and Materials Weekly's silence both show up in their rows.",
42
+ "summary": "report.md in this task's own artifacts working folder carries a verdict table covering all five roster sources, verdicts from the fixed set with cited evidence: The Daily Splash's corrections and Materials Weekly's silence both show up in their rows.",
46
43
  "deliverables": [
47
44
  {
48
- "path": "tasks/eval/report.md",
45
+ "path": "{{task.dir}}/report.md",
49
46
  "kind": "markdown-report",
50
47
  "minBytes": 900,
51
48
  "checks": [
52
49
  {
53
50
  "kind": "contains",
54
- "file": "tasks/eval/report.md",
51
+ "file": "{{task.dir}}/report.md",
55
52
  "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
56
53
  "flags": "i",
57
54
  "artifact": true
58
55
  },
59
56
  {
60
57
  "kind": "tableShape",
61
- "file": "tasks/eval/report.md",
58
+ "file": "{{task.dir}}/report.md",
62
59
  "requiredColumns": [
63
60
  "Source",
64
61
  "Verdict"
@@ -68,7 +65,7 @@
68
65
  },
69
66
  {
70
67
  "kind": "contains",
71
- "file": "tasks/eval/report.md",
68
+ "file": "{{task.dir}}/report.md",
72
69
  "pattern": "keep",
73
70
  "flags": "i",
74
71
  "label": "verdicts use the fixed set — keep",
@@ -76,7 +73,7 @@
76
73
  },
77
74
  {
78
75
  "kind": "contains",
79
- "file": "tasks/eval/report.md",
76
+ "file": "{{task.dir}}/report.md",
80
77
  "pattern": "drop",
81
78
  "flags": "i",
82
79
  "label": "verdicts use the fixed set — drop",
@@ -84,7 +81,7 @@
84
81
  },
85
82
  {
86
83
  "kind": "contains",
87
- "file": "tasks/eval/report.md",
84
+ "file": "{{task.dir}}/report.md",
88
85
  "pattern": "Newsline",
89
86
  "flags": "i",
90
87
  "label": "every roster source covered — Newsline",
@@ -92,7 +89,7 @@
92
89
  },
93
90
  {
94
91
  "kind": "contains",
95
- "file": "tasks/eval/report.md",
92
+ "file": "{{task.dir}}/report.md",
96
93
  "pattern": "Capitol Wire",
97
94
  "flags": "i",
98
95
  "label": "every roster source covered — Capitol Wire",
@@ -100,7 +97,7 @@
100
97
  },
101
98
  {
102
99
  "kind": "contains",
103
- "file": "tasks/eval/report.md",
100
+ "file": "{{task.dir}}/report.md",
104
101
  "pattern": "Harbor Bulletin",
105
102
  "flags": "i",
106
103
  "label": "every roster source covered — Harbor Bulletin",
@@ -108,7 +105,7 @@
108
105
  },
109
106
  {
110
107
  "kind": "contains",
111
- "file": "tasks/eval/report.md",
108
+ "file": "{{task.dir}}/report.md",
112
109
  "pattern": "Daily Splash",
113
110
  "flags": "i",
114
111
  "label": "every roster source covered — The Daily Splash",
@@ -116,7 +113,7 @@
116
113
  },
117
114
  {
118
115
  "kind": "contains",
119
- "file": "tasks/eval/report.md",
116
+ "file": "{{task.dir}}/report.md",
120
117
  "pattern": "Materials Weekly",
121
118
  "flags": "i",
122
119
  "label": "every roster source covered — Materials Weekly",
@@ -124,7 +121,7 @@
124
121
  },
125
122
  {
126
123
  "kind": "judge",
127
- "file": "tasks/eval/report.md",
124
+ "file": "{{task.dir}}/report.md",
128
125
  "rubric": "Every verdict cites at least one concrete example from the month's briefs or explicitly notes the source went unused. The Daily Splash's repeated corrections and Materials Weekly's total silence are both reflected in their verdicts.",
129
126
  "sourceFiles": [
130
127
  "briefs/2026-06-05.md",
@@ -142,7 +139,7 @@
142
139
  },
143
140
  "rubric": {
144
141
  "artifact": {
145
- "path": "tasks/eval/report.md",
142
+ "path": "{{task.dir}}/report.md",
146
143
  "kind": "markdown"
147
144
  },
148
145
  "axes": [
@@ -103,14 +103,6 @@
103
103
  "kind": "sniff",
104
104
  "file": "query.sql",
105
105
  "sniff": "nonempty"
106
- },
107
- {
108
- "kind": "esmImports",
109
- "file": "query.sql"
110
- },
111
- {
112
- "kind": "sourceParses",
113
- "file": "query.sql"
114
106
  }
115
107
  ],
116
108
  "onReject": "query",
@@ -23,14 +23,11 @@
23
23
  "worker": {
24
24
  "name": "Coby",
25
25
  "role": "Event assistant"
26
- },
27
- "craftbookParams": {
28
- "workPath": "tasks/eval"
29
26
  }
30
27
  },
31
28
  "mocks": [],
32
29
  "success": {
33
- "summary": "letters/thank-you.md covers all seven givers and both helpers with personal detail each; tasks/eval/report.md states the coverage count with notes tracked.",
30
+ "summary": "letters/thank-you.md covers all seven givers and both helpers with personal detail each; report.md in this task's own artifacts working folder states the coverage count with notes tracked.",
34
31
  "deliverables": [
35
32
  {
36
33
  "path": "letters/thank-you.md",
@@ -86,19 +83,19 @@
86
83
  ]
87
84
  },
88
85
  {
89
- "path": "tasks/eval/report.md",
86
+ "path": "{{task.dir}}/report.md",
90
87
  "kind": "markdown-report",
91
88
  "minBytes": 600,
92
89
  "checks": [
93
90
  {
94
91
  "kind": "contains",
95
- "file": "tasks/eval/report.md",
92
+ "file": "{{task.dir}}/report.md",
96
93
  "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
97
94
  "artifact": true
98
95
  },
99
96
  {
100
97
  "kind": "contains",
101
- "file": "tasks/eval/report.md",
98
+ "file": "{{task.dir}}/report.md",
102
99
  "pattern": "sent|tracked",
103
100
  "flags": "i",
104
101
  "label": "tracking state recorded",
@@ -106,7 +103,7 @@
106
103
  },
107
104
  {
108
105
  "kind": "contains",
109
- "file": "tasks/eval/report.md",
106
+ "file": "{{task.dir}}/report.md",
110
107
  "pattern": "9|nine",
111
108
  "flags": "i",
112
109
  "label": "coverage count stated",
@@ -31,14 +31,11 @@
31
31
  "worker": {
32
32
  "name": "Bram",
33
33
  "role": "Assetsmid"
34
- },
35
- "craftbookParams": {
36
- "workPath": "tasks/eval"
37
34
  }
38
35
  },
39
36
  "mocks": [],
40
37
  "success": {
41
- "summary": "assets/tiles holds the forest batch named to the convention; assets/manifest.json accounts for every tile with unique ids and real paths; tasks/eval/report.md summarizes the batch.",
38
+ "summary": "assets/tiles holds the forest batch named to the convention; assets/manifest.json accounts for every tile with unique ids and real paths; report.md in this task's own artifacts working folder summarizes the batch.",
42
39
  "checks": [
43
40
  {
44
41
  "kind": "fileCount",
@@ -109,20 +106,20 @@
109
106
  ]
110
107
  },
111
108
  {
112
- "path": "tasks/eval/report.md",
109
+ "path": "{{task.dir}}/report.md",
113
110
  "kind": "markdown-report",
114
111
  "minBytes": 600,
115
112
  "checks": [
116
113
  {
117
114
  "kind": "contains",
118
- "file": "tasks/eval/report.md",
115
+ "file": "{{task.dir}}/report.md",
119
116
  "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
120
117
  "flags": "i",
121
118
  "artifact": true
122
119
  },
123
120
  {
124
121
  "kind": "contains",
125
- "file": "tasks/eval/report.md",
122
+ "file": "{{task.dir}}/report.md",
126
123
  "pattern": "tile",
127
124
  "flags": "i",
128
125
  "label": "the batch is summarized",
@@ -135,7 +132,7 @@
135
132
  },
136
133
  "rubric": {
137
134
  "artifact": {
138
- "path": "tasks/eval/report.md",
135
+ "path": "{{task.dir}}/report.md",
139
136
  "kind": "markdown"
140
137
  },
141
138
  "axes": [
@@ -19,14 +19,11 @@
19
19
  "worker": {
20
20
  "name": "Fenna",
21
21
  "role": "Study coach"
22
- },
23
- "craftbookParams": {
24
- "workPath": "tasks/eval"
25
22
  }
26
23
  },
27
24
  "mocks": [],
28
25
  "success": {
29
- "summary": "drill.html is a short interactive drill over only the record's weak material (intervals, key signatures); tasks/eval/report.md ranks the weak spots with numbers and schedules the follow-up.",
26
+ "summary": "drill.html is a short interactive drill over only the record's weak material (intervals, key signatures); report.md in this task's own artifacts working folder ranks the weak spots with numbers and schedules the follow-up.",
30
27
  "deliverables": [
31
28
  {
32
29
  "path": "drill.html",
@@ -68,20 +65,20 @@
68
65
  ]
69
66
  },
70
67
  {
71
- "path": "tasks/eval/report.md",
68
+ "path": "{{task.dir}}/report.md",
72
69
  "kind": "markdown-report",
73
70
  "minBytes": 800,
74
71
  "checks": [
75
72
  {
76
73
  "kind": "contains",
77
- "file": "tasks/eval/report.md",
74
+ "file": "{{task.dir}}/report.md",
78
75
  "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
79
76
  "flags": "i",
80
77
  "artifact": true
81
78
  },
82
79
  {
83
80
  "kind": "contains",
84
- "file": "tasks/eval/report.md",
81
+ "file": "{{task.dir}}/report.md",
85
82
  "pattern": "review|schedule|next",
86
83
  "flags": "i",
87
84
  "label": "follow-up scheduled",
@@ -89,7 +86,7 @@
89
86
  },
90
87
  {
91
88
  "kind": "contains",
92
- "file": "tasks/eval/report.md",
89
+ "file": "{{task.dir}}/report.md",
93
90
  "pattern": "\\d",
94
91
  "label": "the evidence has numbers",
95
92
  "artifact": true
@@ -8,8 +8,8 @@
8
8
  "prompt": "saturday garden time — whats due this week? walked through and the tomatos have some yellow leaves, two zuchini ready. write it up",
9
9
  "setup": {
10
10
  "projectName": "Garden Almanac — Weekly Walkthrough Eval",
11
- "about": "Self-contained eval project for weekly-walkthrough. The garden lives at garden.json in the workspace (beds, plantings, season parameters) and the almanac's journal at journal.json. The weekly page goes to tasks/eval/report.md.",
12
- "missionObjectives": "Use the Weekly Garden Walkthrough craftbook/template, derive the week from the seeded garden.json, log the owner's reported observations to journal.json, and write tasks/eval/report.md — no network calls, real credentials, or live services.",
11
+ "about": "Self-contained eval project for weekly-walkthrough. The garden lives at garden.json in the workspace (beds, plantings, season parameters) and the almanac's journal at journal.json. The weekly page goes to report.md in this task's own artifacts working folder.",
12
+ "missionObjectives": "Use the Weekly Garden Walkthrough craftbook/template, derive the week from the seeded garden.json, log the owner's reported observations to journal.json, and write report.md in this task's own artifacts working folder — no network calls, real credentials, or live services.",
13
13
  "files": [
14
14
  {
15
15
  "path": "garden.json",
@@ -23,58 +23,55 @@
23
23
  "worker": {
24
24
  "name": "Wim",
25
25
  "role": "Gardener"
26
- },
27
- "craftbookParams": {
28
- "workPath": "tasks/eval"
29
26
  }
30
27
  },
31
28
  "mocks": [],
32
29
  "success": {
33
- "summary": "tasks/eval/report.md covers all four beds with season-grounded tasks, the yellow-leaf and zucchini observations land in the journal, and next week is seeded.",
30
+ "summary": "report.md in this task's own artifacts working folder covers all four beds with season-grounded tasks, the yellow-leaf and zucchini observations land in the journal, and next week is seeded.",
34
31
  "deliverables": [
35
32
  {
36
- "path": "tasks/eval/report.md",
33
+ "path": "{{task.dir}}/report.md",
37
34
  "kind": "markdown-report",
38
35
  "minBytes": 700,
39
36
  "checks": [
40
37
  {
41
38
  "kind": "contains",
42
- "file": "tasks/eval/report.md",
39
+ "file": "{{task.dir}}/report.md",
43
40
  "pattern": "(?:^|\\n)#{1,3}\\s+\\S",
44
41
  "flags": "i",
45
42
  "artifact": true
46
43
  },
47
44
  {
48
45
  "kind": "contains",
49
- "file": "tasks/eval/report.md",
46
+ "file": "{{task.dir}}/report.md",
50
47
  "pattern": "North Bed",
51
48
  "label": "North Bed covered",
52
49
  "artifact": true
53
50
  },
54
51
  {
55
52
  "kind": "contains",
56
- "file": "tasks/eval/report.md",
53
+ "file": "{{task.dir}}/report.md",
57
54
  "pattern": "Back Fence",
58
55
  "label": "Back Fence Bed covered",
59
56
  "artifact": true
60
57
  },
61
58
  {
62
59
  "kind": "contains",
63
- "file": "tasks/eval/report.md",
60
+ "file": "{{task.dir}}/report.md",
64
61
  "pattern": "Herb Spiral",
65
62
  "label": "Herb Spiral covered",
66
63
  "artifact": true
67
64
  },
68
65
  {
69
66
  "kind": "contains",
70
- "file": "tasks/eval/report.md",
67
+ "file": "{{task.dir}}/report.md",
71
68
  "pattern": "Berry Corner",
72
69
  "label": "Berry Corner covered",
73
70
  "artifact": true
74
71
  },
75
72
  {
76
73
  "kind": "contains",
77
- "file": "tasks/eval/report.md",
74
+ "file": "{{task.dir}}/report.md",
78
75
  "pattern": "yellow",
79
76
  "flags": "i",
80
77
  "label": "the reported yellow leaves are captured",
@@ -82,7 +79,7 @@
82
79
  },
83
80
  {
84
81
  "kind": "contains",
85
- "file": "tasks/eval/report.md",
82
+ "file": "{{task.dir}}/report.md",
86
83
  "pattern": "zucchini",
87
84
  "flags": "i",
88
85
  "label": "the zucchini harvest is captured",
@@ -90,7 +87,7 @@
90
87
  },
91
88
  {
92
89
  "kind": "contains",
93
- "file": "tasks/eval/report.md",
90
+ "file": "{{task.dir}}/report.md",
94
91
  "pattern": "next week",
95
92
  "flags": "i",
96
93
  "label": "next week seeded",
@@ -120,7 +117,7 @@
120
117
  },
121
118
  "rubric": {
122
119
  "artifact": {
123
- "path": "tasks/eval/report.md",
120
+ "path": "{{task.dir}}/report.md",
124
121
  "kind": "markdown"
125
122
  },
126
123
  "axes": [
@@ -0,0 +1,95 @@
1
+ {
2
+ "schemaVersion": 1,
3
+ "version": "2.6.0",
4
+ "releasedAt": "2026-09-06T20:39:25.705Z",
5
+ "tools": [
6
+ {
7
+ "name": "list_roots",
8
+ "description": "Call first when durable local output is requested. Lists opaque startup-granted roots; if none is write-enabled, save_artifact cannot publish a file and the MCP server must be restarted with --allow-write."
9
+ },
10
+ {
11
+ "name": "get_conversion_report",
12
+ "description": "Retrieve the original bounded diagnostics, applied options, fidelity, provenance, and source-asset manifest for a conversion-backed session artifact."
13
+ },
14
+ {
15
+ "name": "convert_document",
16
+ "description": "Convert plain text, Markdown, bundles, or linked-registry inputs directly into one or more immutable artifacts. Plain Markdown needs no preflight or annotations; valid Squisq annotations are optional layout hints. For PPTX, heading-based slide boundaries do not need --- separators. Use save_artifact only for durable filesystem output."
17
+ },
18
+ {
19
+ "name": "create_document_bundle",
20
+ "description": "Stage Markdown plus authority-scoped assets as a reusable immutable DBK artifact when assets must travel with the document or the same draft will be passed to two or more inspect, preview, or convert calls. Pass its artifact URI instead of repeating the Markdown."
21
+ },
22
+ {
23
+ "name": "save_artifact",
24
+ "description": "Materialize an immutable artifact below a configured write root. Creation is no-replace; replacement requires the current SHA-256."
25
+ },
26
+ {
27
+ "name": "inspect_document",
28
+ "description": "Inspect bounded semantic structure, block provenance, assets, metadata, theme, and diagnostics when the user asks for document analysis. Inspection is never required before conversion."
29
+ },
30
+ {
31
+ "name": "compare_documents",
32
+ "description": "Compare two supported documents semantically and report text, structure, table, media, metadata, and theme retention."
33
+ },
34
+ {
35
+ "name": "preview_document",
36
+ "description": "Render bounded visual previews as immutable image artifacts and report previewBasis. Markdown/DBK use source-render, imported document artifacts use reconstructed-import, and MP4/GIF sources use a native-extracted first-frame JPEG. Supports pagination and protocol progress/cancellation."
37
+ },
38
+ {
39
+ "name": "get_authoring_context",
40
+ "description": "Optionally discover target capabilities, safe defaults, semantically described themes and Squisq Summarize styles, and exact starter annotation examples. Use these descriptions to choose for the user rather than presenting raw ids. Plain Markdown can be converted without calling this tool."
41
+ },
42
+ {
43
+ "name": "list_templates",
44
+ "description": "List Squisq authoring templates agents can use in Markdown annotations."
45
+ },
46
+ {
47
+ "name": "describe_template",
48
+ "description": "Describe one Squisq template and its exact Markdown annotation inputs."
49
+ },
50
+ {
51
+ "name": "recommend_templates",
52
+ "description": "Profile each bounded document block with the linked Squisq recommender and return content-compatible template candidates."
53
+ },
54
+ {
55
+ "name": "describe_theme",
56
+ "description": "Describe one built-in or document-scoped custom Squisq theme before conversion."
57
+ },
58
+ {
59
+ "name": "infer_theme_from_file",
60
+ "description": "Infer a reusable Squisq theme and optional custom layout summaries from a DOCX, PPTX, or XLSX file/artifact."
61
+ },
62
+ {
63
+ "name": "inspect_pptx_layouts",
64
+ "description": "Inspect PowerPoint slide masters/layouts and show built-in matches or inferred custom-template candidates."
65
+ },
66
+ {
67
+ "name": "apply_inferred_theme",
68
+ "description": "Infer a theme from a DOCX, PPTX, or XLSX reference and embed it, optional custom layouts, and all source assets into a reusable DBK artifact."
69
+ },
70
+ {
71
+ "name": "list_formats",
72
+ "description": "List every format in the linked Squisq registry and whether DocBlocks can import it through document tools or export it through convert_document."
73
+ },
74
+ {
75
+ "name": "list_themes",
76
+ "description": "List the linked Squisq built-in visual themes."
77
+ },
78
+ {
79
+ "name": "list_transform_styles",
80
+ "description": "List the linked Squisq transform styles accepted by convert_document."
81
+ }
82
+ ],
83
+ "runtime": {
84
+ "kind": "npm-package",
85
+ "package": "@bendyline/docblocks-cli",
86
+ "version": "2.6.0",
87
+ "sha256": "e60e5924f89a89ab339810ee18b5a7db02466f697d0d8bedc91df5c722ad1935",
88
+ "entry": "dist/bin.js",
89
+ "args": [
90
+ "mcp"
91
+ ],
92
+ "envHints": []
93
+ },
94
+ "config": []
95
+ }
@@ -1 +1 @@
1
- {"schemaVersion":1,"kind":"toolset","count":3,"entries":[{"manifest":{"schemaVersion":1,"kind":"toolset","id":"docblocks","name":"DocBlocks Documents","description":"Create real documents and rendered media from markdown — Word (DOCX), PowerPoint (PPTX), PDF, Excel (XLSX), EPUB, HTML, MP4, animated GIF, and dashboard PNG images — via the DocBlocks MCP server. Artifact-first: conversions produce immutable session artifacts a gezel can inspect or preview before saving the finished file into the project's artifacts drawer. Includes content-aware templates, themes, conversion reports, PPTX layout inference, and single-image dashboards rendered from short markdown block documents.","tags":["documents","docx","pptx","pdf","powerpoint","word","markdown","export","presentations","mp4","gif","png","dashboard","recommended"],"maintainer":{"name":"Bendyline","url":"https://docblocks.com"},"license":"MIT","version":"2.5.0","releasedAt":"2026-08-26T04:53:48.181Z","runtime":{"kind":"npm-package","package":"@bendyline/docblocks-cli","version":"2.5.0","sha256":"58261b9f28195618f59fc39e6429c55ca8bdff9f213f97f3e183b09839f2f8e5","entry":"dist/bin.js","args":["mcp"],"envHints":[]},"tools":[{"name":"list_roots","description":"Call first when durable local output is requested. Lists opaque startup-granted roots; if none is write-enabled, save_artifact cannot publish a file and the MCP server must be restarted with --allow-write."},{"name":"get_conversion_report","description":"Retrieve the original bounded diagnostics, applied options, fidelity, provenance, and source-asset manifest for a conversion-backed session artifact."},{"name":"convert_document","description":"Convert plain text, Markdown, bundles, or linked-registry inputs directly into one or more immutable artifacts. Plain Markdown needs no preflight or annotations; valid Squisq annotations are optional layout hints. For PPTX, heading-based slide boundaries do not need --- separators. Use save_artifact only for durable filesystem output."},{"name":"create_document_bundle","description":"Stage Markdown plus authority-scoped assets as a reusable immutable DBK artifact when assets must travel with the document or the same draft will be passed to two or more inspect, preview, or convert calls. Pass its artifact URI instead of repeating the Markdown."},{"name":"save_artifact","description":"Materialize an immutable artifact below a configured write root. Creation is no-replace; replacement requires the current SHA-256."},{"name":"inspect_document","description":"Inspect bounded semantic structure, block provenance, assets, metadata, theme, and diagnostics when the user asks for document analysis. Inspection is never required before conversion."},{"name":"compare_documents","description":"Compare two supported documents semantically and report text, structure, table, media, metadata, and theme retention."},{"name":"preview_document","description":"Render bounded visual previews as immutable image artifacts and report previewBasis. Markdown/DBK use source-render, imported document artifacts use reconstructed-import, and MP4/GIF sources use a native-extracted first-frame JPEG. Supports pagination and protocol progress/cancellation."},{"name":"get_authoring_context","description":"Optionally discover target capabilities, safe defaults, semantically described themes and Squisq Summarize styles, and exact starter annotation examples. Use these descriptions to choose for the user rather than presenting raw ids. Plain Markdown can be converted without calling this tool."},{"name":"list_templates","description":"List Squisq authoring templates agents can use in Markdown annotations."},{"name":"describe_template","description":"Describe one Squisq template and its exact Markdown annotation inputs."},{"name":"recommend_templates","description":"Profile each bounded document block with the linked Squisq recommender and return content-compatible template candidates."},{"name":"describe_theme","description":"Describe one built-in or document-scoped custom Squisq theme before conversion."},{"name":"infer_theme_from_file","description":"Infer a reusable Squisq theme and optional custom layout summaries from a DOCX, PPTX, or XLSX file/artifact."},{"name":"inspect_pptx_layouts","description":"Inspect PowerPoint slide masters/layouts and show built-in matches or inferred custom-template candidates."},{"name":"apply_inferred_theme","description":"Infer a theme from a DOCX, PPTX, or XLSX reference and embed it, optional custom layouts, and all source assets into a reusable DBK artifact."},{"name":"list_formats","description":"List every format in the linked Squisq registry and whether DocBlocks can import it through document tools or export it through convert_document."},{"name":"list_themes","description":"List the linked Squisq built-in visual themes."},{"name":"list_transform_styles","description":"List the linked Squisq transform styles accepted by convert_document."}],"config":[],"availableVersions":["2.5.0","2.4.0","2.3.4","2.3.2","2.0.0"],"category":"content"}},{"manifest":{"schemaVersion":1,"kind":"toolset","id":"github","name":"GitHub","description":"Browse and act on GitHub repositories, issues, and pull requests via the official @modelcontextprotocol/server-github MCP server. Pair with a project's GitHub repo URL to give gezels real GitHub fluency.","tags":["github","git","pr","issues","code-review"],"maintainer":{"name":"Anthropic, PBC","url":"https://anthropic.com"},"license":"MIT","version":"0.1.0","releasedAt":"2026-04-16T00:00:00Z","runtime":{"kind":"npm-package","package":"@modelcontextprotocol/server-github","version":"2025.4.8","sha256":"1d5b1bca9305adf0c8055131f2286514c9bea6eb31100460899a1ed9ffece5c1","entry":"dist/index.js","args":[],"envHints":["GITHUB_PERSONAL_ACCESS_TOKEN"]},"tools":[{"name":"create_or_update_file","description":"Create or update a file in a repository."},{"name":"search_repositories","description":"Search for GitHub repositories."},{"name":"create_repository","description":"Create a new repository."},{"name":"get_file_contents","description":"Read the contents of a file in a repository."},{"name":"push_files","description":"Push multiple files in a single commit."},{"name":"create_issue","description":"Open a new issue."},{"name":"create_pull_request","description":"Open a new pull request."},{"name":"fork_repository","description":"Fork a repository."},{"name":"create_branch","description":"Create a branch."},{"name":"list_commits","description":"List commits on a branch."},{"name":"list_issues","description":"List issues in a repository."},{"name":"update_issue","description":"Update an existing issue."},{"name":"add_issue_comment","description":"Comment on an issue or PR."},{"name":"search_code","description":"Search code across GitHub."},{"name":"search_issues","description":"Search for issues and PRs."},{"name":"search_users","description":"Search GitHub users."},{"name":"get_issue","description":"Read an issue's details."},{"name":"get_pull_request","description":"Read a pull request's details."},{"name":"list_pull_requests","description":"List PRs in a repository."},{"name":"create_pull_request_review","description":"Submit a review on a pull request."},{"name":"merge_pull_request","description":"Merge a pull request."},{"name":"get_pull_request_files","description":"List files changed in a PR."},{"name":"get_pull_request_status","description":"Get the status checks for a PR."},{"name":"update_pull_request_branch","description":"Update a PR branch from its base."},{"name":"get_pull_request_comments","description":"Read PR comments."},{"name":"get_pull_request_reviews","description":"Read PR reviews."}],"config":[{"id":"token","label":"Personal Access Token","description":"A GitHub PAT with `repo` scope (and `read:org` if you work with private orgs). Used both by the MCP server and by Gezel itself for cloning and fetching PR metadata.","type":"string","secret":true,"required":true,"multiline":false,"placeholder":"ghp_...","envVar":"GITHUB_PERSONAL_ACCESS_TOKEN"}],"availableVersions":["0.1.0"],"category":"dev-tools"}},{"manifest":{"schemaVersion":1,"kind":"toolset","id":"web-search","name":"Web Search (example)","description":"Placeholder example — wires a gezel up to an HTTP MCP server that exposes web search tools. Replace the URL with your own server; this entry is here to exercise the toolset install path.","tags":["web","search","example"],"maintainer":{"name":"Gezel"},"license":"MIT","version":"0.1.0","releasedAt":"2026-04-14T00:00:00Z","runtime":{"kind":"http-mcp","url":"https://mcp.example.com/web-search","transport":"streamable-http","authHint":"bearer","envHints":["WEB_SEARCH_API_KEY"]},"tools":[{"name":"search","description":"Run a web search and return ranked results."},{"name":"fetch_url","description":"Fetch the contents of a public URL."}],"config":[],"availableVersions":["0.1.0"],"category":"search"}}]}
1
+ {"schemaVersion":1,"kind":"toolset","count":3,"entries":[{"manifest":{"schemaVersion":1,"kind":"toolset","id":"docblocks","name":"DocBlocks Documents","description":"Create real documents and rendered media from markdown — Word (DOCX), PowerPoint (PPTX), PDF, Excel (XLSX), EPUB, HTML, MP4, animated GIF, and dashboard PNG images — via the DocBlocks MCP server. Artifact-first: conversions produce immutable session artifacts a gezel can inspect or preview before saving the finished file into the project's artifacts drawer. Includes content-aware templates, themes, conversion reports, PPTX layout inference, and single-image dashboards rendered from short markdown block documents.","tags":["documents","docx","pptx","pdf","powerpoint","word","markdown","export","presentations","mp4","gif","png","dashboard","recommended"],"maintainer":{"name":"Bendyline","url":"https://docblocks.com"},"license":"MIT","version":"2.6.0","releasedAt":"2026-09-06T20:39:25.705Z","runtime":{"kind":"npm-package","package":"@bendyline/docblocks-cli","version":"2.6.0","sha256":"e60e5924f89a89ab339810ee18b5a7db02466f697d0d8bedc91df5c722ad1935","entry":"dist/bin.js","args":["mcp"],"envHints":[]},"tools":[{"name":"list_roots","description":"Call first when durable local output is requested. Lists opaque startup-granted roots; if none is write-enabled, save_artifact cannot publish a file and the MCP server must be restarted with --allow-write."},{"name":"get_conversion_report","description":"Retrieve the original bounded diagnostics, applied options, fidelity, provenance, and source-asset manifest for a conversion-backed session artifact."},{"name":"convert_document","description":"Convert plain text, Markdown, bundles, or linked-registry inputs directly into one or more immutable artifacts. Plain Markdown needs no preflight or annotations; valid Squisq annotations are optional layout hints. For PPTX, heading-based slide boundaries do not need --- separators. Use save_artifact only for durable filesystem output."},{"name":"create_document_bundle","description":"Stage Markdown plus authority-scoped assets as a reusable immutable DBK artifact when assets must travel with the document or the same draft will be passed to two or more inspect, preview, or convert calls. Pass its artifact URI instead of repeating the Markdown."},{"name":"save_artifact","description":"Materialize an immutable artifact below a configured write root. Creation is no-replace; replacement requires the current SHA-256."},{"name":"inspect_document","description":"Inspect bounded semantic structure, block provenance, assets, metadata, theme, and diagnostics when the user asks for document analysis. Inspection is never required before conversion."},{"name":"compare_documents","description":"Compare two supported documents semantically and report text, structure, table, media, metadata, and theme retention."},{"name":"preview_document","description":"Render bounded visual previews as immutable image artifacts and report previewBasis. Markdown/DBK use source-render, imported document artifacts use reconstructed-import, and MP4/GIF sources use a native-extracted first-frame JPEG. Supports pagination and protocol progress/cancellation."},{"name":"get_authoring_context","description":"Optionally discover target capabilities, safe defaults, semantically described themes and Squisq Summarize styles, and exact starter annotation examples. Use these descriptions to choose for the user rather than presenting raw ids. Plain Markdown can be converted without calling this tool."},{"name":"list_templates","description":"List Squisq authoring templates agents can use in Markdown annotations."},{"name":"describe_template","description":"Describe one Squisq template and its exact Markdown annotation inputs."},{"name":"recommend_templates","description":"Profile each bounded document block with the linked Squisq recommender and return content-compatible template candidates."},{"name":"describe_theme","description":"Describe one built-in or document-scoped custom Squisq theme before conversion."},{"name":"infer_theme_from_file","description":"Infer a reusable Squisq theme and optional custom layout summaries from a DOCX, PPTX, or XLSX file/artifact."},{"name":"inspect_pptx_layouts","description":"Inspect PowerPoint slide masters/layouts and show built-in matches or inferred custom-template candidates."},{"name":"apply_inferred_theme","description":"Infer a theme from a DOCX, PPTX, or XLSX reference and embed it, optional custom layouts, and all source assets into a reusable DBK artifact."},{"name":"list_formats","description":"List every format in the linked Squisq registry and whether DocBlocks can import it through document tools or export it through convert_document."},{"name":"list_themes","description":"List the linked Squisq built-in visual themes."},{"name":"list_transform_styles","description":"List the linked Squisq transform styles accepted by convert_document."}],"config":[],"availableVersions":["2.6.0","2.5.0","2.4.0","2.3.4","2.3.2","2.0.0"],"category":"content"}},{"manifest":{"schemaVersion":1,"kind":"toolset","id":"github","name":"GitHub","description":"Browse and act on GitHub repositories, issues, and pull requests via the official @modelcontextprotocol/server-github MCP server. Pair with a project's GitHub repo URL to give gezels real GitHub fluency.","tags":["github","git","pr","issues","code-review"],"maintainer":{"name":"Anthropic, PBC","url":"https://anthropic.com"},"license":"MIT","version":"0.1.0","releasedAt":"2026-04-16T00:00:00Z","runtime":{"kind":"npm-package","package":"@modelcontextprotocol/server-github","version":"2025.4.8","sha256":"1d5b1bca9305adf0c8055131f2286514c9bea6eb31100460899a1ed9ffece5c1","entry":"dist/index.js","args":[],"envHints":["GITHUB_PERSONAL_ACCESS_TOKEN"]},"tools":[{"name":"create_or_update_file","description":"Create or update a file in a repository."},{"name":"search_repositories","description":"Search for GitHub repositories."},{"name":"create_repository","description":"Create a new repository."},{"name":"get_file_contents","description":"Read the contents of a file in a repository."},{"name":"push_files","description":"Push multiple files in a single commit."},{"name":"create_issue","description":"Open a new issue."},{"name":"create_pull_request","description":"Open a new pull request."},{"name":"fork_repository","description":"Fork a repository."},{"name":"create_branch","description":"Create a branch."},{"name":"list_commits","description":"List commits on a branch."},{"name":"list_issues","description":"List issues in a repository."},{"name":"update_issue","description":"Update an existing issue."},{"name":"add_issue_comment","description":"Comment on an issue or PR."},{"name":"search_code","description":"Search code across GitHub."},{"name":"search_issues","description":"Search for issues and PRs."},{"name":"search_users","description":"Search GitHub users."},{"name":"get_issue","description":"Read an issue's details."},{"name":"get_pull_request","description":"Read a pull request's details."},{"name":"list_pull_requests","description":"List PRs in a repository."},{"name":"create_pull_request_review","description":"Submit a review on a pull request."},{"name":"merge_pull_request","description":"Merge a pull request."},{"name":"get_pull_request_files","description":"List files changed in a PR."},{"name":"get_pull_request_status","description":"Get the status checks for a PR."},{"name":"update_pull_request_branch","description":"Update a PR branch from its base."},{"name":"get_pull_request_comments","description":"Read PR comments."},{"name":"get_pull_request_reviews","description":"Read PR reviews."}],"config":[{"id":"token","label":"Personal Access Token","description":"A GitHub PAT with `repo` scope (and `read:org` if you work with private orgs). Used both by the MCP server and by Gezel itself for cloning and fetching PR metadata.","type":"string","secret":true,"required":true,"multiline":false,"placeholder":"ghp_...","envVar":"GITHUB_PERSONAL_ACCESS_TOKEN"}],"availableVersions":["0.1.0"],"category":"dev-tools"}},{"manifest":{"schemaVersion":1,"kind":"toolset","id":"web-search","name":"Web Search (example)","description":"Placeholder example — wires a gezel up to an HTTP MCP server that exposes web search tools. Replace the URL with your own server; this entry is here to exercise the toolset install path.","tags":["web","search","example"],"maintainer":{"name":"Gezel"},"license":"MIT","version":"0.1.0","releasedAt":"2026-04-14T00:00:00Z","runtime":{"kind":"http-mcp","url":"https://mcp.example.com/web-search","transport":"streamable-http","authHint":"bearer","envHints":["WEB_SEARCH_API_KEY"]},"tools":[{"name":"search","description":"Run a web search and return ranked results."},{"name":"fetch_url","description":"Fetch the contents of a public URL."}],"config":[],"availableVersions":["0.1.0"],"category":"search"}}]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bendyline/gilde",
3
- "version": "0.1.57",
3
+ "version": "0.1.59",
4
4
  "description": "The gilde catalog: model manifests, toolsets, craftbooks, roles, and project types for gezel.",
5
5
  "license": "MIT",
6
6
  "private": false,