Summary
Create multiple Dockerfiles that bundle domain-specific CLI tools into the DocsClaw image for different business use cases.
Motivation
The base DocsClaw binary is 5 MiB, but agents need external tools for real work. Rather than one bloated image, provide purpose-built flavors that include only the tools relevant to each domain.
Proposed flavors
| Flavor |
Use case |
Key tools |
| docs |
Document conversion, review, summarization |
pandoc, libreoffice-headless, poppler-utils (pdftotext), wkhtmltopdf |
| media |
Image acquisition, processing, description |
imagemagick, ffmpeg, exiftool, curl/wget |
| presentations |
Slide deck creation and rendering |
marp-cli, mermaid-cli, chromium-headless |
| data |
Report generation, CSV/Excel processing |
gnuplot, csvkit, python3+openpyxl, jq |
| content |
Blog posts, newsletters, polished Markdown |
markdownlint-cli, vale (prose linter) |
These are tool-focused, not role-focused. The agent's personality and role come from the ConfigMap; the Dockerfile determines what tools are available.
Design considerations
- All flavors should use a common base image (UBI minimal or UBI micro)
- Multi-stage builds to keep image size reasonable
- Each flavor gets its own Dockerfile:
Dockerfile.docs, Dockerfile.media, etc.
- CI should build and push all flavors to
quay.io/redhat-et/docsclaw:<flavor>
- Consider whether some flavors should bundle MCP servers (e.g., Playwright for media)
Non-goals
- Developer-focused images (code review, linting) — developers use personal agents
- "Kitchen sink" image with everything — defeats the purpose
Summary
Create multiple Dockerfiles that bundle domain-specific CLI tools into the DocsClaw image for different business use cases.
Motivation
The base DocsClaw binary is 5 MiB, but agents need external tools for real work. Rather than one bloated image, provide purpose-built flavors that include only the tools relevant to each domain.
Proposed flavors
These are tool-focused, not role-focused. The agent's personality and role come from the ConfigMap; the Dockerfile determines what tools are available.
Design considerations
Dockerfile.docs,Dockerfile.media, etc.quay.io/redhat-et/docsclaw:<flavor>Non-goals