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
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
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.