Go Lint Capture Flow
The runtime flow is:
- A small installed shim dispatches into the compiled coding-ethos runtime.
- The Go dispatcher builds a
lintcapture.Requestfrom the tool name, original argv, invocation cwd, consumer repo root, ethos checkout root, managed tool path, output format, and trace root. - Go loads the merged consumer config once and derives package-relative lint source roots from policy data.
- Go validates generated tool config integrity before the managed linter runs.
- Go resolves lint targets against invocation cwd, consumer root, configured package roots, and globs while rejecting repo-escaping config.
- Go resolves the managed executable or wrapper from
toolcatalogcapabilities, not hostPATH. - The managed linter runs with forced machine-readable output.
- Diagnostics are parsed, enriched with compiled policy evidence maps, logged
under
.coding-ethos/lint-runs, and rendered as TOON or human output.
Shell now only does stable process handoff. It does not own lint tool lists, target resolution, config integrity, managed executable selection, output-format coercion, or policy result rendering.