Where poly starts a process or opens a socket

Where poly starts a process or opens a socket An architecture diagram generated by Archify. poly-mine · runs polyx and polyness · Process seam (packages): Only these two packages may start a child process poly-mine runs polyx and polyness poly-new · drafts source with a model · Process seam (packages): Only these two packages may start a child process poly-new drafts source with a model polyx · rule miner, pinned · Architecture component polyx rule miner, pinned Claude Code (headless) · drafts poly source · Architecture component Claude Code (headless) drafts poly source poly-io · the only network code · Architecture component poly-io the only network code Channel providers · mail, chat, SMS · Architecture component Channel providers mail, chat, SMS mine rules · spawn draft in print mode · spawn send and receive messages · HTTPS Process seam (packages): Only these two packages may start a child process Legend Backend Security External

The short answer

  • • Only poly-mine and poly-new start processes, and only poly-io opens sockets
  • • the check path imports neither, and the scripts that enforce it run in CI

Not shown here

  • • The runtime's own internals, which perform no network or process work
  • • Connected but out of scope: MCP server, poly CLI, Feedback commands, polyness, Check pipeline, Handler capabilities

Constraints

  • • In packages/, only poly-new and poly-mine may start a process: every child process of the product is then one of three named tools, started with a fixed argument vector, a fresh environment, a pin check, a timeout and an output cap. The demo is outside packages/ and starts a process in three places only (the replay driver, its scripts and the stand-in's key tool), which rule 7 names
  • • No check package imports poly-io: network code lives in poly-io alone, so nothing on a check path can open a socket
  • • No language-model call decides a verdict or a gate decision: a verdict must be a function of the program and the semantics. The one way to a model is poly new, which the CLI and the MCP server load by name; its drafts go back through the pipeline and are never admitted by it.