Skip to content

Project Structure

coquill/
├── CLAUDE.md # Project instructions for Claude
├── README.md # Project overview + install guide
├── LICENSE # MIT License
├── .gitignore
├── .claude/
│ └── skills/
│ ├── coquill/
│ │ └── SKILL.md # Orchestrator skill (entry point)
│ ├── coquill-analyzer/
│ │ └── SKILL.md # Analyzer skill (template parsing)
│ ├── coquill-renderer/
│ │ └── SKILL.md # Renderer skill (document output)
│ └── coquill-transcriber/
│ └── SKILL.md # Transcriber skill (interview transcript)
├── docs/ # Documentation site (Astro Starlight)
├── tests/ # Test/benchmark suite
├── templates/
│ ├── _examples/ # Bundled example templates
│ │ ├── Bonterms_Mutual_NDA/
│ │ ├── invoice/
│ │ └── meeting_notes/
│ └── <your_template>/ # Your templates (gitignored)
│ ├── <name>.docx or .html
│ ├── manifest.yaml # Auto-generated (do not edit)
│ └── config.yaml # Optional developer config
├── scripts/
│ └── render.py # Render script (called by Renderer skill)
└── output/ # Rendered documents (gitignored)
└── <job_name>/
├── <name>.<ext> # Rendered document
├── interview_log.json # Interview data (JSON)
└── transcript.md # Human-readable interview transcript

CoQuill v2 uses four focused skills:

SkillPurpose
Orchestrator (.claude/skills/coquill/)Entry point. Matches user request to template, runs interview, confirms values, and triggers rendering.
Analyzer (.claude/skills/coquill-analyzer/)Parses the template for variables, conditionals, and loops. Generates manifest.yaml. Merges config.yaml overrides.
Renderer (.claude/skills/coquill-renderer/)Renders the template with collected values. Produces .docx, .html + .pdf, or .md + optional .pdf. Validates output for unfilled placeholders.
Transcriber (.claude/skills/coquill-transcriber/)Generates a human-readable transcript.md from the interview log after each document assembly session.

The Orchestrator is the only user-facing skill. The Analyzer, Renderer, and Transcriber are invoked by the Orchestrator.