// presentation skill — pure helpers for the lint pipeline. // // Each function operates on raw markdown strings or pre-processed pieces. // No fs, no console, no side effects — easy to test in isolation. import { constants as fsConst } from "node:fs"; import { access } from "node:fs/promises"; export async function fileExists(p: string): Promise { try { await access(p, fsConst.F_OK); return true; } catch { return false; } } export function extractLayout(body: string): string { const m = //i.exec(body); return m ? m[1] : "content"; } export function hasLayoutDirective(body: string): boolean { return /