Configuration Reference
Complete reference for
.sniper/config.yaml. Generated from the v3 config template.
Sections
project
Agent configuration
6 lines
yaml
project:
name: ""
type: "" # saas | api | mobile | cli | library | monorepo
description: ""
# Agent configurationagents
Protocol routing — how /sniper-flow selects a protocol
27 lines
yaml
agents:
max_teammates: 5
plan_approval: true # Require plan approval for implementation agents
coordination_timeout: 30 # Seconds to wait for agent coordination
# Base agents to include (from @sniper.ai/core/agents/)
base:
- lead-orchestrator
- analyst
- architect
- product-manager
- backend-dev
- frontend-dev
- qa-engineer
- code-reviewer
- gate-reviewer
- retro-analyst
- memory-curator
# Cognitive mixins applied to agents during scaffolding
# Format: agent-name: [mixin1, mixin2]
mixins: {}
# Example:
# backend-dev: [security-first, performance-focused]
# architect: [devils-advocate]
# Protocol routing — how /sniper-flow selects a protocolrouting
Trigger tables — map file patterns to agents or protocols Example: - pattern: "src/api/" agent: backend-dev - pattern: "*.test.ts" agent: qa-engineer - pattern: "infrastructure/" protocol: full
18 lines
yaml
routing:
# File-count thresholds for auto-detection
auto_detect:
patch_max_files: 5 # <= 5 files changed → patch protocol
feature_max_files: 20 # <= 20 files changed → feature protocol
# > 20 files → full protocol
# Default protocol when auto-detect is ambiguous
default: feature
# Trigger tables — map file patterns to agents or protocols
# Example:
# - pattern: "src/api/**"
# agent: backend-dev
# - pattern: "*.test.ts"
# agent: qa-engineer
# - pattern: "infrastructure/**"
# protocol: fulltriggers
Review configuration
3 lines
yaml
triggers: []
# Review configurationreview
File ownership boundaries
8 lines
yaml
review:
multi_model: false # Enable multi-model review for gate checks
models: # Models to use when multi_model is enabled
- opus
- sonnet
require_consensus: true # All models must agree for a pass (false = majority wins)
# File ownership boundariesownership
Stack detection hints (auto-populated by sniper init)
26 lines
yaml
ownership:
backend:
- "src/backend/"
- "src/api/"
- "src/services/"
- "src/db/"
frontend:
- "src/frontend/"
- "src/components/"
- "src/hooks/"
- "src/styles/"
- "src/pages/"
infrastructure:
- "docker/"
- ".github/"
- "infra/"
- "scripts/"
tests:
- "tests/"
- "__tests__/"
- "*.test.*"
- "*.spec.*"
docs:
- "docs/"
# Stack detection hints (auto-populated by `sniper init`)stack
Plugin configuration
16 lines
yaml
stack:
language: ""
frontend: null
backend: null
database: null
infrastructure: null
test_runner: null
package_manager: ""
# Commands used by checklists and gate checks
commands:
test: ""
lint: ""
typecheck: ""
build: ""
# Plugin configurationplugins
- name: typescript package: "@sniper.ai/plugin-typescript" Domain knowledge configuration (Feature 9) knowledge: directory: ".sniper/knowledge" manifest: "manifest.yaml" max_total_tokens: 50000 MCP Knowledge Base server (Feature 10) mcp_knowledge: enabled: false directory: ".sniper/knowledge" auto_index: true Headless / CI mode defaults (Feature 3) headless: auto_approve_gates: false output_format: json log_level: info timeout_minutes: 60 fail_on_gate_failure: true Workspace reference (Feature 1) workspace: ref: "../.sniper-workspace" Learning store configuration
29 lines
yaml
plugins: []
# - name: typescript
# package: "@sniper.ai/plugin-typescript"
# Domain knowledge configuration (Feature 9)
# knowledge:
# directory: ".sniper/knowledge"
# manifest: "manifest.yaml"
# max_total_tokens: 50000
# MCP Knowledge Base server (Feature 10)
# mcp_knowledge:
# enabled: false
# directory: ".sniper/knowledge"
# auto_index: true
# Headless / CI mode defaults (Feature 3)
# headless:
# auto_approve_gates: false
# output_format: json
# log_level: info
# timeout_minutes: 60
# fail_on_gate_failure: true
# Workspace reference (Feature 1)
# workspace:
# ref: "../.sniper-workspace"
# Learning store configurationlearning
Visibility settings
8 lines
yaml
learning:
max_per_retro: 5 # Cap learnings created per retro
min_confidence: 0.4 # Threshold for composition into agent prompts
composition_limit: 10 # Max learnings composed per agent
staleness_threshold: 5 # Protocols without application before flagging
archive_after_days: 180 # Days after deprecation before archiving
# Visibility settingsvisibility
4 lines
yaml
visibility:
live_status: true # Maintain .sniper/live-status.yaml
checkpoints: true # Write phase checkpoints
# auto_retro: true # DEPRECATED — use retro phase in protocols insteadFull Template
148 lines
yaml
# SNIPER v3 Configuration
# Generated by `sniper init`
project:
name: ""
type: "" # saas | api | mobile | cli | library | monorepo
description: ""
# Agent configuration
agents:
max_teammates: 5
plan_approval: true # Require plan approval for implementation agents
coordination_timeout: 30 # Seconds to wait for agent coordination
# Base agents to include (from @sniper.ai/core/agents/)
base:
- lead-orchestrator
- analyst
- architect
- product-manager
- backend-dev
- frontend-dev
- qa-engineer
- code-reviewer
- gate-reviewer
- retro-analyst
- memory-curator
# Cognitive mixins applied to agents during scaffolding
# Format: agent-name: [mixin1, mixin2]
mixins: {}
# Example:
# backend-dev: [security-first, performance-focused]
# architect: [devils-advocate]
# Protocol routing — how /sniper-flow selects a protocol
routing:
# File-count thresholds for auto-detection
auto_detect:
patch_max_files: 5 # <= 5 files changed → patch protocol
feature_max_files: 20 # <= 20 files changed → feature protocol
# > 20 files → full protocol
# Default protocol when auto-detect is ambiguous
default: feature
# Trigger tables — map file patterns to agents or protocols
# Example:
# - pattern: "src/api/**"
# agent: backend-dev
# - pattern: "*.test.ts"
# agent: qa-engineer
# - pattern: "infrastructure/**"
# protocol: full
triggers: []
# Review configuration
review:
multi_model: false # Enable multi-model review for gate checks
models: # Models to use when multi_model is enabled
- opus
- sonnet
require_consensus: true # All models must agree for a pass (false = majority wins)
# File ownership boundaries
ownership:
backend:
- "src/backend/"
- "src/api/"
- "src/services/"
- "src/db/"
frontend:
- "src/frontend/"
- "src/components/"
- "src/hooks/"
- "src/styles/"
- "src/pages/"
infrastructure:
- "docker/"
- ".github/"
- "infra/"
- "scripts/"
tests:
- "tests/"
- "__tests__/"
- "*.test.*"
- "*.spec.*"
docs:
- "docs/"
# Stack detection hints (auto-populated by `sniper init`)
stack:
language: ""
frontend: null
backend: null
database: null
infrastructure: null
test_runner: null
package_manager: ""
# Commands used by checklists and gate checks
commands:
test: ""
lint: ""
typecheck: ""
build: ""
# Plugin configuration
plugins: []
# - name: typescript
# package: "@sniper.ai/plugin-typescript"
# Domain knowledge configuration (Feature 9)
# knowledge:
# directory: ".sniper/knowledge"
# manifest: "manifest.yaml"
# max_total_tokens: 50000
# MCP Knowledge Base server (Feature 10)
# mcp_knowledge:
# enabled: false
# directory: ".sniper/knowledge"
# auto_index: true
# Headless / CI mode defaults (Feature 3)
# headless:
# auto_approve_gates: false
# output_format: json
# log_level: info
# timeout_minutes: 60
# fail_on_gate_failure: true
# Workspace reference (Feature 1)
# workspace:
# ref: "../.sniper-workspace"
# Learning store configuration
learning:
max_per_retro: 5 # Cap learnings created per retro
min_confidence: 0.4 # Threshold for composition into agent prompts
composition_limit: 10 # Max learnings composed per agent
staleness_threshold: 5 # Protocols without application before flagging
archive_after_days: 180 # Days after deprecation before archiving
# Visibility settings
visibility:
live_status: true # Maintain .sniper/live-status.yaml
checkpoints: true # Write phase checkpoints
# auto_retro: true # DEPRECATED — use retro phase in protocols instead