Monorepo Structure
This page details the organization of the uniswap-ai repository.
Directory Layout
text
uniswap-ai/
├── .claude/ # Claude Code configuration
│ └── rules/ # Agent rules (agnostic design)
├── .claude-plugin/ # Claude Code marketplace config
│ └── marketplace.json # Plugin registry
├── .github/
│ ├── actions/ # Reusable composite actions
│ ├── workflows/ # CI/CD workflows
│ └── vale/ # Prose linting styles
├── docs/ # VitePress documentation
│ ├── .vitepress/ # VitePress configuration
│ ├── architecture/ # Architecture documentation
│ ├── contributing/ # Contribution guides
│ ├── evals/ # Eval framework docs
│ ├── getting-started/ # Getting started guides
│ ├── plugins/ # Plugin documentation
│ └── skills/ # Skill documentation
├── evals/ # AI tool evaluations
│ ├── rubrics/ # Shared evaluation rubrics
│ ├── suites/ # Per-skill eval suites
│ └── templates/ # Templates for new suites
├── packages/
│ └── plugins/ # Claude Code plugins
├── scripts/ # Build/validation scripts
├── AGENTS.md -> CLAUDE.md # Symlink for agent-agnostic access
├── CLAUDE.md # Project guidelines
├── nx.json # Nx workspace configuration
├── package.json # Root package configuration
└── tsconfig.base.json # Base TypeScript configPackage Scopes
| Type | Scope | npm | Marketplace |
|---|---|---|---|
| Plugins | @uniswap | No | Yes (Claude Code Marketplace) |
Nx Configuration
Workspace (nx.json)
The workspace is configured with:
- Plugins: TypeScript, ESLint, Jest
- Caching: Build outputs cached in
node_modules/.cache/nx - Parallel execution: Up to 5 concurrent tasks
- Release: Conventional commits with independent versioning
Project Configuration
Each package has a project.json with:
json
{
"name": "package-name",
"projectType": "library",
"targets": {
"build": { ... },
"test": { ... },
"lint": { ... }
}
}Plugin Structure
Each plugin in packages/plugins/ follows this structure:
text
plugin-name/
├── .claude-plugin/
│ └── plugin.json # Plugin manifest
├── skills/ # AI skills
│ └── skill-name/
│ ├── SKILL.md # Skill definition
│ └── references/ # Supporting materials
├── agents/ # Specialized agents
├── package.json # Package metadata
├── project.json # Nx configuration
└── README.md # Plugin documentationEvals Structure
Evaluation suites in evals/suites/ follow this structure:
text
suite-name/
├── promptfoo.yaml # Suite configuration
├── prompt-wrapper.txt # Prompt template (injects SKILL.md context)
├── cases/ # Test case prompts
│ └── test-name.md
└── rubrics/ # Evaluation rubrics (.txt files)
└── rubric-name.txtKey Files
| File | Purpose |
|---|---|
CLAUDE.md | Project guidelines and AI agent instructions |
AGENTS.md | Symlink to CLAUDE.md for agent-agnostic access |
nx.json | Nx workspace configuration |
.vale.ini | Prose linting configuration |
Related
- Architecture Overview - High-level design
- Contributing - How to contribute
- Plugins - Plugin development