What
foundryvtt-module-scaffold emits .github/workflows/renovate.yml into every generated module:
foundryvtt-plugin/skills/foundryvtt-module-scaffold/scaffold.py:543 (the RENOVATE_YML body, name: Renovate, calling laurigates/.github/.github/workflows/reusable-renovate.yml@main)
foundryvtt-plugin/skills/foundryvtt-module-scaffold/scaffold.py:1251 (written as .github/workflows/renovate.yml)
foundryvtt-plugin/templates/foundryvtt-module/cargo-generate.toml:21 (same path in the template's file list)
The caller passes no app-id, so reusable-renovate.yml falls back to secrets.GITHUB_TOKEN and the run authenticates as github-actions[bot].
Why it's a bug
gitops hosts a centralized autodiscover Renovate runner (RENOVATE_AUTODISCOVER=true, filter laurigates/*) that already covers every repo in the account, authenticating as the laurigates-renovate App. A generated module therefore ends up with two Renovate instances under two bot identities.
Renovate locates its dependency dashboard by title but only among issues it created — getIssues() passes user: config.renovateUsername into a GraphQL query filtered by filterBy: { createdBy: $user }. Two identities keep two dashboards, indefinitely.
Prior art
The ComfyUI pack fleet hit exactly this and deleted the repo-local workflow fleet-wide on 2026-08-16; comfyui-plugin/skills/comfyui-node-scaffold/fleet-policy.toml documents why it must stay absent, and comfyui-node-scaffold/scripts/tests/test-finishing-pass.sh:139 asserts no renovate.yml is emitted.
claude-plugins itself carried the same leftover — removed in #2707, which is what surfaced this.
Proposed fix
- Stop emitting
renovate.yml from scaffold.py and drop it from cargo-generate.toml's file list; keep renovate.json, which is what the surviving App reads (gitops/renovate-config.js sets requireConfig: "optional" and merges per-repo config on top).
- Add the absence assertion to the scaffold's test suite, mirroring
test-finishing-pass.sh.
- Sweep already-generated foundry modules for the leftover workflow and its orphaned
github-actions[bot] dashboard.
This is the code-scaffold-backport shape in reverse: the instance class was fixed for ComfyUI packs and for this repo, but a second generator still emits the defect.
Refs #2707
🤖 Generated with Claude Code
https://claude.ai/code/session_01SiP9vubrujTJNFLcmBUQvM
What
foundryvtt-module-scaffoldemits.github/workflows/renovate.ymlinto every generated module:foundryvtt-plugin/skills/foundryvtt-module-scaffold/scaffold.py:543(theRENOVATE_YMLbody,name: Renovate, callinglaurigates/.github/.github/workflows/reusable-renovate.yml@main)foundryvtt-plugin/skills/foundryvtt-module-scaffold/scaffold.py:1251(written as.github/workflows/renovate.yml)foundryvtt-plugin/templates/foundryvtt-module/cargo-generate.toml:21(same path in the template's file list)The caller passes no
app-id, soreusable-renovate.ymlfalls back tosecrets.GITHUB_TOKENand the run authenticates asgithub-actions[bot].Why it's a bug
gitopshosts a centralized autodiscover Renovate runner (RENOVATE_AUTODISCOVER=true, filterlaurigates/*) that already covers every repo in the account, authenticating as thelaurigates-renovateApp. A generated module therefore ends up with two Renovate instances under two bot identities.Renovate locates its dependency dashboard by title but only among issues it created —
getIssues()passesuser: config.renovateUsernameinto a GraphQL query filtered byfilterBy: { createdBy: $user }. Two identities keep two dashboards, indefinitely.Prior art
The ComfyUI pack fleet hit exactly this and deleted the repo-local workflow fleet-wide on 2026-08-16;
comfyui-plugin/skills/comfyui-node-scaffold/fleet-policy.tomldocuments why it must stay absent, andcomfyui-node-scaffold/scripts/tests/test-finishing-pass.sh:139asserts norenovate.ymlis emitted.claude-plugins itself carried the same leftover — removed in #2707, which is what surfaced this.
Proposed fix
renovate.ymlfromscaffold.pyand drop it fromcargo-generate.toml's file list; keeprenovate.json, which is what the surviving App reads (gitops/renovate-config.jssetsrequireConfig: "optional"and merges per-repo config on top).test-finishing-pass.sh.github-actions[bot]dashboard.This is the
code-scaffold-backportshape in reverse: the instance class was fixed for ComfyUI packs and for this repo, but a second generator still emits the defect.Refs #2707
🤖 Generated with Claude Code
https://claude.ai/code/session_01SiP9vubrujTJNFLcmBUQvM