Configuration Reference
Complete reference for all configuration options in massu.config.yaml.
Full Schema
yaml
# Required: Project identification
project:
name: string # Project name (required)
root: string # "auto" or absolute path (default: "auto")
# Required: Framework detection
framework:
type: string # "typescript" | "javascript" (default: "typescript")
router: string # "trpc" | "graphql" | "rest" | "none" (default: "none")
orm: string # "prisma" | "drizzle" | "typeorm" | "none" (default: "none")
ui: string # "nextjs" | "sveltekit" | "nuxt" | "none" (default: "none")
# Path conventions
paths:
source: string # Source root directory (default: "src")
aliases: # Import alias mappings
string: string # e.g., "@": "src"
middleware: string # Middleware entry file path (optional)
# Tool prefix
toolPrefix: string # MCP tool name prefix (default: "massu")
# Business domains
domains: # Array of domain definitions (default: [])
- name: string # Domain name
routers: string[] # Glob patterns for router files
pages: string[] # Glob patterns for page files
tables: string[] # Database table names in this domain
allowedImportsFrom: string[] # Which domains can import from this one
# Coding rules
rules: # Array of rule sets (default: [])
- pattern: string # Glob pattern to match files (default: "**")
rules: string[] # List of rule descriptions
# Analytics
analytics:
quality:
weights: # Event scoring weights
bug_found: number # Points for bug found (default: -5)
vr_failure: number # Points for verification failure (default: -10)
incident: number # Points for incident (default: -20)
cr_violation: number # Points for canonical rule violation (default: -3)
vr_pass: number # Points for verification pass (default: 2)
clean_commit: number # Points for clean commit (default: 5)
successful_verification: number # Points for verification (default: 3)
categories: string[] # Quality categories to track
cost:
models: # Model pricing (per million tokens)
string: # Model name (e.g., "claude-opus-4-6")
input_per_million: number
output_per_million: number
cache_read_per_million: number
cache_write_per_million: number
currency: string # Currency code (default: "USD")
prompts:
success_indicators: string[] # Words indicating prompt success
failure_indicators: string[] # Words indicating prompt failure
max_turns_for_success: number # Max follow-ups for success (default: 2)
# Governance
governance:
audit:
formats: string[] # Report formats: "summary", "detailed", "soc2"
retention_days: number # Days to keep audit entries (default: 365)
auto_log:
code_changes: boolean
rule_enforcement: boolean
approvals: boolean
commits: boolean
validation:
realtime: boolean # Enable real-time validation (default: true)
checks:
rule_compliance: boolean
import_existence: boolean
naming_conventions: boolean
custom_patterns: # Custom validation patterns (optional)
- pattern: string
severity: string
message: string
adr:
detection_phrases: string[] # Phrases triggering ADR auto-detection
storage: string # "database" (default: "database")
# Security
security:
auto_score_on_edit: boolean # Auto-scan on edit (default: true)
score_threshold_alert: number # Alert threshold (default: 50)
severity_weights:
critical: number # Points per critical finding (default: 25)
high: number # Points per high finding (default: 15)
medium: number # Points per medium finding (default: 8)
low: number # Points per low finding (default: 3)
restrictive_licenses: string[] # Flagged licenses (default: ["GPL","AGPL","SSPL"])
dependencies:
package_manager: string # "npm" | "yarn" | "pnpm" (default: "npm")
blocked_packages: string[] # Always-flagged packages (default: [])
max_bundle_size_kb: number # Size alert threshold (default: 500)
# Team
team:
enabled: boolean # Enable team features (default: false)
sync_backend: string # "local" | "shared" (default: "local")
expertise_weights:
session: number # Points per session (default: 20)
observation: number # Points per observation (default: 10)
privacy:
share_file_paths: boolean # (default: true)
share_code_snippets: boolean # (default: false)
share_observations: boolean # (default: true)
# Regression
regression:
test_runner: string # Test command (default: "npm test")
test_patterns: string[] # Test file patterns
health_thresholds:
healthy: number # Green threshold (default: 80)
warning: number # Yellow threshold (default: 50)
# Python intelligence (optional, Pro tier)
python:
root: string # Python source root, relative to project root (required if section present)
alembic_dir: string # Path to Alembic migrations directory (optional)
exclude_dirs: string[] # Directories to skip (default: ["__pycache__", ".venv", "venv", ".mypy_cache", ".pytest_cache"])
domains: # Python package domain definitions (default: [])
- name: string # Domain name
packages: string[] # Python package paths in this domain (e.g., ["app.api", "app.routers"])
allowed_imports_from: string[] # Package paths this domain may import fromPython Configuration
The python section enables Python code intelligence for FastAPI, SQLAlchemy, and Alembic projects. It is entirely optional — omitting it has no effect on JS/TS project behavior. All Python tools require a Pro license.
Fields
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
python.root | string | yes (if section present) | — | Path to Python source root, relative to project root |
python.alembic_dir | string | no | — | Path to Alembic migrations directory |
python.exclude_dirs | string[] | no | See below | Directories to skip during analysis |
python.domains | array | no | [] | Domain boundary definitions |
python.domains[].name | string | yes | — | Human-readable domain name |
python.domains[].packages | string[] | yes | — | Python package paths in this domain (e.g., ["app.api"]) |
python.domains[].allowed_imports_from | string[] | yes | — | Package paths this domain may import from |
Default exclude_dirs: ["pycache", ".venv", "venv", ".mypy_cache", ".pytest_cache"]
Package paths in domains use Python dotted notation (e.g., app.api) and are resolved against python.root.
Examples
Minimal — import graph only:
yaml
python:
root: backendWith Alembic migrations:
yaml
python:
root: backend
alembic_dir: backend/migrationsWith domain enforcement:
yaml
python:
root: backend
alembic_dir: backend/migrations
exclude_dirs:
- __pycache__
- .venv
- tests
domains:
- name: API Layer
packages:
- app.api
- app.routers
allowed_imports_from:
- app.services
- app.models
- app.schemas
- name: Services
packages:
- app.services
allowed_imports_from:
- app.models
- app.core
- name: Models
packages:
- app.models
allowed_imports_from:
- app.core
- name: Core Infrastructure
packages:
- app.core
- app.config
- app.db
allowed_imports_from: []Full-stack monorepo (Next.js + FastAPI):
yaml
project:
name: my-fullstack-app
framework:
type: typescript
router: trpc
orm: prisma
ui: nextjs
paths:
source: frontend/src
python:
root: backend
alembic_dir: backend/db/migrations
domains:
- name: API Layer
packages: ["app.api"]
allowed_imports_from: ["app.services", "app.models"]
- name: Services
packages: ["app.services"]
allowed_imports_from: ["app.models", "app.core"]
- name: Models
packages: ["app.models"]
allowed_imports_from: ["app.core"]
- name: Core
packages: ["app.core", "app.config"]
allowed_imports_from: []Conditional Features
Some tools are only available when specific configuration is set:
| Config Setting | Tools Enabled |
|---|---|
framework.router: trpc | massu_trpc_map, massu_coupling_check |
framework.orm: prisma | massu_schema |
domains: [] (non-empty) | massu_domains |
paths.middleware set | Middleware tree analysis |
team.enabled: true | Team knowledge tools |
python.root set | All 8 massu_py_* tools (Pro tier) |
Environment Variables
| Variable | Description |
|---|---|
MASSU_CONFIG | Custom path to config file |
MASSU_DB_DIR | Custom directory for databases |
MASSU_LOG_LEVEL | Logging level |