From olam
Commit changes, push the branch, and open a PR using the repo's template. Use when the user says "ship this", "open a PR", "commit and push", "make a PR for this", or when work is complete and ready for review. Analyses the diff, generates conventional commit messages (multi-commit detection), and uses the repo's `.github/PULL_REQUEST_TEMPLATE.md`.
How this skill is triggered — by the user, by Claude, or both
Slash command
/olam:commit-push-pr [optional PR title hint][optional PR title hint]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
End-to-end "ship the work I just did" workflow: diff inspection → branch hygiene → conventional commit(s) → push → open PR with the repo's own template. Org-specific PR-body conventions come from project-local policies; this skill stays generic.
End-to-end "ship the work I just did" workflow: diff inspection → branch hygiene → conventional commit(s) → push → open PR with the repo's own template. Org-specific PR-body conventions come from project-local policies; this skill stays generic.
Anchor to repo root.
ROOT=$(git rev-parse --show-toplevel)
REPO=$(git remote get-url origin | sed 's|.*github.com[:/]||;s|\.git$||')
All paths resolve from $ROOT. In worktrees the root is the worktree directory.
git status + git diff HEAD — understand current state.
Branch — if on main/master, pull latest and create a feature branch (see Branch Naming). If on a feature branch already, ask: "Continue on this branch or start fresh from main?" If starting fresh: stash, checkout main, pull, create new branch, git stash pop.
Analyse changes — detect whether a multi-commit split is appropriate (see Multi-Commit Detection).
Stage selectively — git add <specific files> per commit. Never git add . or git add -A (risks .env / secrets / build artefacts).
Generate conventional commit message(s).
Rebase — git fetch origin && git rebase origin/main (substitute master for legacy repos). On conflict, stop and ask the user.
Push with -u — git push -u origin <branch>.
Open PR — read $ROOT/.github/PULL_REQUEST_TEMPLATE.md, fill it, then gh pr create --repo "$REPO" --title "<type>: <description>" --body "$(cat <<'EOF' ... EOF)".
Verify the returned URL points to the correct repo (catches gh auto-detection picking the wrong remote).
Return the PR URL.
git status first..github/PULL_REQUEST_TEMPLATE.md verbatim — fill each section, do not reformat.--repo owner/repo on every gh invocation — never rely on auto-detection.[TICKET-1234]) — branch name carries the link.feat(auth):) — files-changed already provide context..env files, credentials, or build artefacts.--repo arg.<type>: <short description>
<body>
Types: feat, fix, docs, style, refactor, perf, test, build, ci, chore.
Rules:
| File pattern | Type |
|---|---|
spec/, test/, __tests__/ | test |
docs/, *.md (non-code) | docs |
Gemfile, package.json, *.lock | build |
.github/workflows/, .circleci/ | ci |
| Whitespace / formatting only | style |
| Performance keywords (cache, optimise, N+1) | perf |
Default to fewer commits. Only split when changes solve different problems.
Commit dependencies first: migration → model → service → controller → test.
git add app/services/calculator.rb spec/services/calculator_spec.rb
git commit -m "fix: only use winning stock range in calculation"
git add app/mutations/create_stock_range.rb
git commit -m "fix: prevent duplicate stock ranges from being created"
$ROOT/.github/PULL_REQUEST_TEMPLATE.md. If absent, use:
## Summary
[What changed and why]
## Changes
- [Change 1]
## Testing
[How to verify]
gh pr create --repo "$REPO" --title "<type>: <description>" --body "$(cat <<'EOF' ... EOF)".Use --draft when the user requests, when WIP, or when tests are failing.
gitBranchName (Linear does), use it — auto-links PRs and syncs status.<type>/<short-description> (e.g. feat/add-logout-button).<member>/<short-description>.After filling the PR template, append a <details> block. This helps reviewers understand the why — not just the diff.
~/.claude/sessions/<session-id>/summary.md — if present, read it..plans/ for a matching plan (match by ticket key from branch name, else most-recent).~/.olam/worlds/<world-id>/ ancestor), capture world id + repos + branch via olam status.<details>
<summary>Session context</summary>
**Plan** (if `.plans/` has a match):
<details>
<summary>Implementation plan</summary>
**Scope:** ...
**Out of scope:** ...
**Deviations:** ...
</details>
**Decisions:** key choices + reasoning.
**Failed approaches:** what was tried and didn't work.
**Environment** (if olam world):
olam create olam dispatch ""
</details>
Rules:
.env, *.key, *credentials*) — refuse to stage; surface the file path and ask for explicit confirmation.gh not authenticated — surface gh auth status and tell the user to run gh auth login.origin; if origin doesn't exist, ask which remote to push to./olam:plan to create the spec first./olam:watch-pr./olam:review./atl:commit-push-pr — ADB-flavoured upstream sibling (includes Linear gitBranchName autopull + org-specific Slack-post hook). This skill is the olam-native equivalent./olam:plan — author the spec before shipping./olam:review — review the diff before opening the PR./olam:watch-pr — keep the PR green after opening.Provides behavioral guidelines to reduce common LLM coding mistakes, focusing on simplicity, surgical changes, assumption surfacing, and verifiable success criteria.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Creates, edits, and optimizes skills for Claude Code, including drafting, evaluating with test prompts, iterating on performance, and improving skill descriptions for better triggering accuracy.
npx claudepluginhub pleri/olam-cli