architecture-decisions

Use when making significant, hard-to-reverse technical decisions to document context, rationale, and consequences as Architecture Decision Records (ADRs)

8 stars

Best use case

architecture-decisions is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use when making significant, hard-to-reverse technical decisions to document context, rationale, and consequences as Architecture Decision Records (ADRs)

Teams using architecture-decisions should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/architecture-decisions/SKILL.md --create-dirs "https://raw.githubusercontent.com/drvoss/everything-copilot-cli/main/skills/documentation/architecture-decisions/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/architecture-decisions/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How architecture-decisions Compares

Feature / Agentarchitecture-decisionsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use when making significant, hard-to-reverse technical decisions to document context, rationale, and consequences as Architecture Decision Records (ADRs)

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# Architecture Decision Records (ADR)

## When to Use

- 되돌리기 어렵거나 비용이 큰 기술적 결정을 내릴 때
- 기술 스택, 인프라, 데이터 모델, API 설계 변경
- 팀 내 합의가 필요한 아키텍처 논의
- 미래의 팀원이 "왜 이렇게 했지?"라고 물을 것 같은 결정

> `cross-session-memory` 스킬과 연계: ADR을 Copilot의 세션 간 지식으로 활용

## DO NOT use when

- 일상적인 구현 결정 (어떤 변수명을 쓸지 등)
- 명확히 옳은 선택이 있는 경우

## Prerequisites

- 결정해야 할 기술적 선택지가 2개 이상 있음
- 팀에 결정 내용을 전달해야 하거나, 나중에 이 결정의 근거가 필요한 상황
- `docs/decisions/` 디렉토리 (없으면 생성)

## Workflow

### 1. ADR 파일 생성

```bash
# ADR 디렉토리 확인 또는 생성
ls docs/decisions/ 2>/dev/null || echo "docs/decisions 생성 필요"

# 다음 번호 확인
ls docs/decisions/*.md 2>/dev/null | wc -l
```

파일명: `docs/decisions/NNN-decision-title.md` (예: `001-use-postgresql.md`)

### 2. ADR 작성 형식

```markdown
# ADR-{NNN}: {결정 제목}

**날짜**: YYYY-MM-DD  
**상태**: Proposed | Accepted | Deprecated | Superseded by ADR-NNN

## Context (배경)
이 결정이 필요하게 된 상황, 제약 조건, 고려해야 할 영향 요소들.

## Decision (결정)
우리가 내린 결정과 그 이유. 능동태, 현재 시제 사용.

## Options Considered (검토한 대안)
| 옵션 | 장점 | 단점 |
|------|------|------|
| A    | ...  | ...  |
| B    | ...  | ...  |
| 선택한 옵션 | ... | ... |

## Consequences (결과)
- **긍정적**: 이 결정으로 얻는 것
- **부정적**: 감수해야 할 트레이드오프
- **중립적**: 추가로 필요한 작업

## References
- 관련 이슈, PR, 외부 자료 링크
```

### 3. ADR 상태 관리

결정이 변경될 때:

```markdown
**상태**: Superseded by [ADR-005](005-new-decision.md)
```

새 ADR에서 이전 결정을 참조:

```markdown
**상태**: Accepted (Supersedes [ADR-002](002-old-decision.md))
```

### 4. COPILOT-INSTRUCTIONS.md에 연결

중요한 ADR은 Copilot에게 미리 알림:

```markdown
## Key Architecture Decisions
- [ADR-001](docs/decisions/001-postgresql.md): PostgreSQL 선택 이유
- [ADR-003](docs/decisions/003-api-versioning.md): API 버전 전략
```

## Common Rationalizations

| Rationalization | Reality |
|----------------|---------|
| "결정이 명확하니까 문서가 필요 없다" | 6개월 후 팀원이 그 결정에 의문을 가질 것이다. 명확한 결정일수록 기록하기 쉽다. |
| "코드를 보면 알 수 있다" | 코드는 '무엇'을 말하지만 '왜'를 말하지 않는다. ADR은 '왜'를 기록한다. |
| "나중에 쓰겠다" | 결정 시점에서 멀어질수록 컨텍스트를 잃는다. 결정 즉시 기록한다. |

## Red Flags

- "왜 이 라이브러리를 쓰는지 아무도 모른다"
- 이미 시도했다가 실패한 접근법을 팀이 다시 시도하려 함
- 아키텍처 회의에서 같은 논쟁이 반복됨

## Verification

- [ ] ADR 파일이 `docs/decisions/` 에 번호 형식으로 존재
- [ ] 모든 4개 필수 섹션 작성됨 (Context, Decision, Consequences, 상태)
- [ ] 검토한 대안이 기록됨
- [ ] 관련 PR 또는 이슈에서 ADR 링크됨

## Tips

- 완벽한 ADR보다 존재하는 ADR이 낫다 — 짧아도 된다
- `council` 스킬의 4-voice adversarial 결정 과정을 ADR Options Considered에 기록한다
- ADR 인덱스를 `docs/decisions/README.md`로 유지하면 탐색이 쉽다

Related Skills

improve-codebase-architecture

8
from drvoss/everything-copilot-cli

Use when a codebase feels hard to change, test, or navigate — surface architectural friction, identify deeper module seams, and walk one candidate into a concrete refactoring direction.

verification-before-completion

8
from drvoss/everything-copilot-cli

Use before claiming any task is done — run the exact command that proves the fix works, read the output, and only then report success.

using-git-worktrees

8
from drvoss/everything-copilot-cli

Use when you need multiple branches checked out at once — create isolated working directories for parallel development without cloning the repository repeatedly

triage

8
from drvoss/everything-copilot-cli

Use when a single issue needs structured triage — classify it, reproduce if needed, request missing information, and leave a durable brief or close-out note in the tracker.

to-issues

8
from drvoss/everything-copilot-cli

Use when a plan, spec, or PRD must become an actionable backlog — break it into thin dependency-aware issues that each deliver a verifiable vertical slice

sprint-workflow

8
from drvoss/everything-copilot-cli

Use when starting a new feature, refactor, or multi-step dev task — runs the full sprint cycle (Think → Plan → Build → Review → Test → Ship → Monitor) using Copilot CLI's plan/autopilot modes.

sprint-retro

8
from drvoss/everything-copilot-cli

Use at the end of a sprint to run a data-driven retrospective — analyzes session history and git metrics to surface what shipped, what slowed you down, and concrete improvements.

security-audit

8
from drvoss/everything-copilot-cli

Use when a codebase needs a formal security audit beyond a quick scan — applies OWASP Top 10 and STRIDE threat modeling from a CSO perspective to surface systemic vulnerabilities.

release

8
from drvoss/everything-copilot-cli

Use when a sprint or feature is complete and ready to ship — tags the version, generates GitHub Release notes, runs rollout or smoke verification, and publishes to npm/PyPI/Docker registries.

prompt-optimizer

8
from drvoss/everything-copilot-cli

Use when a rough prompt, vague idea, or task description needs to become a finished copy-pasteable prompt for a chat-based LLM - rewrite it into one ready-to-send prompt with no blanks, no placeholders, and a clear output shape.

outside-voice

8
from drvoss/everything-copilot-cli

Use when you need an independent second opinion before, during, or after implementation — run challenge, consult, or review mode in a direct builder-to-builder voice

llm-wiki

8
from drvoss/everything-copilot-cli

Use when research or domain knowledge keeps getting rediscovered across sessions — build a supplementary markdown wiki that compounds synthesized knowledge without replacing GitHub or committed project guidance