Full Configuration Example
This page shows a complete, annotated .weave/config.weave that uses all of Weave's customization mechanisms together. Use it as a reference when building your own config.
Complete Config
# ── Domain-Specific Category Routing ───────────────────────────────
# Categories generate shuttle-{name} agent descriptors that inherit
# from the base shuttle agent with category-specific overrides.
# Adapters decide how those descriptors are materialised in the harness.
category backend {
description "Python FastAPI backend"
models ["anthropic/claude-opus-4"]
temperature 0.1
patterns ["src/api/**", "src/server/**", "src/db/**"]
prompt_append "Use async/await. Include docstrings. Follow PEP 8."
}
category frontend {
description "React TypeScript UI"
models ["openai/gpt-5"]
temperature 0.2
patterns ["src/components/**", "src/pages/**", "**/*.tsx"]
prompt_append "Use React 18+ hooks. Test accessibility. Use Tailwind CSS."
}
# ── Per-Agent Customization ─────────────────────────────────────────
# Configure each agent independently. All fields are optional -
# unset fields fall back to the agent's built-in defaults.
agent loom {
models ["anthropic/claude-opus-4"]
temperature 0.1
prompt_append "When reviewing security-sensitive changes, delegate to both warp and security-gpt."
}
agent tapestry {
temperature 0.0
prompt_append "Coordinate plan execution carefully: delegate each task to Shuttle, verify the result, and keep plan progress precise."
skills ["tdd"]
}
agent shuttle {
description "Senior Dev"
skills ["company-standards", "testing"]
prompt_append "Always verify before marking complete and report results back to Tapestry."
}
agent pattern {
models ["anthropic/claude-opus-4"]
skills ["planning-guidelines"]
prompt_append "Create detailed acceptance criteria."
}
agent thread {
models ["anthropic/claude-3-haiku"]
}
# ── Custom Agents ───────────────────────────────────────────────────
# Define your own agents. They appear alongside built-ins in Loom's
# delegation table and follow the same model resolution chain.
agent security-gpt {
description "Independent security review using a second model"
prompt "You are a security auditor. Review code for OWASP Top 10 vulnerabilities. Produce a clear APPROVE or REJECT verdict."
models ["openai/gpt-5"]
mode subagent
temperature 0.0
tool_policy {
read allow
write deny
execute deny
delegate deny
network deny
}
triggers [
{ domain "Security" trigger "Independent security review for cross-model coverage" }
]
}
agent docs-writer {
description "Technical documentation specialist"
prompt_file "docs-writer.md"
models ["anthropic/claude-sonnet-4-5"]
mode subagent
skills ["writing-style"]
temperature 0.2
triggers [
{ domain "Documentation" trigger "README updates, API docs, user guides, changelog entries" }
]
}
# ── Selective Disabling ─────────────────────────────────────────────
# Remove what you don't need. Disable directives from global and
# project config are union-merged.
disable hooks ["context-window-monitor"]
# ── Settings ────────────────────────────────────────────────────────
settings {
log_level INFO
}
# ── Continuation Behavior ────────────────────────────────────────────
# Keep post-compaction recovery on, but keep idle nudges off.
continuation {
recovery {
compaction true
}
idle {
enabled false
work false
workflow false
}
}
# ── Analytics ───────────────────────────────────────────────────────
analytics {
enabled true
use_fingerprint false
}Key Architectural Notes
All customization is additive
prompt_append appends, skills prepend. Base prompts are never modified by these mechanisms. The only exception is prompt, which fully replaces the base prompt.
Config is layered
Global config (~/.weave/config.weave) and project config (.weave/config.weave) merge gracefully. Named blocks deep-merge, arrays union, scalars favor the project config.
Category shuttle agents
Each category block generates a shuttle-{name} agent descriptor (e.g. shuttle-backend, shuttle-frontend). Adapters decide how those descriptors are materialised in the harness. Adapters that support file-pattern routing can use the patterns field to guide category selection.
Skills are the primary extension point
Skills are portable, reusable, and can be shared across teams. They are the recommended way to package domain knowledge for consistent reuse. See Skills.
Which Mechanism for Which Use Case
| Use Case | Mechanism |
|---|---|
| Add instructions to a specific agent | prompt_append in the agent block |
| Inject reusable domain knowledge | Skills (skills ["..."]) |
| Optimize models per domain | Categories |
| Change which LLM an agent uses | models [...] in the agent block |
| Replace an agent's entire prompt | prompt "..." in the agent block (use sparingly) |
| Add a new specialist agent | New agent block |
| Restrict what tools an agent can use | tool_policy { ... } in the agent block |
| Remove an agent from the system | disable agents ["name"] |
| Turn off a governance hook | disable hooks ["name"] |
| Disable a skill | disable skills ["name"] |
| Tune recovery vs idle continuation behavior | continuation block |
| Domain routing by file pattern | patterns [...] in a category block |
