Parent: #277
Problem
Agents run lint commands as quality gates, but the full ESLint output floods the context window with noise. Additionally, the orchestrated-coder hardcodes quality gate commands, but not all projects use the same tools.
Context
The nmr CLI in @williamthorsen/node-monorepo-core executes workspace scripts via runCommand() with stdio: 'inherit'. The orchestrated-coder subagent runs quality gates after implementation but has no way to customize commands per project.
Solution
1. nmr --quiet flag (in node-monorepo-tools repo):
- Parse
--quiet / -q in cli.ts
- In
runner.ts, when quiet: capture stdout/stderr (pipe instead of inherit). On success: no output. On failure: print captured output.
2. qualityGates in preferences.yaml (in this repo):
- Add
qualityGates section to .agents/preferences.yaml with two subsections:
fix: mutating commands run before committing (lint auto-fix, format)
check: read-only verification commands (strict lint, typecheck, test)
- Update orchestrated-coder to read
qualityGates from .agents/preferences.yaml. If absent, fall back to current defaults.
qualityGates:
fix:
lint: nmr --quiet lint
format: nmr --quiet fmt
check:
lintStrict: nmr --quiet lint:strict
typecheck: tsgo --noEmit
test: pnpm run test
Acceptance criteria
Parent: #277
Problem
Agents run lint commands as quality gates, but the full ESLint output floods the context window with noise. Additionally, the orchestrated-coder hardcodes quality gate commands, but not all projects use the same tools.
Context
The
nmrCLI in@williamthorsen/node-monorepo-coreexecutes workspace scripts viarunCommand()withstdio: 'inherit'. The orchestrated-coder subagent runs quality gates after implementation but has no way to customize commands per project.Solution
1.
nmr --quietflag (innode-monorepo-toolsrepo):--quiet/-qincli.tsrunner.ts, when quiet: capture stdout/stderr (pipeinstead ofinherit). On success: no output. On failure: print captured output.2.
qualityGatesin preferences.yaml (in this repo):qualityGatessection to.agents/preferences.yamlwith two subsections:fix: mutating commands run before committing (lint auto-fix, format)check: read-only verification commands (strict lint, typecheck, test)qualityGatesfrom.agents/preferences.yaml. If absent, fall back to current defaults.Acceptance criteria
nmr --quietproduces no output on success, full output on failurenmr --quietworks with any command (generic flag)qualityGatesfrom.agents/preferences.yamlqualityGatesis absentfixcommands → stage → runcheckcommands → commit