check
Tool
tools/site/check.py(program, Sites). Check a project's website before it is published: safe to share, and useful to read.
Run it with ./gameframe run check ARGS or python3 tools/site/check.py. Source on GitHub.
Its own help
This is the help text in the tool itself, as ./gameframe tool check prints it.
text
Check a project's website before it is published: safe to share, and useful to read.
Usage:
tools/site/check.py SITE_DIR [SITE_DIR ...] for example sites/pod, or site
tools/site/check.py SITE_DIR --json
tools/site/check.py SITE_DIR --days list the past days that still need a day post
options: --today YYYY-MM-DD (the default is the local date), --keep-live
Inputs: one or more VitePress site folders made by scripts/new-site.sh (or written by hand in
the same shape: Markdown pages, a diary/ folder of entries). The diary has two kinds of entry:
live entries, written during the day and named YYYY-MM-DD-HHMM-slug.md (the time they were
written), and one day post per past day, named YYYY-MM-DD-slug.md, which gathers that day's
live entries and links each of them. The live entries stay; the diary lists only the day post
for a past day (the re-site skill, "Consolidate each past day").
Errors (exit status 1):
- a game file in the site (an .exe, .dll, .pak, ROM image and the other extensions the commit
gate blocks), or any file over 5 MB;
- lines that look like Ghidra's decompiled code, in a page or in a document a page includes;
- an <!--@include: PATH--> whose file does not exist;
- a diary entry without a title or a summary in its front matter, or with a file name that is
not YYYY-MM-DD-slug.md or YYYY-MM-DD-HHMM-slug.md;
- live entries from a day before today with no day post: write that day's post. --keep-live
turns this off, for a project that writes no day posts;
- a day post that does not link each of its day's live entries (by file name, such as
./2026-10-25-1430-fog-tables);
- a TODO(site) line left from the template.
Warnings (printed, exit status 0):
- a diary entry that reads like a commit log: three or more commit hashes, or more than half
of its lines are bullets that start with a commit verb (Add, Fix, Update, Merge ...);
- a day post under 120 words (a note, not a post: fold it into the next one) or over 2,500 words
(split it, or move the reference part into docs/). Live entries may be short;
- two day posts for the same day;
- a picture over 1 MB.
Output: one line per problem, `error` or `warn`, with the file. With --json, a list of
{level, file, message}.
It does not build the site (run `npm run build`, which also finds dead links), judge the prose,
or check that a picture was made by the project's own code: that is the re-site skill's checklist.Named by
Skills: re-site.
Agents: re-publisher.