nightshift/.nightshift/runs/20260517T212359.709956Z/tasks/TASK-001/context-pack.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

61 lines
915 B
Markdown

# Context Pack
Task: `TASK-001`
Title: Parse Lisp expressions
## Acceptance Criteria
- Parses numbers
- Parses symbols
- Parses nested lists
- Raises useful errors for unbalanced parentheses
- Includes unit tests
## Constraints
- Scoped paths: .
- Repository lookups are read-only.
- Excerpts are line-numbered where files are read directly.
## Relevant Files
```text
lisp.py
tests/__init__.py
tests/test_lisp.py
```
## Search Results
### Search: parse
```text
tasks.md:21: Evaluate parsed arithmetic expressions.
```
### Search: lisp
```text
nightshift.yaml:2: name: tiny-lisp
```
### Search: expressions
```text
tasks.md:3: - [ ] TASK-001: Parse Lisp expressions
tasks.md:21: Evaluate parsed arithmetic expressions.
tasks.md:47: Implement simple truthiness and `if` expressions.
```
### Search: parses
```text
No matches found.
```
### Search: numbers
```text
tasks.md:9: - Parses numbers
```