@se-studio/skills 1.9.16 → 1.9.18
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/agent-session/customer-agents-block.md +2 -2
- package/references/agent-session/customer-architecture.mdc +1 -1
- package/references/agent-session/customer-code-review.md +14 -3
- package/skills/coding-discipline/SKILL.md +2 -2
- package/skills/se-marketing-sites-cms-routes-and-appshared/SKILL.md +7 -3
- package/skills/se-marketing-sites-lib-cms-structure/SKILL.md +2 -4
- package/skills/site-workflows-agent-session/SKILL.md +6 -6
- package/skills/site-workflows-contentful-vercel-setup/SKILL.md +1 -1
- package/skills/site-workflows-new-project/SKILL.md +4 -14
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @se-studio/skills
|
|
2
2
|
|
|
3
|
+
## 1.9.18
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 023c171: Shorten the customer code-review prompt to the diff under review. Agent rules live in `AGENTS.md` and `.cursor/rules`. Do not add a `.cursorrules` file.
|
|
8
|
+
|
|
9
|
+
## 1.9.17
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- d645ee4: Document both person URL shapes. The legacy generator uses `/peopleType/[peopleType]/[person]`. The section generator uses a static `/{peopleSlug}/{type}/[person]`.
|
|
14
|
+
|
|
3
15
|
## 1.9.16
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/package.json
CHANGED
|
@@ -60,14 +60,14 @@ Never hand-edit `package.json` dependency versions.
|
|
|
60
60
|
For visual/UI changes:
|
|
61
61
|
|
|
62
62
|
1. **Early:** draft PR → Vercel preview → mobile (~390) + laptop (~1280) screenshots → **stop** for Nick’s visual review (iterate on feedback).
|
|
63
|
-
2. **Full (after Nick is happy):** re-check tablet (~768), laptop (~1280), **oversize (~1920+)**, and mobile. Then
|
|
63
|
+
2. **Full (after Nick is happy):** re-check tablet (~768), laptop (~1280), **oversize (~1920+)**, and mobile. Then follow `CODE_REVIEW.md` and stop.
|
|
64
64
|
3. Do not chase pixel-perfect polish before the early gate.
|
|
65
65
|
|
|
66
66
|
Non-UI changes skip visual gates and go to code review.
|
|
67
67
|
|
|
68
68
|
### Code review
|
|
69
69
|
|
|
70
|
-
Before asking to merge to `develop`, run the
|
|
70
|
+
Before asking to merge to `develop`, run the review in `CODE_REVIEW.md` and stop. Findings: **BLOCKER** / **NIT**. Do not keep a second checklist in `AGENTS.md`. That file only points at `CODE_REVIEW.md`.
|
|
71
71
|
|
|
72
72
|
### Parallel features
|
|
73
73
|
|
|
@@ -54,5 +54,5 @@ Source of truth: `se-core-product` `docs/PHILOSOPHY.md`. Code review: `CODE_REVI
|
|
|
54
54
|
|
|
55
55
|
- Keep smoke cases and discovery intact; fix `@se-studio/site-check` in core if smoke is wrong.
|
|
56
56
|
- New behaviour needs a test. Failing typecheck/lint/tests blocks merge.
|
|
57
|
-
-
|
|
57
|
+
- Follow `CODE_REVIEW.md` and stop. Do not run a second checklist from this file.
|
|
58
58
|
- Production merges need human ask + confirm. Agents do not push production.
|
|
@@ -2,15 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
Use this prompt when reviewing a **customer marketing site** PR (or when the user asks for a code review). Label every finding **BLOCKER** or **NIT**. Blockers first. Unclear judgement calls → flag to Nick in chat.
|
|
4
4
|
|
|
5
|
-
Do **not** use Bugbot or a `nick-go` GitHub label. Merge to `develop` only when Nick says so in chat. Production still needs ask + confirm (`production-merge.md`).
|
|
5
|
+
Do **not** use Bugbot or a `nick-go` GitHub label. Merge to `develop` only when Nick says so in chat, a review covers the current head SHA, and the PR has a `## Merge approval` comment. Production still needs ask + confirm (`production-merge.md`).
|
|
6
6
|
|
|
7
7
|
Canonical architecture: `se-core-product` `docs/PHILOSOPHY.md`. Placement and handoffs: skill `site-workflows-agent-session`.
|
|
8
8
|
|
|
9
|
+
## Scope
|
|
10
|
+
|
|
11
|
+
- Review added and modified lines, plus call sites broken by a deleted or renamed symbol. Do not audit the rest of the repo.
|
|
12
|
+
- A lens the diff cannot touch is one line: N/A.
|
|
13
|
+
- Do not re-check Biome style or TypeScript strictness. The repo validate script already does.
|
|
14
|
+
- A later review of the same PR reads only the diff since the SHA already reviewed.
|
|
15
|
+
|
|
9
16
|
---
|
|
10
17
|
|
|
11
18
|
## Multi-lens checklist
|
|
12
19
|
|
|
13
|
-
Run
|
|
20
|
+
Run a lens only when the diff can touch it.
|
|
14
21
|
|
|
15
22
|
### 1. Architecture / placement
|
|
16
23
|
|
|
@@ -38,7 +45,7 @@ Run all five lenses. Skip a lens only when the diff clearly cannot touch it (say
|
|
|
38
45
|
|
|
39
46
|
### 4. Docs consistency
|
|
40
47
|
|
|
41
|
-
- [ ] AGENTS.md,
|
|
48
|
+
- [ ] AGENTS.md, `src/project/*` docs, cms-edit packs, and READMEs match the behaviour change.
|
|
42
49
|
- [ ] No leftover Bugbot / `nick-go` instructions contradicting chat-gated merge.
|
|
43
50
|
- [ ] Site `docs/AGENT_PROCESS_NOTES.md` updated only for site-local process learnings (promote to core via “promote process note”).
|
|
44
51
|
|
|
@@ -96,3 +103,7 @@ Do not treat “pixel-perfect vs Figma” as a merge blocker before the early vi
|
|
|
96
103
|
4. Open questions for Nick
|
|
97
104
|
|
|
98
105
|
Out of scope: inventing product/design/copy changes; Netlify/Storybook check noise.
|
|
106
|
+
|
|
107
|
+
## Design review
|
|
108
|
+
|
|
109
|
+
When the diff is a new mechanism, analytics, a Contentful fetch or cache change, schema, or placement: post `## Design review` on the PR (PASS / BLOCKERS / N/A), separate from type-check and tests. Otherwise write N/A. The procedure is `docs/design-review.md` in se-core-product.
|
|
@@ -224,7 +224,7 @@ For **app-level** components that render CMS content (Hero, CTA, etc.):
|
|
|
224
224
|
|
|
225
225
|
### Heading hierarchy
|
|
226
226
|
|
|
227
|
-
Use `Element` from `getSizingInformation(index)` for the main heading of each component/collection; use `ChildElement` for headings of items inside a collection. Render **preHeading** and **postHeading** as `<p>` with a typography class, never as heading tags. See
|
|
227
|
+
Use `Element` from `getSizingInformation(index)` for the main heading of each component/collection; use `ChildElement` for headings of items inside a collection. Render **preHeading** and **postHeading** as `<p>` with a typography class, never as heading tags. See the create-component skill.
|
|
228
228
|
|
|
229
229
|
### Fetching Contentful Data
|
|
230
230
|
|
|
@@ -375,7 +375,7 @@ When making changes, update the relevant documentation:
|
|
|
375
375
|
- `specs/` - Content model and component specifications
|
|
376
376
|
- `packages/*/README.md` - Package-specific docs (human-facing)
|
|
377
377
|
- `packages/*/docs/llms.md` - LLM-optimised quick-reference per package (also published to npm)
|
|
378
|
-
-
|
|
378
|
+
- `AGENTS.md` - Agent operating rules (update if the workflow changes)
|
|
379
379
|
|
|
380
380
|
## Links
|
|
381
381
|
|
|
@@ -31,10 +31,14 @@ export default function CmsRoutesLayout({ children }: { children: React.ReactNod
|
|
|
31
31
|
| `/{slug1}/{slug2}/...` | `[level1]/[...slugs]/page.ts` | Multi-level pages |
|
|
32
32
|
| `/articles/` | `articles/page.ts` | Articles index (uses ARTICLES_BASE) |
|
|
33
33
|
| `/articles/{type}/` | `articles/[articleType]/page.ts` | Article type index |
|
|
34
|
-
| `/articles/{type}/{tag}/` | `articles/[articleType]/[tag]/page.ts` | Article type + tag index.
|
|
34
|
+
| `/articles/{type}/{tag}/` | `articles/[articleType]/[tag]/page.ts` | Article type + tag index. Generated when that base sets `tagInPath: true`. |
|
|
35
35
|
| `/articles/{type}/{tag}/{article}/` | `articles/[articleType]/[tag]/[...slugs]/page.ts` | Individual article with a tag segment. Same `tagInPath` rule. |
|
|
36
36
|
| `/tags/`, `/tags/{tag}/` | `tags/` | Tag index when `tags: true` |
|
|
37
|
-
| `/people
|
|
37
|
+
| `/people/` | `people/page.ts` | People index when `personBases[].index` is on |
|
|
38
|
+
| `/people/{person}/` | `people/[person]/page.ts` | Legacy person with no person type. No redirect to the typed URL |
|
|
39
|
+
| `/peopleType/{peopleType}/{person}/` | `peopleType/[peopleType]/[person]/page.ts` | Legacy person with a person type. The type segment is dynamic so it does not sit beside `people/[person]` |
|
|
40
|
+
| `/{peopleSlug}/{type}/`, `/{peopleSlug}/{type}/{person}/` | `{peopleSlug}/{type}/page.ts`, `{peopleSlug}/{type}/[person]/page.ts` | Section generator. The type segment is the person type slug, not `[peopleType]`. With no person prefix the folders are `/{type}/` and `/{type}/[person]/` |
|
|
41
|
+
| `/people/{type}/`, `/people/{type}/{person}/` | `people/{type}/` | Extra folders for each name in `personBases[].types` |
|
|
38
42
|
|
|
39
43
|
Base paths come from `@/lib/constants` (e.g. ARTICLES_BASE = `/learning-hub` or `/articles`).
|
|
40
44
|
|
|
@@ -99,7 +103,7 @@ export default async function (props: PageProps<'/[level1]'>) {
|
|
|
99
103
|
}
|
|
100
104
|
```
|
|
101
105
|
|
|
102
|
-
A dynamic `articles` route uses `converterContext.urlCalculators` (`article`, `articleType`, `articleTypeTag`). Import `converterContext` from `@/lib/converter-context` when that module exists (so route files don't pull in cms-server); otherwise from `@/lib/cms-server`. A fixed article folder, and a dynamic base whose path is not `articles`, passes the path of
|
|
106
|
+
A dynamic `articles` route uses `converterContext.urlCalculators` (`article`, `articleType`, `articleTypeTag`). Import `converterContext` from `@/lib/converter-context` when that module exists (so route files don't pull in cms-server); otherwise from `@/lib/cms-server`. A fixed article folder, and a dynamic base whose path is not `articles`, passes the path of the file that was written (`/work/`, `/work/${articleSlug}/`). `article()` prefixes `ARTICLES_BASE` and, when primary tags are on, inserts `other`. That is a different URL from the file that was written. The generator writes `[tag]` pages with `articleTypeTag` when `tagInPath` is true. Feature flags live in `marketing-routes.json` and `src/generated/marketing-flags.ts`. The legacy generator writes a typed person at `/peopleType/${peopleType}/${slug}/`. The section generator writes a static `/${peopleSlug}/${type}/${slug}/`, or `/${type}/${slug}/` when there is no person prefix. A person with no type is `/${peopleSlug}/${slug}/`. Neither route redirects to the other. `[level1]` stays a generic page.
|
|
103
107
|
|
|
104
108
|
## See Also
|
|
105
109
|
|
|
@@ -41,12 +41,10 @@ export const customerName = '...';
|
|
|
41
41
|
export const applicationName = '...';
|
|
42
42
|
export const siteTitle = '...';
|
|
43
43
|
export const siteDescription = '...';
|
|
44
|
-
export const enablePerson = false;
|
|
45
|
-
export const enablePeopleIndex = false;
|
|
46
|
-
export const enableTag = false;
|
|
47
|
-
export const enableTagsIndex = false;
|
|
48
44
|
```
|
|
49
45
|
|
|
46
|
+
`enablePerson`, `enablePeopleIndex`, `enableTag`, `enableTagsIndex`, `enableArticleTypeIndex`, `enableArticleTypeTagIndex`, and `enablePrimaryTagPartOfSlug` live in `src/lib/marketing-routes.json`. `scripts/generate-marketing-routes.mjs` writes `src/generated/marketing-flags.ts`.
|
|
47
|
+
|
|
50
48
|
## Data Flow
|
|
51
49
|
|
|
52
50
|
```
|
|
@@ -272,7 +272,7 @@ Re-check the same Vercel preview at least at:
|
|
|
272
272
|
| Laptop | ~1280 |
|
|
273
273
|
| **Oversize / wide desktop** | **~1920+** |
|
|
274
274
|
|
|
275
|
-
Flag layout blowouts, overflow, sparse/stretched heroes, broken grids, and type that does not scale. Attach screenshots to chat/PR, then
|
|
275
|
+
Flag layout blowouts, overflow, sparse/stretched heroes, broken grids, and type that does not scale. Attach screenshots to chat/PR, then follow the review file and stop (`CODE_REVIEW_PROMPT.md` on core, `CODE_REVIEW.md` on a customer site).
|
|
276
276
|
|
|
277
277
|
Non-UI changes skip visual phases and go to code review.
|
|
278
278
|
|
|
@@ -284,12 +284,12 @@ When placement says **core** (or the site is blocked on package behaviour): emit
|
|
|
284
284
|
|
|
285
285
|
### Code review (replaces Bugbot)
|
|
286
286
|
|
|
287
|
-
Before asking to merge to `dev` / `develop
|
|
287
|
+
Before asking to merge to `dev` / `develop`, follow the review file and stop. Do not restate its checklist here.
|
|
288
288
|
|
|
289
|
-
- **Core:**
|
|
290
|
-
- **Customer:**
|
|
289
|
+
- **Core:** [`CODE_REVIEW_PROMPT.md`](../../../../CODE_REVIEW_PROMPT.md)
|
|
290
|
+
- **Customer:** [`customer-code-review.md`](../../references/agent-session/customer-code-review.md) (copied into the site as `CODE_REVIEW.md`)
|
|
291
291
|
|
|
292
|
-
|
|
292
|
+
Findings: **BLOCKER** / **NIT**. No Bugbot; no `nick-go` label — Nick approves merges to integration branches **in chat**.
|
|
293
293
|
|
|
294
294
|
### Process feedback
|
|
295
295
|
|
|
@@ -331,7 +331,7 @@ Agents must **never** ship from a registry `productionPath` (e.g. HSD `~/source/
|
|
|
331
331
|
gh pr create --base <integration-branch> --head <branch> --draft --title "<feature>: <summary>"
|
|
332
332
|
```
|
|
333
333
|
|
|
334
|
-
Before asking to merge the draft: complete visual gates (if UI) and
|
|
334
|
+
Before asking to merge the draft: complete visual gates (if UI) and the review in that file.
|
|
335
335
|
|
|
336
336
|
If `gh` is unavailable or user prefers direct push, push `feature/*` and note the remote URL in handoff.
|
|
337
337
|
|
|
@@ -390,7 +390,7 @@ Expected: `200 OK`. A `401` means the secret in the header doesn't match the dep
|
|
|
390
390
|
|
|
391
391
|
## What to do next
|
|
392
392
|
|
|
393
|
-
- **If inspector mode doesn't highlight fields**: check that `getPreviewFieldProps` is applied to field containers in the components. See
|
|
393
|
+
- **If inspector mode doesn't highlight fields**: check that `getPreviewFieldProps` is applied to field containers in the components. See the create-component skill.
|
|
394
394
|
- **For draft content visibility**: set `DRAFT_ONLY=true` in Vercel on a preview/staging environment (not production) so editors can see unpublished content without affecting live users.
|
|
395
395
|
|
|
396
396
|
## (Optional) Redirects via the rebuild pattern
|
|
@@ -1,6 +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
|
|
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). Use this immediately after cloning the template for a new client."
|
|
4
4
|
---
|
|
5
5
|
|
|
6
6
|
# SE New Project Bootstrap
|
|
@@ -92,8 +92,6 @@ In `src/project/components/Footer/index.tsx`, replace `"Site Name"` with the cus
|
|
|
92
92
|
Write `CLAUDE.md` at the project root:
|
|
93
93
|
|
|
94
94
|
```markdown
|
|
95
|
-
@.cursorrules
|
|
96
|
-
|
|
97
95
|
@AGENTS.md
|
|
98
96
|
```
|
|
99
97
|
|
|
@@ -113,9 +111,7 @@ Also copy:
|
|
|
113
111
|
| [`customer-code-review.md`](../../references/agent-session/customer-code-review.md) | `CODE_REVIEW.md` (repo root) |
|
|
114
112
|
| Starter notes | `docs/AGENT_PROCESS_NOTES.md` (see [`process-feedback.md`](../../references/agent-session/process-feedback.md)) |
|
|
115
113
|
|
|
116
|
-
Do **not** create `.cursor/BUGBOT.md`. Do **not** require a `nick-go` label.
|
|
117
|
-
|
|
118
|
-
Wire `.cursorrules` so “when the user asks for a code review” points at `CODE_REVIEW.md`.
|
|
114
|
+
Do **not** create `.cursor/BUGBOT.md`. Do **not** create `.cursorrules`. Do **not** require a `nick-go` label.
|
|
119
115
|
|
|
120
116
|
Skeleton:
|
|
121
117
|
|
|
@@ -161,15 +157,9 @@ Before any Contentful content edit:
|
|
|
161
157
|
|
|
162
158
|
---
|
|
163
159
|
|
|
164
|
-
## Step 7 —
|
|
165
|
-
|
|
166
|
-
Read `.cursorrules` and update the **Project Overview** section at the top:
|
|
167
|
-
- Replace the previous project name with the new customer/project name
|
|
168
|
-
- Update the "Key technologies" list if anything changed
|
|
169
|
-
- Remove any project-specific notes about the previous customer
|
|
170
|
-
- Ensure code-review instructions point to `CODE_REVIEW.md` (not Bugbot)
|
|
160
|
+
## Step 7 — Do not add `.cursorrules`
|
|
171
161
|
|
|
172
|
-
|
|
162
|
+
Operating rules are `AGENTS.md`. Architecture gates are `.cursor/rules/architecture.mdc`. Code review is `CODE_REVIEW.md`. If the template still has a `.cursorrules` file, delete it.
|
|
173
163
|
|
|
174
164
|
---
|
|
175
165
|
|