Where the drawing surface came from

It was not written here.

api/napkin-sketch/ is a vendored copy of the published @isocialpractice/napkin-sketch build, pinned at 1.1.0, and the project's own documentation site is the reference for what it draws. The copy is written by the package's own command, and nothing in the folder is ever edited - a newer version is vendored into it instead:

npx @isocialpractice/napkin-sketch vendor --list       # the parts, and what each costs a page
npx @isocialpractice/napkin-sketch vendor graphic-design graphic-design/files markdown main \
  --out api/napkin-sketch                              # fetch, verify and write the copy
node api/napkin-sketch/VENDOR-CHECK.mjs                # hash the folder against its record

vendor verifies the tarball against the registry's own SHA-512 before it unpacks a byte, copies each part's entry and every file it reaches, and records a digest per file in api/napkin-sketch/VENDOR.json. VENDOR-CHECK.mjs is written beside it and reads that record with plain node, no install and no network; the Pages workflow runs it before it publishes. vendor refuses to write into a folder holding files it has no record of, so the folder is removed first when the mechanism itself changes.

The hand port beside it

ai-helper/graphic-designer/ is still a hand port, of the design language helper that sits on top of that surface - it reads one finished graphic into a written design language and generates a skill that can draw more work in it. See ai-helper/graphic-designer/README.md for what changed on the way in.

Part of the cheatsheets documentation. The repository is on GitHub, and the example page it documents is here.

Contents