init-ruby-project

A setup guide for starting a Ruby project in the current directory. It checks the existing files and development tools, then continues only after unresolved choices are confirmed.

In plain words
What is it for?
Checking Bundler and GitHub CLI access, identifying whether the project is a Ruby gem, and preparing the repository for development.
Why use it?
It avoids overwriting work or making incorrect setup decisions when the directory is partly configured or when required tools are outdated.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/tk0miya/skills/init-ruby-project
Any agent
npx skills add tk0miya/skills --skill init-ruby-project
Clone the repo
git clone --depth 1 https://github.com/tk0miya/skills

Made for: Claude Code, Codex.

Per session 20 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,595 The whole file, excluding the scripts and references it only reads on demand.
Security scan B 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00020 $0.06595
Opus 5 $0.00010 $0.03298
Sonnet 5 $0.00004 $0.01319
Haiku 4.5 $0.00002 $0.00660

Measured yesterday against content hash 2730b0428541, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade B, and why

init-ruby-project scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

The scan reads SKILL.md. This mod also ships 6 executable files (add-required-checks.sh, hooks/claude-code-web-session-start.sh, hooks/pre-commit-check.sh, …), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

/.claude/settings.local.json
skills/init-ruby-project/SKILL.md · 414 lines

How it starts

The opening of the file, as written. The whole thing — 414 lines — stays where its author put it; the contents beside it link to each section on GitHub.

init-ruby-project

Ruby プロジェクトの初期セットアップを自動化するスキルです。

事前チェック(自動実行)

実行環境

以下を実行し、gh が認証済みか、Bundler が 4.0.13 以降かをチェックする。

gh auth status
bundle --version

4.0.13 未満の Bundler は Phase 1 で付与する cooldown(公開直後の gem を一定期間使わない 供給チェーン対策)を黙って無視するため、cooldown の効かないプロジェクトができあがる。 その場合は gem install bundler で更新してから再実行するようユーザーに伝えて中断する (ユーザーの環境を断りなく書き換えない)。

カレントディレクトリの状況

このスキルはカレントディレクトリをプロジェクトディレクトリとして扱う。ディレクトリの作成も bundle gem による雛形生成も行わない(gem を作るなら、先にユーザーが bundle gem を実行して そのディレクトリでこのスキルを呼ぶ)。初期セットアップの一部が済んでいることがあるので、 カレントディレクトリを調べてどこまで済んでいるかを判定する。

ls -1d .git Gemfile *.gemspec 2>/dev/null
[[ -e .git ]] && git remote get-url origin 2>/dev/null
[[ -e .git ]] && git rev-parse --verify -q HEAD && git status --porcelain
判定 条件 影響
gem のプロジェクト *.gemspec がある 以降の各フェーズで gem 用の分岐を選ぶ
リポジトリ作成済み カレントディレクトリに .git があり、origin がある Phase 3 の gh repo create をスキップする

origin を見る前にカレントディレクトリの .git を確認するのは、別のリポジトリの配下に作った ディレクトリで実行したときに、親リポジトリの origin を拾って「作成済み」と誤判定しないため (worktree や submodule では .git がファイルなので、ディレクトリかどうかでは判定しない)。

コミットが 1 つ以上あるリポジトリで git status --porcelain に未コミットの変更があれば、Phase 3 の コミットにユーザーの作業を巻き込むことになるので、この時点でユーザーに伝えて、先に片付けるか承知の うえで進めるかを確認する。履歴がまだ無い場合(手動で bundle gem を実行した直後など)は、雛形が まるごと未コミットなのが当たり前なので確認しない。

想定している典型シナリオは次の 4 つ。

  • 手動で bundle gem を実行し、そのディレクトリでこのスキルを実行する(gem・履歴なし・ リポジトリ未作成)
  • GitHub で作ったリポジトリを clone したディレクトリでこのスキルを実行する(gem ではない・ 履歴あり・リポジトリ作成済み)
  • 作ったばかりの空のディレクトリでこのスキルを実行する(gem ではない・履歴なし・ リポジトリ未作成)
  • ドキュメントだけ、あるいは他言語で書かれた既存プロジェクトに Ruby を足す(gem ではない・ 履歴あり・リポジトリ作成済み。Ruby 以外のファイルが既にある)

プロジェクト名は *.gemspec のベース名 → origin のリポジトリ名 → カレントディレクトリ名の順で 決める。判定はディレクトリの中身から決まるもので、名前もカレントディレクトリがプロジェクト ディレクトリである以上そこから決まるので、確認は求めない。判定結果と決定したプロジェクト名は Phase 0 の質問と一緒に伝える(何をスキップして何の名前で進むかが分かるように)。

Phase 0: ユーザーへの確認(未確定の項目だけを一度に質問する)

事前チェックで確定しなかった項目だけをまとめて質問し、回答を得てから次のフェーズに進む。

項目 質問する条件
対象 Ruby バージョン(例: 3.3) 常時
サポートする Ruby バージョン一覧(例: 3.2, 3.3, 3.4) gem のプロジェクトの場合
GitHub リポジトリを今すぐ作成するか(yes / no)。yes の場合は visibility(public / private) リポジトリ作成済みでない場合

Read the full file on GitHub · 414 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 414 lines · 20 tokens per session scan B 2730b0428541

Subscribe to this mod's changes

init-ruby-project is a skill published in the GitHub repository tk0miya/skills (2 stars, last pushed 2d ago), licensed Apache-2.0. It adds 20 tokens to every session and 6,595 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it B with 1 finding (reads agent configuration directories). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.

Related

Other skills, from other repositories

systematic-debugging

Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes.

obra/superpowers · 21 tokens

chat-pet-sprite-creation

Use when creating or changing VS Code chat pet sprite art, sprite sheets, state animations, eye treatments, Stable/Insiders variants, or pet transitions under src/vs/workbench/contrib/chat/browser/widget/media/chatPet.

microsoft/vscode · 53 tokens

cpu-profile-analysis

Analyze V8/Chrome CPU profiles (.cpuprofile) and DevTools trace files (Trace-.json). Use when: profiling performance, investigating slow functions, comparing code paths, finding bottlenecks, analyzing timeToRequest, understanding call trees from sampling profiler data, analyzing layout/paint/rendering, investigating…

microsoft/vscode · 71 tokens

babysit-pr

Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep…

openai/codex · 114 tokens

imagegen

Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output…

openai/codex · 113 tokens

agent-host-chat-contributions

Build and review cross-cutting agent-host chat behavior through lifecycle contributions. Use when adding turn lifecycle side effects, prompt or context injection, restored-history transformation, protocol-action observation, or when reviewing changes that add code to AgentSideEffects or AgentService.

microsoft/vscode · 56 tokens