project: name: tiny-lisp root: . task_file: tasks.md artifact_dir: .nightshift safety: require_clean_worktree: false scoped_paths: - . allowed_commands: - python -m unittest discover -v forbidden_commands: - rm -rf - git push - curl | bash experiment: label: quickstart-lisp prompt_variant: fake-agent-v1 agents: planner: backend: command command: python agents/fake_planner.py system_prompt: agents/planner.md implementer: backend: command command: python agents/fake_code_writer.py system_prompt: agents/implementer.md reviewer: backend: command command: python -c "print('status: pass'); print('reason: quickstart reviewer accepted artifacts')" system_prompt: agents/reviewer.md pipeline: max_task_retries: 3 continue_on_task_failure: false stages: - id: plan type: agent agent: planner output: plan.md - id: context type: repo_context output: context-pack.md - id: implement type: code_writer agent: implementer output: proposed.patch - id: normalize type: patch_normalizer output: normalized.patch - id: validate_patch type: patch_validator output: patch-validation.md max_files: 4 max_lines: 400 on_fail: implement - id: apply_patch type: patch_apply mode: apply output: patch-apply-output.txt on_fail: implement - id: test type: command commands: - python -m unittest discover -v output: test-output.txt shell: true timeout_seconds: 60 on_fail: implement - id: review type: agent_review agent: reviewer on_fail: implement output: review.md - id: summarize type: summarize output: final-notes.md