# rhaeg4r/ibm architecture

> Architecture diagram of the GitHub repository rhaeg4r/ibm, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/rhaeg4r/ibm
- Repository: https://github.com/rhaeg4r/ibm

## Overview

Cross-Repo Refactor Coordinator detects code patterns across organization repositories, applies matching transformations, validates changes, and coordinates pull requests. Users enter through either the CLI or VS Code extension. The documented workflow proceeds from repository scanning and semantic matching to refactoring and PR coordination; source excerpts additionally show internal calls among detection, workspace, and refactoring services. Several links between interfaces and the engine are documented rather than visible in sampled implementation, so those edges cite the README.

Main entry points: [`packages/refactoring/src/engine/RefactoringEngine.ts`](https://github.com/rhaeg4r/ibm/blob/main/packages/refactoring/src/engine/RefactoringEngine.ts) (Refactoring engine), [`packages/cli/src/commands`](https://github.com/rhaeg4r/ibm/tree/main/packages/cli/src/commands) (CLI commands), [`packages/vscode-extension/src`](https://github.com/rhaeg4r/ibm/tree/main/packages/vscode-extension/src) (VS Code extension), [`packages/pattern-detection/src/detector/PatternDetector.ts`](https://github.com/rhaeg4r/ibm/blob/main/packages/pattern-detection/src/detector/PatternDetector.ts) (Pattern detector)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interfaces["User interfaces"]
  node_cli["CLI commands"]
  node_vscode["VS Code extension"]
end

subgraph group_repos["Repository workspace"]
  node_repo_cloner["Repository cloner"]
  node_repo_cache[("Repository cache<br/>[RepositoryCache.ts]")]
  node_workspace["Workspace manager"]
end

subgraph group_detection["Pattern detection"]
  node_detector["Pattern detector<br/>[PatternDetector.ts]"]
  node_base_parser["Parser base<br/>[BaseParser.ts]"]
  node_ts_parser["TypeScript parser"]
  node_embeddings["Embedding service"]
end

subgraph group_changes["Refactoring and delivery"]
  node_engine["Refactoring engine"]
  node_transformer["Code transformer<br/>[CodeTransformer.ts]"]
  node_strategies["Strategy registry"]
  node_validator["Validation service"]
  node_platform_factory["Platform factory<br/>[factory.ts]"]
  node_github["GitHub provider<br/>[github.ts]"]
  node_gitlab["GitLab provider<br/>[gitlab.ts]"]
end

node_user(("Engineer"))
node_repo_sources["Organization repositories"]
node_git_service["Git hosting platforms"]

node_user -->|"runs commands"| node_cli
node_user -->|"uses extension"| node_vscode
node_cli -.->|"scans repositories"| node_repo_cloner
node_cli -.->|"requests detection"| node_detector
node_cli -.->|"requests refactoring"| node_engine
node_cli -.->|"proposes PRs"| node_platform_factory
node_vscode -.->|"scans repositories"| node_repo_cloner
node_vscode -.->|"requests detection"| node_detector
node_vscode -.->|"applies refactoring"| node_engine
node_vscode -.->|"creates PRs"| node_platform_factory
node_repo_sources -->|"provides repositories"| node_repo_cloner
node_repo_cloner -->|"checks cache"| node_repo_cache
node_workspace -->|"gets paths"| node_repo_cache
node_detector -->|"uses parsers"| node_base_parser
node_ts_parser -->|"extends parser"| node_base_parser
node_detector -->|"generates embeddings"| node_embeddings
node_detector -->|"reads repositories"| node_workspace
node_engine -->|"transforms matches"| node_transformer
node_engine -->|"validates changes"| node_validator
node_transformer -->|"uses strategies"| node_strategies
node_engine -->|"uses workspace"| node_workspace
node_validator -->|"gets repository path"| node_workspace
node_platform_factory -->|"creates provider"| node_github
node_platform_factory -->|"creates provider"| node_gitlab
node_github -->|"uses API"| node_git_service
node_gitlab -->|"uses API"| node_git_service
node_engine -->|"updates matches"| node_repo_sources
node_platform_factory -->|"creates coordinated PRs"| node_repo_sources

click node_cli "https://github.com/rhaeg4r/ibm/tree/main/packages/cli/src/commands"
click node_vscode "https://github.com/rhaeg4r/ibm/tree/main/packages/vscode-extension/src"
click node_repo_cloner "https://github.com/rhaeg4r/ibm/blob/main/packages/repository/src/clone/RepositoryCloner.ts"
click node_repo_cache "https://github.com/rhaeg4r/ibm/blob/main/packages/repository/src/cache/RepositoryCache.ts"
click node_workspace "https://github.com/rhaeg4r/ibm/blob/main/packages/repository/src/workspace/WorkspaceManager.ts"
click node_detector "https://github.com/rhaeg4r/ibm/blob/main/packages/pattern-detection/src/detector/PatternDetector.ts"
click node_base_parser "https://github.com/rhaeg4r/ibm/blob/main/packages/pattern-detection/src/parsers/BaseParser.ts"
click node_ts_parser "https://github.com/rhaeg4r/ibm/blob/main/packages/pattern-detection/src/parsers/TypeScriptParser.ts"
click node_embeddings "https://github.com/rhaeg4r/ibm/blob/main/packages/pattern-detection/src/embeddings/EmbeddingService.ts"
click node_engine "https://github.com/rhaeg4r/ibm/blob/main/packages/refactoring/src/engine/RefactoringEngine.ts"
click node_transformer "https://github.com/rhaeg4r/ibm/blob/main/packages/refactoring/src/transformer/CodeTransformer.ts"
click node_strategies "https://github.com/rhaeg4r/ibm/blob/main/packages/refactoring/src/strategies/StrategyRegistry.ts"
click node_validator "https://github.com/rhaeg4r/ibm/blob/main/packages/refactoring/src/validation/ValidationService.ts"
click node_platform_factory "https://github.com/rhaeg4r/ibm/blob/main/packages/platform/src/factory.ts"
click node_github "https://github.com/rhaeg4r/ibm/blob/main/packages/platform/src/providers/github.ts"
click node_gitlab "https://github.com/rhaeg4r/ibm/blob/main/packages/platform/src/providers/gitlab.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_cli,node_vscode toneBlue
class node_repo_cloner,node_repo_cache,node_workspace toneAmber
class node_detector,node_base_parser,node_ts_parser,node_embeddings toneMint
class node_engine,node_transformer,node_strategies,node_validator,node_platform_factory,node_github,node_gitlab toneRose
class node_user,node_repo_sources,node_git_service toneIndigo
```

## Components

### User interfaces

- [CLI commands](https://github.com/rhaeg4r/ibm/tree/main/packages/cli/src/commands): `packages/cli/src/commands`
- [VS Code extension](https://github.com/rhaeg4r/ibm/tree/main/packages/vscode-extension/src): `packages/vscode-extension/src`

### Repository workspace

- [Repository cloner](https://github.com/rhaeg4r/ibm/blob/main/packages/repository/src/clone/RepositoryCloner.ts): `packages/repository/src/clone/RepositoryCloner.ts`
- [Repository cache](https://github.com/rhaeg4r/ibm/blob/main/packages/repository/src/cache/RepositoryCache.ts): `packages/repository/src/cache/RepositoryCache.ts`
- [Workspace manager](https://github.com/rhaeg4r/ibm/blob/main/packages/repository/src/workspace/WorkspaceManager.ts): `packages/repository/src/workspace/WorkspaceManager.ts`

### Pattern detection

- [Pattern detector](https://github.com/rhaeg4r/ibm/blob/main/packages/pattern-detection/src/detector/PatternDetector.ts): `packages/pattern-detection/src/detector/PatternDetector.ts`
- [Parser base](https://github.com/rhaeg4r/ibm/blob/main/packages/pattern-detection/src/parsers/BaseParser.ts): `packages/pattern-detection/src/parsers/BaseParser.ts`
- [TypeScript parser](https://github.com/rhaeg4r/ibm/blob/main/packages/pattern-detection/src/parsers/TypeScriptParser.ts): `packages/pattern-detection/src/parsers/TypeScriptParser.ts`
- [Embedding service](https://github.com/rhaeg4r/ibm/blob/main/packages/pattern-detection/src/embeddings/EmbeddingService.ts): `packages/pattern-detection/src/embeddings/EmbeddingService.ts`

### Refactoring and delivery

- [Refactoring engine](https://github.com/rhaeg4r/ibm/blob/main/packages/refactoring/src/engine/RefactoringEngine.ts): `packages/refactoring/src/engine/RefactoringEngine.ts`
- [Code transformer](https://github.com/rhaeg4r/ibm/blob/main/packages/refactoring/src/transformer/CodeTransformer.ts): `packages/refactoring/src/transformer/CodeTransformer.ts`
- [Strategy registry](https://github.com/rhaeg4r/ibm/blob/main/packages/refactoring/src/strategies/StrategyRegistry.ts): `packages/refactoring/src/strategies/StrategyRegistry.ts`
- [Validation service](https://github.com/rhaeg4r/ibm/blob/main/packages/refactoring/src/validation/ValidationService.ts): `packages/refactoring/src/validation/ValidationService.ts`
- [Platform factory](https://github.com/rhaeg4r/ibm/blob/main/packages/platform/src/factory.ts): `packages/platform/src/factory.ts`
- [GitHub provider](https://github.com/rhaeg4r/ibm/blob/main/packages/platform/src/providers/github.ts): `packages/platform/src/providers/github.ts`
- [GitLab provider](https://github.com/rhaeg4r/ibm/blob/main/packages/platform/src/providers/gitlab.ts): `packages/platform/src/providers/gitlab.ts`

### Other components

- **Engineer**
- **Organization repositories**
- **Git hosting platforms**

## Connections

- Engineer → CLI commands: runs commands
- Engineer → VS Code extension: uses extension
- CLI commands → Repository cloner: scans repositories
- CLI commands → Pattern detector: requests detection
- CLI commands → Refactoring engine: requests refactoring
- CLI commands → Platform factory: proposes PRs
- VS Code extension → Repository cloner: scans repositories
- VS Code extension → Pattern detector: requests detection
- VS Code extension → Refactoring engine: applies refactoring
- VS Code extension → Platform factory: creates PRs
- Organization repositories → Repository cloner: provides repositories
- Repository cloner → Repository cache: checks cache (evidence: `packages/repository/src/clone/RepositoryCloner.ts`)
- Workspace manager → Repository cache: gets paths (evidence: `packages/repository/src/workspace/WorkspaceManager.ts`)
- Pattern detector → Parser base: uses parsers (evidence: `packages/pattern-detection/src/detector/PatternDetector.ts`)
- TypeScript parser → Parser base: extends parser (evidence: `packages/pattern-detection/src/parsers/TypeScriptParser.ts`)
- Pattern detector → Embedding service: generates embeddings (evidence: `packages/pattern-detection/src/detector/PatternDetector.ts`)
- Pattern detector → Workspace manager: reads repositories (evidence: `packages/pattern-detection/src/detector/PatternDetector.ts`)
- Refactoring engine → Code transformer: transforms matches (evidence: `packages/refactoring/src/engine/RefactoringEngine.ts`)
- Refactoring engine → Validation service: validates changes (evidence: `packages/refactoring/src/engine/RefactoringEngine.ts`)
- Code transformer → Strategy registry: uses strategies (evidence: `packages/refactoring/src/transformer/CodeTransformer.ts`)
- Refactoring engine → Workspace manager: uses workspace (evidence: `packages/refactoring/src/engine/RefactoringEngine.ts`)
- Validation service → Workspace manager: gets repository path (evidence: `packages/refactoring/src/validation/ValidationService.ts`)
- Platform factory → GitHub provider: creates provider (evidence: `packages/platform/src/factory.ts`)
- Platform factory → GitLab provider: creates provider (evidence: `packages/platform/src/factory.ts`)
- GitHub provider → Git hosting platforms: uses API
- GitLab provider → Git hosting platforms: uses API
- Refactoring engine → Organization repositories: updates matches
- Platform factory → Organization repositories: creates coordinated PRs
