Class: RailsAiContext::Serializers::CopilotInstructionsSerializer

Inherits:
Object
  • Object
show all
Includes:
StackOverviewHelper, ToolGuideHelper
Defined in:
lib/rails_ai_context/serializers/copilot_instructions_serializer.rb

Overview

Generates .github/instructions/*.instructions.md files with applyTo frontmatter for GitHub Copilot path-specific instructions.

Constant Summary

Constants included from ToolGuideHelper

ToolGuideHelper::TOOL_ROWS

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods included from ToolGuideHelper

#build_tools_table, #render_tools_guide, #render_tools_guide_compact, #tool_call, #tool_count, #tool_mode, #tools_anti_hallucination_section, #tools_antipatterns_section, #tools_detail_guidance, #tools_header, #tools_intro, #tools_name_list, #tools_power_tool_section, #tools_rules_section, #tools_table, #tools_workflow_section

Methods included from StackOverviewHelper

#arch_labels_hash, #detect_before_actions, #detect_job_files, #detect_service_files, #full_preset_stack_lines, #model_extras_line, #notable_gems_list, #pattern_labels_hash, #project_root, #render_compact_controllers_list, #scope_names, #write_rule_files

Constructor Details

#initialize(context) ⇒ CopilotInstructionsSerializer

Returns a new instance of CopilotInstructionsSerializer.



13
14
15
# File 'lib/rails_ai_context/serializers/copilot_instructions_serializer.rb', line 13

def initialize(context)
  @context = context
end

Instance Attribute Details

#contextObject (readonly)

Returns the value of attribute context.



11
12
13
# File 'lib/rails_ai_context/serializers/copilot_instructions_serializer.rb', line 11

def context
  @context
end

Instance Method Details

#call(output_dir) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/rails_ai_context/serializers/copilot_instructions_serializer.rb', line 17

def call(output_dir)
  dir = File.join(output_dir, ".github", "instructions")

  files = {
    File.join(dir, "rails-context.instructions.md") => render_context_instructions,
    File.join(dir, "rails-models.instructions.md") => render_models_instructions,
    File.join(dir, "rails-controllers.instructions.md") => render_controllers_instructions,
    File.join(dir, "rails-mcp-tools.instructions.md") => render_mcp_tools_instructions
  }

  write_rule_files(files)
end