# Phase 1: Core Capture Pipeline - Discussion Log

> **Audit trail only.** Do not use as input to planning, research, or execution agents.
> Decisions are captured in CONTEXT.md -- this log preserves the alternatives considered.

**Date:** 2026-04-12
**Phase:** 01-core-capture-pipeline
**Areas discussed:** Tool interface, Grid sizing, Timestamp format, Capture scheduling
**Mode:** Auto (recommended defaults selected)

---

## Tool Interface Design

| Option | Description | Selected |
|--------|-------------|----------|
| Async two-tool | start_capture returns session ID, get_capture_status retrieves results | ✓ |
| Single blocking tool | One tool call captures and returns grid (blocks during capture) | |
| Event-based | Server pushes notifications as frames are captured | |

**User's choice:** Async two-tool pattern (auto-selected recommended)
**Notes:** Long captures (10+ seconds) would block the MCP connection. Async is the standard MCP pattern for long-running operations.

---

## Grid Image Sizing

| Option | Description | Selected |
|--------|-------------|----------|
| Auto-fit 1568px JPEG q80 | Pre-downscale frames, fit grid to 1568x1568, JPEG quality 80 | ✓ |
| Full resolution PNG | Keep full resolution, let client handle sizing | |
| Fixed 1024px | Standard web-friendly size, may waste LLM token budget | |

**User's choice:** Auto-fit to 1568px max edge with JPEG q80 (auto-selected recommended)
**Notes:** Claude Vision caps at 1568px per edge. Pre-downscaling frames before assembly prevents sharp memory exhaustion.

---

## Timestamp Format

| Option | Description | Selected |
|--------|-------------|----------|
| Relative offset | "+0.0s", "+0.5s" with dark background | ✓ |
| Wall-clock time | "14:32:05.500" absolute timestamps | |
| Frame number only | "#1", "#2", "#3" simple numbering | |

**User's choice:** Relative offset with semi-transparent background (auto-selected recommended)
**Notes:** Relative offsets are more useful than wall-clock times for debugging timing issues.

---

## Capture Scheduling

| Option | Description | Selected |
|--------|-------------|----------|
| All configurable, count priority | interval_ms + max_frames (default 20) + duration_ms, first limit wins | ✓ |
| Interval + count only | No duration parameter, simpler API | |
| Duration only | Auto-calculate interval from frame count and duration | |

**User's choice:** All three configurable, count takes priority (auto-selected recommended)
**Notes:** Flexible but bounded. max_frames default of 20 prevents runaway captures. Self-correcting setTimeout prevents drift.

---

## Claude's Discretion

- Sharp concurrency settings
- Internal buffer format between capture and grid assembly
- Error message wording
- Project scaffolding structure

## Deferred Ideas

None -- discussion stayed within phase scope
