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
- Very specific: line 19
If it isn't, ask the user to run npx @spotify/portal-cli auth login.
- Very specific: line 20
If auth list shows more than one Portal instance, confirm which one with the user and pass --instance <name> on every call.
- Very specific: line 22
If a Portal MCP server is connected instead, the same actions are available as fleetshift_<action> tools (for example …
- Very specific: line 26
Never pass --yes. It confirms actions marked destructive (stop-jobs, close-prs, delete-shift).
- Distinctive: line 34
Check the shift's status breakdown and the individual targets before creating anything:
- Very specific: line 49
If a target already has a prUrl, it is already covered.
- Very specific: line 87
If a target is jobFailed and the user wants it fixed, point to the fleetshift-troubleshoot-shift skill (diagnosis) and fleetshift-run-shift …
≈ “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.
Files
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-prsuntil 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 runnpx @spotify/portal-cli auth login. Ifauth listshows 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 examplefleetshift_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 thefleetshift-run-shiftkill switch uses it, forstop-jobs. - The shift has been run and at least one target reached a completed state
(see the
fleetshift-run-shiftskill).
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
jobRunningorjobFailed. 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 --jsonPresent 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-prsonly 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"}' --jsonLink 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
jobFailedand the user wants it fixed, point to thefleetshift-troubleshoot-shiftskill (diagnosis) andfleetshift-run-shift(re-run) — both keep their own explicit confirmation requirement.
Trending
More talk lately.thin dataabout the whole repository
Who's talking about spotify/portal-ai-plugins
- @github-trending-js.bsky.social“📦 spotify / portal-ai-plugins ⭐ 2,216 (+34) 🗒 TypeScript”Bluesky · Sep 24, 2026 · 1 likes
- @tommis.fi“github.com/spotify/port...”Bluesky · Sep 5, 2026 · 1 likes
- sudosubin/agents.nix“claude-code-plugins.github.spotify.portal-ai-plugins: init at 0-unstable-2026-10-23”GitHub · Oct 28, 2026
- sudosubin/agents.nix“claude-code-marketplaces.github.spotify.portal-ai-plugins: init at 0-unstable-2026-10-23”GitHub · Oct 28, 2026
- Uraxii/dotai“feat(shunt): vendor Spotify's shunt, patched to the current hook schema”GitHub · Sep 25, 2026
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
- Oct 28, 2026claude-code-plugins.github.spotify.portal-ai-plugins: init at 0-unstable-2026-10-23 — sudosubin/agents.nix0 reactions
- Oct 28, 2026claude-code-marketplaces.github.spotify.portal-ai-plugins: init at 0-unstable-2026-10-23 — sudosubin/agents.nix0 reactions
- Sep 25, 2026feat(shunt): vendor Spotify's shunt, patched to the current hook schema — Uraxii/dotai0 reactions
- Sep 13, 2026What krewe can take from the Spotify Portal plugins — atlantic-blue/quay-krewe0 reactions
- Sep 10, 2026feat(pi): block blind full-file reads over 800 lines in cost-optimization — maruina/dotfiles0 reactions · 1 comment
3 more on GitHub
- Sep 6, 2026Align delegation with Spotify Shunt: Fable edits, workers read — pontusc/.dotfiles0 reactions
- Sep 6, 2026feat(trusty-mpm): shunt-style bulk-read diversion hook per session, opt-in via manifest — bobmatnyc/trusty-tools0 reactions · 11 comments
- Sep 6, 2026poc(trusty-mpm): shunt-style PreToolUse read/write diversion to a cheaper worker model, alone and on Bedrock — bobmatnyc/trusty-tools0 reactions · 8 comments
On Bluesky · 2
- Sep 24, 2026📦 spotify / portal-ai-plugins ⭐ 2,216 (+34) 🗒 TypeScript — @github-trending-js.bsky.social1 likes and repost
- Sep 5, 2026github.com/spotify/port... — @tommis.fi1 likes and repost · 1 reply
In this repository11 other files it gives its agents.
- AGENTS.mdAGENTS.md
- actionsSkill
- doctorSkill
- feedbackSkill
- fleetshift-check-shiftSkill
- fleetshift-create-shiftSkill
- fleetshift-run-shiftSkill
- fleetshift-troubleshoot-shiftSkill
- searchSkill
- serviceSkill
- setupSkill
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.

