Skill28.2k repo starsupdated today
oss-pr
The oss-pr Claude Code skill automates the pull request workflow for the AionUi repository, handling branch management, quality assurance, and PR creation. Use it when creating pull requests, after committing changes, or when invoking /oss-pr to manage feature branches, run formatters and linters, execute TypeScript checks, validate internationalization configurations, and open pull requests with minimal manual intervention.
Install in Claude Code
Copygit clone --depth 1 https://github.com/iOfficeAI/AionUi /tmp/oss-pr && cp -r /tmp/oss-pr/.claude/skills/oss-pr ~/.claude/skills/oss-prThen start a new Claude Code session; the skill loads automatically.
Definition
SKILL.md
# OSS PR
Smart commit + PR workflow: branch management → quality checks → tests → commit → push → PR.
**Announce at start:** "Using oss-pr skill to commit and open a pull request."
## Workflow
### Step 0: Gather Info
```bash
git branch --show-current
git diff --name-only HEAD
git status --short
git config user.name
```
**Branch rules:**
- If already on a feature branch: proceed directly
- If on `main` or `master`: auto-generate a branch name, create and switch immediately — no confirmation needed
**Auto-generating a branch name:**
Analyze the changed files from `git diff --name-only HEAD` to infer:
1. **type** — pick one: `feat` / `fix` / `refactor` / `chore`
- `feat`: new user-facing functionality
- `fix`: bug fix
- `refactor`: restructuring without behavior change
- `chore`: config, scripts, skills, docs, deps
2. **slug** — 2–3 lowercase words derived from the most relevant changed paths, joined by hyphens. Keep it short and specific.
Create branch `{username}/{type}/{slug}` directly and announce the name chosen.
**Branch naming reference:**
| Type | Example |
| -------- | ---------------------------- |
| feat | `{prefix}/feat/dark-mode` |
| fix | `{prefix}/fix/crash-on-open` |
| refactor | `{prefix}/refactor/settings` |
| chore | `{prefix}/chore/update-deps` |
### Step 1: Quality Checks
| Command | Scope | Skip when |
| ------------------- | ------------------------- | --------------------------- |
| `bun run format` | `.ts/.tsx/.css/.json/.md` | **Never** — always run |
| `bun run lint` | `.ts/.tsx` only | No `.ts/.tsx` files changed |
| `bunx tsc --noEmit` | `.ts/.tsx` only | No `.ts/.tsx` files changed |
Run in this order: `format` → `lint` → `tsc`.
- **format** → Auto-fixes silently (must run even for non-code files like `.md`).
- **lint fails** → Stop, report errors. Do not proceed.
- **tsc fails** → Stop, report errors. Do not proceed.
- **All pass** → Proceed to i18n check below.
**i18n check** (run if any `src/renderer/`, `locales/`, or `src/common/config/i18n` files are modified):
```bash
bun run i18n:types
node scripts/check-i18n.js
```
- **i18n:types fails** → Stop, report errors. Do not proceed.
- **check-i18n exits 1 (errors)** → Stop, report errors. Do not proceed.
- **check-i18n exits 0 (warnings only)** → Continue silently.
- **No i18n-sensitive files changed** → Skip both commands.
### Step 2: Run Tests
```bash
bunx vitest run
```
- **Fails** → Stop, report failing tests. Do not proceed.
- **Passes** → Proceed silently.
### Step 3: Commit
```bash
git status
git diff
```
Stage **all** modified files — including any files auto-fixed by `format` in Step 1:
```bash
git add -u
```
Generate commit message in English using conventional commits format: `<type>(<scope>): <subject>`.
**NEVER include `Co-authored-by` or any AI attribution.**
### Step 4: Push Branch
```bash
git push -u origin <branch-name>
```
If push fails due to remote rejection, inform user. **NEVER force-push** without explicit approval.
### Step 5: Create Pull Request
Run `git log main..HEAD --oneline` and `git diff main...HEAD` to understand all changes, then:
```bash
gh pr create --title "<pr-title>" --body "$(cat <<'EOF'
## Summary
<1-3 bullet points>
## Test plan
- [ ] <verification steps>
EOF
)"
```
**PR title:** under 70 characters, `<type>(<scope>): <description>` format. Reuse commit message if single commit.
**NEVER add AI-generated signatures, `Generated with`, or `Co-Authored-By` lines.**
### Step 6: Post-PR
Output the PR URL when done.
## Quick Reference
```
0. Check branch (create if on main)
1. bun run format (ALWAYS) && bun run lint && bunx tsc --noEmit (skip lint/tsc if no .ts/.tsx)
(if i18n files changed: bun run i18n:types && node scripts/check-i18n.js)
2. bunx vitest run
3. Commit (conventional commits, no AI attribution)
4. git push -u origin <branch>
5. gh pr create
6. Output PR URL
```More from this repository
architectureSkill
|
bump-versionSkill
Use when bumping the AionUi version: query AionCore release, verify artifacts, update package.json, generate CHANGELOG, branch, commit, push, create PR, auto-merge, tag release.
fix-issuesSkill
|
fix-sentrySkill
|
i18nSkill
|
pr-automationSkill
|
pr-fixSkill
|
pr-reviewSkill
|