@se-studio/skills 1.2.3 → 1.3.1
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/README.md +10 -1
- package/package.json +2 -1
- package/{skills → references}/contentful-cms-cms-guidelines/README.md +3 -3
- package/skills/contentful-cms-core/SKILL.md +7 -0
- package/skills/contentful-cms-generate-all-guidelines/SKILL.md +3 -3
- package/skills/contentful-cms-generate-cms-guidelines/SKILL.md +8 -8
- package/skills/contentful-cms-update-cms-guidelines/SKILL.md +1 -1
- package/skills/screaming-frog-audit/SKILL.md +104 -0
- package/skills/screaming-frog-audit/references/profiles.md +62 -0
- /package/{skills → references}/contentful-cms-cms-guidelines/colour-hint-prompt.md +0 -0
- /package/{skills → references}/contentful-cms-cms-guidelines/evaluation-prompt.md +0 -0
- /package/{skills → references}/contentful-cms-cms-guidelines/generate-component-guidelines.md +0 -0
- /package/{skills → references}/contentful-cms-cms-guidelines/generation-prompt.md +0 -0
- /package/{skills → references}/contentful-cms-cms-guidelines/html-component-authoring.md +0 -0
- /package/{skills → references}/contentful-cms-cms-guidelines/validation-prompt.md +0 -0
- /package/{skills → references}/contentful-cms-cms-guidelines/variant-loop.md +0 -0
- /package/{skills → references}/contentful-cms-cms-guidelines/variant-proposal-prompt.md +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# @se-studio/skills
|
|
2
2
|
|
|
3
|
+
## 1.3.1
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- Move CMS guidelines prompt pack from `skills/` to `references/` so skills-npm no longer reports `file_error` for `contentful-cms-cms-guidelines`. Update pipeline doc links in CMS guideline skills.
|
|
8
|
+
|
|
9
|
+
## 1.3.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- Add `screaming-frog-audit` agent skill for Screaming Frog crawl, native compare, and prioritized audit workflows.
|
|
14
|
+
|
|
3
15
|
## 1.2.3
|
|
4
16
|
|
|
5
17
|
### Patch Changes
|
package/README.md
CHANGED
|
@@ -21,6 +21,15 @@ npx skills add @se-studio/skills
|
|
|
21
21
|
|
|
22
22
|
Auto-sync on `pnpm install` (see [`packages/project-build/README.md`](../project-build/README.md) for the full `package.json` snippet). Use `pnpm skills:sync` manually to add or refresh third-party skill packs.
|
|
23
23
|
|
|
24
|
+
## Package layout
|
|
25
|
+
|
|
26
|
+
| Path | Purpose |
|
|
27
|
+
|------|---------|
|
|
28
|
+
| `skills/<name>/SKILL.md` | Agent skills — the only directories scanned by `skills-npm` and the skills CLI |
|
|
29
|
+
| `references/<name>/` | Support docs, prompt packs, and pipeline references (no `SKILL.md`) |
|
|
30
|
+
|
|
31
|
+
Do **not** place non-skill material under `skills/` — directories there without `SKILL.md` cause `file_error` warnings in consumer repos on `pnpm install`.
|
|
32
|
+
|
|
24
33
|
## Authoring skills
|
|
25
34
|
|
|
26
35
|
Canonical sources live in `packages/skills/skills/<skill-dir>/SKILL.md`. Do **not** edit `.agents/skills/` by hand.
|
|
@@ -56,7 +65,7 @@ Claude Code uses a naive frontmatter parser; violations cause descriptions to si
|
|
|
56
65
|
|
|
57
66
|
1. Edit `packages/skills/skills/<skill-dir>/SKILL.md`
|
|
58
67
|
2. Validate: `pnpm skills:validate`
|
|
59
|
-
3. Sync: `pnpm skills:sync`
|
|
68
|
+
3. Sync: `pnpm skills:sync` (copies `skills/` → `.agents/skills/` and `references/` → `.agents/references/`)
|
|
60
69
|
4. Add a changeset if publishing `@se-studio/skills`
|
|
61
70
|
|
|
62
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.
|
|
3
|
+
"version": "1.3.1",
|
|
4
4
|
"description": "SE Studio agent skills for marketing site development with Contentful CMS",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"files": [
|
|
12
12
|
"skills",
|
|
13
|
+
"references",
|
|
13
14
|
"*.md"
|
|
14
15
|
],
|
|
15
16
|
"keywords": [
|
|
@@ -18,7 +18,7 @@ Guidelines are short markdown fragments — one per CMS type — that describe h
|
|
|
18
18
|
pnpm --filter <appName> generate-showcase
|
|
19
19
|
```
|
|
20
20
|
This writes `src/generated/showcase-examples.json`.
|
|
21
|
-
3. **Curate showcase mocks** — run the [curate-showcase-mocks skill](
|
|
21
|
+
3. **Curate showcase mocks** — run the [curate-showcase-mocks skill](../../skills/se-marketing-sites-curate-showcase-mocks/SKILL.md) to select the best examples into `showcase-mocks.json`. This makes the showcase (and screenshots) show realistic content.
|
|
22
22
|
4. **Generate field list** — parse TypeScript types to produce structured field metadata:
|
|
23
23
|
```bash
|
|
24
24
|
# From the app directory:
|
|
@@ -27,7 +27,7 @@ Guidelines are short markdown fragments — one per CMS type — that describe h
|
|
|
27
27
|
# Or from repo root:
|
|
28
28
|
pnpm --filter <appName> exec cms-generate-field-list --app-dir .
|
|
29
29
|
```
|
|
30
|
-
5. **Generate guidelines** — run the [Generate CMS guidelines skill](
|
|
30
|
+
5. **Generate guidelines** — run the [Generate CMS guidelines skill](../../skills/contentful-cms-generate-cms-guidelines/SKILL.md).
|
|
31
31
|
|
|
32
32
|
Steps 1–3 only need to be repeated when content or component code changes significantly. Step 4 only needs to be repeated when TypeScript types change. Step 5 can be re-run at any time.
|
|
33
33
|
|
|
@@ -35,7 +35,7 @@ Steps 1–3 only need to be repeated when content or component code changes sign
|
|
|
35
35
|
|
|
36
36
|
## How to run guideline generation
|
|
37
37
|
|
|
38
|
-
Use the Cursor skill at [
|
|
38
|
+
Use the Cursor skill at [`../../skills/contentful-cms-generate-cms-guidelines/SKILL.md`](../../skills/contentful-cms-generate-cms-guidelines/SKILL.md). It supports three modes:
|
|
39
39
|
|
|
40
40
|
| Mode | When to use |
|
|
41
41
|
|---|---|
|
|
@@ -479,10 +479,16 @@ cms-edit types component
|
|
|
479
479
|
cms-edit types collection
|
|
480
480
|
|
|
481
481
|
# List entries with filters
|
|
482
|
+
cms-edit list --type article --sort date -n 10 # recent articles by publication date
|
|
482
483
|
cms-edit list --type article --has-download # articles with a download asset
|
|
483
484
|
cms-edit list --type article --slug my-article # article with a specific slug
|
|
484
485
|
cms-edit list --type article --has-field tags # articles where tags field is non-empty
|
|
485
486
|
|
|
487
|
+
# Find draft articles, then peek/open (both support drafts via CMA)
|
|
488
|
+
cms-edit sitemap --include article --status draft
|
|
489
|
+
cms-edit peek --article-slug resources/blog/my-post
|
|
490
|
+
# Only list --published / resolve --published are published-only
|
|
491
|
+
|
|
486
492
|
# Resolve any entry or asset by ID (no open session required)
|
|
487
493
|
cms-edit resolve --id 4xKj2abcDefGhijK # entry: shows type, title, slug, status
|
|
488
494
|
cms-edit resolve --id 7pQrStuvWxyzAbc # asset: shows title, fileName, URL
|
|
@@ -702,6 +708,7 @@ cms-edit sitemap # All pages, sorted by slug
|
|
|
702
708
|
cms-edit sitemap --prefix /blog # Filter by slug prefix
|
|
703
709
|
cms-edit sitemap --status draft # Draft pages only
|
|
704
710
|
cms-edit sitemap --sort updated # Most recently updated first
|
|
711
|
+
cms-edit sitemap --include article --sort date # Articles by publication date
|
|
705
712
|
cms-edit sitemap --tree # Tree rendering
|
|
706
713
|
cms-edit sitemap --include page,article # Include articles too
|
|
707
714
|
```
|
|
@@ -197,9 +197,9 @@ IMPORTANT: Screenshots have already been captured. Skip Phase A entirely.
|
|
|
197
197
|
Go straight to Phase B.
|
|
198
198
|
|
|
199
199
|
Files to read before starting:
|
|
200
|
-
-
|
|
201
|
-
-
|
|
202
|
-
-
|
|
200
|
+
- ../../references/contentful-cms-cms-guidelines/generation-prompt.md (Phase B instructions)
|
|
201
|
+
- ../../references/contentful-cms-cms-guidelines/colour-hint-prompt.md (Phase C instructions)
|
|
202
|
+
- ../../references/contentful-cms-cms-guidelines/validation-prompt.md (Phase D instructions)
|
|
203
203
|
- <APP_DIR>/src/project/components/<TypeName>.tsx (component source)
|
|
204
204
|
- <APP_DIR>/generated/cms-discovery/field-list.json
|
|
205
205
|
- <APP_DIR>/src/generated/cms-discovery/accepted-variants/{components|collections|externals}/<type-slug>.json
|
|
@@ -112,7 +112,7 @@ Example of a completed `## Fields & Schema` section:
|
|
|
112
112
|
### Step 3 — Generate component guidelines
|
|
113
113
|
|
|
114
114
|
For each component in discovery order, run the full per-component pipeline defined in
|
|
115
|
-
[`generate-component-guidelines.md`](
|
|
115
|
+
[`generate-component-guidelines.md`](../../references/contentful-cms-cms-guidelines/generate-component-guidelines.md).
|
|
116
116
|
|
|
117
117
|
To find unfinished components:
|
|
118
118
|
1. Fetch `<discoveryUrl>` and collect all `components[].name` values.
|
|
@@ -128,12 +128,12 @@ Run a Cursor subagent with this prompt, substituting `<COMPONENT_TYPE>` and `<AP
|
|
|
128
128
|
Run the full guideline generation pipeline for <COMPONENT_TYPE>.
|
|
129
129
|
Target app: <APP_DIR> (all paths relative to repo root / that directory).
|
|
130
130
|
|
|
131
|
-
Read these pipeline docs first (
|
|
132
|
-
-
|
|
133
|
-
-
|
|
134
|
-
-
|
|
135
|
-
-
|
|
136
|
-
-
|
|
131
|
+
Read these pipeline docs first (references/contentful-cms-cms-guidelines/):
|
|
132
|
+
- ../../references/contentful-cms-cms-guidelines/generate-component-guidelines.md (overall pipeline)
|
|
133
|
+
- ../../references/contentful-cms-cms-guidelines/variant-loop.md (Phase A: variant loop)
|
|
134
|
+
- ../../references/contentful-cms-cms-guidelines/generation-prompt.md (Phase B: generation)
|
|
135
|
+
- ../../references/contentful-cms-cms-guidelines/colour-hint-prompt.md (Phase C: colour hint)
|
|
136
|
+
- ../../references/contentful-cms-cms-guidelines/validation-prompt.md (Phase D: validation)
|
|
137
137
|
|
|
138
138
|
=== Phase A: Variant loop ===
|
|
139
139
|
Follow variant-loop.md.
|
|
@@ -282,7 +282,7 @@ These links:
|
|
|
282
282
|
|
|
283
283
|
## Pipeline reference
|
|
284
284
|
|
|
285
|
-
All per-component pipeline docs live in
|
|
285
|
+
All per-component pipeline docs live in [`references/contentful-cms-cms-guidelines/`](../../references/contentful-cms-cms-guidelines/):
|
|
286
286
|
|
|
287
287
|
| File | Purpose |
|
|
288
288
|
|---|---|
|
|
@@ -338,4 +338,4 @@ Follow [`../contentful-cms-regenerate-editor-pack/SKILL.md`](../contentful-cms-r
|
|
|
338
338
|
| Full-site bulk generation (Step 4 of `fresh`: Phases 0–5) | [`../contentful-cms-generate-all-guidelines/SKILL.md`](../contentful-cms-generate-all-guidelines/SKILL.md) |
|
|
339
339
|
| Single-type regeneration (after code change) | [`../contentful-cms-generate-cms-guidelines/SKILL.md`](../contentful-cms-generate-cms-guidelines/SKILL.md) (mode: single) |
|
|
340
340
|
| Regenerate hosted editor pack | [`../contentful-cms-regenerate-editor-pack/SKILL.md`](../contentful-cms-regenerate-editor-pack/SKILL.md) |
|
|
341
|
-
| Per-component pipeline detail | [`generate-component-guidelines.md`](
|
|
341
|
+
| Per-component pipeline detail | [`generate-component-guidelines.md`](../../references/contentful-cms-cms-guidelines/generate-component-guidelines.md) |
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: screaming-frog-audit
|
|
3
|
+
description: "Crawl a marketing site with Screaming Frog, run native compare mode between crawls, and generate prioritized audit/compare reports via @se-studio/site-check and seo/screaming-frog.json."
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Screaming Frog crawl, compare, and audit
|
|
7
|
+
|
|
8
|
+
Use when the user wants a Screaming Frog crawl, before/after deployment comparison, or SEO issue audit (404s, canonicals, structured data, content/metadata regressions).
|
|
9
|
+
|
|
10
|
+
**Requires:** Screaming Frog SEO Spider (licensed), **database storage mode** (default with `--save-crawl`).
|
|
11
|
+
|
|
12
|
+
**Config:** each app's `seo/screaming-frog.json` — no site-specific presets in core product.
|
|
13
|
+
|
|
14
|
+
---
|
|
15
|
+
|
|
16
|
+
## Deployment workflow (content push → code release)
|
|
17
|
+
|
|
18
|
+
Typical process: crawl after CMS/content is on preview, then crawl again after code ships, and confirm no significant content/metadata regressions.
|
|
19
|
+
|
|
20
|
+
### 1. Baseline after content push
|
|
21
|
+
|
|
22
|
+
From the app directory:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
pnpm seo:screaming-frog:baseline
|
|
26
|
+
# equivalent:
|
|
27
|
+
site-check-screaming-frog crawl --tag content
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
This crawls with the manifest profile, saves to SF's database, and records the database ID as baseline `content` in `docs/seo/sf-crawl-state.json`.
|
|
31
|
+
|
|
32
|
+
### 2. Crawl after code release
|
|
33
|
+
|
|
34
|
+
```bash
|
|
35
|
+
pnpm seo:screaming-frog:crawl
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
Records the new crawl as `lastCrawl` in `sf-crawl-state.json`.
|
|
39
|
+
|
|
40
|
+
### 3. Native compare (before vs after)
|
|
41
|
+
|
|
42
|
+
```bash
|
|
43
|
+
pnpm seo:screaming-frog:compare
|
|
44
|
+
# equivalent:
|
|
45
|
+
site-check-screaming-frog compare --baseline content
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
Uses Screaming Frog **`--crawl-comparison <current-db-id> <previous-db-id>`** (native Compare mode), exports Change Detection CSVs, and writes `docs/seo/<site>-screaming-frog-compare.md`.
|
|
49
|
+
|
|
50
|
+
Exit code 1 when title/meta/H1/word-count regressions are detected.
|
|
51
|
+
|
|
52
|
+
### 4. Optional full issue audit
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
pnpm seo:screaming-frog ~/spider/exports/<timestamp>
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Prioritized P0–P3 report from a single crawl export.
|
|
59
|
+
|
|
60
|
+
---
|
|
61
|
+
|
|
62
|
+
## Other commands
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
site-check-screaming-frog profiles # show crawl profiles from manifest
|
|
66
|
+
site-check-screaming-frog list-crawls # SF database IDs for this siteHost
|
|
67
|
+
site-check-screaming-frog compare --latest # two most recent crawls (same host)
|
|
68
|
+
site-check-screaming-frog compare <current-id> <previous-id> # explicit IDs
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
---
|
|
72
|
+
|
|
73
|
+
## What native compare checks
|
|
74
|
+
|
|
75
|
+
SF Change Detection exports (current vs previous on **matched URLs**):
|
|
76
|
+
|
|
77
|
+
- Page titles, meta descriptions, H1
|
|
78
|
+
- Word count (flags ≥50 words or ≥10% change)
|
|
79
|
+
- Indexability status
|
|
80
|
+
- Structured data type changes (via dedicated export tab)
|
|
81
|
+
|
|
82
|
+
Does **not** replace a full audit for new 404s — run `audit` on the post-release export for issue triage.
|
|
83
|
+
|
|
84
|
+
---
|
|
85
|
+
|
|
86
|
+
## Prerequisites
|
|
87
|
+
|
|
88
|
+
| Item | Notes |
|
|
89
|
+
|------|-------|
|
|
90
|
+
| SF GUI | Quit before CLI crawl/compare (shared DB lock) |
|
|
91
|
+
| Vercel preview | Bypass header in `.seospiderconfig`; `PREVIEW_SITE_URL` in `.env.local` |
|
|
92
|
+
| Same profile | Compare only meaningful when both crawls use the same URL/profile |
|
|
93
|
+
| Database storage | `--save-crawl` stores crawls; compare needs two DB IDs |
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Troubleshooting
|
|
98
|
+
|
|
99
|
+
| Problem | Fix |
|
|
100
|
+
|---------|-----|
|
|
101
|
+
| 0 matched URLs in compare | Different URLs/host between crawls — use same profile |
|
|
102
|
+
| No baseline | Run `crawl --tag content` first |
|
|
103
|
+
| GUI lock / FATAL | Quit Screaming Frog app |
|
|
104
|
+
| Wrong crawls picked | `list-crawls` then pass explicit database IDs |
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
# Screaming Frog site config
|
|
2
|
+
|
|
3
|
+
Each project owns **`seo/screaming-frog.json`** at the app root (or pass `--config` explicitly). The core product package has no built-in site presets.
|
|
4
|
+
|
|
5
|
+
## Required fields
|
|
6
|
+
|
|
7
|
+
| Field | Purpose |
|
|
8
|
+
|-------|---------|
|
|
9
|
+
| `site` | Short site key (for logging) |
|
|
10
|
+
| `siteLabel` | Display name in audit report |
|
|
11
|
+
| `siteHost` | Host substring for filtering redirect samples |
|
|
12
|
+
| `defaultSiteUrl` | Fallback URL when crawl overview is missing |
|
|
13
|
+
| `outputMdName` | Audit markdown filename (written under `docs/seo/`) |
|
|
14
|
+
| `profiles` | Named crawl targets with `configFile` paths |
|
|
15
|
+
|
|
16
|
+
## Optional fields
|
|
17
|
+
|
|
18
|
+
| Field | Purpose |
|
|
19
|
+
|-------|---------|
|
|
20
|
+
| `defaultProfile` | Profile used when `--profile` is omitted |
|
|
21
|
+
| `productionAuditDoc` | Cross-link in report to live HTML audit doc |
|
|
22
|
+
| `issueRuleOverrides` | Per-site P0–P3 rule tweaks (merged over base rules in `@se-studio/site-check`) |
|
|
23
|
+
|
|
24
|
+
## Example manifest
|
|
25
|
+
|
|
26
|
+
```json
|
|
27
|
+
{
|
|
28
|
+
"site": "brightline",
|
|
29
|
+
"siteLabel": "Brightline",
|
|
30
|
+
"siteHost": "hellobrightline.com",
|
|
31
|
+
"defaultSiteUrl": "https://www.hellobrightline.com/",
|
|
32
|
+
"outputMdName": "brightline-screaming-frog-audit.md",
|
|
33
|
+
"defaultProfile": "preview",
|
|
34
|
+
"issueRuleOverrides": [
|
|
35
|
+
{
|
|
36
|
+
"match": "directives_noindex",
|
|
37
|
+
"tier": "p2",
|
|
38
|
+
"category": "indexing",
|
|
39
|
+
"note": "Expected on Vercel preview."
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
"profiles": {
|
|
43
|
+
"production": {
|
|
44
|
+
"label": "Production",
|
|
45
|
+
"url": "https://www.hellobrightline.com/",
|
|
46
|
+
"configFile": "~/spider/bl production.seospiderconfig"
|
|
47
|
+
},
|
|
48
|
+
"preview": {
|
|
49
|
+
"label": "Vercel preview",
|
|
50
|
+
"urlEnv": "PREVIEW_SITE_URL",
|
|
51
|
+
"configFile": "~/spider/bl dev.seospiderconfig"
|
|
52
|
+
},
|
|
53
|
+
"localhost": {
|
|
54
|
+
"label": "Local dev",
|
|
55
|
+
"url": "http://localhost:3010/",
|
|
56
|
+
"configFile": "~/spider/bl localhost.seospiderconfig"
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
`.seospiderconfig` files live outside the repo (typically `~/spider/`). Preview configs should embed the Vercel bypass header.
|
|
File without changes
|
|
File without changes
|
/package/{skills → references}/contentful-cms-cms-guidelines/generate-component-guidelines.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|