---
name: blog-review-workflow
description: Iterative blog review using subagents — write, review, fix, re-review until quality threshold met.
version: 1.0.0
author: Hermes Agent
license: MIT
metadata:
  hermes:
    tags: [blog, review, subagent, quality, content-ops]
---

# Blog Review Workflow

Use this workflow when publishing a blog post that requires quality assurance. The pattern is: write → subagent review → fix → subagent re-review → micro-adjust → publish.

## When to Use
- Blog posts based on external data/evaluations (must verify factual accuracy)
- Posts where the user explicitly asks for quality review
- Any post where accuracy and fairness matter (comparisons, reviews, analyses)

## Workflow

### Step 1: Write Draft
Write the blog post, save locally, publish as draft via content-ops-agent API.

### Step 2: First Subagent Review
Delegate to a subagent with NO conversation context — it should only read the source data and the blog draft.

**Critical: The subagent must clone/read the original data source independently.** Do not pass the data through context — let the subagent verify facts against the ground truth.

Review dimensions:
1. **Factual accuracy** — data, rankings, conclusions match source?
2. **Analysis depth** — original insights vs just rephrasing?
3. **Logical coherence** — flow, no contradictions?
4. **Technical accuracy** — domain concepts correct?
5. **Readability** — accessible to target audience?
6. **Fairness** — balanced treatment of all subjects?
7. **Completeness** — important info not omitted?

Output format:
- Overall score (1-10)
- Per-dimension scores
- Specific issue list (with line numbers/quotes)
- Actionable fix suggestions

### Step 3: Fix Based on Review
Apply fixes. Common patterns:
- Factual errors → correct data, add caveats
- Depth issues → add original analysis frameworks (taxonomy, cost/perf, etc.)
- Fairness issues → equal treatment of all subjects (don't soften one while harshening another)
- Missing content → add overlooked but important findings

### Step 4: Second Subagent Review
Re-review with focus on:
- Are the N issues from round 1 fixed?
- Any NEW issues introduced?
- Overall quality improvement?

### Step 5: Micro-adjustments
Fix any remaining low-priority issues from round 2. Update the draft.

### Step 6: Confirm with User
Present the review results and ask if they want to publish or make further changes.

## Pitfalls

### sed for content insertion can duplicate
When using `sed` to insert content at a pattern match, be aware that if the pattern matches multiple times, the insertion will happen at each match. Use Python for complex content modifications instead:
```python
# Better approach for conditional insertion
marker = "### Target Section"
parts = content.split(marker)
# Process carefully, handle duplicates
```

### Subagent file access
The subagent needs terminal access to clone repos and use curl. Always include `terminal` and `file` in toolsets. If the blog uses an API, include `web` toolset.

### Community feedback as review signal
When reviewing blog posts that reference external content, the original source's comment section may be inaccessible (e.g., WeChat requires login). Instead, gather community feedback from:
- **GitHub API**: `curl https://api.github.com/repos/OWNER/REPO` → stars, forks, issues
- **mmx search**: `"topic" 评价 OR 反馈 OR 体验 OR 用过` across platforms
- **GitHub issues**: specific bug reports or feature requests that reveal user pain points
This data enriches the "公正性" and "完整性" review dimensions.

### Token security
Never hardcode the service token in the subagent task description. Instead, tell the subagent to use environment variables or read from a known location.

## Quality Thresholds
- **≥ 8.0**: Ready to publish
- **7.0-7.9**: Minor fixes needed
- **6.0-6.9**: Significant rework required
- **< 6.0**: Major rewrite needed

## Reference
This workflow was developed during a blog post evaluation of 6 AI models' iOS development capabilities. The first review scored 6.5/10 with 21 issues. After fixes, the second review scored 8.2/10 with only 3 low-priority remaining issues.
