record
GitHub用于记录架构决策(ADR)并同步更新相关需求与系统设计。当涉及长期约束、公共契约或重大权衡时自动触发,确保文档一致性与可追溯性。
Trigger Scenarios
Install
npx skills add kdlbs/kandev --skill record -g -y
SKILL.md
Frontmatter
{
"name": "record",
"description": "Keep durable architecture decisions, requirements, and system designs in sync. Auto-invoke when a request establishes or changes a long-lived boundary, public contract, ownership rule, operational invariant, or repo-wide convention with meaningful alternatives. Also use for explicit ADR or specification-recording requests."
}
Record Knowledge
Record significant decisions for future work. Reconcile the affected requirements and system designs after the decision.
Record a decision
Create an ADR when all statements are true:
- The choice creates a durable constraint, boundary, contract, ownership rule, operational invariant, or repository-wide convention.
- Meaningful alternatives have different trade-offs.
- Future work must follow or supersede the choice.
- A requirement, system design, test, or work order does not preserve enough rationale.
Do not create an ADR for a simple feature, local refactor, routine dependency change, plan sequence, or temporary migration step.
ADR procedure
- Choose an ID in the form
YYYY-MM-DD-short-title. - Make sure that
docs/decisions/<id>.mddoes not exist. - Create the ADR with the template below.
- Run
python3 scripts/list-docs.py decisions --format pathsto confirm the new ADR is discoverable. Do not edit a catalog row. - Reconcile affected specifications.
Existing numeric ADR IDs remain valid. Do not rename them.
# ADR-YYYY-MM-DD-short-title: Short title
**Status:** accepted | superseded by <adr-id> | deprecated
**Date:** YYYY-MM-DD
**Area:** backend | frontend | infra | protocol | workflow
## Context
Explain the situation and the need for a decision.
## Decision
State the selected rule, boundary, or contract.
## Consequences
State benefits, costs, and follow-up constraints.
## Alternatives Considered
State each meaningful alternative and why it was not selected.
Reconcile specifications
Read docs/specs/README.md, the owning system README.md, and the relevant
files in docs/specs/guide/. Use the catalog command to locate the owning
requirements and designs.
Apply these rules:
- Confirm the owning system from the durable contract. Do not assign ownership to UI only because users observe the decision there.
- If the decision changes observable behavior, update the owning requirement
and its
REQ-*orAC-*criteria. - If the decision changes technical boundaries or contracts, update the owning system design.
- If both change, update both artifacts and preserve their references.
- If the decision is internal and does not change a documented design, the ADR is sufficient.
- If no product system applies, state that fact in the ADR.
Do not copy the ADR into requirements or system design. Link the ADR from the affected design. Requirements contain observable outcomes, not decision rationale.
During legacy migration, use this command to locate existing sources:
python3 scripts/list-docs.py specs --kind legacy --format paths
Do not create a new generic spec.md file.
Validation
Run:
python3 scripts/lint-spec-files.py --all
python3 scripts/list-docs.py validate
git diff --check -- docs/decisions docs/specs
Report the ADR, affected requirement IDs, affected system designs, and the validation result.
Version History
-
d324d49
Current 2026-09-22 09:46
将 ADR 索引管理从手动编辑 INDEX.md 改为通过脚本 list-docs.py 自动确认和验证,提升文档发现性和一致性。
-
0e4ae86
2026-08-27 18:29
收紧规格所有权定义,明确遗留迁移期间的索引使用规则;强化系统导向的规格治理,区分可观察行为与技术边界对需求/设计文档的不同影响。
- b4239d8 2026-07-24 17:32


