← ClaudeAtlas

git-opslisted

Commit, push, safely rebase an existing branch, create/read/update/close a pull/merge request (GitHub PR or GitLab MR), cut a feature branch, or view recent PRs in the current repo. Triggers — gcam / gcamp / gcampr / rebase / 解决冲突 / 提 PR / 提 MR / pull request / merge request / 看 PR / 看 MR / 关 PR / 关 MR / 切新分支 / 起新分支 / 发版.
qiankunli/devloop · ★ 4 · Code & Development · score 64
Install: claude install-skill qiankunli/devloop
The umbrella for devloop's git + code-review workflow. All git goes through one runner (`lib/gitcmd.py`); all code-review hosting through one facade (`lib/forge/`), which picks GitHub or GitLab per-repo from the origin remote. You call the scripts below — never raw `git commit/push` (the guards intercept those, and the scripts encode the case logic + self-narrate a `PLAN:` banner you can trust), and **never hand-roll `curl`/`glab`/`gh` against the forge API** — that one facade backs both script surfaces below (gcampr *raises* an MR; `pr` *inspects/manages* an existing one) and resolves the token from config, so there's no credentials file to hunt for. Paths use `<PLUGIN_ROOT>` → `${CLAUDE_PLUGIN_ROOT}` on Claude Code; `${PLUGIN_ROOT}` on Codex. ## Commit / push / PR | Intent | Script | |--------|--------| | commit only | `bash <PLUGIN_ROOT>/scripts/smart_gcam.sh --message "<msg>" [...]` | | commit + push | `bash <PLUGIN_ROOT>/scripts/smart_gcamp.sh --message "<msg>" [...]` | | commit + push + PR/MR | `bash <PLUGIN_ROOT>/scripts/smart_gcampr.sh --message "<msg>" [...]` | **Message**: one-line / simple → inline single-quoted (`--message 'fix: …'`). Multi-line, or containing quotes / `$` / backticks → use the **Write tool** to fully overwrite canonical `<repo>/.devloop/commit_msg` (gitignored one-shot scratch), without reading/editing/patching its previous contents, and pass `--message-file <path>` (alias `-F`; `-F -` reads stdin). The script removes this canonical file on s