Files
james.maesandClaude Fable 5.1 ae174f5495 fix(pr): exempt file-licensed packages, accept the security type, and keep the DCO check robust (#4)
Found while bringing gclo into conformance (KofTwentyTwo/gclo#62).

## What

- `pr.yml`: new `allow-dependencies-licenses` input (package URLs)
passed to `actions/dependency-review-action`, for packages whose nuspec
declares a license *file* (the dependency graph reports `NOASSERTION` /
`LicenseRef-scancode-unknown`). gclo's `LibGit2Sharp`,
`Microsoft.WindowsAppSDK` and `Microsoft.Windows.SDK.BuildTools` fail
`pr / dependency-review` on every change otherwise (see gclo#70).
- `pr.yml`: the title check accepts `security`, which `policies/sdlc.md`
lists as an allowed type; `sdlc.md` gains `style`, which the check
already accepted.
- `pr.yml`: DCO check bug: for a commit whose author email is not linked
to a GitHub account, `.author.login` is null and the TSV field is empty;
bash's tab `IFS` collapses adjacent tabs, the columns shift, and the
check reports "no Signed-off-by" for a commit that has one. The login is
written as `-` now.
- `exceptions/register.md`: EX-0003 (gclo's libgit2
GPL-2.0-with-linking-exception and Windows SDK license terms,
K22-DEP-02) and EX-0004 (gclo's in-repository release workflow until the
shared reusable release workflow exists, K22-CI-30 / K22-REL-04);
EX-0002's "current state" now says gclo ships `SHA256SUMS` and
attestations since v1.0.1-beta.1.
- `configs/shell/PSScriptAnalyzerSettings.psd1`: `CheckOperator` and
`PSAlignAssignmentStatement` contradict each other on every aligned
multi-line hashtable (including this settings file); alignment is the
Kingsrook rule, so `CheckOperator` is off.
- `MAINTAINERS.md`: gclo's adoption status.

## How it was tested

- `actionlint` clean; YAML parses.
- The DCO failure mode and the license failure were both observed on
gclo pull requests today (gclo#68 before the author email was fixed;
gclo#70).
- PSScriptAnalyzer 1.25.0 with the changed settings: gclo's four scripts
report 0 findings; with the original settings the aligned hashtables in
the settings file itself are flagged.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

---------

Signed-off-by: James Maes <james@kof22.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
2026-10-09 10:55:01 -05:00
..

Shell and PowerShell

Implements the Shell and PowerShell profile.

File Copy to Purpose
.shellcheckrc repository root ShellCheck with every optional check enabled
editorconfig-shfmt.ini merge into .editorconfig shfmt layout: 3-space indent, next-line function braces, leading binary operators
PSScriptAnalyzerSettings.psd1 repository root PSScriptAnalyzer and Invoke-Formatter: Allman braces, 3-space indent, no aliases, no Write-Host, comment-based help

Bash

shellcheck $(git ls-files '*.sh')
shfmt --diff .          # CI
shfmt --write .         # fix

PowerShell

Install-Module PSScriptAnalyzer -Scope CurrentUser
Invoke-ScriptAnalyzer -Path . -Recurse -Settings ./PSScriptAnalyzerSettings.psd1 -EnableExit
Invoke-Formatter -ScriptDefinition (Get-Content script.ps1 -Raw) -Settings ./PSScriptAnalyzerSettings.psd1

IDEs

  • VS Code: ShellCheck and shfmt extensions; the PowerShell extension with powershell.codeFormatting.preset: Allman and powershell.scriptAnalysis.settingsPath (see ../vscode).
  • JetBrains: the Kingsrook IntelliJ scheme already sets Shell Script to 3-space indentation; install the Shell Script plugin's shellcheck integration.

Verified

PSScriptAnalyzer 1.25.0: a Kingsrook-style function passes with no findings; a same-line brace, 4-space indentation, Write-Host, and missing help are each reported, and Invoke-Formatter rewrites the bad script to next-line braces and 3-space indentation. ShellCheck and shfmt settings follow their documented keys and were not run here.