← ClaudeAtlas

gcamprlisted

Commit current changes, push, and create/reuse a pull/merge request (GitHub PR or GitLab MR). Use when the user says "gcampr" or asks to commit + push + open/raise a PR / MR / pull request / merge request.
qiankunli/devloop · ★ 4 · Code & Development · score 64
Install: claude install-skill qiankunli/devloop
Run the orchestrator (it handles preflight branch decision, staging, commit, push, and PR/MR create/reuse, then prints a self-narrating `PLAN:` banner): ``` bash <PLUGIN_ROOT>/scripts/smart_gcampr.sh --message-file <repo>/.devloop/commit_msg [--repo <name|path>] [--branch <name>] [--target <branch>] [--files <a,b,c>] [--title "<PR title>"] ``` Rules: - **Message shape: short subject + body.** The first line becomes the PR/MR **title** — keep it ≤72 chars. The rest of the message (after a blank line) becomes the PR/MR **description**, so put the what/why details there, NOT crammed into the subject. Follow-up commits onto an in-flight PR/MR (via gcamp or gcampr) **append** their body to the existing description automatically. - **Commit message — never hand-escape multi-line text through the shell.** One-line / simple → inline single-quoted: `--message 'fix: …'`. Multi-line, or containing quotes / `$` / backticks → use the **Write tool** to fully overwrite the canonical `<repo>/.devloop/commit_msg` (gitignored one-shot scratch); do not read, edit, or patch its previous contents. Then pass `--message-file <repo>/.devloop/commit_msg` (alias `-F`; `-F -` reads stdin). The script removes this canonical file on success and retains it on failure for retry. This is the shell-escaping-free path, mirroring `git commit -F` / `gh --body-file`. `--title` defaults to the message's first line, so a multi-line message still yields a valid one-line PR title. - No `cd` prefix needed: the scri