Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Detects git forge (GitHub/GitLab/Bitbucket) and maps CLI commands cross-platform. Use when writing skills that must run on any git hosting provider.
.claude/skills/athola-git-platform/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | -6% | 0% |
| case-07 | ✗→✓ | ▲ Improved | 53% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-02 | ✓→✓ | = Same ✓ | 169% | 0% |
| case-03 | ✓→✓ | = Same ✓ | 81% | 0% |
Cross-platform abstraction for git forge operations. Detects whether the current project uses GitHub, GitLab, or Bitbucket, and provides equivalent CLI commands for each platform.
The SessionStart hook (detect-git-platform.sh) automatically injects the detected platform into session context. This skill provides the command reference for translating operations across platforms.
gh, glab, or forge API commandsgit commit, git branch, etc.)Detection is automatic via the SessionStart hook. The session context will contain:
git_platform: github|gitlab|bitbucket, cli: gh|glab, mr_term: pull request|merge requestIf you need to re-detect manually:
bash# Check remote URL git remote get-url origin 2>/dev/null # Check file markers ls -d .github/ .gitlab-ci.yml bitbucket-pipelines.yml 2>/dev/null # Check CLI availability command -v gh && echo "GitHub CLI available" command -v glab && echo "GitLab CLI available"
| Operation | GitHub (gh) | GitLab (glab) | |-----------|---------------|-----------------| | View issue | gh issue view N --json title,body,labels | glab issue view N | | List issues | gh issue list --json number,title | glab issue list | | Create issue | gh issue create --title "T" --body "B" | glab issue create --title "T" --description "B" | | Close issue | gh issue close N | glab issue close N | | Comment on issue | gh issue comment N --body "msg" | glab issue note N --message "msg" | | View PR/MR | gh pr view N | glab mr view N | | Create PR/MR | gh pr create --title "T" --body "B" | glab mr create --title "T" --description "B" | | List PR/MR comments | gh api repos/O/R/pulls/N/comments | glab mr note list N | | Current PR/MR | gh pr view --json number | glab mr view --json iid | | Resolve threads | gh api graphql | glab api graphql | | Repo info | gh repo view --json owner,name | glab repo view |
For Bitbucket: No standard CLI exists. Use REST API (curl) or the web interface. See command-mapping module for API equivalents.
| Concept | GitHub | GitLab | Bitbucket | |---------|--------|--------|-----------| | Code review unit | Pull Request (PR) | Merge Request (MR) | Pull Request (PR) | | CI configuration | .github/workflows/*.yml | .gitlab-ci.yml | bitbucket-pipelines.yml | | Default branch | main | main | main | | Review comments | PR review comments | MR discussion notes | PR comments |
Important: When the platform is GitLab, always say "merge request" (not "pull request") in user-facing output, commit messages, and comments.
Skills that perform forge operations should:
dependencies: [leyline:git-platform]git_platform:markdown# Example skill instruction pattern: ## Step N: Create PR/MR Use the detected platform CLI (check session context for `git_platform`): - **GitHub**: `gh pr create --title "..." --body "..."` - **GitLab**: `glab mr create --title "..." --description "..."` - **Bitbucket**: Create via web interface
Skill(leyline:authentication-patterns) for ensure_auth github|gitlab| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 12,213 | 4,833 | -60% | 1 | 1 | 0% | 2,313 | 2,184 | -6% | 0 | 0 | — |
case-02 | pass→pass | 3,381 | 2,489 | -26% | 1 | 1 | 0% | 553 | 1,487 | +169% | 0 | 0 | — |
case-03 | pass→pass | 5,153 | 3,004 | -42% | 1 | 1 | 0% | 886 | 1,602 | +81% | 0 | 0 | — |
case-04 | pass→pass | 2,217 | 1,707 | -23% | 1 | 1 | 0% | 298 | 1,400 | +370% | 0 | 0 | — |
case-05 | pass→pass | 4,612 | 2,769 | -40% | 1 | 1 | 0% | 829 | 1,610 | +94% | 0 | 0 | — |
case-06 | pass→pass | 5,340 | 1,693 | -68% | 1 | 1 | 0% | 809 | 1,375 | +70% | 0 | 0 | — |
case-07 | fail→pass | 5,458 | 1,867 | -66% | 1 | 1 | 0% | 956 | 1,463 | +53% | 0 | 0 | — |
case-08 | pass→pass | 8,385 | 2,708 | -68% | 1 | 1 | 0% | 1,220 | 1,481 | +21% | 0 | 0 | — |
case-09 | pass→pass | 2,552 | 2,536 | -1% | 1 | 1 | 0% | 370 | 1,542 | +317% | 0 | 0 | — |
case-10 | pass→pass | 2,562 | 1,728 | -33% | 1 | 1 | 0% | 337 | 1,381 | +310% | 0 | 0 | — |
case-11 | pass→pass | 2,707 | 1,550 | -43% | 1 | 1 | 0% | 363 | 1,322 | +264% | 0 | 0 | — |
case-12 | pass→pass | 3,681 | 1,535 | -58% | 1 | 1 | 0% | 494 | 1,338 | +171% | 0 | 0 | — |
case-13 | pass→pass | 10,327 | 5,369 | -48% | 1 | 1 | 0% | 1,623 | 2,150 | +32% | 0 | 0 | — |
case-14 | pass→pass | 3,808 | 2,221 | -42% | 1 | 1 | 0% | 528 | 1,367 | +159% | 0 | 0 | — |
case-15 | pass→pass | 7,533 | 2,640 | -65% | 1 | 1 | 0% | 1,341 | 1,487 | +11% | 0 | 0 | — |
case-16 | pass→pass | 5,937 | 2,270 | -62% | 1 | 1 | 0% | 1,087 | 1,482 | +36% | 0 | 0 | — |
case-17 | pass→pass | 5,496 | 1,850 | -66% | 1 | 1 | 0% | 904 | 1,395 | +54% | 0 | 0 | — |
case-18 | pass→pass | 3,972 | 2,860 | -28% | 1 | 1 | 0% | 704 | 1,619 | +130% | 0 | 0 | — |
case-19 | fail→pass | 7,467 | 1,879 | -75% | 1 | 1 | 0% | 1,197 | 1,434 | +20% | 0 | 0 | — |
case-20 | pass→pass | 2,865 | 1,501 | -48% | 1 | 1 | 0% | 453 | 1,367 | +202% | 0 | 0 | — |
case-21 | pass→pass | 2,266 | 3,442 | +52% | 1 | 1 | 0% | 295 | 1,513 | +413% | 0 | 0 | — |
case-22 | pass→pass | 8,287 | 4,389 | -47% | 1 | 1 | 0% | 1,384 | 1,822 | +32% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +14 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.