CLAUDE.md:139-140 and AGENTS.md:139-140 (the files are byte-identical apart from line 2) read:
src/process.ts is the real Io.runProcess (capture-only, shell:false) for version probes; src/which.ts is the shared PATH executable lookup.
src/process.ts exports two functions, not one: nodeRunProcess (:17) and nodeRunInteractive (:66). bin/crew.ts:42 imports both from that module and wires them to the two Io fields at :56-57. So the module gloss names one of its two responsibilities.
docs/design/architecture.md:142 already gets this right — "real Io.runProcess (capture-only) + runInteractive (tmux attach)" — which makes the agent guides the drifted side.
The omission is pre-existing, but PR #101 is what turns it into a dangling reference: that change adds runInteractive to the Io seam bullet at :85-91, so the guides now introduce the method to a reader and then never say which module implements it. It was left out of #101 because it falls outside the five bullets #41 enumerates and .github/ISSUE_TRIAGE.md forbids folding adjacent improvements into an issue's PR.
Impact: the module-boundaries list is the section an agent consults to decide where a change belongs. A reader looking for the tmux attach seam finds runInteractive named in the seam bullet, then finds src/process.ts described as being about version probes, and has no pointer from one to the other — the exact navigation the section exists to provide.
Acceptance: the src/process.ts entry in both files names Io.runInteractive alongside Io.runProcess, matching docs/design/architecture.md:142, and the two files stay byte-identical apart from line 2.
CLAUDE.md:139-140andAGENTS.md:139-140(the files are byte-identical apart from line 2) read:src/process.tsexports two functions, not one:nodeRunProcess(:17) andnodeRunInteractive(:66).bin/crew.ts:42imports both from that module and wires them to the twoIofields at:56-57. So the module gloss names one of its two responsibilities.docs/design/architecture.md:142already gets this right — "real Io.runProcess (capture-only) + runInteractive (tmux attach)" — which makes the agent guides the drifted side.The omission is pre-existing, but PR #101 is what turns it into a dangling reference: that change adds
runInteractiveto theIoseam bullet at:85-91, so the guides now introduce the method to a reader and then never say which module implements it. It was left out of #101 because it falls outside the five bullets #41 enumerates and.github/ISSUE_TRIAGE.mdforbids folding adjacent improvements into an issue's PR.Impact: the module-boundaries list is the section an agent consults to decide where a change belongs. A reader looking for the
tmux attachseam findsrunInteractivenamed in the seam bullet, then findssrc/process.tsdescribed as being about version probes, and has no pointer from one to the other — the exact navigation the section exists to provide.Acceptance: the
src/process.tsentry in both files namesIo.runInteractivealongsideIo.runProcess, matchingdocs/design/architecture.md:142, and the two files stay byte-identical apart from line 2.