Skip to content
Back to skills

Scaffold Domain

ASecurity

Scaffold a full ArchiPy domain slice (DTOs, errors, repository + adapter, logic, service). Use for "add a <name> domain/module/feature", "new resource with CRUD", or "end-to-end endpoint".

  • 3 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added September 24, 2026
developmentpythongosqlfastapigitapi

Works with

  • claude code
  • cursor
  • api

Security analysis

A100/100

Scanned October 4, 2026

npx -y skills add SyntaxArc/archipy-plugin --skill scaffold-domain --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Scaffold Domain?

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

Security grade badge for Scaffold Domain
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/syntaxarc-scaffold-domain/badge)](https://www.skillsdirectory.com/skills/syntaxarc-scaffold-domain)

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: scaffold-domain
description: >-
  Scaffold a full ArchiPy domain slice (DTOs, errors, repository + adapter, logic,
  service). Use for "add a <name> domain/module/feature", "new resource with CRUD", or
  "end-to-end endpoint".
---

# Scaffold ArchiPy Domain

## Read first

Read these plugin rules in full before generating files (paths relative to this skill directory; Claude Code: `${CLAUDE_SKILL_DIR}/../../rules/`):

- `../../rules/architecture-for-apps.mdc`
- `../../rules/using-archipy-utils.mdc`
- `../../rules/using-archipy-models.mdc`
- `../../rules/using-archipy-repositories.mdc`
- `../../rules/using-archipy-logics.mdc`
- `../../rules/using-archipy-services.mdc`

## Before writing files

1. Inspect `pyproject.toml`, the package tree, neighboring domains, DI containers, and existing tests.
2. Infer package name, installed extras, naming, transport, and sync/async style from the repository.
3. Ask only for unresolved choices that materially change the generated slice:
   - Domain name
   - Missing infrastructure/extras
   - Transport when the app does not already establish one (default FastAPI)
4. Preserve existing files. Extend compatible modules; stop and explain conflicts instead of overwriting them.

## Compose — do not fork templates

Before generating files, read these plugin skills in full. Resolve `../...` paths relative to this `SKILL.md` file's
directory in the plugin installation (`$CURSOR_PLUGIN_ROOT/skills/scaffold-domain/` or
`${CLAUDE_SKILL_DIR}/`) — not relative to the app workspace:

- `../scaffold-models/SKILL.md`
- `../scaffold-adapter/SKILL.md`
- `../scaffold-logic/SKILL.md`
- `../scaffold-service/SKILL.md`

Apply their constraints and `Verify` sections in order; do not replace them with summaries:

1. **scaffold-models** — domain/repo DTOs, errors, optional entities
2. **scaffold-adapter** — thin wrapper under `repositories/<domain>/adapters/` + `<domain>_repository.py`
3. **scaffold-logic** — at least one use-case under `logics/<domain>/`
4. **scaffold-service** — `services/<domain>/v1/<domain>_service.py`

Install extras as needed: `uv add "archipy[<extras>]"`.

## Outcome checklist

- [ ] Domain + repository DTOs with ArchiPy naming (`*InputDTO`, `*CommandDTO`, …); repository methods with 2+ params take one `*CommandDTO` / `*QueryDTO`
- [ ] Domain error subclassing ArchiPy `BaseError` hierarchy
- [ ] `repositories/<domain>/adapters/` + repository orchestrator
- [ ] One logic with `@postgres_sqlalchemy_atomic_decorator` when Postgres SQLAlchemy is in play
- [ ] One service v1 (FastAPI router or gRPC servicer)
- [ ] DI notes in `configs/containers.py`: ports → adapters → repository → logic → service

## Do not

- Call flow: `services → logics → repositories → adapters → ArchiPy`.
- Cross-domain: logics may call other logics; never another domain’s repository.
- Double quotes, Google-style docstrings, Python 3.14+ typing.
- Do **not** invent a top-level app `adapters/` package.
- No atomic / UoW decorators on repositories or services — only logics. There is no decorator named `atomic`.
- No FastAPI/gRPC imports in logics; no business rules in services/adapters.

## Verify

1. Run the repository's formatter and linter on generated Python.
2. Add or run Behave scenarios that exercise the new endpoints over REST/gRPC with their `@needs-*` containers
   (`/scaffold-bdd`), covering success, validation, and domain errors.
3. Confirm imports and DI wiring resolve without constructing production infrastructure.
4. Run the `archipy-reviewer` subagent on the changes and fix every **Must fix** finding it reports.
5. Report created/updated files, dependency changes, and commands run.

## Docs

- https://syntaxarc.github.io/ArchiPy/getting-started/project_structure/
- https://syntaxarc.github.io/ArchiPy/getting-started/concepts/
- Bundled: `../archipy-docs/reference.md`

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.