Package proc holds the process-group primitives every harness adapter needs.
It lives under harness/internal so the two adapters share one implementation
of "start the child in its own group, and kill the whole group on cancel"
rather than each carrying a platform-split copy of it.
KillGroup signals the whole group led by cmd. A harness starts compilers,
test runners and git; signalling only the direct child leaves those holding
the task worktree.