file-pr
Open a concise pull request
Open a concise pull request that explains the problem and what changed.
Ask your agent
file a PRStart a new session after installing, then use this command in your project.
How it works
- Check the diff
- explain the change
- open a pull request
Works with
The install commands include these required skills.
Install file-pr
Pick your harness and how you want to install. Copy the commands, then ask for a skill by name.
Claude Code / all projects
npx skills add 0libote/ostack --agent claude-code --global --skill file-pr leaving-pr-comments
Uses the skills CLI. Requires Node.js and npm; installs the skills listed in the command.
Available across your projects. Start a new agent session after installing.
Read the skill instructions
The full SKILL.md, as shipped in this collection. Supporting files are in the source repository.
---
name: file-pr
description: File a concise pull request. Use when the user asks to file, open, or create a PR.
---
# File PR
Before filing, check whether a PR for this branch already exists. Review the
diff locally against the base branch (usually `origin/main`) to make sure its
contents match the goal.
PR titles usually become commit messages, so follow the repository's title
conventions. Look at recently merged PRs and Git history for examples. Prefer a
concise, human-readable title that explains why the change matters:
BAD
> ❌ perf(server): negotiate permessage-deflate on the websocket
GOOD
> ✅ perf(server): cut websocket frame size by 70%+ with gzipping
Open the description with a simple explanation of the problem based on the
user's original prompt, then briefly explain the solution. Do not lead with an
implementation inventory:
BAD
> ❌ Removed implicit workspace carry-over from every "new thread" entry point (cmd+n / cmd+shift+o, sidebar v1/v2 buttons, command palette). New threads inherit only the project from context; branch, worktree, and env mode always come from the configured defaults. Deleted buildContextualThreadOptions, startNewThreadInProjectFromContext, and the v1 sidebar's seed-context machinery.
GOOD
> ✅ My "new worktree" default was ignored when starting new threads on existing worktrees. Super unintuitive. Now your preferences always apply.
End the description with the public model name and harness that made the
changes, for example `Created with <model> in <harness>.` Include subagent
models that wrote part of the change. Use the model name the harness reports.
If model identity is unavailable, name the harness without guessing a model.
Before submission, check the title, description, quotes, and attachments for
secrets and private details.
Open a real PR rather than a draft so review bots run. If `gh pr create` fails
because the GraphQL rate limit is used up, open it through REST with
`gh api repos/<owner>/<repo>/pulls -f title=... -f head=... -f base=... -F body=@<file>`. If the user also asked
to babysit it, continue with the `babysit-pr` skill.
Do not post a follow-up PR comment unless it serves the user's request. When a
comment is needed, use the `leaving-pr-comments` skill.