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:
|
|
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:
|
|
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:
|
|
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
|
-
//
|
|
282
|
-
|
|
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('---');
|