nightshift/tasks.md
K. Hodges fa97abf0c3 Implemented deterministic diff generation via a new file_writer stage.
What changed:

  - Added file_writer stage support in nightshift/config.py:93, nightshift/agents.py:446, and nightshift/pipeline.py:374.
  - Added file-block parsing and deterministic patch generation in nightshift/patches.py:65.
  - file_writer agents now return complete file blocks:

    ```file:relative/path.py
    <complete file content>
    ```
    NightShift reads current files and generates the unified diff itself.

  - Existing patch_validator, patch_normalizer, and patch_apply still run after that.
  - Switched tiny-lisp-nightshift/nightshift.yaml:51 to type: file_writer.
  - Updated tiny-lisp-nightshift/agents/implementer.md:1 to request file blocks instead of diffs.
  - Updated README, tutorial, config reference, and design doc.

  Also added tests for parsing file blocks, generating multi-file diffs, validating those diffs, and running a full file_writer -> normalize -> validate pipeline.

  Verification: python -m unittest discover -v passes, 101 tests.
2026-05-17 15:24:10 -07:00

1.0 KiB

Tasks

  • TASK-001: Parse Lisp expressions

Description: Implement tokenization and parsing for a tiny Lisp subset.

Acceptance Criteria:

  • Parses numbers

  • Parses symbols

  • Parses nested lists

  • Raises useful errors for unbalanced parentheses

  • Includes unit tests

  • TASK-002: Evaluate arithmetic forms

Dependencies:

  • TASK-001

Description: Evaluate parsed arithmetic expressions.

Acceptance Criteria:

  • Supports +, -, *, and /

  • Evaluates nested arithmetic

  • Includes unit tests

  • TASK-003: Add variables and definitions

Dependencies:

  • TASK-002

Description: Add an environment and support variable lookup and definitions.

Acceptance Criteria:

  • Supports symbol lookup

  • Supports (define name value)

  • Keeps environment behavior tested

  • TASK-004: Add conditionals

Dependencies:

  • TASK-003

Description: Implement simple truthiness and if expressions.

Acceptance Criteria:

  • Supports (if condition then else)
  • Handles false-like values consistently
  • Includes tests for both branches