create-claude-workspace 1.1.91 → 1.1.93
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.
- package/dist/template/.claude/agents/backend-ts-architect.md +1 -1
- package/dist/template/.claude/profiles/angular.md +9 -5
- package/dist/template/.claude/profiles/react.md +9 -5
- package/dist/template/.claude/profiles/svelte.md +9 -5
- package/dist/template/.claude/profiles/vue.md +9 -5
- package/dist/template/.claude/templates/claude-md.md +1 -1
- package/package.json +1 -1
|
@@ -86,7 +86,7 @@ Always prefer `@cibule/*` packages over custom implementations:
|
|
|
86
86
|
- `moduleResolution: "bundler"` — NEVER add `.js` extensions to imports (write `'./foo'`, not `'./foo.js'`)
|
|
87
87
|
- `readonly` on all fields that don't need reassignment
|
|
88
88
|
- Custom error classes for domain-specific errors
|
|
89
|
-
- Input validation at system boundaries — **TypeBox** preferred (compile-time types + runtime validation from one schema, no duplication). Use `typebox` and `typebox/compiler` for `TypeCompiler`.
|
|
89
|
+
- Input validation at system boundaries — **TypeBox** preferred (compile-time types + runtime validation from one schema, no duplication). Use `typebox` and `typebox/compiler` for `TypeCompiler`. **NEVER use `@sinclair/typebox`** — the correct package is `typebox` (renamed).
|
|
90
90
|
- Async/await patterns (no callback hell)
|
|
91
91
|
- Separation of concerns (routes, services, repositories)
|
|
92
92
|
- File size limit: MAX 200 lines per TypeScript file
|
|
@@ -334,22 +334,26 @@ npx themecraft generate # generates type-safe SCSS from tokens.json
|
|
|
334
334
|
|
|
335
335
|
**Making theme resolvable by package name (MANDATORY):**
|
|
336
336
|
|
|
337
|
-
|
|
337
|
+
The path MUST point to the **library root directory** (where `package.json` lives). The SCSS compiler resolves `@use 'theme/colors'` via `package.json` `exports` field — just like Node.js resolves JS imports. The library's `package.json` maps export paths (e.g., `./colors`) to actual SCSS files (e.g., `./src/generated/theme/_colors.scss`).
|
|
338
|
+
|
|
338
339
|
```jsonc
|
|
339
340
|
// package.json (root or consuming app)
|
|
340
341
|
{
|
|
341
342
|
"dependencies": {
|
|
342
|
-
"theme": "workspace:./libs/
|
|
343
|
-
// or "file:./libs/
|
|
344
|
-
// If repo has a scope: "@[scope]/theme": "workspace:./libs/
|
|
343
|
+
"theme": "workspace:./libs/ui/theme" // pnpm/bun
|
|
344
|
+
// or "file:./libs/ui/theme" for npm
|
|
345
|
+
// If repo has a scope: "@[scope]/theme": "workspace:./libs/ui/theme"
|
|
345
346
|
}
|
|
346
347
|
}
|
|
347
348
|
```
|
|
349
|
+
|
|
350
|
+
**NEVER point to a subdirectory** like `./libs/ui/theme/src/generated/theme` or `./libs/ui/theme/src` — always the library root with `package.json`. The `exports` field in that `package.json` handles the mapping.
|
|
351
|
+
|
|
348
352
|
Then run `<PM> install` to create the link. SCSS `@use 'theme/colors'` (or `@use '@[scope]/theme/colors'` with scope) resolves automatically.
|
|
349
353
|
|
|
350
354
|
**NEVER use `stylePreprocessorOptions.includePaths`** — workspace dependency is the only supported approach. `includePaths` breaks IDE autocomplete, makes imports ambiguous, and doesn't survive refactoring.
|
|
351
355
|
|
|
352
|
-
**How it works:** `npx themecraft generate` runs inside the theme library
|
|
356
|
+
**How it works:** `npx themecraft generate` runs inside the theme library and produces typed SCSS files (e.g., `src/generated/theme/_colors.scss`, `_sizes.scss`, `_typography.scss`) that wrap `color-var()`/`size-var()` internally. The library's `package.json` `exports` field maps `./colors` → `./src/generated/theme/_colors.scss` etc. Because the library is linked as a workspace dependency, `@use 'theme/colors'` resolves through `node_modules/theme/package.json` exports. Components consume the generated variables — never the raw accessor functions, never `generated/` paths, never subdirectory links.
|
|
353
357
|
|
|
354
358
|
**Token source (pick one):**
|
|
355
359
|
- **With Figma:** `npx themecraft sync --figma-file-key YOUR_FILE_KEY --token YOUR_ACCESS_TOKEN` pulls design variables into `tokens.json`, then `npx themecraft generate`
|
|
@@ -224,22 +224,26 @@ npx themecraft generate # generates type-safe SCSS from tokens.json
|
|
|
224
224
|
|
|
225
225
|
**Making theme resolvable by package name (MANDATORY):**
|
|
226
226
|
|
|
227
|
-
|
|
227
|
+
The path MUST point to the **library root directory** (where `package.json` lives). The SCSS compiler resolves `@use 'theme/colors'` via `package.json` `exports` field — just like Node.js resolves JS imports. The library's `package.json` maps export paths (e.g., `./colors`) to actual SCSS files (e.g., `./src/generated/theme/_colors.scss`).
|
|
228
|
+
|
|
228
229
|
```jsonc
|
|
229
230
|
// package.json (root or consuming app)
|
|
230
231
|
{
|
|
231
232
|
"dependencies": {
|
|
232
|
-
"theme": "workspace:./libs/
|
|
233
|
-
// or "file:./libs/
|
|
234
|
-
// If repo has a scope: "@[scope]/theme": "workspace:./libs/
|
|
233
|
+
"theme": "workspace:./libs/ui/theme" // pnpm/bun
|
|
234
|
+
// or "file:./libs/ui/theme" for npm
|
|
235
|
+
// If repo has a scope: "@[scope]/theme": "workspace:./libs/ui/theme"
|
|
235
236
|
}
|
|
236
237
|
}
|
|
237
238
|
```
|
|
239
|
+
|
|
240
|
+
**NEVER point to a subdirectory** like `./libs/ui/theme/src/generated/theme` or `./libs/ui/theme/src` — always the library root with `package.json`. The `exports` field in that `package.json` handles the mapping.
|
|
241
|
+
|
|
238
242
|
Then run `<PM> install` to create the link. SCSS `@use 'theme/colors'` (or `@use '@[scope]/theme/colors'` with scope) resolves automatically.
|
|
239
243
|
|
|
240
244
|
**NEVER use `sassOptions.includeDirs` or `css.preprocessorOptions.scss.includePaths`** — workspace dependency is the only supported approach.
|
|
241
245
|
|
|
242
|
-
**How it works:** `npx themecraft generate` runs inside the theme library and produces typed SCSS files (`src/
|
|
246
|
+
**How it works:** `npx themecraft generate` runs inside the theme library and produces typed SCSS files (e.g., `src/generated/theme/_colors.scss`, `_sizes.scss`, `_typography.scss`) that wrap `color-var()`/`size-var()` internally. The library's `package.json` `exports` field maps `./colors` → `./src/generated/theme/_colors.scss` etc. Because the library is linked as a workspace dependency, `@use 'theme/colors'` resolves through `node_modules/theme/package.json` exports. Components consume the generated variables — never the raw accessor functions, never `generated/` paths, never subdirectory links.
|
|
243
247
|
|
|
244
248
|
**Token source (pick one):**
|
|
245
249
|
- **With Figma:** `npx themecraft sync --figma-file-key YOUR_FILE_KEY --token YOUR_ACCESS_TOKEN` pulls design variables into `tokens.json`, then `npx themecraft generate`
|
|
@@ -224,22 +224,26 @@ npx themecraft generate # generates type-safe SCSS from tokens.json
|
|
|
224
224
|
|
|
225
225
|
**Making theme resolvable by package name (MANDATORY):**
|
|
226
226
|
|
|
227
|
-
|
|
227
|
+
The path MUST point to the **library root directory** (where `package.json` lives). The SCSS compiler resolves `@use 'theme/colors'` via `package.json` `exports` field — just like Node.js resolves JS imports. The library's `package.json` maps export paths (e.g., `./colors`) to actual SCSS files (e.g., `./src/generated/theme/_colors.scss`).
|
|
228
|
+
|
|
228
229
|
```jsonc
|
|
229
230
|
// package.json (root or consuming app)
|
|
230
231
|
{
|
|
231
232
|
"dependencies": {
|
|
232
|
-
"theme": "workspace:./libs/
|
|
233
|
-
// or "file:./libs/
|
|
234
|
-
// If repo has a scope: "@[scope]/theme": "workspace:./libs/
|
|
233
|
+
"theme": "workspace:./libs/ui/theme" // pnpm/bun
|
|
234
|
+
// or "file:./libs/ui/theme" for npm
|
|
235
|
+
// If repo has a scope: "@[scope]/theme": "workspace:./libs/ui/theme"
|
|
235
236
|
}
|
|
236
237
|
}
|
|
237
238
|
```
|
|
239
|
+
|
|
240
|
+
**NEVER point to a subdirectory** like `./libs/ui/theme/src/generated/theme` or `./libs/ui/theme/src` — always the library root with `package.json`. The `exports` field in that `package.json` handles the mapping.
|
|
241
|
+
|
|
238
242
|
Then run `<PM> install` to create the link. SCSS `@use 'theme/colors'` (or `@use '@[scope]/theme/colors'` with scope) resolves automatically.
|
|
239
243
|
|
|
240
244
|
**NEVER use `css.preprocessorOptions.scss.includePaths`** — workspace dependency is the only supported approach.
|
|
241
245
|
|
|
242
|
-
**How it works:** `npx themecraft generate` runs inside the theme library and produces typed SCSS files (`src/
|
|
246
|
+
**How it works:** `npx themecraft generate` runs inside the theme library and produces typed SCSS files (e.g., `src/generated/theme/_colors.scss`, `_sizes.scss`, `_typography.scss`) that wrap `color-var()`/`size-var()` internally. The library's `package.json` `exports` field maps `./colors` → `./src/generated/theme/_colors.scss` etc. Because the library is linked as a workspace dependency, `@use 'theme/colors'` resolves through `node_modules/theme/package.json` exports. Components consume the generated variables — never the raw accessor functions, never `generated/` paths, never subdirectory links.
|
|
243
247
|
|
|
244
248
|
**Token source (pick one):**
|
|
245
249
|
- **With Figma:** `npx themecraft sync --figma-file-key YOUR_FILE_KEY --token YOUR_ACCESS_TOKEN` pulls design variables into `tokens.json`, then `npx themecraft generate`
|
|
@@ -252,22 +252,26 @@ npx themecraft generate # generates type-safe SCSS from tokens.json
|
|
|
252
252
|
|
|
253
253
|
**Making theme resolvable by package name (MANDATORY):**
|
|
254
254
|
|
|
255
|
-
|
|
255
|
+
The path MUST point to the **library root directory** (where `package.json` lives). The SCSS compiler resolves `@use 'theme/colors'` via `package.json` `exports` field — just like Node.js resolves JS imports. The library's `package.json` maps export paths (e.g., `./colors`) to actual SCSS files (e.g., `./src/generated/theme/_colors.scss`).
|
|
256
|
+
|
|
256
257
|
```jsonc
|
|
257
258
|
// package.json (root or consuming app)
|
|
258
259
|
{
|
|
259
260
|
"dependencies": {
|
|
260
|
-
"theme": "workspace:./libs/
|
|
261
|
-
// or "file:./libs/
|
|
262
|
-
// If repo has a scope: "@[scope]/theme": "workspace:./libs/
|
|
261
|
+
"theme": "workspace:./libs/ui/theme" // pnpm/bun
|
|
262
|
+
// or "file:./libs/ui/theme" for npm
|
|
263
|
+
// If repo has a scope: "@[scope]/theme": "workspace:./libs/ui/theme"
|
|
263
264
|
}
|
|
264
265
|
}
|
|
265
266
|
```
|
|
267
|
+
|
|
268
|
+
**NEVER point to a subdirectory** like `./libs/ui/theme/src/generated/theme` or `./libs/ui/theme/src` — always the library root with `package.json`. The `exports` field in that `package.json` handles the mapping.
|
|
269
|
+
|
|
266
270
|
Then run `<PM> install` to create the link. SCSS `@use 'theme/colors'` (or `@use '@[scope]/theme/colors'` with scope) resolves automatically.
|
|
267
271
|
|
|
268
272
|
**NEVER use `css.preprocessorOptions.scss.includePaths`** — workspace dependency is the only supported approach.
|
|
269
273
|
|
|
270
|
-
**How it works:** `npx themecraft generate` runs inside the theme library and produces typed SCSS files (`src/
|
|
274
|
+
**How it works:** `npx themecraft generate` runs inside the theme library and produces typed SCSS files (e.g., `src/generated/theme/_colors.scss`, `_sizes.scss`, `_typography.scss`) that wrap `color-var()`/`size-var()` internally. The library's `package.json` `exports` field maps `./colors` → `./src/generated/theme/_colors.scss` etc. Because the library is linked as a workspace dependency, `@use 'theme/colors'` resolves through `node_modules/theme/package.json` exports. Components consume the generated variables — never the raw accessor functions, never `generated/` paths, never subdirectory links.
|
|
271
275
|
|
|
272
276
|
**Token source (pick one):**
|
|
273
277
|
- **With Figma:** `npx themecraft sync --figma-file-key YOUR_FILE_KEY --token YOUR_ACCESS_TOKEN` pulls design variables into `tokens.json`, then `npx themecraft generate`
|
|
@@ -320,7 +320,7 @@ Key rules enforced (do NOT weaken):
|
|
|
320
320
|
|
|
321
321
|
[Include only if the project has a backend]
|
|
322
322
|
|
|
323
|
-
- Hono routes with validation (**TypeBox** — `typebox` for schema + type inference, `TypeCompiler` for runtime validation)
|
|
323
|
+
- Hono routes with validation (**TypeBox** — `typebox` for schema + type inference, `TypeCompiler` for runtime validation). **NEVER use `@sinclair/typebox`** — the correct package is `typebox`.
|
|
324
324
|
- **OpenAPI-first**: Use `hono-openapi` with `openAPIRouteHandler` for all API routes — generates OpenAPI spec from TypeBox schemas automatically. API docs served via `@scalar/hono-api-reference` at `/reference`.
|
|
325
325
|
- `@cibule/di` for dependency injection (see @cibule/* Ecosystem section above)
|
|
326
326
|
- `@cibule/db` + driver for database access, UnitOfWork for atomic writes
|