mirror of
https://github.com/khodges42/nightShift.git
synced 2026-06-14 10:08:37 +00:00
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.
1.0 KiB
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