Communitygithub.com

rbikbov/frontend-starter

创建架构决策记录(ADR),记录关键技术决策的上下文、备选方案、权衡、后果及决策负责人。用于需记录“架构决策”、“技术选择”、“设计决策”或“ADR”的场景。

frontend-starter 是什么?

ADR Writer 是一个旨在帮助开发者和AI代理系统化记录技术架构决策的提示——即架构决策记录(ADRs)。此技能提供完整的结构化模板,包含上下文、决策声明、技术细节、备选方案、后果、风险及修订历史等部分。它强制要求清晰的文档规范,如状态工作流(提议 → 接受/拒绝 → 已实施/已弃用)、一致的编号规则(ADR-001、ADR-002等),并遵循如不超过2页、诚实描述权衡等最佳实践。该技能支持任何生成式AI或编码代理(如Claude Code、Cursor、Codex),通过标准化常见决策类型(技术选型、架构变更、标准、弃用)的模式及包含审查清单,确保ADR完整且可操作。最终输出为符合Markdown的、以英文书写的ADR文档,可供存储至版本控制中。

兼容平台✓Claude Code~Codex CLI~Cursor
npx skills add https://github.com/rbikbov/frontend-starter/tree/HEAD/.claude/skills/adr-writer

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

ADR 编写器

使用清晰的上下文、备选方案和后果记录架构决策。请用英文书写。

ADR 模板

# ADR-[编号]: [简短的决策标题]

**状态:** [提议 | 已接受 | 已弃用 | 被 ADR-XXX 取代]  
**日期:** [YYYY-MM-DD]  
**作者:** [姓名/昵称]

## 1. 上下文

我们正在解决什么问题?哪些因素影响它(业务目标、技术债务、预算)?
**约束条件:**

- [约束条件 1]
- [约束条件 2]

## 2. 决策

决策的简短陈述。核心论点。

## 3. 技术细节与机制

_自由格式部分。描述实现细节、数据结构、协议细节或关键框架特性。_

- [列表、API 描述、数据模式]
- [Mermaid 可视化(推荐用于复杂交互)]

## 4. 备选方案

### 4.1. [选项 1]

- **优点:** ...
- **缺点:** ...
- **决策:** [已拒绝/已考虑] (简短原因)。

## 5. 后果与风险

### 积极(优点)

- 这对系统/团队有何帮助?

### 消极/风险(缺点/风险)

- 我们接受哪些缺点?风险是什么?
- **缓解措施:** 我们将如何应对风险?

## 6. 修订历史

- **[日期]**: [变更说明] ([作者])
- **[日期]**: [例如:状态改为已接受] ([作者])

ADR 编号

ADR-001: 初始系统架构
ADR-002: 分析数据库选型
ADR-003: 认证策略
...

状态工作流

提议 → 已接受 → 已实施
    ↓
已拒绝

已接受 → 已弃用 → 被 ADR-XXX 取代

最佳实践

  1. 为重大决策编写 ADR:并非每个选择都需要 ADR
  2. 记录备选方案:表明你已考虑过其他选项
  3. 坦诚面对权衡:每个决策都有缺点
  4. 保持简洁:最多 1-2 页
  5. 更新状态:标记已弃用/已被取代的 ADR
  6. 关联相关 ADR:创建决策轨迹
  7. 包含后续行动:带负责人的待办事项
  8. 可视化:使用 Mermaid 图表展示架构和流程
  9. 为未来的读者编写,他们缺乏当前上下文
  10. 坦诚对待权衡(每个选择都有缺点)

常见模式

对于技术选型:

  • 聚焦技术能力与需求的匹配度
  • 如有性能基准测试,请包含在内
  • 记录团队的专业水平
  • 考虑运维复杂性

对于架构变更:

  • 在后果中包含迁移策略
  • 记录向后兼容性影响
  • 考虑过渡期间对团队速度的影响
  • 标注监控和回滚计划

对于标准和规范:

  • 包含标准在实际中的应用示例
  • 记录例外或逃生舱口
  • 考虑实施机制
  • 标注教育/入职影响

对于弃用:

  • 将状态设置为“已弃用”或“已被取代”
  • 链接到取代的 ADR
  • 记录日落时间线
  • 包含迁移指南

反模式

❌ 过于详细:没人读的 10 页 ADR ❌ 无备选方案:看起来决策是预先确定的 ❌ 缺失后果:忽视缺点 ❌ 无负责人:无人负责 ❌ 状态过期:旧的 ADR 标注为“提议”

审查清单

  • 上下文中清晰的问题陈述
  • 决策明确陈述
  • 考虑了 2 个以上的备选方案
  • 诚实评估了权衡
  • 记录了后果(积极和消极)
  • 识别了风险并包含缓解措施
  • 指定了决策负责人
  • 后续行动包含截止日期
  • 状态是最新的

输出清单

  • ADR 文档已创建
  • 上下文解释了问题
  • 决策已明确陈述
  • 记录了 2-3 个备选方案
  • 权衡部分已填写
  • 列出了后果(积极和消极)
  • 识别了风险并包含缓解措施
  • 决策日期和负责人
  • 后续行动已分配
  • 状态已设置

Individual skills in this repo

This repo contains 4 individual skills — each has its own dedicated page.

rbikbov/frontend-starter

Проверка фронтенд-кода и документации на «нейрослоп» перед коммитом, PR или публикацией репозитория: остатки генераторов, мёртвые и недоделанные опции, утверждения в README и комментариях, не подтверждённые кодом, маркетинговый тон и эмодзи, лишние абстракции, хрупкая обработка ошибок, персональные данные в логах, несуществующие классы стилей. Использовать, когда просят проверить код или репозиторий «на слоп», подготовить проект к публикации или показу, сделать ревью кода, написанного с помощью ИИ, или перед тем как закоммитить собственную большую правку.

rbikbov/frontend-starter

Процесс разработки фичи с агентом: PRD с Non-Goals → компактная спецификация → задачи по одной на коммит → read-only исследование → tracer bullet → сборка с тестом сначала → независимое ревью субагентом → проверка в браузере. Использовать, когда просят сделать фичу, экран, пользовательский сценарий или заметное изменение поведения; когда нужно написать PRD, спецификацию или разбить работу на задачи; когда работа больше одного коммита. Не использовать для опечаток и однострочных правок.

rbikbov/frontend-starter

Авторизация и сессия во фронтенде на Next.js (App Router): где хранить токены, BFF на route handlers с HttpOnly-cookie, refresh токена без гонок, определение «не авторизован» (включая GraphQL, который отвечает 200), проверки в proxy.ts и Data Access Layer, безопасный редирект после входа, выход без утечки данных прошлого пользователя, токены в ссылках сброса пароля, формы входа и восстановления. Использовать, когда проектируешь или пишешь вход, регистрацию, восстановление пароля, защищённые страницы, API-клиент с refresh-токеном, или ревьюишь такой код.

rbikbov/frontend-starter

Старт нового фронтенд-проекта на Next.js (App Router) + TypeScript: фундамент, который закладывается до первой фичи. Использовать, когда нужно: создать проект с нуля; решить, нужны ли Next.js, монорепо, BFF, микрофронтенды; разложить FSD поверх роутинга Next; завести строгий TS, линтер границ, env-конфиг, модель ошибок и API-клиент, тесты, git-хуки, CI, каркас README; навести порядок в молодом проекте после генератора.

相关技能