create-claude-workspace 1.1.112 → 1.1.114

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.
@@ -124,8 +124,19 @@ If MEMORY.md indicates "Project complete" (Current Phase contains "PROJECT COMPL
124
124
  - Then continue with the normal health check (step 2+). The new tasks will be picked up in STEP 1.
125
125
 
126
126
  **If no new tasks found** (TODO.md has no `[ ]` and no external issues ingested):
127
- - Run `git status --short` — if there are uncommitted/untracked source files (excluding `.env`, `node_modules/`, `.claude/autonomous-state.json`), the project is NOT complete. These files need to be reviewed and committed. Create a task: `- [ ] **Review uncommitted files** — [count] uncommitted files found after completion, review and commit or discard (Complexity: S, Type: fullstack)` and continue development.
128
- - If working tree is clean project is truly complete, end session.
127
+
128
+ 3. **MANDATORY: Check working tree** before declaring project complete, you MUST run:
129
+ ```bash
130
+ git status --short | grep -v -E '^\?\? (\.env|node_modules/|\.claude/autonomous-state\.json)'
131
+ ```
132
+ If this produces ANY output (untracked `??`, modified `M`, added `A`, etc.), the project is **NOT complete**:
133
+ - These are source files that were never committed — likely from a task that crashed before STEP 9.
134
+ - Create a task in TODO.md: `- [ ] **Review and commit uncommitted files** — [count] uncommitted files found in working tree (Complexity: S, Type: fullstack)`
135
+ - Reset MEMORY.md to active state (clear "PROJECT COMPLETE", set the new task as Next)
136
+ - Continue with normal health check (step 2+)
137
+ - **Do NOT declare project complete. Do NOT end session. Do NOT enter idle polling.**
138
+
139
+ Only if `git status --short` output is empty (or only contains excluded files) → project is truly complete, end session.
129
140
 
130
141
  ### 2. Resolve app names and package manager
131
142
  - Read CLAUDE.md — find app name(s) and package manager from the Architecture/Tech Stack section
@@ -424,14 +435,22 @@ To determine if a task is frontend, backend, or fullstack, use this heuristic:
424
435
  - If product-owner recommends changes -> delegate to `technical-planner` to update TODO.md
425
436
  - CLAUDE.md refresh: attempt `/revise-claude-md` skill. If the skill is not available, manually read CLAUDE.md, append any new patterns/conventions discovered during the completed phase under `## Project-Specific Details`, and commit the update.
426
437
  - **Release**: if git integration active, delegate to `devops-integrator`: "Phase [N-1] is complete. Create a minor release with changelog from conventional commits since last tag. Close the milestone for Phase [N-1]."
427
- - **npm Publish** (if CLAUDE.md has `Distribution: npm`): after the release tag is created, check if the CI pipeline will handle publishing (MEMORY.md `NPM_CI_AUTH: configured` + CI publish job exists in `.github/workflows/` or `.gitlab-ci.yml`). If CI handles it, do nothing — the tag triggers the pipeline. If no CI publish job yet (first release, or no CI configured), publish directly:
428
- 1. Read CLAUDE.md for registry and access level
429
- 2. **Pre-flight**: `npm whoami --registry [REGISTRY_URL]`if 401/403, log error to MEMORY.md and skip publish (do not crash)
430
- 3. **Version bump**: update library `package.json` version to match the release tag (e.g., tag `v1.1.0` version `1.1.0`). Use `nx release version [VERSION] --skip-publish` if available, otherwise update `package.json` directly. Commit the version bump: `git add [lib]/package.json && git commit -m "chore: bump [LIB] to [VERSION]"`, then re-tag if needed.
431
- 4. Build publishable libraries: `nx build [LIB] --configuration=production`
432
- 5. Publish: `npm publish dist/libs/[LIB] --access [public/restricted]`
433
- 6. If this is the **first publish** (npm returns 404/not-found before publish): log in MEMORY.md Notes: "First npm publish done locally for [LIB]. User should configure Trusted Publishing on npmjs.com for future CI publishes."
434
- 7. **NEVER** echo, log, or write the npm token value it is read from `~/.npmrc` automatically
438
+ - **npm Publish** (if CLAUDE.md has `Distribution: npm`): after the release tag is created, check if the CI pipeline will handle publishing (MEMORY.md `NPM_CI_AUTH: configured` + CI publish job exists in `.github/workflows/` or `.gitlab-ci.yml`).
439
+ - **If CI publish job exists**: the tag push triggers the pipeline. **You MUST watch the pipeline to completion:**
440
+ 1. Poll CI status for the tag pipeline (same approach as STEP 9b `gh run list --branch [tag]` / `glab ci list --branch [tag]`).
441
+ 2. **If pipeline succeeds**: verify the package was actually published `npm view [PACKAGE]@[VERSION] version`. If it returns the expected version, publish is confirmed. Log in MEMORY.md Notes.
442
+ 3. **If pipeline fails**: fetch logs, diagnose the failure. Common causes: missing CI secret (`NPM_TOKEN`/`NODE_AUTH_TOKEN`), wrong registry URL, build failure.
443
+ - **Fixable in CI config** (e.g., missing secret, wrong config): delegate to `deployment-engineer` to fix. Re-trigger pipeline. Max 2 fix attempts.
444
+ - **Not fixable in CI** (e.g., registry auth issues, npm outage): fall back to direct publish (steps below).
445
+ 4. **Do NOT assume "CI handles it" and move on.** An unverified publish is a silent failure.
446
+ - **If no CI publish job** (first release, or no CI configured), publish directly:
447
+ 1. Read CLAUDE.md for registry and access level
448
+ 2. **Pre-flight**: `npm whoami --registry [REGISTRY_URL]` — if 401/403, log error to MEMORY.md and skip publish (do not crash)
449
+ 3. **Version bump**: update library `package.json` version to match the release tag (e.g., tag `v1.1.0` → version `1.1.0`). Use `nx release version [VERSION] --skip-publish` if available, otherwise update `package.json` directly. Commit the version bump: `git add [lib]/package.json && git commit -m "chore: bump [LIB] to [VERSION]"`, then re-tag if needed.
450
+ 4. Build publishable libraries: `nx build [LIB] --configuration=production`
451
+ 5. Publish: `npm publish dist/libs/[LIB] --access [public/restricted]`
452
+ 6. If this is the **first publish** (npm returns 404/not-found before publish): log in MEMORY.md Notes: "First npm publish done locally for [LIB]. User should configure Trusted Publishing on npmjs.com for future CI publishes."
453
+ 7. **NEVER** echo, log, or write the npm token value — it is read from `~/.npmrc` automatically
435
454
  - Update MEMORY.md (on main): set `Current Task: [task title]`
436
455
  - **Create worktree** (see §Git Worktree Workflow):
437
456
  - If git integration is active (TODO.md has `<!-- #N -->` markers):
@@ -804,7 +823,7 @@ To determine if a task is frontend, backend, or fullstack, use this heuristic:
804
823
  - Update MEMORY.md with "Project complete" status
805
824
  - Final CLAUDE.md refresh (attempt `/revise-claude-md`, fallback to manual update)
806
825
  - **Final release**: if git integration active, delegate to `devops-integrator`: "Project is complete. Create a stable release (v1.0.0 if first stable, or next major/minor). Include full changelog. Close all remaining milestones."
807
- - **npm Publish** (if CLAUDE.md has `Distribution: npm`): same logic as phase transition publish — let CI handle it if configured, otherwise publish directly. For the final release, verify the published version matches the release tag.
826
+ - **npm Publish** (if CLAUDE.md has `Distribution: npm`): same logic as phase transition publish — watch CI pipeline to completion if configured, fall back to direct publish on failure. For the final release, verify the published version matches the release tag: `npm view [PACKAGE]@[VERSION] version`.
808
827
  - End loop
809
828
 
810
829
  ## MEMORY.md Template
@@ -832,7 +851,7 @@ For critical production bugs (outside normal TODO.md flow):
832
851
  - Copy MEMORY.md into worktree. MEMORY.md: add note under "Notes": `Hotfix: [description] ([date])`, set `Current Task` to `(none)`, `Current Step` to `(none)`, `Current Worktree` to `(none)`
833
852
  - Do NOT update TODO.md checkboxes unless the fix corresponds to an existing task
834
853
  7. Post-merge: follow STEP 10 logic (merge to main from project root, clean up worktree + branch). No additional commits.
835
- 8. **Patch release**: if git integration active, delegate to `devops-integrator`: "Hotfix merged. Create a patch release with changelog."
854
+ 8. **Patch release**: if git integration active, delegate to `devops-integrator`: "Hotfix merged. Create a patch release with changelog." If CLAUDE.md has `Distribution: npm`, follow the same publish verification logic as phase transition (watch CI pipeline, verify `npm view`, fall back to direct publish on failure).
836
855
 
837
856
  **Skipped steps:** STEP 4 (tests — unless the bug reveals missing test coverage), STEP 5 (visual verification).
838
857
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-claude-workspace",
3
- "version": "1.1.112",
3
+ "version": "1.1.114",
4
4
  "author": "",
5
5
  "repository": {
6
6
  "type": "git",