@se-studio/project-build 1.0.109 → 1.0.110
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 +6 -0
- package/README.md +3 -3
- package/dist/management/sync-skills.js +1 -1
- package/package.json +3 -3
- package/skills/contentful-cms/cms-guidelines/README.md +3 -3
- package/skills/contentful-cms/core/SKILL.md +14 -0
- package/skills/contentful-cms/generate-cms-guidelines/SKILL.md +1 -1
- package/skills/contentful-cms/update-cms-guidelines/SKILL.md +5 -5
- package/skills/se-marketing-sites/curate-showcase-mocks/SKILL.md +1 -1
package/CHANGELOG.md
CHANGED
package/README.md
CHANGED
|
@@ -58,7 +58,7 @@ pnpm setup-colours
|
|
|
58
58
|
|
|
59
59
|
### Skills sync (seskills)
|
|
60
60
|
|
|
61
|
-
|
|
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 `.
|
|
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 `.
|
|
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, '.
|
|
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.
|
|
3
|
+
"version": "1.0.110",
|
|
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.
|
|
63
|
+
"@biomejs/biome": "^2.4.8",
|
|
64
64
|
"@biomejs/js-api": "^4.0.0",
|
|
65
|
-
"@biomejs/wasm-nodejs": "^2.4.
|
|
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](.
|
|
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](.
|
|
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 [`.
|
|
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](.
|
|
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
|
-
`.
|
|
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
|
-
`.
|
|
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`) | `.
|
|
333
|
-
| Full-site bulk generation (Step 4 of `fresh`: Phases 0–5) | `.
|
|
334
|
-
| Single-type regeneration (after code change) | `.
|
|
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 `.
|
|
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
|