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
|
-
-
|
|
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
|
-
-
|
|
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
|
|
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 `
|
|
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: {
|
|
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
|