@se-studio/skills 1.0.35 → 1.0.37
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 +13 -0
- package/README.md +63 -0
- package/package.json +4 -1
- package/skills/contentful-cms-alt-text-audit/SKILL.md +1 -1
- package/skills/contentful-cms-cms-guidelines/README.md +15 -11
- package/skills/contentful-cms-cms-guidelines/generation-prompt.md +1 -1
- package/skills/contentful-cms-core/SKILL.md +1 -1
- package/skills/contentful-cms-generate-all-guidelines/SKILL.md +8 -12
- package/skills/contentful-cms-generate-cms-guidelines/SKILL.md +18 -21
- package/skills/contentful-cms-image-guide/SKILL.md +1 -1
- package/skills/contentful-cms-navigation/SKILL.md +1 -1
- package/skills/contentful-cms-rich-text/SKILL.md +1 -1
- package/skills/contentful-cms-schema-org/SKILL.md +1 -1
- package/skills/contentful-cms-screenshots/SKILL.md +1 -1
- package/skills/contentful-cms-seo-descriptions/SKILL.md +1 -1
- package/skills/contentful-cms-setup/SKILL.md +1 -1
- package/skills/contentful-cms-templates/SKILL.md +1 -1
- package/skills/contentful-cms-update-cms-guidelines/SKILL.md +11 -25
- package/skills/performance-audit/SKILL.md +11 -48
- package/skills/se-marketing-sites-cms-routes-and-appshared/SKILL.md +2 -6
- package/skills/se-marketing-sites-create-collection/SKILL.md +2 -6
- package/skills/se-marketing-sites-create-component/SKILL.md +2 -6
- package/skills/se-marketing-sites-create-page/SKILL.md +2 -6
- package/skills/se-marketing-sites-curate-showcase-mocks/SKILL.md +2 -6
- package/skills/se-marketing-sites-handling-media/SKILL.md +2 -6
- package/skills/se-marketing-sites-lib-cms-structure/SKILL.md +10 -6
- package/skills/se-marketing-sites-register-cms-features/SKILL.md +2 -6
- package/skills/se-marketing-sites-styling-system/SKILL.md +2 -6
- package/skills/site-workflows-apply-design-snapshot/SKILL.md +1 -5
- package/skills/site-workflows-brand-context-builder/SKILL.md +1 -1
- package/skills/site-workflows-contentful-vercel-setup/SKILL.md +1 -5
- package/skills/site-workflows-copy-doc-snapshot/SKILL.md +1 -5
- package/skills/site-workflows-figma-design-snapshot/SKILL.md +1 -4
- package/skills/site-workflows-new-project/SKILL.md +1 -5
- package/skills/site-workflows-project-cleanup/SKILL.md +1 -5
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,18 @@
|
|
|
1
1
|
# @se-studio/skills
|
|
2
2
|
|
|
3
|
+
## 1.0.37
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Bulk version bump: patch for all packages
|
|
8
|
+
|
|
9
|
+
## 1.0.36
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Version bump: patch for changed packages
|
|
14
|
+
- 17d37e2: Fix skill descriptions not appearing in Claude Code selector (#30): standardize SKILL.md frontmatter (name matches directory, single-line quoted description, no extra YAML fields). Add `pnpm skills:validate`. Skill slash names now match directory names (e.g. `contentful-cms-core` instead of `contentful-cms:core`).
|
|
15
|
+
|
|
3
16
|
## 1.0.35
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
package/README.md
ADDED
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
# @se-studio/skills
|
|
2
|
+
|
|
3
|
+
Agent skills for SE Studio marketing site development with Contentful CMS.
|
|
4
|
+
|
|
5
|
+
## Install
|
|
6
|
+
|
|
7
|
+
**In this monorepo** — skills are synced into `.agents/skills/` (symlinked from `.cursor/skills/`):
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pnpm skills:validate
|
|
11
|
+
pnpm skills:sync
|
|
12
|
+
```
|
|
13
|
+
|
|
14
|
+
From this package directory: `pnpm validate` (runs the same frontmatter check).
|
|
15
|
+
|
|
16
|
+
**In external projects:**
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npx skills add @se-studio/skills
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
## Authoring skills
|
|
23
|
+
|
|
24
|
+
Canonical sources live in `packages/skills/skills/<skill-dir>/SKILL.md`. Do **not** edit `.agents/skills/` by hand.
|
|
25
|
+
|
|
26
|
+
### Frontmatter contract (Claude Code compatible)
|
|
27
|
+
|
|
28
|
+
Every `SKILL.md` must start with YAML frontmatter containing **only** `name` and `description`:
|
|
29
|
+
|
|
30
|
+
```yaml
|
|
31
|
+
---
|
|
32
|
+
name: se-marketing-sites-create-component
|
|
33
|
+
description: "Guide for creating new CMS-driven components. Use when asked to create a new CMS component."
|
|
34
|
+
---
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Rules:
|
|
38
|
+
|
|
39
|
+
| Field | Requirement |
|
|
40
|
+
|-------|-------------|
|
|
41
|
+
| `name` | Must exactly match the skill directory name; `[a-z0-9-]+` only; max 64 characters |
|
|
42
|
+
| `description` | Single line, double-quoted, non-empty, max 1024 characters; no backticks |
|
|
43
|
+
|
|
44
|
+
Do **not** use:
|
|
45
|
+
|
|
46
|
+
- YAML block scalars for description (`>`, `|`)
|
|
47
|
+
- Multiline descriptions
|
|
48
|
+
- Extra frontmatter keys (`license`, `metadata`, `promptSignals`, etc.) — put those in the markdown body if needed
|
|
49
|
+
- Invalid `name` values (spaces, capitals, colons, dots)
|
|
50
|
+
|
|
51
|
+
Claude Code uses a naive frontmatter parser; violations cause descriptions to silently disappear from the skill selector.
|
|
52
|
+
|
|
53
|
+
### Workflow
|
|
54
|
+
|
|
55
|
+
1. Edit `packages/skills/skills/<skill-dir>/SKILL.md`
|
|
56
|
+
2. Validate: `pnpm skills:validate`
|
|
57
|
+
3. Sync: `pnpm skills:sync`
|
|
58
|
+
4. Add a changeset if publishing `@se-studio/skills`
|
|
59
|
+
|
|
60
|
+
## References
|
|
61
|
+
|
|
62
|
+
- [Anthropic skill authoring best practices](https://platform.claude.com/docs/en/agents-and-tools/agent-skills/best-practices)
|
|
63
|
+
- Monorepo skill index: root `CLAUDE.md` and `docs/AI_QUICK_REFERENCE.md`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@se-studio/skills",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.37",
|
|
4
4
|
"description": "SE Studio agent skills for marketing site development with Contentful CMS",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -21,5 +21,8 @@
|
|
|
21
21
|
"homepage": "https://github.com/Something-Else-Studio/se-core-product#readme",
|
|
22
22
|
"bugs": {
|
|
23
23
|
"url": "https://github.com/Something-Else-Studio/se-core-product/issues"
|
|
24
|
+
},
|
|
25
|
+
"scripts": {
|
|
26
|
+
"validate": "node ../../scripts/validate-skills.mjs"
|
|
24
27
|
}
|
|
25
28
|
}
|
|
@@ -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](../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](../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 [`../contentful-cms-generate-cms-guidelines/SKILL.md`](../contentful-cms-generate-cms-guidelines/SKILL.md). It supports three modes:
|
|
39
39
|
|
|
40
40
|
| Mode | When to use |
|
|
41
41
|
|---|---|
|
|
@@ -43,25 +43,29 @@ Use the Cursor skill at [`.agents/skills/contentful-cms-generate-cms-guidelines/
|
|
|
43
43
|
| `single` | Regenerate one component after code changes |
|
|
44
44
|
| `merge-only` | Rebuild `COMPONENT_GUIDELINES_FOR_LLM.md` after manual fragment edits |
|
|
45
45
|
|
|
46
|
-
**Example: full from scratch
|
|
46
|
+
**Example: full from scratch**
|
|
47
47
|
|
|
48
48
|
Start the app:
|
|
49
|
+
|
|
49
50
|
```bash
|
|
50
|
-
pnpm
|
|
51
|
+
pnpm dev
|
|
52
|
+
# Note the port from dev server output, or read devBaseUrl from .contentful-cms.json
|
|
51
53
|
```
|
|
52
54
|
|
|
53
55
|
Then invoke the skill with:
|
|
54
|
-
|
|
56
|
+
|
|
57
|
+
- App directory: `<appDir>` (e.g. `.` in an external project)
|
|
55
58
|
- Mode: `full`
|
|
56
|
-
- Discovery URL: `http://localhost
|
|
59
|
+
- Discovery URL: `http://localhost:<PORT>/api/cms/discovery/`
|
|
57
60
|
|
|
58
61
|
**Example: single component**
|
|
59
62
|
|
|
60
63
|
Invoke the skill with:
|
|
61
|
-
|
|
64
|
+
|
|
65
|
+
- App directory: `<appDir>`
|
|
62
66
|
- Mode: `single`
|
|
63
67
|
- Type name: `Hero`
|
|
64
|
-
- Discovery URL: `http://localhost
|
|
68
|
+
- Discovery URL: `http://localhost:<PORT>/api/cms/discovery/`
|
|
65
69
|
|
|
66
70
|
**Example: merge only**
|
|
67
71
|
|
|
@@ -109,8 +113,8 @@ New project-independent CLI. Reads the discovery API and writes collection and e
|
|
|
109
113
|
|
|
110
114
|
```bash
|
|
111
115
|
cms-generate-collection-guidelines \
|
|
112
|
-
--discovery-url http://localhost
|
|
113
|
-
--app-dir
|
|
116
|
+
--discovery-url http://localhost:<PORT>/api/cms/discovery/ \
|
|
117
|
+
--app-dir <appDir>
|
|
114
118
|
```
|
|
115
119
|
|
|
116
120
|
Options:
|
|
@@ -115,7 +115,7 @@ Also provided:
|
|
|
115
115
|
- The field list from generated/cms-discovery/field-list.json.
|
|
116
116
|
- The project theme from generated/cms-discovery/theme-context.md (palette names + typography scale).
|
|
117
117
|
- The screenshot index from docs/cms-guidelines/screenshots/index.json (lists captured screenshots).
|
|
118
|
-
- The app's devBaseUrl from .contentful-cms.json (e.g. "http://localhost
|
|
118
|
+
- The app's devBaseUrl from .contentful-cms.json (e.g. "http://localhost:<PORT>").
|
|
119
119
|
|
|
120
120
|
Produce a single markdown fragment for <COMPONENT_TYPE> following EXACTLY this structure:
|
|
121
121
|
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: generate-all-guidelines
|
|
3
|
-
description: Full-site CMS guideline run — bulk screenshots (components + collections), CLI collection/externals, then Phase B/C/D for every component. After update-cms-guidelines fresh/clean slate, do not skip types or git-restore component fragments.
|
|
4
|
-
license: Private
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-core-product
|
|
7
|
-
version: "1.1.0"
|
|
2
|
+
name: contentful-cms-generate-all-guidelines
|
|
3
|
+
description: "Full-site CMS guideline run — bulk screenshots (components + collections), CLI collection/externals, then Phase B/C/D for every component. After update-cms-guidelines fresh/clean slate, do not skip types or git-restore component fragments."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Generate All Guidelines (Full Site Run)
|
|
@@ -69,9 +65,9 @@ All of these must be true before starting. Check each one.
|
|
|
69
65
|
|
|
70
66
|
| Input | Example |
|
|
71
67
|
|-------|---------|
|
|
72
|
-
| App directory (absolute or repo-relative) | `apps/
|
|
73
|
-
| Discovery URL | `http://localhost
|
|
74
|
-
| Port | `
|
|
68
|
+
| App directory (absolute or repo-relative) | `apps/my-site` or `/path/to/project` |
|
|
69
|
+
| Discovery URL | `http://localhost:<PORT>/api/cms/discovery/` |
|
|
70
|
+
| Port / base URL | From `pnpm dev` output, or `devBaseUrl` in `<appDir>/.contentful-cms.json` |
|
|
75
71
|
|
|
76
72
|
---
|
|
77
73
|
|
|
@@ -201,9 +197,9 @@ IMPORTANT: Screenshots have already been captured. Skip Phase A entirely.
|
|
|
201
197
|
Go straight to Phase B.
|
|
202
198
|
|
|
203
199
|
Files to read before starting:
|
|
204
|
-
-
|
|
205
|
-
-
|
|
206
|
-
-
|
|
200
|
+
- ../contentful-cms-cms-guidelines/generation-prompt.md (Phase B instructions)
|
|
201
|
+
- ../contentful-cms-cms-guidelines/colour-hint-prompt.md (Phase C instructions)
|
|
202
|
+
- ../contentful-cms-cms-guidelines/validation-prompt.md (Phase D instructions)
|
|
207
203
|
- <APP_DIR>/src/project/components/<TypeName>.tsx (component source)
|
|
208
204
|
- <APP_DIR>/generated/cms-discovery/field-list.json
|
|
209
205
|
- <APP_DIR>/src/generated/cms-discovery/accepted-variants/{components|collections|externals}/<type-slug>.json
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: contentful-cms-generate-cms-guidelines
|
|
3
3
|
description: "Generate, regenerate, or merge CMS guideline markdown fragments for any app in the monorepo."
|
|
4
4
|
---
|
|
5
5
|
|
|
@@ -32,7 +32,7 @@ Guidelines are only meaningful when the showcase is populated with realistic dat
|
|
|
32
32
|
pnpm --filter <appName> generate-showcase
|
|
33
33
|
```
|
|
34
34
|
This writes `src/generated/showcase-examples.json` to the app.
|
|
35
|
-
3. **Curate showcase mocks:** Follow the [curate-showcase-mocks skill](
|
|
35
|
+
3. **Curate showcase mocks:** Follow the [curate-showcase-mocks skill](../se-marketing-sites-curate-showcase-mocks/SKILL.md) to produce `showcase-mocks.json`.
|
|
36
36
|
4. **Generate field list:**
|
|
37
37
|
```bash
|
|
38
38
|
# From the app directory:
|
|
@@ -51,17 +51,14 @@ Guidelines are only meaningful when the showcase is populated with realistic dat
|
|
|
51
51
|
| **App directory** | Repo-relative path, e.g. `apps/example-om1` or `apps/example-se2026` |
|
|
52
52
|
| **Mode** | `full` \| `single` \| `merge-only` |
|
|
53
53
|
| **Type name** | Required for `single` mode — the exact type name from discovery, e.g. `"Hero"` or `"Cards Grid"` |
|
|
54
|
-
| **Discovery URL** |
|
|
54
|
+
| **Discovery URL** | `http://localhost:<PORT>/api/cms/discovery/` — `<PORT>` from the running dev server (`pnpm dev`) |
|
|
55
|
+
| **Port / base URL** | Dev script output, or `devBaseUrl` in `<appDir>/.contentful-cms.json` |
|
|
55
56
|
|
|
56
|
-
|
|
57
|
+
The app must be running for `full` and `single` modes. Confirm with:
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
| example-se2026 | 3012 | `http://localhost:3012/api/cms/discovery/` |
|
|
62
|
-
| example-om1 | 3013 | `http://localhost:3013/api/cms/discovery/` |
|
|
63
|
-
| example-empty | 3014 | `http://localhost:3014/api/cms/discovery/` |
|
|
64
|
-
| example-brightlifekids | 3015 | `http://localhost:3015/api/cms/discovery/` |
|
|
59
|
+
```bash
|
|
60
|
+
curl -sL http://localhost:<PORT>/api/cms/discovery/ | head -c 100
|
|
61
|
+
```
|
|
65
62
|
|
|
66
63
|
---
|
|
67
64
|
|
|
@@ -115,7 +112,7 @@ Example of a completed `## Fields & Schema` section:
|
|
|
115
112
|
### Step 3 — Generate component guidelines
|
|
116
113
|
|
|
117
114
|
For each component in discovery order, run the full per-component pipeline defined in
|
|
118
|
-
[`
|
|
115
|
+
[`generate-component-guidelines.md`](../contentful-cms-cms-guidelines/generate-component-guidelines.md).
|
|
119
116
|
|
|
120
117
|
To find unfinished components:
|
|
121
118
|
1. Fetch `<discoveryUrl>` and collect all `components[].name` values.
|
|
@@ -131,12 +128,12 @@ Run a Cursor subagent with this prompt, substituting `<COMPONENT_TYPE>` and `<AP
|
|
|
131
128
|
Run the full guideline generation pipeline for <COMPONENT_TYPE>.
|
|
132
129
|
Target app: <APP_DIR> (all paths relative to repo root / that directory).
|
|
133
130
|
|
|
134
|
-
Read these pipeline docs first (
|
|
135
|
-
- generate-component-guidelines.md (overall pipeline)
|
|
136
|
-
- variant-loop.md (Phase A: variant loop)
|
|
137
|
-
- generation-prompt.md (Phase B: generation)
|
|
138
|
-
- colour-hint-prompt.md (Phase C: colour hint)
|
|
139
|
-
- validation-prompt.md (Phase D: validation)
|
|
131
|
+
Read these pipeline docs first (sibling directory contentful-cms-cms-guidelines/):
|
|
132
|
+
- ../contentful-cms-cms-guidelines/generate-component-guidelines.md (overall pipeline)
|
|
133
|
+
- ../contentful-cms-cms-guidelines/variant-loop.md (Phase A: variant loop)
|
|
134
|
+
- ../contentful-cms-cms-guidelines/generation-prompt.md (Phase B: generation)
|
|
135
|
+
- ../contentful-cms-cms-guidelines/colour-hint-prompt.md (Phase C: colour hint)
|
|
136
|
+
- ../contentful-cms-cms-guidelines/validation-prompt.md (Phase D: validation)
|
|
140
137
|
|
|
141
138
|
=== Phase A: Variant loop ===
|
|
142
139
|
Follow variant-loop.md.
|
|
@@ -271,8 +268,8 @@ Each component guideline contains a `## Screenshots` section with image links:
|
|
|
271
268
|
|
|
272
269
|
| Variant | Preview |
|
|
273
270
|
|---------|---------|
|
|
274
|
-
| Default |  |
|
|
272
|
+
| Navy |  |
|
|
276
273
|
```
|
|
277
274
|
|
|
278
275
|
These links:
|
|
@@ -285,7 +282,7 @@ These links:
|
|
|
285
282
|
|
|
286
283
|
## Pipeline reference
|
|
287
284
|
|
|
288
|
-
All per-component pipeline docs live in `
|
|
285
|
+
All per-component pipeline docs live in the sibling directory [`contentful-cms-cms-guidelines/`](../contentful-cms-cms-guidelines/):
|
|
289
286
|
|
|
290
287
|
| File | Purpose |
|
|
291
288
|
|---|---|
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: update-cms-guidelines
|
|
3
|
-
description: Primary CMS guideline orchestration. Use
|
|
4
|
-
license: Private
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-core-product
|
|
7
|
-
version: "1.1.0"
|
|
2
|
+
name: contentful-cms-update-cms-guidelines
|
|
3
|
+
description: "Primary CMS guideline orchestration. Use fresh only after a full clean slate and complete pipeline (showcase → screenshots → new component prose via Phase B/C/D — never git-restore fragments). Use sync for incremental changes but always delete stale types. If the user is vague, ask whether they want a full clean regeneration or incremental sync before acting."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Update CMS Guidelines
|
|
@@ -49,21 +45,11 @@ If they insist on “everything” / “from scratch” / “totally regenerate
|
|
|
49
45
|
|
|
50
46
|
| Input | Example |
|
|
51
47
|
|---|---|
|
|
52
|
-
| App directory (repo-relative or absolute) | `apps/
|
|
53
|
-
|
|
|
54
|
-
|
|
|
48
|
+
| App directory (repo-relative or absolute) | `apps/my-site` |
|
|
49
|
+
| Discovery URL | `http://localhost:<PORT>/api/cms/discovery/` |
|
|
50
|
+
| Port / base URL | From `pnpm dev` output, or `devBaseUrl` in `<appDir>/.contentful-cms.json` |
|
|
55
51
|
| Mode | `fresh` \| `sync` \| `merge-only` |
|
|
56
52
|
|
|
57
|
-
**App ports:**
|
|
58
|
-
|
|
59
|
-
| App | Port |
|
|
60
|
-
|---|---|
|
|
61
|
-
| example-brightline | 3010 |
|
|
62
|
-
| example-se2026 | 3012 |
|
|
63
|
-
| example-om1 | 3013 |
|
|
64
|
-
| example-empty | 3014 |
|
|
65
|
-
| example-brightlifekids | 3015 |
|
|
66
|
-
|
|
67
53
|
---
|
|
68
54
|
|
|
69
55
|
## Mode: fresh
|
|
@@ -112,7 +98,7 @@ grep -E "CONTENTFUL_SPACE_ID|CONTENTFUL_ACCESS_TOKEN|OPENAI_API_KEY|ANTHROPIC_AP
|
|
|
112
98
|
### Step 2 — Curate showcase mocks
|
|
113
99
|
|
|
114
100
|
Read and follow the **curate-showcase-mocks** skill:
|
|
115
|
-
|
|
101
|
+
[`../se-marketing-sites-curate-showcase-mocks/SKILL.md`](../se-marketing-sites-curate-showcase-mocks/SKILL.md)
|
|
116
102
|
|
|
117
103
|
This produces `src/generated/showcase-mocks.json` (committed) and
|
|
118
104
|
`src/generated/cms-discovery/accepted-variants/{components|collections|externals}/<slug>.json` (often gitignored — **some apps commit them**; follow the app’s `.gitignore`).
|
|
@@ -150,7 +136,7 @@ Produces `generated/cms-discovery/field-list.json` (discovery API reads from thi
|
|
|
150
136
|
### Step 5 — Run generate-all-guidelines
|
|
151
137
|
|
|
152
138
|
Read and follow the **generate-all-guidelines** skill:
|
|
153
|
-
|
|
139
|
+
[`../contentful-cms-generate-all-guidelines/SKILL.md`](../contentful-cms-generate-all-guidelines/SKILL.md)
|
|
154
140
|
|
|
155
141
|
Skip its prerequisite check (you already verified everything through Step 4).
|
|
156
142
|
Run Phases 0–5 from that skill with **full regeneration rules**:
|
|
@@ -342,7 +328,7 @@ All under `<appDir>`:
|
|
|
342
328
|
|
|
343
329
|
| Purpose | Skill |
|
|
344
330
|
|---|---|
|
|
345
|
-
| Curate showcase mocks (Step 2 of `fresh`) |
|
|
346
|
-
| Full-site bulk generation (Step 4 of `fresh`: Phases 0–5) |
|
|
347
|
-
| Single-type regeneration (after code change) |
|
|
348
|
-
| Per-component pipeline detail | `
|
|
331
|
+
| Curate showcase mocks (Step 2 of `fresh`) | [`../se-marketing-sites-curate-showcase-mocks/SKILL.md`](../se-marketing-sites-curate-showcase-mocks/SKILL.md) |
|
|
332
|
+
| Full-site bulk generation (Step 4 of `fresh`: Phases 0–5) | [`../contentful-cms-generate-all-guidelines/SKILL.md`](../contentful-cms-generate-all-guidelines/SKILL.md) |
|
|
333
|
+
| Single-type regeneration (after code change) | [`../contentful-cms-generate-cms-guidelines/SKILL.md`](../contentful-cms-generate-cms-guidelines/SKILL.md) (mode: single) |
|
|
334
|
+
| Per-component pipeline detail | [`generate-component-guidelines.md`](../contentful-cms-cms-guidelines/generate-component-guidelines.md) |
|
|
@@ -1,57 +1,20 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: performance-audit
|
|
3
|
-
description:
|
|
4
|
-
Measure and improve Next.js app performance: bundle analysis, Lighthouse,
|
|
5
|
-
and real-user monitoring. Generic — works with any Next.js deployment on Vercel.
|
|
6
|
-
metadata:
|
|
7
|
-
author: se-core-product
|
|
8
|
-
version: "1.0.0"
|
|
9
|
-
priority: 5
|
|
10
|
-
promptSignals:
|
|
11
|
-
phrases:
|
|
12
|
-
- performance
|
|
13
|
-
- lighthouse
|
|
14
|
-
- bundle size
|
|
15
|
-
- bundle analysis
|
|
16
|
-
- LCP
|
|
17
|
-
- core web vitals
|
|
18
|
-
- CWV
|
|
19
|
-
- speed insights
|
|
20
|
-
- page speed
|
|
21
|
-
- slow pages
|
|
22
|
-
- optimize performance
|
|
23
|
-
- analyse bundle
|
|
24
|
-
- analyze bundle
|
|
25
|
-
- web vitals
|
|
26
|
-
retrieval:
|
|
27
|
-
aliases:
|
|
28
|
-
- perf
|
|
29
|
-
- web vitals
|
|
30
|
-
- bundle
|
|
31
|
-
- lighthouse audit
|
|
32
|
-
- performance measurement
|
|
33
|
-
intents:
|
|
34
|
-
- measure page performance
|
|
35
|
-
- analyze bundle sizes
|
|
36
|
-
- improve Lighthouse scores
|
|
37
|
-
- set up performance tooling
|
|
38
|
-
- investigate slow LCP
|
|
39
|
-
- add speed insights
|
|
40
|
-
- run bundle analyzer
|
|
41
|
-
entities:
|
|
42
|
-
- LCP
|
|
43
|
-
- CLS
|
|
44
|
-
- TBT
|
|
45
|
-
- TTFB
|
|
46
|
-
- FCP
|
|
47
|
-
- bundle analyzer
|
|
48
|
-
- Lighthouse
|
|
49
|
-
- Speed Insights
|
|
50
|
-
- Core Web Vitals
|
|
3
|
+
description: "Measure and improve Next.js app performance: bundle analysis, Lighthouse, and real-user monitoring. Generic — works with any Next.js deployment on Vercel."
|
|
51
4
|
---
|
|
52
5
|
|
|
53
6
|
# Next.js Performance Audit
|
|
54
7
|
|
|
8
|
+
## Discovery hints
|
|
9
|
+
|
|
10
|
+
Use this skill when the user mentions performance, Lighthouse, bundle size, LCP, Core Web Vitals, Speed Insights, or page speed optimization.
|
|
11
|
+
|
|
12
|
+
**Aliases:** perf, web vitals, bundle, lighthouse audit, performance measurement
|
|
13
|
+
|
|
14
|
+
**Common intents:** measure page performance, analyze bundle sizes, improve Lighthouse scores, set up performance tooling, investigate slow LCP, add speed insights, run bundle analyzer
|
|
15
|
+
|
|
16
|
+
**Related entities:** LCP, CLS, TBT, TTFB, FCP, bundle analyzer, Lighthouse, Speed Insights, Core Web Vitals
|
|
17
|
+
|
|
55
18
|
## Overview — Three-layer measurement strategy
|
|
56
19
|
|
|
57
20
|
Always use all three layers. Bundle size ≠ Lighthouse score ≠ real-user experience.
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: cms-routes-and-appshared
|
|
3
|
-
description: Guide for the (cms-routes) route group and appShared pattern. Use when setting up or migrating CMS-driven routing, creating new route segments, or refactoring page structure.
|
|
4
|
-
license: Private
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-core-product
|
|
7
|
-
version: "1.0.0"
|
|
2
|
+
name: se-marketing-sites-cms-routes-and-appshared
|
|
3
|
+
description: "Guide for the (cms-routes) route group and appShared pattern. Use when setting up or migrating CMS-driven routing, creating new route segments, or refactoring page structure."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# CMS Routes and appShared Pattern
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: create-
|
|
3
|
-
description: Guide for creating new CMS-driven collections (component containers) in the SE Core Product monorepo. Use this skill when asked to create a new collection or
|
|
4
|
-
license: Private
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-core-product
|
|
7
|
-
version: "1.1.0"
|
|
2
|
+
name: se-marketing-sites-create-collection
|
|
3
|
+
description: "Guide for creating new CMS-driven collections (component containers) in the SE Core Product monorepo. Use this skill when asked to create a new collection or grid component."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Creating CMS Collections
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: create-
|
|
3
|
-
description: Guide for creating new CMS-driven components in the SE Core Product monorepo. Use this skill when asked to create a new component, ensuring adherence to the 4-layer architecture.
|
|
4
|
-
license: Private
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-core-product
|
|
7
|
-
version: "1.1.0"
|
|
2
|
+
name: se-marketing-sites-create-component
|
|
3
|
+
description: "Guide for creating new CMS-driven components in the SE Core Product monorepo. Use this skill when asked to create a new component, ensuring adherence to the 4-layer architecture."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Creating CMS Components
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: create-page
|
|
3
|
-
description: Guide for creating new Next.js App Router pages and dynamic routes in the SE Core Product framework. Use when creating CMS-driven pages, adding route segments, or setting up routing.
|
|
4
|
-
license: Private
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-core-product
|
|
7
|
-
version: "2.0.0"
|
|
2
|
+
name: se-marketing-sites-create-page
|
|
3
|
+
description: "Guide for creating new Next.js App Router pages and dynamic routes in the SE Core Product framework. Use when creating CMS-driven pages, adding route segments, or setting up routing."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Creating Pages and Routes
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: curate-showcase-mocks
|
|
3
|
-
description: Extracts real component/collection data from Contentful and curates the best examples into showcase-mocks.json, making the CMS showcase display realistic content instead of generic placeholder text.
|
|
4
|
-
license: Private
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-core-product
|
|
7
|
-
version: "2.1.0"
|
|
2
|
+
name: se-marketing-sites-curate-showcase-mocks
|
|
3
|
+
description: "Extracts real component/collection data from Contentful and curates the best examples into showcase-mocks.json, making the CMS showcase display realistic content instead of generic placeholder text."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Curate Showcase Mocks
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: handling-media
|
|
3
|
-
description: Guide for using images, videos, and animations in marketing sites using the ResponsiveVisual and VisualComponent systems.
|
|
4
|
-
license: Private
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-core-product
|
|
7
|
-
version: "1.0.0"
|
|
2
|
+
name: se-marketing-sites-handling-media
|
|
3
|
+
description: "Guide for using images, videos, and animations in marketing sites using the ResponsiveVisual and VisualComponent systems."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Handling Media
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: lib-cms-structure
|
|
3
|
-
description: Guide for the lib directory structure in SE Core Product CMS apps. Use when setting up lib/, migrating from contentful-config, or adding new CMS configuration.
|
|
4
|
-
license: Private
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-core-product
|
|
7
|
-
version: "1.0.0"
|
|
2
|
+
name: se-marketing-sites-lib-cms-structure
|
|
3
|
+
description: "Guide for the lib directory structure in SE Core Product CMS apps. Use when setting up lib/, migrating from contentful-config, or adding new CMS configuration."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Lib Directory Structure
|
|
@@ -63,6 +59,14 @@ registrations.ts (*RegistrationsList arrays)
|
|
|
63
59
|
|
|
64
60
|
Add new components/collections to the appropriate *RegistrationsList array in `registrations.ts`. The `cms.ts` imports those arrays, builds Records via `buildComponentRecord` / `buildCollectionRecord` / `buildExternalRecord` (which enforce that every CMS type has a registration), then builds the maps used by `cms-server.ts`.
|
|
65
61
|
|
|
62
|
+
## cms-types.ts discriminators
|
|
63
|
+
|
|
64
|
+
In `cms-types.ts`, projects declare typed unions for renderer lookup — base interfaces omit these fields:
|
|
65
|
+
|
|
66
|
+
- `IComponent.componentType` (Contentful `componentType`)
|
|
67
|
+
- `ICollection.collectionType` (Contentful `collectionType`)
|
|
68
|
+
- `IExternalComponent.externalComponentType` (Contentful **`externalComponentType`** — not `externalType`, which is never populated at runtime)
|
|
69
|
+
|
|
66
70
|
## Circular Dependency: Do Not Import cms-server in Components/Collections
|
|
67
71
|
|
|
68
72
|
Components and collections in the registration chain (imported by `registrations.ts`) must **not** import from `cms-server` directly. Doing so creates a circular dependency (cms-server → cms → registrations → components → cms-server) that causes TDZ errors during RSC serialization.
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: register-cms-features
|
|
3
|
-
description: Guide for registering new components, collections, and external integrations in the CMS configuration (src/lib/registrations.ts).
|
|
4
|
-
license: Private
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-core-product
|
|
7
|
-
version: "1.0.0"
|
|
2
|
+
name: se-marketing-sites-register-cms-features
|
|
3
|
+
description: "Guide for registering new components, collections, and external integrations in the CMS configuration (src/lib/registrations.ts)."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Registering CMS Features
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name: styling-system
|
|
3
|
-
description: Reference guide for the marketing site styling system, including typography, colors, grids, and RTF classes.
|
|
4
|
-
license: Private
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-core-product
|
|
7
|
-
version: "1.1.0"
|
|
2
|
+
name: se-marketing-sites-styling-system
|
|
3
|
+
description: "Reference guide for the marketing site styling system, including typography, colors, grids, and RTF classes."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Styling System
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: site-workflows-apply-design-snapshot
|
|
3
|
-
description: Reads design.md and applies the design tokens to the project — updating tailwind.config.json (colours + typography), handling custom fonts, and regenerating all downstream files via pnpm codegen. Run after
|
|
4
|
-
license: MIT
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-studio
|
|
7
|
-
version: "1.0.0"
|
|
3
|
+
description: "Reads design.md and applies the design tokens to the project — updating tailwind.config.json (colours + typography), handling custom fonts, and regenerating all downstream files via pnpm codegen. Run after figma-design-snapshot to sync the codebase with the latest Figma changes."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Apply Design Snapshot
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: site-workflows-contentful-vercel-setup
|
|
3
|
-
description: Set up Contentful revalidation webhooks and live preview for a new SE Studio project on Vercel. Creates the Contentful webhook via the Management API and sets REVALIDATION_SECRET in Vercel. Run after site-workflows-new-project bootstrap when the Vercel project is deployed.
|
|
4
|
-
license: MIT
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-studio
|
|
7
|
-
version: "1.0.0"
|
|
3
|
+
description: "Set up Contentful revalidation webhooks and live preview for a new SE Studio project on Vercel. Creates the Contentful webhook via the Management API and sets REVALIDATION_SECRET in Vercel. Run after site-workflows-new-project bootstrap when the Vercel project is deployed."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Contentful & Vercel Webhook Setup
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: site-workflows-copy-doc-snapshot
|
|
3
|
-
description: Syncs content/copy/*.md files from the Google Docs copy document. Run whenever the copy doc is updated to pull changes into git. Produces a diff-friendly merge — CMS annotations and sync-to-CMS state are never touched.
|
|
4
|
-
license: MIT
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-studio
|
|
7
|
-
version: "1.0.0"
|
|
3
|
+
description: "Syncs content/copy/*.md files from the Google Docs copy document. Run whenever the copy doc is updated to pull changes into git. Produces a diff-friendly merge — CMS annotations and sync-to-CMS state are never touched."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# Copy Doc Snapshot
|
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
---
|
|
2
|
-
name:
|
|
2
|
+
name: site-workflows-figma-design-snapshot
|
|
3
3
|
description: "Regenerates design.md from Figma by extracting all design tokens, typography, and component specs. Produces a deterministic, git-diffable output — run on any day to see what designers have changed."
|
|
4
|
-
metadata:
|
|
5
|
-
author: se-studio
|
|
6
|
-
version: "1.0.0"
|
|
7
4
|
---
|
|
8
5
|
|
|
9
6
|
# Figma Design Snapshot
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: site-workflows-new-project
|
|
3
|
-
description: Bootstrap a new SE Studio customer project from the SE Studio template. Runs full project cleanup (black/white colors, system font, minimal registrations), then sets up CLAUDE.md, AGENTS.md, README files, STYLING.md, ANIMATION.md, and updates project identity (site title, description, .cursorrules). Use this immediately after cloning the template for a new client.
|
|
4
|
-
license: MIT
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-studio
|
|
7
|
-
version: "1.0.0"
|
|
3
|
+
description: "Bootstrap a new SE Studio customer project from the SE Studio template. Runs full project cleanup (black/white colors, system font, minimal registrations), then sets up CLAUDE.md, AGENTS.md, README files, STYLING.md, ANIMATION.md, and updates project identity (site title, description, .cursorrules). Use this immediately after cloning the template for a new client."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# SE New Project Bootstrap
|
|
@@ -1,10 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: site-workflows-project-cleanup
|
|
3
|
-
description: Strip an existing SE Studio Next.js/Contentful project to a bare-bones baseline — black/white color system, system font, only Generic Component, Generic Collection, and Related Articles Collection registered, with minimal navigation and footer stubs. Run this when you need to clean a customer project down to a reusable template.
|
|
4
|
-
license: MIT
|
|
5
|
-
metadata:
|
|
6
|
-
author: se-studio
|
|
7
|
-
version: "1.0.0"
|
|
3
|
+
description: "Strip an existing SE Studio Next.js/Contentful project to a bare-bones baseline — black/white color system, system font, only Generic Component, Generic Collection, and Related Articles Collection registered, with minimal navigation and footer stubs. Run this when you need to clean a customer project down to a reusable template."
|
|
8
4
|
---
|
|
9
5
|
|
|
10
6
|
# SE Project Cleanup
|