line-ending-normalizer — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited line-ending-normalizer (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Normalize line endings for cross-platform compatibility.
export type LineEnding = 'lf' | 'crlf' | 'mixed';
export function detectLineEnding(content: string): LineEnding {
const crlf = (content.match(/\r\n/g) || []).length;
const lf = (content.match(/(?<!\r)\n/g) || []).length;
if (crlf > 0 && lf > 0) return 'mixed';
if (crlf > 0) return 'crlf';
return 'lf';
}
export function normalizeLineEndings(content: string, target: 'lf' | 'crlf' = 'lf'): string {
const normalized = content.replace(/\r\n/g, '\n').replace(/\r/g, '\n');
return target === 'crlf' ? normalized.replace(/\n/g, '\r\n') : normalized;
}
// .gitattributes content
export const gitattributes = `
* text=auto eol=lf
*.bat text eol=crlf
*.cmd text eol=crlf
*.ps1 text eol=crlf
*.sh text eol=lf
`;~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.