跳到正文
cccskills
免费在 GitHub 公开

adr

Consult, propose, review, or write Architecture Decision Records (ADRs) in doc/adr/

中文简介正在准备中。当前显示原文说明。

savoirfairelinux/jami-daemon星标 169(GitHub 169 + cccskills 0)

实测评分 未实测

查看安装方法

包含的文件(1)

  • SKILL.md4.0 KB

SKILL.md(原文)

安装前可以查看交给 AI 代理的指令内容。

Architecture Decision Records (ADRs)

ADRs record architecturally significant decisions and their rationale, in the style of Michael Nygard.

Directory structure

doc/adr/
├── INDEX.md                                       # Catalogue (read this first)
├── ADR-000-adopt-architecture-decision-records.md
└── ADR-NNN-short-slug.md

Workflow

Before doing anything

  1. Read doc/adr/INDEX.md.
  2. Open only ADRs whose title or status is relevant to the task. Never read or scan all of doc/adr/; search INDEX.md instead.
  3. Treat Accepted ADRs as constraints. If the work conflicts with one, tell the user.

Deciding whether an ADR is needed

Write one when the decision has long-term architectural impact, e.g. it:

  • sets or changes major component boundaries
  • affects protocols or external contracts (libjami API, wire formats, account or conversation storage formats)
  • sets persistence, synchronization, networking, media, concurrency, or lifecycle models
  • changes security or trust boundaries, or cross-platform architecture
  • selects a foundational dependency or subsystem strategy
  • is costly to reverse or carries non-obvious tradeoffs

Not for bug fixes, local implementation details, refactors, routine dependency upgrades, style, temporary workarounds, experiments, or matters already covered by an ADR or project rule. If a commit message or code comment preserves the reasoning, skip the ADR. Unsure: ask the user.

Creating an ADR

  1. Check INDEX.md that no existing ADR covers the decision.
  2. Take the next free number from INDEX.md.
  3. Create the file from the template below.
  4. Add its row to INDEX.md.
  5. Commit it with, or just before, the change it describes.

Merging an ADR accepts it unless its status says otherwise.

Updating an ADR

Fix typos, links, or clarifications in place. Do not change the decision of an Accepted ADR; supersede it. Update the INDEX.md row if the title or status changes.

Superseding an ADR

  1. Create a new ADR with **Supersedes:** [ADR-NNN](ADR-NNN-slug.md) under its metadata.
  2. In the old ADR, set **Status:** Superseded and add **Superseded by:** [ADR-NNN](ADR-NNN-slug.md).
  3. Update both rows in INDEX.md.

Use Deprecated when a decision no longer applies and nothing replaces it.

Retrospective ADRs

For decisions made before they were recorded (**Origin:** Retrospective):

  • Reconstruct only from evidence: Git history, Gerrit reviews, commit messages, docs, issues, tests, source structure, migration code.
  • Add a ## Historical evidence section citing it, and keep apart: facts shown by evidence, rationale documented at the time, and rationale reconstructed afterwards (label it as such).
  • Never invent rationale or dates. Use the precision available: 2023-06, 2023, or Unknown.
  • If the rationale would be mostly speculation, do not write the ADR.

File naming

ADR-NNN-short-kebab-slug.md
  • NNN: zero-padded, sequential in record creation order, not decision date order.
  • Slug: short summary of the decision. No retro/retrospective.
  • One decision per ADR.

ADR template

# ADR-NNN: Title

**Status:** Proposed | Accepted | Deprecated | Superseded
**Origin:** Contemporary | Retrospective
**Decision date:** YYYY-MM-DD | YYYY-MM | YYYY | Unknown
**Recorded:** YYYY-MM-DD

## Context

What forces or problem motivate this decision?

## Decision

What was decided?

## Consequences

What becomes easier or harder as a result?

Optional, only when useful: ## References, and ## Historical evidence for retrospective ADRs. Keep the record short.

Index format

INDEX.md holds one row per ADR, without summaries or rationale:

| ADR | Decision | Status | Origin | Decision date |
| --- | --- | --- | --- | --- |
| [ADR-NNN](ADR-NNN-slug.md) | Title | Accepted | Contemporary | 2026-10-07 |

评价

还没有评价。欢迎分享你的使用感受。

评论

无需登录即可发表。欢迎分享使用感受、提问,或说明在哪些环境下无法运行。

还没有评论。来写第一条吧。

提交后会立即公开。请勿填写邮箱、电话等个人信息。URL 最多 2 个。

0 / 1000 字

此表单受 reCAPTCHA 保护,适用 Google 的隐私权政策和服务条款。

同一仓库的技能

commit

免费

Commit changes to the repository

中文简介正在准备中。当前显示原文说明。

savoirfairelinux/jami-daemon1692026年10月30日 更新

contrib

免费

Build or work on Jami core dependencies (contrib system)

中文简介正在准备中。当前显示原文说明。

savoirfairelinux/jami-daemon1692026年10月30日 更新

查看 savoirfairelinux 的全部技能

报告此技能的问题