# Tools

Defines or modifies what the project targets, under src/contexts/tools/, an AI/IDE...

- Repository: https://github.com/ai-driven-dev/framework (542 stars)
- Category: AI and agents
- License: MIT
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add ai-driven-dev/framework --skill tools -g -a claude-code -y`
Codex: `npx skills add ai-driven-dev/framework --skill tools -g -a codex -y`
Cursor: `npx skills add ai-driven-dev/framework --skill tools -g -a cursor -y`
Gemini CLI: `npx skills add ai-driven-dev/framework --skill tools -g -a gemini-cli -y`
Claude Code plugin marketplace: `/plugin marketplace add ai-driven-dev/framework`

## Description

Defines or modifies what the project targets, under src/contexts/tools/, an AI/IDE tool profile, its build contract, the content-translation capability classes it composes (agents/skills/commands/rules/hooks), and its own native-plugin adapter. Use when adding a new AI or IDE tool, changing a tool's Has* capability intersection, adding or modifying a capability class, or declaring a tool's `aidd translate` build contract. Do NOT use for the canonical-to-native translation pipeline itself, use `translate`. Do NOT use for where plugin content comes from, use `distribution`. Do NOT use for manifest or install orchestration, use `framework`.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Tools

`tools` is what the project targets and how each target is configured. Every AI assistant and
IDE the CLI supports is one `AiTool<C>` or `IdeToolConfig` object in
`contexts/tools/domain/profiles/<tool>/profile.ts`, where `C` is the intersection of `Has*`
capability interfaces the tool actually supports. `translate` depends on `tools` (never the
reverse) to call the tool's own `rewriteContent` and to read its build contract, a tool profile
is data and behavior the rest of the CLI is handed, not a place that reaches out to fetch or
install anything itself.

## What goes in

| Concept | Location |
|---|---|
| A tool's identity, capabilities, content-rewrite | `domain/profiles/<tool>/profile.ts` |
| A tool's `aidd translate` build behavior | `domain/profiles/<tool>/build.ts` (only if the tool is a build target) |
| A string transform used by exactly one profile | that profile's own directory |
| A string transform shared by ≥2 profiles | `domain/formats/` |
| A content-translation capability class (agents/skills/commands/rules/hooks) | `domain/capabilities/` + a `Has*` entry in `contracts.ts` |
| Catalog/manifest shaping shared by ≥2 tools' build contracts | `domain/marketplace-catalog.ts` |
| A port only `tools` needs | `domain/ports/` |
| A tool's own plugin-CLI driver | `infrastructure/` |

## How

The rest: https://github.com/ai-driven-dev/framework/blob/HEAD/cli/.claude/skills/tools/SKILL.md
