Grilling
Issue 204 Portable Commit Gates Grill Log
Issue 204 Portable Commit Gates Grill Log
Source issue: harness-intelligence#204
Branch: Checkout And Worktree Portability
Q1
Prerequisites:
- none
Evidence anchor:
apps/cli/src/scaffold/output.ts:planCommitGateOutputpackages/scaffold/src/context-plan.ts:QualityCommandContract
Observed constraint:
- Current scaffold output serializes
owner, repository-relativepath,lint, andformatCheck; it does not serialize an absolute root. - Legacy v4.0.4 contracts may still contain a machine-specific absolute
root.
Question: Which checkout owns execution when a committed legacy contract names a different machine path?
Code consequence:
- The runner needs one current-checkout authority that works in ordinary clones and linked worktrees.
Accepted answer:
- The active Git worktree root is authoritative.
- Contract
pathis relative to that worktree root. - A legacy
rootfield may remain syntactically readable but must not control execution.
Branch: Failure Diagnostics
Q2
Prerequisites:
- Q1
Evidence anchor:
apps/cli/src/data/scripts/commit-gate-runner.mjs:runapps/cli/src/data/scripts/commit-gate-runner.mjs:failure rendering
Observed constraint:
- Node reports a missing working directory as a launch-time
ENOENTwith an error message and no command stdout or stderr. - The current runner discards that message and reports only exit 1.
Question: What launch failure context must the runner preserve?
Code consequence:
- Aggregated failures need structured launch context in addition to command output.
Accepted answer:
- A failed contract command reports its owner, command kind, resolved working directory, underlying launch error code/message, stdout, and stderr when present.
- Existing aggregate execution and final nonzero exit behavior remain unchanged.
Branch: Compatibility Boundary
Q3
Prerequisites:
- Q1
- Q2
Evidence anchor:
apps/cli/src/data/scripts/commit-gate-runner.test.ts:Commit Gate runnerapps/cli/src/scaffold/generated-gate-scoping.test.ts
Observed constraint:
- Existing tests intentionally put absolute roots in fixtures and do not exercise a moved checkout, stale legacy root, or linked-worktree owner resolution.
Question: Which behavior must remain stable while portability is repaired?
Code consequence:
- Regression coverage must prove legacy recovery without widening the generated contract schema.
Accepted answer:
- Preserve staged-file scoping, deletion exclusion, owner-relative file arguments, parallel lint/format execution, output aggregation, and read-only quality checks.
- Prove stale absolute-root recovery, active-worktree owner cwd, and actionable launch diagnostics.
- Do not add a new absolute-root field or weaken commit-gate/check validation.