@se-studio/skills 1.7.6 → 1.7.8

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.7.8
4
+
5
+ ### Patch Changes
6
+
7
+ - 62d1960: Document and ship the post-sync strip of AGENTS.md / CLAUDE.md inside skill directories so Cursor does not always-apply Vercel encyclopedias.
8
+
9
+ ## 1.7.7
10
+
11
+ ### Patch Changes
12
+
13
+ - Add `createSitemapXmlRouteHandler` so marketing sites serve `/sitemap.xml` as a force-dynamic Route Handler with CDN no-store (the se-website production pattern). Listing fetches stay tagged `sitemap` with no hourly `revalidate`.
14
+
3
15
  ## 1.7.6
4
16
 
5
17
  ### Patch Changes
package/README.md CHANGED
@@ -65,7 +65,7 @@ Claude Code uses a naive frontmatter parser; violations cause descriptions to si
65
65
 
66
66
  1. Edit `packages/skills/skills/<skill-dir>/SKILL.md`
67
67
  2. Validate: `pnpm skills:validate`
68
- 3. Sync: `pnpm skills:sync` (copies `skills/` → `.agents/skills/` and `references/` → `.agents/references/`)
68
+ 3. Sync: `pnpm skills:sync` (copies `skills/` → `.agents/skills/` and `references/` → `.agents/references/`, then strips `AGENTS.md` next to `SKILL.md`)
69
69
  4. Add a changeset if publishing `@se-studio/skills`
70
70
 
71
71
  ### cms-edit bundled skills (`@se-studio/contentful-cms`)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/skills",
3
- "version": "1.7.6",
3
+ "version": "1.7.8",
4
4
  "description": "SE Studio agent skills for marketing site development with Contentful CMS",
5
5
  "repository": {
6
6
  "type": "git",
@@ -2,6 +2,8 @@
2
2
 
3
3
  This site runs **Next.js 16.3**. Before writing Next.js code, read the relevant guide in `node_modules/next/dist/docs/` (in monorepos, resolve from the app that depends on `next`). Keep the managed `<!-- BEGIN:nextjs-agent-rules -->` block in `AGENTS.md`. Do **not** use `npx @next/codemod agents-md`, `.next-docs`, or `NEXT-AGENTS-MD-START` (Next 15 index: Pages Router, `middleware.ts`). Ignore `vercel-react-native-skills` if the vercel-labs pack installed it.
4
4
 
5
+ After `pnpm skills:sync`, strip `AGENTS.md` / `CLAUDE.md` that sit next to a skill `SKILL.md`. Cursor always-applies those filenames; Vercel packs must stay on-demand.
6
+
5
7
  ## Agent session workflow
6
8
 
7
9
  **Load skill `site-workflows-agent-session` at the start of every coding session.**
@@ -0,0 +1,32 @@
1
+ # Source from scripts/sync-skills.sh after installing skills.
2
+ # Cursor always-applies every AGENTS.md in the workspace. Skill packs must keep
3
+ # SKILL.md (and rules/) only — never an AGENTS.md / CLAUDE.md next to SKILL.md.
4
+
5
+ strip_skill_always_on_docs() {
6
+ node "${STRIP_SKILL_ALWAYS_ON_JS:-}" 2>/dev/null || python3 - <<'PY'
7
+ from pathlib import Path
8
+
9
+ cwd = Path('.')
10
+ roots = [cwd / '.agents' / 'skills', cwd / '.cursor' / 'skills', cwd / '.claude' / 'skills']
11
+ apps = cwd / 'apps'
12
+ if apps.is_dir():
13
+ for app in apps.iterdir():
14
+ if app.is_dir():
15
+ roots.append(app / '.cursor' / 'skills')
16
+ roots.append(app / '.agents' / 'skills')
17
+
18
+ removed = 0
19
+ for root in roots:
20
+ if not root.is_dir():
21
+ continue
22
+ for skill_md in root.rglob('SKILL.md'):
23
+ skill_dir = skill_md.parent
24
+ for name in ('AGENTS.md', 'CLAUDE.md'):
25
+ path = skill_dir / name
26
+ if path.is_file():
27
+ path.unlink()
28
+ print(f'Removed always-on {path}')
29
+ removed += 1
30
+ print(f'Stripped {removed} always-on skill doc(s).')
31
+ PY
32
+ }
@@ -188,17 +188,22 @@ The shared libraries now support this easily:
188
188
  - The `getSitemapEntries(...)` function returned by the marketing sitemap helper (when you configure `marketingSiteSitemap` in `createAppHelpers`) accepts an optional `redirectMap` in its options. When supplied, any entry whose URL is a redirect source is filtered out before the entries are returned to `buildSitemap`.
189
189
  - Standalone: `filterSitemapEntriesExcludingRedirects(entries, redirectMap)` (exported from `@se-studio/contentful-rest-api`) works on any `{ url: string }[]` list for custom flows.
190
190
 
191
- Recommended pattern (in `app/sitemap.ts` and the unindexed route):
191
+ Recommended pattern (in `app/sitemap.xml/route.ts` and the unindexed route — not metadata `sitemap.ts`):
192
192
 
193
193
  ```ts
194
- import { getRedirectMap, getSitemapEntries } from '@/lib/cms-server';
195
- import { buildSitemap } from '@se-studio/core-ui';
194
+ import { createSitemapXmlRouteHandler } from '@se-studio/core-ui';
195
+ import { redirects } from '@/generated/redirects';
196
+ import { getSitemapEntries } from '@/lib/cms-server';
197
+ import { baseUrl } from '@/lib/server-config';
196
198
 
197
- export default async function sitemap() {
198
- const redirectMap = await getRedirectMap({});
199
- const entries = await getSitemapEntries({ includeUnindexed: false, redirectMap });
200
- return buildSitemap([() => Promise.resolve(entries)], { baseUrl, ... });
201
- }
199
+ export const dynamic = 'force-dynamic';
200
+ export const revalidate = 0;
201
+
202
+ export const GET = createSitemapXmlRouteHandler({
203
+ getEntries: () => getSitemapEntries({ includeUnindexed: false, redirectMap: redirects }),
204
+ baseUrl,
205
+ trailingSlash: true,
206
+ });
202
207
  ```
203
208
 
204
209
  Pure `fromPath` vanity redirects were already absent from sitemaps (no backing content entry). This mainly helps when you redirect *away from* live CMS pages/articles.
@@ -140,6 +140,7 @@ Marketing sites run **Next.js 16.3**. Version-matched docs live in each app’s
140
140
  - **Do not** run `npx @next/codemod agents-md` or restore `NEXT-AGENTS-MD-START` / `.next-docs` — that index is Next 15 (Pages Router, `middleware.ts`, upgrade guides only through v15).
141
141
  - Cursor’s Vercel plugin **`nextjs`** skill is fine for App Router patterns; it is not a substitute for `node_modules/next/dist/docs/`.
142
142
  - After `npx skills add vercel-labs/agent-skills`, **delete `vercel-react-native-skills`** — these are web sites. Do not treat React Native skills as Next guidance.
143
+ - After any `skills add` / `skills:sync`, **delete `AGENTS.md` and `CLAUDE.md` that sit next to a `SKILL.md`**. Cursor always-applies those filenames. Keep `SKILL.md` and `rules/`. Core: `node scripts/strip-skill-always-on-docs.mjs`. Customer `scripts/sync-skills.sh` must call the same strip (see `packages/skills/references/agent-session/strip-skill-always-on.sh`).
143
144
 
144
145
  ---
145
146