skills/rubysmithing-scaffold/SKILL.md
--- name: rubysmithing-scaffold description: Ruby project scaffolder using rubysmith (apps, tools, scripts) or gemsmith (publishable gems). Activates on any mention of: scaffold a project, scaffold a gem, new ruby project, new gem, create gem, bootstrap project, rubysmith, gemsmith, generate project skeleton, project template, set up a new ruby app, start a ruby tool, start a ruby script, create a new gem for rubygems, initialize ruby project, rubysmith build, gemsmith build, new ruby
npx skillsauth add b08x/rubysmithing skills/rubysmithing-scaffoldInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Project initializer for the Ruby terminal-native stack. Runs rubysmith or gemsmith
CLI directly, then optionally hardens the generated project with Standard Mode conventions.
| Skill | When |
|:------|:-----|
| rubysmithing-context | Before any post-scaffold library-specific code generation |
| rubysmithing-tui | Project needs a terminal UI layer |
| rubysmithing-genai | Project needs LLM, RAG, or MCP components |
| rubysmithing-refactor | Convention hardening deferred or deeper cleanup needed |
| rubysmithing-yardoc | YARD documentation for scaffolded files |
Use this decision table to select rubysmith or gemsmith:
| Signal in user request | Tool |
|------------------------|------|
| "publishable gem", "rubygems.org", "gemspec", "gemsmith", "gem release" | gemsmith |
| "app", "tool", "script", "utility", "project", "local", "rubysmith" | rubysmith |
| Ambiguous | Ask exactly: "Will this be published as a gem on rubygems.org, or is it a local Ruby app/tool?" |
See references/scaffold-patterns.md Section 4 for the full decision tree and secondary signal table.
Collect: project name (must be snake_case) and feature flags.
Rather than asking about each flag individually, match the project to an archetype from
references/scaffold-patterns.md Section 3 and propose the preset. Ask the user to
confirm or adjust.
rubysmith defaults (for most projects): --git --rake --console --rspec --readme
Ask specifically about: Docker, GitHub CI, license, citation.
gemsmith defaults (for most gems): --rspec --zeitwerk --github
Ask specifically about: CLI entry point (--cli), security signing (--security), CircleCI.
gemsmith config warning: gemsmith requires ~/.config/gemsmith/configuration.yml
with author info — it will error without it. Remind the user: run gemsmith --edit
to generate the config before proceeding if they haven't already.
Assemble the command and show it before executing:
Tool: rubysmith
Project: my_tool
Flags: --git --rake --rspec --readme
Command: rubysmith build my_tool --git --rake --rspec --readme
State which config file will be read (~/.config/rubysmith/configuration.yml or
~/.config/gemsmith/configuration.yml).
rubysmith build <name> [flags]
# or
gemsmith build --name <name> [flags]
On non-zero exit: show the error verbatim. Diagnose the common causes:
rubysmith --edit or gemsmith --editgem install rubysmith or gem install gemsmithDo not proceed to Step 5 on error.
On success: display the generated file tree:
find <name> -type f | sort
Reference references/scaffold-patterns.md Section 7 for annotated tree examples
if the live output needs supplemental context.
Note: rubysmithing-context is NOT needed for this step. The scaffold CLI invokes build toolchain gems, not runtime library APIs. Activate rubysmithing-context when writing post-scaffold code that touches runtime gems.
Ask:
Scaffold complete. Apply Standard Mode convention hardening? (y/n)
This will add:
- # frozen_string_literal: true to all .rb files
- Zeitwerk loader wiring in the boot file
- journald-logger replacing any puts/p calls
- Async fiber boot pattern (if network I/O detected in Gemfile)
- circuit_breaker stubs for external API calls (if detected)
Answer n to skip — run rubysmithing-refactor on this project whenever ready.
If y: Apply each transformation from references/scaffold-patterns.md Section 6.
Generate modified files completely — no diffs, no stubs. Output a change log in the
format shown in Section 6.
If n: Skip. Note: "Convention pass skipped. Run rubysmithing-refactor when ready."
Batch/non-interactive context: default to n. Never silently modify files.
After the scaffold (and optional convention pass), output an adaptive routing block. Tailor it — suppress suggestions that are already covered by the scaffold flags used:
Next steps — route to these skills as needed:
rubysmithing-context → verify gem APIs before writing library-specific code
rubysmithing-tui → add a terminal UI layer
rubysmithing-genai → add LLM, RAG, or MCP components
rubysmithing-yardoc → generate YARD documentation for scaffolded files
rubysmithing-refactor → apply convention hardening (if skipped above)
Adaptive suppression rules:
--cli was passed to gemsmith → suppress rubysmithing-tui suggestionrubysmithing-genai to toprubysmithing-refactor from listfind or Section 7 reference)development
--- name: rubysmithing description: Convention-aware Ruby code generator for the terminal-native AI orchestration stack (dotenv, tty-config, zeitwerk, async, dry-schema, sequel, journald-logger, circuit_breaker, parallel, concurrent-ruby). Use for generating Ruby classes, modules, Rake tasks, config wiring, boot layer code, data pipelines, POROs, error class hierarchies, parallel processing workers, content parsers, and Gemfile decisions. Applies project-detected conventions (RuboCop, StandardRB
development
YARD documentation generator with semantic analysis for Ruby files. Automatically activates on requests to generate, add, or improve YARD documentation. Uses AST parsing and type inference to generate comprehensive @param, @return, @example, and @raise tags. Maintains consistency with existing project documentation patterns and YARD configuration. Generates production-grade documentation that eliminates usage pitfalls and accelerates correct method implementation. Requires rubysmithing-context when the target file uses non-stdlib gems, to ensure type annotations reflect verified API shapes.
data-ai
--- name: rubysmithing-tui description: Terminal UI scaffolder and advisor for Ruby projects using the Charm/Bubble ecosystem. Activates on any mention of: TUI, terminal UI, terminal interface, terminal app, BubbleTea, bubbletea, Lipgloss, lipgloss, Bubbles, bubbles (UI components), Huh, huh form, form validation, Gum, gum prompts, NTCharts, charts, data visualization, Bubblezone, Glamour, glamour rendering, markdown display, Harmonica, harmonica animations, spring physics, smooth transitions, a
development
--- name: rubysmithing-report description: Rubysmith QA assessment sub-skill implementing the SIFT Protocol V1.0. Activates on any mention of: assess, audit, review this project, code quality, convention violations, what's wrong with this code, score my code, how compliant is this, system design review, tech advisory, SIFT, Rubysmith QA, Caliber, Reek, dry-monads compliance, pipeline depth, god class, missing DI, or any request for a structured code quality report. Accepts pasted code, uploaded