Skills generating-sorbet-inline
๐Ÿ“ฆ

generating-sorbet-inline

Content revision r1 Medium Risk โš™๏ธ External commands๐ŸŒ Network access๐Ÿ“ Filesystem access

Generate Sorbet Inline Signatures

Ruby teams often need typed method contracts without moving logic into RBI files. This skill guides Claude, Codex, and Claude Code through adding Sorbet sig blocks directly in source files.

Supports: Claude Codex Code(CC)
๐Ÿ“Š 71 Adequate

Install with my Agent

Copy this request to your Agent. It includes the canonical Skill page and manifest.

Agent request
Review the Skillstore skill "generating-sorbet-inline" from https://skillstore.io/skills/dmitrypogrebnoy-generating-sorbet-inline.md and its manifest at https://skillstore.io/api/skills/dmitrypogrebnoy-generating-sorbet-inline/manifest. Verify the artifact. You may proceed after verification, subject to the environment's own policy.

Your Agent should still show its plan and request any confirmation required by the security policy.

Test it

Using "generating-sorbet-inline". A Ruby class with an initializer, two attribute readers, and a greeting method.

Expected outcome:

The file receives a typed sigil if missing, extend T::Sig, and method-level signatures for each public API.

Using "generating-sorbet-inline". A service object with keyword arguments and an optional value.

Expected outcome:

The generated signatures describe required keywords, nullable values, and the method return type in Sorbet syntax.

Using "generating-sorbet-inline". A file that already uses # typed: strict and some existing sig blocks.

Expected outcome:

The skill preserves the strict sigil, fills missing signatures, and flags any remaining uncertain types for review.

Security Audit

Medium Risk
v8 โ€ข 7/5/2026 Open versioned report

Most static findings are false positives caused by Markdown backticks, Sorbet sig syntax, documentation URLs, Ruby Hash#fetch, and bundled reference examples. No prompt injection or malicious exfiltration intent was found. The main residual risk is the instruction to run Sorbet validation commands in the user project.

67
Files scanned
5,038
Lines analyzed
0
Review items
0
False positives ignored

Confirmed security concerns (1)

Medium
Validation Command Execution Requires Trust
SKILL.md instructs the agent to run srb tc or bundle exec srb tc to validate signatures. These commands execute tooling from the user Ruby environment and should require explicit approval in untrusted projects.
The validation section clearly names shell commands. The intent is legitimate type checking, but it still asks the agent to execute project-local tooling.

Risk Factors

โš™๏ธ External commands (54)
reference/sorbet_examples/packwerk/packwerk/application_validator.rb:119 reference/sorbet_examples/packwerk/packwerk/cli.rb:60 reference/sorbet_examples/packwerk/packwerk/commands/init_command.rb:27 reference/sorbet_examples/packwerk/packwerk/commands/update_todo_command.rb:49 reference/sorbet_examples/packwerk/packwerk/commands/update_todo_command.rb:51 reference/sorbet_examples/packwerk/packwerk/const_node_inspector.rb:20 reference/sorbet_examples/packwerk/packwerk/const_node_inspector.rb:21 reference/sorbet_examples/packwerk/packwerk/constant_discovery.rb:12 reference/sorbet_examples/packwerk/packwerk/constant_discovery.rb:13 reference/sorbet_examples/packwerk/packwerk/constant_discovery.rb:50 reference/sorbet_examples/packwerk/packwerk/extension_loader.rb:5 reference/sorbet_examples/packwerk/packwerk/extension_loader.rb:6 reference/sorbet_examples/packwerk/packwerk/file_processor.rb:59 reference/sorbet_examples/packwerk/packwerk/formatters/default_offenses_formatter.rb:26 reference/sorbet_examples/packwerk/packwerk/generators/root_package.rb:31 reference/sorbet_examples/packwerk/packwerk/generators/root_package.rb:36 reference/sorbet_examples/packwerk/packwerk/node_helpers.rb:82 reference/sorbet_examples/packwerk/packwerk/node_helpers.rb:83 reference/sorbet_examples/packwerk/packwerk/offenses_formatter.rb:16 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:65 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:66 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:117 SKILL.md:8 SKILL.md:16-20 SKILL.md:20-23 SKILL.md:23-28 SKILL.md:28-29 SKILL.md:29-30 SKILL.md:30-32 SKILL.md:32-33 SKILL.md:33-34 SKILL.md:34 SKILL.md:36-37 SKILL.md:37-46 SKILL.md:46 SKILL.md:47-54 SKILL.md:54-56 SKILL.md:56-58 SKILL.md:58 SKILL.md:60-61 SKILL.md:61-65 SKILL.md:65-67 SKILL.md:67-70 SKILL.md:70-83 SKILL.md:83-86 SKILL.md:86-109 SKILL.md:109-114 SKILL.md:114-118 SKILL.md:118-120 SKILL.md:120-127 SKILL.md:127-137 SKILL.md:137-139 SKILL.md:139-143 SKILL.md:143-145
๐ŸŒ Network access (25)
reference/sorbet_examples/packwerk/packwerk/cache.rb:116 reference/sorbet_examples/packwerk/packwerk/checker.rb:47 reference/sorbet_examples/packwerk/packwerk/commands/init_command.rb:28 reference/sorbet_examples/packwerk/packwerk/commands/init_command.rb:34 reference/sorbet_examples/packwerk/packwerk/commands/uses_parse_run.rb:35 reference/sorbet_examples/packwerk/packwerk/disable_sorbet.rb:33 reference/sorbet_examples/packwerk/packwerk/files_for_processing.rb:20 reference/sorbet_examples/packwerk/packwerk/output_styles/coloured.rb:6 reference/sorbet_examples/packwerk/packwerk/package_set.rb:93 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:34 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:37 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:44 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:48 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:51 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:108 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:109 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:122 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:124 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:138 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:153 reference/sorbet_examples/packwerk/packwerk/package_todo.rb:154 reference/sorbet_examples/packwerk/packwerk/reference_checking/checkers/dependency_checker.rb:61 reference/sorbet_examples/packwerk/packwerk/run_context.rb:76 reference/sorbet_examples/packwerk/packwerk/validators/dependency_validator.rb:71 SKILL.md:159
๐Ÿ“ Filesystem access (6)
Audited by: codex View Audit History โ†’
Share & cite this report

Share the versioned assessment report, neutral badge, embed card, and citations. Skillstore reports evidence without deciding whether this Skill is safe.

Open versioned report
Security Assessment

Copy report link

https://skillstore.io/skills/dmitrypogrebnoy-generating-sorbet-inline/audits/8?utm_source=security_passport&utm_medium=share&utm_campaign=versioned_report

Markdown badge

[![Skillstore security assessment](https://skillstore.io/badges/skills/dmitrypogrebnoy-generating-sorbet-inline/security.svg)](https://skillstore.io/skills/dmitrypogrebnoy-generating-sorbet-inline?utm_source=security_passport_badge)

HTML badge

<a href="https://skillstore.io/skills/dmitrypogrebnoy-generating-sorbet-inline?utm_source=security_passport_badge"><img src="https://skillstore.io/badges/skills/dmitrypogrebnoy-generating-sorbet-inline/security.svg" alt="Skillstore security assessment" loading="lazy"></a>

Embed card

<iframe src="https://skillstore.io/embed/skills/dmitrypogrebnoy-generating-sorbet-inline.html" title="Skillstore Security Assessment" sandbox="allow-popups allow-popups-to-escape-sandbox" loading="lazy" referrerpolicy="no-referrer" width="420" height="180"></iframe>
Academic citations (APA ยท BibTeX ยท CFF)

APA citation

DmitryPogrebnoy. (2026). generating-sorbet-inline security audit report (audit version 8) [Author version unspecified]. Skillstore. https://skillstore.io/skills/dmitrypogrebnoy-generating-sorbet-inline/audits/8

BibTeX citation

@techreport{dmitrypogrebnoy-dmitrypogrebnoy-generating-sorbet-inline-2026, author = {DmitryPogrebnoy}, title = {generating-sorbet-inline security audit report (audit version 8)}, institution = {Skillstore}, year = {2026}, number = {8}, url = {https://skillstore.io/skills/dmitrypogrebnoy-generating-sorbet-inline/audits/8}, note = {Author version unspecified} }

CITATION.cff

cff-version: 1.2.0 message: "If you use this Skill, cite its author and this versioned security audit report." title: "generating-sorbet-inline security audit report (audit version 8)" version: "unspecified" type: report authors: - name: "DmitryPogrebnoy" date-released: "2026-07-05" url: "https://skillstore.io/skills/dmitrypogrebnoy-generating-sorbet-inline/audits/8" identifiers: - type: other value: "skillstore:dmitrypogrebnoy-generating-sorbet-inline:audit:8" description: "Skillstore immutable audit report identifier"

Skillstore Score

Why this score Evidence Confidence: High
55
Architecture
85
Maintainability
87
Content
73
Community
91
Spec Compliance

What You Can Build

Type a Small Ruby Class

Add Sorbet sig blocks to a class with constructors, readers, and simple instance methods.

Prepare a Gradual Typing Pull Request

Convert selected files to inline Sorbet signatures while keeping the existing typed sigil policy.

Review Existing Sorbet Signatures

Check generated signatures for T.untyped use, missing extend T::Sig declarations, and mismatched return types.

Try These Prompts

Add Basic Signatures
Add Sorbet inline signatures to this Ruby file. Preserve the current typed sigil and explain any uncertain type choices.
Avoid Untyped Parameters
Generate inline sig blocks for these methods. Use the implementation and tests to avoid T.untyped unless no reliable type can be inferred.
Annotate Attributes and Constructors
Add Sorbet signatures for the constructor, attr_reader methods, attr_writer methods, and public instance methods in this class.
Validate and Refine Types
Review these Sorbet inline signatures, identify likely type errors, and suggest safe refinements before running any validation command.

Best Practices

  • Provide the full Ruby file and related tests when asking for inferred types.
  • Review every generated type before committing changes.
  • Run Sorbet validation only after approving the command and repository context.

Avoid

  • Do not ask it to generate RBI files for this workflow.
  • Do not accept T.untyped for unclear methods without a follow-up review.
  • Do not run validation commands automatically in untrusted repositories.

Frequently Asked Questions

Does this skill create RBI files?
No. It is designed for inline sig blocks inside Ruby source files.
Will it change my typed sigil?
It preserves existing sigils unless you explicitly ask for a different strictness level.
Can it handle attr_reader and attr_writer methods?
Yes. It includes guidance for signatures on common attribute declarations.
Does it use T.untyped?
The skill tries to avoid T.untyped and asks for more context when types are unclear.
Should I run the suggested validation command?
Review the repository first. Run srb tc or bundle exec srb tc only when you trust the project context.
Is this useful for new Sorbet projects?
Yes. It can add a starting # typed: true sigil and basic inline signatures for gradual typing.

Developer Details

License

MIT

Skillstore revision

r1

Version notice

The author did not declare a version.

Ref

c579efd02184f1128d6741d16e6c8d951d7d4208

Maintenance freshness

7/18/2026

Usage

9 downloads ยท 414 views

File structure

๐Ÿ“ reference/

๐Ÿ“ sorbet_examples/

๐Ÿ“ packwerk/

๐Ÿ“ packwerk/

๐Ÿ“„ application_validator.rb

๐Ÿ“„ association_inspector.rb

๐Ÿ“„ cache.rb

๐Ÿ“„ checker.rb

๐Ÿ“„ cli.rb

๐Ÿ“ commands/

๐Ÿ“„ base_command.rb

๐Ÿ“„ check_command.rb

๐Ÿ“„ help_command.rb

๐Ÿ“„ init_command.rb

๐Ÿ“„ lazy_loaded_entry.rb

๐Ÿ“„ update_todo_command.rb

๐Ÿ“„ uses_parse_run.rb

๐Ÿ“„ validate_command.rb

๐Ÿ“„ version_command.rb

๐Ÿ“„ commands.rb

๐Ÿ“„ configuration.rb

๐Ÿ“„ const_node_inspector.rb

๐Ÿ“„ constant_context.rb

๐Ÿ“„ constant_discovery.rb

๐Ÿ“„ constant_name_inspector.rb

๐Ÿ“„ disable_sorbet.rb

๐Ÿ“„ extension_loader.rb

๐Ÿ“„ file_processor.rb

๐Ÿ“„ files_for_processing.rb

๐Ÿ“ formatters/

๐Ÿ“„ default_offenses_formatter.rb

๐Ÿ“„ progress_formatter.rb

๐Ÿ“ generators/

๐Ÿ“„ configuration_file.rb

๐Ÿ“„ root_package.rb

๐Ÿ“„ graph.rb

๐Ÿ“„ node_helpers.rb

๐Ÿ“„ node_processor_factory.rb

๐Ÿ“„ node_processor.rb

๐Ÿ“„ node_visitor.rb

๐Ÿ“„ node.rb

๐Ÿ“„ offense_collection.rb

๐Ÿ“„ offense.rb

๐Ÿ“„ offenses_formatter.rb

๐Ÿ“„ output_style.rb

๐Ÿ“ output_styles/

๐Ÿ“„ coloured.rb

๐Ÿ“„ plain.rb

๐Ÿ“„ package_set.rb

๐Ÿ“„ package_todo.rb

๐Ÿ“„ package.rb

๐Ÿ“„ parse_run.rb

๐Ÿ“„ parsed_constant_definitions.rb

๐Ÿ“ parsers/

๐Ÿ“„ erb.rb

๐Ÿ“„ factory.rb

๐Ÿ“„ parser_interface.rb

๐Ÿ“„ ruby.rb

๐Ÿ“„ parsers.rb

๐Ÿ“„ rails_load_paths.rb

๐Ÿ“ reference_checking/

๐Ÿ“ checkers/

๐Ÿ“„ dependency_checker.rb

๐Ÿ“„ reference_checker.rb

๐Ÿ“„ reference_extractor.rb

๐Ÿ“„ reference_offense.rb

๐Ÿ“„ reference.rb

๐Ÿ“„ run_context.rb

๐Ÿ“„ spring_command.rb

๐Ÿ“„ unresolved_reference.rb

๐Ÿ“ validator/

๐Ÿ“„ result.rb

๐Ÿ“„ validator.rb

๐Ÿ“ validators/

๐Ÿ“„ dependency_validator.rb

๐Ÿ“„ version.rb

๐Ÿ“„ packwerk.rb

๐Ÿ“„ STRUCTURE.md

๐Ÿ“„ syntax.md

๐Ÿ“„ SKILL.md

More from DmitryPogrebnoy

View all
View all