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 transcriptSkills
Section titled “Skills”CoQuill v2 uses four focused skills:
| Skill | Purpose |
|---|---|
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.