Harness Intelligence Wiki
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:planCommitGateOutput
  • packages/scaffold/src/context-plan.ts:QualityCommandContract

Observed constraint:

  • Current scaffold output serializes owner, repository-relative path, lint, and formatCheck; 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 path is relative to that worktree root.
  • A legacy root field 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:run
  • apps/cli/src/data/scripts/commit-gate-runner.mjs:failure rendering

Observed constraint:

  • Node reports a missing working directory as a launch-time ENOENT with 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 runner
  • apps/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.

On this page