AttestCompliance Checklist Page
What it does for you
A survey-readiness checklist for home care agencies with a weighted score, owners, an audit trail, and a printable report, built on a sample template that is clearly not legal advice.

Screenshots

In more detail
Attest is a checklist page that shows a home care agency how ready it is for a state licensing survey. Every item has a status, an owner, a due date, notes, and evidence to collect, and the page rolls it all up into a readiness score and a printable report. The checklist itself is a generic sample, not legal advice and not any state's form, and the app says so on every screen and on the printout.
Honest limits
The checklist content is a sample Claude drafted from common survey themes. Every state licenses home care differently, and wording like this would need a real review before anyone relied on it. Storage is browser-only with no accounts, and owners are roles, not named people. The core has a nextDueFromFrequency helper that is tested but not wired into the page yet.
How I built it
This was part of the September 19 one-shot night, one of the parallel Claude Code builders. I directed the scope: survey prep for home care, a readiness score, owners, an audit trail, a print report, and a loud not-legal-advice disclaimer. Claude Code wrote the core module (checklist.js) first, then 150 assertions, then the page. It also drafted the 66 sample items across nine sections. I set the rule that the content is labeled a sample everywhere, with the disclaimer text exported from the core so the banner and the report use the same words.
The first session got interrupted before the write-up, and the page had been edited a few minutes after the screenshots were taken. The second session re-rendered both themes, compared them to the saved screenshots (byte sizes within 0.1 percent), confirmed they were still accurate, and wrote the docs. I made the call to finish rather than rebuild.
What I learned
- A readiness score is only honest if N/A leaves the denominator. Counting N/A as done inflates the score. Giving it null credit and skipping it also means an all-N/A section scores 0 of 0 instead of dividing by zero.
- Parse dates as UTC and do day math with
setUTCDate. Local parsing makes "due in N days" drift by one around daylight saving, and a round-trip check on month and day is what rejects dates like February 30. - Route every edit through one pure
changeFieldfunction and you get the audit trail for free. It skips no-op edits and caps the log at 50 per item so storage does not grow forever. - Build the print report as a plain data model in the core. Then gap ordering and the overdue versus due-soon split can be tested in Node with no browser.
What carried forward
This is the tested-core pattern from #9 through #11 again: the page imports the same module the tests import, so the 150 checks cover the scoring, CSV escaping, import validation, and report model that actually ship. It ran on the standard serve.mjs. It pairs with #22 Hearth, built the same night for the same niche, one for winning families and one for getting ready for the state.
If I took it further
I would split the sample content into per-state template files with a citation field on every item, so an agency could see the actual rule behind each line. I would also wire in the next-due helper so finishing a quarterly item offers the next date.
#024 Built with Claude Code September 20, 2026 150 automated checks