# Docfill MVP Implementation Plan > **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (`- [ ]`) syntax for tracking. **Goal:** Build a minimal Go CLI that fills `.docx` and `.xlsx` templates from Excel or SQLite rows. **Architecture:** A single internal package loads JSON config, reads rows from Excel or SQLite, renders placeholders into docx/xlsx files, and exposes `Run`. A tiny CLI parses `run --config`. **Tech Stack:** Go, `excelize` for `.xlsx`, `modernc.org/sqlite` for SQLite, standard `archive/zip` for `.docx`. --- ### Task 1: Tests First **Files:** - Create: `internal/docfill/docfill_test.go` - [ ] Write tests for Excel row reading, SQLite row reading, xlsx rendering, docx rendering, and full config execution. - [ ] Run `go test ./...` and confirm it fails because the package implementation does not exist yet. ### Task 2: Minimal Library **Files:** - Create: `internal/docfill/docfill.go` - [ ] Implement config parsing. - [ ] Implement Excel and SQLite row readers. - [ ] Implement placeholder replacement. - [ ] Implement xlsx and docx rendering. - [ ] Implement `Run(configPath string) error`. ### Task 3: CLI **Files:** - Create: `cmd/docfill/main.go` - [ ] Parse `docfill run --config task.json`. - [ ] Print clear errors to stderr. - [ ] Exit non-zero on failure. ### Task 4: Verify - [ ] Run `go test ./...`. - [ ] Run `go build ./cmd/docfill`. - [ ] Keep README usage minimal.