# Blog Research

> Use when the user asks to check what a specific blogger/expert has written, find tutorial or how-to content, or research opinion/practitioner writing on a topic. Triggers on "check their blog", "find a tutorial for", "what do practitioners say", "blog research". Produces evidence records (URL + verbatim quote + author credibility note), never conclusions. Do NOT use for official company documentation (use official-source-research), news coverage (use news-research), or general web pages with no identifiable author (use web-research).

- Skill: `ali-demirbas/blog-research` (Agent Skill)
- Install (CLI): `npx skillmds@latest add ali-demirbas/blog-research`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ali-demirbas/blog-research/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Docs & Writing
- Author: ali-demirbas (https://skillmd.com/u/ali-demirbas)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/ali-demirbas/blog-research

---


# Blog Research

## Overview

Collects evidence from individual and organizational blogs: practitioner write-ups, tutorials, opinion pieces, an organization's own technical blog. Distinguishing job: blog content ranges from tier 2 (an org's official blog, on-claim-about-that-org) to tier 5 (anonymous content-farm posts) — author identity resolution is most of the work here.

**Layer rule:** produces evidence, not results. Synthesis and confidence status are the orchestrator's job.

## When to use

Direct use: "what does [named expert] say about X", "find a tutorial for Y". As a component: orchestrator dispatches this for implementation/opinion sub-questions where a practitioner's direct account matters more than official docs.

Don't use for: an organization's own official docs/announcements (→ official-source-research — same publisher, different tier by default), news coverage of an event (→ news-research), pages with no identifiable author or track record (→ web-research, capped at low tier there too).

## Workflow

1. **Resolve author identity first** — this decides everything downstream. Look for: a named author with a bio, a track record (cited elsewhere, known conference talks, GitHub presence), or organizational affiliation stated as the post's byline. Log what was found in `limitations` if identity is thin or absent — an unattributed post is not automatically discarded, but it caps at tier 4-5.
2. **Distinguish original from syndicated/aggregated.** Many blog platforms mirror or aggregate posts (dev.to cross-posts, Medium republishes, translated mirrors). If the passage attributes the content elsewhere or matches a known original almost verbatim, route to engine/origin-tracing.md before treating this post as the source.
3. **Search** via web-research's chain (WebSearch + WebFetch — this skill doesn't need a separate tool chain, the distinguishing work is the author/originality resolution, not the fetch mechanism). If nothing surfaces, run references/query-relaxation.md.
4. **Extract publish date** per the cascade in references/tooling.md — blog platforms are usually good about structured metadata (dev.to, Medium, Substack all expose `article:published_time`).
5. **Archive** per references/citation-rules.md — personal blogs and smaller platforms have real disappearance risk (platform shutdowns, domain expiry), archive proactively.
6. **An individual is one root:** `root_id: person:<canonical-handle>`. The same author's blog post, conference talk, and newsletter are one voice — quoting three of them is not three independent sources. For an org's official blog, use `org:<name>` instead (engine/origin-tracing.md).
7. **Assign tier** per references/source-tiers.md's blog table (2 = org's own official channel on a claim about that org; 3 = individual with demonstrated expertise; 4 = anonymous/unverified; 5 = content-farm pattern) and **purpose** — tutorials/how-tos are usually `implementation`, stated positions are `opinion`, factual claims about a product/event are `fact` only when backed by the author's own primary access (they built it, they tested it) rather than repeating something they read elsewhere.
8. **Write the evidence record** per engine/evidence-contract.md, `verification_status: pending`. Do not self-verify.

## Output

One evidence record per claim, appended to the run's `evidence.jsonl`.

## Common mistakes

| Mistake | Fix |
|---|---|
| Treating a syndicated repost as an independent source | Trace to the original per engine/origin-tracing.md before tiering |
| Assigning `fact` purpose to a tutorial author's untested claim | Purpose is `fact` only when the author has primary access to what they're claiming |
| Skipping author-identity resolution because the content "sounds authoritative" | Tone is not a credibility signal — check for a real byline, track record, affiliation |
| Not archiving because the blog "seems established" | Smaller platforms and personal domains disappear; archive regardless |

