Skip to content

Support multi-repository project setups in Simone MCP #70

@Helmi

Description

@Helmi

Description

Enhance Simone MCP to properly support multi-repository project setups where a main development repository contains multiple nested git repositories (e.g., frontend and backend as separate repos within a parent directory).

Context

  • Project area: MCP server configuration and prompt system
  • Complexity: 7/10 - Architectural changes across configuration, prompts, and repository detection
  • Current limitation: Simone assumes a single repository context and uses a single github.repository configuration

Technical Details

Affected files and components:

  • /mcp-server/src/config/types.ts - Need to extend configuration schema for multi-repo support
  • /mcp-server/src/templates/context.ts - Context building needs repository detection
  • /mcp-server/src/config/loader.ts - Configuration loading for repository mappings
  • All prompts in /mcp-server/src/templates/prompts/ that use GitHub operations:
    • create_issue.yaml - Needs repo selection logic
    • create_commit.yaml - Must detect correct repo for commits
    • create_pr.yaml - Must create PR in correct repo
    • work_issue.yaml - Must checkout branch in correct repo

Requirements

1. Configuration Schema Enhancement

  • Support repository configuration at both project and context levels
  • Add repository mapping configuration (path to repository)
  • Support centralized vs distributed issue tracking modes

2. Repository Detection Logic

  • Auto-detect git repository based on file paths being modified
  • Traverse up directory tree to find .git directory
  • Map detected repository to configured GitHub repository

3. Prompt Intelligence

  • Add repository selection logic to issue creation
  • Smart branch/commit/PR creation in correct repository
  • Risk-based user confirmation when repository is ambiguous

4. Configuration Options

  • repository_mode: "centralized" | "distributed" | "auto"
  • repository_mappings: Map of local paths to GitHub repos
  • default_repository: Fallback when detection fails

Implementation Steps

  • Extend configuration types to support multi-repository settings
  • Create repository detection utility functions
  • Update template context builder to include repository context
  • Modify issue creation prompt to support repository selection
  • Update commit/PR prompts to detect and use correct repository
  • Add repository mapping validation to config loader
  • Create example configurations for common multi-repo scenarios
  • Write tests for repository detection logic
  • Update documentation with multi-repo setup guide

Acceptance Criteria

  • Configuration supports defining multiple repositories with path mappings
  • Issue creation correctly selects repository based on context or user input
  • Commits and branches are created in the correct nested repository
  • Pull requests reference the correct repository
  • Repository ambiguity triggers user confirmation (based on risk level)
  • Documentation includes clear examples of multi-repo setups
  • Backward compatibility maintained for single-repo projects

Additional Resources

  • Research on monorepo tools and patterns
  • GitHub CLI documentation for repository-specific operations
  • Examples from other tools that handle multi-repo setups (e.g., Lerna, Nx)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions