chore(editorconfig): drop no-op PowerShell indent_size - #76
Conversation
The `[*.{ps1,psm1,psd1}] indent_size = 4` restated the `[*]` default with no
overriding section in between — a no-op that JetBrains flags as "Redundant
property" (a comment cannot suppress it). PowerShell files continue to inherit
indent_size = 4 from the base, so effective formatting is unchanged; the
deliberate PowerShell-LF rationale remains authoritative in .gitattributes.
Follows the EditorConfig maintainer convention of declaring a narrower section
only when its value differs from the inherited default.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JoUYpSTqfK9xNquuokhSiR
|
Claude finished @kyle-sexton's task in 1m 9s —— View job Review
Verdict: LGTM — no issues found. What the change doesRemoves the -# PowerShell — LF runs on both PowerShell 7 and Windows PowerShell 5.1 (verified
-# empirically). See the .gitattributes note before changing this to crlf.
-[*.{ps1,psm1,psd1}]
-indent_size = 4Is the no-op claim correct?Yes. The Is the LF rationale actually preserved?Yes, and with more detail than the removed comment. The Additional observations
|
|
Claude finished @kyle-sexton's task in 39s —— View job Review
Verdict: LGTM — no issues found. What the change doesRemoves the -# PowerShell — LF runs on both PowerShell 7 and Windows PowerShell 5.1 (verified
-# empirically). See the .gitattributes note before changing this to crlf.
-[*.{ps1,psm1,psd1}]
-indent_size = 4Is the no-op claim correct?Yes. Is the LF rationale preserved?Yes. The Additional observations
|
There was a problem hiding this comment.
Risk: low. Cursor Bugbot completed successfully with no findings requiring human review. Approved — this removes a redundant PowerShell indent_size that duplicated the [*] default with no effective formatting change. No reviewers assigned.
Sent by Cursor Approval Agent: Pull Request Router and Approver
## Summary - add a centralized GitHub Actions runner policy that enforces approved selector routing, public/hosted boundaries, explicit read-only permissions, cancellation-safe literal hosted fallback, and machine-readable hosted exceptions - derive the required literal fallback from the governed policy default, so changing an approved hosted image is a policy/configuration change rather than parser-code surgery - route Standards' 28 eligible private Linux workloads through the governed selector while retaining exact hosted exceptions for policy and control-plane boundaries - recursively validate repository-local reusable workflows and caller/callee permission narrowing without allowing arbitrary secrets, tokens, inputs, labels, or runner expressions - distribute the locked policy runtime and Node version to six enrolled private consumers from one deterministic manifest - harden staged .NET formatting and PSScriptAnalyzer adapters with deterministic cross-platform path semantics and per-target no-profile PowerShell isolation - keep the complete .NET-format named job managed by Standards while each consumer owns only strict data in `.lefthook/dotnet-format.json` - preserve executable source and consumer index modes through distribution - pin every production selector/reusable and Actionlint parity reference to merged `ci-workflows/main` commit `99ac2f8c5b09dbb785d4eaf18465cbd96c30290c` ## Dependencies The final routing contract is the immutable squash merge from melodic-software/ci-workflows#74 (including stacked #76/#77): - `99ac2f8c5b09dbb785d4eaf18465cbd96c30290c` ## Reviewed head `0795d22c89cb8fae11642ede9757e7b43fd5d546` ## Validation Independent author, reviewer, recheck, and integration-review gates all PASS with no findings. - runner-policy adversarial suite: 83/83, including alternate configured hosted-default proof - Standards private self-audit: PASS - .NET/Lefthook adapter: 12/12 - pinned Lefthook 2.1.9 validate, dump, and actual job execution: PASS - independent argv probe: spaces, semicolons, and `$()` remain inert data with `shell:false` - production distribution suite: 114/114 under checksum-pinned yq 4.53.3 in author native Linux and hosted Linux - independent reviewer inspected the exact-head hosted log and confirmed assertions 1 through 114 - exact executable-bit gate: PASS; both source CLIs are index mode `100755` - routing graph: 28 selectors, 28 workloads, 31 actual `ci-status` gates, zero selector gates - final pin proof: exactly 46 merged-main references, zero stale full/short feature-stack references, and 25 preserved transitional compatibility references - all eight changed files reconstruct byte-for-byte from only the two intended SHA/comment substitutions - Actionlint 1.7.12 plus hosted checksum-verified ShellCheck 0.11.0: PASS - all 10 uniquely referenced workflow/action paths exist at the immutable ci-workflows commit - six workflow schemas, Zizmor medium/high, Biome, Markdown, ShellCheck, Gitleaks, full Lefthook, and diff checks: PASS - signed final pin commit: `0795d22c89cb8fae11642ede9757e7b43fd5d546` All 63 hosted checks pass on this exact head. ## Authoritative basis - GitHub Actions workflow syntax and runner routing: https://docs.github.com/en/actions/reference/workflows-and-actions/workflow-syntax - Node cross-platform path semantics: https://nodejs.org/api/path.html#pathwin32 - Lefthook v2.1.9 named-job merge contract: https://github.com/evilmartians/lefthook/blob/v2.1.9/docs/configuration/jobs.md - Lefthook v2.1.9 job templates: https://github.com/evilmartians/lefthook/blob/v2.1.9/docs/configuration/templates.md ## Rollout safety This PR does not change GitHub variables, secrets, runners, repository settings, or live infrastructure. Production routing remains hosted until the IaC and physical canary gates are applied later. <!-- CURSOR_SUMMARY --> --- > [!NOTE] > **High Risk** > Large CI workflow refactor with secrets/vars for runner selection and a new security gate; misconfiguration could break merges or route jobs incorrectly until fleet is live. > > **Overview** > Introduces a **YAML-aware runner policy** (`components/runner-policy`, `.github/runner-policy.json`, `policy.json`) and a hosted **Runner policy** CI lane that tests and enforces it against workflow inventory and repository visibility. > > **CI routing** shifts eligible lint/contract jobs from fixed `ubuntu-latest` to paired `select-runner` + workload jobs using `needs.select-*.outputs.runner || 'ubuntu-24.04'`, `if: ${{ !cancelled() }}`, and `merge_group` support. Control-plane jobs (runner-policy gate, ci-status, zizmor, osv-scanner) stay on explicit hosted runners with documented exceptions. `ci-status` now requires `runner-policy`, treats only `success` as pass (not `skipped`), and pins several workflows to `ci-workflows@99ac2f8`. > > **Local hooks:** Lefthook .NET formatting moves to a consumer-owned `.lefthook/dotnet-format.json` and `dotnet-format-staged.mjs` (shell-less `dotnet format whitespace`). PSScriptAnalyzer staged checks run **one target per fresh `pwsh` worker**; `PSUseCorrectCasing` is removed from settings. Dependabot gains an npm root for `components/runner-policy`. > > <sup>Reviewed by [Cursor Bugbot](https://cursor.com/bugbot) for commit 0795d22. Bugbot is set up for automated code reviews on this repo. Configure [here](https://www.cursor.com/dashboard/bugbot).</sup> <!-- /CURSOR_SUMMARY -->


What
Remove the
[*.{ps1,psm1,psd1}] indent_size = 4section from.editorconfig.Why
The value restated the
[*]default (indent_size = 4) with no overridingsection in between, so it was a no-op. JetBrains Rider/ReSharper flags this
exact case as a "Redundant property" inspection, which a comment cannot
suppress. The EditorConfig maintainers' own convention
is to declare a narrower section only when its value differs from the
inherited default.
Impact
None on effective formatting — PowerShell files (
.ps1/.psm1/.psd1) continueto inherit
indent_size = 4from[*]. The deliberate PowerShell-LF rationalewas not lost: it remains authoritative in
.gitattributes(this file's ownheader already defers all line-ending policy there;
end_of_linehere is aneditor hint only).
Propagation
Consumers that vendored this config (
.github,github-iac, …) will pick upthe removal on their next standards sync.
🤖 Generated with Claude Code
Note
Low Risk
Config-only cleanup with no change to effective indentation or line-ending behavior.
Overview
Removes the
[*.{ps1,psm1,psd1}]EditorConfig block that setindent_size = 4and carried a PowerShell LF comment. That indent value duplicated the global[*]default, so Rider/ReSharper treated it as a redundant property.PowerShell files still get 4-space indentation from
[*]and LF line endings from.gitattributes(unchanged); only the duplicate editor hint and its comment are gone.Reviewed by Cursor Bugbot for commit 923dc5a. Bugbot is set up for automated code reviews on this repo. Configure here.