Configuration
The .composez File
Every Composez project has a .composez file at the project root. This YAML file controls the narrative hierarchy and other project-level settings.
Default Configuration
Created automatically on first launch:
levels:
- Act
- Chapter
- SceneCustom Levels
Change the hierarchy to match your project:
# For a simpler structure
levels:
- Chapter
- Scene# For a different naming convention
levels:
- Part
- Chapter
- Scene# For a more granular structure
levels:
- Book
- Part
- Chapter
- SceneRules:
- You need at least two levels
- Level names are automatically title-cased (
chapterbecomesChapter) - The last level is always the leaf level where
PROSE.mdandSUMMARY.mdlive - Changes to levels after creating content may require renaming directories
Auto-Context
Composez can automatically identify which files are relevant before each LLM call, adding them as temporary read-only context. This means you don’t always need to manually /add files—the AI figures out what it needs.
Auto-context is enabled by default. To set the default for your project, add to .composez:
auto_context: falseYou can also toggle it for the current session with /auto-context on or /auto-context off.
How it works
Before each user message (not slash commands), Composez:
- Runs a lightweight context-analysis pass using the weak model
- Identifies which manuscript and database files are relevant to your message
- Temporarily adds them as read-only context for the duration of that single LLM call
- Removes them afterward so they don’t accumulate
This is especially useful for conversational editing where you mention characters or scenes by name without having explicitly added them.
Auto-context adds files as read-only. If you need to edit a file, you still need to /add it explicitly. Auto-context is best for pulling in reference material (character sheets, location descriptions) that the AI needs for consistency.
Style Guide
The style guide at db/core/style.md is the most impactful configuration for prose quality. It’s loaded as context for every AI interaction.
You can write the style guide manually, or use /analyze-style to load your prose and ask the AI to write one:
> /analyze-style 1 1 # Load all prose from act 1, chapter 1
> Write a comprehensive style guide to db/core/style.md based on this prose.
See the command reference for details.
A good style guide includes:
## Voice & Tone
Third-person limited POV, past tense. Stay close to the
viewpoint character's thoughts and perceptions.
## Prose Principles
- Show, don't tell: convey emotion through action and
physical sensation, not labels
- Favor active voice in action scenes
- Use short, punchy sentences during tension
- Allow longer, more flowing sentences for reflection
## Dialogue
- No dialogue tags beyond "said" and "asked" except
when genuinely needed
- Use action beats instead of adverbs: not "she said angrily"
but "she slammed the cup down"
- Each character should have a distinct speech pattern
## Pacing
- Open scenes in media res when possible
- End scenes on tension, questions, or emotional shifts
- Vary sentence length for rhythm
## Avoid
- Purple prose and overwriting
- Info-dumps disguised as dialogue
- Head-hopping between characters within a sceneProject Metadata
db/core/metadata.yml stores book-level information:
title: The Lighthouse
author: Elena VasquezThis is used by:
- EPUB export for title and author metadata
- CLAUDE.md generation so other AI tools understand your project
Instructions
The instructions/ directory holds reusable directives:
instructions/
tone-dark.md
action-scenes.md
dialogue-rules.md
Load an instruction before writing to guide the AI:
> /instruct tone-dark
Create new instructions:
> /new instruction action-scenes
Instructions are injected into the chat as user messages, influencing the AI’s behavior for subsequent commands.
Lint Configuration
See Prose Linting for Vale configuration via .vale.ini.
Aider Configuration
Composez inherits all of Aider’s configuration options. You can use:
.aider.conf.ymlfor persistent settings.envfor API keys- Command-line flags for per-session overrides
Common Aider settings that matter for fiction:
# .aider.conf.yml
auto-commits: true # Commit after each AI edit
auto-lint: true # Run Vale after each edit
stream: true # Stream AI responses
model: claude-sonnet-4-20250514 # Model selectionSee Aider’s configuration docs for the full list.