# noureldinshobier/claude-tuning architecture

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

- Interactive diagram: https://gitdiagram.com/noureldinshobier/claude-tuning
- Repository: https://github.com/noureldinshobier/claude-tuning

## Overview

claude-tuning is a Claude Code configuration and plugin bundle. Its main workflow is a user running tune: setup checks prerequisites, installs pinned plugins and tools, and merges recommended settings and rules into the user’s Claude configuration. During later Claude Code turns, hooks can assemble available skills and suggest one, or route eligible coding-agent tasks to Opus using TypeSafe Jev. The README also documents installed shell compression, code-graph, search, and compaction capabilities. Hook wiring beyond the shown code is documented rather than inspected in full.

Main entry points: [`src/setup.ts`](https://github.com/noureldinshobier/claude-tuning/blob/main/src/setup.ts) (Setup command), [`src/suggest.ts`](https://github.com/noureldinshobier/claude-tuning/blob/main/src/suggest.ts) (Skill suggestions), [`src/upstreams.ts`](https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts) (stash search), [`src/jev.ts`](https://github.com/noureldinshobier/claude-tuning/blob/main/src/jev.ts) (Jev client)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_setup["Setup"]
  node_setup_cmd["Setup command<br/>[setup.ts]"]
  node_settings_merge["Settings and rules<br/>[settings.ts]"]
end

subgraph group_hooks["Runtime hooks"]
  node_skill_hook["Skill suggestions<br/>[suggest.ts]"]
  node_skill_roster["Skill roster<br/>[roster.ts]"]
  node_builtin_skills["Built-in skills<br/>[builtins.ts]"]
  node_model_hook["Model routing<br/>[route-model.ts]"]
  node_jev_client["Jev client<br/>[jev.ts]"]
end

subgraph group_catalog["Pinned components"]
  node_upstream_catalog["Upstream catalog<br/>[upstreams.ts]"]
  node_stash["stash search<br/>[upstreams.ts]"]
  node_web_search["Web search<br/>[upstreams.ts]"]
  node_ponytail["ponytail<br/>[upstreams.ts]"]
  node_adhd["i-have-adhd<br/>[upstreams.ts]"]
  node_compaction["Fast compaction<br/>[upstreams.ts]"]
  node_rtk["rtk compression<br/>[upstreams.ts]"]
  node_code_graph["Code graph<br/>[upstreams.ts]"]
end

subgraph group_integrations["External services"]
  node_jev_service{{"TypeSafe Jev"}}
  node_jina{{"Jina"}}
end

node_user(("Claude Code user"))
node_claude_runtime(("Claude Code"))

node_user -->|"runs setup"| node_setup_cmd
node_setup_cmd -->|"reads pins"| node_upstream_catalog
node_setup_cmd -->|"merges settings"| node_settings_merge
node_settings_merge -->|"writes configuration"| node_claude_runtime
node_setup_cmd -->|"installs plugin"| node_stash
node_setup_cmd -->|"installs plugin"| node_web_search
node_setup_cmd -->|"installs plugin"| node_ponytail
node_setup_cmd -->|"installs plugin"| node_adhd
node_setup_cmd -->|"installs plugin"| node_compaction
node_setup_cmd -->|"installs tool"| node_rtk
node_setup_cmd -->|"installs tool"| node_code_graph
node_claude_runtime -->|"submits prompt"| node_skill_hook
node_skill_hook -->|"loads skills"| node_skill_roster
node_skill_roster -->|"adds built-ins"| node_builtin_skills
node_skill_hook -->|"asks for ranking"| node_jev_client
node_claude_runtime -->|"routes agent task"| node_model_hook
node_model_hook -->|"asks complexity"| node_jev_client
node_jev_client -->|"sends questions"| node_jev_service
node_stash -.->|"ranks results"| node_jev_service
node_web_search -.->|"searches and reads"| node_jina
node_stash -.->|"loads URLs"| node_jina

click node_setup_cmd "https://github.com/noureldinshobier/claude-tuning/blob/main/src/setup.ts"
click node_settings_merge "https://github.com/noureldinshobier/claude-tuning/blob/main/src/settings.ts"
click node_upstream_catalog "https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts"
click node_skill_hook "https://github.com/noureldinshobier/claude-tuning/blob/main/src/suggest.ts"
click node_skill_roster "https://github.com/noureldinshobier/claude-tuning/blob/main/src/roster.ts"
click node_builtin_skills "https://github.com/noureldinshobier/claude-tuning/blob/main/src/builtins.ts"
click node_model_hook "https://github.com/noureldinshobier/claude-tuning/blob/main/src/route-model.ts"
click node_jev_client "https://github.com/noureldinshobier/claude-tuning/blob/main/src/jev.ts"
click node_stash "https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts"
click node_web_search "https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts"
click node_ponytail "https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts"
click node_adhd "https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts"
click node_compaction "https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts"
click node_rtk "https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts"
click node_code_graph "https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.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_setup_cmd,node_settings_merge,node_user toneBlue
class node_skill_hook,node_skill_roster,node_builtin_skills,node_model_hook,node_jev_client toneAmber
class node_upstream_catalog,node_stash,node_web_search,node_ponytail,node_adhd,node_compaction,node_rtk,node_code_graph toneMint
class node_jev_service,node_jina toneRose
class node_claude_runtime toneIndigo
```

## Components

### Setup

- [Setup command](https://github.com/noureldinshobier/claude-tuning/blob/main/src/setup.ts): `src/setup.ts`
- [Settings and rules](https://github.com/noureldinshobier/claude-tuning/blob/main/src/settings.ts): `src/settings.ts`

### Runtime hooks

- [Skill suggestions](https://github.com/noureldinshobier/claude-tuning/blob/main/src/suggest.ts): `src/suggest.ts`
- [Skill roster](https://github.com/noureldinshobier/claude-tuning/blob/main/src/roster.ts): `src/roster.ts`
- [Built-in skills](https://github.com/noureldinshobier/claude-tuning/blob/main/src/builtins.ts): `src/builtins.ts`
- [Model routing](https://github.com/noureldinshobier/claude-tuning/blob/main/src/route-model.ts): `src/route-model.ts`
- [Jev client](https://github.com/noureldinshobier/claude-tuning/blob/main/src/jev.ts): `src/jev.ts`

### Pinned components

- [Upstream catalog](https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts): `src/upstreams.ts`
- [stash search](https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts): `src/upstreams.ts`
- [Web search](https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts): `src/upstreams.ts`
- [ponytail](https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts): `src/upstreams.ts`
- [i-have-adhd](https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts): `src/upstreams.ts`
- [Fast compaction](https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts): `src/upstreams.ts`
- [rtk compression](https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts): `src/upstreams.ts`
- [Code graph](https://github.com/noureldinshobier/claude-tuning/blob/main/src/upstreams.ts): `src/upstreams.ts`

### External services

- **TypeSafe Jev**
- **Jina**

### Other components

- **Claude Code user**
- **Claude Code**

## Connections

- Claude Code user → Setup command: runs setup (evidence: `README.md`)
- Setup command → Upstream catalog: reads pins (evidence: `src/setup.ts`)
- Setup command → Settings and rules: merges settings (evidence: `src/setup.ts`)
- Settings and rules → Claude Code: writes configuration (evidence: `src/settings.ts`)
- Setup command → stash search: installs plugin (evidence: `README.md`)
- Setup command → Web search: installs plugin (evidence: `README.md`)
- Setup command → ponytail: installs plugin (evidence: `README.md`)
- Setup command → i-have-adhd: installs plugin (evidence: `README.md`)
- Setup command → Fast compaction: installs plugin (evidence: `README.md`)
- Setup command → rtk compression: installs tool (evidence: `README.md`)
- Setup command → Code graph: installs tool (evidence: `README.md`)
- Claude Code → Skill suggestions: submits prompt (evidence: `README.md`)
- Skill suggestions → Skill roster: loads skills (evidence: `src/suggest.ts`)
- Skill roster → Built-in skills: adds built-ins (evidence: `src/roster.ts`)
- Skill suggestions → Jev client: asks for ranking (evidence: `src/suggest.ts`)
- Claude Code → Model routing: routes agent task (evidence: `README.md`)
- Model routing → Jev client: asks complexity (evidence: `src/route-model.ts`)
- Jev client → TypeSafe Jev: sends questions (evidence: `src/jev.ts`)
- stash search → TypeSafe Jev: ranks results (evidence: `README.md`)
- Web search → Jina: searches and reads (evidence: `README.md`)
- stash search → Jina: loads URLs (evidence: `README.md`)
