@jiggai/recipes 0.2.21 → 0.2.23
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/README.md +10 -7
- package/docs/AGENTS_AND_SKILLS.md +21 -9
- package/docs/BUNDLED_RECIPES.md +12 -7
- package/docs/TEAM_WORKFLOW.md +3 -1
- package/index.ts +17 -2
- package/openclaw.plugin.json +1 -1
- package/package.json +2 -1
- package/recipes/default/business-team.md +166 -51
- package/recipes/default/clinic-team.md +161 -29
- package/recipes/default/construction-team.md +167 -39
- package/recipes/default/crypto-trader-team.md +161 -29
- package/recipes/default/customer-support-team.md +140 -69
- package/recipes/default/development-team.md +51 -119
- package/recipes/default/financial-planner-team.md +167 -38
- package/recipes/default/law-firm-team.md +167 -40
- package/recipes/default/marketing-team.md +420 -123
- package/recipes/default/product-team.md +160 -93
- package/recipes/default/research-team.md +140 -66
- package/recipes/default/researcher.md +1 -1
- package/recipes/default/social-team.md +649 -60
- package/recipes/default/stock-trader-team.md +189 -38
- package/recipes/default/writing-team.md +143 -55
|
@@ -62,33 +62,78 @@ templates:
|
|
|
62
62
|
lead.soul: |
|
|
63
63
|
# SOUL.md
|
|
64
64
|
|
|
65
|
-
You are the
|
|
65
|
+
You are the Team Lead / Dispatcher for {{teamId}}.
|
|
66
66
|
|
|
67
67
|
Core job:
|
|
68
|
-
-
|
|
69
|
-
-
|
|
70
|
-
-
|
|
71
|
-
|
|
68
|
+
- Convert new requests into scoped tickets.
|
|
69
|
+
- Assign work to Dev or DevOps.
|
|
70
|
+
- Monitor progress and unblock.
|
|
71
|
+
- Report completions.
|
|
72
72
|
lead.agents: |
|
|
73
73
|
# AGENTS.md
|
|
74
74
|
|
|
75
|
-
Team
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
75
|
+
Team: {{teamId}}
|
|
76
|
+
Shared workspace: {{teamDir}}
|
|
77
|
+
|
|
78
|
+
## Guardrails (read → act → write)
|
|
79
|
+
|
|
80
|
+
Before you act:
|
|
81
|
+
1) Read:
|
|
82
|
+
- `notes/plan.md`
|
|
83
|
+
- `notes/status.md`
|
|
84
|
+
- `shared-context/priorities.md`
|
|
85
|
+
- the relevant ticket(s)
|
|
86
|
+
|
|
87
|
+
After you act:
|
|
88
|
+
1) Write back:
|
|
89
|
+
- Update tickets with decisions/assignments.
|
|
90
|
+
- Keep `notes/status.md` current (3–5 bullets per active ticket).
|
|
91
|
+
|
|
92
|
+
## Curator model
|
|
93
|
+
|
|
94
|
+
You are the curator of:
|
|
95
|
+
- `notes/plan.md`
|
|
96
|
+
- `shared-context/priorities.md`
|
|
97
|
+
|
|
98
|
+
Everyone else should append to:
|
|
99
|
+
- `shared-context/agent-outputs/` (append-only)
|
|
100
|
+
- `shared-context/feedback/`
|
|
101
|
+
|
|
102
|
+
Your job is to periodically distill those inputs into the curated files.
|
|
103
|
+
|
|
104
|
+
## File-first workflow (tickets)
|
|
105
|
+
|
|
106
|
+
Source of truth is the shared team workspace.
|
|
107
|
+
|
|
108
|
+
Folders:
|
|
109
|
+
- `inbox/` — raw incoming requests (append-only)
|
|
110
|
+
- `work/backlog/` — normalized tickets, filename-ordered (`0001-...md`)
|
|
111
|
+
- `work/in-progress/` — tickets currently being executed
|
|
112
|
+
- `work/testing/` — tickets awaiting QA verification
|
|
113
|
+
- `work/done/` — completed tickets + completion notes
|
|
114
|
+
- `notes/plan.md` — current plan / priorities (curated)
|
|
115
|
+
- `notes/status.md` — current status snapshot
|
|
116
|
+
- `shared-context/` — shared context + append-only outputs
|
|
117
|
+
|
|
118
|
+
### Ticket numbering (critical)
|
|
119
|
+
- Backlog tickets MUST be named `0001-...md`, `0002-...md`, etc.
|
|
120
|
+
- The developer pulls the lowest-numbered ticket assigned to them.
|
|
121
|
+
|
|
122
|
+
### Ticket format
|
|
123
|
+
See `TICKETS.md` in the team root. Every ticket should include:
|
|
124
|
+
- Context
|
|
125
|
+
- Requirements
|
|
126
|
+
- Acceptance criteria
|
|
127
|
+
- Owner (dev/devops)
|
|
128
|
+
- Status
|
|
129
|
+
|
|
130
|
+
### Your responsibilities
|
|
131
|
+
- For every new request in `inbox/`, create a normalized ticket in `work/backlog/`.
|
|
132
|
+
- Curate `notes/plan.md` and `shared-context/priorities.md`.
|
|
133
|
+
- Keep `notes/status.md` updated.
|
|
134
|
+
- When work is ready for QA, move the ticket to `work/testing/` and assign it to the tester.
|
|
135
|
+
- Only after QA verification, move the ticket to `work/done/` (or use `openclaw recipes complete`).
|
|
136
|
+
- When a completion appears in `work/done/`, write a short summary into `outbox/`.
|
|
92
137
|
researcher.soul: |
|
|
93
138
|
# SOUL.md
|
|
94
139
|
|
|
@@ -99,10 +144,26 @@ templates:
|
|
|
99
144
|
researcher.agents: |
|
|
100
145
|
# AGENTS.md
|
|
101
146
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
147
|
+
Team: {teamId}
|
|
148
|
+
Shared workspace: {teamDir}
|
|
149
|
+
Role: researcher
|
|
150
|
+
|
|
151
|
+
## Guardrails (read → act → write)
|
|
152
|
+
Before you act:
|
|
153
|
+
1) Read:
|
|
154
|
+
- `notes/plan.md`
|
|
155
|
+
- `notes/status.md`
|
|
156
|
+
- relevant ticket(s) in `work/in-progress/`
|
|
157
|
+
- any relevant shared context under `shared-context/`
|
|
158
|
+
|
|
159
|
+
After you act:
|
|
160
|
+
1) Write back:
|
|
161
|
+
- Put outputs in the agreed folder (usually `outbox/` or a ticket file).
|
|
162
|
+
- Update the ticket with what you did and where the artifact is.
|
|
163
|
+
|
|
164
|
+
## Workflow
|
|
165
|
+
- Prefer a pull model: wait for a clear task from the lead, or propose a scoped task.
|
|
166
|
+
- Keep work small and reversible.
|
|
106
167
|
signals.soul: |
|
|
107
168
|
# SOUL.md
|
|
108
169
|
|
|
@@ -113,10 +174,26 @@ templates:
|
|
|
113
174
|
signals.agents: |
|
|
114
175
|
# AGENTS.md
|
|
115
176
|
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
177
|
+
Team: {teamId}
|
|
178
|
+
Shared workspace: {teamDir}
|
|
179
|
+
Role: signals
|
|
180
|
+
|
|
181
|
+
## Guardrails (read → act → write)
|
|
182
|
+
Before you act:
|
|
183
|
+
1) Read:
|
|
184
|
+
- `notes/plan.md`
|
|
185
|
+
- `notes/status.md`
|
|
186
|
+
- relevant ticket(s) in `work/in-progress/`
|
|
187
|
+
- any relevant shared context under `shared-context/`
|
|
188
|
+
|
|
189
|
+
After you act:
|
|
190
|
+
1) Write back:
|
|
191
|
+
- Put outputs in the agreed folder (usually `outbox/` or a ticket file).
|
|
192
|
+
- Update the ticket with what you did and where the artifact is.
|
|
193
|
+
|
|
194
|
+
## Workflow
|
|
195
|
+
- Prefer a pull model: wait for a clear task from the lead, or propose a scoped task.
|
|
196
|
+
- Keep work small and reversible.
|
|
120
197
|
risk.soul: |
|
|
121
198
|
# SOUL.md
|
|
122
199
|
|
|
@@ -127,10 +204,26 @@ templates:
|
|
|
127
204
|
risk.agents: |
|
|
128
205
|
# AGENTS.md
|
|
129
206
|
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
207
|
+
Team: {teamId}
|
|
208
|
+
Shared workspace: {teamDir}
|
|
209
|
+
Role: risk
|
|
210
|
+
|
|
211
|
+
## Guardrails (read → act → write)
|
|
212
|
+
Before you act:
|
|
213
|
+
1) Read:
|
|
214
|
+
- `notes/plan.md`
|
|
215
|
+
- `notes/status.md`
|
|
216
|
+
- relevant ticket(s) in `work/in-progress/`
|
|
217
|
+
- any relevant shared context under `shared-context/`
|
|
218
|
+
|
|
219
|
+
After you act:
|
|
220
|
+
1) Write back:
|
|
221
|
+
- Put outputs in the agreed folder (usually `outbox/` or a ticket file).
|
|
222
|
+
- Update the ticket with what you did and where the artifact is.
|
|
223
|
+
|
|
224
|
+
## Workflow
|
|
225
|
+
- Prefer a pull model: wait for a clear task from the lead, or propose a scoped task.
|
|
226
|
+
- Keep work small and reversible.
|
|
134
227
|
journal.soul: |
|
|
135
228
|
# SOUL.md
|
|
136
229
|
|
|
@@ -141,10 +234,26 @@ templates:
|
|
|
141
234
|
journal.agents: |
|
|
142
235
|
# AGENTS.md
|
|
143
236
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
237
|
+
Team: {teamId}
|
|
238
|
+
Shared workspace: {teamDir}
|
|
239
|
+
Role: journal
|
|
240
|
+
|
|
241
|
+
## Guardrails (read → act → write)
|
|
242
|
+
Before you act:
|
|
243
|
+
1) Read:
|
|
244
|
+
- `notes/plan.md`
|
|
245
|
+
- `notes/status.md`
|
|
246
|
+
- relevant ticket(s) in `work/in-progress/`
|
|
247
|
+
- any relevant shared context under `shared-context/`
|
|
248
|
+
|
|
249
|
+
After you act:
|
|
250
|
+
1) Write back:
|
|
251
|
+
- Put outputs in the agreed folder (usually `outbox/` or a ticket file).
|
|
252
|
+
- Update the ticket with what you did and where the artifact is.
|
|
253
|
+
|
|
254
|
+
## Workflow
|
|
255
|
+
- Prefer a pull model: wait for a clear task from the lead, or propose a scoped task.
|
|
256
|
+
- Keep work small and reversible.
|
|
148
257
|
ops.soul: |
|
|
149
258
|
# SOUL.md
|
|
150
259
|
|
|
@@ -158,3 +267,45 @@ templates:
|
|
|
158
267
|
Output:
|
|
159
268
|
- Calendar/cadence checklists → work/playbook/cadence.md
|
|
160
269
|
- Tooling notes → shared-context/tooling/
|
|
270
|
+
|
|
271
|
+
files:
|
|
272
|
+
- path: SOUL.md
|
|
273
|
+
template: soul
|
|
274
|
+
mode: createOnly
|
|
275
|
+
- path: AGENTS.md
|
|
276
|
+
template: agents
|
|
277
|
+
mode: createOnly
|
|
278
|
+
- path: TOOLS.md
|
|
279
|
+
template: tools
|
|
280
|
+
mode: createOnly
|
|
281
|
+
- path: STATUS.md
|
|
282
|
+
template: status
|
|
283
|
+
mode: createOnly
|
|
284
|
+
- path: NOTES.md
|
|
285
|
+
template: notes
|
|
286
|
+
mode: createOnly
|
|
287
|
+
|
|
288
|
+
tools:
|
|
289
|
+
profile: "coding"
|
|
290
|
+
allow: ["group:fs", "group:web"]
|
|
291
|
+
deny: []
|
|
292
|
+
---
|
|
293
|
+
|
|
294
|
+
# Stock Trader Team Recipe
|
|
295
|
+
|
|
296
|
+
Bundled team recipe.
|
|
297
|
+
|
|
298
|
+
## Files
|
|
299
|
+
- Creates a shared team workspace under `~/.openclaw/workspace-<teamId>/` (example: `~/.openclaw/workspace-stock-trader-team-team/`).
|
|
300
|
+
- Creates per-role directories under `roles/<role>/` for: `SOUL.md`, `AGENTS.md`, `TOOLS.md`, `STATUS.md`, `NOTES.md`.
|
|
301
|
+
- Creates shared team folders like `inbox/`, `outbox/`, `notes/`, `shared-context/`, and `work/` lanes (varies slightly by recipe).
|
|
302
|
+
|
|
303
|
+
## Tooling
|
|
304
|
+
- Tool policies are defined per role in the recipe frontmatter (`agents[].tools`).
|
|
305
|
+
- Observed defaults in this recipe:
|
|
306
|
+
- profiles: coding
|
|
307
|
+
- allow groups: group:fs, group:runtime, group:web
|
|
308
|
+
- deny: exec
|
|
309
|
+
- Safety note: most bundled teams default to denying `exec` unless a role explicitly needs it.
|
|
310
|
+
|
|
311
|
+
|
|
@@ -51,38 +51,78 @@ templates:
|
|
|
51
51
|
lead.soul: |
|
|
52
52
|
# SOUL.md
|
|
53
53
|
|
|
54
|
-
You are the
|
|
54
|
+
You are the Team Lead / Dispatcher for {{teamId}}.
|
|
55
55
|
|
|
56
56
|
Core job:
|
|
57
|
-
-
|
|
58
|
-
-
|
|
59
|
-
-
|
|
60
|
-
|
|
57
|
+
- Convert new requests into scoped tickets.
|
|
58
|
+
- Assign work to Dev or DevOps.
|
|
59
|
+
- Monitor progress and unblock.
|
|
60
|
+
- Report completions.
|
|
61
61
|
lead.agents: |
|
|
62
62
|
# AGENTS.md
|
|
63
63
|
|
|
64
64
|
Team: {{teamId}}
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
##
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
65
|
+
Shared workspace: {{teamDir}}
|
|
66
|
+
|
|
67
|
+
## Guardrails (read → act → write)
|
|
68
|
+
|
|
69
|
+
Before you act:
|
|
70
|
+
1) Read:
|
|
71
|
+
- `notes/plan.md`
|
|
72
|
+
- `notes/status.md`
|
|
73
|
+
- `shared-context/priorities.md`
|
|
74
|
+
- the relevant ticket(s)
|
|
75
|
+
|
|
76
|
+
After you act:
|
|
77
|
+
1) Write back:
|
|
78
|
+
- Update tickets with decisions/assignments.
|
|
79
|
+
- Keep `notes/status.md` current (3–5 bullets per active ticket).
|
|
80
|
+
|
|
81
|
+
## Curator model
|
|
82
|
+
|
|
83
|
+
You are the curator of:
|
|
84
|
+
- `notes/plan.md`
|
|
85
|
+
- `shared-context/priorities.md`
|
|
86
|
+
|
|
87
|
+
Everyone else should append to:
|
|
88
|
+
- `shared-context/agent-outputs/` (append-only)
|
|
89
|
+
- `shared-context/feedback/`
|
|
90
|
+
|
|
91
|
+
Your job is to periodically distill those inputs into the curated files.
|
|
92
|
+
|
|
93
|
+
## File-first workflow (tickets)
|
|
94
|
+
|
|
95
|
+
Source of truth is the shared team workspace.
|
|
96
|
+
|
|
97
|
+
Folders:
|
|
98
|
+
- `inbox/` — raw incoming requests (append-only)
|
|
99
|
+
- `work/backlog/` — normalized tickets, filename-ordered (`0001-...md`)
|
|
100
|
+
- `work/in-progress/` — tickets currently being executed
|
|
101
|
+
- `work/testing/` — tickets awaiting QA verification
|
|
102
|
+
- `work/done/` — completed tickets + completion notes
|
|
103
|
+
- `notes/plan.md` — current plan / priorities (curated)
|
|
104
|
+
- `notes/status.md` — current status snapshot
|
|
105
|
+
- `shared-context/` — shared context + append-only outputs
|
|
106
|
+
|
|
107
|
+
### Ticket numbering (critical)
|
|
108
|
+
- Backlog tickets MUST be named `0001-...md`, `0002-...md`, etc.
|
|
109
|
+
- The developer pulls the lowest-numbered ticket assigned to them.
|
|
110
|
+
|
|
111
|
+
### Ticket format
|
|
112
|
+
See `TICKETS.md` in the team root. Every ticket should include:
|
|
113
|
+
- Context
|
|
114
|
+
- Requirements
|
|
115
|
+
- Acceptance criteria
|
|
116
|
+
- Owner (dev/devops)
|
|
117
|
+
- Status
|
|
118
|
+
|
|
119
|
+
### Your responsibilities
|
|
120
|
+
- For every new request in `inbox/`, create a normalized ticket in `work/backlog/`.
|
|
121
|
+
- Curate `notes/plan.md` and `shared-context/priorities.md`.
|
|
122
|
+
- Keep `notes/status.md` updated.
|
|
123
|
+
- When work is ready for QA, move the ticket to `work/testing/` and assign it to the tester.
|
|
124
|
+
- Only after QA verification, move the ticket to `work/done/` (or use `openclaw recipes complete`).
|
|
125
|
+
- When a completion appears in `work/done/`, write a short summary into `outbox/`.
|
|
86
126
|
outliner.soul: |
|
|
87
127
|
# SOUL.md
|
|
88
128
|
|
|
@@ -93,16 +133,26 @@ templates:
|
|
|
93
133
|
outliner.agents: |
|
|
94
134
|
# AGENTS.md
|
|
95
135
|
|
|
96
|
-
Team
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
136
|
+
Team: {teamId}
|
|
137
|
+
Shared workspace: {teamDir}
|
|
138
|
+
Role: outliner
|
|
139
|
+
|
|
140
|
+
## Guardrails (read → act → write)
|
|
141
|
+
Before you act:
|
|
142
|
+
1) Read:
|
|
143
|
+
- `notes/plan.md`
|
|
144
|
+
- `notes/status.md`
|
|
145
|
+
- relevant ticket(s) in `work/in-progress/`
|
|
146
|
+
- any relevant shared context under `shared-context/`
|
|
147
|
+
|
|
148
|
+
After you act:
|
|
149
|
+
1) Write back:
|
|
150
|
+
- Put outputs in the agreed folder (usually `outbox/` or a ticket file).
|
|
151
|
+
- Update the ticket with what you did and where the artifact is.
|
|
152
|
+
|
|
153
|
+
## Workflow
|
|
154
|
+
- Prefer a pull model: wait for a clear task from the lead, or propose a scoped task.
|
|
155
|
+
- Keep work small and reversible.
|
|
106
156
|
writer.soul: |
|
|
107
157
|
# SOUL.md
|
|
108
158
|
|
|
@@ -113,12 +163,26 @@ templates:
|
|
|
113
163
|
writer.agents: |
|
|
114
164
|
# AGENTS.md
|
|
115
165
|
|
|
116
|
-
Team
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
166
|
+
Team: {teamId}
|
|
167
|
+
Shared workspace: {teamDir}
|
|
168
|
+
Role: writer
|
|
169
|
+
|
|
170
|
+
## Guardrails (read → act → write)
|
|
171
|
+
Before you act:
|
|
172
|
+
1) Read:
|
|
173
|
+
- `notes/plan.md`
|
|
174
|
+
- `notes/status.md`
|
|
175
|
+
- relevant ticket(s) in `work/in-progress/`
|
|
176
|
+
- any relevant shared context under `shared-context/`
|
|
177
|
+
|
|
178
|
+
After you act:
|
|
179
|
+
1) Write back:
|
|
180
|
+
- Put outputs in the agreed folder (usually `outbox/` or a ticket file).
|
|
181
|
+
- Update the ticket with what you did and where the artifact is.
|
|
182
|
+
|
|
183
|
+
## Workflow
|
|
184
|
+
- Prefer a pull model: wait for a clear task from the lead, or propose a scoped task.
|
|
185
|
+
- Keep work small and reversible.
|
|
122
186
|
editor.soul: |
|
|
123
187
|
# SOUL.md
|
|
124
188
|
|
|
@@ -129,18 +193,26 @@ templates:
|
|
|
129
193
|
editor.agents: |
|
|
130
194
|
# AGENTS.md
|
|
131
195
|
|
|
132
|
-
Team
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
196
|
+
Team: {teamId}
|
|
197
|
+
Shared workspace: {teamDir}
|
|
198
|
+
Role: editor
|
|
199
|
+
|
|
200
|
+
## Guardrails (read → act → write)
|
|
201
|
+
Before you act:
|
|
202
|
+
1) Read:
|
|
203
|
+
- `notes/plan.md`
|
|
204
|
+
- `notes/status.md`
|
|
205
|
+
- relevant ticket(s) in `work/in-progress/`
|
|
206
|
+
- any relevant shared context under `shared-context/`
|
|
207
|
+
|
|
208
|
+
After you act:
|
|
209
|
+
1) Write back:
|
|
210
|
+
- Put outputs in the agreed folder (usually `outbox/` or a ticket file).
|
|
211
|
+
- Update the ticket with what you did and where the artifact is.
|
|
212
|
+
|
|
213
|
+
## Workflow
|
|
214
|
+
- Prefer a pull model: wait for a clear task from the lead, or propose a scoped task.
|
|
215
|
+
- Keep work small and reversible.
|
|
144
216
|
lead.tools: |
|
|
145
217
|
# TOOLS.md
|
|
146
218
|
|
|
@@ -221,8 +293,24 @@ files:
|
|
|
221
293
|
tools:
|
|
222
294
|
profile: "coding"
|
|
223
295
|
allow: ["group:fs", "group:web"]
|
|
224
|
-
deny: ["exec"]
|
|
225
296
|
---
|
|
226
297
|
# Writing Team Recipe
|
|
227
298
|
|
|
228
299
|
A lightweight writing pipeline that pairs briefs/outlines/drafts/edits with a file-first ticket workflow.
|
|
300
|
+
|
|
301
|
+
## Files
|
|
302
|
+
- Creates a shared team workspace under `~/.openclaw/workspace-<teamId>/` (example: `~/.openclaw/workspace-writing-team-team/`).
|
|
303
|
+
- Creates per-role directories under `roles/<role>/` for: `SOUL.md`, `AGENTS.md`, `TOOLS.md`, `STATUS.md`, `NOTES.md`.
|
|
304
|
+
- Creates shared team folders like `inbox/`, `outbox/`, `notes/`, `shared-context/`, and `work/` lanes (varies slightly by recipe).
|
|
305
|
+
|
|
306
|
+
## Tooling
|
|
307
|
+
- Tool policies are defined per role in the recipe frontmatter (`agents[].tools`).
|
|
308
|
+
- Observed defaults in this recipe:
|
|
309
|
+
- profiles: coding
|
|
310
|
+
- allow groups: group:fs, group:runtime, group:web
|
|
311
|
+
- deny: exec
|
|
312
|
+
- Safety note: most bundled teams default to denying `exec` unless a role explicitly needs it.
|
|
313
|
+
|
|
314
|
+
|
|
315
|
+
itly needs it.
|
|
316
|
+
|