Back to skills
SkillHub ClubShip Full StackFull Stack

git

Git workflow conventions for Video.js 10. Commit messages, PR descriptions, branch naming, and scope inference. Triggers: "commit", "push", "create PR", "conventional commit", "branch name", "open pull request".

Packaged view

This page reorganizes the original catalog entry around fit, installability, and workflow context first. The original raw source lives below.

Stars
305
Hot score
99
Updated
March 20, 2026
Overall rating
C3.3
Composite score
3.3
Best-practice grade
B77.6

Install command

npx @skill-hub/cli install videojs-v10-git

Repository

videojs/v10

Skill path: .claude/skills/git

Git workflow conventions for Video.js 10. Commit messages, PR descriptions, branch naming, and scope inference. Triggers: "commit", "push", "create PR", "conventional commit", "branch name", "open pull request".

Open repository

Best for

Primary workflow: Ship Full Stack.

Technical facets: Full Stack.

Target audience: everyone.

License: Unknown.

Original source

Catalog source: SkillHub Club.

Repository owner: videojs.

This is still a mirrored public skill entry. Review the repository before installing into production workflows.

What it helps with

  • Install git into Claude Code, Codex CLI, Gemini CLI, or OpenCode workflows
  • Review https://github.com/videojs/v10 before adding git to shared team environments
  • Use git for development workflows

Works across

Claude CodeCodex CLIGemini CLIOpenCode

Favorites: 0.

Sub-skills: 0.

Aggregator: No.

Original source / Raw SKILL.md

---
name: git
description: >-
  Git workflow conventions for Video.js 10. Commit messages, PR descriptions,
  branch naming, and scope inference. Triggers: "commit", "push", "create PR",
  "conventional commit", "branch name", "open pull request".
context: fork
---

# Git

Git workflow conventions for Video.js 10.

## Reference Material

| Task                  | Load                   |
| --------------------- | ---------------------- |
| Writing commits       | `references/commit.md` |
| Inferring scope       | `references/scope.md`  |
| Creating/updating PRs | `references/pr.md`     |
| Naming branches       | `references/branch.md` |

## Quick Reference

**Commit:** `type(scope): lowercase description`

**Branch:** `type/short-description`

**PR Title:** Same as commit (or `RFC:` / `Discovery:` prefix)

## Process

1. Create branch following naming convention
2. Make changes
3. Commit with conventional message
4. Push and create PR with proper description

For the `/commit-pr` command, all steps after branching are automated.


---

## Referenced Files

> The following files are referenced in this skill and included for context.

### references/commit.md

```markdown
# Commit Messages

Follow [Conventional Commits](https://www.conventionalcommits.org/) enforced by commitlint.

## Format

```
type(scope): lowercase description
```

- **type**: Category of change (required)
- **scope**: Package or area affected (required)
- **description**: Short summary in lowercase (required)

## Types

| Type       | Use for                                      |
| ---------- | -------------------------------------------- |
| `feat`     | New feature                                  |
| `fix`      | Bug fix                                      |
| `chore`    | Maintenance (deps, configs, no prod changes) |
| `docs`     | Documentation only                           |
| `refactor` | Code change that doesn't fix or add features |
| `perf`     | Performance improvement                      |
| `test`     | Adding or updating tests                     |
| `ci`       | CI/CD changes                                |
| `build`    | Build system changes                         |
| `style`    | Code style (formatting, semicolons, etc.)    |

## Breaking Changes

Use `!` suffix on type for breaking changes:

```
feat(core)!: remove deprecated API
refactor(store)!: rename feature methods
```

The `!` signals breaking changes in the changelog.

## Examples

```
feat(html): add volume slider component
fix(store): prevent race condition in state sync
chore(root): bump vitest to v3
docs(core): document request lifecycle
refactor(utils): simplify event listener cleanup
test(html): add slider interaction tests
```

## WIP Commits

Commits starting with `wip` (case-insensitive) bypass commitlint validation. Use sparingly for work-in-progress that will be squashed.

## No Co-Author Trailers

Do NOT add `Co-Authored-By` trailers to commit messages. The commit author is sufficient attribution.

## Authoritative Source

See `commitlint.config.js` for the enforced scope list.

```

### references/scope.md

```markdown
# Scope Inference

Infer commit scope from changed file paths.

## Path to Scope Mapping

| Path                     | Scope          |
| ------------------------ | -------------- |
| `packages/core/`         | `core`         |
| `packages/store/`        | `store`        |
| `packages/utils/`        | `utils`        |
| `packages/html/`         | `html`         |
| `packages/react/`        | `react`        |
| `packages/react-native/` | `react-native` |
| `packages/icons/`        | `icons`        |
| `site/`                  | `site`         |
| `rfc/`                   | `rfc`          |
| `internal/design/`       | `design`       |
| `.claude/`               | `claude`       |
| `.github/workflows/`     | `ci`           |
| `.github/`               | `cd`           |
| Root config files        | `root`         |

## Multiple Packages

When changes span multiple packages:

1. **Single primary package**: Use that package's scope
2. **Related packages**: Use the most significant one
3. **Broad changes**: Use `packages` scope

## Allowed Scopes

From `commitlint.config.js`:

```
cd, ci, claude, core, design, docs, html, icons, packages,
plan, react-native, react, rfc, root, site, store,
test, utils
```

## Examples

```bash
# Single package
packages/store/src/feature.ts → store

# Multiple files in same package
packages/html/src/slider.ts
packages/html/src/button.ts → html

# Cross-package refactor
packages/store/src/slice.ts
packages/core/src/media.ts → packages (or primary one)

# Root configs
tsconfig.json
package.json → root

# CI changes
.github/workflows/test.yml → ci
```

```

### references/pr.md

```markdown
# Pull Requests

Conventions for PR titles and descriptions.

## PR Title

Same as commit message format:

```
type(scope): lowercase description
```

**Exceptions:**

| Prefix       | Use for                              |
| ------------ | ------------------------------------ |
| `[RFC]`      | Request for comments / proposals     |
| `Discovery:` | Exploration / research / prototyping |

**Note:** RFC PRs use `[RFC] Title` format while open. When merged, the squash commit uses `docs(rfc): title`.

## PR Body Template

```markdown
Refs #123
Closes #456

## Summary

[1-3 sentences: what changed and why]

## Changes

[Bullet points of meaningful changes — describe behavior, NOT file list]

<details>
<summary>Implementation details</summary>

[Only if complex: architecture decisions, tradeoffs, notable patterns]

</details>

## Testing

[How to verify: manual steps, test commands, or "covered by existing tests"]
```

## Issue Linking

| Keyword  | Effect                              |
| -------- | ----------------------------------- |
| `Refs`   | Links to related issue (stays open) |
| `Closes` | Closes issue when PR merges         |
| `Fixes`  | Closes issue when PR merges         |

Place issue references at the top of the body, before Summary.

## Description Principles

1. **Progressive disclosure** — summary visible, details collapsed
2. **Why over what** — explain motivation, not mechanics
3. **Human-readable** — no file lists or auto-generated noise
4. **Concise** — reviewers should understand in 30 seconds

## What NOT to Include

- File lists (reviewers see the diff)
- Auto-generated changelogs
- Excessive implementation details (use `<details>` if needed)
- Screenshots unless UI change (prefer before/after if included)

## Examples

### Feature PR

```markdown
Closes #42

## Summary

Add volume slider component with keyboard support and ARIA labels.

## Changes

- Volume slider with drag and click interactions
- Keyboard control: arrow keys adjust by 5%, Page Up/Down by 10%
- Muted state toggle via slider or M key
- ARIA: `slider` role with proper labeling

## Testing

1. `pnpm -F @videojs/html test`
2. Manual: drag slider, use keyboard, verify screen reader announces changes
```

### Bug Fix PR

```markdown
Fixes #89

## Summary

Fix race condition where rapid play/pause could leave player in inconsistent state.

## Changes

- Add guard to debounce rapid play/pause calls
- Prevent redundant state transitions

## Testing

Covered by new test in `media-feature.test.ts`. Manual: rapidly click play/pause.
```

```

### references/branch.md

```markdown
# Branch Naming

Conventions for naming feature and fix branches.

## Format

```
type/short-description
```

- **type**: Same as commit type (`feat`, `fix`, `chore`, etc.)
- **short-description**: Kebab-case summary (2-4 words)

## Examples

| Branch                      | Purpose                          |
| --------------------------- | -------------------------------- |
| `feat/volume-slider`        | New volume slider component      |
| `feat/media-queries`        | Add media query support          |
| `fix/slider-drag-edge`      | Fix edge case in slider dragging |
| `fix/state-sync-race`       | Fix race condition in state sync |
| `refactor/store-cleanup`    | Clean up store internals         |
| `chore/bump-deps`           | Dependency updates               |
| `docs/readme-examples`      | Update README examples           |
| `test/slider-keyboard`      | Add keyboard tests for slider    |
| `rfc/request-api`           | RFC for new request API design   |
| `design/slice-store`        | Design doc for slice/store arch  |
| `plan/store-simplification` | Planning store architecture      |

## Guidelines

1. **Keep it short** — branch names appear in many places
2. **Be descriptive** — should hint at the change
3. **Use kebab-case** — lowercase with hyphens
4. **Match commit type** — branch type should match eventual commit type

## Special Branches

| Branch     | Purpose                            |
| ---------- | ---------------------------------- |
| `main`     | Primary branch                     |
| `rfc/*`    | Request for comments / proposals   |
| `design/*` | Design docs (decisions you own) |
| `plan/*`   | Planning and discovery work        |

## Issue-Linked Branches

When working on a specific issue, you may include the issue number:

```
feat/42-volume-slider
fix/89-race-condition
```

This is optional but helps traceability.

```

git | SkillHub