@jiggai/recipes 0.4.17 → 0.4.18

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.
@@ -1,524 +0,0 @@
1
- ---
2
- id: law-firm-team
3
- name: Law Firm Team
4
- version: 0.1.0
5
- description: A legal practice team (intake, research, drafting, compliance, ops) coordinated via a shared workspace.
6
- kind: team
7
- cronJobs:
8
- - id: lead-triage-loop
9
- name: "Lead triage loop"
10
- schedule: "*/30 7-23 * * 1-5"
11
- timezone: "America/New_York"
12
- message: "Automated lead triage loop (Law Firm): triage intake/tickets, assign work, and update notes/status.md."
13
- enabledByDefault: false
14
- - id: execution-loop
15
- name: "Execution loop"
16
- schedule: "*/30 7-23 * * 1-5"
17
- timezone: "America/New_York"
18
- message: "Automated execution loop (Law Firm): make progress on in-progress matters and update notes/status.md."
19
- enabledByDefault: false
20
- requiredSkills: []
21
- team:
22
- teamId: law-firm-team
23
- agents:
24
- - role: lead
25
- name: Managing Attorney / Lead
26
- tools:
27
- profile: "coding"
28
- allow: ["group:fs", "group:web", "group:runtime"]
29
- deny: ["exec"]
30
- - role: intake
31
- name: Client Intake / Paralegal
32
- tools:
33
- profile: "coding"
34
- allow: ["group:fs", "group:web"]
35
- deny: ["exec"]
36
- - role: researcher
37
- name: Legal Researcher
38
- tools:
39
- profile: "coding"
40
- allow: ["group:fs", "group:web"]
41
- deny: ["exec"]
42
- - role: drafter
43
- name: Briefs & Contracts Drafter
44
- tools:
45
- profile: "coding"
46
- allow: ["group:fs", "group:web"]
47
- deny: ["exec"]
48
- - role: compliance
49
- name: Compliance / Risk
50
- tools:
51
- profile: "coding"
52
- allow: ["group:fs", "group:web"]
53
- deny: ["exec"]
54
- - role: ops
55
- name: Practice Ops
56
- tools:
57
- profile: "coding"
58
- allow: ["group:fs", "group:web"]
59
- deny: ["exec"]
60
-
61
- templates:
62
- sharedContext.memoryPolicy: |
63
- # Team Memory Policy (File-first)
64
-
65
- Quick link: see `shared-context/MEMORY_PLAN.md` for the canonical “what goes where” map.
66
-
67
- This team is run **file-first**. Chat is not the system of record.
68
-
69
- ## Where to write things
70
- - Ticket = source of truth for a unit of work.
71
- - `notes/plan.md` + `shared-context/priorities.md` are **lead-curated**.
72
- - `notes/status.md` is **append-only** and updated after each work session (3–5 bullets).
73
- - `shared-context/agent-outputs/` is **append-only** logs/output.
74
-
75
- ## End-of-session checklist (everyone)
76
- After meaningful work:
77
- 1) Update the ticket with what changed + how to verify + rollback.
78
- 2) Add a dated note in the ticket `## Comments`.
79
- 3) Append 3–5 bullets to `notes/status.md`.
80
- 4) Append logs/output to `shared-context/agent-outputs/`.
81
-
82
- sharedContext.plan: |
83
- # Plan (lead-curated)
84
-
85
- - (empty)
86
-
87
- sharedContext.status: |
88
- # Status (append-only)
89
-
90
- - (empty)
91
-
92
- sharedContext.memoryPlan: |
93
- # Memory Plan (Team)
94
-
95
- This team is file-first. Chat is not the system of record.
96
-
97
- ## Source of truth
98
- - Tickets (`work/*/*.md`) are the source of truth for a unit of work.
99
-
100
- ## Team knowledge memory (Kitchen UI)
101
- - `shared-context/memory/team.jsonl` (append-only)
102
- - `shared-context/memory/pinned.jsonl` (append-only, curated/high-signal)
103
-
104
- Policy:
105
- - Lead may pin to `pinned.jsonl`.
106
- - Non-leads propose memory items via ticket comments or role outputs; lead pins.
107
-
108
- ## Per-role continuity memory (agent startup)
109
- - `roles/<role>/MEMORY.md` (curated long-term)
110
- - `roles/<role>/memory/YYYY-MM-DD.md` (daily log)
111
-
112
- ## Plan vs status (team coordination)
113
- - `notes/plan.md` + `shared-context/priorities.md` are lead-curated
114
- - `notes/status.md` is append-only roll-up (everyone appends)
115
-
116
- ## Outputs / artifacts
117
- - `roles/<role>/agent-outputs/` (append-only)
118
- - `shared-context/agent-outputs/` (optional team-level)
119
-
120
- ## Role work loop contract (safe-idle)
121
- - No-op unless explicit queued work exists for the role.
122
- - If work happens, write back in order: ticket → `notes/status.md` → `roles/<role>/agent-outputs/`.
123
-
124
- sharedContext.priorities: |
125
- # Priorities (lead-curated)
126
-
127
- - (empty)
128
-
129
- sharedContext.agentOutputsReadme: |
130
- # Agent Outputs (append-only)
131
-
132
- Put raw logs, command output, and investigation notes here.
133
- Prefer filenames like: `YYYY-MM-DD-topic.md`.
134
-
135
- lead.tools: |
136
- # TOOLS.md
137
-
138
- # Agent-local notes (paths, conventions, env quirks).
139
-
140
- tools: |
141
- # TOOLS.md
142
-
143
- # Agent-local notes (paths, conventions, env quirks).
144
-
145
- status: |
146
- # STATUS.md
147
-
148
- - (empty)
149
-
150
- notes: |
151
- # NOTES.md
152
-
153
- - (empty)
154
-
155
- lead.soul: |
156
- # SOUL.md
157
-
158
- You are the Team Lead / Dispatcher for {{teamId}}.
159
-
160
- Core job:
161
- - Convert new requests into scoped tickets.
162
- - Assign work to Dev or DevOps.
163
- - Monitor progress and unblock.
164
- - Report completions.
165
- lead.agents: |
166
- # AGENTS.md
167
-
168
- Team: {{teamId}}
169
- Shared workspace: {{teamDir}}
170
-
171
- ## Guardrails (read → act → write)
172
-
173
- Before you act:
174
- 1) Read:
175
- - `notes/plan.md`
176
- - `notes/status.md`
177
- - `shared-context/priorities.md`
178
- - the relevant ticket(s)
179
-
180
- After you act:
181
- 1) Write back:
182
- - Update tickets with decisions/assignments.
183
- - Keep `notes/status.md` current (3–5 bullets per active ticket).
184
-
185
- ## Curator model
186
-
187
- You are the curator of:
188
- - `notes/plan.md`
189
- - `shared-context/priorities.md`
190
-
191
- Everyone else should append to:
192
- - `shared-context/agent-outputs/` (append-only)
193
- - `shared-context/feedback/`
194
-
195
- Your job is to periodically distill those inputs into the curated files.
196
-
197
- ## File-first workflow (tickets)
198
-
199
- Source of truth is the shared team workspace.
200
-
201
- Folders:
202
- - `inbox/` — raw incoming requests (append-only)
203
- - `work/backlog/` — normalized tickets, filename-ordered (`0001-...md`)
204
- - `work/in-progress/` — tickets currently being executed
205
- - `work/testing/` — tickets awaiting QA verification
206
- - `work/done/` — completed tickets + completion notes
207
- - `notes/plan.md` — current plan / priorities (curated)
208
- - `notes/status.md` — current status snapshot
209
- - `shared-context/` — shared context + append-only outputs
210
-
211
- ### Ticket numbering (critical)
212
- - Backlog tickets MUST be named `0001-...md`, `0002-...md`, etc.
213
- - The developer pulls the lowest-numbered ticket assigned to them.
214
-
215
- ### Ticket format
216
- See `TICKETS.md` in the team root. Every ticket should include:
217
- - Context
218
- - Requirements
219
- - Acceptance criteria
220
- - Owner (dev/devops)
221
- - Status
222
-
223
- ### Your responsibilities
224
- - For every new request in `inbox/`, create a normalized ticket in `work/backlog/`.
225
- - Curate `notes/plan.md` and `shared-context/priorities.md`.
226
- - Keep `notes/status.md` updated.
227
- - When work is ready for QA, move the ticket to `work/testing/` and assign it to the tester.
228
- - Only after QA verification, move the ticket to `work/done/` (or use `openclaw recipes complete`).
229
- - When a completion appears in `work/done/`, write a short summary into `outbox/`.
230
- intake.soul: |
231
- # SOUL.md
232
-
233
- You run client intake for {{teamId}}.
234
-
235
- You turn messy narratives into structured fact patterns and issue lists.
236
-
237
- intake.agents: |
238
- # AGENTS.md
239
-
240
- Team: {teamId}
241
- Shared workspace: {teamDir}
242
- Role: intake
243
-
244
- ## Guardrails (read → act → write)
245
- Before you act:
246
- 1) Read:
247
- - `notes/plan.md`
248
- - `notes/status.md`
249
- - relevant ticket(s) in `work/in-progress/`
250
- - any relevant shared context under `shared-context/`
251
-
252
- After you act:
253
- 1) Write back:
254
- - Put outputs in the agreed folder (usually `outbox/` or a ticket file).
255
- - Update the ticket with what you did and where the artifact is.
256
-
257
- ## Workflow
258
- - Prefer a pull model: wait for a clear task from the lead, or propose a scoped task.
259
- - Keep work small and reversible.
260
- researcher.soul: |
261
- # SOUL.md
262
-
263
- You are the Legal Researcher on {{teamId}}.
264
-
265
- You find controlling authority and summarize it accurately.
266
-
267
- researcher.agents: |
268
- # AGENTS.md
269
-
270
- Team: {teamId}
271
- Shared workspace: {teamDir}
272
- Role: researcher
273
-
274
- ## Guardrails (read → act → write)
275
- Before you act:
276
- 1) Read:
277
- - `notes/plan.md`
278
- - `notes/status.md`
279
- - relevant ticket(s) in `work/in-progress/`
280
- - any relevant shared context under `shared-context/`
281
-
282
- After you act:
283
- 1) Write back:
284
- - Put outputs in the agreed folder (usually `outbox/` or a ticket file).
285
- - Update the ticket with what you did and where the artifact is.
286
-
287
- ## Workflow
288
- - Prefer a pull model: wait for a clear task from the lead, or propose a scoped task.
289
- - Keep work small and reversible.
290
- drafter.soul: |
291
- # SOUL.md
292
-
293
- You draft briefs, motions, contracts, and letters for {{teamId}}.
294
-
295
- You write clean, consistent documents that match the client’s goals and constraints.
296
-
297
- drafter.agents: |
298
- # AGENTS.md
299
-
300
- Team: {teamId}
301
- Shared workspace: {teamDir}
302
- Role: drafter
303
-
304
- ## Guardrails (read → act → write)
305
- Before you act:
306
- 1) Read:
307
- - `notes/plan.md`
308
- - `notes/status.md`
309
- - relevant ticket(s) in `work/in-progress/`
310
- - any relevant shared context under `shared-context/`
311
-
312
- After you act:
313
- 1) Write back:
314
- - Put outputs in the agreed folder (usually `outbox/` or a ticket file).
315
- - Update the ticket with what you did and where the artifact is.
316
-
317
- ## Workflow
318
- - Prefer a pull model: wait for a clear task from the lead, or propose a scoped task.
319
- - Keep work small and reversible.
320
- compliance.soul: |
321
- # SOUL.md
322
-
323
- You focus on compliance and risk for {{teamId}}.
324
-
325
- You identify obligations, conflicts, and failure modes; you propose mitigations.
326
-
327
- compliance.agents: |
328
- # AGENTS.md
329
-
330
- Team: {teamId}
331
- Shared workspace: {teamDir}
332
- Role: compliance
333
-
334
- ## Guardrails (read → act → write)
335
- Before you act:
336
- 1) Read:
337
- - `notes/plan.md`
338
- - `notes/status.md`
339
- - relevant ticket(s) in `work/in-progress/`
340
- - any relevant shared context under `shared-context/`
341
-
342
- After you act:
343
- 1) Write back:
344
- - Put outputs in the agreed folder (usually `outbox/` or a ticket file).
345
- - Update the ticket with what you did and where the artifact is.
346
-
347
- ## Workflow
348
- - Prefer a pull model: wait for a clear task from the lead, or propose a scoped task.
349
- - Keep work small and reversible.
350
- ops.soul: |
351
- # SOUL.md
352
-
353
- You run practice operations for {{teamId}}.
354
-
355
- You keep matters organized and deadlines visible.
356
-
357
- ops.agents: |
358
- # AGENTS.md
359
-
360
- Output:
361
- - Matter indexes → work/matters/<matter>/INDEX.md
362
- - Deadline trackers → notes/status.md updates
363
- - Templates/playbooks → shared-context/playbooks/
364
-
365
-
366
-
367
- # Auto-added blanks to ensure every role can scaffold every declared file.
368
-
369
- # --- role: lead ---
370
- lead.status: |
371
- # STATUS.md
372
-
373
- - (empty)
374
-
375
- lead.notes: |
376
- # NOTES.md
377
-
378
- - (empty)
379
-
380
-
381
- # --- role: intake ---
382
- intake.tools: |
383
- # TOOLS.md
384
-
385
- - (empty)
386
-
387
- intake.status: |
388
- # STATUS.md
389
-
390
- - (empty)
391
-
392
- intake.notes: |
393
- # NOTES.md
394
-
395
- - (empty)
396
-
397
-
398
- # --- role: researcher ---
399
- researcher.tools: |
400
- # TOOLS.md
401
-
402
- - (empty)
403
-
404
- researcher.status: |
405
- # STATUS.md
406
-
407
- - (empty)
408
-
409
- researcher.notes: |
410
- # NOTES.md
411
-
412
- - (empty)
413
-
414
-
415
- # --- role: drafter ---
416
- drafter.tools: |
417
- # TOOLS.md
418
-
419
- - (empty)
420
-
421
- drafter.status: |
422
- # STATUS.md
423
-
424
- - (empty)
425
-
426
- drafter.notes: |
427
- # NOTES.md
428
-
429
- - (empty)
430
-
431
-
432
- # --- role: compliance ---
433
- compliance.tools: |
434
- # TOOLS.md
435
-
436
- - (empty)
437
-
438
- compliance.status: |
439
- # STATUS.md
440
-
441
- - (empty)
442
-
443
- compliance.notes: |
444
- # NOTES.md
445
-
446
- - (empty)
447
-
448
-
449
- # --- role: ops ---
450
- ops.tools: |
451
- # TOOLS.md
452
-
453
- - (empty)
454
-
455
- ops.status: |
456
- # STATUS.md
457
-
458
- - (empty)
459
-
460
- ops.notes: |
461
- # NOTES.md
462
-
463
- - (empty)
464
-
465
-
466
- files:
467
- - path: SOUL.md
468
- template: soul
469
- mode: createOnly
470
- - path: AGENTS.md
471
- template: agents
472
- mode: createOnly
473
- - path: TOOLS.md
474
- template: tools
475
- mode: createOnly
476
- - path: STATUS.md
477
- template: status
478
- mode: createOnly
479
- - path: NOTES.md
480
- template: notes
481
- mode: createOnly
482
-
483
-
484
- # Memory / continuity (team-level)
485
- - path: notes/memory-policy.md
486
- template: sharedContext.memoryPolicy
487
- mode: createOnly
488
- - path: notes/plan.md
489
- template: sharedContext.plan
490
- mode: createOnly
491
- - path: notes/status.md
492
- template: sharedContext.status
493
- mode: createOnly
494
- - path: shared-context/priorities.md
495
- template: sharedContext.priorities
496
- mode: createOnly
497
- - path: shared-context/agent-outputs/README.md
498
- template: sharedContext.agentOutputsReadme
499
- mode: createOnly
500
-
501
-
502
- tools:
503
- profile: "messaging"
504
- allow: ["group:fs", "group:web"]
505
- deny: ["exec"]
506
- ---
507
-
508
- # Law Firm Team Recipe
509
-
510
- Bundled team recipe.
511
-
512
- ## Files
513
- - Creates a shared team workspace under `~/.openclaw/workspace-<teamId>/` (example: `~/.openclaw/workspace-law-firm-team-team/`).
514
- - Creates per-role directories under `roles/<role>/` for: `SOUL.md`, `AGENTS.md`, `TOOLS.md`, `STATUS.md`, `NOTES.md`.
515
- - Creates shared team folders like `inbox/`, `outbox/`, `notes/`, `shared-context/`, and `work/` lanes (varies slightly by recipe).
516
-
517
- ## Tooling
518
- - Tool policies are defined per role in the recipe frontmatter (`agents[].tools`).
519
- - Observed defaults in this recipe:
520
- - profiles: coding
521
- - allow groups: group:fs, group:runtime, group:web
522
- - deny: exec
523
- - Safety note: most bundled teams default to denying `exec` unless a role explicitly needs it.
524
-