Ask a coding agent for a research report and you usually get fluent prose first and evidence later β if at all. A single forum post becomes "research shows." A number from 2023 is presented as the current state. Twenty sources are listed at the end, and you still cannot tell what the author actually believes.
The failure is structural, not stylistic: the writing started before the question was defined and before the sources were tiered. So I wrote the workflow down as a skill, and the skill's first claim is blunt: the quality floor of research is set by its sources, not its prose.
The workflow starts with one sentence stating what the report must answer, plus at most three sub-questions. Starting before the question is clear guarantees the research will sprawl β the agent collects whatever it finds first and the report's shape is decided by search order instead of by the question.
Sources are tiered before searching, so you don't believe whatever you find first:
That last line is a hard rule in the skill: no tertiary source supports a core conclusion. A forum thread can point a direction, never serve as evidence.
Key conclusions need two or more independent sources. Two sources quoting the same origin don't count as independent β that is the trap that makes a single press release look like a consensus. If no second source exists, the conclusion is downgraded to a "single-source claim" and marked as such, instead of being quietly upgraded by confident wording.
Related rules:
Only after those three steps does writing start, and the structure is fixed:
The skill also insists on ordering inside the author's head: state "what you don't know" before "what you know" β honest uncertainty beats pretty certainty. And mark speculation as speculation: use "may", "likely", "unverified" β never dress speculation up with "clearly" or "it is well known".
The report outline template from the skill:
**Core conclusions** (3β5 lines): β¦
## 1. Sub-question one
- Conclusion: β¦
- Evidence: β¦ (source: primary/secondary, as of β¦)
- Evidence: β¦ (second independent source)
## 2. Sub-question two
β¦
## Uncertainty statement
- Not found: β¦
- Single-source claims: β¦ (one source only, pending verification)
- Invalidation conditions: if β¦ changes, conclusion X in this report needs reassessment.
The skill lists its own failure modes explicitly:
That last one is why the uncertainty statement is a required closing section rather than a footnote. A report whose unknowns are explicit can be trusted where it does claim something; a report that hides them cannot be trusted anywhere.
This is one of five free, MIT-licensed skills in a small pack I maintain β the others cover commit messages, code review, meeting minutes, and technical proofreading. Each one is a single SKILL.md file: copy the folder into your agent's skills directory and it applies the workflow without being re-explained every session.
Repo: https://github.com/alapha888/agent-skills-en β the research skill is under skills/deep-research-framework/, including the full workflow and anti-pattern list.
If your work has house rules of its own β sources you always trust or never cite β fork the file and add them to the tiering step. The structure is the stable part; the source list is yours.