@se-studio/skills 1.7.1 → 1.7.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 +12 -0
- package/package.json +1 -1
- package/references/lockfile-sync/README.md +11 -0
- package/skills/contentful-cms-core/SKILL.md +5 -4
- package/skills/se-marketing-sites-smoke-test-setup/SKILL.md +5 -5
- package/skills/site-workflows-agent-session/SKILL.md +8 -0
- package/skills/site-workflows-deps-update/SKILL.md +18 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @se-studio/skills
|
|
2
2
|
|
|
3
|
+
## 1.7.3
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Document `supportedArchitectures` so macOS lockfiles include linux-x64/glibc optional natives for hoisted frozen cms-edit installs.
|
|
8
|
+
|
|
9
|
+
## 1.7.2
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- 2b1e79c: Portless local URLs: require `portless service install` for HTTPS 443; document unique last-segment worktree hosts. Refuse local `cms-edit` content commands (hosted MCP only). Smoke/revalidation use `start:dev` so `PORT` is not swallowed by portless.
|
|
14
|
+
|
|
3
15
|
## 1.7.1
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -30,6 +30,17 @@ See [`validate-workflow-snippet.yml`](validate-workflow-snippet.yml). Customer m
|
|
|
30
30
|
| Marketing app (monorepo root install) | `cd ../.. && pnpm install --frozen-lockfile` |
|
|
31
31
|
| cms-edit host | `cd ../.. && pnpm install --frozen-lockfile --config.node-linker=hoisted` |
|
|
32
32
|
|
|
33
|
+
## Linux optional natives (`supportedArchitectures`)
|
|
34
|
+
|
|
35
|
+
cms-edit Vercel and `check-lockfile-sync.sh` (full) run `pnpm install --frozen-lockfile --config.node-linker=hoisted`. That path requires lockfile snapshots for **linux-x64/glibc** optional binaries even when you generate the lockfile on macOS.
|
|
36
|
+
|
|
37
|
+
Every consumer `pnpm-workspace.yaml` must include `supportedArchitectures` (current + linux, current + x64, current + glibc). Canonical copy: skill `site-workflows-deps-update` Step 3. After adding it, run `pnpm install` (not frozen) so the lockfile gains those snapshots, then verify:
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
pnpm install --frozen-lockfile --config.node-linker=hoisted
|
|
41
|
+
pnpm install # restore isolated linker for local workspace packages
|
|
42
|
+
```
|
|
43
|
+
|
|
33
44
|
## After dependency changes
|
|
34
45
|
|
|
35
46
|
```bash
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: contentful-cms-core
|
|
3
|
-
description: "
|
|
3
|
+
description: "Edit Contentful drafts via hosted cms-edit MCP (open → snapshot → read → set/rtf → diff → save). Local CLI content commands are disabled."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Skill: contentful-cms
|
|
6
|
+
# Skill: contentful-cms (hosted MCP)
|
|
7
7
|
|
|
8
|
-
Use this skill when you need to read or edit content in Contentful
|
|
8
|
+
Use this skill when you need to read or edit content in Contentful using **hosted cms-edit MCP** (`cms_edit` with an `args` array). Command names match the old CLI (`open` → `snapshot` → `read` → `set`/`rtf` → `diff` → `save`).
|
|
9
|
+
|
|
10
|
+
**Do not** run the local `cms-edit` binary for content. It refuses `open`, `save`, `set`, and other content commands. Local CLI is only for `host`, `editor-pack`, `project`, `schema`, and `guide`.
|
|
9
11
|
|
|
10
12
|
**Before editing:** use skill **`contentful-cms-editor-tasks`** to read `tasks-index` and the matching capability playbook for this site (hosted MCP or local `cms-edit/<site>/editor-pack/`).
|
|
11
13
|
|
|
@@ -31,7 +33,6 @@ All `save` operations create **draft** versions. A human must review and publish
|
|
|
31
33
|
|
|
32
34
|
**Assets:** Upload **is** supported (`asset upload`). Default workflow: **search and reuse** existing assets first (`index sync` → `asset search`). When uploading:
|
|
33
35
|
- **Hosted MCP:** always `cms_edit_request_staged_upload` → curl → `asset upload --staged` (never `--base64`)
|
|
34
|
-
- **Local CLI:** `--base64` or `--url` when user approves local CLI
|
|
35
36
|
- Use a **sensible fileName** and **descriptive title** (and alt text where the site uses it)
|
|
36
37
|
- Avoid oversized images — width over **2000px** is usually wasteful for web (exact limits vary by project; check `asset audit` / media review guidance)
|
|
37
38
|
- Prefer `--if-exists-by-filename` to avoid duplicates
|
|
@@ -26,10 +26,10 @@ Preview / `DRAFT_ONLY` Contentful access in local dev is expected and not a smok
|
|
|
26
26
|
| `pnpm smoke-test:run` | Smoke only (server already up) |
|
|
27
27
|
| `pnpm smoke-test:preview` | Smoke against Vercel preview (`runPreviewStaticSmokeTest`; no local server) |
|
|
28
28
|
| `pnpm smoke-test:audit` | Functional smoke + server log cache audit |
|
|
29
|
-
| `pnpm smoke-test:cache` | `build` + `start` + double-pass `x-nextjs-cache` verify |
|
|
30
|
-
| `pnpm smoke-test:deploy-check` | Post-build gate: `start` (no rebuild) + functional smoke — use in Vercel `buildCommand` |
|
|
29
|
+
| `pnpm smoke-test:cache` | `build` + `start:dev` + double-pass `x-nextjs-cache` verify |
|
|
30
|
+
| `pnpm smoke-test:deploy-check` | Post-build gate: `start:dev` (no rebuild) + functional smoke — use in Vercel `buildCommand` |
|
|
31
31
|
| `pnpm smoke-test:live` | Live deployment URL smoke — GitHub Action + Vercel Deployment Checks |
|
|
32
|
-
| `pnpm revalidation-test` | `build` + `start` + revalidation matrix (warm → invalidate → cold → warm); see `revalidation.cases.json` and [CONTENTFUL_WEBHOOK_REVALIDATION.md](../../../../docs/CONTENTFUL_WEBHOOK_REVALIDATION.md) |
|
|
32
|
+
| `pnpm revalidation-test` | `build` + `start:dev` + revalidation matrix (warm → invalidate → cold → warm); see `revalidation.cases.json` and [CONTENTFUL_WEBHOOK_REVALIDATION.md](../../../../docs/CONTENTFUL_WEBHOOK_REVALIDATION.md) |
|
|
33
33
|
|
|
34
34
|
Example `package.json` entries:
|
|
35
35
|
|
|
@@ -38,7 +38,7 @@ Example `package.json` entries:
|
|
|
38
38
|
"smoke-test:run": "tsx scripts/smoke-test-run.ts",
|
|
39
39
|
"smoke-test:preview": "bash -c 'set -a && [ -f .env.local ] && . ./.env.local; set +a && exec tsx scripts/smoke-test-preview.ts'",
|
|
40
40
|
"smoke-test:audit": "SMOKE_TEST_AUDIT_CACHE_LOGS=true smoke-test-one 3012",
|
|
41
|
-
"smoke-test:cache": "SMOKE_TEST_SERVER_SCRIPT=start SMOKE_TEST_VERIFY_CACHE=true smoke-test-one 3012",
|
|
41
|
+
"smoke-test:cache": "SMOKE_TEST_SERVER_SCRIPT=start:dev SMOKE_TEST_VERIFY_CACHE=true smoke-test-one 3012",
|
|
42
42
|
"smoke-test:deploy-check": "smoke-test-deploy-check",
|
|
43
43
|
"smoke-test:live": "smoke-test-live",
|
|
44
44
|
"revalidation-test": "node ../../scripts/revalidation-matrix-test.mjs 3012"
|
|
@@ -182,7 +182,7 @@ vercel env add VERCEL_FORCE_NO_BUILD_CACHE production --value 1 --yes
|
|
|
182
182
|
|
|
183
183
|
### 1. Confirm port
|
|
184
184
|
|
|
185
|
-
Read `package.json` —
|
|
185
|
+
Read `package.json` — smoke still uses a localhost port (`smoke-test-one 3012`). `pnpm dev` is portless (`https://<name>.localhost`) and is **not** the smoke server. Confirm `dev:dev` has no `-p` flag so `PORT` from `smoke-test-one` is honoured.
|
|
186
186
|
|
|
187
187
|
### 2. Fetch sitemap (production first)
|
|
188
188
|
|
|
@@ -166,6 +166,14 @@ cd <worktreesRoot>/<feature-slug>
|
|
|
166
166
|
|
|
167
167
|
**Manifest gate:** set `worktree:` to the worktree path before coding. Do all edits, installs, tests, and commits from that path. Do not leave the primary checkout on a feature branch.
|
|
168
168
|
|
|
169
|
+
### Portless URLs in worktrees
|
|
170
|
+
|
|
171
|
+
`pnpm dev` uses [portless](https://github.com/vercel-labs/portless). Install **`portless service install`** once so `https://<name>.localhost` works on 443.
|
|
172
|
+
|
|
173
|
+
Portless prefixes the hostname with the **last segment of the branch name**. `feature/om1/hero-redesign` → `https://hero-redesign.om1.localhost`. Two parallel features that share that last slug collide (both claim `hero.om1.localhost`). **Make the last path segment unique** (include the ticket id: `feature/om1/mktg-5117-hero`). The app `--name` (`om1`, `example`) does not disambiguate two worktrees of the same last slug.
|
|
174
|
+
|
|
175
|
+
Without the OS service, agents may get `https://<name>.localhost:1355` from an ad-hoc proxy — do not hardcode `:1355` in docs or cms-edit `devBaseUrl`.
|
|
176
|
+
|
|
169
177
|
### Gate — refuse primary-checkout feature work
|
|
170
178
|
|
|
171
179
|
If you are about to implement a feature and `worktree` is null without `worktree_opt_out: true`:
|
|
@@ -105,6 +105,24 @@ overrides:
|
|
|
105
105
|
'@types/node': ^24.13.2
|
|
106
106
|
```
|
|
107
107
|
|
|
108
|
+
Every repo that runs **hoisted frozen install** (cms-edit host on Vercel, `check-lockfile-sync.sh` hoisted job) **must** also record Linux optional natives in the lockfile. Generate the lockfile on macOS with:
|
|
109
|
+
|
|
110
|
+
```yaml
|
|
111
|
+
# Record linux-x64/glibc optional natives (cms-edit Vercel + hoisted frozen install).
|
|
112
|
+
supportedArchitectures:
|
|
113
|
+
os:
|
|
114
|
+
- current
|
|
115
|
+
- linux
|
|
116
|
+
cpu:
|
|
117
|
+
- current
|
|
118
|
+
- x64
|
|
119
|
+
libc:
|
|
120
|
+
- current
|
|
121
|
+
- glibc
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Without this, isolated `pnpm install` on darwin can omit snapshots such as `@rollup/rollup-linux-x64-gnu`. Hoisted `--frozen-lockfile` then fails even though default-linker install succeeded. Vitest/Rollup sites (Brightline) hit this first; Sharp and other optional natives fail the same way on Vercel linux.
|
|
125
|
+
|
|
108
126
|
- **`minimumReleaseAge: 1440`** — do not install packages published in the last 24 hours (supply-chain guard).
|
|
109
127
|
- **`@se-studio/*` exclude** — our own packages may update immediately after npm publish.
|
|
110
128
|
- **Keep repo-specific additional excludes** when present (e.g. vitest pins in se-core-product, `@emnapi/runtime` in se-website-2026, PointMe `mapbox-gl` / `react-day-picker` overrides).
|