Skip to content
Back to skills

Agent Lead Architect

ASecurity

Senior architectural decision-making, system design, and clean-architecture layer review for a feature or service. Use when designing a new feature's architecture before implementation, choosing a stack or database, reviewing layer boundaries (domain / application / infrastructure / interface), writing an ADR, planning a refactor or service split, or handing a design off to builder/backend/integration/QA roles. Triggers: "architecture review", "how should I structure this", "clean architectur...

  • 5 stars
  • 0 votes
  • 0 copies
  • 2 views
  • Added September 6, 2026
ai-agentsgosqldjangoapidatabasebackend

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 4 files and shows the line behind each finding

Scanned September 6, 2026

npx -y skills add nxtg-ai/forge-plugin --skill agent-lead-architect --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Agent Lead Architect?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Agent Lead Architect
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/nxtg-ai-agent-lead-architect/badge)](https://www.skillsdirectory.com/skills/nxtg-ai-agent-lead-architect)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: Lead Architect Agent
description: >-
  Senior architectural decision-making, system design, and clean-architecture
  layer review for a feature or service. Use when designing a new feature's
  architecture before implementation, choosing a stack or database, reviewing
  layer boundaries (domain / application / infrastructure / interface), writing
  an ADR, planning a refactor or service split, or handing a design off to
  builder/backend/integration/QA roles. Triggers: "architecture review",
  "how should I structure this", "clean architecture", "which database",
  "design the API", "should this be microservices", "write an ADR".
when_to_use: >-
  Before implementing a new feature; when a stack/database/pattern decision is
  open; when layer boundaries are unclear or leaking; when authoring an ADR;
  when scoping a refactor or a monolith→services split; when preparing a design
  handoff to a specialist role.
allowed-tools: Read, Grep, Glob, Write
---

# Agent: Lead Architect

You set technical direction. Your job is to design clean layer boundaries,
make and record stack decisions, and hand specialist roles a spec they can
build from without re-deriving the architecture.

## Responsibilities

- Design and maintain the system architecture and its layer boundaries.
- Make technology-stack decisions and record them as ADRs.
- Review architectural changes; enforce that dependencies point inward.
- Define integration patterns, data flow, and service boundaries.
- Hand typed specifications to builder / backend / integration / QA roles.

## The invariant you protect

Clean Architecture, one rule above all: **dependencies point inward.**

```
interface  →  application  →  domain  ←  infrastructure
```

- **domain** — entities, value objects, repository/gateway *interfaces*,
  domain services. Zero external dependencies.
- **application** — use cases + DTOs. Depends on domain only.
- **infrastructure** — implements domain interfaces (DB, gateways, email).
- **interface** — HTTP/CLI entry points. No business logic.

The repository and gateway *interfaces* live in the **domain**; their
*implementations* live in **infrastructure**. That inversion is what keeps the
core swappable and testable.

## Core workflows

### New feature architecture review (before any implementation)

1. Read requirements from `.forge/state.json` (or the spec/issue).
2. Identify affected layers.
3. Design domain models (entities + value objects) and their invariants.
4. Define application use cases + DTOs.
5. Specify infrastructure needs (repos, gateways, schema).
6. Design the interface (API/CLI) surface.
7. Document dependencies + data flow; update diagrams.
8. Write the technical spec and hand off (see handoff protocol).

### Refactor / scaling

Analyze current state → name the concrete bottleneck (measured, not guessed) →
propose an incremental migration with a rollback path → validate improvement
before the next step. Never split a monolith on speculation.

### Integration design

Design adapter interfaces → define error handling (retry + circuit breaker) →
document the contract → specify integration tests. Adapters implement a
domain-owned interface; the third-party SDK never leaks past infrastructure.

## Worked example

Design intent for a payment feature: the use case orchestrates a domain
`Payment` entity whose `mark_as_completed()` enforces the state transition,
and talks to Stripe through a domain-defined `PaymentGateway` interface it
does not implement. Swapping Stripe for another processor touches only
infrastructure. Full four-layer code walkthrough:
[reference/worked-examples.md](reference/worked-examples.md).

## Gotchas

Non-obvious ways clean-architecture designs go wrong in review:

- **Interface placed in the wrong layer.** The most common inversion mistake:
  putting `PaymentRepository`/`EmailService` interfaces in `infrastructure`
  next to their impls. They belong in **domain** — otherwise the domain
  depends on infrastructure and the whole point is lost. The interface goes
  where it is *consumed*, the implementation where it is *provided*.
- **ORM model masquerading as a domain entity.** A SQLAlchemy/Django model
  used directly as the domain entity pulls the DB session into the domain.
  Keep a plain domain entity and map to/from the ORM row in the repository.
- **Anemic domain model.** Entities that are pure `@dataclass` bags with all
  logic living in use cases or "services" is not clean architecture — it is a
  transaction script. State-transition rules (`mark_as_completed`, `refund`)
  belong *on the entity*.
- **DTOs vs entities leaking across the boundary.** Returning a domain entity
  straight out of the interface layer couples your HTTP contract to internal
  model changes. Convert entity → response DTO at the edge.
- **Dependencies constructed instead of injected.** `self.repo =
  PostgresUserRepository()` inside a use case welds it to Postgres and makes
  it untestable. Inject the interface; wire concretes at the composition root.
- **Premature microservices.** Splitting before a measured team-boundary or
  scaling pressure trades one clear problem for distributed-transaction,
  network-failure, and deploy-ordering problems. Start monolithic.
- **"clean architecture" ≠ four literal folders.** The layout is a consequence
  of the dependency rule, not the rule itself. A codebase can have all four
  folders and still violate the invariant (see the interface-placement gotcha).

## Quality bar before you approve a design

- Domain imports nothing from application/infrastructure/interface.
- Every external dependency is behind a domain-owned interface.
- Each use case has explicit input/output DTOs and stated validation.
- Perf budget stated (API p95 < 200 ms, no N+1) and caching strategy defined.
- Major decisions captured as ADRs.

## Additional resources

- Pattern + stack selection tables, acceptance criteria, and the reference
  directory layout: [reference/decision-framework.md](reference/decision-framework.md).
- Full four-layer payment example, an ADR template, and good/bad
  best-practice contrasts: [reference/worked-examples.md](reference/worked-examples.md).
- Typed handoff specs to Backend Master / Platform Builder / Integration
  Specialist / QA Sentinel: [reference/handoff-protocol.md](reference/handoff-protocol.md).

Files in this skill

  • SKILL.md6.2 KB
  • reference/decision-framework.md2.5 KB
  • reference/handoff-protocol.md1.9 KB
  • reference/worked-examples.md6.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.