Skip to content

Commit a1b5773

Browse files
committed
post review skill
1 parent bd66525 commit a1b5773

File tree

1 file changed

+115
-0
lines changed

1 file changed

+115
-0
lines changed
Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
---
2+
name: review-blog-post
3+
description: >-
4+
Review blog posts for the FuryStack site. Use when the user asks to review a
5+
blog post, check tagging, validate frontmatter, or verify post conventions.
6+
Also use when a branch contains new or modified posts and the user asks for a
7+
review.
8+
---
9+
10+
# Reviewing Blog Posts for FuryStack
11+
12+
When reviewing a blog post, check each of the following areas and report issues grouped by severity.
13+
14+
## 1. Frontmatter validation
15+
16+
Posts live in `src/content/posts/` as Markdown files named `{NNN}-{slug}.md`.
17+
18+
```yaml
19+
---
20+
title: 'Post Title'
21+
author: [gallayl]
22+
tags: ['PrimaryCategory', 'thematic-tag', 'package-tag']
23+
date: '2026-03-12T12:00:00.000Z'
24+
draft: false
25+
image: img/{NNN}-{short-slug}.jpg
26+
excerpt: One or two sentences shown on cards and in RSS.
27+
---
28+
```
29+
30+
Check:
31+
32+
- All required fields present: `title`, `author`, `tags`, `date`, `draft`, `excerpt`.
33+
- `date` is a valid ISO 8601 string.
34+
- `excerpt` is concise (1-2 sentences) — it appears on post cards and in the RSS feed.
35+
- `image` path (if present) points to an existing file in `src/content/posts/img/`.
36+
- File numbering is sequential (check surrounding files for gaps or collisions).
37+
38+
## 2. Tagging review
39+
40+
This is the most important part of the review. Tags drive post card display, related-post discovery, and package page links.
41+
42+
### Tag structure
43+
44+
Tags are ordered in three tiers:
45+
46+
1. **Category tag** (first in the array) — displayed on post cards and the post header.
47+
2. **Thematic tags** — cross-cutting topics that drive related-post discovery.
48+
3. **Package tags**`@furystack/*` package short names linking from the packages page.
49+
50+
### Category tags (exactly one, must be first)
51+
52+
| Tag | Use when the post... |
53+
| ----------------- | --------------------------------------------------------------- |
54+
| `Getting Started` | is a tutorial teaching how to use a feature |
55+
| `Announcement` | is news, an introduction, or a site/project update |
56+
| `Architecture` | covers design decisions, refactoring, or internals |
57+
| `Frontend` | is about the Shades UI library, components, routing, or theming |
58+
59+
### Thematic tags (at least one, all that apply)
60+
61+
| Tag | Use when the post... |
62+
| ---------------------- | ------------------------------------------------------ |
63+
| `tutorial` | walks through steps to achieve something |
64+
| `refactoring` | describes code or API refactoring |
65+
| `breaking-changes` | covers breaking API changes |
66+
| `dependency-injection` | discusses DI / IoC patterns |
67+
| `data-storage` | is about stores, repositories, or the data layer |
68+
| `rest-api` | covers REST API design, implementation, or consumption |
69+
| `ui-components` | is about UI components, theming, or layout |
70+
| `showcase` | relates to the Shades Showcase App |
71+
| `routing` | covers client-side routing |
72+
| `migration` | is a migration story or upgrade guide |
73+
| `site` | is about this blog or the FuryStack website itself |
74+
| `validation` | covers data validation or schema enforcement |
75+
76+
### Package tags (for each relevant `@furystack/*` package)
77+
78+
Use the npm short name (e.g. `inject`, `shades`, `rest`, `core`, `repository`).
79+
Only tag packages that are a **primary focus** of the post.
80+
81+
### Tag checklist
82+
83+
- [ ] Exactly one category tag, placed first
84+
- [ ] At least one thematic tag
85+
- [ ] Package tags for primary packages discussed (if any)
86+
- [ ] All tags have entries in `src/data/tags.yaml` — if not, flag as missing
87+
- [ ] Tag order is: category, then thematic, then package
88+
89+
If a new thematic tag is warranted, suggest it along with a description for `src/data/tags.yaml`.
90+
91+
## 3. Content review
92+
93+
- `##` should be the top heading level (the `title` field renders as `<h1>`).
94+
- Links to other posts use relative paths: `/posts/{slug}/`.
95+
- Code examples have language tags on fenced blocks.
96+
- No broken links to GitHub or internal pages.
97+
- Tone matches existing posts: informal, direct, first person, occasional humor.
98+
99+
## 4. Review output format
100+
101+
```
102+
## Tagging
103+
- ...issues or suggestions...
104+
105+
## Frontmatter
106+
- ...issues or suggestions...
107+
108+
## Content
109+
- ...issues or suggestions...
110+
111+
## Summary
112+
[One-line verdict: ready to publish / needs changes]
113+
```
114+
115+
Omit sections with no issues. Always include the Summary.

0 commit comments

Comments
 (0)