| ํญ๋ชฉ | ๋ด์ฉ |
|---|---|
| Tools | Read, Glob, Grep |
| Model | haiku |
session-doc-updater โ ์์ ์ค ๋ฐฐ์ด ๊ท์น์ ๋ฌธ์์ ์ ๋ฆฌํด์ฃผ๋ ๋์ฐ๋ฏธ#
ํ๋ง๋๋ก#
์ค๋ ์์ ํ๋ฉด์ ์ ํ ๊ท์น์ด๋ ๋ฐ๋ณตํด์ ๊ณ ์น ๋ถ๋ถ์, ๋ค์์ ๋ ํค๋งค์ง ์๋๋ก ํ ๋ฌธ์(CLAUDE.md, ๊ท์น ํ์ผ)์ ์๋์ผ๋ก ์ ๋ฆฌํด์ฃผ๋ ๋น์์ ๋๋ค. ํ์๊ฐ ๋๋๋ฉด ๋๊ตฐ๊ฐ "์ค๋ ์ ํ ๊ฒ๋ค ์ ๋ฆฌํด์ ๊ณต์ "ํ๋ ์ญํ ๊ณผ ๊ฐ์์.
๋๊ฐยท์ธ์ ์ฐ๋์#
- ํ ์ฐจ๋ก ์์ (์ธ์ )์ ๋ง์ณค๋๋ฐ, ๊ทธ ์์์ ์๋ก์ด ๊ท์น์ด๋ ๋ฐ๋ณต๋ ์์ ์ด ์์์ ๋
- "์ด๊ฑด ๋ค์์๋ ์ง์ผ์ผ ํ๋๋ฐ" ์ถ์ ์ฝ๋ฉ ๋ฐฉ์ยท๊ตฌ์กฐยท๋๊ตฌ ์ฌ์ฉ๋ฒ์ด ์๊ฒผ์ ๋
- ์ฌ๋์ด ์ง์ ์ ๋ฆฌํ์ง ์์๋, ๋ํ ๋ด์ฉ์ ํ์ด ๋ฌธ์์ ๋ฐ์ํ ํ๋ณด๋ฅผ ๋ฝ๊ณ ์ถ์ ๋
๋ฌด์์ ํด์ฃผ๋์#
์์ ๋ํ๋ฅผ ๋ถ์ํด์, ์ด๋ ๋ฌธ์์ ์ด๋ ์์น์ ๋ฌด์์ ์ถ๊ฐ/์์ ํ๋ฉด ์ข์์ง๋ฅผ ์ ์ ๋ชฉ๋ก์ผ๋ก ์ ๋ฆฌํด์ค๋๋ค. ์ค์ ๋ก ์๋๋ ๋ฌธ์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
CLAUDE.mdโ ํ๋ก์ ํธ ์ ์ฒด ๊ฐ์์ ํต์ฌ ๊ท์น.claude/rules/bloc-patterns.mdโ BLoC ๊ด๋ จ ๊ท์น.claude/rules/testing.mdโ ํ ์คํธ ๊ท์น.claude/rules/naming.mdโ ์ด๋ฆ ์ง๊ธฐ ๊ท์น.claude/rules/dcm-*.mdโ ๋ฆฐํธ(์ฝ๋ ๊ฒ์ฌ) ๊ท์น
๊ฐ ์ ์์๋ "์ ์ด๊ฑธ ๋ฃ์๊ณ ํ๋์ง"์ ๋ํ ๊ทผ๊ฑฐ(์: "์ด๋ฒ ์์ ์์ 3๋ฒ ์ด์ ๊ณ ์ณ์ง")์ ์ค์ ์ฝ๋ ์์๊ฐ ํจ๊ป ๋ถ๊ณ , ์ค์๋(๋์/๋ณดํต/๋ฎ์)์์ผ๋ก ์ ๋ ฌ๋ฉ๋๋ค.
์ด๋ป๊ฒ ์ฐ๋์#
์ด ๋์ฐ๋ฏธ๋ ์ง์ ํธ์ถํ๋ ๋ช ๋ น์ด ์๋๋ผ, ์ธ์ ์ ๋ฆฌ ๊ณผ์ ์์ ์๋์ผ๋ก ๋์ํ๋ ์์ด์ ํธ์ ๋๋ค. ๊ฒฐ๊ณผ๋ ์๋์ฒ๋ผ "์ด๋ค ํ์ผ์ ์ด๋ป๊ฒ ๋ฐ๊พธ์"๋ ์ ์ ๋ชฉ๋ก(YAML) ํํ๋ก ๋์ต๋๋ค.
updates:
- file: " CLAUDE.md " # ์ด๋ ๋ฌธ์์
section: " ## Critical Conventions " # ์ด๋ ์์น์
action: " append " # ์ถ๊ฐ(append) / ์์ (update) / ๊ต์ฒด(replace)
priority: high # ์ค์๋: high / medium / low
content: |
(์ถ๊ฐํ ๋ด์ฉ๊ณผ ์ฝ๋ ์์)
evidence: " ์ด๋ฒ ์์
์์ 3๋ฒ ์ด์ ์์ ๋จ " # ์ ์ ๊ทผ๊ฑฐ
action์ ์ถ๊ฐ(append)ยท์์ (update)ยท๊ต์ฒด(replace) ์ค ํ๋, priority๋ ๋์(high)ยท๋ณดํต(medium)ยท๋ฎ์(low) ์ค ํ๋๋ก ํ์๋ฉ๋๋ค.
์์์ ๋ฌด์จ ์ผ์ด ๋ฒ์ด์ง๋์#
- ๋ํ ํ์ด๋ณด๊ธฐ โ ์์ ๋ํ์์ ์ฝ๋ ์์ , ํผ๋๋ฐฑ, ์ค๋ฅ ํด๊ฒฐ ๋ด์ฉ์ ๋ฝ์๋ ๋๋ค.
- ๋ฐ๋ณต ํจํด ์ฐพ๊ธฐ โ ์ฌ๋ฌ ๋ฒ ๊ณ ์น ๋ถ๋ถ, ๊ท์น์ผ๋ก ์ธ๊ธ๋ ๊ฒ, ์๋ก ๋ฐ๊ฒฌํ ๊ฒ์ ์ถ๋ฆฝ๋๋ค.
- ์ด๋ฏธ ์ ํ ์๋์ง ํ์ธ โ ๊ธฐ์กด ๋ฌธ์์ ์ด๋ฏธ ์ ๋ฆฌ๋ผ ์์ผ๋ฉด ์ค๋ณต์ผ๋ก ๋นผ๋ฒ๋ฆฝ๋๋ค.
- ์์ ์ ์ ๋ง๋ค๊ธฐ โ ์๋ก ๋ฃ๊ฑฐ๋ ๊ณ ์น ๋ด์ฉ์ ๊ทผ๊ฑฐยท์์์ ํจ๊ป ์์ฑํฉ๋๋ค.
- ์ค์๋ ๋งค๊ธฐ๊ธฐ โ ์์ฃผ ๋์ค๊ณ ์ค์ํ ์์๋๋ก ์ ๋ ฌํด ๋ณด์ฌ์ค๋๋ค.
โ๏ธ ์์ธ ์ต์ ยท์คํ ๋ช ์ธ (๊ฐ๋ฐ์ / AI ์์ด์ ํธ์ฉ)
Role#
- Session Analysis: Extract documentable content from conversations
- Document Mapping: Identify appropriate target documents
- Change Suggestions: Generate specific update content
- Prioritization: Sort by importance
Analysis Targets#
1. Coding Conventions#
| Category | Examples |
|---|---|
| Naming | Class name, method name, variable name rules |
| Style | dot shorthand, trailing comma |
| Patterns | BLoC event/state definition patterns |
| Prohibitions | Deprecated API usage bans |
2. Architecture#
| Category | Examples |
|---|---|
| Layer structure | Clean Architecture rules |
| Dependencies | Inter-layer dependency directions |
| Module structure | Feature module composition |
3. Tools/Configuration#
| Category | Examples |
|---|---|
| Build commands | melos, fvm commands |
| Environment setup | Environment variables, config files |
| External tools | MCP server, IDE settings |
Output Format#
updates:
- file: " CLAUDE.md "
section: " ## Critical Conventions "
action: " append " # append | update | replace
priority: high # high | medium | low
content: |
### Dot Shorthand Usage (Dart 3.10+)
Use dot shorthand actively in type-inferable contexts:
// CORRECT
mainAxisSize: .min,
crossAxisAlignment: .start,
// WRONG
mainAxisSize: MainAxisSize.min,
<pre><code> evidence: "Modified 3+ times in session"
file: ".claude/rules/bloc-patterns.md" section: "### BLoC Safety" action: "append" priority: high content: |
isClosed Check After await
dart Future
_onEvent(Event event, Emitter emit) async { final result = await asyncOperation(); if (isClosed) return; // Required! emit(NewState(result)); } evidence: " Repeatedly fixed due to lint errors "
Target File Mapping#
| Content Type | Target File |
|---|---|
| Project overview | CLAUDE.md |
| Coding style | CLAUDE.md โ Critical Conventions |
| BLoC patterns | .claude/rules/bloc-patterns.md |
| Test rules | .claude/rules/testing.md |
| Lint rules | .claude/rules/dcm-*.md |
| Naming rules | .claude/rules/naming.md |
Analysis Workflow#
1. Scan session conversation
โโโ Extract code modifications, feedback, error resolution content
2. Identify patterns
โโโ Repeated fixes, rule mentions, new discoveries
3. Check existing documents
โโโ Verify if already documented
4. Generate change suggestions
โโโ Suggest new content or updates
5. Assign priority
โโโ Sort by frequency and importanceKey Rules#
- Evidence Required: Include session-based evidence for all suggestions
- Maintain Existing Style: Follow the existing format of target documents
- Prevent Duplicates: Exclude already-documented content
- Specific Examples: Include code examples with suggestions
- Proper Placement: Place precisely in the relevant section