docs: align winget release docs with workflow details

Refine the winget section of AGENTS.md to match what release-winget.yml actually does: document the |x64/|arm64 URL suffix that wingetcreate needs to match installer entries (without it, 'sigit-win-amd64.exe' is not a spelling it recognises), the SHA256 uppercase convention for the first-submission render path, and the --release-date/--release-notes-url/ --submit/--no-open flags the update path passes explicitly. Simplify the PAT description — the classic-PAT requirement is already covered by the release skill. Co-Authored-By: siGit Code v1.5.12-acp <noreply@sigit.si>

Seto Elkahfi committed Oct 4, 2026 at 12:33 UTC 64e12cae9b5adeb80babf12ba7afcdec52440626
1 file changed +14 -10
.agents/AGENTS.md
+14 -10
@@ -376,16 +376,20 @@ Three of these need credentials or a one-time manual step before they work:
376
377 - Scoop needs a `getsigit/scoop-bucket` repo and a `SCOOP_BUCKET_TOKEN` secret, mirroring the
378 Homebrew tap setup.
379 -- winget needs a `WINGET_TOKEN` (**classic PAT** with `public_repo` scope, not a
380 - fine-grained PAT — a fine-grained PAT is scoped to specific repos and cannot fork
381 - `microsoft/winget-pkgs`, which lives outside its scope; v1.5.13 failed eight times on
382 - this) so `wingetcreate` can fork `microsoft/winget-pkgs`. It is passed as
383 - `WINGET_CREATE_GITHUB_TOKEN` rather than `--token`,
384 - which wingetcreate warns can leak the token into logs. `wingetcreate update` only works on a
385 - package that already exists in `microsoft/winget-pkgs`, so the workflow checks the
386 - `manifests/g/getSigit/siGitCode` path first and falls back to rendering
387 - `packaging/winget/*.yaml.in` and running `wingetcreate submit` for a first submission. That
388 - fallback runs once, then every later release takes the `update` path.
379 +- winget needs a `WINGET_TOKEN` (PAT with `public_repo` scope) so `wingetcreate` can fork
380 + `microsoft/winget-pkgs` and open the manifest PR. It is passed as
381 + `WINGET_CREATE_GITHUB_TOKEN` rather than `--token`, which wingetcreate warns can leak the
382 + token into logs. `wingetcreate update` only works on a package that already exists in
383 + `microsoft/winget-pkgs`, so the workflow checks the `manifests/g/getSigit/siGitCode` path
384 + first and falls back to rendering `packaging/winget/*.yaml.in` and running
385 + `wingetcreate submit` for a first submission. That fallback runs once, then every later
386 + release takes the `update` path. Two non-obvious things in the update path: the `--urls`
387 + arguments carry a trailing `|x64` / `|arm64` suffix that tells wingetcreate which installer
388 + entry each URL replaces — without it, wingetcreate guesses from the file name, and
389 + "sigit-win-amd64.exe" is not a spelling it recognises; and the first-submission render
390 + uppercases the SHA256 (`tr '[:lower:]' '[:upper:]'`) to match the community validation
391 + pipeline, which writes 64-hex checksums uppercase. The update path also passes
392 + `--release-date`, `--release-notes-url`, `--submit`, and `--no-open` explicitly.
393 - The AUR needs `AUR_USERNAME`, `AUR_EMAIL`, and `AUR_SSH_PRIVATE_KEY`. It publishes `sigit-bin`
394 (a prebuilt binary) so Arch users are not compiling the on-device inference stack to install a
395 CLI.