fleetshift-create-shift
Create a Fleetshift shift definition that runs an agent to apply transformations across a set of repository targets.
Skill by spotify
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/spotify-fleetshift-create-shift
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: agent-building, refactoring, agent-orchestration
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/fleetshift-create-shift
What's inside
- Skill name
fleetshift-create-shift- Description
- Create a Fleetshift shift definition that runs an agent to apply transformations across a set of repository targets. Use when the user wants to set up a reusable, repeatable change (e.g. "add a header to every service", "migrate every repo from X to Y") that can later be run, checked on, and have PRs opened from it. Requires explicit user confirmation before creating the shift.
- License
- Apache-2.0
- Instructions
- 117 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Create a Fleetshift shift
A Fleetshift **shift** is a reusable definition: an agent prompt plus a set of
repository targets and PR metadata. Once created, a shift can be run
(`fleetshift-run-shift`), checked on (`fleetshift-check-shift`), and have PRs opened from it
(`fleetshift-create-prs`).
This skill creates **agent**-type shifts only: the shift runs an LLM agent
against each target repository with a prompt you provide.
> **Mutating action — explicit confirmation required.** Do **not** call
> `fleetshift:create-shift` until the user has explicitly confirmed the shift
> name, the agent prompt, the target scope, and the PR metadata. A "looks
> good"/"go ahead" is not enough — ask and get 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`.
- You know what change the user wants and which repositories it applies to.
## 1. Scope the shift (read-only)
Before creating anything, understand the current state. These calls never
mutate anything and need no confirmation:
```bash
# Existing shifts (names, owners, progress) so you can avoid collisions
npx @spotify/portal-cli actions fleetshift:list-shifts --input '{}' --json
# Details of an existing shift, if you want its targets/PR config as a model
npx @spotify/portal-cli actions fleetshift:get-shift --input '{"shiftName":"<shift-name>"}' --json
```
- If a shift with the user's desired name already exists, surface it and
propose a distinct name rather than overwriting.
- If the user wants a one-off change and there is no reusable target set,
`create-shift` still works: the targets define the scope up front.
## 2. Draft the inputs from the user's goal
Keep user input to a **minimum**. Work out the goal (what should change and
why) from the conversation, then draft every field yourself. Don't send the
user a form to fill in. Only ask about something you can't reasonably infer,
usually just which repositories to target. Everything else gets a draft the
user can accept or tweak in the confirmation step.
- **name**: derive a short kebab-case id from the goal (e.g.
`add-maintainers-header`), checked against `list-shifts` so it doesn't
collide with an existing shift.
- **title**: derive a human-readable title from the goal.
- **shiftPrompt**: write a precise, self-contained instruction for the
agent to follow in every target repo. Spell out the exact change, how to
tell it's done, and what not to touch. Turn the user's goal into these
concrete steps; don't just repeat it back. Look at a representative target
repo first if that makes the prompt more accurate.
- **pullRequest**: default to `metadataMode: "generate"` with a title
derived from the goal. Use `metadataMode: "manual"` only if the user has
specific PR wording in mind.
- **targets**: build one or more structured `{ source, type, id }`
references from whatever the user named (services, a team, a soundcheck
check). Look up entity refs yourself instead of asking for them.
- **owner**: default to the caller. Set a group only if the user mentions
a team.
## 3. Confirm explicitly, then create (mutating)
First validate the drafted payload with `--dry-run`. This checks the input
locally and doesn't create anything:
```bash
npx @spotify/portal-cli actions fleetshift:create-shift --input '{"name":"add-maintainers-header","title":"Add maintainers headers","type":"agent","shiftPrompt":"Add a Maintainers section to the README listing the owning team from catalog-info.yaml, keeping existing content intact.","targets":[{"source":"catalog","type":"entity","id":"component:default/my-service"}],"pullRequest":{"metadataMode":"generate","title":"Add maintainers header to README"}}' --dry-run --json
```
Fix anything the dry run rejects. Then show the user the drafted payload
(shift name, prompt, target scope, PR title/description) in one go, so they
can confirm or adjust it in a single reply. A dry run is not a create: only
after an explicit "yes", run the same command without `--dry-run`:
```bash
npx @spotify/portal-cli actions fleetshift:create-shift --input '<the confirmed payload>' --json
```
- The shift type must be `"agent"`.
- Do not pass a custom image unless the user explicitly requests an allowed
deployment-managed image.
- For more than 10 targets, summarize the full scope and confirm it separately,
then pass `"confirmedLargeTargetSet":true`.
## 4. Verify
After a successful create, verify with a read-only call and report the result:
```bash
npx @spotify/portal-cli actions fleetshift:get-shift --input '{"shiftName":"add-maintainers-header"}' --json
```
Report the shift name, owner, target count, and what to do next — usually
"run it" (see `fleetshift-run-shift`).
## After
- To run it: use the `fleetshift-run-shift` skill.
- To check on runs/PRs later: use the `fleetshift-check-shift` skill (read-only, safe
to run days or weeks later).
- To open PRs for completed targets: use the `fleetshift-create-prs` skill.From spotify/portal-ai-plugins, Apache-2.0.
More from spotify/portal-ai-plugins
- 0.834score
fleetshift-check-shift
spotify
Read-only status check on Fleetshift shifts: what ran, which targets finished/failed, which PRs were opened and their state.
SkillAFreshness: A★ 2.5KClaude Code +9 - 0.834score
fleetshift-create-prs
spotify
Open pull requests from completed Fleetshift shift runs.
SkillAFreshness: A★ 2.5KClaude Code +9 - 0.834score
fleetshift-run-shift
spotify
Run an existing Fleetshift shift against its targets: triggers the agent jobs and monitors them to completion with a bounded wait.
SkillAFreshness: A★ 2.5KClaude Code +9 - 0.834score
fleetshift-troubleshoot-shift
spotify
Diagnose why a Fleetshift shift or job failed: find failed targets, pull their job logs and status, and explain the root cause and the safe next step.
SkillAFreshness: A★ 2.5KClaude Code +9 - 0.788score
setup
spotify
Set up, authenticate, and verify Spotify Portal for the current coding agent.
SkillBFreshness: B★ 2.5KClaude Code +9 - 0.788score
service
spotify
Inspect a Spotify Portal service's owner, team, on-call contact, Slack channel, runbook, build, deployment, runtime, incidents, or documentation.
SkillBFreshness: B★ 2.5KClaude Code +9 - 0.788score
actions
spotify
Discover, inspect, and invoke Spotify Portal actions through the Portal CLI.
SkillBFreshness: B★ 2.5KClaude Code +9 - 0.788score
doctor
spotify
Diagnose Spotify Portal plugin, CLI, authentication, and action access without changing state.
SkillBFreshness: B★ 2.5KClaude Code +9 - 0.788score
feedback
spotify
Submit feedback about the Spotify Portal CLI to the Portal team.
SkillBFreshness: B★ 2.5KClaude Code +9 - 0.788score
search
spotify
Search Spotify Portal's software catalog and technical documentation using natural language.
SkillBFreshness: B★ 2.5KClaude Code +9 - 0.782score
bulk-reader
spotify
Delegate bulk file reading to AiKA.
SkillBFreshness: B★ 2.5KClaude Code +9 - 0.779score
code-writer
spotify
Delegate boilerplate code generation to AiKA.
SkillBFreshness: B★ 2.5KClaude Code +9
Signals
- Stars
- 2,516
- Forks
- 202
- Open issues
- 11
- Last commit (this folder)
- Oct 21, 2026 (7 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/spotify/portal-ai-plugins
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from spotify
- 0.834score
fleetshift-run-shift
spotify
Run an existing Fleetshift shift against its targets: triggers the agent jobs and monitors them to completion with a bounded wait.
SkillAFreshness: A★ 2.5KClaude Code +9 - 0.834score
fleetshift-check-shift
spotify
Read-only status check on Fleetshift shifts: what ran, which targets finished/failed, which PRs were opened and their state.
SkillAFreshness: A★ 2.5KClaude Code +9 - 0.834score
fleetshift-create-prs
spotify
Open pull requests from completed Fleetshift shift runs.
SkillAFreshness: A★ 2.5KClaude Code +9 - 0.834score
fleetshift-troubleshoot-shift
spotify
Diagnose why a Fleetshift shift or job failed: find failed targets, pull their job logs and status, and explain the root cause and the safe next step.
SkillAFreshness: A★ 2.5KClaude Code +9 - 0.788score
feedback
spotify
Submit feedback about the Spotify Portal CLI to the Portal team.
SkillBFreshness: B★ 2.5KClaude Code +9 - 0.788score
service
spotify
Inspect a Spotify Portal service's owner, team, on-call contact, Slack channel, runbook, build, deployment, runtime, incidents, or documentation.
SkillBFreshness: B★ 2.5KClaude Code +9
Cite this page
fleetshift-create-shift skill. Agent Mart. https://agentmart.dev/skills/spotify-fleetshift-create-shift (last updated 2026-10-24)