Part of #6440.
Fields with NO `settings.` equivalent today, reachable only via the secondary `gate:` block: `gatePack` (`gate.pack`), `slopGateMode`/`slopGateMinScore`/`slopAiAdvisory` (`gate.slop.`), `mergeReadinessGateMode` (`gate.mergeReadiness`), `manifestPolicyGateMode` (`gate.manifestPolicy`), `linkedIssueSatisfactionGateMode` (`gate.linkedIssueSatisfaction` + `review.linkedIssueSatisfaction` fallback), `requireFreshRebaseWindowMinutes` (`gate.requireFreshRebaseWindow`), `aiReviewLowConfidenceDisposition` (`gate.aiReview.lowConfidenceDisposition`).
First: confirm each is actually wired through `applyGateConfigOverrides` (unconfirmed by the initial audit pass — only the `settings:`-paired aliases were independently traced). Then: give each a `settings.*` field to match the dual-path pattern already established elsewhere, OR consolidate on `gate:` alone and update docs — pick one canonical location, don't just add a second.
Also in scope: `firstTimeContributorGrace` is parsed via `gate.firstTimeContributorGrace` but marked RESERVED/INERT (#2266) — never read by the gate evaluator. Either wire it into the evaluator for real, or remove the dead parsing/manifest surface so `.loopover.yml` stops implying a working toggle.
Part of #6440.
Fields with NO `settings.` equivalent today, reachable only via the secondary `gate:` block: `gatePack` (`gate.pack`), `slopGateMode`/`slopGateMinScore`/`slopAiAdvisory` (`gate.slop.`), `mergeReadinessGateMode` (`gate.mergeReadiness`), `manifestPolicyGateMode` (`gate.manifestPolicy`), `linkedIssueSatisfactionGateMode` (`gate.linkedIssueSatisfaction` + `review.linkedIssueSatisfaction` fallback), `requireFreshRebaseWindowMinutes` (`gate.requireFreshRebaseWindow`), `aiReviewLowConfidenceDisposition` (`gate.aiReview.lowConfidenceDisposition`).
First: confirm each is actually wired through `applyGateConfigOverrides` (unconfirmed by the initial audit pass — only the `settings:`-paired aliases were independently traced). Then: give each a `settings.*` field to match the dual-path pattern already established elsewhere, OR consolidate on `gate:` alone and update docs — pick one canonical location, don't just add a second.
Also in scope: `firstTimeContributorGrace` is parsed via `gate.firstTimeContributorGrace` but marked RESERVED/INERT (#2266) — never read by the gate evaluator. Either wire it into the evaluator for real, or remove the dead parsing/manifest surface so `.loopover.yml` stops implying a working toggle.