Skip to content
Prompt

redmine_ai_helper — Copilot Instructions

by haru

AI Summary

A Copilot integration that adds AI-powered chat assistance to Redmine project management, enabling developers to interact with issues, repositories, wikis, and other Redmine features through a multi-agent architecture. Developers and Redmine administrators benefit from streamlined task automation and intelligent issue handling.

Install

Copy this and paste it into Claude Code, Cursor, or any AI assistant:

I want to add the "redmine_ai_helper — Copilot Instructions" prompt rules to my project.
Repository: https://github.com/haru/redmine_ai_helper

Please read the repo to find the rules/prompt file, then:
1. Download it to the correct location (.cursorrules, .windsurfrules, .github/prompts/, or project root — based on the file type)
2. If there's an existing rules file, merge the new rules in rather than overwriting
3. Confirm what was added

Description

Add AI Agent to Redmine

Project Architecture

This is a Redmine plugin that adds AI-powered chat functionality using a multi-agent architecture backed by RubyLLM for LLM interactions. The plugin extends Redmine's Rails application with specialized agents for different domains.

Request Flow

` Controller (AiHelperController) → RedmineAiHelper::Llm # Entry point from controllers, creates Langfuse trace → LeaderAgent#perform_user_request # Generates goal, steps, coordinates agents → BaseAgent#chat # Direct RubyLLM.chat (no tools) → BaseAgent#assistant # AssistantProvider → RubyLLM::Chat with tools → LlmProvider.get_llm_provider # Returns OpenAI/Anthropic/Gemini/Azure/Compatible → Provider#create_chat # Configures and returns RubyLLM::Chat instance `

Multi-Agent System

Automatic Registration: • All agents inherit from BaseAgent (lib/redmine_ai_helper/base_agent.rb) • Agent classes auto-register via inherited hook when loaded — no manual registration needed • LeaderAgent coordinates multi-step tasks by routing to specialized agents Key Agents: • Domain-specific: IssueAgent, RepositoryAgent, WikiAgent, ProjectAgent, BoardAgent, SystemAgent, UserAgent, VersionAgent, DocumentationAgent • Issue updates: IssueUpdateAgent • Coordination: LeaderAgent • Dynamic MCP integration: McpAgent (generates SubMcpAgent classes per MCP server)

Tool System

Tools are defined via a DSL in BaseTools subclasses that generates RubyLLM::Tool subclasses: `ruby class MyTools < RedmineAiHelper::BaseTools define_function :do_something, description: "Does something" do property :input, type: "string", description: "The input", required: true end def do_something(input:) # implementation end end ` Agents expose tools by overriding available_tool_providers to return an array of BaseTools subclasses (e.g. [MyTools]). The base available_tool_classes method then calls available_tool_providers and expands each provider via .tool_classes, returning a flat array of RubyLLM::Tool subclasses passed to RubyLLM::Chat#with_tools.

Discussion

0/2000
Loading comments...

Health Signals

MaintenanceCommitted 20d ago
Active
AdoptionUnder 100 stars
76 ★ · Niche
DocsMissing or thin
Undocumented

GitHub Signals

Stars76
Forks17
Issues6
Updated20d ago
View on GitHub
MIT License

My Fox Den

Community Rating

Sign in to rate this booster

Works With

Any AI assistant that accepts custom rules or system prompts

Claude
ChatGPT
Cursor
Windsurf
Copilot
+ more