Skip to content

Project Structure

The layout of the Agent Smith repository.

agent-smith/
├── .agentsmith/                    # The repository's own spec-first meta-files
│   ├── contexts/<name>/            # One directory per context (this repo has `default`)
│   │   ├── context.yaml            #   architecture, stack, spec status
│   │   └── principles.md           #   code quality rules
│   ├── specs/
│   │   ├── planned/                # Upcoming specs
│   │   ├── active/                 # The spec being implemented
│   │   └── done/                   # Completed specs
│   ├── decisions/                  # One decision YAML per spec
│   ├── memory/                     # Experiential memory (MEMORY.md index + one file per fact)
│   ├── runs/                       # Run records written by pipeline runs
│   ├── security/                   # Security-scan snapshots for trend analysis
│   └── *.schema.json               # Schemas for context, spec and decision files
│
├── src/
│   ├── backend/                    # The .NET solution's projects
│   │   ├── AgentSmith.Domain/                         # entities, value objects, exceptions
│   │   ├── AgentSmith.Contracts/                      # interfaces, commands, events, config models
│   │   ├── AgentSmith.Application/                    # pipeline executor, handlers, use cases
│   │   ├── AgentSmith.Infrastructure.Core/            # config loading, secrets, skill catalog
│   │   ├── AgentSmith.Infrastructure/                 # LLM clients, git/ticket providers, Redis, scanners
│   │   ├── AgentSmith.Infrastructure.Persistence/     # EF Core store and migrations
│   │   ├── AgentSmith.Infrastructure.Persistence.SqlServer/  # SQL Server migrations
│   │   ├── AgentSmith.Cli/                            # CLI entry point (+ Dockerfile)
│   │   ├── AgentSmith.Server/                         # long-running server (+ Dockerfile)
│   │   ├── AgentSmith.Sandbox.Wire/                   # step protocol shared with the sandbox agent
│   │   ├── AgentSmith.Sandbox.Agent/                  # executable injected into each sandbox (+ Dockerfile)
│   │   └── AgentSmith.SkillsPackaging/                # build-time skill catalog check
│   └── dashboard/                  # Next.js dashboard (pnpm, vitest; + Dockerfile)
│
├── tests/
│   ├── AgentSmith.Tests/           # main xUnit suite, including the frozen event fixtures
│   ├── AgentSmith.Sandbox.Agent.Tests/  # sandbox agent tests
│   ├── AgentSmith.PipelineHarness/ # drives real pipeline compositions against scripted LLMs
│   └── AgentSmith.Tests.Fixtures/  # sample repositories used by tests
│
├── config/                         # Configuration schema and examples
│   ├── agentsmith.schema.json      #   JSON schema for agentsmith.yml
│   ├── agentsmith.example.yml      #   annotated example configuration
│   ├── nuclei.yaml, spectral.yaml  #   api-scan tool settings (+ .example variants)
│   └── docs-writing-skill.md       #   writing guide for these docs
│
├── deploy/
│   ├── docker-compose.example.yml  # server, Redis, migrate job, dashboard
│   ├── k8s/                        # numbered manifests (1-namespace.yaml … 12-pvc-persistence.yaml) + examples/
│   ├── apply-k8s-secret.sh         # creates the Kubernetes secret
│   └── DOCKERHUB_DESCRIPTION.md
│
├── tools/                          # Repository tooling
│   ├── build-hub-event-types.mjs   #   dashboard event-type mirror check
│   ├── build-tokens.mjs            #   DESIGN.md → CSS tokens for website and docs
│   ├── freeze-event-fixtures.cs    #   one-shot seeder for event fixtures
│   ├── fetch-skills.sh             #   pulls the pinned skill catalog for local tests
│   └── …                           #   audit, prompt-bench and measurement scripts
│
├── docs/                           # This MkDocs site (docs/mkdocs.yml)
├── website/                        # Project website (Eleventy)
├── hooks/                          # Git hooks; enable with `git config core.hooksPath hooks`
├── .github/workflows/              # GitHub Actions: build, test and images; dashboard; docs; releases
│
├── AgentSmith.sln                  # Solution file
├── DESIGN.md                       # Design tokens, source for build-tokens.mjs
├── WORKER-MODE.md                  # Running a ticket with an external agent CLI answering the model calls
├── release-please-config.json      # Release automation
└── version.txt                     # Current version

Solution projects

AgentSmith.sln contains fifteen projects:

Project Type Description
AgentSmith.Domain Class library Entities, value objects, exceptions
AgentSmith.Contracts Class library Interfaces, commands, events, config models
AgentSmith.Application Class library Handlers, pipeline executor, use cases
AgentSmith.Infrastructure.Core Class library Config loading, secrets, skill catalog, registries
AgentSmith.Infrastructure Class library LLM clients, git and ticket providers, Redis, scanners, output
AgentSmith.Infrastructure.Persistence Class library EF Core store (SQLite, PostgreSQL, MySQL, SQL Server)
AgentSmith.Infrastructure.Persistence.SqlServer Class library SQL Server migrations
AgentSmith.Sandbox.Wire Class library Sandbox step protocol
AgentSmith.Sandbox.Agent Console app Agent inside each sandbox
AgentSmith.SkillsPackaging Console app Build-time skill catalog check
AgentSmith.Cli Console app CLI entry point
AgentSmith.Server Web app Webhooks, queue, dashboard API, sandboxes
AgentSmith.Tests Test project Main test suite
AgentSmith.Sandbox.Agent.Tests Test project Sandbox agent tests
AgentSmith.PipelineHarness Console app Pipeline harness

Published images

Image Built from
holgerleichsenring/agent-smith-server src/backend/AgentSmith.Server/Dockerfile
holgerleichsenring/agent-smith-cli src/backend/AgentSmith.Cli/Dockerfile
holgerleichsenring/agent-smith-sandbox-agent src/backend/AgentSmith.Sandbox.Agent/Dockerfile
holgerleichsenring/agentsmith-dashboard src/dashboard/Dockerfile

Key files

File Purpose
src/backend/AgentSmith.Cli/Program.cs CLI verb definitions
src/backend/AgentSmith.Cli/ConfigDiscovery.cs Where the CLI looks for agentsmith.yml
src/backend/AgentSmith.Application/Services/ExecutePipelineUseCase.cs Top-level run orchestration
src/backend/AgentSmith.Application/Services/PipelineExecutor.cs Runs the ordered command list
src/backend/AgentSmith.Contracts/Commands/PipelinePresets*.cs The step list of every pipeline, one file per preset
src/backend/AgentSmith.Cli/docker-entrypoint.sh CLI image entrypoint: fixes volume permissions, then drops to the agentsmith user