create-claude-workspace 1.1.149 → 1.1.151
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/dist/scripts/lib/tui.mjs
CHANGED
|
@@ -175,8 +175,7 @@ export class TUI {
|
|
|
175
175
|
line += ` | ${trunc(s.taskName, 20)}`;
|
|
176
176
|
if (s.paused)
|
|
177
177
|
line += ' | PAUSED';
|
|
178
|
-
|
|
179
|
-
line += ` > ${s.inputBuf}`;
|
|
178
|
+
line += s.inputBuf ? ` › ${s.inputBuf}` : ' › type to send input';
|
|
180
179
|
// Truncate to terminal width
|
|
181
180
|
const cols = process.stdout.columns || 120;
|
|
182
181
|
if (line.length > cols)
|
|
@@ -201,8 +200,12 @@ export class TUI {
|
|
|
201
200
|
line += ` | ${ANSI_COLORS.cyan}${trunc(s.taskName, 20)}${RESET}\x1b[7m`;
|
|
202
201
|
if (s.paused)
|
|
203
202
|
line += ` | ${ANSI_COLORS.yellow}⏸ PAUSED${RESET}\x1b[7m`;
|
|
204
|
-
if (s.inputBuf)
|
|
205
|
-
line += ` › ${s.inputBuf}`;
|
|
203
|
+
if (s.inputBuf) {
|
|
204
|
+
line += ` ${RESET}${ANSI_COLORS.white}› ${s.inputBuf}${RESET}`;
|
|
205
|
+
}
|
|
206
|
+
else {
|
|
207
|
+
line += ` ${RESET}${ANSI_COLORS.gray}› type to send input${RESET}`;
|
|
208
|
+
}
|
|
206
209
|
line += ` ${RESET}`;
|
|
207
210
|
return line;
|
|
208
211
|
}
|
|
@@ -369,6 +369,19 @@ If `PLAN.md` exists in the project root, check whether it changed since the last
|
|
|
369
369
|
- After merge (STEP 10), EXIT. Do NOT update MEMORY.md after merge — it was already committed in STEP 9 and arrived on main via merge. Do NOT ask whether to continue, do NOT wait for confirmation, do NOT start another task. Do NOT create any commits after merge.
|
|
370
370
|
- Track complexity in MEMORY.md `Complexity This Session` for informational purposes only (S=1, M=2, L=4).
|
|
371
371
|
|
|
372
|
+
### 14. User input during autonomous operation
|
|
373
|
+
The user can send messages mid-session via the interactive TUI. When you receive a user message during the workflow:
|
|
374
|
+
|
|
375
|
+
- **Read and understand the request** — determine what the user wants.
|
|
376
|
+
- **Task/feature request** ("add X", "build Y", "I want Z"): delegate to `technical-planner` to create properly structured tasks in TODO.md with correct phase, dependencies, complexity, and Type field. The planner decides priority placement — urgent requests go to the top of the current phase, normal requests go to the appropriate phase. Then **continue your current task** — do NOT drop what you're doing. The new task will be picked up in a future invocation.
|
|
377
|
+
- **Change to current task** ("use X instead", "also add Y here", "don't forget Z"): incorporate the feedback into your current implementation. If you're past STEP 3 (IMPLEMENT), adjust the code. If you're in STEP 2 (PLAN), adjust the plan.
|
|
378
|
+
- **Bug report / fix request** ("X is broken", "fix Y"): if it's related to the current task, fix it now. If it's a separate issue, create a hotfix task at the top of the current phase in TODO.md (mark as `Complexity: S`, `Type:` based on affected files).
|
|
379
|
+
- **Stop / abort** ("stop", "cancel", "skip this"): mark the current task as `[~]` SKIPPED in TODO.md with reason "user request", clean up worktree, commit tracking on main, EXIT.
|
|
380
|
+
- **Question / status** ("what are you doing?", "how far along?"): respond briefly with current step and task, then continue working.
|
|
381
|
+
- **Reprioritization** ("do X first", "skip phase 2", "focus on Y"): update TODO.md accordingly (reorder, mark `[~]` SKIPPED with reason). If the current task should be dropped, treat as stop/abort above.
|
|
382
|
+
|
|
383
|
+
**Do NOT pause or ask for confirmation** — process the input and continue. The user is monitoring asynchronously; they don't expect a back-and-forth conversation.
|
|
384
|
+
|
|
372
385
|
## Task Type Detection
|
|
373
386
|
|
|
374
387
|
To determine if a task is frontend, backend, or fullstack, use this heuristic:
|
|
@@ -43,7 +43,7 @@ After the conversation, scan what already exists. Do NOT create or scaffold anyt
|
|
|
43
43
|
- `react` or `next` → React
|
|
44
44
|
- `vue` or `nuxt` → Vue
|
|
45
45
|
- `svelte` or `@sveltejs/kit` → Svelte
|
|
46
|
-
- None of the above → no frontend
|
|
46
|
+
- None of the above → no frontend detected yet (for new projects, the framework will be chosen in Step 4b)
|
|
47
47
|
- Store the detected framework for Step 4 (profile selection)
|
|
48
48
|
- List `apps/` and `libs/` structure if they exist
|
|
49
49
|
- Check for existing plan/design/UX files (TODO.md, PLAN.md, PRODUCT.md, UX.md)
|
|
@@ -182,9 +182,13 @@ Create a **minimal** CLAUDE.md in the project root by filling what is KNOWN from
|
|
|
182
182
|
- Keep: CLI-First Principle, Code Quality & Linting, and general coding conventions — these apply to all project types
|
|
183
183
|
- The result should be a working CLAUDE.md that will be EXPANDED by architect agents as they make technical decisions
|
|
184
184
|
|
|
185
|
-
**4b.
|
|
185
|
+
**4b. Choose and copy frontend profile:**
|
|
186
186
|
|
|
187
|
-
|
|
187
|
+
**For new projects with a UI (no framework detected yet):** Ask the user which frontend framework they prefer: Angular, React, Vue, or Svelte. If they have no preference, default to React. **NEVER use plain HTML/CSS/JS** — all frontend development requires one of the four supported frameworks (there are no agents or profiles for vanilla web development).
|
|
188
|
+
|
|
189
|
+
**For existing projects:** Use the framework detected in Step 3.
|
|
190
|
+
|
|
191
|
+
Once the framework is determined:
|
|
188
192
|
1. Check `.claude/profiles/` for the matching profile file:
|
|
189
193
|
- Angular → `.claude/profiles/angular.md`
|
|
190
194
|
- React → `.claude/profiles/react.md`
|
|
@@ -193,7 +197,7 @@ If a frontend framework was detected (or is expected for a new project):
|
|
|
193
197
|
2. Copy the profile to `.claude/profiles/frontend.md` in the project
|
|
194
198
|
3. If the profile file doesn't exist in the kit (not yet created), warn: "No profile found for [framework]. The ui-engineer, test-engineer, and senior-code-reviewer agents will rely on their native knowledge of [framework]. Consider creating `.claude/profiles/frontend.md` with project-specific conventions."
|
|
195
199
|
|
|
196
|
-
If
|
|
200
|
+
If the project has no UI (backend-only / TS library), skip this step.
|
|
197
201
|
|
|
198
202
|
### Step 5: Product Planning — DELEGATE to `product-owner` agent
|
|
199
203
|
|
|
@@ -31,7 +31,7 @@ Read these files (all mandatory if they exist):
|
|
|
31
31
|
### 2. Determine Tech Stack (for new/empty projects)
|
|
32
32
|
|
|
33
33
|
If the codebase has no `nx.json` or `package.json` (brand new project), YOU must decide the tech stack based on PRODUCT.md features:
|
|
34
|
-
- **Does it need a UI?** →
|
|
34
|
+
- **Does it need a UI?** → MUST choose one of the supported frontend frameworks: **Angular, React, Vue, or Svelte**. NEVER use plain HTML/CSS/JS — there is no agent or profile for vanilla web development. Check `.claude/profiles/` for available profiles. If the user mentioned a preference in the discovery conversation, use that. If no preference, default to React (widest ecosystem).
|
|
35
35
|
- **Does it need a backend?** → Default: Hono on Cloudflare Workers (production) + Node.js (local dev). Backend code must be platform-agnostic — no Node-specific or CF-specific APIs in business/domain layers.
|
|
36
36
|
- **Does it need a database?** → Default: D1 (Cloudflare production) + SQLite/better-sqlite3 (local dev). Both behind repository interfaces.
|
|
37
37
|
- **Package manager** → Default to `npm` unless PRODUCT.md or user context suggests otherwise.
|