v0.31.0 Phase 4 Tooling and Practical Integration Review
Result: passed (2026-09-03). Phase 4 adds one ordinary public package and qualifies its authored source across formatter, editor, native, command, and installed-home boundaries. It adds no compiler exception or second subprocess implementation.
Public Package
examples/subprocess-output contains a short package root, one implementation source, and one repository-owned executable helper. capture.nct uses only public standard-library contracts:
- 1.
Command.newvalidates and owns the helper path; Command.argcopies a whitespace-bearing argument;- consuming
Command.outputreturns oneOutput; Output.statusis checked as a typed nonzero exit;Output.stdoutandOutput.stderrare converted throughString.from_utf8because this caller knows the helper's text contract;- both exact strings are validated before a deterministic report is written through
std/io.
The example does not assume UTF-8 in the process API, merge stream order, invoke a shell API, search PATH, expose descriptors, or reproduce launch and drain policy.
Shared Execution Contract
PUBLIC_PACKAGE_EXAMPLES owns the executable helper bytes and exact process result. The same entry is consumed by complete native compilation and public command execution. The installed-home CLI test selects the same catalog entry, builds the authored package against a validated installed standard library, runs it beside its repository helper, and compares exact status, stdout, and stderr.
The formatter recursively discovers the authored example sources. Adding the package therefore extends the existing formatter authority without a second path list. The public examples catalog continues to assert that every directory containing a package index.nct has exactly one runtime contract.
Editor Evidence
The language-server reference-application test opens the real capture.nct. A complete generation has no diagnostic. Hover renders the public Command.output(): Output! signature, definition navigation selects std/process/index.nct, and implementation navigation selects the joined body in command_darwin.nct. An incomplete output.status. expression retains receiver semantics and offers the public code, signal, and success methods.
The test does not embed a copied process declaration or infer an implementation filename from syntax. All editor results come from the same compiler query authority used by other package sources.
Findings
No tooling-only source, duplicated process policy, private standard-library dependency, hidden text assumption, caller-owned cleanup step, or conflicting example contract was found. Phase 5 may run the final repository qualification and review directly on this integration boundary.