Skip to content

Commit 210ddf4

Browse files
docs(seo): update workflow and template with description rules
Update SEO article workflow documentation with new verification steps and blog-draft template with frontmatter checklist emphasizing description field best practices. Co-Authored-By: Hagicode <noreply@hagicode.com> Signed-off-by: newbe36524 <newbe36524@qq.com>
1 parent d912eb9 commit 210ddf4

2 files changed

Lines changed: 20 additions & 11 deletions

File tree

SEO_ARTICLE_WORKFLOW.md

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,7 @@ Hermes generates an outline from the research note.
165165
The outline must include:
166166

167167
- 3 title candidates
168-
- 2 meta description candidates
168+
- 2 meta description candidates, with one marked as the preferred top-level `description`
169169
- H2 and H3 structure
170170
- FAQ suggestions
171171
- internal link placements
@@ -187,13 +187,21 @@ Hermes generates the article draft into `seo/drafts/` using the approved outline
187187
Draft requirements:
188188

189189
- include frontmatter
190+
- set a publishable top-level `description`
190191
- use only approved facts
191192
- use repository-aligned product naming
192193
- include internal links from the brief where appropriate
193194
- use concrete commands and file paths when relevant
194195
- avoid keyword stuffing
195196
- avoid generic AI filler language
196197

198+
Description rules:
199+
200+
- The top-level `description` field is the only publishable source of truth.
201+
- Manual edits to `description` take priority over generated suggestions.
202+
- If a draft starts from a generated lead paragraph, rewrite it before publication when the wording is generic, repetitive, or too close to the title.
203+
- Do not move the description into `seo.description` or any other nested field.
204+
197205
The draft stays out of `src/content/docs/blog/` until it passes review.
198206

199207
### Stage 5: Self-review
@@ -217,19 +225,14 @@ Run repository checks before approval.
217225
Current available verification commands:
218226

219227
```bash
228+
npm run sync:blog-seo-descriptions
229+
npm run sync:blog-seo-descriptions:write
230+
npm run verify:blog-seo
220231
npm run verify:blog
221232
npm run build:verify-blog
222233
```
223234

224-
Current repo checks validate blog structure and rendering, but they do not yet validate SEO workflow metadata. Add more checks over time.
225-
226-
Future recommended checks:
227-
228-
- `verify:seo-frontmatter`
229-
- `verify:seo-source-traceability`
230-
- `verify:seo-internal-links`
231-
- `verify:seo-metadata-length`
232-
- `verify:seo-duplicate-topics`
235+
Current repo checks validate blog structure, rendering, and SEO description quality. Publication is blocked when `description` is missing, empty after normalization, over the hard limit, or effectively duplicates the title.
233236

234237
### Stage 7: Human review
235238

templates/seo/blog-draft.template.mdx

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ tags:
55
- Example Tag
66
- Example Topic
77
draft: true
8-
description: Example meta description that clearly states the article value.
8+
description: Example publishable meta description that explains the article value without repeating the title verbatim.
99
seo:
1010
primaryKeyword: Example primary keyword
1111
secondaryKeywords:
@@ -37,3 +37,9 @@ Add only if it helps satisfy the search intent.
3737
## Next Step
3838

3939
Add a useful CTA that matches the brief.
40+
41+
## Frontmatter Checklist
42+
43+
- Keep `description` at the top level because it is the published metadata source.
44+
- Prefer a manually reviewed description over a raw generated sentence before publication.
45+
- Run `npm run verify:blog` before moving the draft into `src/content/docs/blog/`.

0 commit comments

Comments
 (0)