agentleFS
spotifyspotify/portal-ai-plugins/skills/fleetshift-create-prs/SKILL.md

fleetshift-create-prs

Skill2.8k starsChanged 3 months agoApache-2.0View on GitHub

Open pull requests from completed Fleetshift shift runs. Use after a shift has run and targets reached a "finished/jobComplete" state — this turns the agent-made changes into reviewable PRs on the target repositories. Requires explicit user confirmation before creating any PRs. Only opens PRs; it never closes, archives, or reverts anything.

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 1 is distinctive, and 6 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 6

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If it isn't, ask the user to run npx @spotify/portal-cli auth login.

    line 19
  2. Very specific:

    If auth list shows more than one Portal instance, confirm which one with the user and pass --instance <name> on every call.

    line 20
  3. Very specific:

    If a Portal MCP server is connected instead, the same actions are available as fleetshift_<action> tools (for example …

    line 22
  4. Very specific:

    Never pass --yes. It confirms actions marked destructive (stop-jobs, close-prs, delete-shift).

    line 26
  5. Distinctive:

    Check the shift's status breakdown and the individual targets before creating anything:

    line 34
  6. Very specific:

    If a target already has a prUrl, it is already covered.

    line 49
  7. Very specific:

    If a target is jobFailed and the user wants it fixed, point to the fleetshift-troubleshoot-shift skill (diagnosis) and fleetshift-run-shift …

    line 87

≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Create PRs from a Fleetshift shift

Once Fleetshift has finished running a shift on a set of targets (the agent job completed successfully), you can open one pull request per completed target. Only targets whose job is complete are eligible for a PR.

Mutating action — explicit confirmation required. Do not call fleetshift:create-prs until the user has explicitly confirmed how many PRs will be opened and for which targets. Ask for a clear "yes" first.

Prerequisites

  • The Portal CLI is authenticated: npx @spotify/portal-cli auth show. If it isn't, ask the user to run npx @spotify/portal-cli auth login. If auth list shows more than one Portal instance, confirm which one with the user and pass --instance <name> on every call.
  • If a Portal MCP server is connected instead, the same actions are available as fleetshift_<action> tools (for example fleetshift_list-shifts). They take the same input, but have no --dry-run, so the confirmation steps below matter even more.
  • Never pass --yes. It confirms actions marked destructive (stop-jobs, close-prs, delete-shift). Only the fleetshift-run-shift kill switch uses it, for stop-jobs.
  • The shift has been run and at least one target reached a completed state (see the fleetshift-run-shift skill).

1. Confirm PRs can be opened (read-only)

Check the shift's status breakdown and the individual targets before creating anything:

# Aggregate: how many targets are jobComplete vs still running/failed
npx @spotify/portal-cli actions fleetshift:get-shift --input '{"shiftName":"<shift-name>"}' --json

# Only the completed targets (the ones PRs would be opened for)
npx @spotify/portal-cli actions fleetshift:get-shift-targets --input '{"shiftName":"<shift-name>","status":"jobComplete"}' --json

# If you have a job identifier from a prior run, you can confirm its status too
npx @spotify/portal-cli actions fleetshift:get-job-status --input '{"jobIdentifier":"<job-identifier>"}' --json
  • Skip targets that are jobRunning or jobFailed. They aren't PR-eligible.
  • If a target already has a prUrl, it is already covered; don't open a duplicate.

2. Confirm explicitly, then create (mutating)

Pass the eligible targets explicitly in targetIds, so only those get PRs. Validate the call with --dry-run first, which opens nothing:

npx @spotify/portal-cli actions fleetshift:create-prs --input '{"shiftName":"<shift-name>","targetIds":["component:default/my-service"]}' --dry-run --json

Present the exact number of PRs and the affected repositories to the user and get explicit confirmation. Then run the same command without --dry-run:

npx @spotify/portal-cli actions fleetshift:create-prs --input '{"shiftName":"<shift-name>","targetIds":["component:default/my-service"]}' --json
  • Confirm the count with the user first (e.g. "This opens 12 PRs — proceed?").
  • create-prs only opens PRs. It never closes, merges, or reverts PRs or branch changes.

3. Verify and report

Confirm each successfully created PR and report it:

npx @spotify/portal-cli actions fleetshift:get-shift-targets --input '{"shiftName":"<shift-name>","status":"jobComplete"}' --json

Link each opened PR (prUrl/prNumber). State clearly that the PRs are created but not merged, and that the user must review/merge them.

Boundaries

  • No destructive actions. This skill never calls stop-jobs, close-prs, delete-shift, or any action that removes or reverts work.
  • If a target is jobFailed and the user wants it fixed, point to the fleetshift-troubleshoot-shift skill (diagnosis) and fleetshift-run-shift (re-run) — both keep their own explicit confirmation requirement.

Download now (ZIP)

Trending

More talk lately.thin dataabout the whole repository

Dec 2025: 0 mentionsJan 2026: 0 mentionsFeb 2026: 0 mentionsMar 2026: 0 mentionsApr 2026: 0 mentionsMay 2026: 0 mentionsJun 2026: 0 mentionsJul 2026: 0 mentionsAug 2026: 0 mentionsSep 2026: 8 mentionsOct 2026: 2 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the spotify/portal-ai-plugins repository that our weekly crawl found: only 10 in all, so this is a hint, not a trend. There is no adoption data for this file yet.

Who's talking about spotify/portal-ai-plugins

The biggest 5 of 10 mentions linking to the repository that our crawl found. Each line is their own headline.

See all 10

Talked about on GitHub and Bluesky (10 times).

On GitHub · 8

3 more on GitHub

On Bluesky · 2

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

Reviews can't be read right now.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.