@se-studio/skills 1.5.1 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @se-studio/skills
2
2
 
3
+ ## 1.5.3
4
+
5
+ ### Patch Changes
6
+
7
+ - Add `task-media-review` editor playbook with production URL support, registry entry, and updated media-review skills for multi-customer Claude workflows.
8
+
9
+ ## 1.5.2
10
+
11
+ ### Patch Changes
12
+
13
+ - 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.
14
+
3
15
  ## 1.5.1
4
16
 
5
17
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/skills",
3
- "version": "1.5.1",
3
+ "version": "1.5.3",
4
4
  "description": "SE Studio agent skills for marketing site development with Contentful CMS",
5
5
  "repository": {
6
6
  "type": "git",
@@ -64,6 +64,8 @@ Capability playbooks require:
64
64
 
65
65
  **Search and reuse assets first** (`index sync` → `asset search`). Upload only when no match; use `--if-exists-by-filename` when uploading.
66
66
 
67
+ **Space-wide media audit** (filename, alt, size, dimensions, usage) → read **`task-media-review`**, then skill **`contentful-cms-media-review`** for the spreadsheet.
68
+
67
69
  ## When the pack is stale
68
70
 
69
71
  Run `contentful-cms-regenerate-editor-pack` after:
@@ -80,4 +82,5 @@ Then `cms-edit project doctor --project-config cms-edit/<site>/project.json`.
80
82
  |-------|------|
81
83
  | `contentful-cms-core` | CLI command reference |
82
84
  | `contentful-cms-setup` | First-time hosted MCP connect |
83
- | `contentful-cms-regenerate-editor-pack` | Refresh editor-pack in git |
85
+ | `contentful-cms-regenerate-editor-pack` | Refresh editor-pack in git |
86
+ | `contentful-cms-media-review` | Space-wide asset audit + Excel report |
@@ -1,170 +1,96 @@
1
1
  ---
2
2
  name: contentful-cms-media-review
3
- description: "Audit CMS images, videos, and Lottie animations for filename, alt text, dimensions, size, and GIF issues using cms-edit, then produce an Excel report of failures."
3
+ description: "Audit CMS images, videos, and Lottie animations using the task-media-review editor playbook and cms-edit asset review, then produce an Excel report."
4
4
  ---
5
5
 
6
6
  # Skill: contentful-cms — Media Review
7
7
 
8
- Use this skill to audit **visual assets** in a Contentful space and produce a spreadsheet of assets that fail quality checks.
8
+ Use this skill for a **space-wide visual asset audit** and spreadsheet deliverable.
9
9
 
10
- ## When to use
10
+ ## Start here (every site)
11
11
 
12
- - Cleaning up CMS media before or after a migration
13
- - Finding oversized images, missing alt text, or animated GIFs
14
- - Brightline, SE Studio, or any site with `cms-edit` configured
12
+ 1. **`contentful-cms-editor-tasks`** — route to the site playbook
13
+ 2. Read **`task-media-review`** before running commands:
14
+ - **Hosted MCP:** `cms_edit ["customer", "task-media-review"]`
15
+ - **Local:** `cms-edit/<site>/editor-pack/task-media-review.md`
16
+ 3. Read **`overview`** for `productionSiteUrl` (prod link columns)
15
17
 
16
- ## Prerequisites
17
-
18
- - `cms-edit` configured for the target space (`cms-edit health`)
19
- - `CONTENTFUL_PREVIEW_ACCESS_TOKEN` set (default index uses Preview API / drafts)
20
- - Run `cms-edit index sync` before the review if the index is stale
21
-
22
- ## Workflow
23
-
24
- ### Step 1 — Sync the index
25
-
26
- ```bash
27
- cms-edit index sync --space <space-key>
28
- ```
18
+ The playbook defines phases, hosted vs local limits, and confirmation gates. This skill covers **spreadsheet schema** and **optional image guide**.
29
19
 
30
- Use `--published` only when you want published/delivery content only.
31
-
32
- ### Step 2 — Run the review
20
+ ## Prerequisites
33
21
 
34
- ```bash
35
- cms-edit --json asset review --space <space-key> > /tmp/media-review.json
36
- ```
22
+ - `cms-edit health` (or hosted connector healthy)
23
+ - `CONTENTFUL_PREVIEW_ACCESS_TOKEN` (default Preview index)
24
+ - `CMS_EDIT_TOKEN` when using `--include-usage`
25
+ - `cms-edit index sync` if index is stale
37
26
 
38
- Optional flags:
27
+ ## Quick command reference
39
28
 
40
- | Flag | Purpose |
29
+ | Goal | Command |
41
30
  |------|---------|
42
- | `--include-passing` | Include assets with no failures |
43
- | `--max-width 2000` | Max raster/video width (default 2000) |
44
- | `--max-image-kb 800` | Max image file size |
45
- | `--max-video-mb 8` | Max video file size |
46
- | `--max-lottie-kb 400` | Max Lottie JSON size |
47
- | `--published` | Use Delivery API index |
31
+ | Failures JSON | `cms-edit --json asset review` |
32
+ | Full + usage (local) | `cms-edit --json asset review --include-passing --include-usage --usage-limit 0` |
33
+ | Usage sample (hosted) | `cms-edit --json asset review --include-usage --usage-limit 50` |
48
34
 
49
- Exit code **1** when any asset has failing issues (useful for CI).
35
+ Hosted MCP: **no `--space`**. Do not use `--usage-limit 0` with `--include-passing` on hosted MCP.
50
36
 
51
- ### Step 3 — Build the Excel report
37
+ ## Excel workbook (failures)
52
38
 
53
- Create a workbook with **failures only** (default JSON output). Use the **xlsx** skill.
39
+ Use the **xlsx** skill. Default path: `docs/media-review-<projectKey>-<date>.xlsx`.
54
40
 
55
41
  **Sheet: Issues** — one row per failing asset
56
42
 
57
- | Column | Source field |
58
- |--------|----------------|
43
+ | Column | Source |
44
+ |--------|--------|
59
45
  | Asset ID | `assets[].id` |
60
46
  | Contentful URL | `assets[].contentfulUrl` |
61
47
  | CDN URL | `assets[].url` |
62
- | Title | `assets[].title` |
63
- | Filename | `assets[].fileName` |
64
- | Alt text | `assets[].description` |
65
- | Content type | `assets[].contentType` |
66
- | Width | `assets[].width` |
67
- | Height | `assets[].height` |
68
- | Size (KB) | `assets[].sizeKb` |
69
- | Media wrappers | `assets[].mediaEntryCount` |
70
- | Issue codes | `assets[].issues[].code` (comma-separated fails) |
71
- | Issue details | `assets[].issues[].message` (semicolon-separated) |
72
- | Updated | `assets[].updatedAt` |
73
-
74
- **Sheet: Summary**
75
-
76
- - `space`, `spaceId`, `environment`, `generated`, `preview`
77
- - `total`, `failingCount`, `warningCount`
78
- - `issueCounts` breakdown
79
- - Thresholds from `thresholds` object
80
-
81
- Default output path: `docs/media-review-<space>-<date>.xlsx` in the app directory.
82
-
83
- ### Step 4 — Present findings
84
-
85
- Summarize for the user:
86
-
87
- - Total assets scanned vs failures
88
- - Top issue types (from `issueCounts`)
89
- - Quick wins (missing alt, animated GIFs, obvious stock filenames)
90
- - Note: `no_media_wrapper` is a **warning** — asset may still be used via rich text or be genuinely unused
91
-
92
- ## What is checked
93
-
94
- | Check | Issue code | Severity |
95
- |-------|------------|----------|
96
- | Descriptive filename | `bad_filename` | fail |
97
- | Alt text present | `missing_alt` | fail |
98
- | Alt text quality | `weak_alt` | fail |
99
- | Width ≤ max (not SVG/Lottie) | `oversized_width` | fail |
100
- | File size limits | `oversized_file` | fail / warn |
101
- | Animated GIF | `animated_gif` | fail |
102
- | No media wrapper in index | `no_media_wrapper` | warn |
103
-
104
- ## Brightline example
48
+ | Title / Filename / Alt | `title`, `fileName`, `description` |
49
+ | Content type | `contentType` |
50
+ | Width / Height / Size (KB) | `width`, `height`, `sizeKb` |
51
+ | Media wrappers | `mediaEntryCount` |
52
+ | CMS usages | `usages[].slug` + `label` (when `--include-usage`) |
53
+ | Prod URLs | `{productionSiteUrl}{slug}` from overview/capabilities |
54
+ | Issue codes | fail-severity `issues[].code` |
55
+ | Issue details | `issues[].message` |
56
+ | Likely unused | empty `usages` + `no_media_wrapper` warn |
57
+ | Updated | `updatedAt` |
105
58
 
106
- ```bash
107
- cd apps/brightline-website
108
- cms-edit index sync --space brightline
109
- cms-edit --json asset review --space brightline > /tmp/brightline-media-review.json
110
- ```
59
+ **Sheet: Summary** — `total`, `failingCount`, `issueCounts`, `thresholds`, `usageTruncated` if applicable
111
60
 
112
- Space key: `brightline` (space ID `96gdpqkm7elu`).
61
+ ## Issue codes
113
62
 
114
- ## Phase 2 (not yet in cms-edit)
63
+ | Code | Severity |
64
+ |------|----------|
65
+ | `bad_filename` | fail |
66
+ | `missing_alt` / `weak_alt` | fail |
67
+ | `oversized_width` | fail |
68
+ | `oversized_file` | fail / warn |
69
+ | `animated_gif` | fail |
70
+ | `no_media_wrapper` | warn |
115
71
 
116
- Production page URLs and definitive unused-asset detection need CMA `links_to_asset` or a production crawl. When available, add columns `prodUrls` and `cmsUsages` to the spreadsheet.
72
+ ## After the spreadsheet
117
73
 
118
- ## Image guide (optional)
74
+ Summarize: totals, top `issueCounts`, quick wins (alt, GIFs, stock filenames).
119
75
 
120
- Use this extension when the client wants a **reference guide** for all CMS images (Markdown + HTML), not just a quality spreadsheet.
76
+ **Fixes (user-approved only):** `cms-edit asset set-description <id> "…"` — drafts only, no publish.
121
77
 
122
- ### Gather structural data
78
+ For per-page alt work: **`contentful-cms-alt-text-audit`**.
123
79
 
124
- ```bash
125
- cms-edit index sync --space <space-key>
126
- cms-edit --json asset review --include-usage --include-passing --space <space-key> > /tmp/image-inventory.json
127
- ```
128
-
129
- Each asset in JSON includes `usages[]`: slug-bearing ancestors (page, article, tag, person, etc.) that ultimately use the asset.
130
-
131
- To inspect how images relate to a specific page, use `cms-edit open --page-slug /<slug>` + `snapshot`, or `cms-edit peek --page-slug /<slug>` without affecting your session.
132
-
133
- ### Description cache
134
-
135
- Store AI-generated visual descriptions per asset (avoids re-inspecting on reruns):
80
+ ## Image guide (optional extension)
136
81
 
137
- ```
138
- docs/descriptions/{assetId}.json
139
- ```
82
+ When the client wants a **reference guide** (not just remediation):
140
83
 
141
- Per-image format:
142
-
143
- ```json
144
- {
145
- "subjects": "...",
146
- "setting": "...",
147
- "composition": "...",
148
- "colours": "...",
149
- "mood": "...",
150
- "style": "...",
151
- "constraints": "...",
152
- "whenToUse": "...",
153
- "inspectedAt": "2026-04-15T10:00:00Z"
154
- }
84
+ ```bash
85
+ cms-edit --json asset review --include-passing --include-usage --usage-limit 0 > docs/image-inventory.json
155
86
  ```
156
87
 
157
- **Write-through caching:** After inspecting each new image, write `docs/descriptions/{assetId}.json` before moving to the next. Skip vision calls when the cache file exists.
158
-
159
- ### Output files
160
-
161
- - `docs/image-guide.md` — AI-consumable Markdown (chunk writes: ~35 images per append)
162
- - `docs/image-guide.html` — self-contained human reference (chunk writes: ~15–20 cards per append)
163
-
164
- Use CDN URLs with `?w=800&q=85` for previews. Group entries by page using `usages[]` from the review JSON.
88
+ - Cache AI descriptions: `docs/descriptions/{assetId}.json` (write-through per image)
89
+ - Outputs: `docs/image-guide.md`, `docs/image-guide.html`
90
+ - CDN previews: `?w=800&q=85`
165
91
 
166
92
  ## Related
167
93
 
168
- - `contentful-cms-alt-text-audit` — per-page alt text fixes
169
- - `cms-edit asset audit` — missing alt only (narrower, faster)
170
- - `cms-edit asset set-description <id> "alt"` — fix alt text on an asset
94
+ - `cms-edit help asset-review` — CLI flags
95
+ - `task-media-reuse-and-upload` — upload/search workflow
96
+ - `cms-edit asset audit` — missing alt only (narrower)
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: contentful-cms-regenerate-editor-pack
3
- description: "Regenerate cms-edit editor-pack for hosted MCP after registrations, guidelines, routing, or cms-editor docs change; validate, commit, and deploy."
3
+ description: "Regenerate cms-edit editor-pack for hosted MCP after registrations, guidelines, routing, or cms-editor docs change; validate, commit, and push (never manual vercel deploy)."
4
4
  ---
5
5
 
6
6
  # Regenerate cms-edit editor pack
@@ -83,28 +83,23 @@ git add cms-edit/editor-pack # or cms-edit/<site>/editor-pack
83
83
  git commit -m "chore(cms-edit): regenerate editor pack"
84
84
  ```
85
85
 
86
- ## Step 6 — Deploy
86
+ ## Step 6 — Publish (commit + push only)
87
87
 
88
- ### Customer repo with `cms-edit/host/` (SE Studio, Pedestal, Headwater)
88
+ **Absolute rule for agents:** hosted MCP is **never** published via `vercel deploy`, `pnpm cms-edit:deploy*`, or `deploy-cms-edit-host.sh`. Commit and push is the only deploy path for customer repos with `cms-edit/host/`.
89
89
 
90
- Commit `editor-pack/`, then push to the branch Vercel watches (usually `develop`). Changes under `cms-edit/**` trigger a host rebuild (`stage-site.mjs` copies committed artifacts).
90
+ ### Customer repo with `cms-edit/host/` (SE Studio, Pedestal, Headwater, Brightline, …)
91
+
92
+ Commit `editor-pack/` (and any other `cms-edit/**` changes), then push to the branch Vercel watches (usually `develop`). Changes under `cms-edit/**` trigger a host rebuild (`stage-site.mjs` copies committed artifacts on the Vercel build).
91
93
 
92
94
  ```bash
93
- git push
95
+ git push origin develop # or the site's configured deploy branch
94
96
  ```
95
97
 
96
- Manual deploy without pushing: `pnpm cms-edit:deploy` (single-site) or `pnpm cms-edit:deploy:<site>` (multi-site) — runs validate, stage, then `vercel deploy --prod` **from the repo root** with `--project <vercel-project>`. Do not `cd cms-edit/host` first (Vercel Root Directory is already `cms-edit/host`).
98
+ Do **not** run `pnpm cms-edit:deploy` or `vercel deploy` after this step.
97
99
 
98
100
  ### Customers without `cms-edit/host/` in their repo
99
101
 
100
- From `se-core-product`:
101
-
102
- ```bash
103
- ./scripts/deploy-cms-edit-host.sh \
104
- --config <customer-repo>/cms-edit/<site>/project.json \
105
- --editor-pack <customer-repo>/cms-edit/<site>/editor-pack \
106
- --prod
107
- ```
102
+ Rare layout — coordinate with the repo owner. Agents still must not run deploy scripts unless explicitly asked.
108
103
 
109
104
  ## Homepage slug reminder
110
105