@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.
- package/index.ts +10 -10
- 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/
|
|
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");
|