@se-studio/project-build 1.0.109 → 1.0.111

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/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @se-studio/project-build
2
2
 
3
+ ## 1.0.111
4
+
5
+ ### Patch Changes
6
+
7
+ - Bulk version bump: patch for all packages
8
+
9
+ ## 1.0.110
10
+
11
+ ### Patch Changes
12
+
13
+ - Bulk version bump: patch for all packages
14
+
3
15
  ## 1.0.109
4
16
 
5
17
  ### Patch Changes
package/README.md CHANGED
@@ -58,7 +58,7 @@ pnpm setup-colours
58
58
 
59
59
  ### Skills sync (seskills)
60
60
 
61
- Cursor/skills are sourced from `packages/project-build/skills/` and can be synced into an app’s `.cursor/skills/` directory so the app has the same marketing-site skills as the package.
61
+ Skills are sourced from `packages/project-build/skills/` and can be synced into an app’s `.agents/skills/` directory so the app has the same marketing-site skills as the package. Add a `.cursor/skills` → `.agents/skills` symlink if the editor only discovers `.cursor/skills`.
62
62
 
63
63
  **From an app directory** (e.g. `apps/example-brightline`):
64
64
 
@@ -72,7 +72,7 @@ pnpm exec seskills sync
72
72
  pnpm exec seskills sync apps/example-brightline
73
73
  ```
74
74
 
75
- This copies the contents of `project-build/skills/` into the target’s `.cursor/skills/`. Run after pulling changes to project-build skills or when setting up a new app.
75
+ This copies the contents of `project-build/skills/` into the target’s `.agents/skills/`. Run after pulling changes to project-build skills or when setting up a new app.
76
76
 
77
77
  ## API Reference
78
78
 
@@ -111,7 +111,7 @@ setup-colours
111
111
  ```
112
112
 
113
113
  #### `seskills sync [target-dir]`
114
- Syncs skills from `packages/project-build/skills/` into a project’s `.cursor/skills/`. Default target is current working directory.
114
+ Syncs skills from `packages/project-build/skills/` into a project’s `.agents/skills/`. Default target is current working directory.
115
115
 
116
116
  **Usage:**
117
117
  ```bash
@@ -45,7 +45,7 @@ ifInstalled = false) {
45
45
  // dist/management/ -> dist/ -> package root -> skills/
46
46
  const packageRoot = path.resolve(__dirname, '..', '..');
47
47
  const skillsSourceDir = path.join(packageRoot, 'skills');
48
- const skillsTargetDir = path.join(targetDir, '.cursor', 'skills');
48
+ const skillsTargetDir = path.join(targetDir, '.agents', 'skills');
49
49
  console.log(`Syncing skills from ${skillsSourceDir} to ${skillsTargetDir}...`);
50
50
  try {
51
51
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/project-build",
3
- "version": "1.0.109",
3
+ "version": "1.0.111",
4
4
  "description": "Build tools and management scripts for SE Studio projects",
5
5
  "repository": {
6
6
  "type": "git",
@@ -60,9 +60,9 @@
60
60
  "url": "https://github.com/Something-Else-Studio/se-core-product/issues"
61
61
  },
62
62
  "dependencies": {
63
- "@biomejs/biome": "^2.4.7",
63
+ "@biomejs/biome": "^2.4.8",
64
64
  "@biomejs/js-api": "^4.0.0",
65
- "@biomejs/wasm-nodejs": "^2.4.7",
65
+ "@biomejs/wasm-nodejs": "^2.4.8",
66
66
  "change-case": "^5.4.4",
67
67
  "chroma-js": "^3.2.0",
68
68
  "contentful-management": "^11.74.0",
@@ -18,7 +18,7 @@ Guidelines are short markdown fragments — one per CMS type — that describe h
18
18
  pnpm --filter <appName> generate-showcase
19
19
  ```
20
20
  This writes `src/generated/showcase-examples.json`.
21
- 3. **Curate showcase mocks** — run the [curate-showcase-mocks skill](.cursor/skills/se-marketing-sites/curate-showcase-mocks/SKILL.md) to select the best examples into `showcase-mocks.json`. This makes the showcase (and screenshots) show realistic content.
21
+ 3. **Curate showcase mocks** — run the [curate-showcase-mocks skill](.agents/skills/se-marketing-sites/curate-showcase-mocks/SKILL.md) to select the best examples into `showcase-mocks.json`. This makes the showcase (and screenshots) show realistic content.
22
22
  4. **Generate field list** — parse TypeScript types to produce structured field metadata:
23
23
  ```bash
24
24
  # From the app directory:
@@ -27,7 +27,7 @@ Guidelines are short markdown fragments — one per CMS type — that describe h
27
27
  # Or from repo root:
28
28
  pnpm --filter <appName> exec cms-generate-field-list --app-dir .
29
29
  ```
30
- 5. **Generate guidelines** — run the [Generate CMS guidelines skill](.cursor/skills/contentful-cms/generate-cms-guidelines/SKILL.md).
30
+ 5. **Generate guidelines** — run the [Generate CMS guidelines skill](.agents/skills/contentful-cms/generate-cms-guidelines/SKILL.md).
31
31
 
32
32
  Steps 1–3 only need to be repeated when content or component code changes significantly. Step 4 only needs to be repeated when TypeScript types change. Step 5 can be re-run at any time.
33
33
 
@@ -35,7 +35,7 @@ Steps 1–3 only need to be repeated when content or component code changes sign
35
35
 
36
36
  ## How to run guideline generation
37
37
 
38
- Use the Cursor skill at [`.cursor/skills/contentful-cms/generate-cms-guidelines/SKILL.md`](.cursor/skills/contentful-cms/generate-cms-guidelines/SKILL.md). It supports three modes:
38
+ Use the Cursor skill at [`.agents/skills/contentful-cms/generate-cms-guidelines/SKILL.md`](.agents/skills/contentful-cms/generate-cms-guidelines/SKILL.md). It supports three modes:
39
39
 
40
40
  | Mode | When to use |
41
41
  |---|---|
@@ -121,6 +121,20 @@ cms-edit rtf @c1 body --file path/to/file.md
121
121
  cms-edit rtf @c1 body - < path/to/file.md
122
122
  ```
123
123
 
124
+ **Surgical rich text replace** (compliance / quidget tokens — does not re-import the whole field):
125
+
126
+ - Matching is **per Contentful text node** only. If the author split a phrase with bold (e.g. `**Annual fee: **$95`), the string `Annual fee: $95` will **not** match as one piece; use a shorter `--find` or full `rtf … --file`.
127
+ - Quidget strings contain `*`, which Markdown would treat as italic — use **`--replace-plain`**, not `--replace`.
128
+
129
+ ```bash
130
+ # Replace every "$95" in this field with the quidget (e.g. multiple table cells)
131
+ cms-edit rtf replace @c2 body --find '$95' --replace-plain '{*credit_card_id*:*5048345*,*field*:*annual_fees*,*api*:*cc*}' --mode all
132
+
133
+ # Exactly one occurrence required (fails if 0 or 2+)
134
+ cms-edit rtf replace @c2 body --find '75,000 miles after spending $4,000 in the first 3 months' \
135
+ --replace-plain '{*credit_card_id*:*5048345*,*field*:*bonus_miles*,*api*:*cc*}' --mode exactlyOne
136
+ ```
137
+
124
138
  ### Step 5: Review changes
125
139
 
126
140
  ```bash
@@ -27,7 +27,7 @@ Guidelines are only meaningful when the showcase is populated with realistic dat
27
27
  pnpm --filter <appName> generate-showcase
28
28
  ```
29
29
  This writes `src/generated/showcase-examples.json` to the app.
30
- 3. **Curate showcase mocks:** Follow the [curate-showcase-mocks skill](.cursor/skills/se-marketing-sites/curate-showcase-mocks/SKILL.md) to produce `showcase-mocks.json`.
30
+ 3. **Curate showcase mocks:** Follow the [curate-showcase-mocks skill](.agents/skills/se-marketing-sites/curate-showcase-mocks/SKILL.md) to produce `showcase-mocks.json`.
31
31
  4. **Generate field list:**
32
32
  ```bash
33
33
  # From the app directory:
@@ -112,7 +112,7 @@ grep -E "CONTENTFUL_SPACE_ID|CONTENTFUL_ACCESS_TOKEN|OPENAI_API_KEY|ANTHROPIC_AP
112
112
  ### Step 2 — Curate showcase mocks
113
113
 
114
114
  Read and follow the **curate-showcase-mocks** skill:
115
- `.cursor/skills/se-marketing-sites/curate-showcase-mocks/SKILL.md`
115
+ `.agents/skills/se-marketing-sites/curate-showcase-mocks/SKILL.md`
116
116
 
117
117
  This produces `src/generated/showcase-mocks.json` (committed) and
118
118
  `src/generated/cms-discovery/accepted-variants/{components|collections|externals}/<slug>.json` (often gitignored — **some apps commit them**; follow the app’s `.gitignore`).
@@ -137,7 +137,7 @@ Produces `generated/cms-discovery/field-list.json` (discovery API reads from thi
137
137
  ### Step 4 — Run generate-all-guidelines
138
138
 
139
139
  Read and follow the **generate-all-guidelines** skill:
140
- `.cursor/skills/contentful-cms/generate-all-guidelines/SKILL.md`
140
+ `.agents/skills/contentful-cms/generate-all-guidelines/SKILL.md`
141
141
 
142
142
  Skip its prerequisite check (you already verified everything through Step 3).
143
143
  Run Phases 0–5 from that skill with **full regeneration rules**:
@@ -329,7 +329,7 @@ All under `<appDir>`:
329
329
 
330
330
  | Purpose | Skill |
331
331
  |---|---|
332
- | Curate showcase mocks (Step 2 of `fresh`) | `.cursor/skills/se-marketing-sites/curate-showcase-mocks/SKILL.md` |
333
- | Full-site bulk generation (Step 4 of `fresh`: Phases 0–5) | `.cursor/skills/contentful-cms/generate-all-guidelines/SKILL.md` |
334
- | Single-type regeneration (after code change) | `.cursor/skills/contentful-cms/generate-cms-guidelines/SKILL.md` (mode: single) |
332
+ | Curate showcase mocks (Step 2 of `fresh`) | `.agents/skills/se-marketing-sites/curate-showcase-mocks/SKILL.md` |
333
+ | Full-site bulk generation (Step 4 of `fresh`: Phases 0–5) | `.agents/skills/contentful-cms/generate-all-guidelines/SKILL.md` |
334
+ | Single-type regeneration (after code change) | `.agents/skills/contentful-cms/generate-cms-guidelines/SKILL.md` (mode: single) |
335
335
  | Per-component pipeline detail | `packages/contentful-cms/skills/cms-guidelines/generate-component-guidelines.md` |
@@ -320,7 +320,7 @@ For standalone projects not in the monorepo, install or update skills via:
320
320
  seskills sync
321
321
  ```
322
322
 
323
- This copies all SE Studio cursor skills (including this one) into the project's `.cursor/skills/`
323
+ This copies all SE Studio cursor skills (including this one) into the project's `.agents/skills/`
324
324
  directory. The `seskills` binary is provided by `@se-studio/project-build`.
325
325
 
326
326
  ### Auto-sync on package update