Rules / Format and vendor rules
final-newline
File with line breaks does not end with one.
Source: pubs.opengroup.org (pubs.opengroup.org), read 14 October 2026.
On GitHub: the rule doc and the tests.
All rules73
What it catches#
File with line breaks does not end with one.
A file that has more than one line but does not end with a line break. It is a note, offered so its safe fix can be applied with the others; no agent misreads the file because of it. With --format github notes are not annotated unless you pass --annotate-notes.
Why it matters#
POSIX defines a line as ending with a newline. Text appended later with echo >> or by an agent joins the last line instead of starting a new one.
Bad example#
$ tail -c 20 CLAUDE.md | od -c | tail -2
... u s e p n p m .
echo "Run the linter." >> CLAUDE.md now produces use pnpm.Run the linter. on one line, and so does an agent that appends a rule the same way.
Good example#
$ tail -c 1 CLAUDE.md | od -c
0000000 \n
How to fix#
Add a line break at the end, using the same line ending as the rest of the file. asitis lint --fix-preview=safe prints that diff. Most editors have an "insert final newline" setting.
asitis can make this edit for you. asitis lint --fix-preview prints a unified diff that git apply accepts, and the suggest_fixes MCP tool returns the same diff; nothing is written to disk by either. The fix for this rule is marked safe: it does not change what the file says.
Suppress or configure#
For one finding, put a comment on the line above it. The reason after -- is optional but worth writing:
<!-- asitis-disable-next-line final-newline -- why this one is fine -->
For a whole file:
<!-- asitis-disable-file final-newline -- why this file is an exception -->
For every file, turn it off or change its severity in .asitisrc.json:
{ "rules": { "final-newline": "off" } }
A .asitisrc.json overrides entry limits a change to some paths, and a baseline (asitis lint --format json --write-baseline) accepts today's findings so only new ones fail the build.
Source#
pubs.opengroup.org, read on 14 October 2026.
Related guides
Run the rule
- In your browser, on one file
- In Claude Code, on the project
- In CI, on every pull request
This page is generated from the plugin's rule registry. Edit it on GitHub. False positive? Open an issue with the line it fired on.