@clawcipes/recipes 0.2.4 → 0.2.6

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 CHANGED
@@ -4,8 +4,6 @@
4
4
  <img src="./clawcipes_cook.jpg" alt="Clawcipes logo" width="240" />
5
5
  </p>
6
6
 
7
- > **Experimental:** We’re in active development. Installing should not have any negative impacts, but it’s always good to be safe and copy your `~/.openclaw` folder to a backup.
8
-
9
7
  Clawcipes is an OpenClaw plugin that provides **CLI-first recipes** for scaffolding specialist agents and teams from Markdown.
10
8
 
11
9
  If you like durable workflows: Clawcipes is built around a **file-first team workspace** (inbox/backlog/in-progress/testing/done) that plays nicely with git.
@@ -57,7 +55,8 @@ openclaw recipes dispatch \
57
55
  - `openclaw recipes install <idOrSlug> [--yes] [--global|--agent-id <id>|--team-id <id>]` (skills: global or scoped)
58
56
  - `openclaw recipes bind|unbind|bindings` (multi-agent routing)
59
57
  - `openclaw recipes dispatch ...` (request → inbox + ticket + assignment)
60
- - `openclaw recipes tickets|move-ticket|assign|take|complete` (file-first ticket workflow)
58
+ - `openclaw recipes tickets|move-ticket|assign|take|handoff|complete` (file-first ticket workflow)
59
+ - `openclaw recipes cleanup-workspaces` (safe cleanup of temporary test/scaffold workspaces)
61
60
 
62
61
  For full details, see `docs/COMMANDS.md`.
63
62
 
@@ -78,6 +77,21 @@ Start here:
78
77
  - Agents + skills: `docs/AGENTS_AND_SKILLS.md`
79
78
  - Tutorial (create a recipe): `docs/TUTORIAL_CREATE_RECIPE.md`
80
79
 
80
+ ## Development
81
+ ### Unit tests (vitest)
82
+ Run:
83
+ - `npm test`
84
+
85
+ ### Scaffold smoke test (regression)
86
+ A lightweight smoke check validates scaffold-team output contains the required testing workflow docs (ticket 0004).
87
+
88
+ Run:
89
+ - `npm run test:smoke` (or `npm run scaffold:smoke`)
90
+
91
+ Notes:
92
+ - Creates a temporary `workspace-smoke-<timestamp>-team` under `~/.openclaw/` and then deletes it.
93
+ - Exits non-zero on mismatch.
94
+
81
95
  Reference:
82
96
  - Commands: `docs/COMMANDS.md`
83
97
  - Recipe format: `docs/RECIPE_FORMAT.md`
@@ -151,6 +151,7 @@ A **team** recipe scaffolds a **shared workspace root** plus role folders:
151
151
  work/
152
152
  backlog/
153
153
  in-progress/
154
+ testing/
154
155
  done/
155
156
  assignments/
156
157
  roles/
@@ -162,7 +163,7 @@ Each role agent is a separate OpenClaw agent id (`<teamId>-<role>`), but they sh
162
163
 
163
164
  The shared workspace is the source of truth for:
164
165
  - intake (`inbox/`)
165
- - work queue (`work/backlog`, `work/in-progress`, `work/done`)
166
+ - work queue (`work/backlog`, `work/in-progress`, `work/testing`, `work/done`)
166
167
  - assignments (`work/assignments`)
167
168
  - deliverables (`outbox/`)
168
169
 
@@ -23,5 +23,5 @@ Clawcipes Kitchen is under active development.
23
23
  ## Roadmap (high level)
24
24
  - Approvals UI (approve/deny + audit trail)
25
25
  - Recipe browser and scaffold flows
26
- - Team dashboards (backlog/in-progress/done)
26
+ - Team dashboards (backlog/in-progress/testing/done)
27
27
  - Publishing workflow integration
package/docs/COMMANDS.md CHANGED
@@ -165,6 +165,31 @@ openclaw recipes tickets --team-id <teamId>
165
165
  openclaw recipes tickets --team-id <teamId> --json
166
166
  ```
167
167
 
168
+ ## `cleanup-workspaces`
169
+ List (dry-run, default) or delete (with `--yes`) temporary test/scaffold team workspaces under your OpenClaw home directory.
170
+
171
+ Safety rails:
172
+ - Only considers `workspace-<teamId>` directories where `<teamId>`:
173
+ - ends with `-team`
174
+ - starts with an allowed prefix (default: `smoke-`, `qa-`, `tmp-`, `test-`)
175
+ - Refuses symlinks
176
+ - Protected teams (at minimum: `development-team`) are never deleted
177
+
178
+ Examples:
179
+ ```bash
180
+ # Dry-run (default): list what would be deleted
181
+ openclaw recipes cleanup-workspaces
182
+
183
+ # Actually delete eligible workspaces
184
+ openclaw recipes cleanup-workspaces --yes
185
+
186
+ # Custom prefixes (repeatable)
187
+ openclaw recipes cleanup-workspaces --prefix smoke- --prefix qa- --yes
188
+
189
+ # JSON output
190
+ openclaw recipes cleanup-workspaces --json
191
+ ```
192
+
168
193
  ## `move-ticket`
169
194
  Move a ticket file between workflow stages and update the ticket’s `Status:` field.
170
195
 
@@ -188,7 +213,7 @@ openclaw recipes assign --team-id <teamId> --ticket 0007 --owner dev
188
213
  openclaw recipes assign --team-id <teamId> --ticket 0007 --owner lead
189
214
  ```
190
215
 
191
- Owners (current): `dev|devops|lead`.
216
+ Owners (current): `dev|devops|lead|test`.
192
217
 
193
218
  ## `take`
194
219
  Shortcut: assign + move to in-progress.
@@ -197,6 +222,18 @@ Shortcut: assign + move to in-progress.
197
222
  openclaw recipes take --team-id <teamId> --ticket 0007 --owner dev
198
223
  ```
199
224
 
225
+ ## `handoff`
226
+ QA handoff in one step: move a ticket to `work/testing/`, set `Status: testing`, assign to a tester (default `test`), and write/update the assignment stub.
227
+
228
+ ```bash
229
+ openclaw recipes handoff --team-id <teamId> --ticket 0007
230
+ openclaw recipes handoff --team-id <teamId> --ticket 0007 --tester test
231
+ ```
232
+
233
+ Notes:
234
+ - Creates `work/testing/` if missing.
235
+ - Idempotent: if the ticket is already in `work/testing/`, it won’t re-move it; it will ensure fields + assignment stub.
236
+
200
237
  ## `complete`
201
238
  Shortcut: move to done + ensure `Status: done` + add `Completed:` timestamp.
202
239
 
@@ -214,7 +251,7 @@ openclaw recipes dispatch \
214
251
  Options:
215
252
  - `--team-id <teamId>` (required)
216
253
  - `--request <text>` (optional; prompts in TTY)
217
- - `--owner dev|devops|lead` (default: `dev`)
254
+ - `--owner dev|devops|lead|test` (default: `dev`)
218
255
  - `--yes` (skip review prompt)
219
256
 
220
257
  Creates (createOnly):
@@ -0,0 +1,65 @@
1
+ # Verify built-in team recipes (scaffold + cron jobs)
2
+
3
+ This checklist verifies that each built-in **team** recipe scaffolds correctly and that any recipe-defined cron jobs reconcile safely.
4
+
5
+ ## Prereqs
6
+ - You have OpenClaw installed and `openclaw` is on PATH.
7
+ - Set recipes cron installation behavior in config (safe default is `prompt`).
8
+ - `cronInstallation: prompt` ⇒ asks before installing cron jobs
9
+ - `cronInstallation: on` ⇒ installs cron jobs (enabled state still depends on `enabledByDefault`)
10
+ - `cronInstallation: off` ⇒ skips cron reconciliation
11
+
12
+ ## Teams to verify
13
+ - product-team
14
+ - research-team
15
+ - writing-team
16
+ - social-team
17
+ - customer-support-team
18
+ - development-team
19
+
20
+ ## Commands
21
+
22
+ ### Scaffold each team
23
+
24
+ > Note: `--team-id` must end with `-team`.
25
+
26
+ For each recipe id `<rid>` above:
27
+
28
+ ```bash
29
+ openclaw recipes scaffold-team <rid> --team-id <rid>-team --apply-config
30
+ ```
31
+
32
+ ### Verify scaffold output
33
+
34
+ For each `~/.openclaw/workspace-<rid>-team/` ensure:
35
+ - `notes/plan.md` exists
36
+ - `notes/status.md` exists
37
+ - `shared-context/priorities.md` exists
38
+ - `shared-context/agent-outputs/` exists
39
+ - `work/backlog/`, `work/in-progress/`, `work/testing/`, `work/done/` exist
40
+
41
+ ### Verify cron reconciliation behavior
42
+
43
+ 1) With `cronInstallation: prompt`:
44
+ - Re-run scaffold-team and confirm you are prompted.
45
+ - Answer **No** and verify that installed jobs are created **disabled** (or not created, depending on implementation).
46
+
47
+ 2) With `cronInstallation: on`:
48
+ - Re-run scaffold-team and verify recipe cron jobs are installed.
49
+
50
+ 3) Confirm jobs are listed:
51
+
52
+ ```bash
53
+ openclaw cron list
54
+ ```
55
+
56
+ 4) Optionally force-run a job:
57
+
58
+ ```bash
59
+ openclaw cron run <jobId>
60
+ ```
61
+
62
+ ## What to record
63
+ - Any recipe that fails to scaffold
64
+ - Any cron job install/update errors
65
+ - Any cron job that runs but fails (include logs / error output)