create-claude-workspace 2.3.0 → 2.3.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.
@@ -143,8 +143,16 @@ export function buildRoutingPrompt(task, step, agents) {
143
143
  `## Available Agents`,
144
144
  agentList,
145
145
  ``,
146
+ `## Routing Rules`,
147
+ `- Planning tasks (step=plan): use architect agents (ui-engineer for frontend, backend-ts-architect for backend)`,
148
+ `- Implementation tasks (step=implement): use framework-specific agents (angular/react/vue/svelte-engineer) or backend-ts-architect`,
149
+ `- Test/QA tasks (step=test): use test-engineer (QA: E2E, integration, VRT, acceptance criteria)`,
150
+ `- Test infrastructure setup (VRT, Playwright config, test scaffolding): use test-engineer`,
151
+ `- CI/CD, deployment, pipeline config: use deployment-engineer`,
152
+ `- Git platform setup, secrets, labels: use devops-integrator`,
153
+ ``,
146
154
  `## Instructions`,
147
- `Choose the most qualified agent. If no agent fits, respond with agent: null and provide a new agent definition.`,
155
+ `Choose the most qualified agent based on the routing rules above. If no agent fits, respond with agent: null and provide a new agent definition.`,
148
156
  ``,
149
157
  `## Required Output Format`,
150
158
  `Respond with JSON only:`,
@@ -58,8 +58,9 @@ export async function runIteration(deps) {
58
58
  // Caller (scheduler.mts) handles pause state
59
59
  }
60
60
  }
61
- // Recover orphaned worktrees from previous runs
62
- if (state.iteration === 0) {
61
+ // Recover orphaned worktrees once per scheduler run (first iteration only)
62
+ if (!state._recoveryDone) {
63
+ state._recoveryDone = true;
63
64
  await recoverOrphanedWorktrees(projectDir, state, logger, deps);
64
65
  }
65
66
  // Load tasks (dual mode: platform issues or local TODO.md)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: test-engineer
3
- description: "QA engineer — writes E2E tests (Playwright), integration tests, and verifies acceptance criteria. Unit tests are the implementing developer's responsibility.\n\n<example>\nuser: \"Write E2E tests for the checkout flow\"\nassistant: \"I'll use the test-engineer agent to create Playwright E2E tests for this flow.\"\n</example>\n\n<example>\nuser: \"Verify the auth feature meets acceptance criteria\"\nassistant: \"I'll use the test-engineer agent to verify acceptance criteria and write integration tests.\"\n</example>\n\n<example>\nuser: \"Write integration tests for the API endpoints\"\nassistant: \"I'll use the test-engineer agent to create integration tests with real HTTP calls.\"\n</example>"
3
+ description: "QA engineer — writes E2E tests (Playwright), integration tests, VRT (visual regression testing) setup and tests, and verifies acceptance criteria. Also handles test infrastructure setup (Playwright config, VRT scaffolding, test patterns). Unit tests are the implementing developer's responsibility.\n\n<example>\nuser: \"Write E2E tests for the checkout flow\"\nassistant: \"I'll use the test-engineer agent to create Playwright E2E tests for this flow.\"\n</example>\n\n<example>\nuser: \"Verify the auth feature meets acceptance criteria\"\nassistant: \"I'll use the test-engineer agent to verify acceptance criteria and write integration tests.\"\n</example>\n\n<example>\nuser: \"Write integration tests for the API endpoints\"\nassistant: \"I'll use the test-engineer agent to create integration tests with real HTTP calls.\"\n</example>"
4
4
  model: sonnet
5
5
  ---
6
6
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-claude-workspace",
3
- "version": "2.3.0",
3
+ "version": "2.3.2",
4
4
  "author": "",
5
5
  "repository": {
6
6
  "type": "git",