Skip to content
Agentmart
Submit a tool

software-architecture

Project-agnostic software architecture guidance focused on maintainability, Clean Architecture, DDD, boundaries, naming, modularity, and code quality tradeoffs.

Skill by imported-and-adapted-by-lucy-camilo

IndexedApache-2.0★ 19
Write a review

Chalk Labs

Need help deploying software-architecture?

Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.

Book a call

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/camiloandresgtruniandes-software-architecture

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.

We use your email only for this newsletter. Privacy

About

Project-agnostic software architecture guidance focused on maintainability, Clean Architecture, DDD, boundaries, naming, modularity, and code quality tradeoffs. Trigger: when designing architecture, reviewing architectural choices, refactoring structure, defining module boundaries, or evaluating development tradeoffs. Does not replace SDD.

No 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 and code. Checked Oct 26, 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/software-architecture

What's inside

Skill name
software-architecture
Description
Project-agnostic software architecture guidance focused on maintainability, Clean Architecture, DDD, boundaries, naming, modularity, and code quality tradeoffs. Trigger: when designing architecture, reviewing architectural choices, refactoring structure, defining module boundaries, or evaluating development tradeoffs. Does not replace SDD.
License
Apache-2.0
Metadata
author: imported-and-adapted-by-lucy-camilo · source: community-adapted · version: 1.1
Instructions
149 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Software Architecture Skill

## When to Use

Use this skill when:
- Designing or reviewing architecture
- Defining modules, boundaries, layers, services, or domain models
- Refactoring structure for maintainability
- Evaluating whether to build custom code or use an existing library/service
- Reviewing code for separation of concerns, naming, duplication, complexity, and coupling

Do **not** use this skill as a shortcut around SDD. For code changes, SDD remains mandatory: Explore → Propose → Spec → Design → Tasks → Apply → Verify → Archive, with explicit Camilo approval at every phase gate.

Always combine this with:
- The repo's `docs/STANDARDS.md`
- Relevant stack skills, such as `csharp-dotnet`, `typescript`, `angular-core`, or `security`
- Existing architecture decisions from Engram/local memory before changing direction

## Core Architecture Principles

- Optimize for clarity, correctness, safety, and evolvability before cleverness.
- Keep business rules independent from frameworks, transport, databases, and UI.
- Make dependencies point inward toward stable domain/application concepts.
- Use domain language for names; avoid generic dumping grounds like `utils`, `helpers`, `misc`, or `common` unless the repo standard explicitly defines them.
- Prefer explicit boundaries over accidental coupling.
- Keep high-risk decisions reversible where practical.
- Question every new abstraction: abstraction must reduce real complexity, not hide it.

## Library vs Custom Code Decision

Prefer existing, well-maintained libraries/services for commodity concerns, but do not adopt dependencies blindly.

Use a library/service when:
- The problem is generic and already solved well: auth, retry policies, validation primitives, date/time, parsing, observability, payments, etc.
- The dependency is maintained, secure, licensed appropriately, and fits the architecture.
- It reduces long-term maintenance burden more than it increases integration risk.

Write custom code when:
- It is domain-specific business logic.
- Existing libraries are overkill, insecure, abandoned, poorly licensed, or too coupled.
- The behavior is security-sensitive and requires full control.
- The code is small, stable, and cheaper to own than a dependency.
- Performance or operational constraints require a tailored implementation.

Before adding a dependency, check:
- [ ] Security/vulnerability posture
- [ ] Maintenance activity
- [ ] License compatibility
- [ ] Transitive dependency weight
- [ ] Operational/runtime cost
- [ ] Testability and replacement path

## Clean Architecture / DDD Checklist

- [ ] Domain model uses ubiquitous language from the business.
- [ ] Domain/application logic is not embedded in controllers, UI components, jobs, or database adapters.
- [ ] Infrastructure implements interfaces/contracts defined inward where appropriate.
- [ ] Use cases/application services are cohesive and focused.
- [ ] Entities/value objects enforce meaningful invariants.
- [ ] Boundaries between bounded contexts are explicit.
- [ ] Cross-context communication uses stable contracts/events/APIs instead of direct model leakage.
- [ ] Persistence concerns do not dictate domain design unless the tradeoff is explicit.

## Separation of Concerns Checklist

- [ ] UI components do not contain business rules.
- [ ] Controllers/endpoints orchestrate; they do not own domain decisions.
- [ ] Database queries stay in repository/query/application/infrastructure areas according to project standards.
- [ ] Validation is located at the correct boundary: input shape, business invariant, or persistence constraint.
- [ ] Logging, telemetry, authorization, caching, and retries are consistent cross-cutting concerns, not scattered one-offs.

## Naming Guidance

Prefer names that describe business responsibility:

| Weak | Better direction |
|---|---|
| `utils` | Domain-specific module, e.g. `invoice-pricing`, `order-numbering` |
| `helpers` | Capability-specific service/function name |
| `common` | Explicit shared kernel/shared contract only if intentional |
| `manager` | More precise role: `Scheduler`, `Policy`, `Calculator`, `Resolver`, `Coordinator` |
| `data` | Specific model/DTO/query/result name |

Ask: “Would a new teammate understand the module’s responsibility from the name alone?”

## Code Quality Heuristics

These are heuristics, not absolute laws. Project standards win.

- Prefer early returns to reduce nesting when they improve readability.
- Avoid deep nesting; more than 3 levels usually deserves extraction or rethinking.
- Keep functions focused; large functions need a reason.
- Keep files cohesive; split large files when they contain multiple responsibilities.
- Remove duplication when it represents shared knowledge; tolerate small duplication when abstraction would be worse.
- Handle errors explicitly and consistently with the project’s error model.
- Avoid hidden side effects in helpers, mappers, computed properties, and extension methods.

## Anti-Patterns to Flag

- Business logic in UI/controller/transport layer
- Database schema leaking across all layers
- Generic helper dumping grounds
- Custom implementations of commodity security/auth/crypto/date/retry behavior without strong justification
- Framework types in domain entities/value objects
- Unbounded service classes doing unrelated orchestration
- Circular dependencies between modules
- Premature abstraction before the second real use case
- “Just one more flag” designs that should be polymorphism, strategy, or separate workflows
- Architecture changes without tests or migration strategy

## Architecture Review Output

Use this format when reviewing a design:

```markdown
## Architecture Review: [topic]

### Verdict
[Sound / Needs changes / Risky / Not enough context]

From CamiloAndresGTRUniandes/lucy-ai, Apache-2.0.

More from CamiloAndresGTRUniandes/lucy-ai

Signals

Stars
19
Forks
2
Open issues
0
Last commit (this folder)
Jul 29, 2026 (3 months ago)
Last release
Jul 31, 2026 (3 months ago)

From GitHub (fetched Oct 24, 2026).

Details

Version
1.1
License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from imported-and-adapted-by-lucy-camilo

Done for you

Rather not set it up yourself?

Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.

See how we build AI agents →Read the case studies

Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.

launches shipped
50+
launches shipped
media placements
500+
media placements
founders on every account
2
founders on every account

Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block

Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.

Get software-architecture running in your business

Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.

Goes to the Chalk Labs founders, not the newsletter. Privacy

Need help deploying software-architecture?

CallGet help
Cite this page

software-architecture skill. Agent Mart. https://agentmart.dev/skills/camiloandresgtruniandes-software-architecture (last updated 2026-10-24)