Repository layoutΒΆ
.
βββ pet.json Manifest (id, name, spriteVersionNumber: 2)
βββ spritesheet.webp The v2 atlas: 1536Γ2288, 8Γ11 cells of 192Γ208
βββ SHA256SUMS Checksums of the two runtime files
βββ VERSION Single source of truth for the version (1.1.0)
βββ source/
β βββ frames/<state>/NN.png Normalized per-state frames (the remixable bit)
β βββ row-strips/*.png Selected generated source strips incl. look rows
βββ qa/ Contact sheet, look-direction sheet, GIF previews,
β blind/semantic/continuity/chroma JSON reports
βββ scripts/
β βββ install.sh Bootstrap installer (checkout + curl | sh modes)
β βββ validate.py Contract validator (runs in CI)
β βββ build-v1-spritesheet.py Crops the v1 (9-row) sheet for ChatGPT web upload
βββ packaging/
β βββ bin/clippy-pet POSIX sh CLI shared by every installer
β βββ share/ man page, .desktop launcher, autostart, AppStream, icon
β βββ dist/make-tarballs.sh Reproducible runtime tarballs
β βββ linux/ nFPM config (deb/rpm/apk/arch), Debian copyright/changelog
β βββ macos/ .app/.pkg/.dmg build, postinstall, distribution.xml
β βββ keys/ Public GPG + apk signing keys
βββ docs/ This site (MkDocs Material); docs/requirements.txt
βββ mkdocs.yml Β· overrides/ Site config and theme overrides
βββ .github/workflows/
β βββ validate.yml Contract validation + old-name guard
β βββ packaging-ci.yml Lint, build, smoke-test packages in containers + macOS
β βββ release.yml Tag β build, checksum, sign, attest, GitHub Release
β βββ docs.yml Build the site; deploy to gh-pages preserving repo paths
βββ CHANGELOG.md Β· CITATION.cff Β· CONTRIBUTING.md Β· CODE_OF_CONDUCT.md
βββ GOVERNANCE.md Β· SECURITY.md Β· SUPPORT.md Β· AUTHORS.md Β· NOTICE.md Β· LICENSE
βββ Makefile validate Β· checksums Β· lint Β· dist Β· v1 Β· docs Β· docs-serve
Why the tarball is 1.5 MB and the repo is 19 MBΒΆ
source/ and qa/ are the evidence and the raw material: hundreds of PNG frames, previews, and reports. Users don't need them, so .gitattributes marks both export-ignore and every installer pulls the runtime tarball built by packaging/dist/make-tarballs.sh (CLI, payload, man page, desktop bits, licence, notice) instead of GitHub's auto-generated source archive.
The gh-pages branchΒΆ
This site is published to the gh-pages branch, which also hosts things that aren't the site: install.sh, keys/, and (planned) the apt/, rpm/, alpine/, conda/, flatpak/ repositories. The docs workflow syncs the built site into the branch while excluding those paths, so a docs deploy can never delete a package repo. Details in the packaging runbook.
BranchesΒΆ
GitFlow: develop is the default and integration branch; main holds releases only; tags vX.Y.Z on main trigger the release workflow. See Contributing.