@se-studio/skills 1.3.1 → 1.3.4

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,23 @@
1
1
  # @se-studio/skills
2
2
 
3
+ ## 1.3.4
4
+
5
+ ### Patch Changes
6
+
7
+ - **cms-seo-audit:** Document sitemap+unindexed crawl, all-page `.md` requirement, and expected listing-hub noise.
8
+
9
+ ## 1.3.3
10
+
11
+ ### Patch Changes
12
+
13
+ - Upstream CMS SEO tooling from pedestal-sites: JSON-LD `@context` fix, new `@se-studio/cms-seo` package, production HTML audit in site-check, and `cms-seo-audit` agent skill.
14
+
15
+ ## 1.3.2
16
+
17
+ ### Patch Changes
18
+
19
+ - Add `cms-seo-audit` skill documenting the full CMS SEO workflow (audit CSV, apply, bulk publish, production HTML audit). Cross-link from `screaming-frog-audit` and `contentful-cms-schema-org`.
20
+
3
21
  ## 1.3.1
4
22
 
5
23
  ### Patch Changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@se-studio/skills",
3
- "version": "1.3.1",
3
+ "version": "1.3.4",
4
4
  "description": "SE Studio agent skills for marketing site development with Contentful CMS",
5
5
  "repository": {
6
6
  "type": "git",
@@ -0,0 +1,178 @@
1
+ ---
2
+ name: cms-seo-audit
3
+ description: "Run the full marketing-site CMS SEO workflow: audit CSV from Contentful, apply schema/meta fixes, bulk publish, revalidate, and production HTML audit via @se-studio/cms-seo and @se-studio/site-check."
4
+ ---
5
+
6
+ # CMS SEO audit, apply, publish, and production verification
7
+
8
+ Use when improving SEO across a Contentful-backed SE marketing site: meta descriptions, schema.org linking, featured images, bulk publish after CMS edits, and live production HTML checks.
9
+
10
+ **Packages:** `@se-studio/cms-seo` (CMS audit/apply/publish), `@se-studio/site-check/production-audit` (production HTML audit). Screaming Frog: **screaming-frog-audit** skill.
11
+
12
+ ---
13
+
14
+ ## Prerequisites
15
+
16
+ | Item | Notes |
17
+ |------|-------|
18
+ | `.env.local` | `CONTENTFUL_SPACE_ID`, `CONTENTFUL_MANAGEMENT_TOKEN`, `CONTENTFUL_ENVIRONMENT_NAME` (usually `master`) |
19
+ | Site config | Per-app `scripts/seo-audit.ts` with `SiteSeoConfig` (descriptions, keywords, schema IDs, path bases) |
20
+ | Vercel | `VERCEL_PROTECTION_BYPASS_TOKEN` or `VERCEL_AUTOMATION_BYPASS_SECRET` for preview/production fetches |
21
+ | Revalidate | After publish, trigger site revalidation (Vercel deploy hook or `revalidate` API) before production audit |
22
+
23
+ ---
24
+
25
+ ## Phase 1: Generate audit CSV (dry run)
26
+
27
+ From the app directory (`apps/pedestal-website` or `apps/headwater-website`):
28
+
29
+ ```bash
30
+ pnpm cms:seo-audit
31
+ ```
32
+
33
+ Writes `docs/seo/<site>-seo-schema-audit.csv` with:
34
+
35
+ - Meta description length and recommended copy
36
+ - Current vs recommended schema links
37
+ - Review status (`Approved` / `Revise` / `Skip`) and flags
38
+
39
+ Review the CSV. Approve rows you want applied (or adjust `SiteSeoConfig` and re-run).
40
+
41
+ Optional flags:
42
+
43
+ ```bash
44
+ pnpm cms:seo-audit --sample-articles # hub pages + 5 articles per type only
45
+ pnpm cms:featured-images # featured-image backfill report only
46
+ ```
47
+
48
+ ---
49
+
50
+ ## Phase 2: Apply CMS fixes
51
+
52
+ ```bash
53
+ pnpm cms:seo-audit:apply
54
+ # or featured images only:
55
+ pnpm cms:featured-images:apply
56
+ ```
57
+
58
+ **What apply does:**
59
+
60
+ - Updates approved meta descriptions on pages, articles, tags, persons, indexes
61
+ - Links canonical schema entries (Organization + WebSite on templates; WebPage on pages; CollectionPage on tags/indexes; ProfilePage on persons)
62
+ - Creates or updates schema markup entries when templates need Org/WebSite/CollectionPage markup
63
+ - Backfills `featuredImage` from hero visuals or site logo when `--featured-images` is set
64
+
65
+ Always dry-run first. CMS changes are space-wide (master environment).
66
+
67
+ ---
68
+
69
+ ## Phase 3: Bulk publish (phased)
70
+
71
+ After apply, entries are drafts until published. Use the bulk publish script (per-app `scripts/bulk-action-publish.ts` or site-common wrapper) in dependency order:
72
+
73
+ ```bash
74
+ pnpm cms:bulk-publish assets
75
+ pnpm cms:bulk-publish leaf
76
+ pnpm cms:bulk-publish composable
77
+ pnpm cms:bulk-publish chrome
78
+ pnpm cms:bulk-publish taxonomy
79
+ pnpm cms:bulk-publish article
80
+ pnpm cms:bulk-publish page
81
+ ```
82
+
83
+ Phases match Contentful link dependencies (assets → leaf types → components → chrome → taxonomy → articles → pages). Retry failed phases after fixing blocking entries.
84
+
85
+ ---
86
+
87
+ ## Phase 4: Revalidate preview / production
88
+
89
+ Trigger revalidation so Next.js serves fresh CMS content:
90
+
91
+ - Vercel production deploy, or
92
+ - Site revalidate API / deploy hook
93
+
94
+ Smoke-test with header nav: Pedestal `/about/`, Headwater `/`.
95
+
96
+ ---
97
+
98
+ ## Phase 5: Production HTML audit
99
+
100
+ ```bash
101
+ pnpm seo:audit:production
102
+ ```
103
+
104
+ Uses `@se-studio/site-check/production-audit` (`runProductionSeoAudit`). Crawls **sitemap.xml + sitemap-unindexed.xml**, checks each URL for:
105
+
106
+ - Title, meta description, H1, thin content
107
+ - Canonical, noindex, JSON-LD validity and schema types
108
+ - Markdown export: every sitemap page URL must return 200 for its `.md` mirror (`/download/` and static assets excluded)
109
+ - `markdown-index.txt` cross-check (supplementary — URLs in sitemap but not in the index)
110
+
111
+ High `markdown_missing` on category/listing hubs is expected until those routes ship `.md` exports.
112
+
113
+ Outputs:
114
+
115
+ - `docs/seo/<site>-production-audit.csv`
116
+ - `docs/seo/<site>-production-audit.md` (with Rich Results spot-checks)
117
+
118
+ Exit code 1 when errors remain.
119
+
120
+ ---
121
+
122
+ ## Phase 6: Screaming Frog (optional, code-release gate)
123
+
124
+ After content is on preview and again after code ships:
125
+
126
+ ```bash
127
+ pnpm seo:screaming-frog:baseline # tag: content
128
+ pnpm seo:screaming-frog:crawl # after code release
129
+ pnpm seo:screaming-frog:compare
130
+ ```
131
+
132
+ See **screaming-frog-audit** skill for full crawl/compare workflow.
133
+
134
+ ---
135
+
136
+ ## SiteSeoConfig checklist
137
+
138
+ When adding a new site or major SEO pass, configure in `scripts/seo-audit.ts`:
139
+
140
+ | Field | Purpose |
141
+ |-------|---------|
142
+ | `siteKey` | Identifier for logging and logo slug fallback |
143
+ | `enableSearchAction` | `true` when site has `/search` (adds SearchAction to WebSite schema) |
144
+ | `pageDescriptions` / `pageKeywords` | Hub and static pages by slug |
145
+ | `indexDescriptions` / `indexKeywords` | Article type and custom type index pages |
146
+ | `schemaIds` | Reuse existing Organization, WebSite, WebPage, CollectionPage, ProfilePage entries |
147
+ | `articlesBase`, `tagsBase`, `peopleBase` | URL path prefixes for audit rows |
148
+
149
+ Import primitives from `@se-studio/cms-seo`:
150
+
151
+ ```ts
152
+ import {
153
+ createCmaClient,
154
+ parseSeoAuditArgv,
155
+ runSeoAudit,
156
+ runFeaturedImageBackfill,
157
+ type SiteSeoConfig,
158
+ } from '@se-studio/cms-seo';
159
+ ```
160
+
161
+ Production audit:
162
+
163
+ ```ts
164
+ import {
165
+ runProductionSeoAudit,
166
+ writeProductionSeoAuditOutputs,
167
+ buildRichResultsSpotChecks,
168
+ getProductionAuditExitCode,
169
+ } from '@se-studio/site-check/production-audit';
170
+ ```
171
+
172
+ ---
173
+
174
+ ## Related skills
175
+
176
+ - **contentful-cms-schema-org** — create Mustache JSON-LD templates (manual/cms-edit path)
177
+ - **contentful-cms-seo-descriptions** — per-page description writing via cms-edit
178
+ - **screaming-frog-audit** — crawl/compare regression checks after code release
@@ -72,4 +72,4 @@ Create JSON-LD templates using these standard Mustache variables:
72
72
 
73
73
  ## Related skills
74
74
 
75
- See the **core** skill for the full cms-edit workflow. See the **seo-descriptions** skill for meta description generation.
75
+ See the **core** skill for the full cms-edit workflow. See the **seo-descriptions** skill for meta description generation. For bulk audit/apply across all entries, schema linking, publish phases, and production verification, see **cms-seo-audit**.
@@ -94,6 +94,12 @@ Does **not** replace a full audit for new 404s — run `audit` on the post-relea
94
94
 
95
95
  ---
96
96
 
97
+ ## CMS SEO workflow
98
+
99
+ For Contentful meta/schema fixes before a crawl baseline, see **cms-seo-audit** (audit CSV → apply → bulk publish → `pnpm seo:audit:production`).
100
+
101
+ ---
102
+
97
103
  ## Troubleshooting
98
104
 
99
105
  | Problem | Fix |