PR Review Provider
yansongda/pay
A skill your agent uses when reviewing PRs that add or modify a payment Provider in yansongda/pay - covers plugin pipeline, multi-tenant safety, signature verification, docs, and naming conventions.
Layering and boundaries, web vs public API, app layout (clients, routes, logging), ports/adapters, runtime-portable domain/shared/utils code, multi-tenancy, DDD layout, or anti-patterns.
$ npx skills add latitude-dev/latitude-llm --skill architecture-boundaries -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install latitude-dev/latitude-llm architecture-boundaries --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/latitude-dev/latitude-llm.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/architecture-boundaries .claude/skills/architecture-boundaries && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "architecture-boundaries" agent skill from https://github.com/latitude-dev/latitude-llm/tree/development/.agents/skills/architecture-boundaries into .claude/skills/architecture-boundaries/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architecture-boundaries", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/latitude-dev/latitude-llm/tree/development/.agents/skills/architecture-boundariesType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add latitude-dev/latitude-llm --skill architecture-boundaries -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install latitude-dev/latitude-llm architecture-boundaries --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/latitude-dev/latitude-llm.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/architecture-boundaries .agents/skills/architecture-boundaries && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "architecture-boundaries" agent skill from https://github.com/latitude-dev/latitude-llm/tree/development/.agents/skills/architecture-boundaries into .agents/skills/architecture-boundaries/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architecture-boundaries", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add latitude-dev/latitude-llm --skill architecture-boundaries -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install latitude-dev/latitude-llm architecture-boundaries --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/latitude-dev/latitude-llm.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/architecture-boundaries .cursor/skills/architecture-boundaries && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "architecture-boundaries" agent skill from https://github.com/latitude-dev/latitude-llm/tree/development/.agents/skills/architecture-boundaries into .cursor/skills/architecture-boundaries/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architecture-boundaries", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/latitude-dev/latitude-llm.git --path .agents/skills/architecture-boundaries--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add latitude-dev/latitude-llm --skill architecture-boundaries -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install latitude-dev/latitude-llm architecture-boundaries --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/latitude-dev/latitude-llm.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/architecture-boundaries .gemini/skills/architecture-boundaries && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "architecture-boundaries" agent skill from https://github.com/latitude-dev/latitude-llm/tree/development/.agents/skills/architecture-boundaries into .gemini/skills/architecture-boundaries/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architecture-boundaries", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install latitude-dev/latitude-llm architecture-boundariesInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add latitude-dev/latitude-llm --skill architecture-boundaries -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/latitude-dev/latitude-llm.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/architecture-boundaries .github/skills/architecture-boundaries && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "architecture-boundaries" agent skill from https://github.com/latitude-dev/latitude-llm/tree/development/.agents/skills/architecture-boundaries into .github/skills/architecture-boundaries/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architecture-boundaries", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add latitude-dev/latitude-llm --skill architecture-boundaries -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install latitude-dev/latitude-llm architecture-boundaries --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/latitude-dev/latitude-llm.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/architecture-boundaries .opencode/skills/architecture-boundaries && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "architecture-boundaries" agent skill from https://github.com/latitude-dev/latitude-llm/tree/development/.agents/skills/architecture-boundaries into .opencode/skills/architecture-boundaries/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "architecture-boundaries", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
architecture-boundariesLayering and boundaries, web vs public API, app layout (clients, routes, logging), ports/adapters, runtime-portable domain/shared/utils code, multi-tenancy, DDD layout, or anti-patterns.
Architecture Boundaries is an agent skill from latitude-dev/latitude-llm. Layering and boundaries, web vs public API, app layout (clients, routes, logging), ports/adapters, runtime-portable domain/shared/utils code, multi-tenancy, DDD layout, or anti-patterns.
Its SKILL.md is about 3.2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Backend & APIs, covering Domain-driven design and Multi-tenancy. The repository describes itself as: Open-source observability for AI agents. Find where your agents fail, dispatch your coding agent to fix it, and verify the fix against real traces. The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 3aae477. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pnpmFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Architecture Boundaries loads about 3.2k tokens when it runs. Until then it costs about 53 tokens; SKILL.md has 1,461 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from latitude-dev/latitude-llm at commit 3aae477, republished under its MIT licence (© latitude-dev). 1,461 words, ~3,177 tokens.
.claude/skills/architecture-boundaries/SKILL.md (or your agent's skills folder).When to use: Layering and boundaries, web vs public API, app layout (clients, routes, logging), ports/adapters, runtime-portable domain/shared/utils code, multi-tenancy, DDD layout, or anti-patterns.
apps/*)Apps only handle:
No business logic in handlers, controllers, or jobs.
apps/*)apps/*/clients.ts and import from boundaries — avoid scattering raw clients.apps/*/routes/ with a registerRoutes() (or equivalent) pattern so the HTTP surface stays modular.createLogger() from @repo/observability with a stable service name per app.Effect.runPromise call site must include withTracing from @repo/observability in the pipe chain to connect Effect spans to the OTel pipeline. See effect-and-errors for the full tracing rules.parseEnv / parseEnvOptional — see env-configuration.apps/web, apps/api, @repo/operations)execute logic) live in packages/operations (@repo/operations) — the boundary-contract layer between apps and domain. One definition fans out to the HTTP route, OpenAPI, MCP tool, SDK methods, CLI command, and in-process agent tools.apps/api is the transport shell: middleware (auth, org context, rate limiting), the MCP HTTP transport, mounting operationModules, and the manifest emit scripts. Treat the operation contracts as externally consumed and evolve them carefully.@repo/operations sits above domain: operations validate input, map to public schemas, and orchestrate @domain/* use-cases — the same boundary responsibilities apps own, factored into a package so non-HTTP consumers (worker-side agents) can run execute in-process.apps/web must not call or proxy through apps/api for internal product features.apps/web server functions by composing domain use-cases and platform adapters directly.apps/web by adding web-private server functions/stores while preserving apps/api stability.apps/web and @repo/operations should both orchestrate domain use-cases rather than duplicating policy.defineOperation, OperationModule manifests, group/sdkMethod/access/rateLimitTier, pnpm openapi:emit / pnpm mcp:emit, schema-description rules that fan out to the TS + Python SDKs, MCP tools, and the latitude CLI, the required declarative access field, and defineToolset (with its access ceiling) for internal agents — see api-endpoints.packages/domain/*)Business logic lives here. Domain packages expose:
Domain entities are Zod-first: entitySchema + z.infer<typeof entitySchema> in src/entities/<entity>.ts. See dev-docs/domain-entities.md and docs/adr/0001-domain-entity-schema-style.md.
packages/domain/*/src/entities/<entity>.ts.packages/domain/*/src/constants.ts.packages/domain/*/src/errors.ts. A full package-by-package inventory and import rules live in dev-docs/domain-errors.md.packages/domain/issues as the reference: see packages/domain/issues/src/errors.ts and the section Domain errors (@domain/issues reference pattern) in dev-docs/issues.md.packages/domain/*/src/helpers.ts.packages/platform/*)Infrastructure details live here only. Platform packages implement adapters for domain ports.
Reference implementation: packages/platform/db-weaviate/src/client.ts — createWeaviateClientEffect (and the thin createWeaviateClient wrapper used by scripts).
Use this pattern when a platform package owns an external SDK client so composition roots can stay in Effect and errors stay typed.
createXClientEffect(...): Effect.Effect<Client, E, never> (or with requirements R if unavoidable). Scripts and one-off CLIs may export async function createXClient() as Effect.runPromise(createXClientEffect(...)) only at the boundary that needs promises.Data.TaggedError (or shared env errors from @platform/env). Union them into a single CreateXClientError (or similar) exported next to the constructor.parseEnv / parseEnvOptional from @platform/env inside the Effect pipeline, not ad hoc process.env reads scattered outside the client module.Effect.tryPromise and map failures to tagged errors. Compose steps with Effect.pipe, Effect.flatMap, and Effect.map.migrateWeaviateCollectionsEffect after connect) so callers get a ready client or a single error channel.XClientLive(client, scope...) layer for the external SDK client and keep repository adapters as Layer.effect or Layer.succeed values that depend on that client service as needed. The composition root acquires the client with createXClientEffect and provides it via a small helper when useful, for example withWeaviate(IssueProjectionRepositoryLive, client, organizationId).Not every legacy adapter has been migrated; prefer this shape for new work and when touching client construction.
packages/utils)General-purpose utility functions that can be shared across any package (domain, platform, or app) live in @repo/utils. This package should contain pure, stateless helper functions with no domain or infrastructure dependencies.
Examples: formatCount, formatPrice, string helpers, number formatters.
When writing a utility function that is not specific to a single domain or package, place it in @repo/utils instead of keeping it local.
@domain/shared and @repo/utils have different responsibilities and should not be merged.
@domain/shared for domain-level shared contracts, types, errors, and IDs used across bounded contexts.@repo/utils for global pure, stateless helpers that are reusable anywhere.@domain/shared; otherwise, use @repo/utils.Repository, CacheStore, Publisher)findById, findByXxx for unique keys, listByXxx / list for collections, save, delete vs softDelete, etc.).organizationId and projectId in event/task/workflow payloads by default (except MagicLinkEmailRequested, UserDeletionRequested, domain-events, magic-link-email, and user-deletion payloads).In packages/domain/*, packages/utils, @domain/shared, or any code that may run outside Node (browser, edge, isolates), prefer Web Standard APIs over Node-only modules so those layers stay portable.
crypto.subtle / crypto.getRandomValues instead of node:cryptofetch instead of Node-specific HTTP clientsTextEncoder / TextDecoder instead of Buffer.from(…, 'utf-8')Uint8Array for binary data in public interfacesReadableStream instead of node:stream / node:fs streamsURL, URLSearchParams, Headers, Request, Response from the global scopestructuredClone instead of JSON round-trips for deep cloningNode-only APIs are acceptable in build tooling, scripts, CLI utilities, and test infrastructure. If you need Node outside those scopes, add a brief comment explaining why.
For access patterns, schema, and migrations, see database-postgres and database-clickhouse-weaviate.
organizationIdorg:${organizationId}:...; keep the org id first in the keyLAT_ prefix (see env-configuration)"use client" or "use server" directives — these are Next.js-specific; the web app uses TanStack Start© latitude-dev, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/architecture-boundaries of latitude-dev/latitude-llm.
Open the folder on GitHubat commit 3aae477
Architecture Boundaries next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Architecture Boundaries this skilllatitude-dev/latitude-llm | 4.7k | — | ~3.2k | Automated safety check: Pass | MIT | |
| PR Review Provideryansongda/pay | 5.4k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Dynamic Consistency BoundariesAxonIQ/AxonFramework | 3.6k | — | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| NestJS Modular Monolith Architecttech-leads-club/agent-skills | 7k | — | ~3.9k | Automated safety check: Pass | CC-BY-4.0 | |
| Event Sourcingcitypaul/.dotfiles | 740 | — | ~7.8k | Automated safety check: Pass | Custom licence | |
| Laravel Clean ArchitectureHoangNguyen0403/agent-skills-standard | 571 | — | ~913 | Automated safety check: Pass | MIT |
yansongda/pay
A skill your agent uses when reviewing PRs that add or modify a payment Provider in yansongda/pay - covers plugin pipeline, multi-tenant safety, signature verification, docs, and naming conventions.
AxonIQ/AxonFramework
Explain and reason about Dynamic Consistency Boundaries (DCB) and how Axon Framework 5 and Axon Server implement them.
tech-leads-club/agent-skills
Designs scalable NestJS modular monoliths with domain-driven design, Clean Architecture layers and optional CQRS, defining bounded contexts and strict module boundaries.
citypaul/.dotfiles
Event sourcing patterns for functional TypeScript — persist state as an append-only log of past events and rebuild it by folding them.
HoangNguyen0403/agent-skills-standard
Implement Domain-Driven Design with typed DTOs, repository interfaces, and single-responsibility Action classes in Laravel.
tech-leads-club/agent-skills
Guides design of modular-monolith platforms with DDD, flat-by-aggregate modules, anti-corruption layers, outbox events and resilience, plus an architecture document with SVG diagrams.
latitude-dev/latitude-llm
Configure Better Auth server and client, set up database adapters, manage sessions, add plugins, and handle environment variables.
latitude-dev/latitude-llm
Create, validate, preview, and publish self-contained HTML artifacts.
latitude-dev/latitude-llm
Continuously monitor GitHub PR CI checks and automatically fix failures until all checks pass.
latitude-dev/latitude-llm
This skill should be used when the user asks to "create a Temporal workflow", "write a Temporal activity", "debug stuck workflow", "fix non-determinism error", "Temporal Python", "Temporal…
latitude-dev/latitude-llm
Review the current conversation context and git changes, then persist durable repository knowledge into dev-docs/.md by domain and into AGENTS.md for cross-cutting repo rules.
latitude-dev/latitude-llm
Enables or disables Latitude production maintenance mode by redirecting all publicly exposed production services to the Better Stack status page.
Categories
Layering and boundaries, web vs public API, app layout (clients, routes, logging), ports/adapters, runtime-portable domain/shared/utils code, multi-tenancy, DDD layout, or anti-patterns. Architecture Boundaries is an agent skill from latitude-dev/latitude-llm. Layering and boundaries, web vs public API, app layout (clients, routes, logging), ports/adapters, runtime-portable domain/shared/utils code, multi-tenancy, DDD layout, or anti-patterns.
Architecture Boundaries fits situations like: tasks that involve Domain-driven design; tasks that involve Multi-tenancy.
Run `npx skills add latitude-dev/latitude-llm --skill architecture-boundaries -a claude-code`. Or copy the skill folder (.agents/skills/architecture-boundaries in latitude-dev/latitude-llm) into .claude/skills/architecture-boundaries in your project. Claude Code loads it when a task matches its description.
Run `npx skills add latitude-dev/latitude-llm --skill architecture-boundaries -a codex`. Or copy the skill folder (.agents/skills/architecture-boundaries in latitude-dev/latitude-llm) into .agents/skills/architecture-boundaries in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add latitude-dev/latitude-llm --skill architecture-boundaries -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/architecture-boundaries, .gemini/skills/architecture-boundaries, .github/skills/architecture-boundaries and .opencode/skills/architecture-boundaries in your project.
Going by SKILL.md and its folder, Architecture Boundaries needs the command-line tools its instructions call (pnpm). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Architecture Boundaries is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.2k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Architecture Boundaries: PR Review Provider (yansongda/pay, 5.4k stars), Dynamic Consistency Boundaries (AxonIQ/AxonFramework, 3.6k stars), NestJS Modular Monolith Architect (tech-leads-club/agent-skills, 7k stars) and Event Sourcing (citypaul/.dotfiles, 740 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
latitude-dev (a GitHub organization) maintains it in latitude-dev/latitude-llm, which has 4,716 GitHub stars. The repository holds 28 skills in this directory. The repository was last updated on October 8, 2026.
Source: latitude-dev/latitude-llm on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.