domain-architect
Discovers business domains in a Swift codebase by tracing what users can DO — not by reading folder names or architecture docs.
Skill by pproenca
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/pproenca-domain-architect
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: design
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/domain-architect
Tools it pre-approves 6
From allowed-tools in SKILL.md: the agent may use these without asking you each time.
Read,Glob,Grep,Write,Edit,Bash
What's inside
- Skill name
domain-architect- Description
- Discovers business domains in a Swift codebase by tracing what users can DO — not by reading folder names or architecture docs. Maps each domain's vertical slice (Types → Config → Repo → Service → Runtime → UI), identifies providers (external SDK bridges), and separates cross-cutting concerns. Produces a domain map that drives all downstream decisions: folder structure, SPM targets, enforcement specs, migration plans. Use this skill whenever the user wants to understand their codebase domains, find what's cross-cutting vs domain-specific, restructure a Swift project, figure out where code belongs, or map a product's capabilities to architectural boundaries. Triggers on "what are my domains", "where does this belong", "map this codebase", "what's cross-cutting", "organize this project", "is this a domain or infra", "restructure this", "architecture review", or any request to understand the business domain structure of a Swift codebase.
- License
- MIT
- Allowed tools
- Read,, Glob,, Grep,, Write,, Edit,, Bash
- Instructions
- 265 lines in SKILL.md · view on GitHub
Before installing
- Pre-approves any shell command
Files (5)
- SKILL.md
- metadata.json
- architecture.als · references/
- architecture.md · references/
- principles.md · references/
SKILL.md (first lines)
# Domain Architect You discover business domains by tracing what users can DO — the product's capabilities — and mapping each capability to a vertical slice through the architecture. You do NOT start from folder names, architecture docs, or file counts. You start from the product. ## What You Produce A **domain map** — the single artifact that drives everything else: ``` Domain Map ├── Business Domains (vertical slices the user would recognize) │ └── Per domain: Types, Config clients, Service reducers, UI views ├── Providers (external SDK bridges) ├── Cross-Cutting Concerns (Infra, Utils) └── Questions (ambiguous boundaries to discuss with the team) ``` Once the domain map is right, folder structure, SPM targets, enforcement specs, and migration plans all follow mechanically. Get the domains wrong and everything downstream is wrong. ## How Domains Work Read `references/architecture.md` for the full layer spec. Read `references/architecture.als` for the formally verifiable model. ### A domain is a user capability **Litmus test**: Can you describe it to a non-engineer in one sentence? - "Scheduling appointments" — domain (Calendar) - "Collecting payments" — domain (Payments) - "Browsing available treatments" — domain (Treatments) - "Handling HTTP requests" — NOT a domain (infrastructure) - "Formatting dates" — NOT a domain (utils) ### Each domain owns a vertical slice ``` Types → pure data definitions for this domain's nouns Config → @DependencyClient interfaces (what you can ask for) Repo → implementations (how it's done — API, persistence, sync) Service → @Reducer state machines (business decisions) Runtime → dependency wiring (Config interfaces → Repo implementations) UI → SwiftUI views (pixels) ``` Not every domain needs every layer. A thin domain might only have Config + Service + UI. But Types, Config, and Service are the minimum for something to be a real domain. ### Domains don't import each other's internals Cross-domain communication happens through: - Delegate actions to a parent reducer - Shared Types (the universal vocabulary) - Shared Config interfaces (when two domains use the same client) Never by importing another domain's Service or Repo. ### What's NOT a domain | Thing | What it is | Where it lives | |-------|-----------|---------------| | Error handling | Cross-cutting | Infra | | Logging/telemetry | Cross-cutting | Infra | | Formatters, constants | Cross-cutting | Utils | | Sentry, Stripe SDK, APNS | Provider (SDK bridge) | Providers | | HTTP transport, persistence engine | Shared infrastructure | Repo | | Design system tokens | Shared UI | DesignSystem | | Background task scheduling | Platform integration | Runtime | --- ## The Process ### Step 1: What can users DO? Start from the entry point. Read `@main`, the root reducer, the tab structure. Every child scope or tab is a candidate domain. ```bash grep -r "@main" <project-root> --include="*.swift" -l ``` Read the root reducer. Trace its `Scope` and `CombineReducers` to find every child feature. Trace the tab enum to find every top-level capability. For multi-app products (e.g., patient app + clinic app), do this for EACH app. The same business domain often appears in both apps with different verbs. ### Step 2: What verbs exist? Every `@DependencyClient` is a verb — a capability the system can perform. ```bash grep -r "@DependencyClient" <project-root> --include="*.swift" -l ``` Read each client file. For each client, note: - The **verbs** (closure names: `fetch`, `create`, `cancel`, `observe`) - The **nouns** (types flowing through: `Appointment`, `Treatment`, `Patient`) - Which **domain** it belongs to (infer from the nouns) Group clients by domain. This gives you the Config layer map. ### Step 3: What nouns exist? The nouns are in the Types layer — the universal vocabulary. ```bash find <project-root> -name "Package.swift" -not -path "*/.build/*"
From pproenca/dot-skills, MIT.
More from pproenca/dot-skills
- 0.694score
tanstack-query
community
TanStack Query v5 performance optimization for data fetching, caching, mutations, and query patterns.
SkillCFreshness: C★ 218Claude Code +9 - 0.596score
mlflow-3
pproenca
MLflow 3 (open-source, pinned to 3.15) for classic-ML MLOps — logging and registering models, promoting versions across dev/staging/prod, standing up a…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
ray
pproenca
Production Ray (open-source, pinned to 2.57) for classic-ML workloads from training to serving — Ray Train, Tune, Data, Serve, Core, and cluster deployment on…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
mlflow-mlops-migration
pproenca
Guided workflow for taking any ML codebase — including one with no experiment tracking at all, or one full of MLflow 2-era idioms — to a production-grade…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
ray-llm
pproenca
LLM workloads on open-source Ray (pinned to 2.57) — OpenAI-compatible serving with ray.serve.llm (vLLM-backed LLMConfig + build_openai_app) and batch…
SkillBFreshness: B★ 218Claude Code +9 - 0.550score
expo-ui
pproenca
Library reference for @expo/ui SwiftUI components on iOS — covers Host boundaries, modifier composition, iOS 26 Liquid Glass and Human Interface Guidelines…
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
debug
pproenca
Comprehensive debugging methodology for finding and fixing bugs (formerly debugging).
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
bug-review
pproenca
Use this skill when a user asks to review a pull request for bugs, wants AI code review focused on correctness issues, or runs /bug-review.
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
ios-taste
pproenca
Designs iOS 18+ SwiftUI experiences with real taste — starting from user goals, not pixels.
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
implementation-functional-patterns
pproenca
TypeScript's functional answers to the 22 Gang of Four classes — factory functions (Factory Method, Abstract Factory, Prototype, Memento), module-scope…
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
expo
pproenca
Expo React Native performance optimization guidelines.
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
deterministic-metric-design
pproenca
Inventing deterministic metrics — turning a fuzzy property like 'maintainability', 'risk', or 'how reducible this code is' into a deterministic, computable…
SkillCFreshness: C★ 218Claude Code +9
Signals
- Stars
- 218
- Forks
- 19
- Open issues
- 3
- Last commit (this folder)
- May 27, 2026 (5 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/pproenca/dot-skills
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from pproenca
- 0.596score
ray-llm
pproenca
LLM workloads on open-source Ray (pinned to 2.57) — OpenAI-compatible serving with ray.serve.llm (vLLM-backed LLMConfig + build_openai_app) and batch…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
mlflow-mlops-migration
pproenca
Guided workflow for taking any ML codebase — including one with no experiment tracking at all, or one full of MLflow 2-era idioms — to a production-grade…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
mlflow-3
pproenca
MLflow 3 (open-source, pinned to 3.15) for classic-ML MLOps — logging and registering models, promoting versions across dev/staging/prod, standing up a…
SkillBFreshness: B★ 218Claude Code +9 - 0.596score
ray
pproenca
Production Ray (open-source, pinned to 2.57) for classic-ML workloads from training to serving — Ray Train, Tune, Data, Serve, Core, and cluster deployment on…
SkillBFreshness: B★ 218Claude Code +9 - 0.550score
expo
pproenca
Expo React Native performance optimization guidelines.
SkillCFreshness: C★ 218Claude Code +9 - 0.550score
debug
pproenca
Comprehensive debugging methodology for finding and fixing bugs (formerly debugging).
SkillCFreshness: C★ 218Claude Code +9
Cite this page
domain-architect skill. Agent Mart. https://agentmart.dev/skills/pproenca-domain-architect (last updated 2026-10-24)