Skip to navigation

The SignOff checks

Before your agent hands off a site, it runs finish.mjs on the finished files and pastes the result into its final message, unchanged. That block is the SignOff checks. It’s the same in SignOff Kit and SignOff Kit Free.

SignOff checks, run on the finished files (Oct 25, 2026, 4:41 PM)
Design check Passed
Copy check Passed
Page structure Passed
Photo credit Passed
All checks passed.

The time on the first line is when the checks ran. The checks also save a fingerprint of DESIGN.md and every file in site/, and finish.mjs --verify reports any change made after that run, so an edit after the checks can’t slip into the handoff.

What each check covers

CheckWhat it looks at
Design checkRuns design-lint.mjs on DESIGN.md and the site: banned palettes, non-OFL fonts, more than two font families, low-contrast text pairs and font CDNs.
Copy checkRuns copy-lint.mjs on every page (in the paid Kit, against your VOICE.md when there is one): fragment headlines, X. Y. Z. triplets, heavy dashes, banned phrases and copy with no real paragraphs.
Page structureRuns the photo skill’s tag check on every page, so the markup around photo slots is balanced.
Photo creditChecks that every page with Unsplash photos has its credit line inside the footer’s content column.

What the results mean

ResultMeaning
PassedThe check ran on the finished files and found nothing to fix.
Needs another passThe check found something. The agent fixes it from the details and runs the checks again.
Not part of this setupThat check’s skill isn’t installed in this project, so there’s nothing to run.
No photos on the pageThe site has no photos, so there’s no credit line to check.

The last line sums it up: All checks passed. when every check is clean, or a count such as 1 check still to finish. when the agent still has work to do. The agent fixes what the details say and runs finish.mjs again before it hands off, so the block you see is normally all Passed.

Running it yourself

You can run the checks any time from your project folder. Use the .cursor or .agents path for Cursor or Codex.

node .claude/skills/site-from-brief/scripts/finish.mjs

In SignOff Kit Free, the script lives in site-from-brief-lite:

node .claude/skills/site-from-brief-lite/scripts/finish.mjs