@se-studio/skills 1.8.2 → 1.9.0

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,11 @@
1
1
  # @se-studio/skills
2
2
 
3
+ ## 1.9.0
4
+
5
+ ### Minor Changes
6
+
7
+ - Agent process refresh: replace Bugbot/nick-go label gates with phased Vercel visual review, chat-gated multi-lens code review, and cross-project handoff templates.
8
+
3
9
  ## 1.8.2
4
10
 
5
11
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/skills",
3
- "version": "1.8.2",
3
+ "version": "1.9.0",
4
4
  "description": "SE Studio agent skills for marketing site development with Contentful CMS",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,42 @@
1
+ # Cross-project handoffs
2
+
3
+ When work spans **se-core-product** and a customer site, use these chat/PR blocks. Do not patch `@se-studio/*` in the customer repo while waiting.
4
+
5
+ ## Core request (site → core)
6
+
7
+ Emit when placement says **core**, or the site is blocked on missing package behaviour:
8
+
9
+ ```markdown
10
+ ## Core request
11
+
12
+ **From site:** <project_key> (`<repo>`)
13
+ **Feature:** <feature-slug>
14
+ **Why core:** <one sentence — 2+ sites / CMS infra / bug in @se-studio/*>
15
+
16
+ **Suggested packages:** `@se-studio/<pkg>`, …
17
+ **Suggested core branch:** `feature/core/<slug>` or `cursor/<slug>-…`
18
+
19
+ **Site status:** Parked — waiting on npm `@se-studio/<pkg>@<version>` (TBD until publish).
20
+ **Do not:** implement this behaviour in the customer repo.
21
+ ```
22
+
23
+ Then switch to **core-first** (same multi-root chat or a core session), implement, changeset, publish.
24
+
25
+ ## Site request (core → sites)
26
+
27
+ Emit when a core release is ready for consumers:
28
+
29
+ ```markdown
30
+ ## Site request
31
+
32
+ **Core PR / packages:** `@se-studio/<pkg>@<version>` (confirmed on npm: yes/no)
33
+ **Customers to bump:** <project_key list>
34
+ **Command:** `pnpm update @se-studio/<pkg>@<version> -r`
35
+ **Notes:** <breaking? opt-in? editor-pack regen?>
36
+ ```
37
+
38
+ ## Wait rules
39
+
40
+ 1. Customer must not push `develop` assuming an unpublished package version.
41
+ 2. After npm confirm → `pnpm update` → then continue site work / merge chat.
42
+ 3. Say the wait loudly in the site PR body, not in a core yaml ledger.
@@ -13,6 +13,7 @@ Default mode for this repo: **site-first**.
13
13
  ### Branch policy
14
14
 
15
15
  - Agents may commit and push **`develop`** and **`feature/*`**.
16
+ - Merge feature → `develop` only when Nick approves **in chat** (no `nick-go` GitHub label).
16
17
  - Customer production (`main`, HSD `production`) **only** after the human-ask + confirm gate (`production-merge.md` in `@se-studio/skills`). The human must ask to merge integration → production in this conversation; the agent must restate site, branches, and that it publishes production; then wait for a second **yes**.
17
18
  - **Never** treat “deploy”, “ship it”, or “rollout” as permission. **Never** ship from a production checkout (e.g. HSD `production-hsd-website`). Use the develop checkout only. **Never** merge se-core-product `main`.
18
19
  - Prefer **draft PRs** to `develop` over direct pushes when `gh` is available.
@@ -27,7 +28,7 @@ Before non-trivial code, run the placement checklist (in the skill). Summary:
27
28
  | **Customer shared package** (if monorepo) | Consent/analytics shared across sites in this customer |
28
29
  | **`se-core-product`** (`@se-studio/*`) | Fixes/features needed by 2+ sites, CMS infrastructure |
29
30
 
30
- If the checklist says **core**, stop and switch to core-first mode — do not patch `@se-studio` behaviour in this repo. Shared converters, Visual/video delivery, cms-edit runtime, sitemap helpers, and site-check assertions belong in core, not a one-site fork.
31
+ If the checklist says **core**, stop and emit a **Core request** ([`cross-project-handoff.md`](./cross-project-handoff.md)) — do not patch `@se-studio` behaviour in this repo. Shared converters, Visual/video delivery, cms-edit runtime, sitemap helpers, and site-check assertions belong in core, not a one-site fork. Switch to core-first (or a core session); park the site until npm.
31
32
 
32
33
  ### Deploy smoke failed?
33
34
 
@@ -46,10 +47,24 @@ When work depends on a new `@se-studio/*` npm release:
46
47
  1. Release from `se-core-product` (`dev` → CI publish)
47
48
  2. Confirm version on npm
48
49
  3. `pnpm update @se-studio/<package>@<version> -r` in this repo
49
- 4. Then push `develop`
50
+ 4. Then push / merge to `develop` after chat approval
50
51
 
51
52
  Never hand-edit `package.json` dependency versions.
52
53
 
54
+ ### UI visual gates (Vercel preview)
55
+
56
+ For visual/UI changes:
57
+
58
+ 1. **Early:** draft PR → Vercel preview → mobile (~390) + laptop (~1280) screenshots → **stop** for Nick’s visual review (iterate on feedback).
59
+ 2. **Full (after Nick is happy):** re-check tablet (~768), laptop (~1280), **oversize (~1920+)**, and mobile. Then multi-lens **code review** (`CODE_REVIEW.md`).
60
+ 3. Do not chase pixel-perfect polish before the early gate.
61
+
62
+ Non-UI changes skip visual gates and go to code review.
63
+
64
+ ### Code review
65
+
66
+ Before asking to merge to `develop`, run the multi-lens review in `CODE_REVIEW.md` (architecture, Next/React/Vercel, performance/size, docs consistency, general quality). Findings: **BLOCKER** / **NIT**.
67
+
53
68
  ### Parallel features
54
69
 
55
70
  - One feature = one `feature/<scope>/<slug>` branch
@@ -62,6 +77,10 @@ Never hand-edit `package.json` dependency versions.
62
77
  - CMS edits: `--session <feature-slug>` (isolate cms-edit sessions)
63
78
  - In-flight work: open PRs + local `git worktree list`
64
79
 
80
+ ### Process feedback
81
+
82
+ Site-local learnings: `docs/AGENT_PROCESS_NOTES.md`. Say **“promote process note”** to fold into core templates. See [`process-feedback.md`](./process-feedback.md).
83
+
65
84
  ### Production handoff
66
85
 
67
- When **marketing** work is ready, agents **stop** and hand off. Merge `develop` → production only after ask + confirm (`production-merge.md`). One site at a time. No `vercel deploy`. cms-edit host extra gate: `cms-edit-prod-merge.md`.
86
+ When **marketing** work is ready, agents **stop** and hand off. Merge `develop` → production only after ask + confirm (`production-merge.md`). One site at a time. No `vercel deploy`. cms-edit host extra gate: `cms-edit-prod-merge.md`.
@@ -0,0 +1,48 @@
1
+ ---
2
+ description: SE Studio customer-site architecture gates
3
+ alwaysApply: true
4
+ ---
5
+
6
+ # SE Studio customer site
7
+
8
+ This repo is a thin brand layer on `@se-studio/*`. Follow core; do not copy shared logic here.
9
+ Source of truth: `se-core-product` `docs/PHILOSOPHY.md`. Code review: `CODE_REVIEW.md` (from `@se-studio/skills` `customer-code-review.md`).
10
+
11
+ ## Placement
12
+
13
+ - Brand (Figma, copy, colours, one-off layout) → `src/project/*` (T3).
14
+ - Shared behaviour (fetch, cache, forms, analytics, SEO, consent, renderers) → core. If core lacks an option, emit a **Core request** handoff and wait for npm; do not fork here.
15
+ - Workarounds for missing/broken core are review findings, not solutions.
16
+ - Any `@se-studio/*` version change: use `pnpm update` after the version is on npm. No `file:` tarballs or `pnpm patch`. Merge to `develop` only when Nick approves in chat (no `nick-go` label).
17
+
18
+ ## Contentful
19
+
20
+ - Do not change content models or run migrations in an app PR. Schema work is numbered migrations (core or `NN-…-<site>.js`), run on Nick's Mac only when Nick asks in chat.
21
+ - Fetch only through core helpers with cache tags. No direct Contentful CDA `fetch`.
22
+
23
+ ## Rendering / visual system
24
+
25
+ - Keep T0/T1 skeleton files thin; document deviations in the site README.
26
+ - Use core route handlers (`generatePage`, robots, sitemaps, etc.). Do not reimplement.
27
+ - Mobile-first Tailwind. Preserve heading hierarchy. Size visuals with core helpers. Avoid duplicate mobile/desktop markup for the same content.
28
+ - UI changes: early Vercel preview (mobile + laptop) → Nick visual → full breakpoints including oversize (~1920+) before deep polish/code review.
29
+
30
+ ## Caching / performance / images
31
+
32
+ - Keep CMS routes static (`●`). Do not read `headers()`/`cookies()` in a layout that forces the tree dynamic.
33
+ - No uncached CMS fetches. Dynamic (`ƒ`) or cache opt-outs need measured cost/why in the PR.
34
+ - Image and client-bundle weight changes need before/after numbers.
35
+
36
+ ## Analytics / forms / secrets
37
+
38
+ - Consent and analytics go through core adapters. No direct `dataLayer` pushes.
39
+ - Never send names, emails, phones, form answers, or raw errors to analytics/URLs.
40
+ - Forms submit server-side via core. Preview/develop must not post to production HubSpot or GTM.
41
+ - No secrets in code/tests/logs. Avoid new `NEXT_PUBLIC_*` unless the browser must see the value.
42
+
43
+ ## Tests / ship / review
44
+
45
+ - Keep smoke cases and discovery intact; fix `@se-studio/site-check` in core if smoke is wrong.
46
+ - New behaviour needs a test. Failing typecheck/lint/tests blocks merge.
47
+ - Agent multi-lens code review (`CODE_REVIEW.md`) before asking to merge to `develop`.
48
+ - Production merges need human ask + confirm. Agents do not push production.
@@ -0,0 +1,84 @@
1
+ # Code review: SE Studio customer site
2
+
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
+
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`).
6
+
7
+ Canonical architecture: `se-core-product` `docs/PHILOSOPHY.md`. Placement and handoffs: skill `site-workflows-agent-session`.
8
+
9
+ ---
10
+
11
+ ## Multi-lens checklist
12
+
13
+ Run all five lenses. Skip a lens only when the diff clearly cannot touch it (say so).
14
+
15
+ ### 1. Architecture / placement
16
+
17
+ - [ ] Brand / one-off layout stays in `src/project/*` (or customer-shared package). No fork of `@se-studio/*` behaviour.
18
+ - [ ] If 2+ sites would need this within ~6 months, the change belongs in core — **BLOCKER** if implemented only here.
19
+ - [ ] Server/client boundaries: `'use client'` does not import `cms-server`, `@se-studio/core-ui/server`, or `contentful-rest-api`.
20
+ - [ ] Four-layer components / five-layer collections preserved; registrations match CMS types.
21
+ - [ ] Contentful model/migrations are **not** in this app PR. Schema work is Nick’s Mac only, triggered via chat.
22
+
23
+ ### 2. Next.js / React / Vercel
24
+
25
+ - [ ] Read version-matched guides under `node_modules/next/dist/docs/` when the diff touches App Router, caching, or metadata.
26
+ - [ ] Server Components by default; client islands only for interactivity.
27
+ - [ ] CMS routes stay static (`●`). No `headers()`/`cookies()` in a layout that forces the tree dynamic without measured justification.
28
+ - [ ] Fetches go through core helpers with cache tags. No raw CDA `fetch`.
29
+ - [ ] Images/video use core `Visual` + `calculateVisualSizes` (values match layout; mobile vs laptop not reversed).
30
+ - [ ] Preview/develop must not post to production HubSpot or GTM.
31
+
32
+ ### 3. Performance and size
33
+
34
+ - [ ] No uncached CMS fetches. New `ƒ` routes or cache opt-outs need cost/why in the PR.
35
+ - [ ] Image, caching, or client-bundle weight changes include before/after notes when material.
36
+ - [ ] No needless duplicate mobile/desktop markup for the same content.
37
+ - [ ] Avoid shipping large client dependencies for presentational CMS blocks.
38
+
39
+ ### 4. Docs consistency
40
+
41
+ - [ ] AGENTS.md, `.cursorrules`, `src/project/*` docs, cms-edit packs, and READMEs match the behaviour change.
42
+ - [ ] No leftover Bugbot / `nick-go` instructions contradicting chat-gated merge.
43
+ - [ ] Site `docs/AGENT_PROCESS_NOTES.md` updated only for site-local process learnings (promote to core via “promote process note”).
44
+
45
+ ### 5. General quality (BLOCKERs from former Bugbot gates)
46
+
47
+ **BLOCKER**
48
+
49
+ - Copied core logic (render, fetch, cache, forms, analytics, SEO, consent) instead of using or extending core.
50
+ - Secrets, tokens, or `.env` values in code, tests, comments, or logs. Avoid new `NEXT_PUBLIC_*` unless the browser must see the value.
51
+ - Personal data or form field values in events, dataLayer, HubSpot payloads, or URLs.
52
+ - Consent granted by default where a CMP decides, or bypassing site consent gating.
53
+ - Forms: preview posting to production HubSpot/GTM, or bypassing core server-side submit.
54
+ - Hard-coded heading skips, `Visual` without size helpers, or needless duplicate mobile/desktop content.
55
+ - Failing typecheck, lint, or tests; new behaviour with no test where the site already tests that layer.
56
+ - Smoke/discovery/`server-config` hacks to unblock deploy smoke (belongs in `@se-studio/site-check`).
57
+
58
+ **NIT**
59
+
60
+ - Prefer existing core components over one-offs.
61
+ - Don’t rename existing tracking events only to match other sites.
62
+ - Clearer names, smaller functions, docs polish.
63
+
64
+ ---
65
+
66
+ ## Visual gates (UI diffs only)
67
+
68
+ If the PR changes UI, confirm the session followed agent-session visual phases:
69
+
70
+ 1. **Early:** Vercel preview, mobile (~390) + laptop (~1280), stopped for Nick’s visual review.
71
+ 2. **Full (after Nick is happy):** tablet (~768), laptop (~1280), **oversize (~1920+)**, plus mobile — flag overflow, stretched heroes, broken grids.
72
+
73
+ Do not treat “pixel-perfect vs Figma” as a merge blocker before the early visual gate completes.
74
+
75
+ ---
76
+
77
+ ## Output format
78
+
79
+ 1. Summary (1–3 sentences)
80
+ 2. **BLOCKER** list (file + issue + fix)
81
+ 3. **NIT** list
82
+ 4. Open questions for Nick
83
+
84
+ Out of scope: inventing product/design/copy changes; Netlify/Storybook check noise.
@@ -0,0 +1,32 @@
1
+ # Process feedback (continual improvement)
2
+
3
+ Shared agent workflow lives in **se-core-product** (`site-workflows-agent-session`, `customer-agents-block.md`, review templates). Customer sites may record local learnings without editing core immediately.
4
+
5
+ ## Per project
6
+
7
+ Keep `docs/AGENT_PROCESS_NOTES.md` at the customer (or core) repo root docs folder.
8
+
9
+ Use it for:
10
+
11
+ - Site-specific gotchas (ports, Vercel project names, CMS quirks)
12
+ - Feedback on the agent process that worked or failed on this site
13
+ - Candidates to promote into the shared skill/templates
14
+
15
+ Do **not** duplicate PHILOSOPHY hard rules here. Link out instead.
16
+
17
+ ## Promote to core
18
+
19
+ When the user says **“promote process note”** (or equivalent):
20
+
21
+ 1. Read the site’s `docs/AGENT_PROCESS_NOTES.md` (and any notes in chat).
22
+ 2. Switch to **core-first** on `se-core-product`.
23
+ 3. Fold the learning into the right shared surface (`site-workflows-agent-session`, `customer-agents-block.md`, `customer-code-review.md`, `docs/WORKFLOW.md`).
24
+ 4. Refresh customer copies on the next process-refresh pass (or in the same multi-repo change if already open).
25
+
26
+ ## Phrases
27
+
28
+ | Phrase | Meaning |
29
+ |--------|---------|
30
+ | process note | Add a bullet to this site’s `AGENT_PROCESS_NOTES.md` |
31
+ | promote process note | Lift a note into core shared templates |
32
+ | refresh process | Re-copy customer-agents-block / architecture / CODE_REVIEW from core templates |
@@ -114,6 +114,17 @@
114
114
  "hostedMcp": "cms-edit-highlander",
115
115
  "validate": "pnpm check && pnpm type-check && pnpm validate:routes",
116
116
  "notes": "2026 stack is live on Vercel (develop preview, main production alias). Public DNS is still Bond/Netlify highlanderhealth.com until cutover. Hosted cms-edit: https://highlander.content.se.studio (Git production branch main)."
117
+ },
118
+ {
119
+ "key": "eagle",
120
+ "displayName": "Eagle Website",
121
+ "path": "~/source/customers/eagle/eagle-website",
122
+ "worktreesRoot": "~/source/customers/eagle/worktrees",
123
+ "branch": "main",
124
+ "productionBranch": "main",
125
+ "type": "customer",
126
+ "validate": "pnpm validate",
127
+ "notes": "Currently tracks main (no separate develop yet). Agents use feature/* PRs into main until a develop integration branch exists. Prefer adding develop when the site joins the standard customer train."
117
128
  }
118
129
  ]
119
130
  }
@@ -217,21 +217,52 @@ When editing Contentful in parallel on the same space, use distinct cms-edit ses
217
217
  - **Do not** edit `se-core-product` unless placement is `core` and user approves mode switch
218
218
  - Consume `@se-studio/*` from npm — not monorepo workspace links
219
219
 
220
- ### Figma is absolute gospel (new designs)
220
+ ### Figma direction (new designs) + phased visual gates
221
221
 
222
- **Until the user explicitly says otherwise**, when implementing or polishing UI from a Figma file or node:
222
+ **Until the user explicitly says otherwise**, when implementing UI from a Figma file or node, treat Figma as the **direction / source of truth** for structure, spacing, type, colour, radii, alignment, and control patterns. Do not “improve” or normalize away from the comps to match older site patterns. Prefer Figma MCP design context over CMS drafts or live-site memory.
223
223
 
224
- | Do | Do not |
225
- |----|--------|
226
- | Treat the named Figma node as the **source of truth** for structure, spacing, type, colour, radii, alignment, and control patterns | “Improve”, normalize, or restyle away from the comps to match older site patterns |
227
- | Pull design context / screenshots from the owned Figma file before coding or “fixing” visuals | Prefer CMS draft copy, prior app screenshots, or memory of the live site over the comps |
228
- | Match **pixel-faithfully** (including pills vs checkboxes/radios, hug vs full-width CTAs, card fills) | Ship “close enough” and wait for the user to notice |
229
- | If Figma conflicts with an existing component or token, **follow Figma** and note the deviation | Silently keep the old pattern because it is already in the codebase |
230
- | Verify in the browser against the Figma node (desktop + mobile when both exist) | Declare done from a single screenshot that does not match the node |
224
+ **Do not** chase pixel-perfect polish before the **early visual gate**. Iterate with Nick on a Vercel preview first.
231
225
 
232
- **Override:** Only diverge when the user clearly says so in the current conversation (e.g. “ignore Figma for the button”, “use site chrome instead”). Until that override, Figma wins.
226
+ #### Phase 1 — Early visual gate (any UI change)
233
227
 
234
- **Related skills:** `site-workflows-figma-design-snapshot` / `site-workflows-apply-design-snapshot` for token sync; Figma MCP `get_design_context` for node-level implementation.
228
+ 1. Push the feature branch and open a **draft PR** so Vercel builds a preview.
229
+ 2. Capture/share **mobile (~390)** and **laptop (~1280)** screenshots (or open the preview for Nick).
230
+ 3. Paste the preview URL and what to look at.
231
+ 4. **Stop** and wait for Nick’s visual review / feedback. Apply feedback and repeat Phase 1 as needed.
232
+
233
+ #### Phase 2 — Full visual gate (after Nick is happy **and** the change is visual)
234
+
235
+ Re-check the same Vercel preview at least at:
236
+
237
+ | Width | Approx |
238
+ |-------|--------|
239
+ | Mobile | ~390 |
240
+ | Tablet | ~768 |
241
+ | Laptop | ~1280 |
242
+ | **Oversize / wide desktop** | **~1920+** |
243
+
244
+ Flag layout blowouts, overflow, sparse/stretched heroes, broken grids, and type that does not scale. Attach screenshots to chat/PR, then proceed to **multi-lens code review**.
245
+
246
+ Non-UI changes skip visual phases and go to code review.
247
+
248
+ **Related skills:** `site-workflows-figma-design-snapshot` / `site-workflows-apply-design-snapshot`; Figma MCP `get_design_context`.
249
+
250
+ ### Cross-project handoffs
251
+
252
+ When placement says **core** (or the site is blocked on package behaviour): emit a **Core request** per [`cross-project-handoff.md`](../../references/agent-session/cross-project-handoff.md), switch to core-first, and **park** the site until npm. Do not patch `@se-studio/*` in the customer repo. When core publishes, emit a **Site request** listing customers to bump.
253
+
254
+ ### Code review (replaces Bugbot)
255
+
256
+ Before asking to merge to `dev` / `develop`:
257
+
258
+ - **Core:** follow root [`CODE_REVIEW_PROMPT.md`](../../../../CODE_REVIEW_PROMPT.md)
259
+ - **Customer:** follow [`customer-code-review.md`](../../references/agent-session/customer-code-review.md) (copied into the site as `CODE_REVIEW.md`)
260
+
261
+ Lenses: architecture/placement, Next/React/Vercel, performance/size, docs consistency, general quality. Findings: **BLOCKER** / **NIT**. No Bugbot; no `nick-go` label — Nick approves merges to integration branches **in chat**.
262
+
263
+ ### Process feedback
264
+
265
+ See [`process-feedback.md`](../../references/agent-session/process-feedback.md). Site notes live in `docs/AGENT_PROCESS_NOTES.md`. **“promote process note”** folds them into core templates.
235
266
 
236
267
  ### Blocked on npm
237
268
 
@@ -254,10 +285,12 @@ Minimum per repo type (see registry `validate` for full command):
254
285
 
255
286
  Agents may push to:
256
287
 
257
- - `dev` / `develop` (via feature branch merge or direct if user prefers)
288
+ - `dev` / `develop` (via feature branch merge or direct **only when Nick approves in chat**)
258
289
  - `feature/*` branches
259
290
  - Customer production (`main`, HSD `production`) **only** after [`production-merge.md`](../../references/agent-session/production-merge.md): human **asked** in this conversation, agent **restated** the exact merge (site, branches, publishes production), human **confirmed** with a second yes. cms-edit host diffs also need [`cms-edit-prod-merge.md`](../../references/agent-session/cms-edit-prod-merge.md).
260
291
 
292
+ Do **not** wait for or require a `nick-go` GitHub label.
293
+
261
294
  Agents must **never** push **se-core-product** `main`. Agents must **never** ship from a registry `productionPath` (e.g. HSD `~/source/customers/hopskipdrive/production-hsd-website`). Opening a production PR is not a merge.
262
295
 
263
296
  **Preferred:** open a **draft PR** targeting the integration branch (this is how cloud + other laptops see the work):
@@ -266,6 +299,8 @@ Agents must **never** push **se-core-product** `main`. Agents must **never** shi
266
299
  gh pr create --base <integration-branch> --head <branch> --draft --title "<feature>: <summary>"
267
300
  ```
268
301
 
302
+ Before asking to merge the draft: complete visual gates (if UI) and multi-lens code review.
303
+
269
304
  If `gh` is unavailable or user prefers direct push, push `feature/*` and note the remote URL in handoff.
270
305
 
271
306
  ---
@@ -349,5 +384,6 @@ Agent must load this skill, run placement checklist, create a **local** worktree
349
384
  | `pedestal` | `develop` | `main` | customer monorepo |
350
385
  | `hsd` | `develop` (`develop-hsd-website`) | `production` (`production-hsd-website`) | customer |
351
386
  | `highlander` | `develop` | `main` | customer |
387
+ | `eagle` | `main` (until `develop` exists) | `main` | customer |
352
388
 
353
389
  Full paths (`path`, `worktreesRoot`, `productionPath`), MCP keys: `projects.registry.json`.
@@ -103,7 +103,21 @@ Write `CLAUDE.md` at the project root:
103
103
 
104
104
  Write `AGENTS.md` at the project root. Fill in the user's email address (from memory if known, otherwise ask) and today's date.
105
105
 
106
- Include the **agent session workflow block** from [`packages/skills/references/agent-session/customer-agents-block.md`](../../references/agent-session/customer-agents-block.md) (branch policy, placement, parallel features, handoff).
106
+ **Paste the full agent session workflow block** from [`packages/skills/references/agent-session/customer-agents-block.md`](../../references/agent-session/customer-agents-block.md) (branch policy, chat-gated develop merges, placement, Core request handoffs, UI visual gates, code review, process feedback, production handoff). Do not invent a shorter substitute that omits visual gates or review.
107
+
108
+ Also copy:
109
+
110
+ | Source | Destination |
111
+ |--------|-------------|
112
+ | [`customer-architecture.mdc`](../../references/agent-session/customer-architecture.mdc) | `.cursor/rules/architecture.mdc` |
113
+ | [`customer-code-review.md`](../../references/agent-session/customer-code-review.md) | `CODE_REVIEW.md` (repo root) |
114
+ | Starter notes | `docs/AGENT_PROCESS_NOTES.md` (see [`process-feedback.md`](../../references/agent-session/process-feedback.md)) |
115
+
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`.
119
+
120
+ Skeleton:
107
121
 
108
122
  ```markdown
109
123
  <!-- BEGIN:nextjs-agent-rules -->
@@ -132,33 +146,7 @@ The user's email address is [USER_EMAIL].
132
146
  # currentDate
133
147
  Today's date is [CURRENT_DATE].
134
148
 
135
- ## Agent session workflow
136
-
137
- **Load skill `site-workflows-agent-session` at the start of every coding session.**
138
-
139
- Default mode for this repo: **site-first**.
140
-
141
- ### Branch policy
142
-
143
- - Agents may commit and push **`develop`** and **`feature/*`**.
144
- - Customer production only after human **ask + confirm** (`production-merge.md`). Never se-core-product `main`.
145
- - Prefer **draft PRs** to `develop` over direct pushes when `gh` is available.
146
-
147
- ### Core vs customer placement
148
-
149
- Before non-trivial code, run the placement checklist (skill `site-workflows-agent-session`). If the checklist says **core**, stop — do not patch `@se-studio` behaviour in this repo.
150
-
151
- ### Core release order
152
-
153
- When work depends on a new `@se-studio/*` npm release: release from `se-core-product` first, confirm npm, then `pnpm update @se-studio/<package>@<version> -r` here, then push `develop`. Never hand-edit dependency versions.
154
-
155
- ### Parallel features
156
-
157
- One feature = one `feature/<scope>/<slug>` branch. **Local git worktree** for feature work (registry `worktreesRoot`/`<feature-slug>`). Cloud: draft PR. CMS: `--session <feature-slug>`. Do not write `work/active` yaml in se-core-product for this customer.
158
-
159
- ### Production handoff
160
-
161
- Agents stop at handoff unless the human asks to merge to production **and** confirms (`production-merge.md`).
149
+ <!-- paste customer-agents-block.md here -->
162
150
 
163
151
  ## CMS editing (cms-edit)
164
152
 
@@ -179,6 +167,7 @@ Read `.cursorrules` and update the **Project Overview** section at the top:
179
167
  - Replace the previous project name with the new customer/project name
180
168
  - Update the "Key technologies" list if anything changed
181
169
  - Remove any project-specific notes about the previous customer
170
+ - Ensure code-review instructions point to `CODE_REVIEW.md` (not Bugbot)
182
171
 
183
172
  Do not change the Code Style, Component Architecture, or other generic sections — those apply to all SE Studio projects.
184
173