# Faion Software Architect

> Software architecture: system design, patterns, ADRs, quality attributes.

- Skill: `majiayu000/faion-software-architect` (Agent Skill, multi-file: 2 files)
- Install (CLI): `npx skillmds@latest add majiayu000/faion-software-architect`
- Raw SKILL.md: https://api.skillmd.com/api/skills/majiayu000/faion-software-architect/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: majiayu000 (https://skillmd.com/u/majiayu000)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/majiayu000/faion-software-architect

---

> **Entry point:** `/faion-net` — invoke this skill for automatic routing to the appropriate domain.

# Software Architect Skill

**Communication: User's language. Docs: English.**

## Purpose

Make informed architecture decisions balancing quality attributes (scalability, performance, security, maintainability) with business constraints (time, cost, team skills).

---

## Context Discovery

### Auto-Investigation

Detect existing architecture from project:

| Signal | How to Check | What It Tells Us |
|--------|--------------|------------------|
| ADRs | `Glob("**/adr/*.md")` or `Glob("**/docs/decisions/*")` | Architecture decisions documented |
| C4 diagrams | `Glob("**/*.dsl")` or `Grep("C4_", "**/*.puml")` | Architecture visualized |
| constitution.md | `Glob("**/.aidocs/constitution.md")` | Tech stack defined |
| docker-compose | `Glob("**/docker-compose*.yml")` | Service architecture |
| k8s manifests | `Glob("**/k8s/**/*.yaml")` | Kubernetes deployment |
| Multiple services | `Glob("**/services/*/")` | Microservices structure |
| Single app | `Glob("**/src/")` + no services | Monolith structure |

**Read existing architecture:**
- constitution.md for tech decisions
- Any existing ADRs
- docker-compose for service dependencies
- README for architecture overview

### Discovery Questions

#### Q1: Architecture Goal

```yaml
question: "What architecture decision do you need help with?"
header: "Goal"
multiSelect: false
options:
  - label: "Design new system architecture"
    description: "Starting from scratch or major redesign"
  - label: "Choose technology (database, framework, cloud)"
    description: "Technology selection decision"
  - label: "Document existing architecture"
    description: "Create ADRs, diagrams, docs"
  - label: "Evaluate/improve current architecture"
    description: "Review for issues, plan improvements"
  - label: "Migrate or refactor"
    description: "Move to new patterns or technologies"
```

#### Q2: Scale & Team Context

```yaml
question: "What's your scale and team context?"
header: "Context"
multiSelect: false
options:
  - label: "Solo/small team, MVP/early stage"
    description: "Speed matters, keep it simple"
  - label: "Growing team (5-15), scaling product"
    description: "Need modularity, some structure"
  - label: "Large team (15+), multiple teams"
    description: "Independent deployment, team boundaries"
  - label: "Enterprise, compliance requirements"
    description: "Security, audit, formal processes"
```

**Recommendation:**
- "Solo/MVP" → Monolith, simple tech stack
- "Growing" → Modular monolith, prepare for split
- "Large team" → Microservices, clear boundaries
- "Enterprise" → Formal architecture, ADRs, compliance

#### Q3: Quality Priorities (multiSelect)

```yaml
question: "What are your top quality priorities?"
header: "Priorities"
multiSelect: true
options:
  - label: "Scalability (handle growth)"
    description: "10x, 100x load handling"
  - label: "Performance (low latency)"
    description: "Fast response times"
  - label: "Availability (uptime)"
    description: "99.9%+ availability"
  - label: "Security (protect data)"
    description: "Compliance, threat protection"
  - label: "Maintainability (easy changes)"
    description: "Developer productivity"
  - label: "Cost efficiency"
    description: "Minimize infrastructure spend"
```

#### Q4: Constraints

```yaml
question: "What constraints do you have?"
header: "Constraints"
multiSelect: true
options:
  - label: "Limited budget"
    description: "Must minimize cloud costs"
  - label: "Small team / solo"
    description: "Can't manage complexity"
  - label: "Existing tech stack"
    description: "Must work with current systems"
  - label: "Compliance (HIPAA, SOC2, GDPR)"
    description: "Regulatory requirements"
  - label: "No major constraints"
    description: "Flexibility to choose"
```

---

## Quick Decision Reference

| If you need... | Use | File |
|----------------|-----|------|
| **Architecture style** for small team/MVP | Monolith or Modular Monolith | [monolith-architecture.md](monolith-architecture.md), [modular-monolith.md](modular-monolith.md) |
| **Architecture style** for large team | Microservices | [microservices-architecture.md](microservices-architecture.md) |
| **Database** for relational data | PostgreSQL/MySQL | [database-selection.md](database-selection.md) |
| **Database** for documents | MongoDB/DynamoDB | [database-selection.md](database-selection.md) |
| **Database** for cache | Redis | [caching-architecture.md](caching-architecture.md) |
| **API** for external devs | REST + OpenAPI | [patterns.md](patterns.md) |
| **API** for internal | gRPC | [patterns.md](patterns.md) |
| **Communication** async | Kafka/RabbitMQ | [event-driven-architecture.md](event-driven-architecture.md) |
| **Pattern** for distributed transactions | Saga | [distributed-patterns.md](distributed-patterns.md) |
| **Pattern** for resilience | Circuit Breaker | [distributed-patterns.md](distributed-patterns.md) |

---

## Methodologies (30)

**Fundamentals (5):** system-design-process | c4-model | architecture-decision-records | quality-attributes-analysis | trade-off-analysis

**Styles (5):** monolith-architecture | microservices-architecture | modular-monolith | serverless-architecture | event-driven-architecture

**Patterns (5):** creational-patterns | structural-patterns | behavioral-patterns | architectural-patterns | distributed-patterns

**Data (4):** data-modeling | database-selection | caching-architecture | data-pipeline-design

**Infrastructure (4):** cloud-architecture | container-orchestration | api-gateway-design | service-mesh

**Quality (4):** security-architecture | performance-architecture | reliability-architecture | observability-architecture

**Templates (3):** adr-template | quality-attributes | workflows

---

## Quality Attributes

**Scalability:** Handle 10x load? | **Performance:** p95 < 200ms? | **Availability:** 99.9%+ uptime? | **Security:** Threat model done? | **Maintainability:** Deploy daily?

**Framework:** [quality-attributes.md](quality-attributes.md) | **Analysis:** [quality-attributes-analysis.md](quality-attributes-analysis.md)

---

## C4 Model

| Level | Audience | Shows | File |
|-------|----------|-------|------|
| Context (C1) | Business | External systems, users | [c4-model.md](c4-model.md) |
| Container (C2) | Architects | Apps, databases, services | [c4-model.md](c4-model.md) |
| Component (C3) | Developers | Internal components | [c4-model.md](c4-model.md) |

---

## ADR Template

```markdown
# ADR-NNN: Title
## Status: Proposed/Accepted
## Context: Why needed?
## Decision: What we decided
## Consequences: Trade-offs
## Alternatives: Other options
```

**Full template:** [adr-template.md](adr-template.md)

---

## Workflows

**System Design:** Requirements → Scale estimation → High-level design → Components → Quality attributes → Documentation

**Technology Selection:** Define criteria → Research → Evaluate → Decide → Document ADR

**Full workflows:** [workflows.md](workflows.md)

---

*faion-software-architect v1.2*
*30 Methodologies*

