pyproject.toml for configuration. Run skylos init to generate a configuration file with sensible defaults, or add the [tool.skylos] section to an existing file.
Configuration File
Configuration Options
Quality Thresholds
| Option | Type | Default | Description |
|---|---|---|---|
complexity | int | 10 | Maximum cyclomatic complexity before flagging a function |
nesting | int | 3 | Maximum nesting depth before flagging |
max_args | int | 5 | Maximum function arguments before flagging |
max_lines | int | 50 | Maximum function length in lines |
Analysis Options
| Option | Type | Default | Description |
|---|---|---|---|
ignore | list | [] | List of rule IDs to suppress (e.g., ["SKY-L002", "SKY-Q301"]) |
model | string | "gpt-4.1" | LLM model for AI-powered features |
Gate Configuration
The[tool.skylos.gate] section controls the quality gate behavior when using --gate:
| Option | Type | Default | Description |
|---|---|---|---|
fail_on_critical | bool | true | Block deployment if CRITICAL security issues or secrets are found |
max_security | int | 0 | Maximum allowed security findings before gate fails |
max_quality | int | 10 | Maximum allowed quality findings before gate fails |
strict | bool | false | When true, prevents bypassing a failed gate interactively |
Language-Specific Overrides
You can override global settings for specific languages under[tool.skylos.languages.<lang>]:
typescript.
Configuration Resolution
Skylos searches forpyproject.toml by walking up from the target path to the filesystem root. The first file containing [tool.skylos] is used. If no configuration is found, Skylos applies the built-in defaults.
This approach was chosen over per-directory configuration to keep analysis consistent across monorepos while still allowing project-level customization.
