Skip to content
Back to skills

Architecture Designer

ASecurity

Design or redesign system structure from an inspection of the current code and architecture. Produce component, dependency, and data-ownership maps, tradeoffs, an architecture decision record (ADR) draft, and an incremental migration plan. Use for structural feature or system decisions. Do NOT use to choose the architecture style (architecture-advisor), design tenancy (saas-platform-architect), model domain concepts (domain-modeler), or record an already-made decision (adr-writer).

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 11, 2026
code-qualitygodockerdatabasesecurity

Security analysis

A100/100

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

Scanned September 28, 2026

npx -y skills add ModernNomad-98/Project-Aegis --skill architecture-designer --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Architecture Designer?

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

Security grade badge for Architecture Designer
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/modernnomad-98-architecture-designer/badge)](https://www.skillsdirectory.com/skills/modernnomad-98-architecture-designer)

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: architecture-designer
description: Design or redesign system structure from an inspection of the current code and architecture. Produce component, dependency, and data-ownership maps, tradeoffs, an architecture decision record (ADR) draft, and an incremental migration plan. Use for structural feature or system decisions. Do NOT use to choose the architecture style (architecture-advisor), design tenancy (saas-platform-architect), model domain concepts (domain-modeler), or record an already-made decision (adr-writer).
---

# Architecture Designer

Here, **CI** means continuous integration and **deps** means dependencies.
An **ADR** is an architecture decision record for a pivotal choice.

## Purpose

Produce a target architecture that is reachable from the real current one.
The deliverable is a set of maps (components, dependencies, data ownership),
named risks, an explicit tradeoff analysis, an ADR draft for the pivotal
decision, and a migration plan in reviewable increments. Designing from the
actual codebase — not from how the README says it works — is the core
discipline; the most expensive architecture documents are the ones describing
a system that does not exist.

## Use When

- Use when: asked "how should we structure X" — a new feature with structural
  weight, a subsystem redesign, a monolith/module/service question.
- Use when: a new integration or dependency needs a home and a boundary.
- Use when: a proposed change would alter who owns data or which direction
  dependencies point.
- Do NOT use when: the business concepts themselves are unclear — run
  `domain-modeler` first; structure follows meaning.
- Do NOT use when: the decision is already made and needs recording — that is
  `adr-writer` (this skill hands its ADR draft there).
- Do NOT use when: judging an existing design without proposing one — delegate
  to the `principal-architecture-reviewer` subagent.
- Do NOT use when: designing job retry, scheduling, or idempotency semantics —
  hand those to `background-job-orchestration-architect`.
- Do NOT use when: choosing the architecture style — that is
  `architecture-advisor`; this skill produces the concrete structure.
- Do NOT use when: designing tenancy — that is `saas-platform-architect`;
  this skill handles structure with no tenancy dimension.

## Inputs to Inspect

1. The actual code layout: top-level modules/packages, entry points, and the
   import/reference graph between them (sampled, not assumed).
2. Build and deploy artifacts: what actually ships together (workspaces,
   Dockerfiles, CI jobs) — deployment units are architecture facts.
3. Schema and data access: which modules read/write which tables or stores.
4. Existing ADRs, architecture docs, and diagrams — as claims to verify
   against the code, not as ground truth.
5. The domain model, if one exists; run `domain-modeler` first if core
   concepts are undefined.
6. Nonfunctional constraints stated by the human: scale, latency, team split,
   compliance, budget.

## Workflow

1. **Inspect current state first.** Map the real components, their
   dependencies (including direction), and data ownership from code and
   config. Where docs contradict code, record the drift as a finding.
2. **State the forces.** What is this design being asked to optimize —
   change isolation, team autonomy, latency, cost, operability? Rank them;
   an unranked list decides nothing.
3. **Draft the target component map:** components, responsibilities, allowed
   dependency directions, and the contract at each boundary (sync call,
   event, shared table — be honest about the last one).
4. **Assign data ownership:** every store/table gets exactly one owning
   component; readers go through its contract. Flag shared-write tables as
   the risks they are.
5. **Name coupling and cohesion risks** in the target: cycles, god
   components, chatty boundaries, distributed transactions, hidden coupling
   through the database.
6. **Run the tradeoff analysis:** at least two viable options compared across
   complexity, delivery speed, operability, cost, reversibility, and failure
   modes. Recommend one; say what would change the recommendation.
   Before asking the user to choose a build option, define unfamiliar terms,
   explain why each option is viable, and give case-specific pros and cons.
   Separate money, setup effort, delivery time, and ongoing upkeep; use $0
   when there is no direct purchase cost and label uncertain figures. Explain
   why the recommendation fits this system and team. End the choice
   presentation with one clear owner decision question; do not pick the
   option silently.
7. **Draft the ADR** for the pivotal decision (context, decision,
   alternatives, consequences) — hand to `adr-writer` for completion with
   rollback plan and review date. Steps 7–8 are drafted for the recommended
   option and marked pending the owner's answer.
8. **Write the migration plan:** ordered, individually shippable increments
   from current to target, each with a verification step and a stop point.
   "Big-bang rewrite" is not a migration plan.

## Output Format

```
ARCHITECTURE DESIGN — <scope>
Current state (inspected): components, dependencies, data ownership;
  drift found between docs and code
Forces (ranked): <what this design optimizes, in order>
Target component map: <component — responsibility — allowed deps — boundary contract>
Data ownership map: <store/table → owning component; flagged shared writes>
Coupling/cohesion risks: <each with consequence>
Options considered: <plain-language meaning and reason for A vs B (vs C);
  pros/cons; money, setup, delivery-time, upkeep costs; complexity,
  reversibility, failure modes>
Recommendation: <option + why it fits + what would change it>
ADR draft: <context, decision, alternatives, consequences> → adr-writer
Migration plan: <increment → verification → stop point>, order matters
Assumptions & open questions: <each with risk-if-wrong / who answers>
```

## Validation Checklist

- [ ] Current-state map cites real files/modules inspected — not reconstructed
      from docs or memory.
- [ ] Doc-vs-code drift, if found, is listed as a finding.
- [ ] Every target boundary names its contract type; shared-database coupling
      is declared, not hidden.
- [ ] Every data store has exactly one owner in the target map.
- [ ] At least two options genuinely compared; the recommendation names its
      reversal condition.
- [ ] Any user-facing build choice explains terminology, reason for each
      option, pros/cons, costs including time and upkeep, and the recommended
      fit before asking the user to decide.
- [ ] Migration plan increments are individually shippable and verifiable.
- [ ] No implementation performed — this skill designs; it does not restructure
      code.

## Gotchas

- The README architecture and the import graph disagree more often than not;
  the import graph is the one running in production.
- "Extract a service" answers a team/deployment problem, not a code-quality
  problem — check which one the human actually has.
- Two components sharing write access to one table are one component with
  extra steps; no diagram fixes that until ownership is assigned.
- Designing for imagined scale adds real complexity for hypothetical load;
  tie every scale-driven choice to a stated number.
- A migration plan whose first increment is "refactor everything" will never
  ship increment two.

## Stop Conditions

- Core domain concepts are undefined or contested → stop; run
  `domain-modeler` (or `source-of-truth-reconciler` if sources conflict).
- The design would change security, tenant-isolation, or data-handling
  posture → surface via `human-approval-boundary` before recommending.
- Constraints are missing that would flip the recommendation (team size,
  latency budget, compliance) → ask; do not pick a default silently.
- The human asks to implement the design in the same pass → the migration
  plan's increment 1 becomes a separate, scoped task; confirm before touching
  code.

## Supporting Files

- [references/architecture-artifacts.md](references/architecture-artifacts.md) —
  quality bars for each map, contract-type catalog, tradeoff table template,
  and migration-increment patterns.
- `evals/evals.json` — trigger + behavior cases.
- `evals/trigger-evals.json` — discrimination against `domain-modeler` and
  `adr-writer` (design cluster).

Files in this skill

  • SKILL.md7.2 KB
  • evals/evals.json2.9 KB
  • evals/trigger-evals.json1.6 KB
  • references/architecture-artifacts.md2.8 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…