Files
Claude eab86b0324 docs(plan): plan VLM image input (009) — research, data-model, contracts
Phase 0/1 design artifacts for spec 009, resolving the wire shapes ADR-008
deferred for live verification.

- research.md — verified pydantic-ai BinaryContent against the installed
  pydantic-ai-slim 2.9.0 source (structured path is shared via OpenAIChatModel,
  one change covers both backends); Ollama flat images passthrough; llama.cpp
  OpenAI image_url content-parts (requires --mmproj); tensor→PNG via Pillow
  (dev dep) with _llm/ kept torch/numpy/Pillow-free per Constitution IV;
  byte-identical text path by omitting an empty images key
- data-model.md — Message gains optional images: list[str] | None; one carrier,
  three wire shapes; optional IMAGE node input (outputs untouched)
- contracts/image-input-contract.md — behavioural + test contracts T1–T6
- quickstart.md — describe-an-image workflow, structured variant, backend swap
- plan.md — Constitution Check passes (no new class, no new runtime dep,
  outputs unchanged); no Complexity Tracking needed
- CLAUDE.md SpecKit marker repointed to 009 plan

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01UvS9TFMCFYNHC4MMvzJaZS
2026-07-22 18:50:09 +00:00

225 B

For additional context about technologies to be used, project structure, shell commands, and other important information, read the current plan at specs/009-vlm-image-input/plan.md