Skip to content

Commit d73e042

Browse files
committed
v1.0.1
1 parent 345aa4e commit d73e042

4 files changed

Lines changed: 272 additions & 21 deletions

File tree

.claude-plugin/marketplace.json

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
"url": "https://github.com/ureca-corp"
88
},
99
"metadata": {
10-
"description": "도메인 주도 설계 및 AI 기반 개발 도구 모음",
10+
"description": "유레카엔터프라이즈 Claude Plugins",
1111
"version": "1.0.0",
1212
"pluginRoot": "./plugins",
1313
"license": "MIT"
@@ -17,7 +17,7 @@
1717
"name": "project-starter",
1818
"source": "./plugins/project-starter",
1919
"description": "Template repo 기반 새 프로젝트 생성",
20-
"version": "1.0.0",
20+
"version": "1.0.1",
2121
"author": {
2222
"name": "ureca",
2323
"url": "https://github.com/ureca-corp"
@@ -27,7 +27,7 @@
2727
"name": "domain-book-builder",
2828
"source": "./plugins/domain-book-builder",
2929
"description": "기술 독립적 Domain Book 생성",
30-
"version": "1.0.0",
30+
"version": "1.0.1",
3131
"author": {
3232
"name": "ureca",
3333
"url": "https://github.com/ureca-corp"
@@ -37,7 +37,7 @@
3737
"name": "python-fastapi-programmer",
3838
"source": "./plugins/python-fastapi-programmer",
3939
"description": "Domain Book 기반 백엔드 코드 생성",
40-
"version": "1.0.0",
40+
"version": "1.0.1",
4141
"author": {
4242
"name": "ureca",
4343
"url": "https://github.com/ureca-corp"
@@ -47,7 +47,17 @@
4747
"name": "flutter-ddd-builder",
4848
"source": "./plugins/flutter-ddd-builder",
4949
"description": "Domain Book 기반 Flutter 코드 생성",
50-
"version": "1.0.0",
50+
"version": "1.0.1",
51+
"author": {
52+
"name": "ureca",
53+
"url": "https://github.com/ureca-corp"
54+
}
55+
},
56+
{
57+
"name": "project-docs-setup",
58+
"source": "./plugins/project-docs-setup",
59+
"description": "README·AGENTS·CLAUDE·ai-context 4-파일 문서화 체계 설정",
60+
"version": "1.0.1",
5161
"author": {
5262
"name": "ureca",
5363
"url": "https://github.com/ureca-corp"
Lines changed: 12 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,17 @@
11
{
22
"hooks": {
33
"PostToolUse": [
4-
{
5-
"matcher": "Write|Edit",
6-
"hooks": [
7-
{
8-
"type": "command",
9-
"command": "bash \"$HOME/.claude/plugins/flutter-ddd-builder/hooks/dart-analyze.sh\"",
10-
"timeout": 30,
11-
"statusMessage": "Analyzing Dart file..."
12-
},
13-
{
14-
"type": "prompt",
15-
"prompt": "Check ONLY the Dart file just modified for these anti-patterns. If found, fix immediately:\n- `ref.watch(` outside `build()` → `ref.read(`\n- `Dio().fetch(` without interceptors → add ResponseInterceptor + ErrorInterceptor\n- Model file/class with `Dto` suffix → rename to `Model`\n- `@freezed` class with `factory` missing `const` → `const factory`\n- `@riverpod` function with `FooRef ref` → `Ref ref`\n- `await ref.read(notifier).action(); ref.read(provider).when(` → use ref.listen in build()\n- `.when(data:` inline in page body → use `AsyncValueWidget` widget\n- `EdgeInsets.all(16)` or similar hardcoded values → consider `AppSpacing.spacing4` tokens\n- Inline form validation logic → use `Validators.compose([...])` from validators.dart"
16-
}
17-
]
18-
}
19-
]
4+
{
5+
"matcher": "Write|Edit",
6+
"hooks": [
7+
{
8+
"type": "command",
9+
"command": "bash \"$HOME/.claude/plugins/flutter-ddd-builder/hooks/dart-analyze.sh\"",
10+
"timeout": 30,
11+
"statusMessage": "Analyzing Dart file..."
12+
}
13+
]
14+
}
15+
]
2016
}
2117
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# Project Docs Setup
2+
3+
어떤 프로젝트에서든 사람과 AI 에이전트가 각자 필요한 정보를 빠르게 찾을 수 있는 4-파일 문서화 체계를 세우는 플러그인입니다.
4+
5+
## 사용법
6+
7+
```bash
8+
/project-docs-setup
9+
```
10+
11+
또는 자연어로 트리거:
12+
- "문서화 체계 잡아줘"
13+
- "AGENTS.md 만들어줘"
14+
- "ai-context 폴더 구조 세팅해줘"
15+
16+
## 생성되는 구조
17+
18+
```
19+
{project-root}/
20+
├── README.md ← 사람용: 개요·기능·아키텍처 트리·Mermaid 흐름
21+
├── AGENTS.md ← AI 에이전트용: 규칙·제약·먼저 읽을 문서
22+
├── CLAUDE.md ← Claude 진입점: @AGENTS.md 한 줄
23+
└── ai-context/
24+
├── TOC.md ← 에이전트 상세 문서 색인
25+
├── 01_north-star.md
26+
└── 02_architecture-principles.md
27+
```
28+
29+
## 워크플로우
30+
31+
```mermaid
32+
flowchart LR
33+
A["project-docs-setup"] --> B["프로젝트 탐색"]
34+
B --> C["README.md 작성"]
35+
B --> D["AGENTS.md 작성"]
36+
B --> E["CLAUDE.md 작성"]
37+
B --> F["ai-context/TOC.md 갱신"]
38+
C & D & E & F --> G["일관성 검증"]
39+
```
Lines changed: 206 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,206 @@
1+
---
2+
name: project-docs-setup
3+
description: |
4+
프로젝트 문서화 체계를 설정하고 유지합니다. README.md(사람용), AGENTS.md(AI 에이전트용), CLAUDE.md(Claude 진입점), ai-context/(에이전트 상세 문서 폴더)의 4-파일 체계를 생성/갱신합니다.
5+
6+
다음 상황에서 반드시 이 스킬을 사용하세요:
7+
- "문서화 체계", "docs setup", "문서 세팅", "문서 구조 잡아줘"
8+
- "README 만들어", "AGENTS.md 작성해줘", "CLAUDE.md 설정"
9+
- "ai-context 폴더 만들어", "TOC.md 갱신"
10+
- 프로젝트에 AGENTS.md 또는 ai-context/가 없거나 오래된 경우
11+
- 신규 프로젝트 시작 시 문서 인프라가 필요한 경우
12+
---
13+
14+
# Project Documentation System Setup
15+
16+
프로젝트 문서를 사람과 AI 에이전트가 각자 필요한 정보를 빠르게 찾을 수 있도록 4개 파일로 분리하는 체계입니다.
17+
18+
## 왜 이 구조인가
19+
20+
| 파일 | 독자 | 목적 |
21+
|------|------|------|
22+
| `README.md` | 사람 (개발자) | 프로젝트 전체 구조를 한눈에 파악 |
23+
| `AGENTS.md` | AI 에이전트 | 이 프로젝트에서 무엇을 해야 하고 하면 안 되는지 |
24+
| `CLAUDE.md` | Claude Code | `@AGENTS.md`만 써서 진입점 단일화 |
25+
| `ai-context/` | AI 에이전트 | AGENTS.md가 위임한 상세 문서 전용 공간 |
26+
27+
AGENTS.md는 짧고 핵심만 담아야 한다. 깊이 있는 내용은 ai-context/ 파일에 위임하고 TOC.md로 색인한다.
28+
29+
---
30+
31+
## Step 1: 프로젝트 탐색
32+
33+
파일을 쓰기 전에 프로젝트를 이해한다. 병렬로 읽어라.
34+
35+
읽어야 할 것들:
36+
- 빌드 설정: `settings.gradle.kts`, `package.json`, `pyproject.toml`, `build.gradle.kts`
37+
- 기존 문서: `README.md`, `AGENTS.md`, `ai-context/TOC.md`, `docs/TOC.md`
38+
- 루트 디렉터리 구조 (`ls` 또는 Glob)
39+
- 핵심 모듈 디렉터리 목록
40+
41+
파악해야 할 것:
42+
- 프로젝트명, 기술 스택, 언어/프레임워크
43+
- 모듈 목록과 각각의 책임
44+
- 기존 아키텍처 다이어그램
45+
- 기존 규칙, 제약사항, 금지 패턴
46+
- Claude memory나 CLAUDE.md에 있는 프로젝트별 메모
47+
48+
---
49+
50+
## Step 2: README.md 작성
51+
52+
사람이 처음 저장소에 들어왔을 때 빠르게 파악할 수 있도록. 간결하게.
53+
54+
**필수 섹션:**
55+
56+
```markdown
57+
# {프로젝트명}
58+
59+
{한 줄 설명 — 무엇이고 왜 존재하는가}
60+
61+
## 기능
62+
63+
- `{모듈명}` — {한 줄 설명}
64+
- ...
65+
66+
## 아키텍처 트리
67+
68+
\`\`\`text
69+
{프로젝트 루트}
70+
├── {모듈1}
71+
├── {모듈2}
72+
└── ...
73+
\`\`\`
74+
75+
## 아키텍처 흐름
76+
77+
\`\`\`mermaid
78+
flowchart LR
79+
{노드1}["{한글 레이블}"] --> {노드2}["{한글 레이블}"]
80+
...
81+
\`\`\`
82+
83+
## 빠른 시작 ← 있으면 추가
84+
85+
## 문서 ← 있으면 추가
86+
```
87+
88+
Mermaid 다이어그램 규칙:
89+
- `flowchart LR` (좌→우) 사용, 노드 5~8개 이하로 단순하게
90+
- 레이블은 한글로, 의존 방향(→)이 명확하게
91+
- 복잡한 다이어그램은 `ai-context/02_architecture-principles.md`에 위임
92+
93+
---
94+
95+
## Step 3: AGENTS.md 작성
96+
97+
AI 에이전트용. 핵심 규칙과 제약만 담고, 상세는 ai-context/로 위임.
98+
99+
**필수 섹션:**
100+
101+
```markdown
102+
# AGENTS.md
103+
104+
이 문서는 {프로젝트명} 에이전트용 루트 가이드입니다.
105+
상세 기준은 항상 [ai-context/TOC.md](./ai-context/TOC.md)부터 읽습니다.
106+
107+
## 프로젝트 개요와 목적
108+
109+
- {한 줄 설명}
110+
- {중요한 맥락 — 마이그레이션 중이라면 "X에서 Y로", 소유권 경계가 있다면 명시}
111+
112+
## 기능
113+
114+
- `{모듈명}` — {한 줄 설명}
115+
- ...
116+
117+
## 에이전트 핵심 규칙
118+
119+
- {하면 안 되는 것들 — DDL 변경, 기존 계약 파괴 등}
120+
- {아키텍처 불변 규칙 — 의존 방향, 금지 패턴}
121+
- {마이그레이션/전환 제약}
122+
123+
## 중요한 메모
124+
125+
- {테스트 정책, 커버리지 기준}
126+
- {환경 전제조건}
127+
- {문서 갱신 규칙}
128+
129+
## 먼저 읽을 문서
130+
131+
- [ai-context/TOC.md](./ai-context/TOC.md)
132+
- {기타 중요 상태 문서}
133+
```
134+
135+
AGENTS.md가 60줄을 넘어가면 내용을 ai-context/ 파일로 옮겨라.
136+
137+
---
138+
139+
## Step 4: CLAUDE.md 작성
140+
141+
딱 한 줄만:
142+
143+
```
144+
@AGENTS.md
145+
```
146+
147+
다른 내용 없음. Claude Code의 `@파일` 임포트 문법으로 AGENTS.md를 자동 로드하게 한다.
148+
149+
---
150+
151+
## Step 5: ai-context/ 설정
152+
153+
### TOC.md 작성/갱신
154+
155+
ai-context/의 첫 번째 규칙: 다른 파일을 보기 전에 항상 TOC.md를 먼저 읽는다.
156+
157+
```markdown
158+
# TOC
159+
160+
이 디렉터리는 {프로젝트명} 에이전트 상세 문서 전용 공간입니다.
161+
다른 문서를 보기 전에 항상 이 목차부터 읽습니다.
162+
163+
## 읽는 순서
164+
165+
1. [01_north-star.md](./01_north-star.md) — 프로젝트 방향성과 핵심 원칙
166+
2. [02_architecture-principles.md](./02_architecture-principles.md) — 아키텍처 원칙과 의존 규칙
167+
...
168+
169+
## 보조 문서
170+
171+
- [docs/...] — 상태 문서, 체크리스트 등
172+
```
173+
174+
### 신규 프로젝트라면 스타터 파일 생성
175+
176+
- `01_north-star.md` — 프로젝트가 무엇이고 무엇이 아닌지, 성공 기준
177+
- `02_architecture-principles.md` — 모듈 경계, 의존 방향 규칙, 금지 패턴
178+
179+
파일 네이밍: `{두 자리 번호}_{kebab-title}.md` (예: `03_decision-checklist.md`)
180+
181+
---
182+
183+
## Step 6: 일관성 검증
184+
185+
모든 파일을 쓴 후 확인:
186+
- 프로젝트명, 모듈 목록, 기술 스택이 README.md와 AGENTS.md에서 일치하는가
187+
- AGENTS.md와 TOC.md의 모든 링크가 실제 파일을 가리키는가
188+
- CLAUDE.md가 `@AGENTS.md` 한 줄인가
189+
- ai-context/TOC.md가 디렉터리에 실제 존재하는 모든 파일을 나열하는가
190+
191+
---
192+
193+
## 유지보수 규칙
194+
195+
프로젝트 구조나 정책이 바뀌면:
196+
- README.md, AGENTS.md, ai-context/TOC.md를 함께 갱신
197+
- 세 파일이 서로 어긋나도록 두지 않는다
198+
- ai-context/에 새 파일을 추가하면 즉시 TOC.md에도 추가
199+
200+
---
201+
202+
## 언어 규칙
203+
204+
- 한국어 프로젝트 → 한국어로 작성 (기존 파일 언어를 따른다)
205+
- 영어 프로젝트 → 영어로 작성
206+
- Mermaid 노드 레이블은 프로젝트 언어로

0 commit comments

Comments
 (0)