Bug Description
All JSON assessment output paths produce files without a trailing newline. This violates POSIX conventions and causes `git diff` to show `\ No newline at end of file` on every submission to the leaderboard, as seen in PR #424.
To Reproduce
- Run `agentready assess `
- Inspect the generated `.agentready/assessment-*.json`
- Check: `xxd .agentready/assessment-*.json | tail -1` — the last byte is `7d` (`}`), not `0a` (`\n`)
Expected Behavior
All generated JSON files end with a trailing newline (`\n`), consistent with POSIX conventions and the behavior of tools like `jq`.
Actual Behavior
Generated JSON files end with `}` and no newline. Git diffs show `\ No newline at end of file`.
Affected Code
Four write sites, all missing a trailing newline:
| File |
Line |
Pattern |
| `src/agentready/reporters/json_reporter.py` |
34 |
`json.dumps(...)` passed to `_write_file()` with no `\n` |
| `src/agentready/reporters/aggregated_json.py` |
38 |
`json.dump(f)` with no `f.write("\n")` after |
| `src/agentready/cli/main.py` |
324 |
`json.dump(f)` with no `f.write("\n")` after |
| `src/agentready/cli/demo.py` |
493 |
`json.dump(f)` with no `f.write("\n")` after |
Possible Solution
- In `json_reporter.py`: append `+ "\n"` to the `json.dumps()` result before passing to `_write_file()`
- In the three direct `json.dump()` call sites: add `f.write("\n")` on the line after each dump
The fix should be accompanied by unit tests that assert the written file ends with `\n`.
Environment
Bug Description
All JSON assessment output paths produce files without a trailing newline. This violates POSIX conventions and causes `git diff` to show `\ No newline at end of file` on every submission to the leaderboard, as seen in PR #424.
To Reproduce
Expected Behavior
All generated JSON files end with a trailing newline (`\n`), consistent with POSIX conventions and the behavior of tools like `jq`.
Actual Behavior
Generated JSON files end with `}` and no newline. Git diffs show `\ No newline at end of file`.
Affected Code
Four write sites, all missing a trailing newline:
Possible Solution
The fix should be accompanied by unit tests that assert the written file ends with `\n`.
Environment