Class: RailsAiBridge::Serializers::Providers::DevinRulesSerializer
- Inherits:
-
Object
- Object
- RailsAiBridge::Serializers::Providers::DevinRulesSerializer
- Defined in:
- lib/rails_ai_bridge/serializers/providers/devin_rules_serializer.rb
Overview
Generates .devin/rules/*.md files for Devin rule discovery.
Each file is hard-capped at MAX_CHARS_PER_FILE characters (under Devin's 6K limit).
Constant Summary collapse
- MAX_CHARS_PER_FILE =
Per-file character cap before truncation.
5_800
Instance Attribute Summary collapse
-
#context ⇒ Hash
readonly
Introspection context passed to serializers.
Instance Method Summary collapse
-
#call(output_dir) ⇒ Hash<Symbol, Array<String>>
Writes rule markdown files under
.devin/rules/when content changes. -
#initialize(context) ⇒ DevinRulesSerializer
constructor
A new instance of DevinRulesSerializer.
Constructor Details
#initialize(context) ⇒ DevinRulesSerializer
Returns a new instance of DevinRulesSerializer.
16 17 18 |
# File 'lib/rails_ai_bridge/serializers/providers/devin_rules_serializer.rb', line 16 def initialize(context) @context = context end |
Instance Attribute Details
#context ⇒ Hash (readonly)
Returns Introspection context passed to serializers.
13 14 15 |
# File 'lib/rails_ai_bridge/serializers/providers/devin_rules_serializer.rb', line 13 def context @context end |
Instance Method Details
#call(output_dir) ⇒ Hash<Symbol, Array<String>>
Writes rule markdown files under .devin/rules/ when content changes.
24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/rails_ai_bridge/serializers/providers/devin_rules_serializer.rb', line 24 def call(output_dir) files = { 'rails-context.md' => render_context_rule, 'rails-mcp-tools.md' => render_mcp_tools_rule } # Enforce Devin's 6K limit files.transform_values! { |content| content && content[0...MAX_CHARS_PER_FILE] } RuleFileWriter.new(File.join(output_dir, '.devin', 'rules')).call(files) end |