@bendyline/gilde 0.1.71 → 0.1.73
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.3/craftbook.json +604 -0
- package/data/craftbook-templates/ap/apply-review-findings/versions/1.0.3/test.json +290 -0
- package/data/craftbook-templates/co/code-review/versions/1.0.2/craftbook.json +230 -0
- package/data/craftbook-templates/co/code-review/versions/1.0.2/test.json +252 -0
- package/data/craftbook-templates/co/content-accuracy-review/versions/1.1.0/craftbook.json +311 -0
- package/data/craftbook-templates/co/content-accuracy-review/versions/1.1.0/test.json +167 -0
- package/data/craftbook-templates/eb/ebook-compile/versions/1.1.0/craftbook.json +332 -0
- package/data/craftbook-templates/eb/ebook-compile/versions/1.1.0/test.json +111 -0
- package/data/craftbook-templates/fa/faq-from-docs/versions/1.1.0/craftbook.json +245 -0
- package/data/craftbook-templates/fa/faq-from-docs/versions/1.1.0/test.json +113 -0
- package/data/craftbook-templates/index.json +1 -1
- package/data/craftbook-templates/me/meeting-minutes/versions/1.1.0/craftbook.json +246 -0
- package/data/craftbook-templates/me/meeting-minutes/versions/1.1.0/test.json +113 -0
- package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.1.0/craftbook.json +245 -0
- package/data/craftbook-templates/me/meeting-notes-to-actions/versions/1.1.0/test.json +113 -0
- package/data/craftbook-templates/ni/nightly-fix-sweep/versions/1.0.2/craftbook.json +243 -0
- package/data/craftbook-templates/ni/nightly-fix-sweep/versions/1.0.2/test.json +120 -0
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.12/craftbook.json +581 -0
- package/data/craftbook-templates/po/powerpoint-deck/versions/1.7.12/test.json +240 -0
- package/data/craftbook-templates/pr/press-release/versions/1.0.4/craftbook.json +281 -0
- package/data/craftbook-templates/pr/press-release/versions/1.0.4/test.json +356 -0
- package/data/craftbook-templates/st/standup-summary/versions/1.1.0/craftbook.json +249 -0
- package/data/craftbook-templates/st/standup-summary/versions/1.1.0/test.json +113 -0
- package/data/craftbook-templates/we/weekly-review/versions/1.0.4/craftbook.json +223 -0
- package/data/craftbook-templates/we/weekly-review/versions/1.0.4/test.json +110 -0
- package/package.json +1 -1
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
{
|
|
2
|
+
"id": "faq-from-docs",
|
|
3
|
+
"name": "FAQ from Source Docs",
|
|
4
|
+
"description": "Build a grounded FAQ page by mining real source documents for the questions users actually ask, then writing tight, accurate answers traced back to the source: it first researches the corpus to extract candidate questions, dedupes and groups them, and ranks by likely frequency, then writes clear question-and-answer pairs where every answer is supported by the docs. Covers FAQ generation, help center questions, support docs, knowledge mining, common questions, and self-service content. Mining the source before writing is the point: a small model that derives questions from the actual docs avoids inventing FAQs nobody asks and answers the docs cannot support.\n\nIt works on the documents you choose when you launch it: a folder in this project, or files you pick from your computer.\n\nA gallery craftbook generated from an archetype spec. It runs\n`phase → (per-phase gate) → … → evaluate → (loop) → finish`. Each build\nphase that produces a checkable artifact is followed by a **runtime\ngate-checkpoint** — the runtime verifies the artifact and routes with no\nmodel turn, looping back to redo the phase on a miss. The final `evaluate`\nstep holds a static deliverable gate plus a reviewer QA pass. What it adds\nover the generic `build-loop`: a specialist role per phase, a\ndomain-correct ordering, and a concrete per-phase quality bar.\n\nDeliverables marked \"artifact\" land in the project's artifacts drawer (`write_artifact` / `read_artifact`), not the shipped workspace — review output is not product source.\n\nPhases:\n\n1. Mine the questions (researcher) — extract, dedupe, group, and rank candidate questions from the docs → gated on artifact `{{workPath}}/mine.md` (markdown-notes)\n2. Write the FAQ (copywriter) — write grounded Q&A pairs in scannable sections → gated on `faq.md` (markdown-doc)\n\nThe gates never advance with an unmet criterion, and loop back to the\nowning phase to fix named gaps.\n",
|
|
5
|
+
"entryStepId": "mine",
|
|
6
|
+
"triggers": [
|
|
7
|
+
"create an faq",
|
|
8
|
+
"faq from docs",
|
|
9
|
+
"generate help questions",
|
|
10
|
+
"common questions page",
|
|
11
|
+
"support faq"
|
|
12
|
+
],
|
|
13
|
+
"paramSchema": {
|
|
14
|
+
"type": "object",
|
|
15
|
+
"required": [
|
|
16
|
+
"source"
|
|
17
|
+
],
|
|
18
|
+
"properties": {
|
|
19
|
+
"source": {
|
|
20
|
+
"type": "string",
|
|
21
|
+
"title": "Source documents",
|
|
22
|
+
"description": "The documents the FAQ is drawn from. A folder in this project, or files you pick from your computer.",
|
|
23
|
+
"input": {
|
|
24
|
+
"kind": "folder",
|
|
25
|
+
"accept": [
|
|
26
|
+
".md",
|
|
27
|
+
".markdown",
|
|
28
|
+
".txt",
|
|
29
|
+
".html",
|
|
30
|
+
".htm",
|
|
31
|
+
".docx",
|
|
32
|
+
".pdf"
|
|
33
|
+
]
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
"workPath": {
|
|
37
|
+
"type": "string",
|
|
38
|
+
"title": "Working folder",
|
|
39
|
+
"description": "Per-task working folder in the artifacts drawer. Defaults to this task's own folder so runs never collide; override with a stable name when you deliberately want runs to share files.",
|
|
40
|
+
"default": "{{task.dir}}"
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
"steps": [
|
|
45
|
+
{
|
|
46
|
+
"id": "mine",
|
|
47
|
+
"name": "Mine the questions",
|
|
48
|
+
"description": "extract, dedupe, group, and rank candidate questions from the docs",
|
|
49
|
+
"prompt": "1) Read every file of the `source` input; its complete list is `{{task.dir}}/inputs/source.json`. 2) Extract every implicit and explicit question the docs answer — phrase each as a real user would ask it ('How do I reset my password?'), not as a doc heading. 3) Dedupe near-identical questions and group them into 3-6 topical sections. 4) Rank questions within each section by likely frequency/importance. 5) For each kept question, note the source location (file + section/anchor) that supports the answer, so the writer can ground it. Write an acceptance-criteria checklist (e.g. 'every question is answerable from the docs'; 'questions phrased in user language'; 'grouped into clear sections'; 'no fabricated questions or answers'; 'each Q maps to a source'). Use write_task_note for the question bank with sources + checklist, and write the same to the produces path. No final answers yet.\n\nThe deliverable `{{workPath}}/mine.md` lands in the project's artifacts drawer — write it with `write_artifact` and read it back with `read_artifact`; the shipped workspace stays untouched.",
|
|
50
|
+
"suggestedRole": "researcher",
|
|
51
|
+
"advanceWhen": {
|
|
52
|
+
"file": "{{workPath}}/mine.md",
|
|
53
|
+
"minBytes": 1,
|
|
54
|
+
"sniff": "nonempty",
|
|
55
|
+
"artifact": true
|
|
56
|
+
},
|
|
57
|
+
"gate": {
|
|
58
|
+
"at": "completion",
|
|
59
|
+
"checks": [
|
|
60
|
+
{
|
|
61
|
+
"kind": "minBytes",
|
|
62
|
+
"file": "{{workPath}}/mine.md",
|
|
63
|
+
"bytes": 120,
|
|
64
|
+
"artifact": true
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
"kind": "sniff",
|
|
68
|
+
"file": "{{workPath}}/mine.md",
|
|
69
|
+
"sniff": "nonempty",
|
|
70
|
+
"artifact": true
|
|
71
|
+
}
|
|
72
|
+
],
|
|
73
|
+
"onReject": "mine",
|
|
74
|
+
"maxAttempts": 3
|
|
75
|
+
},
|
|
76
|
+
"next": "write",
|
|
77
|
+
"toolPolicy": {
|
|
78
|
+
"disallowBuiltinToolsets": [
|
|
79
|
+
"ai-apps",
|
|
80
|
+
"archives",
|
|
81
|
+
"audio",
|
|
82
|
+
"browser-automation",
|
|
83
|
+
"code-execution",
|
|
84
|
+
"craftbooks",
|
|
85
|
+
"data-tables",
|
|
86
|
+
"entity-intel",
|
|
87
|
+
"git",
|
|
88
|
+
"image-intel",
|
|
89
|
+
"images",
|
|
90
|
+
"role-delegation",
|
|
91
|
+
"role-delegation-escalation",
|
|
92
|
+
"security-intel",
|
|
93
|
+
"team-management",
|
|
94
|
+
"videos",
|
|
95
|
+
"workspace-fs-write"
|
|
96
|
+
],
|
|
97
|
+
"outputMedium": "artifact",
|
|
98
|
+
"additionalOutputMedia": [
|
|
99
|
+
"task-note"
|
|
100
|
+
]
|
|
101
|
+
},
|
|
102
|
+
"consumes": [
|
|
103
|
+
{
|
|
104
|
+
"file": "{{task.dir}}/inputs/source.json",
|
|
105
|
+
"artifact": true
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"id": "write",
|
|
111
|
+
"name": "Write the FAQ",
|
|
112
|
+
"description": "write grounded Q&A pairs in scannable sections",
|
|
113
|
+
"prompt": "First open `{{workPath}}/mine.md` with `read_artifact`: it is the earlier work this step builds on. Write the FAQ from the mined question bank. 1) Organize into the grouped sections, each with an H2 header. 2) For each question, write it as an H3 (or bold) line, then a concise answer (1-4 sentences) drawn strictly from the source docs — no speculation beyond what the docs support. 3) Where a doc has step-by-step detail, render the answer as a short numbered list. 4) Keep a consistent, plain, reassuring support voice. 5) Add a short intro line at the top and, where useful, a 'see also' link to the source doc. Output GitHub-flavored markdown. Save to the produces path and note total Q&A count and section count.",
|
|
114
|
+
"suggestedRole": "copywriter",
|
|
115
|
+
"advanceWhen": {
|
|
116
|
+
"file": "faq.md",
|
|
117
|
+
"minBytes": 1,
|
|
118
|
+
"sniff": "nonempty"
|
|
119
|
+
},
|
|
120
|
+
"gate": {
|
|
121
|
+
"at": "completion",
|
|
122
|
+
"checks": [
|
|
123
|
+
{
|
|
124
|
+
"kind": "minBytes",
|
|
125
|
+
"file": "faq.md",
|
|
126
|
+
"bytes": 500
|
|
127
|
+
}
|
|
128
|
+
],
|
|
129
|
+
"scripts": [
|
|
130
|
+
{
|
|
131
|
+
"name": "checkContains",
|
|
132
|
+
"scope": "standard",
|
|
133
|
+
"inputs": {
|
|
134
|
+
"file": "faq.md",
|
|
135
|
+
"pattern": "(?:^|\\n)#{1,3}\\s+\\S",
|
|
136
|
+
"flags": "i"
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
],
|
|
140
|
+
"onReject": "write",
|
|
141
|
+
"maxAttempts": 4
|
|
142
|
+
},
|
|
143
|
+
"next": "evaluate",
|
|
144
|
+
"toolPolicy": {
|
|
145
|
+
"disallowBuiltinToolsets": [
|
|
146
|
+
"ai-apps",
|
|
147
|
+
"archives",
|
|
148
|
+
"audio",
|
|
149
|
+
"browser-automation",
|
|
150
|
+
"code-execution",
|
|
151
|
+
"craftbooks",
|
|
152
|
+
"data-tables",
|
|
153
|
+
"entity-intel",
|
|
154
|
+
"git",
|
|
155
|
+
"image-intel",
|
|
156
|
+
"images",
|
|
157
|
+
"role-delegation",
|
|
158
|
+
"role-delegation-escalation",
|
|
159
|
+
"security-intel",
|
|
160
|
+
"team-management",
|
|
161
|
+
"videos",
|
|
162
|
+
"web"
|
|
163
|
+
],
|
|
164
|
+
"outputMedium": "workspace"
|
|
165
|
+
},
|
|
166
|
+
"consumes": [
|
|
167
|
+
{
|
|
168
|
+
"file": "{{workPath}}/mine.md",
|
|
169
|
+
"artifact": true
|
|
170
|
+
}
|
|
171
|
+
]
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
"id": "evaluate",
|
|
175
|
+
"name": "Evaluate",
|
|
176
|
+
"description": "Grade the deliverable against every acceptance criterion. All pass → finish; any fail → loop back and fix the gap.",
|
|
177
|
+
"prompt": "Read faq.md and cross-check against the mined question bank and the source docs. Check EACH criterion and write PASS/FAIL: (a) every answer is supported by the source docs (spot-check 4-5 against their cited source); (b) questions are phrased in natural user language; (c) Q&As are grouped into clear sections with headers; (d) no fabricated questions or unsupported answers; (e) answers are concise and consistently voiced. An FAQ with invented or unsupported answers FAILS — loop back to write and name the offending entries.\n\nThen route — this is the whole point of the loop:\n\n- **Every criterion PASSES →** call `advance_task_step({ ref, stepId: \"evaluate\", next: \"finish\" })`.\n- **Any criterion FAILS →** write the specific gaps to notes, then call `advance_task_step({ ref, stepId: \"evaluate\", next: \"write\" })` to loop back. The builder fixes exactly those gaps.\n\nNever route to `finish` while any criterion is unmet. The build phase's completion gate already blocked a grossly-incomplete deliverable; your job is the judgment an automated check cannot make (does it actually work, read well, look right). After ~3 unproductive loops, stop and report DONE_WITH_CONCERNS so the user can step in.",
|
|
178
|
+
"suggestedRole": "reviewer",
|
|
179
|
+
"consumes": [
|
|
180
|
+
{
|
|
181
|
+
"file": "faq.md"
|
|
182
|
+
}
|
|
183
|
+
],
|
|
184
|
+
"next": "write",
|
|
185
|
+
"toolPolicy": {
|
|
186
|
+
"disallowBuiltinToolsets": [
|
|
187
|
+
"ai-apps",
|
|
188
|
+
"archives",
|
|
189
|
+
"audio",
|
|
190
|
+
"browser-automation",
|
|
191
|
+
"code-execution",
|
|
192
|
+
"craftbooks",
|
|
193
|
+
"data-tables",
|
|
194
|
+
"entity-intel",
|
|
195
|
+
"git",
|
|
196
|
+
"image-intel",
|
|
197
|
+
"images",
|
|
198
|
+
"role-delegation",
|
|
199
|
+
"role-delegation-escalation",
|
|
200
|
+
"security-intel",
|
|
201
|
+
"team-management",
|
|
202
|
+
"videos",
|
|
203
|
+
"web",
|
|
204
|
+
"workspace-fs-write"
|
|
205
|
+
],
|
|
206
|
+
"outputMedium": "task-note"
|
|
207
|
+
}
|
|
208
|
+
},
|
|
209
|
+
{
|
|
210
|
+
"id": "finish",
|
|
211
|
+
"name": "Finish",
|
|
212
|
+
"description": "All acceptance criteria met. Stamp a short summary and report DONE.",
|
|
213
|
+
"prompt": "Every acceptance criterion passed. Write a one-paragraph DONE summary to task notes via `write_task_note`: what was built, the deliverable path(s), and a one-line confirmation that each criterion is met. Then report DONE.",
|
|
214
|
+
"suggestedRole": "developer",
|
|
215
|
+
"terminal": true,
|
|
216
|
+
"toolPolicy": {
|
|
217
|
+
"disallowBuiltinToolsets": [
|
|
218
|
+
"ai-apps",
|
|
219
|
+
"archives",
|
|
220
|
+
"artifacts",
|
|
221
|
+
"audio",
|
|
222
|
+
"browser-automation",
|
|
223
|
+
"code-execution",
|
|
224
|
+
"craftbooks",
|
|
225
|
+
"data-tables",
|
|
226
|
+
"entity-intel",
|
|
227
|
+
"git",
|
|
228
|
+
"image-intel",
|
|
229
|
+
"images",
|
|
230
|
+
"role-delegation",
|
|
231
|
+
"role-delegation-escalation",
|
|
232
|
+
"security-intel",
|
|
233
|
+
"team-management",
|
|
234
|
+
"videos",
|
|
235
|
+
"web",
|
|
236
|
+
"workspace-fs-write"
|
|
237
|
+
],
|
|
238
|
+
"outputMedium": "task-note"
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
],
|
|
242
|
+
"version": "1.1.0",
|
|
243
|
+
"releasedAt": "2026-09-24T12:00:00Z",
|
|
244
|
+
"minGezelVersion": "1.26267"
|
|
245
|
+
}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
{
|
|
2
|
+
"schemaVersion": 1,
|
|
3
|
+
"title": "FAQ from Source Docs smoke eval",
|
|
4
|
+
"objective": "Self-contained smoke eval for the FAQ from Source Docs craftbook using the corpus generic harness.",
|
|
5
|
+
"tags": [
|
|
6
|
+
"corpus"
|
|
7
|
+
],
|
|
8
|
+
"prompt": "We need a FAQ from source docs for the returns-desk work. The backgound info is in source/brief.md — have a look and write it up in report.md.",
|
|
9
|
+
"setup": {
|
|
10
|
+
"projectName": "FAQ from Source Docs Eval",
|
|
11
|
+
"about": "Self-contained eval project for faq-from-docs. Seeded inputs are under workspace/source or workspace/fixtures; final deliverable is workspace/report.md.",
|
|
12
|
+
"missionObjectives": "Use the FAQ from Source Docs craftbook/template, read the seeded local fixtures, and write report.md without network calls, real credentials, or live services.",
|
|
13
|
+
"files": [
|
|
14
|
+
{
|
|
15
|
+
"path": "source/brief.md",
|
|
16
|
+
"content": "# FAQ from Source Docs Eval Brief\n\nClient: Boreal Desk, a home-office accessories company.\nAudience: operations leads who need an artifact they can use this week.\n\nFixed source facts for grounding:\n- The returns desk pilot covered 18 SKUs.\n- Median first response improved from 18 hours to 6 hours.\n- Preventable refund leakage fell from 14.2% to 8.9%.\n- The top unresolved complaint is status silence after photo submission.\n- Required next actions are automated status emails, barcode-exception training, and a weekly Finance exception export.\n\nUse these facts when the task asks for prose, analysis, copy, UI content, or test data. Do not use live web services, real credentials, or current outside data.\n\nCraftbook under test: faq-from-docs - FAQ from Source Docs.\n"
|
|
17
|
+
}
|
|
18
|
+
],
|
|
19
|
+
"worker": {
|
|
20
|
+
"name": "Jules",
|
|
21
|
+
"role": "Writer"
|
|
22
|
+
},
|
|
23
|
+
"craftbookParams": {
|
|
24
|
+
"source": "source"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
"mocks": [],
|
|
28
|
+
"success": {
|
|
29
|
+
"summary": "report.md is a source-grounded markdown artifact with required facts and actions.",
|
|
30
|
+
"deliverables": [
|
|
31
|
+
{
|
|
32
|
+
"path": "report.md",
|
|
33
|
+
"kind": "markdown-report",
|
|
34
|
+
"minBytes": 1000,
|
|
35
|
+
"checks": [
|
|
36
|
+
{
|
|
37
|
+
"kind": "contains",
|
|
38
|
+
"file": "report.md",
|
|
39
|
+
"pattern": "(?:^|\\n)#{1,3}\\s+\\S",
|
|
40
|
+
"flags": "i"
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
"kind": "contains",
|
|
44
|
+
"file": "report.md",
|
|
45
|
+
"pattern": "source/brief\\.md|Brief",
|
|
46
|
+
"flags": "i",
|
|
47
|
+
"label": "cite or name the seeded source"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"kind": "contains",
|
|
51
|
+
"file": "report.md",
|
|
52
|
+
"pattern": "18\\b[\\s\\S]{0,30}\\bSKUs",
|
|
53
|
+
"flags": "i",
|
|
54
|
+
"label": "include the 18-SKU pilot scope"
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
"kind": "contains",
|
|
58
|
+
"file": "report.md",
|
|
59
|
+
"pattern": "18\\s*hours|6\\s*hours",
|
|
60
|
+
"flags": "i"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"kind": "contains",
|
|
64
|
+
"file": "report.md",
|
|
65
|
+
"pattern": "14\\.2%|8\\.9%",
|
|
66
|
+
"flags": "i"
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
"kind": "contains",
|
|
70
|
+
"file": "report.md",
|
|
71
|
+
"pattern": "status silence|photo submission",
|
|
72
|
+
"flags": "i"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"kind": "contains",
|
|
76
|
+
"file": "report.md",
|
|
77
|
+
"pattern": "automated status emails|barcode|Finance",
|
|
78
|
+
"flags": "i"
|
|
79
|
+
}
|
|
80
|
+
]
|
|
81
|
+
}
|
|
82
|
+
]
|
|
83
|
+
},
|
|
84
|
+
"rubric": {
|
|
85
|
+
"artifact": {
|
|
86
|
+
"path": "report.md",
|
|
87
|
+
"kind": "markdown"
|
|
88
|
+
},
|
|
89
|
+
"axes": [
|
|
90
|
+
{
|
|
91
|
+
"name": "grounding",
|
|
92
|
+
"description": "Seeded facts appear faithfully and the source is cited."
|
|
93
|
+
},
|
|
94
|
+
{
|
|
95
|
+
"name": "structure",
|
|
96
|
+
"description": "Sections progress logically for the artifact class."
|
|
97
|
+
},
|
|
98
|
+
{
|
|
99
|
+
"name": "completeness",
|
|
100
|
+
"description": "Required elements (risks, next actions, scope) are all present."
|
|
101
|
+
},
|
|
102
|
+
{
|
|
103
|
+
"name": "tone",
|
|
104
|
+
"description": "The register fits the audience and artifact class."
|
|
105
|
+
}
|
|
106
|
+
]
|
|
107
|
+
},
|
|
108
|
+
"qualityFocus": [
|
|
109
|
+
"source-grounded prose",
|
|
110
|
+
"section structure",
|
|
111
|
+
"next-action clarity"
|
|
112
|
+
]
|
|
113
|
+
}
|