compose
Generate structured documents from composition templates. Combines reference templates with live data to produce reviewable output artifacts. Triggered by compose, document, generate report, create brief, write proposal.
Best use case
compose is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Generate structured documents from composition templates. Combines reference templates with live data to produce reviewable output artifacts. Triggered by compose, document, generate report, create brief, write proposal.
Teams using compose should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/compose/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How compose Compares
| Feature / Agent | compose | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Generate structured documents from composition templates. Combines reference templates with live data to produce reviewable output artifacts. Triggered by compose, document, generate report, create brief, write proposal.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# /compose — Generate Document from Template
## Purpose
Produces structured output artifacts by combining a composition template (ROM) with
live workspace data. The template defines the skeleton. The agent fills it with
current context. The output lands in `output/` for human review.
## Usage
```
/compose <template-name> [--for <receiver>] [--data <source>] [--status draft|review]
```
## Arguments
| Arg | Required | Default | Description |
|-----|----------|---------|-------------|
| `template-name` | Yes | — | Name of template in `reference/compositions/` |
| `--for` | No | — | Intended receiver (adjusts genre encoding) |
| `--data` | No | auto | Data source: `auto` scans relevant `data/` + `output/` |
| `--status` | No | `draft` | Initial status of the output file |
| `--output` | No | auto | Override output directory (default: `output/{genre}/`) |
## Workflow
1. **Load template** — Read `reference/compositions/{template-name}.md`
2. **Resolve receiver** — If `--for` specified, look up receiver's genre preference
(from SYSTEM.md people table or company.yaml org chart)
3. **Gather data** — Scan `data/`, recent `output/`, and engine (if available) for
relevant context. Use search if engine exists, otherwise scan by keyword.
4. **Generate** — Fill template skeleton with gathered data. Follow genre rules.
Apply Signal Theory encoding: resolve all 5 dimensions S=(M,G,T,F,W).
5. **Write output** — Save to `output/{genre}/{date}-{title}.md` with frontmatter:
```yaml
---
genre: {from template}
type: {speech act}
status: {draft|review}
created_by: {agent name}
created_at: {date}
for: {receiver if specified}
template: {template-name}
---
```
6. **Report** — Show output path, word count, data sources used.
## Examples
```bash
# Generate a quarterly review from template
/compose quarterly-review
# Write a proposal for a specific client
/compose client-brief --for "ACME Corp" --status review
# Create a weekly signal report using specific data
/compose weekly-signal --data "data/pipeline.json"
# Generate meeting prep doc
/compose meeting-prep --for "Ed Honour"
```
## Composition Template Format
Templates in `reference/compositions/` follow this structure:
```markdown
---
genre: proposal
default_output: output/proposals/
sections:
- objective
- key_messages
- supporting_data
- call_to_action
data_sources:
- data/pipeline.json
- output/analyses/
---
# {title}
## Objective
{Agent fills: one sentence, what outcome}
## Key Messages
{Agent fills: 3-5 bullets from gathered data}
## Supporting Data
{Agent fills: relevant metrics, quotes, evidence}
## Call to Action
{Agent fills: single unambiguous ask + deadline}
```
## Output
- File written to `output/{genre}/{date}-{title}.md`
- Frontmatter with full metadata for OSA command center
- Status set to `draft` (user reviews and promotes to `approved`)
## Dependencies
- `reference/compositions/` must contain the named template
- `data/` and/or `output/` for context gathering
- Engine search (optional, for richer data gathering)
- People/receiver table in SYSTEM.md or company.yaml (optional, for genre matching)Related Skills
/do
> The agent's primary skill. Customize this to match your agent's purpose.
/report
> Generate structured reports. Director-owned.
/primary
> Main workflow execution and routing. Director-owned.
Qualify
## Command
Prospect
## Command
Close Plan
## Command
Battlecard
## Command
Spec
## Command
Schedule
## Command
Repurpose
## Command
Ideate
## Command
Analyze
## Command