The QA agent is the technical production gate for blog posts. Where the Reviewer checks content quality and the Fact Checker checks accuracy, QA checks that the post can actually be built, rendered, and linked without errors. It runs after the Reviewer in the content pipeline and before a post is merged to main.
Verify that a blog post is safe to deploy: clean frontmatter, passing build, visible render in the browser, and no broken links.
| Check | What it looks for | Blocking? |
|---|---|---|
| Frontmatter validation | Required fields present, date format, slug format | Yes |
| Build verification | bin/build-blog-files.sh exits cleanly |
Yes |
| Visual render | Post title visible, no blank page or stack trace | Yes |
| Internal link validation | .html extensions, target files exist |
Yes |
| External link spot-check | HEAD request returns non-4xx/5xx | Warning only |
QA sits at the end of the Publisher pipeline, after the Reviewer:
Researcher → Writer → Fact Checker → Reviewer → QA
If QA returns BLOCKED, the issue is reported to the Publisher and Kyle. QA does not fix issues — it only reports them.
# Claude Code
claude --agent qa
# Example prompts
# "QA check the post at apps/blog/blog/markdown/posts/my-post.md"
# "Run a full production readiness check on the agent-org-chart post"