Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
1eb35cb
docs: add user research workflow brainstorm and implementation plan
mattthomps1 Feb 11, 2026
f8b0961
feat: add user research workflow with 3 skills, 1 command, and 1 agent
mattthomps1 Feb 11, 2026
8ec45f4
docs: add sample research artifacts to test user research workflow
mattthomps1 Feb 12, 2026
c9e3a3e
Add brainstorm for user research integration into brainstorm and plan…
claude Feb 13, 2026
292daa7
refactor: review fixes — remove PII sample data, deduplicate playbook…
mattthomps1 Feb 13, 2026
990337f
docs: compound learnings from user research workflow integration
mattthomps1 Feb 13, 2026
2d91ddb
fix: handle inline transcripts and empty plans in research workflow
mattthomps1 Feb 14, 2026
8c78bab
docs: add solution doc for research workflow first-use failure
mattthomps1 Feb 14, 2026
5b5244d
fix: restructure research workflow routing to prevent phase selection…
mattthomps1 Feb 14, 2026
3b1d0e0
Co-Authored-By: Claude Opus 4.6 <[email protected]>
mattthomps1 Feb 14, 2026
c5e255f
chore: revert unnecessary bun.lock format change
mattthomps1 Feb 16, 2026
e0ea044
chore: removed test transcripts / artifacts
mattthomps1 Feb 16, 2026
a8eecc8
fix: resolve PR #194 review comments
mattthomps1 Feb 25, 2026
7501b5e
docs: update research workflow documentation for clarity and structure
mattthomps1 Feb 25, 2026
654401b
Merge branch 'EveryInc:main' into feat/user-research-workflow
mattthomps1 Feb 25, 2026
2bad08e
Merge upstream/main into feat/user-research-workflow
mattthomps1 Mar 17, 2026
a832ebf
fix: migrate research command to ce-research skill
mattthomps1 Mar 17, 2026
799fbca
refactor: update transcript handling instructions in ce-research and …
mattthomps1 Mar 18, 2026
b3afbc2
feat: transition user research artifacts to new directory structure a…
mattthomps1 Mar 18, 2026
675b61a
Merge upstream/main into feat/user-research-workflow
mattthomps1 Mar 18, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,9 @@
node_modules/
.codex/
todos/
.claude/settings.json
.worktrees

# Research data - transcripts contain raw interview data with PII
docs/user-research/transcripts/*
!docs/user-research/transcripts/.gitkeep
1 change: 0 additions & 1 deletion bun.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

342 changes: 342 additions & 0 deletions docs/brainstorms/2026-02-10-user-research-workflow-brainstorm.md

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -0,0 +1,184 @@
---
date: 2026-02-13
topic: user-research-workflow-integration
---

# User Research Integration into Brainstorm & Plan Workflows

## What We're Building

Wire user research artifacts (personas, interview insights, opportunities) into the brainstorm and plan workflows so that product decisions are grounded in user evidence rather than assumptions.

Today, `/workflows:research` produces structured artifacts in `docs/research/` (personas, interview snapshots, research plans) and the `user-research-analyst` agent knows how to search them — but nothing in brainstorm or plan actually calls it. The research workflow hands off to brainstorm, but brainstorm doesn't consume the output. This integration closes that gap.

## Why This Approach

We considered three scoping strategies:

1. **All at once** — wire basics + deeper integrations + plan + work in a single pass. Rejected: too broad, hard to validate incrementally.
2. **Brainstorm-only** — focus exclusively on brainstorm, defer plan. Rejected: the plan wiring is trivial and documented as a TODO already.
3. **Phased approach** (chosen) — Phase 1 wires the basics into both brainstorm and plan. Phase 2 layers in deeper brainstorm integrations. This lets us ship value quickly and validate each layer before adding the next.

## Key Decisions

- **Phased delivery**: Phase 1 (basic wiring) then Phase 2 (deeper brainstorm integrations)
- **Brainstorm + Plan first**: These are where research evidence has the highest leverage. Work workflow integration deferred.
- **Parallel execution**: `user-research-analyst` runs in parallel with existing agents — no serial bottleneck added
- **Graceful degradation**: When `docs/research/` is empty, the agent returns a note suggesting `/workflows:research` — no errors, no blocking

## Phase 1: Basic Wiring

### 1a. Wire `user-research-analyst` into Brainstorm Phase 1.1

**Current state:** Brainstorm Phase 1.1 runs only `repo-research-analyst`.

**Change:** Add `user-research-analyst` as a parallel agent in Phase 1.1. The brainstorm would run:

```
- Task repo-research-analyst("Understand existing patterns related to: <feature_description>")
- Task user-research-analyst("Surface research relevant to: <feature_description>")
```

**What this unlocks:** Before the collaborative dialogue begins, the brainstormer knows which personas are relevant, what opportunities exist, and what pain points users have expressed. The "understand the idea" conversation becomes evidence-informed.

**Output flow:** Present a brief summary of relevant research findings (personas, key insights, research gaps) before starting the collaborative dialogue in Phase 1.2. Even without the deeper Phase 2 integrations, this gives the user and the brainstorm process shared context from real user evidence.

**Files to modify:**
- `plugins/compound-engineering/commands/workflows/brainstorm.md` — Phase 1.1
- `plugins/compound-engineering/agents/research/user-research-analyst.md` — remove "to be wired in PR 2" note

### 1b. Wire `user-research-analyst` into Plan Step 1

**Current state:** Plan Step 1 runs `repo-research-analyst` + `learnings-researcher` in parallel.

**Change:** Add `user-research-analyst` as a third parallel agent:

```
- Task repo-research-analyst(feature_description)
- Task learnings-researcher(feature_description)
- Task user-research-analyst(feature_description)
```

**Step 1.6 (Consolidate Research) update:** Add "User Research Findings" as a consolidation category alongside repo patterns and institutional learnings. Structure:

- Relevant personas and their relationship to this feature
- Key insights and quotes from interviews
- Research gaps (areas where coverage is thin)

**Files to modify:**
- `plugins/compound-engineering/commands/workflows/plan.md` — Step 1 and Step 1.6
- `plugins/compound-engineering/agents/research/user-research-analyst.md` — remove "to be wired in PR 2" note

## Phase 2: Deeper Brainstorm Integrations

### 2a. Opportunity-Driven Brainstorm Initiation

**When:** Brainstorm starts with no feature description or a vague one.

**Behavior:** Check persona opportunity tables for unaddressed opportunities. Present them as starting points:

> "Your research has identified these opportunities:
> 1. [Persona X] needs faster data export (high frequency, low satisfaction)
> 2. [Persona Y] struggles with team collaboration features
> 3. [Persona Z] wants better mobile support
>
> Would you like to explore one of these, or describe something else?"

This flips brainstorming from "what should we build?" to "your users told you what they need."

**Dependency:** Requires persona opportunity tables to be populated — the `persona-builder` skill must have run at least once via `/workflows:research personas`. When no personas exist, this step is skipped gracefully (same as Phase 1 graceful degradation).

**Files to modify:**
- `plugins/compound-engineering/commands/workflows/brainstorm.md` — new Phase 0.5 between assessment and Phase 1
- May need a lightweight "opportunity scanner" helper or extend `user-research-analyst` output

### 2b. Research-Informed Question Generation

**When:** After `user-research-analyst` surfaces findings in Phase 1.1, entering Phase 1.2 (Collaborative Dialogue).

**Behavior:** Use research findings to shape questions. Instead of generic questions:

- Generic: "Who are the users of this feature?"
- Research-informed: "Your research shows two user types here — [Persona A] who uses this daily vs [Persona B] who uses it quarterly. Should we optimize for one or both?"

- Generic: "What problem does this solve?"
- Research-informed: "Interviews show users currently work around this by [workaround]. Should we replace that workaround entirely, or build alongside it?"

**Files to modify:**
- `plugins/compound-engineering/commands/workflows/brainstorm.md` — Phase 1.2 guidelines
- `plugins/compound-engineering/skills/brainstorming/SKILL.md` — add "research-informed questioning" technique

### 2c. Persona-Grounded Approach Evaluation

**When:** Phase 2 (Explore Approaches), evaluating 2-3 approaches.

**Behavior:** Evaluate each approach against relevant personas:

> **Approach A: Simple Export Button**
> - Serves [Persona X] well (matches their "quick export" workflow from interviews)
> - Doesn't address [Persona Y]'s need for scheduled exports
>
> **Approach B: Export Configuration Panel**
> - Addresses both [Persona X] and [Persona Y]
> - Higher complexity; [Persona X] may find it slower than current workaround

This makes trade-off discussions concrete and user-grounded instead of hypothetical.

**Files to modify:**
- `plugins/compound-engineering/commands/workflows/brainstorm.md` — Phase 2 guidelines
- `plugins/compound-engineering/skills/brainstorming/SKILL.md` — add persona-grounded evaluation pattern

### 2d. Research Evidence in Brainstorm Capture

**When:** Phase 3 (Capture the Design), writing the brainstorm document.

**Behavior:** Add a "Research Evidence" section to the brainstorm document template:

```markdown
## Research Evidence

### Relevant Personas
- **[Persona Name]** (confidence: high) — [one-line relevance]

### Key Quotes
- "[quote]" — participant NNN, on [topic]

### Opportunities Addressed
- [Opportunity from persona table] → addressed by [decision]

### Research Gaps
- [Areas where we're making assumptions without research backing]
```

This creates a traceable chain: research → brainstorm decisions → plan → implementation.

**Files to modify:**
- `plugins/compound-engineering/commands/workflows/brainstorm.md` — Phase 3 template
- `plugins/compound-engineering/skills/brainstorming/SKILL.md` — update design doc structure

## Open Questions

- **`deepen-plan` coverage: resolved.** `deepen-plan` explicitly runs ALL agents from ALL sources with no relevance filtering (Step 5 rule: "Do NOT filter agents by relevance - run them ALL"). So `user-research-analyst` will be picked up automatically — no changes needed there.
- **Opportunity tracking:** Should we track which opportunities have been addressed across brainstorms? This was deferred (Tier 5) but could be lightweight metadata in the brainstorm YAML frontmatter.
- **Research freshness:** Should we warn when persona data is stale (>90 days)? Deferred but low-effort to add.

## Deferred Ideas (Future Phases)

These were explored but deferred based on priority:

| Idea | Tier | Reason Deferred |
|------|------|----------------|
| Persona-informed stakeholder analysis in plan | 3 | Plan wiring covers the basics; deeper integration later |
| Research-backed acceptance criteria in plan | 3 | Valuable but complex; needs careful design |
| Research gap detection warnings | 3 | Nice-to-have; basic wiring surfaces gaps naturally |
| Persona context during work setup | 4 | Light touch; work executes plans that already have context |
| Persona-driven test scenarios | 4 | Interesting but speculative; validate Phase 1-2 first |
| Research-to-brainstorm handoff with context | 5 | Can be addressed when improving research workflow |
| Brainstorm-to-research feedback loop | 5 | Closes the loop; depends on Phase 2 working well |
| Opportunity tracking across workflows | 5 | Needs Phase 2a working first |
| Research freshness indicators | 5 | Low-effort but low-priority |

## Next Steps

→ `/workflows:plan` for Phase 1 implementation (basic wiring into brainstorm + plan)
→ Validate Phase 1 works with real research data before starting Phase 2
Loading