このリポジトリで作業するエージェント向けの運用ガイドです。変更前に全体像を確認し、最小差分で修正してください。
structured_paramsは Rails 向けの型付きパラメータ/フォームオブジェクト用 gem です。- コア実装は
lib/structured_params/配下にあります。 - テストは RSpec、Lint は RuboCop、型検査は Steep を使います。
- RBS シグネチャは
rbs-inlineから生成されます。
lib/structured_params.rb: エントリーポイントlib/structured_params/params.rb: コアのParams実装lib/structured_params/type/:array/object型ハンドラspec/: RSpec テストdocs/: 利用者向けドキュメントsig/:rbs-inlineにより生成された RBS
初回セットアップ:
bin/setup通常の確認:
bundle exec rspec
bundle exec rubocop
bundle exec steep checkRuby 3.2 系では steep や .rubocop_rbs.yml 前提のチェックが使えない場合があります。Rakefile は Ruby 3.3+ でのみ steep をデフォルトタスクに含めます。
個別実行例:
bundle exec rspec spec/params_spec.rb
bundle exec rubocop lib/structured_params/params.rbsig/**/*.rbsは手編集しないでください。必要ならbundle exec rbs-inline --output=sig lib/**/*.rbで再生成します。- Ruby メソッドの型注釈は
rbs-inlineのmethod_type_signatureスタイルを使ってください。 - インスタンス変数の型注釈は
# @rbsコメントを使ってください。 - 既存の公開 API を変える場合は、README と
docs/の整合も確認してください。 - Strong Parameters、ネストした object/array、エラー整形は回帰しやすいので重点的に確認してください。
- 振る舞い変更には RSpec を追加または更新してください。
- 既存 spec のスタイルに合わせ、必要に応じて
spec/factories/とspec/support/を再利用してください。 - 修正が型やシリアライズ、permit 生成に関わる場合は、関連 spec を広めに実行してください。
lefthook.yml によりコミット前に以下が走ります。
bundle exec rbs-inline --output=sig lib/**/*.rbbundle exec rubocopbundle exec rspecbundle exec steep check
フックで失敗しない状態まで揃えてから完了扱いにしてください。
以下を変えた場合はドキュメント更新を検討してください。
- 新しい attribute オプションや型の追加
- permit 挙動の変更
- エラーフォーマットやバリデーション挙動の変更
- Rails / Ruby サポート範囲の変更
利用者向け概要は README.md、詳細仕様は docs/*.md、日本語 README が必要なら README_ja.md も更新します。