@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.
@@ -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`.