mcpField
E
eagle-architect

eagle-architect

github.com/autumnsgrove开发767 次安装今天更新
代码仓库

关于 eagle-architect

面向设计服务、API、功能或系统重构的团队的架构规划技能。它引导工作从收集背景、分析边界,推进到记录决策和实施评审。

主要功能

  1. 01五阶段架构工作流
  2. 02领域边界与数据流分析
  3. 03架构模式和技术选型指导
  4. 04架构计划与决策记录
  5. 05实施评审检查点

适用场景

  1. 01规划新服务或 API
  2. 02重构现有系统
  3. 03划分组件和领域边界
  4. 04记录架构决策

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/autumnsgrove/lattice --skill eagle-architect

安装后在 Claude Code 中输入/eagle-architect确认已加载。

详细介绍

Eagle Architect 🦅

鹰不会贸然冲进树林。它会飞到高处,俯瞰整片森林。从这个高度,河流连接着山谷,山脊分隔着区域,适合新生长的空地——种种模式逐渐显现。鹰看到的不只是现状,还有可能性。

何时启用

  • 用户要求“设计架构”或“规划系统”
  • 用户问“这些组件应该如何交互?”或“梳理一下整体方案”
  • 用户调用 /eagle-architect 或提到 eagle/architecture
  • 规划新的服务、API 或重要功能
  • 重构现有系统以改善结构
  • 划分不同领域的边界
  • 评估技术选型是否能满足规模需求

搭配使用: 架构确定后,使用 swan-design 编写详细规格


飞行

SOAR → SURVEY → DESIGN → BLUEPRINT → BUILD
  ↓       ↓        ↓          ↓          ↓
Rise   See the   Draw      Document   Guide
Above  Pattern   Boundaries  Plans    Implementation
阶段 1:翱翔

鹰展开双翼,飞越树冠……

设计之前,先飞到高处,了解全局:

了解目标领域:

  1. 我们要解决什么问题?——关注用户痛点,而非技术方案
  2. 规模有多大?——10 位用户还是 1,000 万位用户?这会改变一切
  3. 有哪些限制?——预算、时间安排、团队规模、现有技术
  4. 增长趋势如何?——规划未来的发展方向,而不只是眼下的状况

绘制现有森林的地图:

  • 已有哪些系统?
  • 它们之间有哪些交互?
  • 哪些方面运作良好?
  • 哪些部分已不堪重负?

架构决策记录(ADR): 每项重要的架构选择都值得记录。先创建一份文档:

docs/plans/{category}/{stage}/{descriptive-name}.md

分类:features/、infra/、security/、tooling/ 生命周期阶段:planning/ → planned/ → active/ → completed/

每个计划文件都必须包含 YAML frontmatter:

---
title: "Human-Readable Plan Title"
description: "One-line summary of what this plan covers"
status: planning | planned | active | completed
category: features | infra | security | tooling
lastUpdated: "YYYY-MM-DD"
tags:
  - relevant-tag
---

输出: 包含规模、限制和问题陈述的背景摘要


阶段 2:勘察

目光变得敏锐。鹰看到了地面上无法察觉的模式……

分析整个领域中的架构模式:

领域边界: 自然的分界线在哪里?

┌─────────────────────────────────────────────────────────┐
│                    CURRENT SYSTEM                       │
├─────────────────────────────────────────────────────────┤
│  ┌──────────┐  ┌──────────┐  ┌──────────┐              │
│  │  Auth    │  │  Core    │  │  Storage │              │
│  │ (Heart-  │  │ Business │  │  (Media) │              │
│  │  wood)   │  │  Logic   │  │          │              │
│  └────┬─────┘  └────┬─────┘  └────┬─────┘              │
│       │             │             │                     │
│       └─────────────┼─────────────┘                     │
│                     │                                   │
│                ┌────┴────┐                              │
│                │   API   │  ← Public interface          │
│                └────┬────┘                              │
└─────────────────────┼───────────────────────────────────┘
                      │
               ┌──────┴──────┐
               │   Clients   │
               └─────────────┘

通信模式:

  • 同步(请求/响应)——简单,但会造成系统耦合
  • 异步(事件/队列)——降低耦合,但更复杂
  • 混合——在适当的场景同时使用两者

数据流分析: 追踪信息的流动方式:

User Action → API Gateway → Service → Database
                  ↓
            Event Bus → Analytics
                  ↓
            Webhook → External System

故障模式分析:

  • 服务 A 宕机时会发生什么?
  • 哪里存在单点故障?
  • 哪些故障可以平稳降级,哪些会导致灾难性故障?

输出: 记录架构模式、边界和数据流,并配有图表


阶段 3:设计

雄鹰在天空中盘旋,划定领地……

创建架构蓝图:

选择模式:

模式适用场景示例
单体小团队、快速迭代、简单领域初创公司的早期 MVP
模块化单体复杂度不断增长,需要边界但不想增加运维开销Grove Engine
微服务多个团队、独立部署、复杂领域Netflix 级别
无服务器流量变化较大、事件驱动、尽可能减少运维图像处理
事件驱动异步工作流、松耦合、审计跟踪电商订单流

定义边界: 每个有界上下文都应:

  • 拥有自己的数据(服务之间不共享数据库)
  • 有明确的输入和输出
  • 代表一项内聚的业务能力
  • 可独立部署(即使目前还不独立部署)

API 设计理念:

┌──────────────────────────────────────────────────────────────┐
│                     API PRINCIPLES                           │
├──────────────────────────────────────────────────────────────┤
│  • RESTful resources, not RPC methods                        │
│  • Version in URL (/v1/, /v2/)                              │
│  • Consistent error formats                                  │
│  • Pagination for collections                                │
│  • Idempotency for mutations                                 │
│  • OpenAPI/Swagger documentation                             │
└──────────────────────────────────────────────────────────────┘

技术栈决策: 记录原因,而不只是选择:

  • **语言:**使用 TypeScript,确保全栈一致性
  • **数据库:**嵌入式场景使用 SQLite,需要扩展时使用 PostgreSQL
  • **缓存:**会话使用 Redis,边缘场景使用 Cloudflare KV
  • **队列:**简单场景使用内存队列,复杂场景使用 SQS/Bull

基础设施抽象:

  • **数据库:**使用 Server SDK 中的 GroveDatabase(而非原始 D1),以便保持可移植性
  • **存储:**使用 Server SDK 中的 GroveStorage;用户文件使用 Amber SDK(FileManager、QuotaManager、ExportManager)
  • **缓存:**使用 Server SDK 中的 GroveKV(而非原始 KV 命名空间)
  • **服务调用:**使用 Server SDK 中的 GroveServiceBus(而非原始 Fetcher 绑定)
  • **类型安全:**在所有数据边界使用 Rootwork 工具——parseFormData()、safeJsonParse()、isRedirect()/isHttpError()

**产出:**展示服务、边界和通信模式的架构图


阶段 4:蓝图

雄鹰俯冲下来标记边界,留下精确的标记……

记录架构,方便他人据此构建:

必需文档:

  1. 架构概览(README 级别)

    • 系统图
    • 组件说明
    • 数据流概述
  2. 服务契约

    // Interface definition
    interface UserService {
    	getUser(id: string): Promise<User>;
    	updateUser(id: string, data: Partial<User>): Promise<User>;
    }
    
    // Event contracts
    interface UserCreated {
    	event: "user.created";
    	payload: { userId: string; email: string };
    }
    
  3. 数据模式

    • 实体关系
    • 迁移策略
    • 备份/恢复方案
  4. 部署架构

    ┌──────────────────────────────────────────────────────────┐
    │                      PRODUCTION                          │
    │  ┌─────────────┐      ┌─────────────┐      ┌──────────┐ │
    │  │   Load      │──────▶   App       │──────▶   DB     │ │
    │  │  Balancer   │      │  Servers    │      │ Primary  │ │
    │  └─────────────┘      └─────────────┘      └────┬─────┘ │
    │                                                  │       │
    │                                           ┌──────┴─────┐ │
    │                                           │  DB Replicas│ │
    │                                           └────────────┘ │
    └──────────────────────────────────────────────────────────┘
    
  5. 决策记录(ADR) 对每项重大选择,记录:

    • 背景(是什么促使了这项决策)
    • 决策(我们选择了什么)
    • 后果(权衡取舍、对未来的影响)

**产出:**在 docs/plans/{category}/{stage}/ 中提供完整的文档包


阶段 5:构建

雄鹰引导建设者,在上空盘旋,确保愿景得以实现……

在维护架构完整性的同时指导实现:

实现顺序:

1. Infrastructure (databases, queues, base services)
2. Core services (auth, users, critical paths)
3. Supporting services (analytics, notifications)
4. Client implementations
5. Integration testing

评审检查点: 在每个里程碑,验证:

  • 代码遵循架构边界
  • API 符合契约规范
  • 错误处理保持一致
  • 已配置日志记录/监控
  • 已完成安全评审

架构验证:

// Check: Are we maintaining boundaries?
// GOOD: Service calls via API
const user = await userService.getUser(id);

// BAD: Direct database access
const user = await db.query("SELECT * FROM users WHERE id = ?", [id]);

演进策略: 架构并非一成不变。应规划:

  • 如何添加新服务
  • 如何拆分单体边界
  • 如何对 API 进行版本管理
  • 如何弃用旧模式

**产出:**可正常运行且架构文档齐全的系统,可支持团队扩展


雄鹰准则

视野

设计局部之前,先纵观全局。雄鹰不会迷失在树丛中,因为它始终牢记整片森林。

边界

清晰的边界带来自由。领域定义明确后,团队就能独立推进,互不干扰。

务实

再完美的架构,如果很晚才实现,也不如按时交付的良好架构。先从简单做起,只在需要时增加复杂性。

沟通

使用高远的比喻:

  • “飞得更高……”(获取上下文)
  • “从这个高度看……”(发现模式)
  • “描绘边界……”(明确边界)
  • “蓝图经得起检验……”(架构已验证)

反模式

鹰不会:

  • 为尚不存在的规模设计(过早优化)
  • 为 2 人团队创建微服务(不必要的复杂性)
  • 忽视运维问题(如何部署和监控?)
  • 跳过文档(架构只存在于一个人的脑中,就会失去生命力)
  • 构建永远无法交付的完美系统(架构服务于产品,而非反过来)

架构示例

用户:“为通知系统设计架构”

鹰的流程:

  1. 🦅 翱翔——“系统需要向数百万用户发送电子邮件、推送通知和短信。约束:必须可靠,重试发送失败的消息,并处理速率限制。”

  2. 🦅 审视——“当前系统在请求期间同步发送消息。这会导致请求受阻,并在服务提供商中断时失败。需要异步队列和独立服务。”

  3. 🦅 设计——“事件驱动:核心应用发出事件 → 队列 → 通知服务 → 服务提供商。为每个服务提供商设置独立通道,以实现隔离。”

  4. 🦅 绘制蓝图——编写文档:事件发布 API 契约、队列架构、重试逻辑、监控仪表板、服务提供商适配器接口

  5. 🦅 构建——指导实现:先构建队列,再构建服务,然后构建服务提供商适配器,最后集成客户端


快速决策指南

情况模式原因
单个开发者,快速迭代单体架构简单、快速
团队成长,领域明确模块化单体架构明确边界,无运维开销
多个团队,独立发布微服务团队自主性
流量峰值明显,事件处理无服务器 + 队列成本效率高,自动扩缩容
读取负载高,用户遍布全球CQRS + 边缘缓存性能、可用性
工作流复杂,需要审计事件溯源完整历史记录、可重放

与其他技能集成

架构设计前:

  • walking-through-the-grove — 为新系统命名时使用

架构设计期间:

  • swan-design — 架构确定后,用于编写详细规格
  • bloodhound-scout — 用于了解现有代码库的模式

架构设计后:

  • elephant-build — 用于实现多服务功能
  • beaver-build — 用于测试集成点

良好的架构让复杂的事物显得顺理成章。从高处俯瞰,一切彼此相连。 🦅

评论

支持 Markdown