Skip to content

[Bug] foundryvtt-module-scaffold: generated modules get a duplicate Renovate runner #2708

Description

@laurigates

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

  1. 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).
  2. Add the absence assertion to the scaffold's test suite, mirroring test-finishing-pass.sh.
  3. 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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

bugSomething isn't workingfoundryvtt-pluginFoundryVTT plugin related

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions