create-claude-workspace 1.1.60 → 1.1.62

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.
@@ -254,7 +254,7 @@ publish:
254
254
  script:
255
255
  - echo "//registry.npmjs.org/:_authToken=${NPM_TOKEN}" > .npmrc
256
256
  - [PKG] install
257
- - npx nx build [LIB] --configuration=production
257
+ - nx build [LIB] --configuration=production
258
258
  - npm publish dist/libs/[LIB] --access [public/restricted] --provenance
259
259
  after_script:
260
260
  - rm -f .npmrc # Clean up token file
@@ -294,7 +294,7 @@ publish:
294
294
  # npmjs.com: //registry.npmjs.org/
295
295
  # GitHub Packages: //npm.pkg.github.com/
296
296
  - [PKG] install
297
- - npx nx build [LIB] --configuration=production
297
+ - nx build [LIB] --configuration=production
298
298
  - npm publish dist/libs/[LIB] --access [public/restricted]
299
299
  after_script:
300
300
  - rm -f .npmrc # Clean up token file
@@ -86,7 +86,7 @@ At the beginning of EVERY session (including every Ralph Loop iteration):
86
86
  - Install: `{PKG} install` (bun: `bun install`, npm: `npm ci`, pnpm: `pnpm install --frozen-lockfile`, yarn: `yarn install --frozen-lockfile`)
87
87
  - Run script: `{PKG} run [script]` (bun: `bun run`, npm: `npm run`)
88
88
  - Add package: `{PKG} add [pkg]` (npm: `npm install [pkg]`)
89
- - Execute binary: `bunx` / `npx` / `pnpm exec` / `yarn dlx`
89
+ - Execute binary (PKG_RUNNER): bun → `bunx`, npm `npx`, pnpm `pnpm exec`, yarn `yarn dlx`. Store as `PKG_RUNNER` in Session Config. Use `{PKG_RUNNER}` everywhere instead of hardcoding `npx`.
90
90
  - Also note: workflow mode from CLAUDE.md — `Workflow: solo` or `Workflow: team` (default: solo)
91
91
  - Store these in MEMORY.md under a `## Session Config` section if not already present
92
92
  - **If Session Config has "TBD" values** (new project before Phase 0): scan `apps/` directory. If apps now exist (Phase 0 completed), update the values. If still empty, keep "TBD" — Phase 0 scaffolding will create them.
@@ -387,10 +387,10 @@ To determine if a task is frontend, backend, or fullstack, use this heuristic:
387
387
  nx serve [FRONTEND_APP] &
388
388
  for i in $(seq 1 60); do curl -s http://localhost:4200 > /dev/null 2>&1 && break; sleep 1; done
389
389
  nx e2e [FRONTEND_APP]-e2e 2>&1 | tail -50
390
- npx kill-port 4200 2>/dev/null || true
390
+ bunx kill-port 4200 2>/dev/null || npx kill-port 4200 2>/dev/null || true
391
391
  ```
392
392
  - E2E and integration test failures are treated the same as unit test failures — fix before proceeding.
393
- - **Stylelint** (for tasks with SCSS changes): run `npx stylelint "libs/**/*.scss" "apps/**/*.scss" --max-warnings=0` or `nx stylelint [PROJECT]` if configured as Nx target
393
+ - **Stylelint** (for tasks with SCSS changes): run `stylelint "libs/**/*.scss" "apps/**/*.scss" --max-warnings=0` via the PKG runner (e.g., `bunx stylelint ...` / `npx stylelint ...`) or `nx stylelint [PROJECT]` if configured as Nx target
394
394
  - Pipe output through `| tail -30` for readability
395
395
  - Only use `--skip-nx-cache` if you suspect stale cache
396
396
  - If fails: fix errors, re-run
@@ -426,7 +426,7 @@ To determine if a task is frontend, backend, or fullstack, use this heuristic:
426
426
  - If Playwright MCP is unavailable, skip this step (but note it in MEMORY.md)
427
427
  - **After verification, kill the dev server** (cross-platform, works across shell sessions):
428
428
  ```bash
429
- npx kill-port 4200 2>/dev/null || true
429
+ bunx kill-port 4200 2>/dev/null || npx kill-port 4200 2>/dev/null || true
430
430
  ```
431
431
 
432
432
  **STEP 7: CODE REVIEW — DELEGATE to reviewer agent (MANDATORY)**
@@ -325,7 +325,7 @@ nx e2e [PROJECT]-e2e 2>&1 | tail -50
325
325
  E2E_EXIT=$?
326
326
 
327
327
  # ALWAYS kill the dev server after E2E — cross-platform cleanup
328
- npx kill-port 4200 2>/dev/null || true
328
+ bunx kill-port 4200 2>/dev/null || npx kill-port 4200 2>/dev/null || true
329
329
 
330
330
  exit $E2E_EXIT
331
331
  ```
@@ -302,6 +302,7 @@ import js from '@eslint/js';
302
302
  import tseslint from 'typescript-eslint';
303
303
  import nx from '@nx/eslint-plugin';
304
304
  import simpleImportSort from 'eslint-plugin-simple-import-sort';
305
+ import preferArrowFunctions from 'eslint-plugin-prefer-arrow-functions';
305
306
 
306
307
  export default [
307
308
  { ignores: ['**/dist', '**/node_modules', '**/.nx'] },
@@ -318,7 +319,10 @@ export default [
318
319
  languageOptions: {
319
320
  parserOptions: { projectService: true },
320
321
  },
321
- plugins: { 'simple-import-sort': simpleImportSort },
322
+ plugins: {
323
+ 'simple-import-sort': simpleImportSort,
324
+ 'prefer-arrow-functions': preferArrowFunctions,
325
+ },
322
326
  rules: {
323
327
  // Modern JS syntax (STRICT)
324
328
  'prefer-const': 'error',
@@ -327,6 +331,11 @@ export default [
327
331
  'prefer-template': 'error',
328
332
  'object-shorthand': 'error',
329
333
  'prefer-destructuring': ['error', { object: true, array: false }],
334
+ 'prefer-arrow-functions/prefer-arrow-functions': ['error', {
335
+ returnStyle: 'implicit',
336
+ }],
337
+ 'max-classes-per-file': ['error', 1],
338
+ 'max-depth': ['error', 4],
330
339
  'no-restricted-syntax': [
331
340
  'error',
332
341
  {
@@ -352,6 +361,11 @@ export default [
352
361
  allowExpressions: true,
353
362
  allowTypedFunctionExpressions: true,
354
363
  }],
364
+ '@typescript-eslint/explicit-member-accessibility': ['error', {
365
+ accessibility: 'explicit',
366
+ overrides: { constructors: 'no-public' },
367
+ }],
368
+ '@typescript-eslint/prefer-readonly': 'error',
355
369
  '@typescript-eslint/no-floating-promises': 'error',
356
370
  '@typescript-eslint/no-misused-promises': 'error',
357
371
  '@typescript-eslint/prefer-for-of': 'error',
@@ -406,7 +420,8 @@ Each library's `project.json` must declare tags: `"tags": ["type:domain", "scope
406
420
  "trailingComma": "all",
407
421
  "bracketSpacing": true,
408
422
  "arrowParens": "avoid",
409
- "bracketSameLine": true
423
+ "bracketSameLine": true,
424
+ "singleAttributePerLine": true
410
425
  }
411
426
  ```
412
427
  - Single config in root `.prettierrc` — no per-project overrides
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-claude-workspace",
3
- "version": "1.1.60",
3
+ "version": "1.1.62",
4
4
  "description": "Scaffold a project with Claude Code agents for autonomous AI-driven development",
5
5
  "type": "module",
6
6
  "bin": {