Skip to content

Automate Superpowers upgrade pull requests #139

Description

@rochecompaan

Summary

Add an independent GitHub Actions workflow that detects newer stable obra/superpowers releases, updates Patchmill's pinned Superpowers dependency and skill-pack metadata, validates the complete integration, and opens a dedicated review-gated pull request.

The Superpowers upgrade must not be combined with Pi runtime dependency upgrades.

Requirements

  • Run the dedicated Superpowers upgrade workflow daily, with manual target and validate-only inputs.
  • Discover stable GitHub Releases only; exclude drafts and prereleases.
  • Keep the canonical dependency form:
    https://github.com/obra/superpowers/archive/refs/tags/vX.Y.Z.tar.gz.
  • Open a separate branch and PR such as automation/superpowers-v6.2.0.
  • Include the complete upstream release body for every stable release after the current pin through the target, ordered oldest to newest.
  • Fail before PR creation if any required release notes are missing or empty.
  • Synchronize and validate:
    • package.json
    • package-lock.json
    • npm-shrinkwrap.json
    • nix/package.nix
    • src/workflow/skill-pack.ts
    • THIRD_PARTY_NOTICES.md
    • .patchmill/skills and its generated metadata/hashes
  • Verify every configured Superpowers skill exists in the installed upstream package.
  • Preserve and validate changed-file rollback without relying on Git inside the updater.
  • Mint the automation App token only after all validation passes.
  • Keep the existing Pi dependency workflow behavior unchanged.
  • Do not auto-merge or publish upgrade PRs.

Validation

A proposed upgrade must pass:

npm ci
node --test src/cli/commands/init/pi-dependency-contract.test.ts
npm test
node scripts/smoke-packed-artifact.mjs
npm run lint
scripts/update-npm-deps-hash.sh
nix build .#patchmill --print-build-logs

Validate the new workflow directly with formatting and actionlint; do not add a test that merely asserts workflow YAML content.

Acceptance criteria

  • A daily run detects a newer stable Superpowers release independently of Pi versions.
  • A Superpowers-only PR is created after successful validation.
  • The PR embeds non-empty notes for every release in the upgrade range.
  • Package, lockfile, Nix, notice, skill-pack source, project-local metadata, and installed skill references agree on the target version.
  • Missing notes, missing configured skills, inconsistent metadata, or failed validation prevent PR creation.
  • No-update and validate-only runs create no branch or PR.
  • The automation implementation itself does not bundle the first Superpowers version bump; that upgrade is proposed separately by the new workflow.

Planning artifacts

Prepared on branch feat/superpowers-auto-upgrade:

  • docs/specs/2026-08-03-superpowers-auto-upgrade-design.md
  • docs/plans/2026-08-03-superpowers-auto-upgrade.md

Metadata

Metadata

Assignees

No one assigned

    Labels

    agent-doneIssue was completed by automationplan-approvedImplementation plan approved for automationspec-approvedSpecification approved for automation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions