@se-studio/skills 1.5.8 → 1.5.10
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 +7 -0
- package/package.json +1 -1
- package/references/agent-session/projects.registry.json +1 -7
- package/references/contentful-cms-cms-guidelines/README.md +1 -1
- package/references/contentful-cms-cms-guidelines/variant-loop.md +2 -2
- package/references/lockfile-sync/README.md +54 -0
- package/references/lockfile-sync/validate-workflow-snippet.yml +32 -0
- package/skills/contentful-cms-generate-cms-guidelines/SKILL.md +1 -1
- package/skills/performance-audit/SKILL.md +1 -1
- package/skills/se-marketing-sites-cms-routes-and-appshared/SKILL.md +1 -1
- package/skills/se-marketing-sites-create-page/SKILL.md +1 -1
- package/skills/se-marketing-sites-lib-cms-structure/SKILL.md +1 -1
- package/skills/se-marketing-sites-smoke-test-setup/SKILL.md +2 -0
- package/skills/site-workflows-deps-update/SKILL.md +13 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,12 @@
|
|
|
1
1
|
# @se-studio/skills
|
|
2
2
|
|
|
3
|
+
## 1.5.10
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Document lockfile sync enforcement (scripts, CI snippet, deps-update and smoke-test skill updates).
|
|
8
|
+
- 2359f69: Add `site-workflows-stale-files-cleanup` skill and `references/stale-files-cleanup/` for repository hygiene audits on SE Studio marketing sites.
|
|
9
|
+
|
|
3
10
|
## 1.5.8
|
|
4
11
|
|
|
5
12
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -13,13 +13,7 @@
|
|
|
13
13
|
"branch": "dev",
|
|
14
14
|
"type": "core",
|
|
15
15
|
"validate": "pnpm validate",
|
|
16
|
-
"exampleApps": [
|
|
17
|
-
"example-om1",
|
|
18
|
-
"example-se2026",
|
|
19
|
-
"example-brightline",
|
|
20
|
-
"example-brightlifekids",
|
|
21
|
-
"example-empty"
|
|
22
|
-
]
|
|
16
|
+
"exampleApps": ["example-empty", "cms-edit-host"]
|
|
23
17
|
},
|
|
24
18
|
{
|
|
25
19
|
"key": "se2026",
|
|
@@ -51,7 +51,7 @@ or manually follow the steps below.
|
|
|
51
51
|
## Cursor agent task
|
|
52
52
|
|
|
53
53
|
**Assign this task to a Cursor subagent.** Provide:
|
|
54
|
-
-
|
|
54
|
+
- `<app-dir>/src/project/components/<TypeName>.tsx` (e.g. `apps/example-empty` or a customer app path)
|
|
55
55
|
- `generated/cms-discovery/field-list.json` (field metadata including enum values)
|
|
56
56
|
- `generated/cms-discovery/theme-context.md` (palette + typography — authoritative colour names)
|
|
57
57
|
- `scripts/guidelines/variant-proposal-prompt.md` (variant proposal instructions)
|
|
@@ -121,7 +121,7 @@ Example for Hero:
|
|
|
121
121
|
### 2 — Capture screenshots
|
|
122
122
|
|
|
123
123
|
```bash
|
|
124
|
-
# From apps/example-
|
|
124
|
+
# From the target app directory (e.g. apps/example-empty)
|
|
125
125
|
node scripts/guidelines/capture-screenshots.mjs --variants /tmp/hero-variants.json
|
|
126
126
|
```
|
|
127
127
|
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# Lockfile sync enforcement
|
|
2
|
+
|
|
3
|
+
Keep `pnpm-lock.yaml` aligned with every `package.json` and `pnpm-workspace.yaml` change.
|
|
4
|
+
|
|
5
|
+
## Layers
|
|
6
|
+
|
|
7
|
+
| Layer | What it catches |
|
|
8
|
+
|-------|-----------------|
|
|
9
|
+
| **Pre-commit** | Manifest changed without staged lockfile; default frozen install drift |
|
|
10
|
+
| **CI validate** | Frozen install on integration branch (`develop` / `dev`) and PRs |
|
|
11
|
+
| **CI hoisted job** | cms-edit Vercel path (`--config.node-linker=hoisted`) — platform optional deps |
|
|
12
|
+
| **Vercel installCommand** | `--frozen-lockfile` on marketing sites; hoisted + frozen on cms-edit host |
|
|
13
|
+
|
|
14
|
+
## Scripts (copy from se-core-product `scripts/`)
|
|
15
|
+
|
|
16
|
+
- `check-lockfile-sync.sh` — full (`default` + `hoisted`) or `--quick` (default only)
|
|
17
|
+
- `pre-commit-lockfile.sh` — wire into `.husky/pre-commit` before lint-staged
|
|
18
|
+
|
|
19
|
+
## CI snippet
|
|
20
|
+
|
|
21
|
+
See [`validate-workflow-snippet.yml`](validate-workflow-snippet.yml). Customer monorepos should:
|
|
22
|
+
|
|
23
|
+
1. Run validate on **`develop`** (or your integration branch), not only `main`.
|
|
24
|
+
2. Add a parallel `lockfile-hoisted` job when `cms-edit/host/.npmrc` has `node-linker=hoisted`.
|
|
25
|
+
|
|
26
|
+
## Vercel
|
|
27
|
+
|
|
28
|
+
| Project type | installCommand |
|
|
29
|
+
|--------------|----------------|
|
|
30
|
+
| Marketing app (monorepo root install) | `cd ../.. && pnpm install --frozen-lockfile` |
|
|
31
|
+
| cms-edit host | `cd ../.. && pnpm install --frozen-lockfile --config.node-linker=hoisted` |
|
|
32
|
+
|
|
33
|
+
## After dependency changes
|
|
34
|
+
|
|
35
|
+
```bash
|
|
36
|
+
pnpm install # repo root — never pnpm install -r for lockfile refresh
|
|
37
|
+
git add package.json pnpm-lock.yaml pnpm-workspace.yaml
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Use `pnpm install --no-frozen-lockfile` only when intentionally repairing the lockfile.
|
|
41
|
+
|
|
42
|
+
## Rollout status (customer repos)
|
|
43
|
+
|
|
44
|
+
Apply the full stack when touching deps or CI in each repo:
|
|
45
|
+
|
|
46
|
+
| Repo | Pre-commit | CI develop/dev | CI hoisted | Vercel frozen (marketing) |
|
|
47
|
+
|------|------------|----------------|------------|---------------------------|
|
|
48
|
+
| brightline-sites | yes | yes | yes | yes |
|
|
49
|
+
| pedestal-sites | — | partial | — | no |
|
|
50
|
+
| om1-website | — | — | — | — |
|
|
51
|
+
| se-website-2026 | — | — | — | — |
|
|
52
|
+
| pointme | — | — | — | — |
|
|
53
|
+
|
|
54
|
+
Update this table as repos adopt the pattern.
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
# Append to .github/workflows/validate.yml (or equivalent CI workflow).
|
|
2
|
+
# Run on the integration branch (develop / dev), not only main.
|
|
3
|
+
|
|
4
|
+
on:
|
|
5
|
+
push:
|
|
6
|
+
branches: [main, develop] # or [main, dev] for se-core-product consumers
|
|
7
|
+
pull_request:
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
validate:
|
|
11
|
+
runs-on: ubuntu-latest
|
|
12
|
+
steps:
|
|
13
|
+
- uses: actions/checkout@v4
|
|
14
|
+
- uses: pnpm/action-setup@v4
|
|
15
|
+
- uses: actions/setup-node@v4
|
|
16
|
+
with:
|
|
17
|
+
node-version: '24'
|
|
18
|
+
cache: pnpm
|
|
19
|
+
- run: pnpm install --frozen-lockfile
|
|
20
|
+
- run: pnpm validate
|
|
21
|
+
|
|
22
|
+
# Required when cms-edit/host (or apps/cms-edit-host) uses node-linker=hoisted.
|
|
23
|
+
lockfile-hoisted:
|
|
24
|
+
runs-on: ubuntu-latest
|
|
25
|
+
steps:
|
|
26
|
+
- uses: actions/checkout@v4
|
|
27
|
+
- uses: pnpm/action-setup@v4
|
|
28
|
+
- uses: actions/setup-node@v4
|
|
29
|
+
with:
|
|
30
|
+
node-version: '24'
|
|
31
|
+
cache: pnpm
|
|
32
|
+
- run: pnpm install --frozen-lockfile --config.node-linker=hoisted
|
|
@@ -48,7 +48,7 @@ Guidelines are only meaningful when the showcase is populated with realistic dat
|
|
|
48
48
|
|
|
49
49
|
| Input | Description |
|
|
50
50
|
|---|---|
|
|
51
|
-
| **App directory** | Repo-relative path, e.g. `apps/example-
|
|
51
|
+
| **App directory** | Repo-relative path, e.g. `apps/example-empty` in this monorepo, or an app path in a customer repo (see `docs/RELATED_PROJECTS.md`) |
|
|
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
54
|
| **Discovery URL** | `http://localhost:<PORT>/api/cms/discovery/` — `<PORT>` from the running dev server (`pnpm dev`) |
|
|
@@ -94,7 +94,7 @@ mkdir -p scripts
|
|
|
94
94
|
cp node_modules/@se-studio/skills/skills/performance-audit/lighthouse.ts scripts/lighthouse.ts
|
|
95
95
|
```
|
|
96
96
|
|
|
97
|
-
Or copy from `
|
|
97
|
+
Or copy from a customer site repo if available (e.g. `se-website-2026/scripts/lighthouse.ts`). This monorepo only ships `apps/example-empty`.
|
|
98
98
|
|
|
99
99
|
**Customise `PAGES` for the project** — edit the `PAGES` array near the top of the script. Choose representative pages: homepage, a list/index page, and a detail page. Use the sitemap to identify good candidates:
|
|
100
100
|
|
|
@@ -5,7 +5,7 @@ description: "Guide for the (cms-routes) route group and appShared pattern. Use
|
|
|
5
5
|
|
|
6
6
|
# CMS Routes and appShared Pattern
|
|
7
7
|
|
|
8
|
-
Reference
|
|
8
|
+
Reference app: **example-empty** (this monorepo). Customer sites with fuller route sets: see `docs/RELATED_PROJECTS.md` (e.g. OM1 uses `resources/`, `team/`, `topics/` instead of `articles/`, `people/`, `tags/`).
|
|
9
9
|
|
|
10
10
|
## Route Group: (cms-routes)
|
|
11
11
|
|
|
@@ -7,7 +7,7 @@ description: "Guide for creating new Next.js App Router pages and dynamic routes
|
|
|
7
7
|
|
|
8
8
|
This guide explains how to create new pages and handle routing in the SE Core Product Next.js framework. The system uses Next.js App Router with Contentful-driven dynamic routing.
|
|
9
9
|
|
|
10
|
-
Reference
|
|
10
|
+
Reference app: **example-empty** (this monorepo). Customer implementations: see `docs/RELATED_PROJECTS.md`.
|
|
11
11
|
|
|
12
12
|
## Page Architecture
|
|
13
13
|
|
|
@@ -5,7 +5,7 @@ description: "Guide for the lib directory structure in SE Core Product CMS apps.
|
|
|
5
5
|
|
|
6
6
|
# Lib Directory Structure
|
|
7
7
|
|
|
8
|
-
Reference
|
|
8
|
+
Reference app: **example-empty** (this monorepo). Customer implementations: see `docs/RELATED_PROJECTS.md`.
|
|
9
9
|
|
|
10
10
|
## File Responsibilities
|
|
11
11
|
|
|
@@ -52,6 +52,8 @@ Example `package.json` entries:
|
|
|
52
52
|
}
|
|
53
53
|
```
|
|
54
54
|
|
|
55
|
+
**Lockfile CI** — before deployment smoke, ensure `.github/workflows/validate.yml` runs `pnpm install --frozen-lockfile` on the integration branch (`develop` / `dev`) and PRs, plus a parallel `lockfile-hoisted` job when cms-edit uses `node-linker=hoisted`. Copy scripts and workflow snippet from [`references/lockfile-sync/`](../../references/lockfile-sync/README.md). Marketing `vercel.json` install commands must use `--frozen-lockfile`.
|
|
56
|
+
|
|
55
57
|
**Vercel Deployment Check (live URL)** — GitHub Action on `vercel.deployment.ready` tests `client_payload.url` before production domains alias. Workflow must live on the repo **default branch**. Register the status `name` in Vercel → Settings → Build and Deployment → Deployment Checks.
|
|
56
58
|
|
|
57
59
|
Filter on `client_payload.environment == 'production'` when Deployment Checks target production only. Vercel also dispatches for preview and custom environments (`preview`, `develop`, etc.); skip those to avoid duplicate CI runs. Use `workflow_dispatch` without an environment filter for manual smoke against any URL.
|
|
@@ -37,6 +37,8 @@ pnpm install --frozen-lockfile --config.node-linker=hoisted
|
|
|
37
37
|
|
|
38
38
|
Run that locally **before push** whenever `package.json`, lockfile, or overrides change. A mismatch surfaces as `ERR_PNPM_OUTDATED_LOCKFILE` (manifest vs lockfile specifiers).
|
|
39
39
|
|
|
40
|
+
**Lockfile enforcement stack** — copy `scripts/check-lockfile-sync.sh` and `scripts/pre-commit-lockfile.sh` from se-core-product; wire pre-commit before lint-staged; add CI jobs from [`references/lockfile-sync/`](../../references/lockfile-sync/README.md). Marketing Vercel projects: `installCommand` must include `--frozen-lockfile`. Integration branch (`develop` / `dev`) must be in CI `push.branches`, not only `main`.
|
|
41
|
+
|
|
40
42
|
---
|
|
41
43
|
|
|
42
44
|
## Projects
|
|
@@ -234,6 +236,17 @@ After a successful update, you may add the patches check to the root `validate`
|
|
|
234
236
|
|
|
235
237
|
This is optional follow-up — the skill workflow always runs the check regardless.
|
|
236
238
|
|
|
239
|
+
## Optional: lockfile enforcement rollout
|
|
240
|
+
|
|
241
|
+
When updating deps in a customer repo, adopt the full lockfile stack if missing:
|
|
242
|
+
|
|
243
|
+
1. Copy `scripts/check-lockfile-sync.sh` and `scripts/pre-commit-lockfile.sh` from se-core-product.
|
|
244
|
+
2. Add `bash scripts/pre-commit-lockfile.sh` to `.husky/pre-commit` (before lint-staged).
|
|
245
|
+
3. Extend `.github/workflows/validate.yml`: integration branch in `push.branches`, parallel `lockfile-hoisted` job when cms-edit uses hoisted linker.
|
|
246
|
+
4. Set marketing `vercel.json` `installCommand` to `cd ../.. && pnpm install --frozen-lockfile`.
|
|
247
|
+
|
|
248
|
+
See [`references/lockfile-sync/README.md`](../../references/lockfile-sync/README.md) for the rollout table and workflow snippet.
|
|
249
|
+
|
|
237
250
|
---
|
|
238
251
|
|
|
239
252
|
## Troubleshooting
|