create-claude-workspace 1.1.26 → 1.1.28

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.
@@ -237,7 +237,7 @@ To determine if a task is frontend, backend, or fullstack, use this heuristic:
237
237
  - **SAFETY LIMIT: Max 3 fix attempts.** If still failing after 3:
238
238
  1. Delegate to the original architect agent: "Build/lint/test is failing after 3 fix attempts. Errors: [paste errors]. Suggest a fix or a different approach."
239
239
  2. If architect provides fix -> apply it, 1 more attempt
240
- 3. If still failing -> revert changes (`git stash --include-untracked -m "REVERTED: [task title] — build failure"`), return to main (`git checkout main 2>/dev/null || git checkout master`), delete orphaned branch (`git branch -D feat/{slug}`), mark task as `[~]` SKIPPED in TODO.md, log as BLOCKER in MEMORY.md with full error details, commit tracking on main (`git add TODO.md MEMORY.md && git commit -m "chore: mark task as skipped"`, push only if remote exists), move to next task
240
+ 3. If still failing -> revert changes (`git stash --include-untracked -m "REVERTED: [task title] — build failure"`), return to main (`git checkout main 2>/dev/null || git checkout master`), delete orphaned branch (`git branch -D feat/{slug}`), mark task as `[~]` SKIPPED in TODO.md, log as BLOCKER in MEMORY.md with full error details, commit tracking on main (`git add TODO.md MEMORY.md && git commit -m "chore: skip [task title] — [brief reason]"`, push only if remote exists), move to next task
241
241
  - DO NOT proceed to review with broken build or failing tests
242
242
 
243
243
  **STEP 6: VISUAL VERIFICATION (UI tasks only)**
@@ -298,7 +298,7 @@ To determine if a task is frontend, backend, or fullstack, use this heuristic:
298
298
  1. Delegate to the original architect agent: "Review cycle exceeded 5 iterations. Here are the remaining issues: [list]. Suggest a fundamentally different approach."
299
299
  2. If architect provides new approach -> restart from STEP 3 with new plan (counts as 1 additional attempt)
300
300
  3. If architect says issues are cosmetic/acceptable -> proceed with current code
301
- 4. If still stuck -> **SKIP this task**: revert with `git stash --include-untracked -m "REVERTED: [task title] — review cycle exceeded"`, return to main (`git checkout main 2>/dev/null || git checkout master`), delete orphaned branch (`git branch -D feat/{slug}`), mark as `- [~] ~~**Task**~~ — SKIPPED: review cycle exceeded, see MEMORY.md blocker` in TODO.md, log as BLOCKER in MEMORY.md with full details, commit tracking on main (`git add TODO.md MEMORY.md && git commit -m "chore: mark task as skipped"`, push only if remote exists), move to next task
301
+ 4. If still stuck -> **SKIP this task**: revert with `git stash --include-untracked -m "REVERTED: [task title] — review cycle exceeded"`, return to main (`git checkout main 2>/dev/null || git checkout master`), delete orphaned branch (`git branch -D feat/{slug}`), mark as `- [~] ~~**Task**~~ — SKIPPED: review cycle exceeded, see MEMORY.md blocker` in TODO.md, log as BLOCKER in MEMORY.md with full details, commit tracking on main (`git add TODO.md MEMORY.md && git commit -m "chore: skip [task title] — [brief reason]"`, push only if remote exists), move to next task
302
302
 
303
303
  **STEP 10: FINAL VERIFICATION**
304
304
  - Update MEMORY.md: set `Current Step: 10 — FINAL VERIFY`
@@ -484,7 +484,7 @@ NEVER stay stuck. Escalation order:
484
484
  **A: RESEARCH** — Explore codebase, WebSearch for docs
485
485
  **B: ARCHITECT** — Delegate to `backend-ts-architect` or `ui-engineer` with problem description
486
486
  **C: DECIDE** — Pick best approach, log to MEMORY.md
487
- **D: SKIP (last resort)** — Only if blocker is objectively unresolvable. Revert changes (`git stash --include-untracked -m "REVERTED: [task title]"`), return to main (`git checkout main 2>/dev/null || git checkout master`), delete orphaned branch (`git branch -D feat/{slug}`). Then log everything in MEMORY.md Blockers section, mark task as `[~]` SKIPPED in TODO.md with reason, commit tracking on main (`git add TODO.md MEMORY.md && git commit -m "chore: mark task as skipped"`, push only if remote exists), move to next task.
487
+ **D: SKIP (last resort)** — Only if blocker is objectively unresolvable. Revert changes (`git stash --include-untracked -m "REVERTED: [task title]"`), return to main (`git checkout main 2>/dev/null || git checkout master`), delete orphaned branch (`git branch -D feat/{slug}`). Then log everything in MEMORY.md Blockers section, mark task as `[~]` SKIPPED in TODO.md with reason, commit tracking on main (`git add TODO.md MEMORY.md && git commit -m "chore: skip [task title] — [brief reason]"`, push only if remote exists), move to next task.
488
488
 
489
489
  ## End-of-Iteration Output
490
490
 
@@ -514,6 +514,7 @@ Examples:
514
514
  - NEVER implement without architect plan (STEP 2) or skip code review (STEP 7)
515
515
  - Each commit = 1 logical unit
516
516
  - Conventional commits: feat/fix/refactor/chore/docs
517
+ - **NEVER create commits that only change MEMORY.md or TODO.md** — tracking file updates MUST be included in the same commit as the implementation they track (STEP 11). After merge (STEP 12), do NOT commit anything. No `chore: update progress tracking`, no `chore: update MEMORY.md`, no `chore: log hotfix`. If you feel the urge to commit tracking-only changes, STOP — you missed including them in STEP 11.
517
518
  - All files in ENGLISH
518
519
  - TODO.md + MEMORY.md are your tracking system — keep them PRECISE and CURRENT
519
520
  - If deviating from plan, LOG the reason in MEMORY.md
@@ -270,7 +270,7 @@ async function main() {
270
270
  const existing = readCheckpoint(opts.projectDir);
271
271
  if (opts.resume && existing) {
272
272
  checkpoint = existing;
273
- log.info(`Resuming from checkpoint: iteration ${checkpoint.iteration}, task ${checkpoint.lastTaskSeen ?? 'unknown'}`);
273
+ log.info(`Resuming from checkpoint: iteration ${checkpoint.iteration}, task ${checkpoint.lastTaskSeen ?? 'unknown'}${existing.lastSessionId ? `, session ${existing.lastSessionId}` : ''}`);
274
274
  }
275
275
  else {
276
276
  if (existing && !opts.resume) {
@@ -278,8 +278,9 @@ async function main() {
278
278
  }
279
279
  checkpoint = emptyCheckpoint();
280
280
  }
281
- // If resume-session specified, use it for first iteration
282
- let resumeSessionId = opts.resumeSession;
281
+ // Resume last Claude session: explicit --resume-session takes priority,
282
+ // otherwise --resume auto-continues the session that was interrupted by CTRL+C.
283
+ let resumeSessionId = opts.resumeSession ?? (opts.resume && existing?.lastSessionId ? existing.lastSessionId : null);
283
284
  let resumePrompt = null;
284
285
  setupSignals(opts, log, checkpoint);
285
286
  log.info('---');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-claude-workspace",
3
- "version": "1.1.26",
3
+ "version": "1.1.28",
4
4
  "description": "Scaffold a project with Claude Code agents for autonomous AI-driven development",
5
5
  "type": "module",
6
6
  "bin": {