Configuration
All SNIPER configuration lives in .sniper/config.yaml. This file is created by /sniper-init and updated automatically as you progress through the lifecycle.
Project Section
Basic project identity:
project:
name: "my-project" # Set during /sniper-init
type: saas # saas | api | mobile | cli | library | monorepo
description: "One-line description of the project"The type field influences how agents approach planning and architecture. For example, a cli project will not generate UX specifications for browser interfaces.
Stack Section
Defines your technology choices. Agents use this to tailor their output:
stack:
language: typescript # Primary language
frontend: react # Frontend framework (null if none)
backend: node-express # Backend framework
database: postgresql # Primary database
infrastructure: aws # Cloud provider
test_runner: vitest # Test framework
package_manager: pnpm # Package manager
commands: # Shell commands agents use
test: "pnpm test"
lint: "pnpm lint"
typecheck: "pnpm typecheck"
build: "pnpm build"Set any field to null if it does not apply (e.g., frontend: null for a CLI project). The commands block tells agents how to run tests, lint, typecheck, and build your project.
Review Gates
In v3, gates are configured per-phase inside protocol YAML files, not in config.yaml. Each phase in a protocol defines a gate block with a human_approval boolean:
# Example from a protocol YAML phase definition
phases:
plan:
agents: [architect, product-manager]
spawn_strategy: team
gate:
human_approval: true # true = human must approve; false = auto-advance
checklist: plan.yamlWhen human_approval: true, the lifecycle halts and waits for explicit human approval before advancing. When false, the gate auto-advances if there are no critical failures.
WARNING
Disabling human_approval on plan or review phases is strongly discouraged. Bad architecture decisions cascade through the entire project, and unreviewed code can introduce bugs and security issues.
Agents
Controls how agent teams are spawned and managed:
agents:
max_teammates: 5 # Max concurrent teammates
plan_approval: true # Require plan approval for complex tasks
coordination_timeout: 30 # Minutes before lead checks on stalled teammates
base: # Base agent set available to protocols
- analyst
- architect
- product-manager
- fullstack-dev
- code-reviewer
- qa-engineer
mixins: # Cognitive mixin assignments per agent
architect:
- security-first
code-reviewer:
- devils-advocate
qa-engineer:
- devils-advocate- default_model is used for implementation and review agents
- planning_model is used for the plan phase, where higher quality output is important
- max_teammates limits the number of simultaneous agents
- plan_approval requires agents to describe their approach before executing
- coordination_timeout triggers a check-in if a teammate has not reported progress
- base lists the agent names available to protocols (must match agent definitions in
.claude/agents/) - mixins maps agent names to lists of cognitive mixin names (e.g.,
security-first,devils-advocate,performance-focused)
Plugins
Register language and domain plugins:
plugins:
- name: typescript
package: "@sniper.ai/plugin-typescript"
- name: sales-dialer
package: "@sniper.ai/pack-sales-dialer"Plugins provide language-specific commands, conventions, review checks, agent mixins, and domain knowledge. Manage plugins via the CLI:
sniper plugin install @sniper.ai/plugin-typescript
sniper plugin remove @sniper.ai/plugin-typescript
sniper plugin listRouting
Controls protocol auto-detection:
routing:
auto_detect:
patch_max_files: 3 # Max changed files to auto-select patch protocol
feature_max_files: 10 # Max changed files to auto-select feature protocol
default: full # Default protocol when auto-detect is inconclusiveWhen you run /sniper-flow without specifying a protocol, SNIPER uses these thresholds to auto-detect the right protocol scope based on changed files.
Review (Optional)
Configures multi-model review for gate evaluations:
review:
multi_model: true # Enable multi-model review
models: # Models to use for review consensus
- sonnet
- opus
require_consensus: true # true = all models must agree; false = majority winsWhen multi_model is enabled, gate evaluations are run by multiple models and results are compared. This catches model-specific blind spots.
Workspace
Configures multi-repo orchestration:
workspace:
ref: "../workspace-root" # Relative path to workspace rootWhen set, agents are aware of cross-repo dependencies and workspace-level conventions.
See Workspace Mode for setup and usage.
File Ownership
Defines which directories belong to which role. These boundaries are injected into spawn prompts to prevent teammates from editing each other's files:
ownership:
backend:
- "src/backend/"
- "src/api/"
- "src/services/"
- "src/db/"
- "src/workers/"
frontend:
- "src/frontend/"
- "src/components/"
- "src/hooks/"
- "src/styles/"
- "src/pages/"
infrastructure:
- "docker/"
- ".github/"
- "infra/"
- "terraform/"
- "scripts/"
tests:
- "tests/"
- "__tests__/"
- "*.test.*"
- "*.spec.*"
ai:
- "src/ai/"
- "src/ml/"
- "src/pipeline/"
docs:
- "docs/"TIP
After running /sniper-flow --protocol ingest, the framework automatically updates ownership paths to match your actual project structure. Review the updated paths after ingestion.
Customize these paths to match your project layout. During implementation, each agent's file access is scoped by these ownership boundaries.
Visibility
Controls what runtime data SNIPER tracks and displays:
visibility:
live_status: true # Show real-time agent status during execution
checkpoints: true # Save phase checkpoints to .sniper/checkpoints/
auto_retro: true # Auto-run retrospective after protocol completionWhen auto_retro is enabled, the retro-analyst agent runs automatically after each protocol completion, updating memory files in .sniper/memory/.
Triggers (Optional)
Map file patterns to agents or protocols for auto-detection:
triggers:
- pattern: "src/api/**"
agent: backend-dev
- pattern: "*.test.*"
agent: qa-engineer
- pattern: "docs/**"
protocol: exploreTriggers are glob-matched against changed files during auto-detection. They influence which agents are spawned and which protocol is selected.
Knowledge (Optional)
Configure external knowledge injection into agent prompts:
knowledge:
directory: ".sniper/knowledge" # Directory containing knowledge files
manifest: "manifest.yaml" # Knowledge manifest file
max_total_tokens: 4000 # Max tokens from knowledge in spawn promptsMCP Knowledge (Optional)
Configure MCP-based knowledge indexing:
mcp_knowledge:
enabled: false
directory: ".sniper/knowledge"
auto_index: trueHeadless (Optional)
Configure headless (CI/automation) execution:
headless:
auto_approve_gates: false # Auto-approve all gates (use in CI only)
output_format: json # Output format: json | text
log_level: info # Log level: debug | info | warn | error
timeout_minutes: 60 # Max execution time before abort
fail_on_gate_failure: true # Exit non-zero if a gate failsHeadless mode is designed for CI pipelines where no human is available to approve gates.
Next Steps
- Full Lifecycle -- see how configuration affects each phase
- Review Gates -- detailed gate configuration and checklists
- Getting Started -- quick start guide
