factoryhub 0.0.0-stage → 0.1.0
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/LICENSE +202 -0
- package/NOTICE +16 -0
- package/README.md +189 -2
- package/factories/README.md +17 -0
- package/factories/client-file-readiness/README.md +3 -0
- package/factories/client-file-readiness/agents/analyst/agent.md +10 -0
- package/factories/client-file-readiness/agents/reviewer/agent.md +10 -0
- package/factories/client-file-readiness/agents/writer/agent.md +11 -0
- package/factories/client-file-readiness/factory.yaml +12 -0
- package/factories/client-file-readiness/flow.yaml +56 -0
- package/factories/competitor-teardown/README.md +3 -0
- package/factories/competitor-teardown/agents/analyst/agent.md +10 -0
- package/factories/competitor-teardown/agents/researcher/agent.md +11 -0
- package/factories/competitor-teardown/agents/reviewer/agent.md +10 -0
- package/factories/competitor-teardown/agents/writer/agent.md +11 -0
- package/factories/competitor-teardown/factory.yaml +11 -0
- package/factories/competitor-teardown/flow.yaml +75 -0
- package/factories/homepage-audit/README.md +3 -0
- package/factories/homepage-audit/agents/analyst/agent.md +10 -0
- package/factories/homepage-audit/agents/researcher/agent.md +11 -0
- package/factories/homepage-audit/agents/reviewer/agent.md +10 -0
- package/factories/homepage-audit/agents/writer/agent.md +11 -0
- package/factories/homepage-audit/factory.yaml +11 -0
- package/factories/homepage-audit/flow.yaml +77 -0
- package/factories/inbox-triage/README.md +3 -0
- package/factories/inbox-triage/agents/analyst/agent.md +10 -0
- package/factories/inbox-triage/agents/reviewer/agent.md +10 -0
- package/factories/inbox-triage/agents/writer/agent.md +11 -0
- package/factories/inbox-triage/factory.yaml +11 -0
- package/factories/inbox-triage/flow.yaml +57 -0
- package/factories/index.json +356 -0
- package/factories/launch-kit/README.md +3 -0
- package/factories/launch-kit/agents/reviewer/agent.md +10 -0
- package/factories/launch-kit/agents/strategist/agent.md +10 -0
- package/factories/launch-kit/agents/writer/agent.md +11 -0
- package/factories/launch-kit/factory.yaml +12 -0
- package/factories/launch-kit/flow.yaml +75 -0
- package/factories/meeting-to-actions/CHANGELOG.md +7 -0
- package/factories/meeting-to-actions/README.md +15 -0
- package/factories/meeting-to-actions/agents/analyst/agent.md +10 -0
- package/factories/meeting-to-actions/agents/reviewer/agent.md +10 -0
- package/factories/meeting-to-actions/agents/writer/agent.md +11 -0
- package/factories/meeting-to-actions/factory.yaml +11 -0
- package/factories/meeting-to-actions/flow.yaml +53 -0
- package/factories/meeting-to-actions/mindburn.requirements.yaml +8 -0
- package/factories/meeting-to-actions/mindburn.tests.yaml +16 -0
- package/factories/outreach-pack/README.md +3 -0
- package/factories/outreach-pack/agents/reviewer/agent.md +5 -0
- package/factories/outreach-pack/agents/writer/agent.md +5 -0
- package/factories/outreach-pack/factory.yaml +9 -0
- package/factories/outreach-pack/flow.yaml +42 -0
- package/factories/prospect-brief/README.md +3 -0
- package/factories/prospect-brief/agents/researcher/agent.md +11 -0
- package/factories/prospect-brief/agents/reviewer/agent.md +10 -0
- package/factories/prospect-brief/agents/strategist/agent.md +10 -0
- package/factories/prospect-brief/agents/writer/agent.md +11 -0
- package/factories/prospect-brief/factory.yaml +11 -0
- package/factories/prospect-brief/flow.yaml +79 -0
- package/package.json +79 -4
- package/packages/cli/bin/factoryhub.mjs +8 -0
- package/packages/cli/package.json +29 -0
- package/packages/cli/src/args.mjs +47 -0
- package/packages/cli/src/commands/export.mjs +55 -0
- package/packages/cli/src/commands/get.mjs +38 -0
- package/packages/cli/src/commands/inspect.mjs +66 -0
- package/packages/cli/src/commands/list.mjs +29 -0
- package/packages/cli/src/commands/mcp.mjs +26 -0
- package/packages/cli/src/commands/new.mjs +148 -0
- package/packages/cli/src/commands/pack.mjs +97 -0
- package/packages/cli/src/commands/resume.mjs +67 -0
- package/packages/cli/src/commands/run.mjs +190 -0
- package/packages/cli/src/commands/search.mjs +31 -0
- package/packages/cli/src/commands/validate.mjs +81 -0
- package/packages/cli/src/main.mjs +68 -0
- package/packages/cli/src/util.mjs +21 -0
- package/packages/engine/lib/catalog.mjs +50 -0
- package/packages/engine/lib/hub.mjs +71 -0
- package/packages/engine/lib/node.mjs +114 -0
- package/packages/engine/lib/providers.mjs +52 -0
- package/packages/engine/lib/run.mjs +131 -0
- package/packages/engine/lib/skill.mjs +229 -0
- package/packages/engine/package.json +39 -0
- package/packages/engine/src/author-tests.mjs +78 -0
- package/packages/engine/src/compose.mjs +150 -0
- package/packages/engine/src/cost.mjs +41 -0
- package/packages/engine/src/diagnostics.mjs +21 -0
- package/packages/engine/src/factory-engine.mjs +1762 -0
- package/packages/engine/src/index.mjs +9 -0
- package/packages/engine/src/markdown.mjs +97 -0
- package/packages/engine/src/package.mjs +116 -0
- package/packages/engine/src/run.mjs +232 -0
- package/packages/mcp/bin/factoryhub-mcp.mjs +6 -0
- package/packages/mcp/package.json +36 -0
- package/packages/mcp/src/server.mjs +280 -0
- package/spec/README.md +36 -0
- package/spec/factory-format.md +621 -0
- package/spec/schema/factory.schema.json +43 -0
- package/spec/schema/flow.schema.json +169 -0
- package/spec/skill-export.md +126 -0
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
{
|
|
2
|
+
"format": "factoryhub.index/v1",
|
|
3
|
+
"note": "Generated by scripts/generate.mjs from factories/. Do not edit.",
|
|
4
|
+
"factories": [
|
|
5
|
+
{
|
|
6
|
+
"id": "client-file-readiness",
|
|
7
|
+
"title": "Client-file readiness",
|
|
8
|
+
"description": "Compares what a client sent against your checklist, reports what is missing, from the wrong period or unclear, and drafts the message asking for it. Use before starting bookkeeping, tax, audit, onboarding or any work that depends on a client's documents.",
|
|
9
|
+
"version": "1.1.0",
|
|
10
|
+
"license": "MIT",
|
|
11
|
+
"author": "Mindburn Labs",
|
|
12
|
+
"tags": [
|
|
13
|
+
"operations",
|
|
14
|
+
"accounting"
|
|
15
|
+
],
|
|
16
|
+
"time": "about 2 minutes",
|
|
17
|
+
"path": "factories/client-file-readiness",
|
|
18
|
+
"sha256": "28d5c6dde74137686fd2a77a73b1f7b1947604e009f3f17359d6032072ff133c",
|
|
19
|
+
"runnable": true,
|
|
20
|
+
"inputs": [
|
|
21
|
+
{
|
|
22
|
+
"key": "checklist",
|
|
23
|
+
"type": "longtext",
|
|
24
|
+
"required": true
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"key": "received",
|
|
28
|
+
"type": "longtext",
|
|
29
|
+
"required": true
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"key": "client_and_period",
|
|
33
|
+
"type": "text",
|
|
34
|
+
"required": true
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
"key": "deadline",
|
|
38
|
+
"type": "text",
|
|
39
|
+
"required": false
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"steps": 3,
|
|
43
|
+
"decision": false,
|
|
44
|
+
"agents": [
|
|
45
|
+
"analyst",
|
|
46
|
+
"reviewer",
|
|
47
|
+
"writer"
|
|
48
|
+
],
|
|
49
|
+
"tools": []
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
"id": "competitor-teardown",
|
|
53
|
+
"title": "Competitor teardown",
|
|
54
|
+
"description": "Reads your website and up to three competitors, then writes a decision-ready brief showing where you win, where you lose and what to change this week. Use before a pricing change, a homepage rewrite or a sales call.",
|
|
55
|
+
"version": "1.1.0",
|
|
56
|
+
"license": "MIT",
|
|
57
|
+
"author": "Mindburn Labs",
|
|
58
|
+
"tags": [
|
|
59
|
+
"marketing",
|
|
60
|
+
"research"
|
|
61
|
+
],
|
|
62
|
+
"time": "about 4 minutes",
|
|
63
|
+
"path": "factories/competitor-teardown",
|
|
64
|
+
"sha256": "b46c7fa922a24b4ed144643be1d792d22f2a7b94374be705bd96b5818f9b6fae",
|
|
65
|
+
"runnable": true,
|
|
66
|
+
"inputs": [
|
|
67
|
+
{
|
|
68
|
+
"key": "your_site",
|
|
69
|
+
"type": "url",
|
|
70
|
+
"required": true
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
"key": "competitors",
|
|
74
|
+
"type": "longtext",
|
|
75
|
+
"required": true
|
|
76
|
+
},
|
|
77
|
+
{
|
|
78
|
+
"key": "focus",
|
|
79
|
+
"type": "text",
|
|
80
|
+
"required": false
|
|
81
|
+
}
|
|
82
|
+
],
|
|
83
|
+
"steps": 5,
|
|
84
|
+
"decision": false,
|
|
85
|
+
"agents": [
|
|
86
|
+
"analyst",
|
|
87
|
+
"researcher",
|
|
88
|
+
"reviewer",
|
|
89
|
+
"writer"
|
|
90
|
+
],
|
|
91
|
+
"tools": [
|
|
92
|
+
"web_fetch",
|
|
93
|
+
"web_search"
|
|
94
|
+
]
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"id": "homepage-audit",
|
|
98
|
+
"title": "Homepage audit with fixes",
|
|
99
|
+
"description": "Reads your home page the way a first-time visitor does and returns a prioritised list of fixes with the exact new wording. Use when signups or enquiries are lower than the traffic deserves.",
|
|
100
|
+
"version": "1.2.0",
|
|
101
|
+
"license": "MIT",
|
|
102
|
+
"author": "Mindburn Labs",
|
|
103
|
+
"tags": [
|
|
104
|
+
"marketing",
|
|
105
|
+
"website"
|
|
106
|
+
],
|
|
107
|
+
"time": "about 3 minutes",
|
|
108
|
+
"path": "factories/homepage-audit",
|
|
109
|
+
"sha256": "1b882f4e96758d6e15dac308d3f517bc927150d0d8f8b988cedefd616e1413c8",
|
|
110
|
+
"runnable": true,
|
|
111
|
+
"inputs": [
|
|
112
|
+
{
|
|
113
|
+
"key": "site",
|
|
114
|
+
"type": "url",
|
|
115
|
+
"required": true
|
|
116
|
+
},
|
|
117
|
+
{
|
|
118
|
+
"key": "goal",
|
|
119
|
+
"type": "text",
|
|
120
|
+
"required": false
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"key": "audience",
|
|
124
|
+
"type": "text",
|
|
125
|
+
"required": false
|
|
126
|
+
}
|
|
127
|
+
],
|
|
128
|
+
"steps": 4,
|
|
129
|
+
"decision": false,
|
|
130
|
+
"agents": [
|
|
131
|
+
"analyst",
|
|
132
|
+
"researcher",
|
|
133
|
+
"reviewer",
|
|
134
|
+
"writer"
|
|
135
|
+
],
|
|
136
|
+
"tools": [
|
|
137
|
+
"web_fetch"
|
|
138
|
+
]
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"id": "inbox-triage",
|
|
142
|
+
"title": "Support inbox triage",
|
|
143
|
+
"description": "Sorts a batch of customer messages by urgency and type, drafts a reply to each in your tone, and lists what needs a human decision. Use on a support or shared inbox that has piled up.",
|
|
144
|
+
"version": "1.1.0",
|
|
145
|
+
"license": "MIT",
|
|
146
|
+
"author": "Mindburn Labs",
|
|
147
|
+
"tags": [
|
|
148
|
+
"support",
|
|
149
|
+
"operations"
|
|
150
|
+
],
|
|
151
|
+
"time": "about 2 minutes",
|
|
152
|
+
"path": "factories/inbox-triage",
|
|
153
|
+
"sha256": "5b5f8ae0e022ca2b4cd53afef8dd0b40f936f0d95be23f872891e624818104b4",
|
|
154
|
+
"runnable": true,
|
|
155
|
+
"inputs": [
|
|
156
|
+
{
|
|
157
|
+
"key": "messages",
|
|
158
|
+
"type": "longtext",
|
|
159
|
+
"required": true
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"key": "policies",
|
|
163
|
+
"type": "longtext",
|
|
164
|
+
"required": true
|
|
165
|
+
},
|
|
166
|
+
{
|
|
167
|
+
"key": "tone",
|
|
168
|
+
"type": "text",
|
|
169
|
+
"required": false
|
|
170
|
+
}
|
|
171
|
+
],
|
|
172
|
+
"steps": 4,
|
|
173
|
+
"decision": false,
|
|
174
|
+
"agents": [
|
|
175
|
+
"analyst",
|
|
176
|
+
"reviewer",
|
|
177
|
+
"writer"
|
|
178
|
+
],
|
|
179
|
+
"tools": []
|
|
180
|
+
},
|
|
181
|
+
{
|
|
182
|
+
"id": "launch-kit",
|
|
183
|
+
"title": "Launch kit",
|
|
184
|
+
"description": "Turns a product description into a launch kit with positioning, a landing page draft, a launch email, three follow-ups and posts for social channels, all in one voice. Use when you have something to launch and no time to write.",
|
|
185
|
+
"version": "1.2.0",
|
|
186
|
+
"license": "MIT",
|
|
187
|
+
"author": "Mindburn Labs",
|
|
188
|
+
"tags": [
|
|
189
|
+
"marketing",
|
|
190
|
+
"launch"
|
|
191
|
+
],
|
|
192
|
+
"time": "about 4 minutes",
|
|
193
|
+
"path": "factories/launch-kit",
|
|
194
|
+
"sha256": "80c4b2afad0bbd4a21bda4af3bb98ab29b429aaa03551d1af3fe92f7645f1c10",
|
|
195
|
+
"runnable": true,
|
|
196
|
+
"inputs": [
|
|
197
|
+
{
|
|
198
|
+
"key": "product",
|
|
199
|
+
"type": "longtext",
|
|
200
|
+
"required": true
|
|
201
|
+
},
|
|
202
|
+
{
|
|
203
|
+
"key": "audience",
|
|
204
|
+
"type": "text",
|
|
205
|
+
"required": true
|
|
206
|
+
},
|
|
207
|
+
{
|
|
208
|
+
"key": "site",
|
|
209
|
+
"type": "url",
|
|
210
|
+
"required": false
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
"key": "launch_offer",
|
|
214
|
+
"type": "text",
|
|
215
|
+
"required": false
|
|
216
|
+
},
|
|
217
|
+
{
|
|
218
|
+
"key": "market_research",
|
|
219
|
+
"type": "longtext",
|
|
220
|
+
"required": false
|
|
221
|
+
}
|
|
222
|
+
],
|
|
223
|
+
"steps": 6,
|
|
224
|
+
"decision": true,
|
|
225
|
+
"agents": [
|
|
226
|
+
"reviewer",
|
|
227
|
+
"strategist",
|
|
228
|
+
"writer"
|
|
229
|
+
],
|
|
230
|
+
"tools": [
|
|
231
|
+
"web_fetch"
|
|
232
|
+
]
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
"id": "meeting-to-actions",
|
|
236
|
+
"title": "Meeting to actions",
|
|
237
|
+
"description": "Turns rough meeting notes or a transcript into decisions, owned actions with dates, open questions and a follow-up message ready to send. Use right after any meeting where things were agreed.",
|
|
238
|
+
"version": "1.1.1",
|
|
239
|
+
"license": "MIT",
|
|
240
|
+
"author": "Mindburn Labs",
|
|
241
|
+
"tags": [
|
|
242
|
+
"operations",
|
|
243
|
+
"productivity"
|
|
244
|
+
],
|
|
245
|
+
"time": "about 1 minute",
|
|
246
|
+
"path": "factories/meeting-to-actions",
|
|
247
|
+
"sha256": "7da2afff80e089d1d7ca1bab70907cc85d4d88454e62744d252d87441ed3d34f",
|
|
248
|
+
"runnable": true,
|
|
249
|
+
"inputs": [
|
|
250
|
+
{
|
|
251
|
+
"key": "notes",
|
|
252
|
+
"type": "longtext",
|
|
253
|
+
"required": true
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
"key": "context",
|
|
257
|
+
"type": "text",
|
|
258
|
+
"required": false
|
|
259
|
+
}
|
|
260
|
+
],
|
|
261
|
+
"steps": 3,
|
|
262
|
+
"decision": false,
|
|
263
|
+
"agents": [
|
|
264
|
+
"analyst",
|
|
265
|
+
"reviewer",
|
|
266
|
+
"writer"
|
|
267
|
+
],
|
|
268
|
+
"tools": []
|
|
269
|
+
},
|
|
270
|
+
{
|
|
271
|
+
"id": "outreach-pack",
|
|
272
|
+
"title": "Outreach pack",
|
|
273
|
+
"description": "Turns checked market research and launch materials into an outreach pack. Use when the positioning is approved and you need messages to review and send yourself.",
|
|
274
|
+
"version": "1.0.0",
|
|
275
|
+
"license": "MIT",
|
|
276
|
+
"author": "Mindburn Labs",
|
|
277
|
+
"tags": [
|
|
278
|
+
"sales",
|
|
279
|
+
"launch"
|
|
280
|
+
],
|
|
281
|
+
"time": "",
|
|
282
|
+
"path": "factories/outreach-pack",
|
|
283
|
+
"sha256": "a1ffe3ae4ef85477f378680a6b983bf92f22bd40790372a5cb84c26d73254a2f",
|
|
284
|
+
"runnable": true,
|
|
285
|
+
"inputs": [
|
|
286
|
+
{
|
|
287
|
+
"key": "research",
|
|
288
|
+
"type": "longtext",
|
|
289
|
+
"required": true
|
|
290
|
+
},
|
|
291
|
+
{
|
|
292
|
+
"key": "launch_materials",
|
|
293
|
+
"type": "longtext",
|
|
294
|
+
"required": true
|
|
295
|
+
},
|
|
296
|
+
{
|
|
297
|
+
"key": "contact_role",
|
|
298
|
+
"type": "text",
|
|
299
|
+
"required": false
|
|
300
|
+
}
|
|
301
|
+
],
|
|
302
|
+
"steps": 3,
|
|
303
|
+
"decision": false,
|
|
304
|
+
"agents": [
|
|
305
|
+
"reviewer",
|
|
306
|
+
"writer"
|
|
307
|
+
],
|
|
308
|
+
"tools": []
|
|
309
|
+
},
|
|
310
|
+
{
|
|
311
|
+
"id": "prospect-brief",
|
|
312
|
+
"title": "Prospect brief and first email",
|
|
313
|
+
"description": "Researches one company you want to sell to and writes a one-page brief plus a first email and follow-up that mention real, checkable facts about them. Use before reaching out to an account that matters.",
|
|
314
|
+
"version": "1.1.0",
|
|
315
|
+
"license": "MIT",
|
|
316
|
+
"author": "Mindburn Labs",
|
|
317
|
+
"tags": [
|
|
318
|
+
"sales",
|
|
319
|
+
"research"
|
|
320
|
+
],
|
|
321
|
+
"time": "about 4 minutes",
|
|
322
|
+
"path": "factories/prospect-brief",
|
|
323
|
+
"sha256": "77c1ee37106eca696283235ce81ff9dd7328a1ee26f37f877d4bc9c6506b5e3a",
|
|
324
|
+
"runnable": true,
|
|
325
|
+
"inputs": [
|
|
326
|
+
{
|
|
327
|
+
"key": "prospect",
|
|
328
|
+
"type": "url",
|
|
329
|
+
"required": true
|
|
330
|
+
},
|
|
331
|
+
{
|
|
332
|
+
"key": "what_you_sell",
|
|
333
|
+
"type": "longtext",
|
|
334
|
+
"required": true
|
|
335
|
+
},
|
|
336
|
+
{
|
|
337
|
+
"key": "contact_role",
|
|
338
|
+
"type": "text",
|
|
339
|
+
"required": false
|
|
340
|
+
}
|
|
341
|
+
],
|
|
342
|
+
"steps": 7,
|
|
343
|
+
"decision": true,
|
|
344
|
+
"agents": [
|
|
345
|
+
"researcher",
|
|
346
|
+
"reviewer",
|
|
347
|
+
"strategist",
|
|
348
|
+
"writer"
|
|
349
|
+
],
|
|
350
|
+
"tools": [
|
|
351
|
+
"web_fetch",
|
|
352
|
+
"web_search"
|
|
353
|
+
]
|
|
354
|
+
}
|
|
355
|
+
]
|
|
356
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Checks work against stated criteria and sends weak work back.
|
|
3
|
+
agentType: REVIEW
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are the reviewer. You hold one piece of work against the criteria you are given and decide whether it passes.
|
|
7
|
+
|
|
8
|
+
- You judge only what is on the page and only against the stated criteria.
|
|
9
|
+
- You fail work for a clear, specific breach you can point to. You never fail it for taste, or for something nobody asked for.
|
|
10
|
+
- When you send work back, each reason is one concrete sentence the author can act on.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Chooses the angle: what to say, to whom, and why it should work.
|
|
3
|
+
agentType: CUSTOM
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are the strategist. From the facts in hand you choose the angle: who this is for, what to promise, and which facts make it believable.
|
|
7
|
+
|
|
8
|
+
- You offer a clear first choice and real alternatives, and you say which facts you are least sure of.
|
|
9
|
+
- You use only facts from the inputs and earlier steps. A stronger claim that the facts do not support is not an option.
|
|
10
|
+
- The person decides. You make their decision easy to take.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Writes the finished words the person will use or send.
|
|
3
|
+
agentType: CUSTOM
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are the writer. You write the finished thing the person will use: the brief, the message, the page, the report.
|
|
7
|
+
|
|
8
|
+
- Plain words, short sentences, the reader's own vocabulary. No filler and no hype.
|
|
9
|
+
- You keep to the sections, word limits and order the step asks for.
|
|
10
|
+
- You add no fact that is not in the inputs or earlier results. Where a real asset or decision is missing, you mark the gap clearly instead of inventing it.
|
|
11
|
+
- What you write should be usable as it stands.
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
schemaVersion: v1alpha1
|
|
2
|
+
name: launch-kit
|
|
3
|
+
description: |
|
|
4
|
+
Turns a product description into a launch kit with positioning, a landing
|
|
5
|
+
page draft, a launch email, three follow-ups and posts for social channels,
|
|
6
|
+
all in one voice. Use when you have something to launch and no time to
|
|
7
|
+
write.
|
|
8
|
+
repositories: []
|
|
9
|
+
agentDefaults:
|
|
10
|
+
harness:
|
|
11
|
+
type: claude
|
|
12
|
+
model: sonnet
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
flow: mindburn.flow/v1
|
|
2
|
+
title: Launch kit
|
|
3
|
+
author: Mindburn Labs
|
|
4
|
+
version: "1.2.0"
|
|
5
|
+
license: MIT
|
|
6
|
+
tags: [marketing, launch]
|
|
7
|
+
time: about 4 minutes
|
|
8
|
+
inputs:
|
|
9
|
+
product:
|
|
10
|
+
type: longtext
|
|
11
|
+
help: "What you are launching, what it does, the price and anything true you can say about results or customers."
|
|
12
|
+
audience:
|
|
13
|
+
type: text
|
|
14
|
+
help: "Who it is for, as specifically as you can, for example \"freelance bookkeepers with 10 to 40 clients\"."
|
|
15
|
+
site:
|
|
16
|
+
type: url
|
|
17
|
+
optional: true
|
|
18
|
+
help: "Your current website, to match the voice."
|
|
19
|
+
launch_offer:
|
|
20
|
+
type: text
|
|
21
|
+
optional: true
|
|
22
|
+
help: "Any launch offer and its end condition, for example \"20% off for the first 50 customers\"."
|
|
23
|
+
market_research:
|
|
24
|
+
type: longtext
|
|
25
|
+
optional: true
|
|
26
|
+
help: "Source-linked market research to inform positioning. Keep product claims grounded in the product facts."
|
|
27
|
+
steps:
|
|
28
|
+
positioning:
|
|
29
|
+
title: Find the positioning
|
|
30
|
+
agent: strategist
|
|
31
|
+
kind: work
|
|
32
|
+
tools: [web_fetch]
|
|
33
|
+
task: |
|
|
34
|
+
If market_research was given, use its sourced comparisons to explain differentiation without treating competitor facts as facts about this product. If a site was given, read its home page to learn the voice and existing claims. Then write the positioning: the audience and the moment they need this, the problem in their words, the promise in one sentence of under 15 words, three reasons to believe it (each tied to a fact from the product input), what it replaces, and the one objection most likely to stop a purchase with an honest answer. Offer two alternative promise sentences below the main one. Describe the voice in one line. Use no fact that is not in the inputs or on the site.
|
|
35
|
+
approve_positioning:
|
|
36
|
+
title: Agree the positioning
|
|
37
|
+
kind: approve
|
|
38
|
+
needs: [positioning]
|
|
39
|
+
shows: positioning
|
|
40
|
+
task: |
|
|
41
|
+
Everything else is written from this. Approve it, pick one of the alternative promises, or correct anything that is wrong about your product or audience.
|
|
42
|
+
landing_page:
|
|
43
|
+
title: Write the landing page
|
|
44
|
+
agent: writer
|
|
45
|
+
kind: work
|
|
46
|
+
needs: [approve_positioning]
|
|
47
|
+
task: |
|
|
48
|
+
Write the landing page from the approved positioning: headline (the promise), a line under it, the main button text, a "how it works" section with three steps, the three reasons to believe as short sections, the objection and its answer, the price and the launch offer if one was given, and a closing call to action. Mark every place where a real testimonial, screenshot or number should go as "[ADD: what belongs here]" instead of inventing one.
|
|
49
|
+
messages:
|
|
50
|
+
title: Write the emails and posts
|
|
51
|
+
agent: writer
|
|
52
|
+
kind: work
|
|
53
|
+
needs: [approve_positioning]
|
|
54
|
+
task: |
|
|
55
|
+
In the same voice write: a launch email under 180 words with two subject lines; three follow-up emails under 100 words each for days 2, 4 and 6, each making one new point (a reason to believe, the objection answered, the offer ending); and five short posts for social channels, each standing alone and each opening differently. State the launch offer exactly as given, with its end condition.
|
|
56
|
+
kit:
|
|
57
|
+
title: Package the kit
|
|
58
|
+
agent: writer
|
|
59
|
+
kind: deliver
|
|
60
|
+
needs: [landing_page, messages]
|
|
61
|
+
task: |
|
|
62
|
+
Assemble the kit in this order: **Positioning** (the approved version, one short block), **Landing page** (full draft), **Launch email**, **Follow-up emails** (with the day for each), **Posts**, and **Before you publish**: a checklist of every "[ADD: ...]" placeholder and any claim you should double-check, plus the order to publish the pieces in.
|
|
63
|
+
check_messages:
|
|
64
|
+
title: Check the kit
|
|
65
|
+
agent: reviewer
|
|
66
|
+
kind: check
|
|
67
|
+
needs: [kit]
|
|
68
|
+
checks: kit
|
|
69
|
+
task: |
|
|
70
|
+
Review every piece of the assembled kit, including the landing page. Every factual product, price, result, customer or offer claim is supported by the inputs or positioning. Every piece uses the approved promise and voice. No invented testimonial, number, customer name or deadline appears. The offer and end condition match the input. Requested word limits and section counts are met, and every missing asset remains marked and appears in the checklist.
|
|
71
|
+
|
|
72
|
+
done:
|
|
73
|
+
- "Every piece uses the approved promise and the same voice."
|
|
74
|
+
- "No claim appears that the inputs do not support."
|
|
75
|
+
- "Every gap that needs a real asset is marked, not filled in."
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Meeting to actions
|
|
2
|
+
|
|
3
|
+
Paste the notes or transcript. You get what was decided, who does what by when, what is still open, and the follow-up message for everyone who was there. It only reports what the notes support, and it tells you where an owner or a date was never agreed.
|
|
4
|
+
|
|
5
|
+
The included example uses invented notes with an agreed action, an unowned task
|
|
6
|
+
and an undecided question. The result must keep those distinctions; drafting a
|
|
7
|
+
follow-up does not send it. Read the result before sending it.
|
|
8
|
+
|
|
9
|
+
Run the example on the Hub or with
|
|
10
|
+
`node run.mjs --test --provider anthropic --model claude-haiku-5-5`. Passing text checks are
|
|
11
|
+
a repeatable regression signal, not proof that every transcript will be handled
|
|
12
|
+
correctly. The package includes the model recommendation and the basis of its
|
|
13
|
+
short-input cost estimate; no minimum model has been established. Hosted trials
|
|
14
|
+
used Haiku for writing and Sonnet for review. The local command uses Haiku for
|
|
15
|
+
both, so its quality and cost must be checked separately.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Turns raw material into structured findings that can be checked.
|
|
3
|
+
agentType: CUSTOM
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are the analyst. You take what the person gave and what earlier steps found, and turn it into structured findings: tables, ranked lists, statuses.
|
|
7
|
+
|
|
8
|
+
- Every finding points at the exact words, file or fact it rests on.
|
|
9
|
+
- You never assume what the material does not show. Where something cannot be told, you say what is missing.
|
|
10
|
+
- You rank by what matters most to the person's goal, and you keep to the counts and shapes the step asks for.
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Checks work against stated criteria and sends weak work back.
|
|
3
|
+
agentType: REVIEW
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are the reviewer. You hold one piece of work against the criteria you are given and decide whether it passes.
|
|
7
|
+
|
|
8
|
+
- You judge only what is on the page and only against the stated criteria.
|
|
9
|
+
- You fail work for a clear, specific breach you can point to. You never fail it for taste, or for something nobody asked for.
|
|
10
|
+
- When you send work back, each reason is one concrete sentence the author can act on.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Writes the finished words the person will use or send.
|
|
3
|
+
agentType: CUSTOM
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
You are the writer. You write the finished thing the person will use: the brief, the message, the page, the report.
|
|
7
|
+
|
|
8
|
+
- Plain words, short sentences, the reader's own vocabulary. No filler and no hype.
|
|
9
|
+
- You keep to the sections, word limits and order the step asks for.
|
|
10
|
+
- You add no fact that is not in the inputs or earlier results. Where a real asset or decision is missing, you mark the gap clearly instead of inventing it.
|
|
11
|
+
- What you write should be usable as it stands.
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
schemaVersion: v1alpha1
|
|
2
|
+
name: meeting-to-actions
|
|
3
|
+
description: |
|
|
4
|
+
Turns rough meeting notes or a transcript into decisions, owned actions with
|
|
5
|
+
dates, open questions and a follow-up message ready to send. Use right after
|
|
6
|
+
any meeting where things were agreed.
|
|
7
|
+
repositories: []
|
|
8
|
+
agentDefaults:
|
|
9
|
+
harness:
|
|
10
|
+
type: claude
|
|
11
|
+
model: claude-haiku-5-5
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
flow: mindburn.flow/v1
|
|
2
|
+
title: Meeting to actions
|
|
3
|
+
author: Mindburn Labs
|
|
4
|
+
version: "1.1.1"
|
|
5
|
+
license: MIT
|
|
6
|
+
tags: [operations, productivity]
|
|
7
|
+
time: about 1 minute
|
|
8
|
+
inputs:
|
|
9
|
+
notes:
|
|
10
|
+
type: longtext
|
|
11
|
+
help: "The meeting notes or transcript, as rough as they are."
|
|
12
|
+
context:
|
|
13
|
+
type: text
|
|
14
|
+
optional: true
|
|
15
|
+
help: "Who met and why, for example \"weekly call with the Halden client about the website launch\"."
|
|
16
|
+
steps:
|
|
17
|
+
extraction:
|
|
18
|
+
title: Extract what was agreed
|
|
19
|
+
agent: analyst
|
|
20
|
+
kind: work
|
|
21
|
+
task: |
|
|
22
|
+
Read the notes and pull out four lists. Decisions: what was decided, in one sentence each. Actions: the task, the owner as named in the notes, and the due date as stated. Open questions: things raised and not settled. Risks: anything someone flagged as a worry.
|
|
23
|
+
|
|
24
|
+
Where an action has no owner or no date in the notes, write "owner not agreed" or "date not agreed": never assign one yourself. After each item put a short quote from the notes that supports it. Leave out small talk and anything said but not agreed.
|
|
25
|
+
followup:
|
|
26
|
+
title: Write the follow-up
|
|
27
|
+
agent: writer
|
|
28
|
+
kind: deliver
|
|
29
|
+
needs: [extraction]
|
|
30
|
+
task: |
|
|
31
|
+
Write the follow-up. Sections, in this order:
|
|
32
|
+
|
|
33
|
+
1. **Summary**: two sentences on what the meeting settled.
|
|
34
|
+
2. **Decisions**: a numbered list.
|
|
35
|
+
3. **Actions**: a table with columns Action, Owner, Due. Keep "not agreed" where it applies.
|
|
36
|
+
4. **Still open**: the open questions, and for each the person best placed to answer, if the notes say.
|
|
37
|
+
5. **To confirm**: every missing owner or date as a direct question.
|
|
38
|
+
6. **Message to send**: a follow-up message to the attendees under 150 words, covering decisions, actions and the questions to confirm, ready to paste into email or chat.
|
|
39
|
+
|
|
40
|
+
Do not include the supporting quotes in the follow-up.
|
|
41
|
+
check_extraction:
|
|
42
|
+
title: Check against the notes
|
|
43
|
+
agent: reviewer
|
|
44
|
+
kind: check
|
|
45
|
+
needs: [followup]
|
|
46
|
+
checks: followup
|
|
47
|
+
task: |
|
|
48
|
+
Compare the entire follow-up with the original notes. Every agreed decision and action is included; no owner, due date or fact was invented. Missing owners and dates remain explicit. The action table and message agree. All requested sections are present and the message meets its word limit. Supporting quotes need not appear in the final document.
|
|
49
|
+
|
|
50
|
+
done:
|
|
51
|
+
- "Every action has an owner and date, or says plainly that one was not agreed."
|
|
52
|
+
- "Nothing appears that the notes do not support."
|
|
53
|
+
- "The message can be sent without editing."
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
models:
|
|
2
|
+
recommended: claude-haiku-5-5
|
|
3
|
+
expected_cost:
|
|
4
|
+
currency: USD
|
|
5
|
+
min: 0.008
|
|
6
|
+
max: 0.02
|
|
7
|
+
model: claude-haiku-5-5 (writing) + claude-sonnet-5-5 (review)
|
|
8
|
+
basis: Short-note hosted trials used two Haiku writing calls and one Sonnet review call, with estimated model costs of USD 0.0088128 and 0.0148114. This range applies to that mixed-model configuration, not a Haiku-only local run. Larger transcripts and retries can cost more. Excludes hosting and tool fees; this is an estimate, not a spending cap.
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
version: 1
|
|
2
|
+
cases:
|
|
3
|
+
missing_commitments:
|
|
4
|
+
name: Keeps agreed actions and makes missing commitments explicit
|
|
5
|
+
inputs:
|
|
6
|
+
notes: |
|
|
7
|
+
Decision: use the compact onboarding form.
|
|
8
|
+
Dana agreed to email the revised form to Lee. No deadline was agreed.
|
|
9
|
+
Someone needs to confirm who maintains the help page. Nobody took that task.
|
|
10
|
+
The team discussed a free trial but made no decision about offering it.
|
|
11
|
+
context: Planning for a small product team. These are invented example notes.
|
|
12
|
+
expect:
|
|
13
|
+
contains: [Dana, Lee, onboarding, help page, free trial, not agreed]
|
|
14
|
+
excludes: [sent successfully, already emailed]
|
|
15
|
+
min_length: 200
|
|
16
|
+
max_length: 6000
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
schemaVersion: v1alpha1
|
|
2
|
+
name: outreach-pack
|
|
3
|
+
description: |
|
|
4
|
+
Turns checked market research and launch materials into an outreach pack. Use when the positioning is approved and you need messages to review and send yourself.
|
|
5
|
+
repositories: []
|
|
6
|
+
agentDefaults:
|
|
7
|
+
harness:
|
|
8
|
+
type: claude
|
|
9
|
+
model: sonnet
|