# ai-driven-dev/framework architecture

> Architecture diagram of the GitHub repository ai-driven-dev/framework, 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/ai-driven-dev/framework
- Repository: https://github.com/ai-driven-dev/framework

## Overview

AIDD is an AI coding-tool SDLC framework, with a CLI that installs and manages its tool integrations and plugins. Its wider runtime includes marketplace distribution, content translation, telemetry collection/reporting, and a Kanban task view. The principal user path is invoking CLI commands to set up or install framework content for a supported tool; the manifest and filesystem adapters provide an internal persistence layer. Several product areas are represented by directory-level nodes because their implementation was not excerpted; README-backed links document capabilities, not inspected call chains.

Main entry points: [`cli/src/contexts/framework/application/install`](https://github.com/ai-driven-dev/framework/tree/main/cli/src/contexts/framework/application/install) (Setup and install), [`cli/src/contexts/framework/application/install/post-install-pipeline-use-case.ts`](https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/framework/application/install/post-install-pipeline-use-case.ts) (Post-install steps), [`kanban/src/application/use-cases/list-task-documents.ts`](https://github.com/ai-driven-dev/framework/blob/main/kanban/src/application/use-cases/list-task-documents.ts) (Task listing), [`cli/src/cli.ts`](https://github.com/ai-driven-dev/framework/blob/main/cli/src/cli.ts) (CLI entry)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_cli["CLI workflows"]
  node_cli_entry["CLI entry<br/>[cli.ts]"]
  node_setup_install["Setup and install"]
  node_manifest["Install manifest<br/>[manifest.ts]"]
  node_manifest_repo["Manifest persistence"]
  node_post_install["Post-install steps"]
  node_gitignore["Gitignore updates"]
end

subgraph group_distribution["Plugin distribution"]
  node_marketplace["Marketplace operations"]
  node_catalog["Plugin catalog<br/>[catalog.ts]"]
  node_catalog_adapter["Catalog reader"]
end

subgraph group_translation["Tool integration"]
  node_translator["Plugin translation"]
  node_tool_profiles["Tool profiles"]
end

subgraph group_telemetry["Telemetry"]
  node_telemetry_hooks["Telemetry hooks"]
  node_telemetry_cli["Telemetry commands"]
  node_telemetry_sink["Telemetry sink"]
end

subgraph group_kanban["Task tracking"]
  node_kanban_command["Kanban views<br/>[list-command.ts]"]
  node_task_listing["Task listing"]
  node_task_repository["Markdown task reader"]
  node_task_grouping["Task grouping<br/>[task-group.ts]"]
end

node_user(("Engineer"))
node_tool["AI coding tool"]
node_task_files[("Project task files")]

node_user -->|"runs commands"| node_cli_entry
node_cli_entry -.->|"routes workflow"| node_setup_install
node_setup_install -->|"installs framework"| node_tool
node_setup_install -->|"runs post-install"| node_post_install
node_post_install -.->|"saves manifest"| node_manifest_repo
node_post_install -->|"updates ignores"| node_gitignore
node_manifest_repo -->|"loads and saves"| node_manifest
node_user -->|"manages plugins"| node_marketplace
node_marketplace -.->|"loads catalog"| node_catalog_adapter
node_catalog_adapter -->|"parses catalog"| node_catalog
node_user -->|"translates content"| node_translator
node_translator -.->|"targets tools"| node_tool_profiles
node_tool -->|"runs hooks"| node_telemetry_hooks
node_telemetry_hooks -.->|"records events"| node_telemetry_sink
node_user -.->|"manages telemetry"| node_telemetry_cli
node_user -.->|"views tasks"| node_kanban_command
node_kanban_command -->|"requests documents"| node_task_listing
node_task_listing -->|"reads documents"| node_task_repository
node_task_repository -->|"reads Markdown"| node_task_files
node_task_listing -->|"groups documents"| node_task_grouping

click node_cli_entry "https://github.com/ai-driven-dev/framework/blob/main/cli/src/cli.ts"
click node_setup_install "https://github.com/ai-driven-dev/framework/tree/main/cli/src/contexts/framework/application/install"
click node_manifest "https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/framework/domain/manifest.ts"
click node_manifest_repo "https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/framework/infrastructure/manifest-repository-adapter.ts"
click node_post_install "https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/framework/application/install/post-install-pipeline-use-case.ts"
click node_gitignore "https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/framework/application/gitignore-use-case.ts"
click node_marketplace "https://github.com/ai-driven-dev/framework/tree/main/cli/src/contexts/distribution/application"
click node_catalog "https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/distribution/domain/catalog.ts"
click node_catalog_adapter "https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/distribution/infrastructure/plugin-catalog-repository-adapter.ts"
click node_translator "https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/translate/application/translate-source.ts"
click node_tool_profiles "https://github.com/ai-driven-dev/framework/tree/main/cli/src/contexts/tools/domain/profiles"
click node_telemetry_hooks "https://github.com/ai-driven-dev/framework/tree/main/plugins/aidd-telemetry/hooks"
click node_telemetry_cli "https://github.com/ai-driven-dev/framework/tree/main/cli/src/contexts/telemetry/application"
click node_telemetry_sink "https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/telemetry/infrastructure/telemetry-sink-adapter.ts"
click node_kanban_command "https://github.com/ai-driven-dev/framework/blob/main/kanban/src/presentation/commands/list-command.ts"
click node_task_listing "https://github.com/ai-driven-dev/framework/blob/main/kanban/src/application/use-cases/list-task-documents.ts"
click node_task_repository "https://github.com/ai-driven-dev/framework/blob/main/kanban/src/infrastructure/filesystem/filesystem-task-document-repository.ts"
click node_task_grouping "https://github.com/ai-driven-dev/framework/blob/main/kanban/src/domain/models/task-group.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_entry,node_setup_install,node_manifest,node_manifest_repo,node_post_install,node_gitignore toneBlue
class node_marketplace,node_catalog,node_catalog_adapter,node_task_files toneAmber
class node_translator,node_tool_profiles toneMint
class node_telemetry_hooks,node_telemetry_cli,node_telemetry_sink toneRose
class node_kanban_command,node_task_listing,node_task_repository,node_task_grouping,node_user,node_tool toneIndigo
```

## Components

### CLI workflows

- [CLI entry](https://github.com/ai-driven-dev/framework/blob/main/cli/src/cli.ts): `cli/src/cli.ts`
- [Setup and install](https://github.com/ai-driven-dev/framework/tree/main/cli/src/contexts/framework/application/install): `cli/src/contexts/framework/application/install`
- [Install manifest](https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/framework/domain/manifest.ts): `cli/src/contexts/framework/domain/manifest.ts`
- [Manifest persistence](https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/framework/infrastructure/manifest-repository-adapter.ts): `cli/src/contexts/framework/infrastructure/manifest-repository-adapter.ts`
- [Post-install steps](https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/framework/application/install/post-install-pipeline-use-case.ts): `cli/src/contexts/framework/application/install/post-install-pipeline-use-case.ts`
- [Gitignore updates](https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/framework/application/gitignore-use-case.ts): `cli/src/contexts/framework/application/gitignore-use-case.ts`

### Plugin distribution

- [Marketplace operations](https://github.com/ai-driven-dev/framework/tree/main/cli/src/contexts/distribution/application): `cli/src/contexts/distribution/application`
- [Plugin catalog](https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/distribution/domain/catalog.ts): `cli/src/contexts/distribution/domain/catalog.ts`
- [Catalog reader](https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/distribution/infrastructure/plugin-catalog-repository-adapter.ts): `cli/src/contexts/distribution/infrastructure/plugin-catalog-repository-adapter.ts`

### Tool integration

- [Plugin translation](https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/translate/application/translate-source.ts): `cli/src/contexts/translate/application/translate-source.ts`
- [Tool profiles](https://github.com/ai-driven-dev/framework/tree/main/cli/src/contexts/tools/domain/profiles): `cli/src/contexts/tools/domain/profiles`

### Telemetry

- [Telemetry hooks](https://github.com/ai-driven-dev/framework/tree/main/plugins/aidd-telemetry/hooks): `plugins/aidd-telemetry/hooks`
- [Telemetry commands](https://github.com/ai-driven-dev/framework/tree/main/cli/src/contexts/telemetry/application): `cli/src/contexts/telemetry/application`
- [Telemetry sink](https://github.com/ai-driven-dev/framework/blob/main/cli/src/contexts/telemetry/infrastructure/telemetry-sink-adapter.ts): `cli/src/contexts/telemetry/infrastructure/telemetry-sink-adapter.ts`

### Task tracking

- [Kanban views](https://github.com/ai-driven-dev/framework/blob/main/kanban/src/presentation/commands/list-command.ts): `kanban/src/presentation/commands/list-command.ts`
- [Task listing](https://github.com/ai-driven-dev/framework/blob/main/kanban/src/application/use-cases/list-task-documents.ts): `kanban/src/application/use-cases/list-task-documents.ts`
- [Markdown task reader](https://github.com/ai-driven-dev/framework/blob/main/kanban/src/infrastructure/filesystem/filesystem-task-document-repository.ts): `kanban/src/infrastructure/filesystem/filesystem-task-document-repository.ts`
- [Task grouping](https://github.com/ai-driven-dev/framework/blob/main/kanban/src/domain/models/task-group.ts): `kanban/src/domain/models/task-group.ts`

### Other components

- **Engineer**
- **AI coding tool**
- **Project task files**

## Connections

- Engineer → CLI entry: runs commands (evidence: `README.md`)
- CLI entry → Setup and install: routes workflow
- Setup and install → AI coding tool: installs framework (evidence: `README.md`)
- Setup and install → Post-install steps: runs post-install (evidence: `cli/src/contexts/framework/application/install/post-install-pipeline-use-case.ts`)
- Post-install steps → Manifest persistence: saves manifest
- Post-install steps → Gitignore updates: updates ignores (evidence: `cli/src/contexts/framework/application/install/post-install-pipeline-use-case.ts`)
- Manifest persistence → Install manifest: loads and saves (evidence: `cli/src/contexts/framework/infrastructure/manifest-repository-adapter.ts`)
- Engineer → Marketplace operations: manages plugins (evidence: `README.md`)
- Marketplace operations → Catalog reader: loads catalog
- Catalog reader → Plugin catalog: parses catalog (evidence: `cli/src/contexts/distribution/infrastructure/plugin-catalog-repository-adapter.ts`)
- Engineer → Plugin translation: translates content (evidence: `README.md`)
- Plugin translation → Tool profiles: targets tools
- AI coding tool → Telemetry hooks: runs hooks (evidence: `README.md`)
- Telemetry hooks → Telemetry sink: records events
- Engineer → Telemetry commands: manages telemetry
- Engineer → Kanban views: views tasks
- Kanban views → Task listing: requests documents (evidence: `kanban/src/presentation/commands/list-command.ts`)
- Task listing → Markdown task reader: reads documents (evidence: `kanban/src/application/use-cases/list-task-documents.ts`)
- Markdown task reader → Project task files: reads Markdown (evidence: `kanban/src/infrastructure/filesystem/filesystem-task-document-repository.ts`)
- Task listing → Task grouping: groups documents (evidence: `kanban/src/application/use-cases/list-task-documents.ts`)
