@se-studio/skills 0.0.0-next16-20260822103555
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 +641 -0
- package/README.md +95 -0
- package/package.json +29 -0
- package/references/agent-session/cms-edit-prod-merge.md +35 -0
- package/references/agent-session/customer-agents-block.md +58 -0
- package/references/agent-session/manifest.template.yaml +37 -0
- package/references/agent-session/projects.registry.json +96 -0
- package/references/agent-session/refuse-customer-patches.md +58 -0
- package/references/agent-session/smoke-deploy-failure-playbook.md +80 -0
- package/references/contentful-cms-cms-guidelines/README.md +170 -0
- package/references/contentful-cms-cms-guidelines/colour-hint-prompt.md +77 -0
- package/references/contentful-cms-cms-guidelines/evaluation-prompt.md +84 -0
- package/references/contentful-cms-cms-guidelines/generate-component-guidelines.md +126 -0
- package/references/contentful-cms-cms-guidelines/generation-prompt.md +231 -0
- package/references/contentful-cms-cms-guidelines/html-component-authoring.md +402 -0
- package/references/contentful-cms-cms-guidelines/validation-prompt.md +170 -0
- package/references/contentful-cms-cms-guidelines/variant-loop.md +189 -0
- package/references/contentful-cms-cms-guidelines/variant-proposal-prompt.md +131 -0
- package/references/contentful-cms-editor-playbooks/PATTERNS.md +181 -0
- package/references/contentful-cms-editor-playbooks/PROJECT-ROLLOUT.md +232 -0
- package/references/contentful-cms-editor-playbooks/SOURCE-READINESS.md +96 -0
- package/references/contentful-cms-editor-playbooks/examples/brightline-learning-hub-article-shaped.md +48 -0
- package/references/contentful-cms-editor-playbooks/examples/headwater-news-shaped.md +48 -0
- package/references/contentful-cms-editor-playbooks/examples/om1-resource-case-study-shaped.md +52 -0
- package/references/contentful-cms-editor-playbooks/examples/pedestal-publication-shaped.md +50 -0
- package/references/contentful-cms-editor-playbooks/examples/se-case-study-meet-makers-shaped.md +51 -0
- package/references/contentful-cms-editor-playbooks/examples/se-case-study-om1-shaped.md +72 -0
- package/references/contentful-cms-editor-playbooks/examples/se-om1-case-study-brief.docx +0 -0
- package/references/contentful-cms-editor-playbooks/examples/se-om1-case-study-brief.md +62 -0
- package/references/deployment-smoke-feature-branch-skip/README.md +66 -0
- package/references/deployment-smoke-feature-branch-skip/workflow-snippet.yml +38 -0
- package/references/deps-update/projects.registry.json +83 -0
- package/references/lockfile-sync/README.md +55 -0
- package/references/lockfile-sync/validate-workflow-snippet.yml +32 -0
- package/references/stale-files-cleanup/BRIGHTLINE_RUNBOOK.md +90 -0
- package/references/stale-files-cleanup/CHECKLIST.md +145 -0
- package/references/stale-files-cleanup/FALSE_POSITIVES.md +88 -0
- package/references/stale-files-cleanup/MONOREPO.md +85 -0
- package/references/stale-files-cleanup/SINGLE_APP.md +66 -0
- package/skills/cms-seo-audit/SKILL.md +178 -0
- package/skills/contentful-cms-alt-text-audit/SKILL.md +60 -0
- package/skills/contentful-cms-core/SKILL.md +860 -0
- package/skills/contentful-cms-create-editor-playbooks/SKILL.md +280 -0
- package/skills/contentful-cms-editor-tasks/SKILL.md +86 -0
- package/skills/contentful-cms-generate-all-guidelines/SKILL.md +309 -0
- package/skills/contentful-cms-generate-cms-guidelines/SKILL.md +310 -0
- package/skills/contentful-cms-media-review/SKILL.md +98 -0
- package/skills/contentful-cms-navigation/SKILL.md +84 -0
- package/skills/contentful-cms-regenerate-editor-pack/SKILL.md +132 -0
- package/skills/contentful-cms-rich-text/SKILL.md +93 -0
- package/skills/contentful-cms-schema-audit/SKILL.md +122 -0
- package/skills/contentful-cms-schema-org/SKILL.md +101 -0
- package/skills/contentful-cms-seo-descriptions/SKILL.md +54 -0
- package/skills/contentful-cms-setup/SKILL.md +102 -0
- package/skills/contentful-cms-sync-schema/SKILL.md +134 -0
- package/skills/contentful-cms-templates/SKILL.md +21 -0
- package/skills/contentful-cms-update-cms-guidelines/SKILL.md +341 -0
- package/skills/performance-audit/SKILL.md +312 -0
- package/skills/screaming-frog-audit/SKILL.md +110 -0
- package/skills/screaming-frog-audit/references/profiles.md +62 -0
- package/skills/se-marketing-sites-cms-routes-and-appshared/SKILL.md +95 -0
- package/skills/se-marketing-sites-create-collection/SKILL.md +291 -0
- package/skills/se-marketing-sites-create-component/SKILL.md +246 -0
- package/skills/se-marketing-sites-create-page/SKILL.md +188 -0
- package/skills/se-marketing-sites-curate-showcase-mocks/SKILL.md +352 -0
- package/skills/se-marketing-sites-handling-media/SKILL.md +196 -0
- package/skills/se-marketing-sites-lib-cms-structure/SKILL.md +104 -0
- package/skills/se-marketing-sites-markdown-accuracy-review/SKILL.md +69 -0
- package/skills/se-marketing-sites-redirects/SKILL.md +276 -0
- package/skills/se-marketing-sites-register-cms-features/SKILL.md +95 -0
- package/skills/se-marketing-sites-smoke-test-setup/SKILL.md +438 -0
- package/skills/se-marketing-sites-styling-system/SKILL.md +118 -0
- package/skills/site-workflows-agent-session/SKILL.md +355 -0
- package/skills/site-workflows-apply-design-snapshot/SKILL.md +281 -0
- package/skills/site-workflows-brand-context-builder/SKILL.md +98 -0
- package/skills/site-workflows-contentful-vercel-setup/SKILL.md +406 -0
- package/skills/site-workflows-copy-doc-snapshot/SKILL.md +218 -0
- package/skills/site-workflows-deps-update/SKILL.md +264 -0
- package/skills/site-workflows-figma-design-snapshot/SKILL.md +387 -0
- package/skills/site-workflows-new-project/SKILL.md +328 -0
- package/skills/site-workflows-project-cleanup/SKILL.md +470 -0
- package/skills/site-workflows-stale-files-cleanup/SKILL.md +165 -0
- package/skills/vercel-logs-audit/SKILL.md +134 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,641 @@
|
|
|
1
|
+
# @se-studio/skills
|
|
2
|
+
|
|
3
|
+
## 0.0.0-next16-20260822103555
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- eeed547: Support Next.js 16.3 while remaining compatible with Next.js 15.5 (peer `>=15.5.0 <17`). CMS webhooks call `revalidateTag(tag, { expire: 0 })` so published content is not served stale. Template apps use `proxy.ts` on Next 16.
|
|
8
|
+
|
|
9
|
+
### Patch Changes
|
|
10
|
+
|
|
11
|
+
- 41cfadb: Allow agents to merge customer production only for cms-edit-only diffs (host package / editor-pack), one site at a time with a live health check.
|
|
12
|
+
|
|
13
|
+
## 1.6.9
|
|
14
|
+
|
|
15
|
+
### Patch Changes
|
|
16
|
+
|
|
17
|
+
- 34a8a7f: Stop rotating hosted MCP refresh tokens on `/oauth/token`. Grok retries and parallel sessions were hitting `invalid_refresh_token` after the 1-hour access JWT expired. Include `refresh_token_expires_in` (30 days) on token responses.
|
|
18
|
+
|
|
19
|
+
## 1.6.8
|
|
20
|
+
|
|
21
|
+
### Patch Changes
|
|
22
|
+
|
|
23
|
+
- d74ec5c: Document Figma-as-absolute-gospel for new UI work in site-workflows-agent-session (until the user overrides).
|
|
24
|
+
|
|
25
|
+
## 1.6.7
|
|
26
|
+
|
|
27
|
+
### Patch Changes
|
|
28
|
+
|
|
29
|
+
- 325ef89: cms-edit hosted MCP Production is the marketing production branch (`main` / HSD `production`), not `develop`.
|
|
30
|
+
|
|
31
|
+
## 1.6.6
|
|
32
|
+
|
|
33
|
+
### Patch Changes
|
|
34
|
+
|
|
35
|
+
- Treat a present-but-invalid Contentful CMA cache like a missing cache on hosted MCP: delete the Redis token, refuse refresh and authorization-code grants, and return `WWW-Authenticate: error="invalid_token"` so Grok re-runs Contentful sign-in instead of looping on `auth required`.
|
|
36
|
+
|
|
37
|
+
## 1.6.5
|
|
38
|
+
|
|
39
|
+
### Patch Changes
|
|
40
|
+
|
|
41
|
+
- 35c02f0: Keep hosted MCP auth alive across Grok refresh and host deploys: slide the Contentful token TTL to 30 days, refuse MCP token grants when the CMA cache is gone, and return `invalid_token` so clients re-run Contentful sign-in instead of looping on “Failed to get tools after auth”.
|
|
42
|
+
|
|
43
|
+
## 1.6.4
|
|
44
|
+
|
|
45
|
+
### Patch Changes
|
|
46
|
+
|
|
47
|
+
- 2c479e7: Wrap HtmlComponent customJs in an IIFE so `hcRoot` is per-instance. Two HtmlComponents with scripts on the same page no longer throw `Identifier 'hcRoot' has already been declared`.
|
|
48
|
+
|
|
49
|
+
## 1.6.3
|
|
50
|
+
|
|
51
|
+
### Patch Changes
|
|
52
|
+
|
|
53
|
+
- DotLottie player for CMS animations (JSON and `.lottie`), with classic lottie-player fallback if DotLottie is not installed. Lazy load by default; honour loading/fetchPriority for eager (heroes). Server enrich reads dimensions and poster for CLS. WASM self-host helper (`/dotlottie/dotlottie-player.wasm`). Extension-first animation detection; hosted staged upload allows JSON/zip for animation packages. INavigation surfaces optional backgroundColour/textColour for footer chrome.
|
|
54
|
+
|
|
55
|
+
## 1.6.2
|
|
56
|
+
|
|
57
|
+
### Patch Changes
|
|
58
|
+
|
|
59
|
+
- 928562f: CMS showcase: controls closed by default (`?controls=true`), map control keys to usedFields, string mock body → rich text, placeholder visuals, iframe height shrink/caps, External video for Vimeo/YouTube mock URLs, `showcaseLayout` registration + fixed preview frames, and helpers `isCmsShowcase` / `articlesFromShowcaseContents` / `peopleFromShowcaseContents` for related-content collections. Skills: curate-showcase-mocks video URL and no-LLM notes.
|
|
60
|
+
|
|
61
|
+
## 1.6.1
|
|
62
|
+
|
|
63
|
+
### Patch Changes
|
|
64
|
+
|
|
65
|
+
- Add SE OM1 example case-study brief (markdown + Word) for package-intake training.
|
|
66
|
+
|
|
67
|
+
## 1.6.0
|
|
68
|
+
|
|
69
|
+
### Minor Changes
|
|
70
|
+
|
|
71
|
+
- Add source readiness review as a core editor task, wire create-from-document / create-article / preview-verify to faithful package intake (no copy rewrite), and ship SOURCE-READINESS plus multi-site input examples for playbook authors.
|
|
72
|
+
|
|
73
|
+
## 1.5.11
|
|
74
|
+
|
|
75
|
+
### Patch Changes
|
|
76
|
+
|
|
77
|
+
- Document smoke/deploy failure playbook and refuse-customer-patches guardrails (agent-session Step 3b).
|
|
78
|
+
|
|
79
|
+
## 1.5.10
|
|
80
|
+
|
|
81
|
+
### Patch Changes
|
|
82
|
+
|
|
83
|
+
- Document lockfile sync enforcement (scripts, CI snippet, deps-update and smoke-test skill updates).
|
|
84
|
+
|
|
85
|
+
## 1.5.8
|
|
86
|
+
|
|
87
|
+
### Patch Changes
|
|
88
|
+
|
|
89
|
+
- Add `site-workflows-stale-files-cleanup` skill and `references/stale-files-cleanup/` (checklist, false positives, monorepo/single-app layouts, Brightline case study) for repository hygiene audits on SE Studio marketing sites.
|
|
90
|
+
|
|
91
|
+
## 1.5.7
|
|
92
|
+
|
|
93
|
+
### Patch Changes
|
|
94
|
+
|
|
95
|
+
- c29c4c8: Add `site-workflows-agent-session` skill and agent-session reference files for cross-repo work sessions, placement checklist, and parallel feature isolation.
|
|
96
|
+
|
|
97
|
+
## 1.5.6
|
|
98
|
+
|
|
99
|
+
### Patch Changes
|
|
100
|
+
|
|
101
|
+
- Media wrapper entries now default their `name` (Contentful list label) to the linked asset's title when created via `create media` or `visualAssetFilename` shorthands. Document the convention in editor playbooks and skills; avoid migration-style `Wrapper for {assetId}` labels.
|
|
102
|
+
|
|
103
|
+
## 1.5.5
|
|
104
|
+
|
|
105
|
+
### Patch Changes
|
|
106
|
+
|
|
107
|
+
- d1a119c: Add `contentful-cms-create-editor-playbooks` skill and reference docs for customer editor playbook rollouts (Pedestal, OM1, PointMe, SE website).
|
|
108
|
+
|
|
109
|
+
## 1.5.4
|
|
110
|
+
|
|
111
|
+
### Patch Changes
|
|
112
|
+
|
|
113
|
+
- Bulk version bump: patch for all packages
|
|
114
|
+
|
|
115
|
+
## 1.5.3
|
|
116
|
+
|
|
117
|
+
### Patch Changes
|
|
118
|
+
|
|
119
|
+
- Add `task-media-review` editor playbook with production URL support, registry entry, and updated media-review skills for multi-customer Claude workflows.
|
|
120
|
+
|
|
121
|
+
## 1.5.2
|
|
122
|
+
|
|
123
|
+
### Patch Changes
|
|
124
|
+
|
|
125
|
+
- Cap `asset review --include-usage` with `--usage-limit` (default 50) to avoid hosted MCP timeouts on large spaces. Document usage-limit in asset-review help and media-review skill.
|
|
126
|
+
|
|
127
|
+
## 1.5.1
|
|
128
|
+
|
|
129
|
+
### Patch Changes
|
|
130
|
+
|
|
131
|
+
- aa6f11b: Breaking cms-edit CLI prune (2.6.0):
|
|
132
|
+
|
|
133
|
+
**Removed**
|
|
134
|
+
|
|
135
|
+
- `ensure` — use `create … --if-not-exists`
|
|
136
|
+
- `skill` command (including `skill install`) — use `npx skills add @se-studio/skills`
|
|
137
|
+
- `contentful-cms` bin alias — use `cms-edit` only
|
|
138
|
+
- top-level `audit` (`images`, `tree`) — use `asset review --include-usage` and `list`/`open`/`peek`
|
|
139
|
+
- `backup`, `restore`, `revert` — use `diff` + `discard` + Contentful UI
|
|
140
|
+
- top-level `run` — use `batch run --file`
|
|
141
|
+
- top-level `colours`, `types` — use `schema colours`, `schema types <content-type>`
|
|
142
|
+
- `contentful-cms-image-guide` skill — merged into `contentful-cms-media-review`
|
|
143
|
+
|
|
144
|
+
**Added**
|
|
145
|
+
|
|
146
|
+
- `create from-json --if-not-exists`
|
|
147
|
+
- `asset review --include-usage` (slug-bearing usage ancestry)
|
|
148
|
+
- `batch run` subcommand
|
|
149
|
+
|
|
150
|
+
**Migration**
|
|
151
|
+
|
|
152
|
+
| Old | New |
|
|
153
|
+
| ---------------------------------------- | ---------------------------------------------- |
|
|
154
|
+
| `cms-edit ensure tag-type …` | `cms-edit create tag-type … --if-not-exists` |
|
|
155
|
+
| `cms-edit run --file x.json` | `cms-edit batch run --file x.json` |
|
|
156
|
+
| `cms-edit colours` | `cms-edit schema colours` |
|
|
157
|
+
| `cms-edit types component` | `cms-edit schema types component` |
|
|
158
|
+
| `cms-edit audit images` | `cms-edit --json asset review --include-usage` |
|
|
159
|
+
| `cms-edit backup` / `restore` / `revert` | `diff` + `discard`; Contentful UI |
|
|
160
|
+
| `cms-edit skill install` | `npx skills add @se-studio/skills` |
|
|
161
|
+
|
|
162
|
+
- db737d9: Add `site-workflows-deps-update` skill for updating dependencies across se-core-product and consumer repos with Next 15 / Node 24 pins, unified no-pnpm-patches enforcement, and pnpm 11.x updates.
|
|
163
|
+
- 1262175: Remove `cms-edit sitemap` command. Use `list --type <type>` for content discovery. Update skills, MCP prompts, and editor task playbooks.
|
|
164
|
+
|
|
165
|
+
## 1.5.0
|
|
166
|
+
|
|
167
|
+
### Minor Changes
|
|
168
|
+
|
|
169
|
+
- bc538fd: Editor-pack capabilities router (`capabilities.json`, `tasks-index`, task playbooks), batch commands (`article-tags-from-json`, `bulk-rtf-replace`, `create person` / `person-from-json`, `ensure person`), and `cms-edit project doctor`.
|
|
170
|
+
|
|
171
|
+
Hosted-first MCP: setup wizard, `cms-edit setup`, `cms-edit-setup` and `cms-edit-mcp` bins, and local install scripts removed. Editors connect via `/cms-edit` OAuth; developers use `cms-edit` CLI (`npx @se-studio/contentful-cms` aliases the CLI).
|
|
172
|
+
|
|
173
|
+
**Breaking:** Do not use local `mcpServers.cms-edit` or `cms-edit setup` — those entry points are removed.
|
|
174
|
+
|
|
175
|
+
## 1.4.4
|
|
176
|
+
|
|
177
|
+
### Patch Changes
|
|
178
|
+
|
|
179
|
+
- Add `cms-edit asset review` to audit visual assets (filename, alt text, dimensions, file size, GIF) from the Preview API index, plus the `contentful-cms-media-review` skill for spreadsheet workflows.
|
|
180
|
+
|
|
181
|
+
## 1.4.3
|
|
182
|
+
|
|
183
|
+
### Patch Changes
|
|
184
|
+
|
|
185
|
+
- Document SSG guardrails (Biome, route-build-policy, validate-build-routes) in se-marketing-sites-smoke-test-setup skill.
|
|
186
|
+
|
|
187
|
+
## 1.4.2
|
|
188
|
+
|
|
189
|
+
### Patch Changes
|
|
190
|
+
|
|
191
|
+
- Add flat navigation assembly via `getNavigation` in `createAppHelpers` — menus resolve without Contentful include depth. Registry and link-index fetchers stay package-internal so apps cannot call them directly.
|
|
192
|
+
|
|
193
|
+
Flat-nav caches use collection tags (`FLAT_NAV_CACHE_TAGS`, including `tagType` and `link`) for webhook invalidation, with `FLAT_NAV_TIME_REVALIDATE_SECONDS` (3600) as an ISR fallback when webhooks miss.
|
|
194
|
+
|
|
195
|
+
Fix flat-nav Contentful fetches for spaces with differing content models (e.g. OM1): registry and link-wrapper fetches omit `select`; tagType bulk link fetches request golden `fields.slug` and fall back to minimal fields when absent. Unresolved nav targets log under `LOG_CMS`.
|
|
196
|
+
|
|
197
|
+
## 1.4.1
|
|
198
|
+
|
|
199
|
+
### Patch Changes
|
|
200
|
+
|
|
201
|
+
- f2de9ba: Document CMS smoke integrity (`cmsIntegrity`, `runStaticSmokeTestWithIntegrity`), Vercel `VERCEL_FORCE_NO_BUILD_CACHE`, and update `se-marketing-sites-smoke-test-setup` skill plus `example-empty` reference.
|
|
202
|
+
|
|
203
|
+
## 1.4.0
|
|
204
|
+
|
|
205
|
+
### Minor Changes
|
|
206
|
+
|
|
207
|
+
- Bulk version bump: minor for all packages
|
|
208
|
+
|
|
209
|
+
## 1.3.4
|
|
210
|
+
|
|
211
|
+
### Patch Changes
|
|
212
|
+
|
|
213
|
+
- **cms-seo-audit:** Document sitemap+unindexed crawl, all-page `.md` requirement, and expected listing-hub noise.
|
|
214
|
+
|
|
215
|
+
## 1.3.3
|
|
216
|
+
|
|
217
|
+
### Patch Changes
|
|
218
|
+
|
|
219
|
+
- Upstream CMS SEO tooling from pedestal-sites: JSON-LD `@context` fix, new `@se-studio/cms-seo` package, production HTML audit in site-check, and `cms-seo-audit` agent skill.
|
|
220
|
+
|
|
221
|
+
## 1.3.2
|
|
222
|
+
|
|
223
|
+
### Patch Changes
|
|
224
|
+
|
|
225
|
+
- Add `cms-seo-audit` skill documenting the full CMS SEO workflow (audit CSV, apply, bulk publish, production HTML audit). Cross-link from `screaming-frog-audit` and `contentful-cms-schema-org`.
|
|
226
|
+
|
|
227
|
+
## 1.3.1
|
|
228
|
+
|
|
229
|
+
### Patch Changes
|
|
230
|
+
|
|
231
|
+
- Move CMS guidelines prompt pack from `skills/` to `references/` so skills-npm no longer reports `file_error` for `contentful-cms-cms-guidelines`. Update pipeline doc links in CMS guideline skills.
|
|
232
|
+
|
|
233
|
+
## 1.3.0
|
|
234
|
+
|
|
235
|
+
### Minor Changes
|
|
236
|
+
|
|
237
|
+
- Add `screaming-frog-audit` agent skill for Screaming Frog crawl, native compare, and prioritized audit workflows.
|
|
238
|
+
|
|
239
|
+
## 1.2.3
|
|
240
|
+
|
|
241
|
+
### Patch Changes
|
|
242
|
+
|
|
243
|
+
- Bulk version bump: patch for all packages
|
|
244
|
+
|
|
245
|
+
## 1.2.2
|
|
246
|
+
|
|
247
|
+
### Patch Changes
|
|
248
|
+
|
|
249
|
+
- Bulk version bump: patch for all packages
|
|
250
|
+
|
|
251
|
+
## 1.2.1
|
|
252
|
+
|
|
253
|
+
### Patch Changes
|
|
254
|
+
|
|
255
|
+
- Bulk version bump: patch for all packages
|
|
256
|
+
|
|
257
|
+
## 1.2.0
|
|
258
|
+
|
|
259
|
+
### Minor Changes
|
|
260
|
+
|
|
261
|
+
- Add contentful-cms-regenerate-editor-pack skill for hosted MCP editor-pack workflow.
|
|
262
|
+
|
|
263
|
+
## 1.1.3
|
|
264
|
+
|
|
265
|
+
### Patch Changes
|
|
266
|
+
|
|
267
|
+
- Bulk version bump: patch for all packages
|
|
268
|
+
|
|
269
|
+
## 1.1.2
|
|
270
|
+
|
|
271
|
+
### Patch Changes
|
|
272
|
+
|
|
273
|
+
- Exclude redirect sources from sitemaps + robust protection against self and circular redirects.
|
|
274
|
+
|
|
275
|
+
- `buildRedirectMap` now normalizes internal paths (leading + trailing `/` to match urlCalculators + sitemap conventions) and reliably drops self-redirects (A → A). It also detects longer redirect cycles (A → B → A, etc.), drops the participating `from` rules from the baked map, and emits a `console.warn` during construction (visible in build/generate scripts).
|
|
276
|
+
- New exported utility: `filterSitemapEntriesExcludingRedirects(entries, redirectMap)`. Works on any `{ url: string }[]` (SitemapEntry, ISitemapEntry, etc.).
|
|
277
|
+
- The standard marketing site sitemap helper now accepts an optional `redirectMap` in `getSitemapEntries({ includeUnindexed, redirectMap })`. When provided, any URL that is the source of an active redirect is excluded from the generated sitemap entries. This is the recommended way to keep sitemaps clean when using editor-managed redirects.
|
|
278
|
+
- Widened the public `getSitemapEntries` option type in app helpers (additive; existing callers unaffected).
|
|
279
|
+
- Updated example app sitemaps (main + unindexed) to demonstrate fetching the map and passing it.
|
|
280
|
+
- Skill docs (`se-marketing-sites-redirects`) now include a "Redirects and sitemaps" section with usage patterns + notes on the improved cycle/self protection. Also updated routing docs.
|
|
281
|
+
- `buildRedirectMap` / `RedirectMap` / `getRedirectMap` behaviour for the middleware baked map is now safer (no self-loops or cycles will be baked).
|
|
282
|
+
|
|
283
|
+
Consumers using the `marketingSiteSitemap` helper + `getRedirectMap` at build time can now easily exclude redirect sources from both their static redirect map (for middleware) and their sitemaps in one consistent way.
|
|
284
|
+
|
|
285
|
+
See the redirect skill for the full recommended build-time pattern and the new filter helper.
|
|
286
|
+
|
|
287
|
+
## 1.1.1
|
|
288
|
+
|
|
289
|
+
### Patch Changes
|
|
290
|
+
|
|
291
|
+
- Simplify Redirect content model + add tagType as a first-class internal link target.
|
|
292
|
+
|
|
293
|
+
The original redirect content type (added in the previous minor) used a verbose Contentful model with separate `fromPage`/`fromArticle`/etc. reference fields (and same for "to"). This has been replaced with the clean model:
|
|
294
|
+
|
|
295
|
+
- `fromPath` (raw/custom) + `fromInternal` (single Link→Entry)
|
|
296
|
+
- `toPath` (raw/external) + `toInternal` (single Link→Entry)
|
|
297
|
+
|
|
298
|
+
Both internal fields are restricted via `linkContentType` validation to: page, article, articleType, person, tag, customType, tagType.
|
|
299
|
+
|
|
300
|
+
Updated:
|
|
301
|
+
|
|
302
|
+
- Migration `scripts/migrations/18-create-redirect-content-type.js` (now a clean create for the good model; delete any previous "Redirect" CT first if you ran the old multi-field version).
|
|
303
|
+
- `BaseRedirectSkeleton`, `baseRedirectConverter`, and `IRedirect` (provenance is now `fromInternal`/`toInternal` as `IInternalLink`).
|
|
304
|
+
- `UrlCalculators` now requires a `tagType(slug)` function (to support selecting tag type indexes as redirect targets).
|
|
305
|
+
- Added `baseTagTypeLinkConverter`, registered the resolver, extended `BaseLink` / `InternalType` / exported `ITagTypeLink` + guard.
|
|
306
|
+
|
|
307
|
+
Docs and the `se-marketing-sites-redirects` skill have been updated with the new CT shape, help text guidance, and testing steps.
|
|
308
|
+
|
|
309
|
+
Consumers will need to implement `tagType` in their urlCalculators (and pass it through `createBaseConverterContext`) to select Tag Type entries in redirects and to satisfy the updated type.
|
|
310
|
+
|
|
311
|
+
The runtime redirect map, middleware, and `buildRedirectMap` behaviour are unchanged.
|
|
312
|
+
|
|
313
|
+
## 1.1.0
|
|
314
|
+
|
|
315
|
+
### Minor Changes
|
|
316
|
+
|
|
317
|
+
- 31b2200: Add first-class support for managing redirects from Contentful.
|
|
318
|
+
|
|
319
|
+
Editors can now create `redirect` entries (via new content type) using reference pickers for existing Pages/Articles/etc. (for "from" and "to") or raw paths/URLs, plus a status code dropdown (301/302/etc.), active flag, and notes. This makes redirects easy for non-technical users without requiring them to know or type exact slugs.
|
|
320
|
+
|
|
321
|
+
Redirects use the simple rebuild pattern (already proven by A/B tests):
|
|
322
|
+
|
|
323
|
+
- Publish in Contentful → webhook triggers a Vercel Deploy Hook.
|
|
324
|
+
- Build fetches current published redirects (via `getRedirectsWithErrors` / `getRedirectMap` on the helpers from `createAppHelpers`) and bakes a static map (using the new pure `buildRedirectMap`).
|
|
325
|
+
- Middleware performs exact (or lightly normalized) lookups against the baked data with zero runtime cost or external calls.
|
|
326
|
+
|
|
327
|
+
Key additions:
|
|
328
|
+
|
|
329
|
+
- `IRedirect` type + `isRedirect` guard.
|
|
330
|
+
- `BaseRedirectSkeleton`, `baseRedirectConverter` (resolves reference links to concrete `fromPath`/`to` using existing `resolveLink` + project `urlCalculators`).
|
|
331
|
+
- `contentfulRedirectsRest`, revalidation `RedirectTag`, and `buildRedirectMap` / `RedirectMap` types (exported from `@se-studio/contentful-rest-api`).
|
|
332
|
+
- `getRedirectsWithErrors` and `getRedirectMap` (convenience) exposed additively via `createAppHelpers` (like banners).
|
|
333
|
+
- Two Contentful migration scripts: `18-create-redirect-content-type.js` (full CT with rich help text for the picker UX) and `19-remove-redirectTo-fields.js` (cleans up legacy per-page `redirectTo` fields on page/pageVariant).
|
|
334
|
+
- New `@se-studio/skills` entry `se-marketing-sites-redirects` (the canonical guide, including CT spec, migration instructions, generate script example, static middleware example + A/B composition, deploy hook webhook setup, testing, and preview notes).
|
|
335
|
+
- Minimal demo in `example-empty` (middleware + `/api/redirects` route exercising the new helpers at runtime for easy local verification; production apps follow the baked recipe in the skill).
|
|
336
|
+
- Light updates to CLAUDE.md, vercel-setup skill, CONTENT_MODEL.md, and related docs.
|
|
337
|
+
|
|
338
|
+
The model and helpers are forward-compatible if a faster (e.g. Edge Config) path is added later. Legacy `redirectTo` fields are left untouched for now (removal is optional via the migration).
|
|
339
|
+
|
|
340
|
+
This is a new feature (minor bumps).
|
|
341
|
+
|
|
342
|
+
### Patch Changes
|
|
343
|
+
|
|
344
|
+
- Complete support and documentation for filtered full article lists (#51) + fix client boundary regression (#52).
|
|
345
|
+
|
|
346
|
+
- Re-export `filterRelatedArticles` and `RelatedArticlesOptions` **only** from `@se-studio/core-ui/server` (removed from the main barrel). This keeps the primary `@se-studio/core-ui` entry fully client-safe for common imports (`cn`, `TrackedLink`, `AnalyticsProvider`, `Visual`, etc.). The main barrel no longer transitively pulls `'server-only'`.
|
|
347
|
+
|
|
348
|
+
- `getAllArticleLinks(options)` now fully supports the article listing filter fields (`articleTypeSlugs`/`Ids`, `tagSlugs`/`Ids`, `tagType*`, `authorSlugs`/`Ids` + `strictAuthorMatch`, `before`/`after`, `excludeArticleIds`, `count`, `allowUnindexed`) for News Grids, Publications Lists, person-scoped lists, tag filters, etc. The wrapper delegates to the enhanced `filterRelatedArticles` (OR semantics, slug support, strict author mode, distinct tag scoring, etc.).
|
|
349
|
+
|
|
350
|
+
- Added / expanded docs and examples in core-ui and contentful-rest-api READMEs + llms.md, CMS_INFRASTRUCTURE.md, SERVER_CLIENT_BOUNDARIES.md, the `se-marketing-sites-lib-cms-structure` skill (showing the `getAllArticleLinks({ articleTypeSlugs, strictAuthorMatch, ... })` pattern), and this repo's GitHub issues status tracker (new #51 entry + updated upgrade table).
|
|
351
|
+
|
|
352
|
+
- No changes to runtime behavior for existing bare `getAll*Links()` or `getRelated*` callers (sitemaps, search indexing, llms routes, etc. unaffected). Consumers should import filter symbols from the `/server` subpath when using them directly.
|
|
353
|
+
|
|
354
|
+
This finishes the implementation + docs for the DX improvement requested in #51 (reusable core filtering for full article collections instead of per-site `.filter()` shims). The boundary fix prevents the server-only error that appeared in any app importing from core-ui after the initial #51 changes.
|
|
355
|
+
|
|
356
|
+
## 1.0.42
|
|
357
|
+
|
|
358
|
+
### Patch Changes
|
|
359
|
+
|
|
360
|
+
- Resolve person **`bio`** rich text on **`IPersonLink`** so team cards, related-people collections, and search/markdown pipelines can use CMS bios without fetching full person pages.
|
|
361
|
+
|
|
362
|
+
**@se-studio/core-data-types** — Add **`IResolvedRichText`** (`{ json, customStyles? }`) as the shared resolved RTF shape. **`IPersonLink.bio`** and **`ILinkProps.longText`** use it. **`contentfulAllPersonLinks`** consumers get typed **`IPersonLink[]`**.
|
|
363
|
+
|
|
364
|
+
**@se-studio/contentful-rest-api** — Include `fields.bio` in **`PERSON_LINK_FIELDS`**. **`basePersonLinkConverter`** returns **`IPersonLink`** with resolved bio. **`contentfulAllPersonLinks`** return type is **`CmsResponse<IPersonLink[]>`**.
|
|
365
|
+
|
|
366
|
+
**@se-studio/markdown-renderer** — **`MarkdownConverter`** exports person-link **`bio`** to Markdown (search/index pipelines). Uses **`isPersonLink`** type guard.
|
|
367
|
+
|
|
368
|
+
**@se-studio/core-ui** — **`FetchHelpers.getAllPersonLinks`** for collection use via **`rendererConfig.fetchHelpers`** (no cms-server import). **`getAllPersonLinks`** and sitemap deps typed as **`IPersonLink[]`**.
|
|
369
|
+
|
|
370
|
+
**@se-studio/contentful-cms** / **@se-studio/skills** — Document Person **`bio`** RTF authoring in cms-edit skills and functional spec.
|
|
371
|
+
|
|
372
|
+
## 1.0.41
|
|
373
|
+
|
|
374
|
+
### Patch Changes
|
|
375
|
+
|
|
376
|
+
- Bulk version bump: patch for all packages
|
|
377
|
+
|
|
378
|
+
## 1.0.40
|
|
379
|
+
|
|
380
|
+
### Patch Changes
|
|
381
|
+
|
|
382
|
+
- Add ordered `article.authors` CMS field support (first author = primary) with shared helpers in `@se-studio/core-data-types`: `getArticleAuthors`, `getPrimaryArticleAuthor`, `formatArticleAuthorNames`, and `normalizeResolvedArticleAuthors`. Legacy single `author` remains populated as `authors[0]` during migration.
|
|
383
|
+
|
|
384
|
+
**@se-studio/contentful-rest-api** — Resolve and normalize `authors` on full articles and article links; include `fields.authors` in link-only fetches. Related-articles scoring matches any listed co-author.
|
|
385
|
+
|
|
386
|
+
**@se-studio/core-ui** — Structured data context exposes multi-author JSON-LD (`article.authors`); related-articles fallback uses all article authors. Omits authors without a display name.
|
|
387
|
+
|
|
388
|
+
**@se-studio/search** / **@se-studio/markdown-renderer** — Index and export comma-separated multi-author bylines via `formatArticleAuthorNames`.
|
|
389
|
+
|
|
390
|
+
**@se-studio/contentful-cms** — Fetch and audit entry trees traverse `authors` links; shared `linkedEntryFields` module deduplicates traversal logic.
|
|
391
|
+
|
|
392
|
+
**@se-studio/skills** — Add `contentful-cms-sync-schema` skill; document multi-author Schema.org variables.
|
|
393
|
+
|
|
394
|
+
Run migration `scripts/migrations/17-add-article-authors.js` on live spaces after deploying packages.
|
|
395
|
+
|
|
396
|
+
## 1.0.39
|
|
397
|
+
|
|
398
|
+
### Patch Changes
|
|
399
|
+
|
|
400
|
+
- Bulk version bump: patch for all packages
|
|
401
|
+
|
|
402
|
+
## 1.0.38
|
|
403
|
+
|
|
404
|
+
### Patch Changes
|
|
405
|
+
|
|
406
|
+
- Extend the local content index with a reference catalog, automatic sync, and bundled skills for cms-edit.
|
|
407
|
+
|
|
408
|
+
- **Content index (schema v2)** — index `template`, `articleType`, `tagType`, and `tag` in SQLite alongside assets and media
|
|
409
|
+
- **Automatic index sync** — index-backed commands call `ensureContentIndex`; full rebuild when missing or schema-outdated, incremental upsert when stale (>24h). Manual `index sync` always full rebuilds
|
|
410
|
+
- **`list --type template|articleType|tagType|tag`** — index-preferred listing with `--force-cma` escape hatch; template `--slug` filters by cmsLabel
|
|
411
|
+
- **`resolve --type template --label`** — resolve templates by cmsLabel; reference types use index with CMA fallback
|
|
412
|
+
- **`index dump --reference-only` / `--reference-type`** — browse the reference catalog
|
|
413
|
+
- **Duplicate detection** — ambiguous slug/label matches throw `ReferenceCatalogAmbiguityError`
|
|
414
|
+
- **File lock** — single writer per index database during sync
|
|
415
|
+
- **`requireMediaIndex` removed** — replaced by async `ensureContentIndex`
|
|
416
|
+
- **Bundled skills** — `sync:skills` copies cms-edit skills from `@se-studio/skills`; setup wizard can install into `.agents/skills`
|
|
417
|
+
|
|
418
|
+
## 1.0.37
|
|
419
|
+
|
|
420
|
+
### Patch Changes
|
|
421
|
+
|
|
422
|
+
- Bulk version bump: patch for all packages
|
|
423
|
+
|
|
424
|
+
## 1.0.36
|
|
425
|
+
|
|
426
|
+
### Patch Changes
|
|
427
|
+
|
|
428
|
+
- Version bump: patch for changed packages
|
|
429
|
+
- 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`).
|
|
430
|
+
|
|
431
|
+
## 1.0.35
|
|
432
|
+
|
|
433
|
+
### Patch Changes
|
|
434
|
+
|
|
435
|
+
- Version bump: patch for changed packages
|
|
436
|
+
|
|
437
|
+
## 1.0.34
|
|
438
|
+
|
|
439
|
+
### Patch Changes
|
|
440
|
+
|
|
441
|
+
- Version bump: patch for changed packages
|
|
442
|
+
|
|
443
|
+
## 1.0.33
|
|
444
|
+
|
|
445
|
+
### Patch Changes
|
|
446
|
+
|
|
447
|
+
- Version bump: patch for changed packages
|
|
448
|
+
|
|
449
|
+
## 1.0.32
|
|
450
|
+
|
|
451
|
+
### Patch Changes
|
|
452
|
+
|
|
453
|
+
- Version bump: patch for changed packages
|
|
454
|
+
|
|
455
|
+
## 1.0.31
|
|
456
|
+
|
|
457
|
+
### Patch Changes
|
|
458
|
+
|
|
459
|
+
- Version bump: patch for changed packages
|
|
460
|
+
|
|
461
|
+
## 1.0.30
|
|
462
|
+
|
|
463
|
+
### Patch Changes
|
|
464
|
+
|
|
465
|
+
- Version bump: patch for changed packages
|
|
466
|
+
|
|
467
|
+
## 1.0.29
|
|
468
|
+
|
|
469
|
+
### Patch Changes
|
|
470
|
+
|
|
471
|
+
- Version bump: patch for changed packages
|
|
472
|
+
|
|
473
|
+
## 1.0.28
|
|
474
|
+
|
|
475
|
+
### Patch Changes
|
|
476
|
+
|
|
477
|
+
- Version bump: patch for changed packages
|
|
478
|
+
|
|
479
|
+
## 1.0.27
|
|
480
|
+
|
|
481
|
+
### Patch Changes
|
|
482
|
+
|
|
483
|
+
- Version bump: patch for changed packages
|
|
484
|
+
|
|
485
|
+
## 1.0.26
|
|
486
|
+
|
|
487
|
+
### Patch Changes
|
|
488
|
+
|
|
489
|
+
- Version bump: patch for changed packages
|
|
490
|
+
|
|
491
|
+
## 1.0.25
|
|
492
|
+
|
|
493
|
+
### Patch Changes
|
|
494
|
+
|
|
495
|
+
- Version bump: patch for changed packages
|
|
496
|
+
|
|
497
|
+
## 1.0.24
|
|
498
|
+
|
|
499
|
+
### Patch Changes
|
|
500
|
+
|
|
501
|
+
- Version bump: patch for changed packages
|
|
502
|
+
|
|
503
|
+
## 1.0.23
|
|
504
|
+
|
|
505
|
+
### Patch Changes
|
|
506
|
+
|
|
507
|
+
- Version bump: patch for changed packages
|
|
508
|
+
|
|
509
|
+
## 1.0.22
|
|
510
|
+
|
|
511
|
+
### Patch Changes
|
|
512
|
+
|
|
513
|
+
- Version bump: patch for changed packages
|
|
514
|
+
|
|
515
|
+
## 1.0.21
|
|
516
|
+
|
|
517
|
+
### Patch Changes
|
|
518
|
+
|
|
519
|
+
- Version bump: patch for changed packages
|
|
520
|
+
|
|
521
|
+
## 1.0.20
|
|
522
|
+
|
|
523
|
+
### Patch Changes
|
|
524
|
+
|
|
525
|
+
- Version bump: patch for changed packages
|
|
526
|
+
|
|
527
|
+
## 1.0.19
|
|
528
|
+
|
|
529
|
+
### Patch Changes
|
|
530
|
+
|
|
531
|
+
- Version bump: patch for changed packages
|
|
532
|
+
|
|
533
|
+
## 1.0.18
|
|
534
|
+
|
|
535
|
+
### Patch Changes
|
|
536
|
+
|
|
537
|
+
- Version bump: patch for changed packages
|
|
538
|
+
|
|
539
|
+
## 1.0.17
|
|
540
|
+
|
|
541
|
+
### Patch Changes
|
|
542
|
+
|
|
543
|
+
- Version bump: patch for changed packages
|
|
544
|
+
|
|
545
|
+
## 1.0.16
|
|
546
|
+
|
|
547
|
+
### Patch Changes
|
|
548
|
+
|
|
549
|
+
- Version bump: patch for changed packages
|
|
550
|
+
|
|
551
|
+
## 1.0.15
|
|
552
|
+
|
|
553
|
+
### Patch Changes
|
|
554
|
+
|
|
555
|
+
- Version bump: patch for changed packages
|
|
556
|
+
|
|
557
|
+
## 1.0.14
|
|
558
|
+
|
|
559
|
+
### Patch Changes
|
|
560
|
+
|
|
561
|
+
- Version bump: patch for changed packages
|
|
562
|
+
|
|
563
|
+
## 1.0.13
|
|
564
|
+
|
|
565
|
+
### Patch Changes
|
|
566
|
+
|
|
567
|
+
- Version bump: patch for changed packages
|
|
568
|
+
|
|
569
|
+
## 1.0.12
|
|
570
|
+
|
|
571
|
+
### Patch Changes
|
|
572
|
+
|
|
573
|
+
- Version bump: patch for changed packages
|
|
574
|
+
|
|
575
|
+
## 1.0.11
|
|
576
|
+
|
|
577
|
+
### Patch Changes
|
|
578
|
+
|
|
579
|
+
- Version bump: patch for changed packages
|
|
580
|
+
|
|
581
|
+
## 1.0.10
|
|
582
|
+
|
|
583
|
+
### Patch Changes
|
|
584
|
+
|
|
585
|
+
- Add site-workflows-contentful-vercel-setup skill
|
|
586
|
+
|
|
587
|
+
## 1.0.9
|
|
588
|
+
|
|
589
|
+
### Patch Changes
|
|
590
|
+
|
|
591
|
+
- Add site-workflows-copy-doc-snapshot skill
|
|
592
|
+
- Add site-workflows-new-project skill
|
|
593
|
+
- Add site-workflows-project-cleanup skill
|
|
594
|
+
|
|
595
|
+
## 1.0.8
|
|
596
|
+
|
|
597
|
+
### Patch Changes
|
|
598
|
+
|
|
599
|
+
- Add site-workflows-apply-design-snapshot skill
|
|
600
|
+
|
|
601
|
+
## 1.0.7
|
|
602
|
+
|
|
603
|
+
### Patch Changes
|
|
604
|
+
|
|
605
|
+
- Add site-workflows-figma-design-snapshot skill
|
|
606
|
+
|
|
607
|
+
## 1.0.6
|
|
608
|
+
|
|
609
|
+
### Patch Changes
|
|
610
|
+
|
|
611
|
+
- Version bump: patch for changed packages
|
|
612
|
+
|
|
613
|
+
## 1.0.5
|
|
614
|
+
|
|
615
|
+
### Patch Changes
|
|
616
|
+
|
|
617
|
+
- Version bump: patch for changed packages
|
|
618
|
+
|
|
619
|
+
## 1.0.4
|
|
620
|
+
|
|
621
|
+
### Patch Changes
|
|
622
|
+
|
|
623
|
+
- Version bump: patch for changed packages
|
|
624
|
+
|
|
625
|
+
## 1.0.3
|
|
626
|
+
|
|
627
|
+
### Patch Changes
|
|
628
|
+
|
|
629
|
+
- Version bump: patch for changed packages
|
|
630
|
+
|
|
631
|
+
## 1.0.2
|
|
632
|
+
|
|
633
|
+
### Patch Changes
|
|
634
|
+
|
|
635
|
+
- Version bump: patch for changed packages
|
|
636
|
+
|
|
637
|
+
## 1.0.1
|
|
638
|
+
|
|
639
|
+
### Patch Changes
|
|
640
|
+
|
|
641
|
+
- Version bump: patch for changed packages
|