mirror of
https://github.com/khodges42/nightShift.git
synced 2026-06-14 10:08:37 +00:00
2.4 KiB
2.4 KiB
NightShift Config Reference
NightShift config is YAML.
project
name: project display name.root: project root, resolved relative to the config file.task_file: markdown task file inside the project root.artifact_dir: artifact directory inside the project root.
safety
require_clean_worktree: when true, block runs ifgit status --shortis dirty or unavailable.scoped_paths: paths that must resolve inside the project root.allowed_commands: exact command-stage allowlist entries after whitespace normalization.forbidden_commands: dangerous fragments blocked before allowlist acceptance.allowed_env: optional environment variable names to pass to command stages.
experiment
label: optional run experiment label.prompt_variant: optional prompt variant label.
agents
Supported backends:
command: runs a local command with the prompt on stdin.ollama: calls the local Ollama HTTP API athttp://localhost:11434/api/generateby default.openai_compatible: calls a Chat Completions-compatible HTTP API.
Command agent:
planner:
backend: command
command: echo
system_prompt: agents/planner.md
Ollama agent:
planner:
backend: ollama
model: qwen2.5-coder:14b
base_url: http://localhost:11434
system_prompt: agents/planner.md
pipeline
max_task_retries: task retry limit.continue_on_task_failure: forrun --all, continue after failed/blocked tasks.stages: ordered state-machine stages.
Command stage options:
commands: command strings.shell: defaults to true. Set false for argv-style execution.timeout_seconds: per-stage timeout override.working_dir: command working directory inside project root.
Patch validator stage options:
max_files: max files changed.max_lines: max changed lines.forbidden_paths: paths the patch must not touch.- Unified diff hunk line prefixes and hunk line counts are validated before patch apply.
- The patch normalizer recomputes hunk line counts from hunk bodies for direct unified diff output.
Writer stages:
code_writer: agent returns a unified diff directly.file_writer: agent returns complete file content blocks; NightShift generates the unified diff deterministically. Prefer this for local models that wrap or miscount long patch hunks.
file_writer blocks use this form:
```file:relative/path.py
<complete file content>
```