Agent skill

Review Arguments Dsl

by ruby-git in ruby-git/ruby-git

Audits a command class's arguments DSL definition to verify it accurately maps Ruby call arguments to git CLI arguments in the correct order with correct DSL methods and modifiers.

MITAuto-check passedDevelopment

Install Review Arguments Dsl

skills CLI
$ npx skills add ruby-git/ruby-git --skill review-arguments-dsl -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install ruby-git/ruby-git review-arguments-dsl --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/ruby-git/ruby-git.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/skills/review-arguments-dsl .claude/skills/review-arguments-dsl && rm -rf skills-src

Use ~/.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/

Facts

Skill name
review-arguments-dsl
GitHub stars
1.8k
Token cost
~2.9k tokens
SKILL.md length
1,255 words
Files
2
Skills in repo
30
Repo updated
First seen
Licence
MIT

At a glance

Audits a command class's arguments DSL definition to verify it accurately maps Ruby call arguments to git CLI arguments in the correct order with correct DSL methods and modifiers.

  • Works in 6 steps: Determine scope and exclusions — using… → Audit each DSL entry — for each entry in… → Check completeness — verify the DSL as a… → …
  • Tasks that involve Git workflow
  • SKILL.md covers Contents, Related skills, Input and Reference, plus 2 more sections
  • Calls git and ruby; reaches git-scm.com

What it does

Review Arguments Dsl is an agent skill from ruby-git/ruby-git. Audits a command class's arguments DSL definition to verify it accurately maps Ruby call arguments to git CLI arguments in the correct order with correct DSL methods and modifiers.

Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file (for example `CHECKLIST.md`).

It sits in Development, covering Git workflow. It works with Git and Ruby. 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.

When your agent uses it

  • Tasks that involve Git workflow

Example prompts

  • “Use the review-arguments-dsl skill to audit a command class's arguments DSL definition to verify it accurately maps Ruby call arguments to git CLI…”
  • “/review-arguments-dsl”

Workflow steps

6 steps, taken from the first numbered list in SKILL.md.

  1. Determine scope and exclusions — using the git documentation loaded during
  2. Audit each DSL entry — for each entry in arguments do, walk through
  3. Check completeness — verify the DSL as a whole against the git man page per
  4. Check class-level declarations — verify allow_exit_status and
  5. Check the validation delegation policy — verify that cross-argument
  6. Collect issues — record all findings for the Output.

What it can do on your machine

Read from SKILL.md and the folder at commit f3bf20f. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • git
    • ruby

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • git-scm.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Review Arguments Dsl loads about 2.9k tokens when it runs. Until then it costs about 50 tokens; SKILL.md has 1,255 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~50
When it runs · the whole SKILL.md, loaded when a task matches
~2.9k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from ruby-git/ruby-git at commit f3bf20f, republished under its MIT licence (© ruby-git). 1,255 words, ~2,910 tokens.

Download SKILL.mdSave it as .claude/skills/review-arguments-dsl/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
review-arguments-dsl
description
Audits a command class's arguments DSL definition to verify it accurately maps Ruby call arguments to git CLI arguments in the correct order with correct DSL methods and modifiers.

Review Arguments DSL

Verify that a command class's arguments do ... end definition accurately maps Ruby call arguments to git CLI arguments, in the correct order, with the correct DSL methods and modifiers.

Contents

Input

What the agent requires to run this skill and where to get it.

Command source code

Read the command class from lib/git/commands/{command}.rb or, for subcommands, lib/git/commands/{command}/{subcommand}.rb. For subcommands, also read the namespace module at lib/git/commands/{command}.rb which should list all sibling subcommands and provide the module-level documentation.

Command test code

Read unit tests matching spec/unit/git/commands/{command}/**/*_spec.rb. Use these as supplemental evidence when tracing the verification chain (Ruby call → bound argument → expected git CLI). Coverage completeness is assessed by the Command Test Conventions skill.

Git 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 DSL completeness, including the options to include in the DSL, argument names, aliases, ordering, etc. 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 serves two purposes: command-introduction and requires_git_version decisions, and option-surface reconciliation. Diff these docs against the latest-version docs; an option they describe that the latest-version docs no longer describe belongs in the DSL with a version-split comment (the review flags are in Option surface spans the supported git range), and before accepting that comment's when-and-how claims, confirm them against the versioned docs at intermediate releases, the git release notes, or the upstream source. What the endpoint diff can and cannot establish is defined in Options completeness. Fetch this version from URL https://git-scm.com/docs/git-{command}/{version}.

Do not scaffold from local git <command> -h output alone — the installed Git version is unknown and may differ from the latest supported version. Local help should NOT be used even as a supplemental check.

Policy authorities

Read Project Context — Validation Boundaries, including its exception criteria for constraint declarations, and Options completeness — consult the latest-version docs first. The review flags in CHECKLIST.md reference these policies by link; load both authorities now so the flags are applied with the criteria in context, not from memory.

Reference

Architecture Context (Base Pattern)

Command classes follow this structure:

  • class < Git::Commands::Base
  • class-level arguments do ... end
  • optional class-level macros such as allow_exit_status <range> and requires_git_version <version>
  • YARD documentation with @overload blocks containing @param, @option, @return, and @raise tags, in one of two forms:
    • when #call is overridden: standard YARD comments directly above def call
    • when #call is not overridden: a # @!method call(*, **) directive with nested standard YARD comments

The CLI argument mapping is still defined exclusively by the Arguments DSL. The Base class handles binding and execution.

DSL to CLI Mapping
<!--
Purpose: gives the agent the mental model for predicting CLI output from a
DSL definition — the mapping rules needed to execute the verification chain
(Ruby call → bound argument → expected git CLI).

CHECKLIST.md works in the reverse direction: given git man-page behavior,
which DSL method and modifiers to use.
-->

The Arguments DSL (arguments do ... end) declares how Ruby keyword and positional arguments map to git CLI flags, options, and operands. See CHECKLIST.md § Verify DSL method per option type for the full DSL method mapping table.

Key behaviors:

  • Basic emit — flag_option :verbose → --verbose; value_option :message → --message <value>; operand :commit → bare <value> in positional slot.
  • flag_or_value_option — hybrid: true → --flag; string → --flag value (or --flag=value with inline:); false/nil → nothing. Supports negatable:.
  • key_value_option — accepts a Hash or Array of pairs; emits --flag key=value per pair. key_separator: overrides =; inline: joins as --flag=key=value.
  • custom_option — block receives the raw value and returns CLI strings; String is appended, Array is concatenated, nil/empty emits nothing.
  • nil / false suppression — for boolean-style options (flag_option, flag_or_value_option in boolean mode), false or nil suppresses emission. For value_option / inline_value options, false is treated as a value (stringified to "false") unless a type constraint rejects it. nil suppresses emission for all option types (including negatable options — false is absent, not --no-*).
  • Output order matches definition order — bound arguments are emitted in the order entries appear in arguments do.
  • Name-to-flag mapping — underscores become hyphens, single-char names map to -x, multi-char names map to --name. Case is preserved: :A → -A, :N → -N. Uppercase short flags do not require as:.
  • as: override — emits a verbatim string instead of deriving the flag from the symbol name. See CHECKLIST.md § The as: escape hatch for when use is justified.
  • Aliases — first alias is canonical and determines the generated flag; remaining aliases are accepted as caller-side synonyms. Long name first: %i[force f], not %i[f force].
  • negatable: — registers two entries: the positive key and a no_ companion. Both follow standard boolean semantics: true emits the flag, false/nil omits it. Pass no_edit: true to emit --no-edit.
    • flag_option :edit, negatable: true → :edit [Boolean] and :no_edit [Boolean]
    • flag_or_value_option :track, negatable: true → :track [Boolean, String] (positive or value form) and :no_track [Boolean] (boolean only; the negated form never takes a value)
  • inline: — value_option :format, inline: true emits --format=value as one token; without it, --format value as two tokens.
  • max_times: — flag_option :force, max_times: 2 with force: 2 emits --force --force.
  • repeatable: — accepts an array; emits the flag once per value (e.g., --include a --include b).
  • as_operand: — value_option :pathspec, as_operand: true is passed as a keyword but emitted in the operand position after end_of_options.
  • literal — always emits its string unconditionally; the caller has no control.
  • execution_option — never emits anything to argv; forwarded as Ruby kwargs to the subprocess runner.
  • skip_cli: on operands — operand ..., skip_cli: true binds and validates like any other operand and remains accessible on Bound, but is excluded from argv emission.
  • end_of_options — signals end of options in the emitted argv; only operands may follow (though operands may also appear before it). Emits -- by default. Override with as: when the command uses a different token. See CHECKLIST.md § Choosing the as: token for the decision rule.
  • Operand/option name collision — if a positional operand and a keyword option share the same name, the option keeps its name and the operand is renamed. For repeatable operands, prefer the plural form (:commit → :commits). See CHECKLIST.md § Operand naming for details.
Show full SKILL.md (217 more words)Show less

Workflow

  1. Determine scope and exclusions — using the git documentation loaded during Input, identify which options are in scope for the DSL. See CHECKLIST.md §1.

  2. Audit each DSL entry — for each entry in arguments do, walk through CHECKLIST.md §2–§5:

    1. Verify DSL method per option type
    2. Verify alias and as: usage
    3. Verify ordering
    4. Verify modifiers

    For each entry, also trace the verification chain — confirm the full mapping:

    Ruby call → bound argument → expected git CLI

    Compare the expected CLI output against the git man-page documentation.

  3. Check completeness — verify the DSL as a whole against the git man page per CHECKLIST.md §6: YARD↔DSL parity, missing options, repeatable flags, operand naming, and per-argument validation.

  4. Check class-level declarations — verify allow_exit_status and requires_git_version per CHECKLIST.md §7.

  5. Check the validation delegation policy — verify that cross-argument constraint methods (conflicts, requires, etc.) are used only when justified. See the constraint policy in CHECKLIST.md §6 Per-argument validation completeness.

  6. Collect issues — record all findings for the Output.

Output

Produce:

  1. A per-entry table:

    #DSL methodDefinitionCLI outputCorrect?Issue
  2. A list of missing options/modifier/order/conflict issues

  3. Any class-level declaration mismatches: allow_exit_status not present with a Range and rationale comment when the command has non-zero successful exits; requires_git_version not present only when the command was introduced after Git::MINIMUM_GIT_VERSION

© 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

Files

SKILL.md and 1 other file in .github/skills/review-arguments-dsl of ruby-git/ruby-git.

  • SKILL.md
  • CHECKLIST.md

Open the folder on GitHubat commit f3bf20f

Compare with similar skills

Review Arguments Dsl 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.

Review Arguments Dsl compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Review Arguments Dsl this skillruby-git/ruby-git1.8k—~2.9kAutomated safety check: PassMIT
Finishing a Development Branchobra/superpowers296k5 repos~1.9kAutomated safety check: PassMIT
Code Design Rationale Investigatorcursor/plugins10k9 repos~2.6kAutomated safety check: PassNone
Contributor-First PR MergeHKUDS/OpenHarness16k1 repos~847Automated safety check: PassMIT
Migrate Internal Package into GhostTryGhost/Ghost55k—~3.8kAutomated safety check: PassMIT
Create Pull Requestcline/cline70k1 repos~1.6kAutomated safety check: PassApache-2.0

Similar skills

  • 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.

    296k GitHub starsUsed in 5 repos~1.9k tokens
    DevelopmentAuto-check passed
  • Official

    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.

    10k GitHub starsUsed in 9 repos~2.6k tokens
    DevelopmentAuto-check passed
  • Merges external GitHub pull requests while keeping the original author credited, and fixes conflicts after the merge instead of rewriting the contribution.

    16k GitHub starsUsed in 1 repo~847 tokens
    DevelopmentAuto-check passed
  • 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.

    55k GitHub stars~3.8k tokensUpdated today
    DevelopmentAuto-check passed
  • 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.

    70k GitHub starsUsed in 1 repo~1.6k tokens
    DevelopmentAuto-check passed
  • Git Merge Conflict Resolver

    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.

    7.6k GitHub starsUsed in 1 repo~4.5k tokens
    DevelopmentAuto-check passed

More from ruby-git/ruby-git

All 30 skills in this repo
  • Addresses unresolved pull request review threads and suppressed (low-confidence) Copilot review comments on the current branch, folds each fix into the…

    1.8k GitHub stars~657 tokensUpdated 6 days ago
    Auto-check passed
  • Breaking Change Analysis

    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.

    1.8k GitHub stars~1.7k tokensUpdated 6 days ago
    Auto-check passed
  • Diagnoses and fixes failing GitHub Actions runs by identifying the failure, fetching only the relevant logs, finding the root cause and reproducing it locally.

    1.8k GitHub stars~1.9k tokensUpdated 6 days ago
    Auto-check passed
  • Scaffolds and reviews `Git::Commands::*` classes in the ruby-git library, with unit tests, integration tests and YARD docs, using the Base command architecture.

    1.8k GitHub stars~3k tokensUpdated 6 days ago
    Auto-check passed
  • Gem Dependency Management

    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.

    1.8k GitHub stars~806 tokensUpdated 6 days ago
    Auto-check passed
  • 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.

    1.8k GitHub stars~4.4k tokensUpdated 6 days ago
    Auto-check passed

Works with

Categories

Questions about Review Arguments Dsl

What does Review Arguments Dsl do?

Audits a command class's arguments DSL definition to verify it accurately maps Ruby call arguments to git CLI arguments in the correct order with correct DSL methods and modifiers. Review Arguments Dsl is an agent skill from ruby-git/ruby-git. Audits a command class's arguments DSL definition to verify it accurately maps Ruby call arguments to git CLI arguments in the correct order with correct DSL methods and modifiers.

When should I use Review Arguments Dsl?

Review Arguments Dsl fits situations like: tasks that involve Git workflow.

How do I install Review Arguments Dsl in Claude Code?

Run `npx skills add ruby-git/ruby-git --skill review-arguments-dsl -a claude-code`. Or copy the skill folder (.github/skills/review-arguments-dsl in ruby-git/ruby-git) into .claude/skills/review-arguments-dsl in your project. Claude Code loads it when a task matches its description.

How do I install Review Arguments Dsl in Codex?

Run `npx skills add ruby-git/ruby-git --skill review-arguments-dsl -a codex`. Or copy the skill folder (.github/skills/review-arguments-dsl in ruby-git/ruby-git) into .agents/skills/review-arguments-dsl in your project. Codex loads it when a task matches its description.

Can I use Review Arguments Dsl in Cursor, Gemini CLI or GitHub Copilot?

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 review-arguments-dsl -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/review-arguments-dsl, .gemini/skills/review-arguments-dsl, .github/skills/review-arguments-dsl and .opencode/skills/review-arguments-dsl in your project.

What does Review Arguments Dsl need to run?

Going by SKILL.md and its folder, Review Arguments Dsl needs the command-line tools its instructions call (git and ruby).

Does Review Arguments Dsl access the network?

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.

Is Review Arguments Dsl safe to install?

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.

What licence does Review Arguments Dsl use?

Review Arguments Dsl is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Review Arguments Dsl use?

About 2.9k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Review Arguments Dsl?

Skills that share tags, products or a category with Review Arguments Dsl: 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.

Who maintains Review Arguments Dsl?

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.