Upstream PR
Send a change to upstream qm without leaking organization-specific context.
Install
npx skills add yc-software/qm --skill upstream-pr -g -a claude-code -y- Repository
- yc-software/qm15.6k
- Category
- Git and review
- Updated
- 3d ago
- License
- MIT
- Context cost
- Mediumabout 2,256 tokens
- Runs scripts
- No, instructions only
What it does
Send a change to upstream qm without leaking organization-specific context. Use when asked to "upstream this", "open a PR against qm", "contribute this back", or when explicitly asked to contribute a downstream change.
upstream-pr
Source forks may change core freely. This skill applies only when an upstream
contribution is requested; maintaining a local change does not require contributing it.
Keep private deployment material in deploy/layers/<org>/ in a private source fork or
in a separate private deployment repository for public source. Core means the runtime,
plugins, CLI, docs, and CI, and may also contain private details that must be scrubbed.
Upstream qm is shared with organizations other than yours, and anything pushed there is permanent: it stays reachable by SHA in every clone and fork even after a deleted branch or a force-push. Treat a leak as unrecoverable and spend the effort before the push.
See deploy/layers/README.md for the boundary, and the
update-qm skill for syncing the other direction.
Where the branch will go
git remote -v, the source tree, and repository metadata identify the situation. This decides the push
target only; the scrub steps below run in every case.
originisyc-software/qm: you are in upstream qm. Push the branch tooriginand open the PR there.originis a GitHub fork of qm, meaning a repository created with GitHub's fork feature and living inside qm's fork network: push tooriginand open a normal cross-repo PR.- A standalone source fork: assume it may hold private material even if
deploy/layers/looks empty, and read "Pushing from a private fork" below. - A package deployment or unrelated repository: prepare the contribution in a separate clean upstream checkout; never push its history to upstream.
Judge by where origin points, not by the repository's name. A repository named
<org>/qm-<something> in the same GitHub organization as the source may still be a
separate downstream repository.

