Summary
Create `apps/meeting-notes/web-react/` — a second Traverse reference app demonstrating a capability with list-type structured output. Paste a meeting transcript → runtime returns action items, decisions, owners, follow-ups, and a summary.
Contrasts with `traverse-starter` (flat string fields) to show how the UI renders richer output schemas without owning any business logic.
Blocked on
Note: Issue previously cited #528 (wrong ticket). Correct blocker is #532.
- Traverse capability: `meeting-notes.process` must be built in the Traverse repo (see Traverse #532)
Stack
Same as `traverse-starter/web-react`: React 18 + TypeScript + Vite + Vitest
Input / Output contract
Input (owned by UI):
```json
{ "transcript": "string — full meeting transcript text" }
```
Output (owned by Traverse runtime — UI renders only):
```json
{
"action_items": [{ "task": "string", "owner": "string | null", "due": "string | null" }],
"decisions": [{ "text": "string", "made_by": "string | null" }],
"follow_ups": ["string"],
"summary": "string"
}
```
UI panels
- Runtime Environment — same health check strip as traverse-starter
- Meeting Transcript — large textarea, char count, Cmd+Enter submit
- Output — four sections rendered natively:
- Action Items — checklist-style list with owner + due date badges
- Decisions — bullet list with "decided by" attribution
- Follow-ups — simple list
- Summary — paragraph text
Definition of Done
Summary
Create `apps/meeting-notes/web-react/` — a second Traverse reference app demonstrating a capability with list-type structured output. Paste a meeting transcript → runtime returns action items, decisions, owners, follow-ups, and a summary.
Contrasts with `traverse-starter` (flat string fields) to show how the UI renders richer output schemas without owning any business logic.
Blocked on
Note: Issue previously cited #528 (wrong ticket). Correct blocker is #532.
Stack
Same as `traverse-starter/web-react`: React 18 + TypeScript + Vite + Vitest
Input / Output contract
Input (owned by UI):
```json
{ "transcript": "string — full meeting transcript text" }
```
Output (owned by Traverse runtime — UI renders only):
```json
{
"action_items": [{ "task": "string", "owner": "string | null", "due": "string | null" }],
"decisions": [{ "text": "string", "made_by": "string | null" }],
"follow_ups": ["string"],
"summary": "string"
}
```
UI panels
Definition of Done