Skip to content

Commit bda0794

Browse files
trz-21claude
andcommitted
docs: 작업 흐름을 GitHub Issue/PR/Wiki 모델로 전환
- CLAUDE.md: 문서 구조/워크플로우를 이슈→작업→PR→Wiki 4단계로 개정, 스펙 canonical을 GitHub Wiki로 이동 - .claude/github-workflow.md: 신규. issue/PR/wiki 구체 절차(gh, 브랜치 규칙) - .claude/dod.md, commit-rules.md: PR/브랜치 규칙, 작업로그→PR, 스펙→Wiki - 강제 훅 조정: - check-plan-on-edit: docs/plans 강제 → main 직접 소스 수정 차단(이슈 브랜치 유도) - check-docs-on-stop: works/spec 로컬 강제 제거, cargo check 안전망만 유지 - spec-sync-check: specification/ → Wiki 갱신 리마인드 Refs #18 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 95ed577 commit bda0794

7 files changed

Lines changed: 214 additions & 72 deletions

File tree

.claude/commit-rules.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
```
1212
<type>: <subject>
1313
14-
[optional body]
14+
[optional body — 관련 이슈는 Refs #N / #N 으로 참조]
1515
1616
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1717
```
@@ -34,6 +34,15 @@ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
3434
- 서로 독립적인 변경은 **별도 커밋**
3535
- `.env`, `.env.prod`, 시크릿 파일은 **절대 커밋 금지**
3636

37+
## 브랜치 / PR (GitHub 작업 흐름)
38+
39+
상세: `.claude/github-workflow.md`
40+
41+
- 작업은 `main` 직접 커밋 대신 **이슈 기반 브랜치**에서: `feature/issue-<N>-<slug>` (fix는 `fix/issue-<N>-<slug>`)
42+
- 완료 시 **PR**로 올린다. PR 본문 첫 줄에 **`Closes #N`** → 머지 시 이슈 자동 종료
43+
- PR 본문이 작업 로그 역할 (변경 요약 / 검증 / 주요 결정)
44+
- 루트 단일 레포 → 프로젝트 루트에서 커밋 (backend/frontend는 별도 레포 아님)
45+
3746
## 푸시
3847

39-
사용자가 명시적으로 요청할 때만 푸시한다.
48+
사용자가 명시적으로 요청할 때만 푸시한다 (`git push`, PR 생성 포함).

.claude/dod.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,11 @@
44

55
## 체크리스트
66

7+
- [ ] **이슈**: 작업 단위가 GitHub Issue로 등록돼 있다 (`#N`) — `.claude/github-workflow.md`
78
- [ ] **컴파일/타입**: `cargo check` (BE) / `npm run type-check` (FE) 통과
89
- [ ] **테스트**: `cargo test` (BE) / `npm test -- --run` (FE) 전체 통과
9-
- [ ] **작업 로그**: `docs/works/YYYYMMDD-[작업명].md` 작성
10-
- [ ] **스펙 동기화**: 기능/설계 변경 시 `specification/` 해당 파일 업데이트
10+
- [ ] **작업 로그**: **PR 본문**`Closes #N` + 작업 요약 (기존 `docs/works` 대체)
11+
- [ ] **스펙 동기화**: 기능/설계 변경 시 **GitHub Wiki** 해당 페이지 업데이트
1112
- [ ] **커밋**: 작업 단위로 git commit (`.claude/commit-rules.md` 참조)
1213

1314
## 검증 명령어
@@ -30,5 +31,5 @@ npm test -- --run
3031
메인이 서브에이전트 완료 후 직접 검증해야 한다:
3132

3233
1. 해당 명령어 실행 (cargo check, npm run type-check, cargo test, npm test -- --run)
33-
2. `docs/works/YYYYMMDD-*.md` 오늘 날짜 파일 존재 확인
34+
2. 작업이 GitHub Issue(`#N`)에 연결돼 있고, 완료 시 PR(`Closes #N`)로 기록되는지 확인
3435
3. 모두 통과 시에만 작업 완료 처리

.claude/github-workflow.md

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
# GitHub 작업 흐름 (Issue → 작업 → PR → Wiki)
2+
3+
문서화는 로컬 `docs/` 대신 **GitHub Issue / PR / Wiki**를 적극 활용한다.
4+
모든 작업 단위는 아래 4단계를 **순서대로** 따른다.
5+
6+
```
7+
1. 이슈 등록 → 2. 작업(harness) → 3. PR(Closes #N) → 4. Wiki 업데이트
8+
```
9+
10+
- 레포: `boostcampwm-snu-2026-1/ServiceForSmallCommerce-taeyoon`
11+
- 도구: `gh` CLI (인증됨), Wiki는 `*.wiki.git` 클론
12+
13+
---
14+
15+
## 1단계: 이슈 등록 (기존 `docs/plans` 대체)
16+
17+
작업을 시작하기 **전에** GitHub Issue로 작업 단위를 등록한다.
18+
`/task-with-harness`의 "구현 계획"이 곧 이슈 본문이 된다.
19+
20+
```bash
21+
gh issue create \
22+
--title "<작업 제목>" \
23+
--body "$(cat <<'EOF'
24+
## 목표
25+
<무엇을, 왜>
26+
27+
## 작업 항목
28+
- [ ] 서브태스크 1 (대상 파일)
29+
- [ ] 서브태스크 2
30+
31+
## 영향 범위
32+
- BE / FE / 문서
33+
34+
## 테스트 전략
35+
- <harness 관점: 단위/통합 테스트, 커버리지>
36+
EOF
37+
)"
38+
```
39+
40+
- 반환된 이슈 번호(`#N`)를 브랜치/PR에서 참조한다.
41+
- 큰 작업은 서브태스크 체크박스로 분해해 진행 상황을 이슈에서 추적한다.
42+
43+
---
44+
45+
## 2단계: 작업 (브랜치 + harness)
46+
47+
이슈 기반 브랜치를 만들고 `/task-with-harness`로 구현한다.
48+
49+
```bash
50+
git checkout -b feature/issue-<N>-<slug>
51+
```
52+
53+
- 브랜치 네이밍: `feature/issue-<N>-<slug>` (fix는 `fix/issue-<N>-<slug>`)
54+
- harness 검증(컴파일/테스트/커버리지)은 `.claude/dod.md` 기준 그대로 유지한다.
55+
- 커밋 규칙은 `.claude/commit-rules.md`. 커밋 메시지 본문에 `Refs #N` 또는 `#N`을 남긴다.
56+
- **루트 단일 레포**이므로 프로젝트 루트에서 커밋한다 (backend/frontend는 별도 레포 아님).
57+
58+
---
59+
60+
## 3단계: 이슈 기반 PR (기존 `docs/works` 대체)
61+
62+
작업이 DoD를 충족하면 PR을 올린다. **PR 본문이 작업 로그 역할**을 한다.
63+
64+
```bash
65+
git push -u origin feature/issue-<N>-<slug>
66+
gh pr create \
67+
--base main \
68+
--title "<type>: <작업 제목>" \
69+
--body "$(cat <<'EOF'
70+
Closes #<N>
71+
72+
## 작업 요약
73+
<무엇을 구현했는지>
74+
75+
## 변경 내용
76+
- <파일/모듈별 요약>
77+
78+
## 검증
79+
- [ ] cargo check / cargo test (BE)
80+
- [ ] npm run type-check / npm test -- --run (FE)
81+
- [ ] 커버리지 유지/상승
82+
83+
## 주요 결정과 이유
84+
- <설계 판단>
85+
86+
## Wiki 반영 예정
87+
- <업데이트할 Wiki 페이지>
88+
EOF
89+
)"
90+
```
91+
92+
- 본문 첫 줄에 **`Closes #N`**(또는 `Fixes #N`)을 넣어 머지 시 이슈 자동 종료.
93+
- 리뷰가 필요하면 `gh pr create` 후 리뷰어 지정. `git push`는 사용자가 명시 요청 시에만 (`.claude/commit-rules.md`).
94+
95+
---
96+
97+
## 4단계: Wiki 업데이트 (스펙 = 최종 현황, canonical)
98+
99+
기능/설계가 바뀌면 **GitHub Wiki**의 해당 페이지를 최신 현황으로 갱신한다.
100+
Wiki는 별도 git 레포다.
101+
102+
```bash
103+
# 최초 1회: 작업 디렉터리 밖에 클론
104+
git clone https://github.com/boostcampwm-snu-2026-1/ServiceForSmallCommerce-taeyoon.wiki.git /tmp/srv-wiki
105+
cd /tmp/srv-wiki
106+
107+
# 페이지 수정 후
108+
git add -A && git commit -m "docs: <페이지> 현황 갱신 (refs #<N>)" && git push
109+
```
110+
111+
### Wiki 페이지 구성
112+
113+
| 페이지 | 내용 | 원본 스냅샷 |
114+
|--------|------|-------------|
115+
| `Home` | 개요 + 네비게이션 + 작업 흐름 요약 ||
116+
| `Workflow` | 이 문서의 GitHub 작업 흐름 | `.claude/github-workflow.md` |
117+
| `Service-Overview` | 서비스 스펙 | `specification/service/overview.md` |
118+
| `Tech-Stack` | 기술 스택 | `specification/dev/tech-stack.md` |
119+
| `API` | API 엔드포인트 | `specification/dev/api.md` |
120+
| `Backend` | 백엔드 구조 | `specification/dev/backend.md` |
121+
| `Frontend` | 프론트엔드 구조 | `specification/dev/frontend.md` |
122+
| `Harness` | 테스트 하네스 | `specification/dev/harness.md` |
123+
124+
- 페이지 파일명은 `<Page-Name>.md` (공백은 `-`).
125+
- 페이지 간 링크는 `[[Page-Name]]` 또는 `[텍스트](Page-Name)`.
126+
127+
---
128+
129+
## 요약 체크리스트
130+
131+
- [ ] 작업 전 **이슈** 등록했는가? (`#N` 확보)
132+
- [ ] `feature/issue-<N>-<slug>` 브랜치에서 작업했는가?
133+
- [ ] harness(DoD) 검증을 통과했는가?
134+
- [ ] **PR** 본문에 `Closes #N` + 작업 요약을 넣었는가?
135+
- [ ] 스펙 변경분을 **Wiki**에 반영했는가?

.claude/hooks/check-docs-on-stop.sh

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@ STOP_HOOK_ACTIVE=$(echo "$INPUT" | jq -r '.stop_hook_active // false')
44
if [ "$STOP_HOOK_ACTIVE" = "true" ]; then exit 0; fi
55
PROJECT_ROOT="${CLAUDE_PROJECT_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)}"
66

7+
# 컴파일 안전망은 유지. 작업 로그/스펙 동기화는 새 흐름에서 PR 본문/Wiki가 담당하므로
8+
# 로컬 docs 강제 블록은 제거하고, 구조적 BE 변경 시 Wiki 갱신을 비차단 리마인드한다.
9+
# (PR/Wiki 절차: .claude/github-workflow.md)
710
RUST_MARKER="${PROJECT_ROOT}/.claude/.pending-rust-check"
811
SPEC_MARKER="${PROJECT_ROOT}/.claude/.pending-spec-check"
9-
MARKER="${PROJECT_ROOT}/.claude/.pending-doc-check"
1012

1113
if [ -f "$RUST_MARKER" ]; then
1214
BACKEND_DIR="${PROJECT_ROOT}/backend"
@@ -18,12 +20,7 @@ if [ -f "$RUST_MARKER" ]; then
1820
fi
1921

2022
if [ -f "$SPEC_MARKER" ]; then
21-
echo "{\"decision\": \"block\", \"reason\": \"구조적 BE 파일이 변경됐는데 specification/ 업데이트가 없습니다.\"}"
22-
exit 0
23+
echo "⚠️ 구조적 BE 변경 감지: 관련 GitHub Wiki 페이지(Backend/API 등) 갱신이 필요한지 확인하세요. (.claude/github-workflow.md)" >&2
2324
fi
2425

25-
if [ -f "$MARKER" ]; then
26-
TODAY=$(date +%Y%m%d)
27-
echo "{\"decision\": \"block\", \"reason\": \"소스 코드가 변경됐는데 작업 로그가 없습니다. docs/works/${TODAY}-[작업명].md 를 작성한 후 완료하세요.\"}"
28-
exit 0
29-
fi
26+
exit 0
Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,22 @@
11
#!/bin/bash
2+
# 새 작업 흐름(.claude/github-workflow.md): 작업 전 GitHub 이슈 등록 →
3+
# 이슈 기반 브랜치(feature/issue-<N>-..., fix/issue-<N>-...)에서 작업.
4+
# docs/plans 로컬 플랜 강제 대신, "main 직접 소스 수정"을 차단해 브랜치 흐름을 강제한다.
25
INPUT=$(cat)
36
FILE_PATH=$(echo "$INPUT" | jq -r '.tool_input.file_path // .tool_input.path // ""')
47
PROJECT_ROOT="${CLAUDE_PROJECT_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)}"
58

6-
# docs/plans/ 작성 자체는 허용
7-
if echo "$FILE_PATH" | grep -qE 'docs/plans/'; then exit 0; fi
8-
9-
# 소스 파일이 아니면 통과
9+
# 소스 파일이 아니면 통과 (문서/설정 수정은 자유)
1010
if ! echo "$FILE_PATH" | grep -qE '(backend/src/|frontend/src/|frontend/app/|backend/tests/|backend/migrations/)'; then
1111
exit 0
1212
fi
1313

14-
PLAN_MARKER="${PROJECT_ROOT}/.claude/.plan-exists"
15-
if [ -f "$PLAN_MARKER" ]; then exit 0; fi
14+
cd "${PROJECT_ROOT}" || exit 0
15+
BRANCH=$(git rev-parse --abbrev-ref HEAD 2>/dev/null)
16+
17+
# main/master 가 아닌 브랜치에서 작업 중이면 통과 (이슈 기반 브랜치로 간주)
18+
if [ -n "$BRANCH" ] && [ "$BRANCH" != "main" ] && [ "$BRANCH" != "master" ]; then
19+
exit 0
20+
fi
1621

17-
echo '{"decision": "block", "reason": "소스 코드를 수정하기 전에 작업 플랜을 먼저 작성하세요.\n\ndocs/plans/YYYYMMDD-[작업명].md 파일을 작성한 뒤 다시 시도하세요."}'
22+
echo '{"decision": "block", "reason": "main에서 소스 코드를 직접 수정하려고 합니다.\n\n새 작업 흐름(.claude/github-workflow.md): 1) GitHub 이슈 등록 → 2) feature/issue-<N>-<slug> 브랜치 생성 후 작업.\n\ngh issue create 로 이슈를 만들고, git checkout -b feature/issue-<N>-<slug> 로 브랜치를 판 뒤 다시 시도하세요."}'

.claude/hooks/spec-sync-check.sh

Lines changed: 9 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -7,22 +7,18 @@ PROJECT_ROOT="${CLAUDE_PROJECT_DIR:-$(cd "$(dirname "${BASH_SOURCE[0]}")/../.."
77
cd "${PROJECT_ROOT}" || exit 0
88
git rev-parse --git-dir &>/dev/null || exit 0
99

10+
# 스펙의 최종 현황은 GitHub Wiki(canonical). 구조적 코드 변경 시,
11+
# 갱신이 필요할 수 있는 Wiki 페이지를 비차단으로 리마인드한다. (.claude/github-workflow.md)
1012
CHANGED=$(git diff --name-only 2>/dev/null; git diff --name-only --cached 2>/dev/null)
1113
CHANGED=$(echo "$CHANGED" | sort -u)
1214
[ -z "$CHANGED" ] && exit 0
1315

14-
MISSING_SPECS=()
15-
check_spec() {
16-
local spec_file="$1"
17-
echo "$CHANGED" | grep -q "^${spec_file}$" && return
18-
MISSING_SPECS+=("$spec_file")
19-
}
16+
PAGES=()
17+
echo "$CHANGED" | grep -qE "^backend/src/(application|domain|adapters)/" && PAGES+=("Backend")
18+
echo "$CHANGED" | grep -qE "^backend/src/http/(handlers/|router\.rs)" && PAGES+=("API")
19+
echo "$CHANGED" | grep -qE "^frontend/src/features/" && PAGES+=("Frontend")
2020

21-
echo "$CHANGED" | grep -qE "^backend/src/(application|domain|adapters)/" && check_spec "specification/dev/backend.md"
22-
echo "$CHANGED" | grep -qE "^backend/src/http/(handlers/|router\.rs)" && check_spec "specification/dev/api.md"
23-
echo "$CHANGED" | grep -qE "^frontend/src/features/" && check_spec "specification/dev/frontend.md"
21+
[ ${#PAGES[@]} -eq 0 ] && exit 0
2422

25-
[ ${#MISSING_SPECS[@]} -eq 0 ] && exit 0
26-
27-
echo "⚠️ 스펙 동기화 확인 필요:" >&2
28-
printf " - %s\n" "${MISSING_SPECS[@]}" >&2
23+
echo "⚠️ 코드 변경 감지 — GitHub Wiki 페이지 갱신이 필요한지 확인하세요:" >&2
24+
printf " - Wiki: %s\n" "${PAGES[@]}" >&2

CLAUDE.md

Lines changed: 38 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -13,52 +13,50 @@
1313
새 세션 또는 서브에이전트 시작 시 순서대로 읽어라:
1414

1515
1. 이 파일 (`CLAUDE.md`) — 전체 맥락
16-
2. `docs/works/` 최신 파일 — 최근 작업 내용 및 레퍼런스
17-
3. `specification/service/` — 현재 서비스 스펙
18-
4. `specification/dev/` 해당 영역 — 기술 구현 스펙
16+
2. `.claude/github-workflow.md`**이슈 → 작업 → PR → Wiki** 작업 흐름 (필수)
17+
3. 관련 **GitHub Issue / PR** — 최근 작업 맥락 (`gh issue list`, `gh pr list`)
18+
4. **GitHub Wiki** — 현재 서비스/기술 스펙의 최종 현황 (canonical)
1919
5. 필요 시 `docs/decisions/` 세부 내용 참고
2020

2121
---
2222

23-
## 문서 구조
23+
## 작업 흐름 (GitHub Issue → 작업 → PR → Wiki)
24+
25+
문서화는 **GitHub Issue / PR / Wiki를 적극 활용**한다. 모든 작업은 아래 4단계를 따른다.
2426

2527
```
26-
service-for-small-business-taeyoon/
27-
28-
├── specification/ # 살아있는 스펙 (항상 최신 상태)
29-
│ ├── service/ # 서비스 스펙 (사용자/기능 관점)
30-
│ │ └── overview.md
31-
│ └── dev/ # 개발 스펙 (기술 구현)
32-
│ ├── tech-stack.md
33-
│ ├── api.md
34-
│ ├── backend.md
35-
│ ├── frontend.md
36-
│ └── harness.md
37-
38-
├── docs/ # 작업 기록 (축적형, 삭제 금지)
39-
│ ├── works/ # 작업 완료 로그 (YYYYMMDD-slug.md)
40-
│ ├── plans/ # 작업 시작 전 플랜 (YYYYMMDD-slug.md)
41-
│ ├── decisions/ # 의사결정 기록 (ADR)
42-
│ └── sessions/ # 세션 종료 시 자동 생성 로그 (YYYYMMDD-HHMMSS.md)
43-
44-
├── backend/ # Rust 백엔드 코드
45-
├── frontend/ # Next.js 프론트엔드 코드
46-
└── CLAUDE.md # 이 파일
28+
1. 이슈 등록 gh issue create — 작업 단위를 GitHub Issue로 (= 기존 docs/plans)
29+
2. 작업 /task-with-harness — 이슈 기반 브랜치에서 구현 + harness 검증
30+
3. PR gh pr create — "Closes #N", PR 본문이 작업 로그 (= 기존 docs/works)
31+
4. Wiki 업데이트 스펙 변경분을 GitHub Wiki(최종 현황, canonical)에 반영
4732
```
4833

49-
### 문서 작성 규칙
34+
상세 절차: **`.claude/github-workflow.md`** (gh 명령어, 브랜치 규칙, PR/Wiki 템플릿)
35+
36+
### 문서가 사는 곳
37+
38+
| 문서 종류 | 위치 | 비고 |
39+
|-----------|------|------|
40+
| **스펙 (살아있는 현황)** | **GitHub Wiki** | canonical. 서비스/기술 스펙의 최종 현황 |
41+
| **작업 플랜** | **GitHub Issue** | 작업 시작 전 등록 (기존 `docs/plans` 대체) |
42+
| **작업 로그** | **GitHub PR** | `Closes #N` + PR 본문 (기존 `docs/works` 대체) |
43+
| 의사결정 (ADR) | `docs/decisions/YYYYMMDD-slug.md` | 레포 보존 (불변 기록) |
44+
| 세션 로그 | `docs/sessions/YYYYMMDD-HHMMSS.md` | 세션 종료 시 자동 생성, 레포 보존 |
5045

51-
| 문서 종류 | 위치 | 언제 작성 |
52-
|-----------|------|-----------|
53-
| 스펙 변경 | `specification/` | 기능/설계가 바뀔 때마다 업데이트 |
54-
| 작업 플랜 | `docs/plans/YYYYMMDD-slug.md` | 작업 시작 전 (훅이 강제함) |
55-
| 작업 로그 | `docs/works/YYYYMMDD-slug.md` | 작업 단위 완료 시 |
56-
| 의사결정 | `docs/decisions/YYYYMMDD-slug.md` | 중요한 기술 결정 시 |
57-
| 세션 로그 | `docs/sessions/YYYYMMDD-HHMMSS.md` | 세션 종료 시 자동 생성 |
46+
> `specification/` 디렉터리는 Wiki 이관 이전의 스냅샷이다. **스펙의 최신본은 항상 Wiki를 본다.**
47+
> `docs/decisions/`, `docs/sessions/` 등 레포에 남은 문서는 **삭제하지 않는다** (WAL, append-only).
5848
59-
**모든 문서는 삭제하지 않는다.** 스펙 파일은 업데이트 가능.
49+
### 레포 디렉터리
6050

61-
**`docs/` 하위 문서는 WAL(Write-Ahead Log) 방식으로 append-only.**
51+
```
52+
service-for-small-business-taeyoon/
53+
├── specification/ # Wiki 이관 전 스냅샷 (최신본은 Wiki)
54+
├── docs/ # decisions/(ADR), sessions/(자동) — 레포 보존
55+
├── backend/ # Rust 백엔드 코드
56+
├── frontend/ # Next.js 프론트엔드 코드
57+
├── .claude/ # 워크플로우 규칙 + 훅
58+
└── CLAUDE.md # 이 파일
59+
```
6260

6361
---
6462

@@ -70,7 +68,7 @@ service-for-small-business-taeyoon/
7068
| 프론트엔드 | Next.js 14 (TypeScript) + Tailwind + Zustand + TanStack Query |
7169
| 테스트 | cargo test + testcontainers + Vitest + Playwright + GitHub Actions CI |
7270

73-
→ 결정 이유: `docs/decisions/20260607-initial-tech-stack.md`
71+
상세: Wiki `Tech-Stack` 페이지 / 결정 이유: `docs/decisions/20260607-initial-tech-stack.md`
7472

7573
---
7674

@@ -80,10 +78,11 @@ service-for-small-business-taeyoon/
8078

8179
| 규칙 | 파일 |
8280
|------|------|
81+
| **GitHub 작업 흐름 (이슈/PR/Wiki)** | `.claude/github-workflow.md` |
8382
| 코드 수정 규칙 | `.claude/code-rules.md` |
8483
| 작업 완료 기준 (DoD) | `.claude/dod.md` |
8584
| 커밋 규칙 | `.claude/commit-rules.md` |
86-
| 테스트 안전망 | `specification/dev/harness.md` |
85+
| 테스트 안전망 | Wiki: `Harness` 페이지 (`specification/dev/harness.md` 스냅샷) |
8786

8887
---
8988

@@ -102,7 +101,7 @@ cd frontend && npm run type-check && npm test -- --run
102101
## 세션 마무리
103102

104103
세션 마무리 시 `/wrap` 스킬 실행:
105-
- 변경된 스펙 문서 업데이트
106-
- `docs/works/YYYYMMDD-summary.md` 작성
104+
- 진행한 작업의 **PR 본문/이슈 코멘트** 정리 + 머지된 변경분 **Wiki 반영**
105+
- 변경된 스펙은 GitHub **Wiki** 해당 페이지 업데이트
107106
- 필요 시 ADR 작성 (`docs/decisions/`)
108107
- CLAUDE.md 업데이트

0 commit comments

Comments
 (0)