@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.
Files changed (35) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/README.md +63 -0
  3. package/package.json +4 -1
  4. package/skills/contentful-cms-alt-text-audit/SKILL.md +1 -1
  5. package/skills/contentful-cms-cms-guidelines/README.md +15 -11
  6. package/skills/contentful-cms-cms-guidelines/generation-prompt.md +1 -1
  7. package/skills/contentful-cms-core/SKILL.md +1 -1
  8. package/skills/contentful-cms-generate-all-guidelines/SKILL.md +8 -12
  9. package/skills/contentful-cms-generate-cms-guidelines/SKILL.md +18 -21
  10. package/skills/contentful-cms-image-guide/SKILL.md +1 -1
  11. package/skills/contentful-cms-navigation/SKILL.md +1 -1
  12. package/skills/contentful-cms-rich-text/SKILL.md +1 -1
  13. package/skills/contentful-cms-schema-org/SKILL.md +1 -1
  14. package/skills/contentful-cms-screenshots/SKILL.md +1 -1
  15. package/skills/contentful-cms-seo-descriptions/SKILL.md +1 -1
  16. package/skills/contentful-cms-setup/SKILL.md +1 -1
  17. package/skills/contentful-cms-templates/SKILL.md +1 -1
  18. package/skills/contentful-cms-update-cms-guidelines/SKILL.md +11 -25
  19. package/skills/performance-audit/SKILL.md +11 -48
  20. package/skills/se-marketing-sites-cms-routes-and-appshared/SKILL.md +2 -6
  21. package/skills/se-marketing-sites-create-collection/SKILL.md +2 -6
  22. package/skills/se-marketing-sites-create-component/SKILL.md +2 -6
  23. package/skills/se-marketing-sites-create-page/SKILL.md +2 -6
  24. package/skills/se-marketing-sites-curate-showcase-mocks/SKILL.md +2 -6
  25. package/skills/se-marketing-sites-handling-media/SKILL.md +2 -6
  26. package/skills/se-marketing-sites-lib-cms-structure/SKILL.md +10 -6
  27. package/skills/se-marketing-sites-register-cms-features/SKILL.md +2 -6
  28. package/skills/se-marketing-sites-styling-system/SKILL.md +2 -6
  29. package/skills/site-workflows-apply-design-snapshot/SKILL.md +1 -5
  30. package/skills/site-workflows-brand-context-builder/SKILL.md +1 -1
  31. package/skills/site-workflows-contentful-vercel-setup/SKILL.md +1 -5
  32. package/skills/site-workflows-copy-doc-snapshot/SKILL.md +1 -5
  33. package/skills/site-workflows-figma-design-snapshot/SKILL.md +1 -4
  34. package/skills/site-workflows-new-project/SKILL.md +1 -5
  35. 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.35",
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
  }
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: "Alt Text Audit"
2
+ name: contentful-cms-alt-text-audit
3
3
  description: "Audit and improve image alt text across site pages using cms-edit, with brand-aware terminology and accessibility best practices."
4
4
  ---
5
5
 
@@ -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](.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.
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](.agents/skills/contentful-cms-generate-cms-guidelines/SKILL.md).
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 [`.agents/skills/contentful-cms-generate-cms-guidelines/SKILL.md`](.agents/skills/contentful-cms-generate-cms-guidelines/SKILL.md). It supports three modes:
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 for `example-om1`**
46
+ **Example: full from scratch**
47
47
 
48
48
  Start the app:
49
+
49
50
  ```bash
50
- pnpm --filter example-om1 dev
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
- - App directory: `apps/example-om1`
56
+
57
+ - App directory: `<appDir>` (e.g. `.` in an external project)
55
58
  - Mode: `full`
56
- - Discovery URL: `http://localhost:3013/api/cms/discovery/`
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
- - App directory: `apps/example-se2026`
64
+
65
+ - App directory: `<appDir>`
62
66
  - Mode: `single`
63
67
  - Type name: `Hero`
64
- - Discovery URL: `http://localhost:3012/api/cms/discovery/`
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:3010/api/cms/discovery/ \
113
- --app-dir apps/example-brightline
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:3010").
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,5 +1,5 @@
1
1
  ---
2
- name: "contentful-cms:core"
2
+ name: contentful-cms-core
3
3
  description: "Use cms-edit CLI to read/edit Contentful content (open → snapshot → read → set/rtf → diff → save)."
4
4
  ---
5
5
 
@@ -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/example-se2026` or `/home/nick/source/se/se-website-2026` |
73
- | Discovery URL | `http://localhost:3012/api/cms/discovery/` |
74
- | Port | `3012` |
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
- - packages/skills/skills/contentful-cms-cms-guidelines/generation-prompt.md (Phase B instructions)
205
- - packages/skills/skills/contentful-cms-cms-guidelines/colour-hint-prompt.md (Phase C instructions)
206
- - packages/skills/skills/contentful-cms-cms-guidelines/validation-prompt.md (Phase D instructions)
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: "contentful-cms:generate-cms-guidelines"
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](.agents/skills/se-marketing-sites-curate-showcase-mocks/SKILL.md) to produce `showcase-mocks.json`.
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** | URL to the live app's discovery endpoint, e.g. `http://localhost:3013/api/cms/discovery/` |
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
- **App ports** (app must be running for `full` and `single` modes):
57
+ The app must be running for `full` and `single` modes. Confirm with:
57
58
 
58
- | App | Port | Discovery URL |
59
- |---|---|---|
60
- | example-brightline | 3010 | `http://localhost:3010/api/cms/discovery/` |
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
- [`packages/skills/skills/contentful-cms-cms-guidelines/generate-component-guidelines.md`](../../../packages/skills/skills/contentful-cms-cms-guidelines/generate-component-guidelines.md).
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 (they are in packages/skills/skills/contentful-cms-cms-guidelines/):
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 | ![Default](http://localhost:3010/cms/screenshot?file=components/hero-default.png) |
275
- | Navy | ![Navy](http://localhost:3010/cms/screenshot?file=components/hero-navy.png) |
271
+ | Default | ![Default](<devBaseUrl>/cms/screenshot?file=components/hero-default.png) |
272
+ | Navy | ![Navy](<devBaseUrl>/cms/screenshot?file=components/hero-navy.png) |
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 `packages/skills/skills/contentful-cms-cms-guidelines/`:
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,5 +1,5 @@
1
1
  ---
2
- name: "Image Guide"
2
+ name: contentful-cms-image-guide
3
3
  description: "Generate a comprehensive image guide (both Markdown and HTML) for a site's CMS image assets, with rich AI-generated visual descriptions and content relationship trees."
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: "contentful-cms:navigation"
2
+ name: contentful-cms-navigation
3
3
  description: "Create or edit navigation entries and nav items in Contentful via cms-edit."
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: "contentful-cms:rich-text"
2
+ name: contentful-cms-rich-text
3
3
  description: "Edit rich-text fields and insert embedded entries/assets via cms-edit."
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: "Schema.org Generation"
2
+ name: contentful-cms-schema-org
3
3
  description: "Generate Schema.org structured data as Mustache templates for site pages and upload via cms-edit."
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: "contentful-cms:screenshots"
2
+ name: contentful-cms-screenshots
3
3
  description: "Capture screenshots of components, collections, pages or persons via cms-edit."
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: "SEO Descriptions"
2
+ name: contentful-cms-seo-descriptions
3
3
  description: "Generate or improve SEO meta descriptions for pages using cms-edit, targeting keywords with the brand voice."
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: "contentful-cms:setup"
2
+ name: contentful-cms-setup
3
3
  description: "Guide a user through installing and configuring the cms-edit MCP server for Claude Desktop."
4
4
  ---
5
5
 
@@ -1,5 +1,5 @@
1
1
  ---
2
- name: "contentful-cms:templates"
2
+ name: contentful-cms-templates
3
3
  description: "Create or edit templates (preContent, postContent, menu, footer, colours) in Contentful via cms-edit."
4
4
  ---
5
5
 
@@ -1,10 +1,6 @@
1
1
  ---
2
- name: 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.
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/example-se2026` |
53
- | Port | `3012` |
54
- | Discovery URL | `http://localhost:3012/api/cms/discovery/` |
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
- `.agents/skills/se-marketing-sites-curate-showcase-mocks/SKILL.md`
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
- `.agents/skills/contentful-cms-generate-all-guidelines/SKILL.md`
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`) | `.agents/skills/se-marketing-sites-curate-showcase-mocks/SKILL.md` |
346
- | Full-site bulk generation (Step 4 of `fresh`: Phases 0–5) | `.agents/skills/contentful-cms-generate-all-guidelines/SKILL.md` |
347
- | Single-type regeneration (after code change) | `.agents/skills/contentful-cms-generate-cms-guidelines/SKILL.md` (mode: single) |
348
- | Per-component pipeline detail | `packages/skills/skills/contentful-cms-cms-guidelines/generate-component-guidelines.md` |
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-cms-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.
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-cms-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.
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-route
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 /figma-design-snapshot to sync the codebase with the latest Figma changes.
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,5 +1,5 @@
1
1
  ---
2
- name: "Brand Context Builder"
2
+ name: site-workflows-brand-context-builder
3
3
  description: "Interactively create or update a brand context skill for a customer's site by analysing their content and asking refinement questions."
4
4
  ---
5
5
 
@@ -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: "Figma Design Snapshot"
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