Working notes for AI agents operating in this repository. End-user docs: README.md.
The developer CLIs of the webtyp ecosystem (gotest, gopush, gonew, codejob, …) and the
library behind them. Commands live in cmd/*; every decision lives in the library.
It runs on the developer's machine and in CI. os, os/exec, path/filepath, strings are
correct here — do not replace them with webtyp.com/* browser packages.
go install ./cmd/gotest # this repo builds its own test runner
gotestcmd/*/main.goonly parses arguments, injects dependencies and maps errors to exit codes; every conditional is an exported library function.- Every repeated string (env keys, file names, prefixes, flags) is a named constant.
- Tests live in
tests/(nevertest/). A root-level test is allowed only with a top-of-file comment justifying the unexported identifier it needs. Never export a symbol so a test can reach it. Tests never touch the real home, real git remotes or the network: build trees undert.TempDir()and use the fake runners intests/. - Reuse before writing. Module discovery,
*.code-workspaceroot detection and walking thego.modfiles of a workspace belong towebtyp.com/modfind: call it, never re-implement it here.