Date: 2026-04-04 Author: Coordinator Status: 🟡 TS_DRAFT — Awaiting approval Parent HL: HL-TFW-24
Create canonical templates for the 4 research stage files (briefing, gather, extract, challenge) in .tfw/templates/research/. These templates give the Researcher role a concrete starting point for each stage, enforce Goal anchoring from HL §1, and guarantee consistent Checkpoint format for the filesystem state machine.
.tfw/templates/research/base.md Step 3 → reference templates instead of conventionsconventions.md §4 → replace inline format with templates reference.agent/workflows/tfw-research.md)| File | Action | Description |
|---|---|---|
.tfw/templates/research/briefing.md |
CREATE | Briefing template: Research Plan, Hypotheses, Scope, Guiding Questions, User Direction |
.tfw/templates/research/gather.md |
CREATE | Gather stage: “What do we NOT know?” — external + internal findings |
.tfw/templates/research/extract.md |
CREATE | Extract stage: “What do we NOT see?” — analysis, patterns, gaps |
.tfw/templates/research/challenge.md |
CREATE | Challenge stage: “What do we NOT expect?” — edge cases, stress tests |
.tfw/workflows/research/base.md |
MODIFY | Step 3: reference templates. Step 4: template ref for briefing. Step 5: template ref for stages |
.tfw/conventions.md |
MODIFY | §4: replace inline stage format with templates reference |
.agent/workflows/tfw-research.md |
MODIFY | Sync from base.md |
Budget: 4 new files, 3 modifications = 7 total. Limits: max 14 files, max 8 new. ✅ Within budget.
.tfw/templates/research/briefing.md# Briefing
> Parent: [HL-{PREFIX}-{N}](../../HL-{PREFIX}-{N}__{title}.md)
> Goal: {from HL §1 Vision — one sentence}
## Research Plan
{3-5 bullets per stage: what to investigate}
## Hypotheses (from HL §10)
| # | Hypothesis | HL Status |
|---|-----------|-----------|
| H1 | {text} | open |
## Scope Intent
- **In scope:** {what research covers}
- **Out of scope:** {what research does NOT cover}
## Guiding Questions
1. {≤3 questions for the user}
## User Direction
{Record user answers and steering decisions here during briefing discussion}
---
Stage complete: YES / NO
.tfw/templates/research/gather.md# Gather — "What do we NOT know?"
> Parent: [HL-{PREFIX}-{N}](../../HL-{PREFIX}-{N}__{title}.md)
> Goal: {from HL §1 Vision — one sentence}
## Findings
### {G1: source/topic title}
{content}
### {G2: source/topic title}
{content}
## Checkpoint
| Found | Remaining |
|-------|-----------|
| {key finding} | {gap, if any} |
**Sufficiency:**
- [ ] External source used?
- [ ] Briefing gap closed?
Stage complete: YES / NO
→ User decision: ___
.tfw/templates/research/extract.md# Extract — "What do we NOT see?"
> Parent: [HL-{PREFIX}-{N}](../../HL-{PREFIX}-{N}__{title}.md)
> Goal: {from HL §1 Vision — one sentence}
## Findings
### {E1: analysis title}
{content — patterns, comparisons, internal file analysis}
### {E2: analysis title}
{content}
## Checkpoint
| Found | Remaining |
|-------|-----------|
| {key finding} | {gap, if any} |
**Sufficiency:**
- [ ] External source used?
- [ ] Briefing gap closed?
Stage complete: YES / NO
→ User decision: ___
.tfw/templates/research/challenge.md# Challenge — "What do we NOT expect?"
> Parent: [HL-{PREFIX}-{N}](../../HL-{PREFIX}-{N}__{title}.md)
> Goal: {from HL §1 Vision — one sentence}
## Findings
### {C1: edge case / stress test title}
{content — what could go wrong, alternatives, counter-evidence}
### {C2: edge case / stress test title}
{content}
## Checkpoint
| Found | Remaining |
|-------|-----------|
| {key finding} | {gap, if any} |
**Sufficiency:**
- [ ] External source used?
- [ ] Briefing gap closed?
Stage complete: YES / NO
→ User decision: ___
base.md Steps 3, 4, and 5Step 3 — change:
Create `research/` subfolder in task directory. → See `conventions.md §4 (Research subfolder)` for file list and format.
To:
Create `research/` subfolder in task directory. Copy templates from `templates/research/`. Fill Goal from HL §1 Vision.
Step 4 — change:
Write Briefing to `research/briefing.md`:
To:
Write Briefing to `research/briefing.md` (use `templates/research/briefing.md`):
Step 5 — change:
Cover all three. Order flexible. Each stage writes to its file in `research/`. Each uses the OODA loop below.
To:
Cover all three. Order flexible. Each stage uses its template from `templates/research/` and writes to `research/`. Each uses the OODA loop below.
conventions.md §4Replace inline stage file format block with:
Stage file format: see `.tfw/templates/research/` (briefing.md, gather.md, extract.md, challenge.md).
cp .tfw/workflows/research/base.md .agent/workflows/tfw-research.md
.tfw/templates/research/Stage complete: YES / NObase.md Step 3 references templates/research/base.md Step 4 references templates/research/briefing.mdbase.md Step 5 references templates/research/ for stage filesconventions.md §4 references templates instead of inline format| Risk | Mitigation |
|---|---|
| Templates too rigid → agent can’t adapt to specific research | Templates are starting points, not contracts. Findings section is free-form |
| base.md word count exceeds 600 after Step 3 change | Change is same word count (~12 words → ~12 words). No budget impact |
| *TS — TFW-24 / Phase B: Research Stage Templates | 2026-04-04* |