Contribute

pscat is built to be picked up mid-stream, by a person or by a coding agent. This page points at the documents that explain how the code is organised, how to change it, and how a change gets merged.

Start here

HANDOFFOrientation for a fresh session: the architecture in one page, the gotchas, and what is still open.
Markdown on GitHub
ArchitectureThe three ideas that explain most of the code, and a map of the source tree.
on this site
ExtendingHow to add an operator or a library, with Ghostscript as the oracle for what is correct.
on this site
AGENTSThe working conventions: build and test commands, commit hygiene, and the code quality bar.
Markdown on GitHub

How the pieces work

ARCHITECTUREThe full design write-up for the interpreter.
Markdown on GitHub
VMHow save and restore work, and the rules for mutating arrays and dictionaries.
Markdown on GitHub
FONTSThe font machinery: Type 3 programs, Type 1 parsing and the runtime catalog.
Markdown on GitHub
Library design docsWhy the paint and dry-media libraries are built the way they are, starting with the dry-media design.
Markdown on GitHub

The paint-loading, canvas-surface, watercolor and typewriter design records are in docs/dev/design/, and docs/dev/README.md indexes every contributor document.

How a change gets merged

Work starts as a GitHub issue, then a feature branch, then a pull request that CI must pass (build, tests, clippy, formatting) before it is merged. SDLC.md records the exact policy. Each piece of work also leaves a short note in notes/, and NOTES.md, in the archive, is the frozen history of the decisions made before that.

To pick something up, browse the open issues; the labels show priority, difficulty and a suggested model for agent sessions.