@clawcipes/recipes 0.2.1 → 0.2.2

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.
Files changed (2) hide show
  1. package/index.ts +10 -10
  2. package/package.json +1 -1
package/index.ts CHANGED
@@ -856,7 +856,7 @@ const recipesPlugin = {
856
856
  .description("Lead/dispatcher: turn a natural-language request into inbox + backlog ticket(s) + assignment stubs")
857
857
  .requiredOption("--team-id <teamId>", "Team id (workspace folder under teams/)")
858
858
  .option("--request <text>", "Natural-language request (if omitted, will prompt in TTY)")
859
- .option("--owner <owner>", "Ticket owner: dev|devops|lead", "dev")
859
+ .option("--owner <owner>", "Ticket owner: dev|devops|lead|test", "dev")
860
860
  .option("--yes", "Skip review and write files without prompting")
861
861
  .action(async (options: any) => {
862
862
  const cfg = getCfg(api);
@@ -873,8 +873,8 @@ const recipesPlugin = {
873
873
  const assignmentsDir = path.join(teamDir, "work", "assignments");
874
874
 
875
875
  const owner = String(options.owner ?? "dev");
876
- if (!['dev','devops','lead'].includes(owner)) {
877
- throw new Error("--owner must be one of: dev, devops, lead");
876
+ if (!['dev','devops','lead','test'].includes(owner)) {
877
+ throw new Error("--owner must be one of: dev, devops, lead, test");
878
878
  }
879
879
 
880
880
  const slugify = (s: string) =>
@@ -1165,7 +1165,7 @@ const recipesPlugin = {
1165
1165
  .description("Assign a ticket to an owner (writes assignment stub + updates Owner: in ticket)")
1166
1166
  .requiredOption("--team-id <teamId>", "Team id")
1167
1167
  .requiredOption("--ticket <ticket>", "Ticket id or number (e.g. 0007 or 0007-some-slug)")
1168
- .requiredOption("--owner <owner>", "Owner: dev|devops|lead")
1168
+ .requiredOption("--owner <owner>", "Owner: dev|devops|lead|test")
1169
1169
  .option("--overwrite", "Overwrite existing assignment file")
1170
1170
  .option("--yes", "Skip confirmation")
1171
1171
  .action(async (options: any) => {
@@ -1175,8 +1175,8 @@ const recipesPlugin = {
1175
1175
  const teamDir = path.resolve(workspaceRoot, "..", `workspace-${teamId}`);
1176
1176
 
1177
1177
  const owner = String(options.owner);
1178
- if (!['dev','devops','lead'].includes(owner)) {
1179
- throw new Error("--owner must be one of: dev, devops, lead");
1178
+ if (!['dev','devops','lead','test'].includes(owner)) {
1179
+ throw new Error("--owner must be one of: dev, devops, lead, test");
1180
1180
  }
1181
1181
 
1182
1182
  const stageDir = (stage: string) => {
@@ -1258,7 +1258,7 @@ const recipesPlugin = {
1258
1258
  .description("Shortcut: assign ticket to owner + move to in-progress")
1259
1259
  .requiredOption("--team-id <teamId>", "Team id")
1260
1260
  .requiredOption("--ticket <ticket>", "Ticket id or number")
1261
- .option("--owner <owner>", "Owner: dev|devops|lead", "dev")
1261
+ .option("--owner <owner>", "Owner: dev|devops|lead|test", "dev")
1262
1262
  .option("--yes", "Skip confirmation")
1263
1263
  .action(async (options: any) => {
1264
1264
  const workspaceRoot = api.config.agents?.defaults?.workspace;
@@ -1267,8 +1267,8 @@ const recipesPlugin = {
1267
1267
  const teamDir = path.resolve(workspaceRoot, "..", `workspace-${teamId}`);
1268
1268
 
1269
1269
  const owner = String(options.owner ?? 'dev');
1270
- if (!['dev','devops','lead'].includes(owner)) {
1271
- throw new Error("--owner must be one of: dev, devops, lead");
1270
+ if (!['dev','devops','lead','test'].includes(owner)) {
1271
+ throw new Error("--owner must be one of: dev, devops, lead, test");
1272
1272
  }
1273
1273
 
1274
1274
  const stageDir = (stage: string) => {
@@ -1497,7 +1497,7 @@ const recipesPlugin = {
1497
1497
 
1498
1498
  const planMd = `# Plan — ${teamId}\n\n- (empty)\n`;
1499
1499
  const statusMd = `# Status — ${teamId}\n\n- (empty)\n`;
1500
- const ticketsMd = `# Tickets — ${teamId}\n\n## Naming\n- Backlog tickets live in work/backlog/\n- Filename ordering is the queue: 0001-..., 0002-...\n\n## Required fields\nEach ticket should include:\n- Title\n- Context\n- Requirements\n- Acceptance criteria\n- Owner (dev/devops/lead)\n- Status (queued/in_progress/blocked/done)\n\n## Example\n\n\`\`\`md\n# 0001-example-ticket\n\nOwner: dev\nStatus: queued\n\n## Context\n...\n\n## Requirements\n- ...\n\n## Acceptance criteria\n- ...\n\`\`\`\n`;
1500
+ const ticketsMd = `# Tickets — ${teamId}\n\n## Naming\n- Backlog tickets live in work/backlog/\n- Filename ordering is the queue: 0001-..., 0002-...\n\n## Required fields\nEach ticket should include:\n- Title\n- Context\n- Requirements\n- Acceptance criteria\n- Owner (dev/devops/lead/test)\n- Status (queued/in-progress/testing/done)\n\n## Example\n\n\`\`\`md\n# 0001-example-ticket\n\nOwner: dev\nStatus: queued\n\n## Context\n...\n\n## Requirements\n- ...\n\n## Acceptance criteria\n- ...\n\`\`\`\n`;
1501
1501
 
1502
1502
  await writeFileSafely(planPath, planMd, overwrite ? "overwrite" : "createOnly");
1503
1503
  await writeFileSafely(statusPath, statusMd, overwrite ? "overwrite" : "createOnly");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@clawcipes/recipes",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "Clawcipes recipes plugin for OpenClaw (markdown recipes -> scaffold agents/teams)",
5
5
  "main": "index.ts",
6
6
  "type": "commonjs",