Finishing a Development Branch
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
Command-specific YARD documentation rules for Git::Commands::Base subclasses, overriding and extending the general yard-documentation skill.
$ npx skills add ruby-git/ruby-git --skill command-yard-documentation -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ruby-git/ruby-git command-yard-documentation --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ruby-git/ruby-git.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/command-yard-documentation .claude/skills/command-yard-documentation && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "command-yard-documentation" agent skill from https://github.com/ruby-git/ruby-git/tree/main/.github/skills/command-yard-documentation into .claude/skills/command-yard-documentation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "command-yard-documentation", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ruby-git/ruby-git/tree/main/.github/skills/command-yard-documentationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ruby-git/ruby-git --skill command-yard-documentation -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ruby-git/ruby-git command-yard-documentation --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ruby-git/ruby-git.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.github/skills/command-yard-documentation .agents/skills/command-yard-documentation && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "command-yard-documentation" agent skill from https://github.com/ruby-git/ruby-git/tree/main/.github/skills/command-yard-documentation into .agents/skills/command-yard-documentation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "command-yard-documentation", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ruby-git/ruby-git --skill command-yard-documentation -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ruby-git/ruby-git command-yard-documentation --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ruby-git/ruby-git.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.github/skills/command-yard-documentation .cursor/skills/command-yard-documentation && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "command-yard-documentation" agent skill from https://github.com/ruby-git/ruby-git/tree/main/.github/skills/command-yard-documentation into .cursor/skills/command-yard-documentation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "command-yard-documentation", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ruby-git/ruby-git.git --path .github/skills/command-yard-documentation--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ruby-git/ruby-git --skill command-yard-documentation -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ruby-git/ruby-git command-yard-documentation --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ruby-git/ruby-git.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.github/skills/command-yard-documentation .gemini/skills/command-yard-documentation && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "command-yard-documentation" agent skill from https://github.com/ruby-git/ruby-git/tree/main/.github/skills/command-yard-documentation into .gemini/skills/command-yard-documentation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "command-yard-documentation", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ruby-git/ruby-git command-yard-documentationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ruby-git/ruby-git --skill command-yard-documentation -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ruby-git/ruby-git.git skills-src && mkdir -p .github/skills && cp -r skills-src/.github/skills/command-yard-documentation .github/skills/command-yard-documentation && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "command-yard-documentation" agent skill from https://github.com/ruby-git/ruby-git/tree/main/.github/skills/command-yard-documentation into .github/skills/command-yard-documentation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "command-yard-documentation", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ruby-git/ruby-git --skill command-yard-documentation -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ruby-git/ruby-git command-yard-documentation --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ruby-git/ruby-git.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.github/skills/command-yard-documentation .opencode/skills/command-yard-documentation && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "command-yard-documentation" agent skill from https://github.com/ruby-git/ruby-git/tree/main/.github/skills/command-yard-documentation into .opencode/skills/command-yard-documentation/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "command-yard-documentation", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
command-yard-documentationCommand-specific YARD documentation rules for Git::Commands::Base subclasses, overriding and extending the general yard-documentation skill.
Command Yard Documentation is an agent skill from ruby-git/ruby-git. Command-specific YARD documentation rules for Git::Commands::Base subclasses, overriding and extending the general yard-documentation skill. Use when writing or reviewing YARD docs for command classes.
Its SKILL.md is about 5.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Development, covering Git workflow. It works with Git. The repository describes itself as: Ruby/Git is a Ruby library that can be used to create, read and manipulate Git repositories by wrapping system calls to the git binary. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f3bf20f. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitbundleFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
git-scm.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Command Yard Documentation loads about 5.2k tokens when it runs. Until then it costs about 57 tokens; SKILL.md has 2,157 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from ruby-git/ruby-git at commit f3bf20f, republished under its MIT licence (© ruby-git). 2,157 words, ~5,223 tokens.
.claude/skills/command-yard-documentation/SKILL.md (or your agent's skills folder).Write and verify YARD documentation for command classes aligned with
the Git::Commands::Base pattern. Use this skill when writing or reviewing
YARD docs on command classes — it overrides and extends the general
YARD Documentation skill with
command-specific rules.
This skill verifies that YARD docs accurately mirror the arguments do block
as-implemented. It does not re-adjudicate which options belong based on Git
version — version gating is the domain of the DSL and the
Command Implementation skill, not YARD review.
Before starting, you MUST load the following skill(s) in their entirety:
Then gather the following for each command under review:
Command source — one or more files from lib/git/commands/ containing:
class < Git::Commands::Basearguments do ... endallow_exit_status# @!method call(*, **) YARD directive (when no def call override)
or YARD doc comments directly above an explicit def call overrideGit documentation for the git command
Latest-version online command documentation
Read the entire official git documentation online man page for the command
for the latest version of git. This version will be used as the primary
authority for verifying option names, aliases, descriptions, and ordering.
Fetch this version from the URL https://git-scm.com/docs/git-{command}
(this URL always serves the latest release).
Minimum-version online command documentation
Read the entire official git documentation online man page for the command
for the Git::MINIMUM_GIT_VERSION version of git. This will be used to
confirm whether the command/class is gated by requires_git_version and,
when it is, that the YARD docs include a continuation paragraph noting the
minimum version requirement. Fetch this version from the URL
https://git-scm.com/docs/git-{command}/{version}.
Do not rely on local git <command> -h output — the installed Git version
is unknown and may differ from the minimum or latest supported version.
The placement of call documentation depends on whether the command class overrides
def call.
def call override (simple commands)When the class does not define def call, use the # @!method call(*, **) YARD
directive. This tells YARD to attach per-command docs to the inherited call method
without a method definition in the subclass:
# @!method call(*, **)
#
# @overload call(**options)
#
# Execute the git ... command.
#
# @param options [Hash] command options
#
# @option options [Boolean, nil] :force (nil) ...
#
# @return [Git::CommandLine::Result]Note the placement rules:
@overload description text must appear inside the @overload block (indented
one extra level, as in the template above). Do not place the description between
the @!method line and the @overload tag — that level belongs to any @!method-scope
prose that is not part of any overload, which is rarely needed.arguments do block (and after
allow_exit_status when present). Do not combine @!method with an explicit
def call.def call overrideWhen the class defines def call explicitly (for input validation, stdin feeding, or
non-trivial option routing), place YARD docs directly above the def call
method. Do not use @!method — YARD will read the normal doc comment on the real
method:
# @overload call(*revision_range, **options)
#
# Execute the `git log` command.
#
# @param revision_range [Array<String>] zero or more revision specifiers
#
# @param options [Hash] command options
#
# @option options [Boolean, nil] :all (nil) ...
#
# @return [Git::CommandLine::Result] the result of calling `git log`
#
# @raise [ArgumentError] if conflicting options are given
#
# @raise [Git::FailedError] if git exits with a non-zero exit status
def call(*, **kwargs)
# custom logic …
super
endUsing @!method when def call already exists causes YARD to generate duplicate or
conflicting documentation for the method.
| DSL method | YARD type |
|---|---|
flag_option | [Boolean, nil] — default (nil) (flag not emitted by default; both false and nil suppress the flag) |
flag_option ..., max_times: N | [Boolean, Integer, nil] |
flag_option ..., negatable: true | registers two entries; document two @option tags: positive key [Boolean, nil] (true → --flag; default (nil) → nothing), negative key [Boolean, nil] (true → --no-flag; default (nil) → nothing) |
flag_or_value_option | [Boolean, String, nil] (or the specific value type with nil appended) |
flag_or_value_option ..., negatable: true | registers two entries; document two @option tags: positive key [Boolean, String, nil] (true → --flag; string → --flag=value with inline: true, or --flag <value> without; default (nil) → nothing), negative key [Boolean, nil] (true → --no-flag; default (nil) → nothing) |
value_option | [String] — value_option does not enforce types; it accepts any non-nil value and converts it to a string. Use [String] unless callers are expected to pass a narrower type, in which case widen the annotation to reflect reality (e.g. [Integer, String] for options documented as taking <n> lines/bytes). Never use a bare numeric type such as [Integer] alone — that misrepresents what the implementation accepts. |
operand (repeatable) | [Array<String>] |
operand (single) | [String] |
Using # @!method call(*, **) when an explicit def call override exists — causes
YARD to generate duplicate or conflicting documentation; remove the @!method
directive and place the @overload docs directly above def call
Missing # @!method call(*, **) directive when there is no def call override
(loses child-specific docs in generated YARD)
@option docs out of sync with arguments do
YARD tags inside the arguments do block — placing a tag (@see, @param,
@return, etc.) in a comment above a DSL entry such as flag_option :x produces an
orphaned doc comment. The DSL call is not a documentable construct, so YARD silently
drops the comment and Documentation/OrphanedDocComment flags it. Document each
option in its @option tag (put URLs in continuation text) and use a class-level
@see for command-wide references. A plain-prose comment (no leading @tag) inside
the block is fine.
Missing @raise [ArgumentError] when **options is in the overload signature —
every @overload that includes **options requires
@raise [ArgumentError] if unsupported options are provided. The Arguments DSL
always raises this at bind time for unknown keys via validate_unsupported_options!.
For commands whose arguments block declares no options (only operand entries),
drop **options from the signature entirely — then no @raise [ArgumentError] is
needed.
**options in @overload without @param options [Hash] — whenever an
@overload signature includes **options, a corresponding @param options [Hash]
tag is required. For commands whose arguments block declares no options (only
operand entries), omit **options from the @overload signature entirely and
remove any @raise [ArgumentError] if unsupported options are provided tag.
# ❌ No options in DSL but **options appears in overload without @param
# @overload call(name, **options)
# @param name [String] the remote name to remove
# @raise [ArgumentError] if unsupported options are provided
# ✅ Operand-only command: drop **options from the signature
# @overload call(name)
# @param name [String] the remote name to removeMissing second @option tag for negatable: options — when the DSL declares
flag_option :foo, negatable: true or flag_or_value_option :foo, negatable: true,
two separate @option entries are required: one for the positive key (:foo) and
one for the negative companion key (:no_foo). A single tag documents only half
the interface.
# ❌ Missing negative companion tag
# @option options [Boolean, nil] :create_reflog (nil) create the branch's reflog
# ✅ Both forms documented with separate tags
# @option options [Boolean, nil] :create_reflog (nil) create the branch's reflog
#
# @option options [Boolean, nil] :no_create_reflog (nil) suppress branch reflog
# creation (`--no-create-reflog`)Missing/incorrect @raise guidance for allow_exit_status
Overly specific @raise [Git::FailedError] description — do not enumerate
specific failure causes (e.g., "if the branch doesn't exist", "if the target
already exists"). Git can fail for many reasons beyond any list (invalid ref name,
not a git repository, permission error, etc.). Use the generic range-based form:
# ❌ Overly specific — does not cover all failure cases
# @raise [Git::FailedError] if the branch doesn't exist or target exists (without force)
# ✅ Correct — generic, matches sibling commands, accurate for all failure causes
# @raise [Git::FailedError] if git exits with a non-zero exit statusFor commands with a non-default range (e.g. allow_exit_status 0..1):
# ✅ Correct for allow_exit_status 0..1
# @raise [Git::FailedError] if git exits outside the allowed range (exit code > 1)Legacy references to ARGS constant or command-specific initialize
@option description references a short flag instead of the emitted long flag —
@option prose must describe behavior using the emitted CLI form (the long flag),
not the git man-page synopsis short notation. The DSL emits the primary (long) flag
regardless of which alias the caller uses.
# ❌ Wrong — describes -v as if it is emitted
# @option options [Boolean, Integer, nil] :verbose (nil) ...
# Pass `true` for `-v`; pass `2` for `-v -v`.
# ✅ Correct — describes the actually emitted flag
# @option options [Boolean, Integer, nil] :verbose (nil) ...
# Pass `true` for `--verbose`; pass `2` for `--verbose --verbose`.Description leaks internal mechanics (e.g., "written via IO pipe") instead of describing caller-facing behavior
Uppercase first letter or trailing period on tag short descriptions — the
summary text of every @option, @param, @return, and @raise tag must start
with a lowercase letter and must not end with punctuation (., ,, ;, :).
Git man pages start descriptions with uppercase and end them with periods; both
mistakes are easy to copy verbatim. Run bundle exec rake yard to catch trailing
periods — YARD treats any failure as fatal. Correct form:
# ❌ Copied verbatim from the git man page
# @option options [Boolean, nil] :force (nil) Allow renaming even if target already exists.
# ✅ Correct — lowercase start, no trailing period
# @option options [Boolean, nil] :force (nil) allow renaming even if target already existsRaw blank line inside a doc comment block — a raw blank line (an empty line
with no leading #) silently terminates the YARD block. Any comment lines after
the raw blank line are dropped from generated docs. Replace every raw blank line
inside a block with a blank comment line (#). This is easy to miss in
continuation paragraphs and alias notes. Correct form:
# @option options [Boolean, nil] :ipv4 (nil) use IPv4 addresses only
#
# Alias: :"4"Multi-sentence short description without a blank comment line — when an
@option needs more than one sentence, the first sentence is the short description
and all additional detail must go in a continuation paragraph separated by a blank
# line. Writing both sentences on the same run-in line violates YARD's
short-description rule. Correct form:
# @option options [Boolean, nil] :update_head_ok (nil) allow updating HEAD ref
#
# When true, passes --update-head-ok. By default git fetch refuses to update HEAD.For each command file, run through these checks in order:
@example blocks with representative usage@note `arguments` block audited against https://git-scm.com/docs/git-{command}/<version> —
present and recording the latest git version at the time of the last DSL audit.
Flag as an error if missing or if the version in the URL does not match the
current latest git version (run bin/latest-git-version from the repo root to
check; a stale version means the DSL may be missing options added in later releases)@see to parent command module where applicable@see to the full documentation URL (e.g., @see https://git-scm.com/docs/git-show-ref)@api private@overload blocks cover valid call shapes@param@option@option entries appear in the same order as the corresponding entries in the
arguments do block@option types match the DSL method (see
DSL-to-YARD type mapping)@option defaults match the DSL method — flag_option (plain or negatable)
always uses (nil) for both the positive and negative no_ companion tag;
value_option uses (nil). Check every @option default tag against the DSL entry.
For negatable: options, verify that two @option tags are present (one
for the positive key, one for the no_ companion key) and that both use (nil).@option descriptions for options that have an allowed_values declaration
enumerate the accepted values in the description text, e.g.: @option options [String] :cleanup (nil) Cleanup mode — one of verbatim, whitespace, or strip @return [Git::CommandLine::Result] with wording: "the result of calling git <subcommand>"
@api public is present at the end of the @overload block (after all @raise
tags) — every command class is @api private at the class level, but call is
the public contract and must be marked @api public
whenever the @overload signature includes **options, include
@raise [ArgumentError] if unsupported options are provided — the Arguments
DSL always raises this at bind time for unknown keys via validate_unsupported_options!
@raise [Git::FailedError] uses the canonical generic wording — never
enumerate specific failure causes; use the form that matches the command's
declared exit-status range:
allow_exit_status | Canonical @raise wording |
|---|---|
none declared (default 0..0) | if git exits with a non-zero exit status |
allow_exit_status 0..1 | if git exits outside the allowed range (exit code > 1) |
allow_exit_status 0..N | if git exits outside the allowed range (exit code > N) |
allow_exit_status rationale consistencyWhen command declares non-default exit range:
@raise text does not contradict accepted status behavior@param, @option, @return, @raise, @overload,
@see, @api, etc.) is preceded by a blank comment line (#)#) appear inside any doc block —
a raw blank line silently terminates the block and drops everything after it@param, @option,
@return, @raise, etc.) do not end with punctuation (no ., ,, ;, :)#) between the
short description and each continuation paragraph@option, @param, @return, and @raise short descriptions all start with a
lowercase letter (e.g. show the HEAD ref even when filtered, the path to the repository, the result of calling \git show-ref`, if git exits with a non-zero
status`)max_times: flags use [Boolean, Integer] type, not just [Boolean], and
include a continuation paragraph explaining integer semantics (e.g. "When an
integer is given, the flag is repeated that many times")Prefer interface-level wording (what callers can pass/expect), not internals.
Common example — stdin transport mechanism:
# Bad: leaks implementation detail (IO pipe, threading)
# Object names are written to the process's stdin via an in-memory IO pipe;
# this avoids spawning additional processes and works with the --batch protocol.
# Good: describes caller-facing behavior
# Object names are passed to the git process's stdin using the --batch protocol.IO.pipe, threads, or pipe buffer managementwith_stdin,
run_batch)Produce the complete YARD doc block(s) for the command class, then self-verify by running every checklist item from Workflow against your output. If any issues are found, fix and re-verify until all checks pass.
For each file, provide:
issue table
| Check | Status | Issue |
|---|
corrected doc block snippets (only where needed)
Self-verify before concluding — after writing corrected snippets, re-run every checklist item from Workflow against your proposed snippets. If any new issues are found, update the snippets and repeat until all checks pass. Only then write the final issue table marking everything as passing.
Branch workflow: Implement any fixes on a feature branch. Never commit or push directly to
main— open a pull request when changes are ready to merge.
© ruby-git, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .github/skills/command-yard-documentation of ruby-git/ruby-git.
Open the folder on GitHubat commit f3bf20f
Command Yard Documentation next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Command Yard Documentation this skillruby-git/ruby-git | 1.8k | — | ~5.2k | Automated safety check: Pass | MIT | |
| Finishing a Development Branchobra/superpowers | 296k | 5 repos | ~1.9k | Automated safety check: Pass | MIT | |
| Code Design Rationale Investigatorcursor/plugins | 10k | 9 repos | ~2.6k | Automated safety check: Pass | None | |
| Contributor-First PR MergeHKUDS/OpenHarness | 16k | 1 repos | ~847 | Automated safety check: Pass | MIT | |
| Migrate Internal Package into GhostTryGhost/Ghost | 55k | — | ~3.8k | Automated safety check: Pass | MIT | |
| Create Pull Requestcline/cline | 70k | 1 repos | ~1.6k | Automated safety check: Pass | Apache-2.0 |
obra/superpowers
Walks the last step of a branch: confirm tests pass, detect the git environment, ask how to integrate, carry out your choice and clean up the worktree.
cursor/plugins
Digs into why code is shaped the way it is by checking git history, pull requests and connected tools in parallel, then reporting a cited read on the tradeoffs.
HKUDS/OpenHarness
Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.
TryGhost/Ghost
Moves a package from another TryGhost repository into Ghost as an internal workspace package while keeping its Git history, with checkpoints for the steps that need an administrator.
cline/cline
Opens a GitHub pull request from your current branch with the gh CLI, after reviewing the commits and diff and gathering the details the PR needs.
tailcallhq/forgecode
Resolves Git merge conflicts with a plan-first workflow that keeps both sides' intent, regenerates lock files and backs up deleted-but-modified files.
ruby-git/ruby-git
Addresses unresolved pull request review threads and suppressed (low-confidence) Copilot review comments on the current branch, folds each fix into the…
ruby-git/ruby-git
Assesses what an API change would break before it is made, finds every usage, documents the impact and plans a deprecation or migration path.
ruby-git/ruby-git
Diagnoses and fixes failing GitHub Actions runs by identifying the failure, fetching only the relevant logs, finding the root cause and reproducing it locally.
ruby-git/ruby-git
Scaffolds and reviews `Git::Commands::*` classes in the ruby-git library, with unit tests, integration tests and YARD docs, using the Base command architecture.
ruby-git/ruby-git
Workflow for updating gem dependencies and fixing CVEs in the ruby-git project: assess with bundle outdated and audit, edit the gemspec, test, then commit with conventional messages.
ruby-git/ruby-git
Migrates a direct command call in Ruby Git's Git::Lib to a Git::Commands class, as part of a Strangler Fig redesign, with a plan, legacy tests and a pull request.
Works with
Categories
Command-specific YARD documentation rules for Git::Commands::Base subclasses, overriding and extending the general yard-documentation skill. Command Yard Documentation is an agent skill from ruby-git/ruby-git. Command-specific YARD documentation rules for Git::Commands::Base subclasses, overriding and extending the general yard-documentation skill.
Command Yard Documentation fits situations like: reviewing YARD docs for command classes; tasks that involve Git workflow.
Run `npx skills add ruby-git/ruby-git --skill command-yard-documentation -a claude-code`. Or copy the skill folder (.github/skills/command-yard-documentation in ruby-git/ruby-git) into .claude/skills/command-yard-documentation in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ruby-git/ruby-git --skill command-yard-documentation -a codex`. Or copy the skill folder (.github/skills/command-yard-documentation in ruby-git/ruby-git) into .agents/skills/command-yard-documentation in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ruby-git/ruby-git --skill command-yard-documentation -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/command-yard-documentation, .gemini/skills/command-yard-documentation, .github/skills/command-yard-documentation and .opencode/skills/command-yard-documentation in your project.
Going by SKILL.md and its folder, Command Yard Documentation needs the command-line tools its instructions call (git and bundle).
SKILL.md names 1 domain. In commands or code: git-scm.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Command Yard Documentation is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.2k tokens (SKILL.md is roughly 21k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Command Yard Documentation: Finishing a Development Branch (obra/superpowers, 296k stars), Code Design Rationale Investigator (cursor/plugins, 10k stars), Contributor-First PR Merge (HKUDS/OpenHarness, 16k stars) and Migrate Internal Package into Ghost (TryGhost/Ghost, 55k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ruby-git (a GitHub organization) maintains it in ruby-git/ruby-git, which has 1,799 GitHub stars. The repository holds 30 skills in this directory. The repository was last updated on October 2, 2026.
Source: ruby-git/ruby-git on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.