@clawcipes/recipes 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/README.md +104 -0
- package/clawcipes_cook.jpg +0 -0
- package/docs/AGENTS_AND_SKILLS.md +155 -0
- package/docs/BUNDLED_RECIPES.md +208 -0
- package/docs/CLAWCIPES_KITCHEN.md +27 -0
- package/docs/COMMANDS.md +111 -0
- package/docs/INSTALLATION.md +76 -0
- package/docs/RECIPE_FORMAT.md +107 -0
- package/docs/TEAM_WORKFLOW.md +55 -0
- package/docs/TUTORIAL_CREATE_RECIPE.md +142 -0
- package/index.ts +747 -0
- package/openclaw.plugin.json +26 -0
- package/package.json +32 -0
- package/recipes/default/customer-support-team.md +155 -0
- package/recipes/default/developer.md +49 -0
- package/recipes/default/development-team.md +152 -0
- package/recipes/default/editor.md +50 -0
- package/recipes/default/product-team.md +171 -0
- package/recipes/default/project-manager.md +45 -0
- package/recipes/default/research-team.md +154 -0
- package/recipes/default/researcher.md +51 -0
- package/recipes/default/social-team.md +107 -0
- package/recipes/default/writing-team.md +138 -0
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# Recipe format
|
|
2
|
+
|
|
3
|
+
Recipes are Markdown files with YAML frontmatter.
|
|
4
|
+
|
|
5
|
+
They can be:
|
|
6
|
+
- **agent** recipes: scaffold a single agent workspace
|
|
7
|
+
- **team** recipes: scaffold a team workspace and multiple agents
|
|
8
|
+
|
|
9
|
+
## File locations
|
|
10
|
+
Recipes are discovered from:
|
|
11
|
+
- Built-in: `recipes/default/*.md` inside this plugin
|
|
12
|
+
- Workspace-local: `<workspaceRoot>/recipes/*.md` (default)
|
|
13
|
+
|
|
14
|
+
## Frontmatter (common)
|
|
15
|
+
```yaml
|
|
16
|
+
---
|
|
17
|
+
id: development-team
|
|
18
|
+
name: Development Team
|
|
19
|
+
kind: team # or agent
|
|
20
|
+
version: 0.1.0
|
|
21
|
+
description: ...
|
|
22
|
+
|
|
23
|
+
requiredSkills:
|
|
24
|
+
- some-skill
|
|
25
|
+
optionalSkills:
|
|
26
|
+
- another-skill
|
|
27
|
+
---
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
### `requiredSkills` / `optionalSkills`
|
|
31
|
+
These are **ClawHub skill slugs**.
|
|
32
|
+
|
|
33
|
+
They’re used by:
|
|
34
|
+
- `openclaw recipes status` (detect missing skills)
|
|
35
|
+
- `openclaw recipes install <recipeId>` (install the listed skills)
|
|
36
|
+
|
|
37
|
+
## Agent recipes
|
|
38
|
+
Agent recipes use templates + files.
|
|
39
|
+
|
|
40
|
+
### `templates`
|
|
41
|
+
A string map of template keys → template bodies.
|
|
42
|
+
|
|
43
|
+
### `files`
|
|
44
|
+
Each file entry writes a file under the agent’s workspace:
|
|
45
|
+
|
|
46
|
+
```yaml
|
|
47
|
+
files:
|
|
48
|
+
- path: SOUL.md
|
|
49
|
+
template: soul
|
|
50
|
+
mode: createOnly # or overwrite
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
Template rendering:
|
|
54
|
+
- Simple `{{var}}` replacement.
|
|
55
|
+
- No conditionals / no code execution.
|
|
56
|
+
|
|
57
|
+
Common vars:
|
|
58
|
+
- `agentId`
|
|
59
|
+
- `agentName`
|
|
60
|
+
|
|
61
|
+
## Team recipes
|
|
62
|
+
Team recipes define a team plus multiple agents:
|
|
63
|
+
|
|
64
|
+
```yaml
|
|
65
|
+
team:
|
|
66
|
+
teamId: development-team
|
|
67
|
+
name: Development Team
|
|
68
|
+
|
|
69
|
+
agents:
|
|
70
|
+
- role: lead
|
|
71
|
+
name: Dev Team Lead
|
|
72
|
+
- role: dev
|
|
73
|
+
name: Software Engineer
|
|
74
|
+
- role: devops
|
|
75
|
+
name: DevOps / SRE
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
### Team ID and agent IDs
|
|
79
|
+
- **Team IDs must end with `-team`** (enforced by `scaffold-team`).
|
|
80
|
+
- Agent IDs default to: `<teamId>-<role>`
|
|
81
|
+
|
|
82
|
+
### Template namespacing for teams
|
|
83
|
+
For team recipes, file templates are namespaced by role:
|
|
84
|
+
- `lead.soul`, `dev.soul`, etc.
|
|
85
|
+
|
|
86
|
+
If a `files[].template` key does not contain a `.`, Clawcipes prefixes it with `<role>.`.
|
|
87
|
+
|
|
88
|
+
## Tool policy
|
|
89
|
+
Recipes can include tool policy, which is written into `agents.list[].tools` when `--apply-config` is used:
|
|
90
|
+
|
|
91
|
+
```yaml
|
|
92
|
+
tools:
|
|
93
|
+
profile: coding
|
|
94
|
+
allow:
|
|
95
|
+
- group:fs
|
|
96
|
+
- group:web
|
|
97
|
+
- group:runtime
|
|
98
|
+
deny: []
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Team recipes can override tools per-agent via `agents[].tools`.
|
|
102
|
+
|
|
103
|
+
## Recommended conventions
|
|
104
|
+
- Keep `requiredSkills` minimal; use `optionalSkills` for “nice to have”.
|
|
105
|
+
- For teams, use file-first work queues:
|
|
106
|
+
- `work/backlog/0001-...md` style tickets
|
|
107
|
+
- filename ordering is the queue ordering
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
# Team workflow (file-first)
|
|
2
|
+
|
|
3
|
+
Clawcipes’ differentiator is the **shared team workspace** + a simple, durable, file-first workflow.
|
|
4
|
+
|
|
5
|
+
## Team workspace structure
|
|
6
|
+
When you scaffold a team:
|
|
7
|
+
|
|
8
|
+
```
|
|
9
|
+
teams/<teamId>/
|
|
10
|
+
inbox/
|
|
11
|
+
outbox/
|
|
12
|
+
shared/
|
|
13
|
+
notes/
|
|
14
|
+
work/
|
|
15
|
+
backlog/
|
|
16
|
+
in-progress/
|
|
17
|
+
done/
|
|
18
|
+
assignments/
|
|
19
|
+
TICKETS.md
|
|
20
|
+
TEAM.md
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
## The loop
|
|
24
|
+
1) **Intake**
|
|
25
|
+
- New requests land in `inbox/`.
|
|
26
|
+
|
|
27
|
+
2) **Plan**
|
|
28
|
+
- Convert the request into a numbered ticket in `work/backlog/`.
|
|
29
|
+
- Filename ordering is the priority queue.
|
|
30
|
+
|
|
31
|
+
3) **Execute**
|
|
32
|
+
- Move ticket file to `work/in-progress/`.
|
|
33
|
+
- Do work; write artifacts into `shared/` or agent workspaces.
|
|
34
|
+
|
|
35
|
+
4) **Complete**
|
|
36
|
+
- Move ticket to `work/done/`.
|
|
37
|
+
- Add a `*.DONE.md` report next to it.
|
|
38
|
+
|
|
39
|
+
## Dispatcher command
|
|
40
|
+
The lead can convert a natural-language request into artifacts with:
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
openclaw recipes dispatch --team-id <teamId> --request "..." --owner dev
|
|
44
|
+
```
|
|
45
|
+
|
|
46
|
+
This creates:
|
|
47
|
+
- an inbox entry
|
|
48
|
+
- a backlog ticket
|
|
49
|
+
- an assignment stub
|
|
50
|
+
|
|
51
|
+
## Why file-first?
|
|
52
|
+
- Works offline
|
|
53
|
+
- Easy to version control
|
|
54
|
+
- Easy to audit and search
|
|
55
|
+
- Doesn’t depend on any single UI
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# Tutorial: create your first recipe
|
|
2
|
+
|
|
3
|
+
This tutorial shows how to create a **team recipe** (shared workspace + multiple agents).
|
|
4
|
+
|
|
5
|
+
You’ll learn:
|
|
6
|
+
- where recipes live
|
|
7
|
+
- how frontmatter works
|
|
8
|
+
- how templates/files are written
|
|
9
|
+
- how to scaffold a team and run the file-first workflow
|
|
10
|
+
|
|
11
|
+
## Step 0 — confirm Clawcipes is installed
|
|
12
|
+
```bash
|
|
13
|
+
openclaw plugins list
|
|
14
|
+
openclaw recipes list
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Step 1 — create a recipe file in your OpenClaw workspace
|
|
18
|
+
Create:
|
|
19
|
+
|
|
20
|
+
- `~/.openclaw/workspace/recipes/my-first-team.md`
|
|
21
|
+
|
|
22
|
+
Minimal example:
|
|
23
|
+
|
|
24
|
+
```md
|
|
25
|
+
---
|
|
26
|
+
id: my-first-team
|
|
27
|
+
name: My First Team
|
|
28
|
+
kind: team
|
|
29
|
+
version: 0.1.0
|
|
30
|
+
description: A tiny demo team
|
|
31
|
+
|
|
32
|
+
# Optional: skill slugs to install with `openclaw recipes install my-first-team`
|
|
33
|
+
requiredSkills: []
|
|
34
|
+
|
|
35
|
+
team:
|
|
36
|
+
teamId: my-first-team
|
|
37
|
+
|
|
38
|
+
agents:
|
|
39
|
+
- role: lead
|
|
40
|
+
name: Team Lead
|
|
41
|
+
tools:
|
|
42
|
+
profile: coding
|
|
43
|
+
allow: ["group:fs", "group:web"]
|
|
44
|
+
deny: ["exec"]
|
|
45
|
+
|
|
46
|
+
- role: worker
|
|
47
|
+
name: Worker
|
|
48
|
+
tools:
|
|
49
|
+
profile: coding
|
|
50
|
+
allow: ["group:fs", "group:web"]
|
|
51
|
+
deny: ["exec"]
|
|
52
|
+
|
|
53
|
+
templates:
|
|
54
|
+
lead.soul: |
|
|
55
|
+
# SOUL.md
|
|
56
|
+
|
|
57
|
+
You are the lead for {{teamId}}.
|
|
58
|
+
Convert requests into tickets and assign work.
|
|
59
|
+
|
|
60
|
+
lead.agents: |
|
|
61
|
+
# AGENTS.md
|
|
62
|
+
|
|
63
|
+
Team directory: {{teamDir}}
|
|
64
|
+
|
|
65
|
+
Workflow:
|
|
66
|
+
- Intake: check `inbox/`
|
|
67
|
+
- Normalize: create tickets in `work/backlog/`
|
|
68
|
+
- Assign: write stubs in `work/assignments/`
|
|
69
|
+
|
|
70
|
+
worker.soul: |
|
|
71
|
+
# SOUL.md
|
|
72
|
+
|
|
73
|
+
You are a worker on {{teamId}}.
|
|
74
|
+
|
|
75
|
+
worker.agents: |
|
|
76
|
+
# AGENTS.md
|
|
77
|
+
|
|
78
|
+
Team directory: {{teamDir}}
|
|
79
|
+
|
|
80
|
+
How you work:
|
|
81
|
+
- Pick the lowest numbered ticket assigned to you.
|
|
82
|
+
- Move it to `work/in-progress/`.
|
|
83
|
+
- Complete it and write a report in `work/done/`.
|
|
84
|
+
|
|
85
|
+
files:
|
|
86
|
+
- path: SOUL.md
|
|
87
|
+
template: soul
|
|
88
|
+
mode: createOnly
|
|
89
|
+
- path: AGENTS.md
|
|
90
|
+
template: agents
|
|
91
|
+
mode: createOnly
|
|
92
|
+
|
|
93
|
+
# Default tools if an agent doesn’t override tools above
|
|
94
|
+
tools:
|
|
95
|
+
profile: coding
|
|
96
|
+
allow: ["group:fs", "group:web"]
|
|
97
|
+
deny: ["exec"]
|
|
98
|
+
---
|
|
99
|
+
|
|
100
|
+
# My First Team
|
|
101
|
+
|
|
102
|
+
This is a demo recipe.
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
## Step 2 — scaffold the team
|
|
106
|
+
Important: team ids must end with `-team`.
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
openclaw recipes scaffold-team my-first-team --team-id my-first-team-team --apply-config
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
You should now have:
|
|
113
|
+
- `~/.openclaw/workspace/teams/my-first-team-team/`
|
|
114
|
+
- `~/.openclaw/workspace/agents/my-first-team-team-lead/`
|
|
115
|
+
- `~/.openclaw/workspace/agents/my-first-team-team-worker/`
|
|
116
|
+
|
|
117
|
+
## Step 3 — dispatch a request
|
|
118
|
+
```bash
|
|
119
|
+
openclaw recipes dispatch \
|
|
120
|
+
--team-id my-first-team-team \
|
|
121
|
+
--request "Draft a README for the team" \
|
|
122
|
+
--owner worker
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
This will propose (or write, with `--yes`) three artifacts:
|
|
126
|
+
- an inbox entry
|
|
127
|
+
- a backlog ticket
|
|
128
|
+
- an assignment stub
|
|
129
|
+
|
|
130
|
+
## Step 4 — run the workflow
|
|
131
|
+
- Move the ticket from `work/backlog/` → `work/in-progress/`
|
|
132
|
+
- Do the work
|
|
133
|
+
- Move the ticket to `work/done/` and add a `*.DONE.md` report
|
|
134
|
+
|
|
135
|
+
## Common mistakes
|
|
136
|
+
- **Forgetting the `-team` suffix** on `--team-id` (required).
|
|
137
|
+
- Using `deny: ["exec"]` on agents that need to run commands.
|
|
138
|
+
- Not restarting the gateway after installing the plugin.
|
|
139
|
+
|
|
140
|
+
## Next steps
|
|
141
|
+
- Read `docs/RECIPE_FORMAT.md` for full frontmatter coverage.
|
|
142
|
+
- Copy and modify a bundled recipe from `docs/BUNDLED_RECIPES.md`.
|