Skip to content

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.

Code: Apache 2.0. Content: CC0 1.0. No game material: bring your own copy.