Create a GitHub PR for FlashList. Ensures no AI/Claude attribution in commits or PR body, follows repo conventions for title, description, and test plan.
npx skills add https://github.com/Shopify/flash-list --skill raise-pr
Prerequisite: Run the review-and-test skill first. All checks must pass and device testing must be done before raising a PR. DO NOT SKIP.
main — always create a branch and open a PR.Co-Authored-By AI lines. The PR must read as if written entirely by a human.Before creating the branch and PR, kill any background processes you started (Metro, emulators, etc.). On CI, leftover processes prevent the GitHub Actions job from exiting.
lsof -ti:8081 | xargs kill -9 2>/dev/null || true
fix/issue-<number>-<short-slug>
feat/<short-slug>
refactor/<short-slug>
fix(<scope>): <concise description>
Fixes #<number>
Scope examples: layout, hooks, scroll, sticky-headers, recycling, viewability.
Do NOT include:
Co-Authored-By linesGenerated by or Assisted by attributionsgit checkout -b fix/issue-<number>-<short-slug>
git add <specific files>
git commit -m "$(cat <<'EOF'
fix(<scope>): <description>
Fixes #<number>
EOF
)"
git push -u origin fix/issue-<number>-<short-slug>
Run git diff HEAD~1 and check for:
console.log, fetch("http://localhost:..."), temporary commentsCo-Authored-By lines — check with git log -1 --format=fullindex.js left with forceRTL(true) — always revert before committingQuick check:
grep -r "console\.\(log\|warn\)\|localhost:9876\|forceRTL(true)" src/ fixture/react-native/index.js --include="*.ts" --include="*.tsx" --include="*.js"
Fix any issues found, then amend the commit before proceeding.
fix(<scope>): <description>Always use --body-file — inline --body with markdown # headers triggers Claude Code permission checks and wastes turns. Use the Write tool to create the file (not cat, echo, or touch, which may be blocked by sandbox on CI).
Write the following to /tmp/pr-body.md using the Write tool:
## Description
<1-3 sentences: what the bug was and how the fix works>
Fixes #<number>
## Reviewers' hat-rack :tophat:
<What reviewers should focus on — layout logic, hook behavior, edge cases, etc.>
## Screenshots or videos
<Before/after screenshots if applicable>
## Test plan
- [ ] Unit tests pass (`yarn test`)
- [ ] Type check passes (`yarn type-check`)
- [ ] Lint passes (`yarn lint`)
- [ ] Verified on iOS simulator
- [ ] No regressions on related screens
EOF
GH_TOKEN="$AGENT_PR_TOKEN" gh pr create \
--title "fix(<scope>): <description>" \
--body-file /tmp/pr-body.md
> CRITICAL — TOKEN VERIFICATION (read this before running gh pr create)
>
> 1. First, verify the token is available: [ -n "$AGENT_PR_TOKEN" ] && echo "token ok" || echo "TOKEN MISSING" — do NOT echo the token value itself.
> 2. You MUST use GH_TOKEN="$AGENT_PR_TOKEN" gh pr create ... — never bare gh pr create.
> 3. PRs created with the default GITHUB_TOKEN show as app/github-actions and cannot be merged.
> 4. After creating the PR, verify the author: gh pr view --json author --jq '.author.login' — it must NOT be app/github-actions.
>
> If AGENT_PR_TOKEN is empty, try SHOPIFY_GH_ACCESS_TOKEN as fallback: GH_TOKEN="${AGENT_PR_TOKEN:-$SHOPIFY_GH_ACCESS_TOKEN}" gh pr create ...
Before running gh pr create, double-check:
Return the PR URL to the user.
If the user asks to update the PR (interactive only — not available on CI):
git add <files>
git commit --amend --no-edit
git push --force-with-lease
On CI, create a new commit instead of amending — force-push is not permitted.
Use when implementation is complete, all tests pass, and you need to decide how to integrate the work - guides completion of development work by presenting structured options for merge, PR, or cleanup
Comprehensive GitHub release orchestration with AI swarm coordination for automated versioning, testing, deployment, and rollback management
Migrate test files from `as` type assertions to @total-typescript/shoehorn. Use when user mentions shoehorn, wants to replace `as` in tests, or needs partial test data.
Modern JavaScript/TypeScript development with Bun runtime. Covers package management, bundling, testing, and migration from Node.js. Use when working with Bun, optimizing JS/TS development speed, or migrating from Node.js to Bun.
You are a dependency management expert specializing in safe, incremental upgrades of project dependencies. Plan and execute dependency updates with minimal risk, proper testing, and clear migration pa
Master systematic debugging techniques, profiling tools, and root cause analysis to efficiently track down bugs across any codebase or technology stack. Use when investigating bugs, performance issues, or unexpected behavior.
Opinionated backend development standards for Node.js + Express + TypeScript microservices. Covers layered architecture, BaseController pattern, dependency injection, Prisma repositories, Zod validation, unifiedConfig, Sentry error tracking, async safety, and testing discipline.
Best practices for writing JavaScript/TypeScript tests using Jest, including mocking strategies, test structure, and common patterns.
Take shopify/raise-pr from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.