moai-adk 0.3.2__py3-none-any.whl → 0.3.6__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of moai-adk might be problematic. Click here for more details.
- moai_adk/__init__.py +1 -1
- moai_adk/cli/commands/update.py +49 -30
- moai_adk/core/project/initializer.py +16 -5
- moai_adk/core/project/phase_executor.py +27 -3
- moai_adk/core/project/validator.py +46 -1
- moai_adk/core/template/processor.py +151 -11
- moai_adk/templates/.moai/hooks/pre-push.sample +88 -0
- moai_adk/templates/.moai/memory/development-guide.md +1 -26
- moai_adk/templates/.moai/memory/gitflow-protection-policy.md +220 -0
- {moai_adk-0.3.2.dist-info → moai_adk-0.3.6.dist-info}/METADATA +806 -208
- {moai_adk-0.3.2.dist-info → moai_adk-0.3.6.dist-info}/RECORD +14 -12
- {moai_adk-0.3.2.dist-info → moai_adk-0.3.6.dist-info}/WHEEL +0 -0
- {moai_adk-0.3.2.dist-info → moai_adk-0.3.6.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.3.2.dist-info → moai_adk-0.3.6.dist-info}/licenses/LICENSE +0 -0
|
@@ -69,48 +69,23 @@ MoAI-ADK는 Anthropic의 "Effective Context Engineering for AI Agents" 원칙을
|
|
|
69
69
|
|--------|----------|------------|------------|
|
|
70
70
|
| `/alfred:1-spec` | product.md | structure.md, tech.md | SPEC 후보 발굴 시 |
|
|
71
71
|
| `/alfred:2-build` | SPEC-XXX/spec.md | development-guide.md | TDD 구현 시작 시 |
|
|
72
|
-
| `/alfred:3-sync` | sync-report.md | TAG
|
|
72
|
+
| `/alfred:3-sync` | sync-report.md | TAG 체인 검증 (`rg` 스캔) | 문서 동기화 시 |
|
|
73
73
|
|
|
74
74
|
**구현 방법**:
|
|
75
75
|
- Alfred는 커맨드 실행 시점에 필요한 문서만 `Read` 도구로 로드
|
|
76
76
|
- 에이전트는 자신의 작업에 필요한 문서만 요청
|
|
77
77
|
- CLAUDE.md의 "메모리 전략" 섹션에 명시된 5개 문서는 항상 로드
|
|
78
78
|
|
|
79
|
-
### 2. Compaction (압축)
|
|
80
|
-
|
|
81
|
-
**원칙**: 긴 세션(>70% 토큰 사용)은 요약 후 새 세션으로 재시작
|
|
82
|
-
|
|
83
|
-
**Compaction 트리거**:
|
|
84
|
-
- 토큰 사용량 > 140,000 (총 200,000의 70%)
|
|
85
|
-
- 대화 턴 수 > 50회
|
|
86
|
-
- 사용자가 명시적으로 `/clear` 또는 `/new` 실행
|
|
87
|
-
|
|
88
|
-
**Compaction 절차**:
|
|
89
|
-
1. **요약 생성**: 현재 세션의 핵심 결정사항, 완료된 작업, 다음 단계를 요약
|
|
90
|
-
2. **새 세션 시작**: 요약 내용을 새 세션의 첫 메시지로 전달
|
|
91
|
-
3. **권장 사항 안내**: 사용자에게 `/clear` 또는 `/new` 명령 사용 권장
|
|
92
|
-
|
|
93
|
-
**예시**:
|
|
94
|
-
```markdown
|
|
95
|
-
**권장사항**: 다음 단계 진행 전 `/clear` 또는 `/new` 명령으로 새로운 대화 세션을 시작하면 더 나은 성능과 컨텍스트 관리를 경험할 수 있습니다.
|
|
96
|
-
```
|
|
97
|
-
|
|
98
79
|
### Context Engineering 체크리스트
|
|
99
80
|
|
|
100
81
|
**커맨드 설계 시**:
|
|
101
82
|
- [ ] JIT: 필요한 문서만 로드하는가?
|
|
102
83
|
- [ ] 선택적 로드: 조건부로 문서를 로드하는가?
|
|
103
|
-
- [ ] Compaction: 긴 작업 시 중간 요약을 제공하는가?
|
|
104
84
|
|
|
105
85
|
**에이전트 설계 시**:
|
|
106
86
|
- [ ] 최소 도구: 필요한 도구만 YAML frontmatter에 선언했는가?
|
|
107
87
|
- [ ] 명확한 역할: 단일 책임 원칙을 준수하는가?
|
|
108
88
|
|
|
109
|
-
**장기 세션 관리**:
|
|
110
|
-
- [ ] 토큰 사용량 모니터링
|
|
111
|
-
- [ ] 70% 초과 시 Compaction 권장
|
|
112
|
-
- [ ] `/clear` 또는 `/new` 안내 문구 포함
|
|
113
|
-
|
|
114
89
|
---
|
|
115
90
|
|
|
116
91
|
## TRUST 5원칙
|
|
@@ -0,0 +1,220 @@
|
|
|
1
|
+
# GitFlow 권장 정책 (Advisory Policy)
|
|
2
|
+
|
|
3
|
+
**문서 ID**: @DOC:GITFLOW-POLICY-001
|
|
4
|
+
**작성일**: 2025-10-17
|
|
5
|
+
**상태**: Advisory (권장 사항, 강제 아님)
|
|
6
|
+
**적용 범위**: Personal/Team 모드 모두
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## 개요
|
|
11
|
+
|
|
12
|
+
MoAI-ADK는 GitFlow 전략을 **권장**합니다. 이 정책은 best practice를 제시하지만, 사용자의 판단에 따라 유연하게 적용할 수 있습니다.
|
|
13
|
+
|
|
14
|
+
## 핵심 권장사항
|
|
15
|
+
|
|
16
|
+
### 1. Main 브랜치 접근 제어 (권장)
|
|
17
|
+
|
|
18
|
+
| 권장사항 | 설명 | 적용 방식 |
|
|
19
|
+
|---------|------|----------|
|
|
20
|
+
| **Develop 기반 Merge** | develop 브랜치에서 main으로 머지 권장 | Advisory ⚠️ |
|
|
21
|
+
| **Feature는 Develop** | Feature 브랜치는 develop에서 분기하고 develop으로 PR 생성 | Advisory ⚠️ |
|
|
22
|
+
| **Release 프로세스** | Release: develop -> main (Release Engineer 권장) | Advisory ⚠️ |
|
|
23
|
+
| **강제 Push** | Force-push 시 경고, 하지만 허용 | Warning ⚠️ |
|
|
24
|
+
| **직접 Push** | main 직접 push 시 경고, 하지만 허용 | Warning ⚠️ |
|
|
25
|
+
|
|
26
|
+
### 2. Git Workflow (권장)
|
|
27
|
+
|
|
28
|
+
```
|
|
29
|
+
┌─────────────────────────────────────────────────────────┐
|
|
30
|
+
│ RECOMMENDED GITFLOW │
|
|
31
|
+
└─────────────────────────────────────────────────────────┘
|
|
32
|
+
|
|
33
|
+
develop (권장 기본 브랜치)
|
|
34
|
+
↑ ↓
|
|
35
|
+
┌─────────────────┐
|
|
36
|
+
│ │
|
|
37
|
+
│ (개발자가 작업) │
|
|
38
|
+
│ │
|
|
39
|
+
↓ ↑
|
|
40
|
+
feature/SPEC-{ID} [PR: feature -> develop]
|
|
41
|
+
[코드 리뷰 + 승인]
|
|
42
|
+
[Merge to develop]
|
|
43
|
+
|
|
44
|
+
develop (안정적)
|
|
45
|
+
↓
|
|
46
|
+
│ (Release Manager가 준비)
|
|
47
|
+
↓
|
|
48
|
+
[PR: develop -> main]
|
|
49
|
+
[CI/CD 검증]
|
|
50
|
+
[태그 생성]
|
|
51
|
+
↓
|
|
52
|
+
main (릴리스)
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**유연성**: 프로젝트 상황에 따라 직접 main 푸시도 가능하지만, 위 워크플로우를 권장합니다.
|
|
56
|
+
|
|
57
|
+
## 기술 구현
|
|
58
|
+
|
|
59
|
+
### Pre-push Hook (Advisory Mode)
|
|
60
|
+
|
|
61
|
+
**위치**: `.git/hooks/pre-push`
|
|
62
|
+
**기능**: Main 브랜치 작업 시 경고 표시 (차단 안 함)
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# main으로 push 시도 시:
|
|
66
|
+
⚠️ ADVISORY: Non-standard GitFlow detected
|
|
67
|
+
|
|
68
|
+
Current branch: feature/SPEC-123
|
|
69
|
+
Target branch: main
|
|
70
|
+
|
|
71
|
+
Recommended GitFlow workflow:
|
|
72
|
+
1. Work on feature/SPEC-{ID} branch (created from develop)
|
|
73
|
+
2. Push to feature/SPEC-{ID} and create PR to develop
|
|
74
|
+
3. Merge into develop after code review
|
|
75
|
+
4. When develop is stable, create PR from develop to main
|
|
76
|
+
5. Release manager merges develop -> main with tag
|
|
77
|
+
|
|
78
|
+
✓ Push will proceed (flexibility mode enabled)
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### 강제 Push Advisory
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
⚠️ ADVISORY: Force-push to main branch detected
|
|
85
|
+
|
|
86
|
+
Recommended approach:
|
|
87
|
+
- Use GitHub PR with proper code review
|
|
88
|
+
- Ensure changes are merged via fast-forward
|
|
89
|
+
|
|
90
|
+
✓ Push will proceed (flexibility mode enabled)
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
---
|
|
94
|
+
|
|
95
|
+
## 사용 사례별 워크플로우
|
|
96
|
+
|
|
97
|
+
### 사례 1: 표준 Feature 개발 (권장)
|
|
98
|
+
|
|
99
|
+
```bash
|
|
100
|
+
# 1. develop에서 최신 코드 받기
|
|
101
|
+
git checkout develop
|
|
102
|
+
git pull origin develop
|
|
103
|
+
|
|
104
|
+
# 2. feature 브랜치 생성 (develop에서)
|
|
105
|
+
git checkout -b feature/SPEC-001-new-feature
|
|
106
|
+
|
|
107
|
+
# 3. 작업 진행
|
|
108
|
+
# ... 코드 작성 및 테스트 ...
|
|
109
|
+
|
|
110
|
+
# 4. 커밋
|
|
111
|
+
git add .
|
|
112
|
+
git commit -m "..."
|
|
113
|
+
|
|
114
|
+
# 5. Push
|
|
115
|
+
git push origin feature/SPEC-001-new-feature
|
|
116
|
+
|
|
117
|
+
# 6. GitHub에서 PR 생성: feature/SPEC-001-new-feature -> develop
|
|
118
|
+
|
|
119
|
+
# 7. 코드 리뷰 및 승인 후 머지 (develop으로)
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### 사례 2: 빠른 Hotfix (유연한 방식)
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
# 긴급 수정이 필요한 경우:
|
|
126
|
+
|
|
127
|
+
# 옵션 1: 권장 방식 (develop 기반)
|
|
128
|
+
git checkout develop
|
|
129
|
+
git checkout -b hotfix/critical-bug
|
|
130
|
+
# ... 수정 ...
|
|
131
|
+
git push origin hotfix/critical-bug
|
|
132
|
+
# PR 생성: hotfix -> develop -> main
|
|
133
|
+
|
|
134
|
+
# 옵션 2: 직접 main 수정 (허용되지만 권장하지 않음)
|
|
135
|
+
git checkout main
|
|
136
|
+
# ... 수정 ...
|
|
137
|
+
git commit -m "Fix critical bug"
|
|
138
|
+
git push origin main # ⚠️ Advisory 경고 표시되지만 진행됨
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
### 사례 3: Release (표준 또는 유연)
|
|
142
|
+
|
|
143
|
+
```bash
|
|
144
|
+
# 표준 방식 (권장):
|
|
145
|
+
git checkout develop
|
|
146
|
+
gh pr create --base main --head develop --title "Release v1.0.0"
|
|
147
|
+
|
|
148
|
+
# 직접 push 방식 (허용):
|
|
149
|
+
git checkout develop
|
|
150
|
+
git push origin main # ⚠️ Advisory 경고 표시되지만 진행됨
|
|
151
|
+
git tag -a v1.0.0 -m "Release v1.0.0"
|
|
152
|
+
git push origin v1.0.0
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 정책 모드 비교
|
|
158
|
+
|
|
159
|
+
### Strict Mode (이전 방식, 현재 비활성)
|
|
160
|
+
|
|
161
|
+
- ❌ main 직접 push 차단
|
|
162
|
+
- ❌ force-push 차단
|
|
163
|
+
- ❌ develop 외 브랜치에서 main 머지 차단
|
|
164
|
+
|
|
165
|
+
### Advisory Mode (현재 활성, v0.3.5+)
|
|
166
|
+
|
|
167
|
+
- ⚠️ main 직접 push 시 경고 + 허용
|
|
168
|
+
- ⚠️ force-push 시 경고 + 허용
|
|
169
|
+
- ⚠️ best practice 권장 + 유연성 제공
|
|
170
|
+
- ✅ 사용자 판단 존중
|
|
171
|
+
|
|
172
|
+
---
|
|
173
|
+
|
|
174
|
+
## 권장 체크리스트
|
|
175
|
+
|
|
176
|
+
프로젝트에 참여하는 모든 팀원은 다음을 권장합니다:
|
|
177
|
+
|
|
178
|
+
- [ ] `.git/hooks/pre-push` 파일 존재 및 실행 가능 (755 권한)
|
|
179
|
+
- [ ] develop 브랜치에서 feature 분기 (권장)
|
|
180
|
+
- [ ] PR 생성 시 대상이 develop (권장)
|
|
181
|
+
- [ ] Release는 develop -> main (권장)
|
|
182
|
+
|
|
183
|
+
**검증 명령**:
|
|
184
|
+
```bash
|
|
185
|
+
ls -la .git/hooks/pre-push
|
|
186
|
+
git branch -vv
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
---
|
|
190
|
+
|
|
191
|
+
## FAQ
|
|
192
|
+
|
|
193
|
+
**Q: develop -> main이 아닌 다른 경로로 머지할 수 있나요?**
|
|
194
|
+
A: 가능합니다. Advisory 경고가 표시되지만 진행됩니다. 단, develop -> main을 권장합니다.
|
|
195
|
+
|
|
196
|
+
**Q: Force-push를 할 수 있나요?**
|
|
197
|
+
A: 가능합니다. 경고가 표시되지만 허용됩니다. 단, 신중하게 사용하세요.
|
|
198
|
+
|
|
199
|
+
**Q: Main으로 직접 commit/push할 수 있나요?**
|
|
200
|
+
A: 가능합니다. Advisory 경고가 표시되지만 진행됩니다.
|
|
201
|
+
|
|
202
|
+
**Q: Hook을 완전히 비활성화할 수 있나요?**
|
|
203
|
+
A: 가능합니다. `.git/hooks/pre-push` 파일을 삭제하거나 실행 권한을 제거하세요.
|
|
204
|
+
|
|
205
|
+
**Q: 왜 Advisory Mode로 변경했나요?**
|
|
206
|
+
A: 사용자의 유연성과 판단을 존중하면서도 best practice를 권장하기 위해서입니다.
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
## 정책 업데이트 이력
|
|
211
|
+
|
|
212
|
+
| 날짜 | 내용 | 담당자 |
|
|
213
|
+
|------|------|--------|
|
|
214
|
+
| 2025-10-17 | 초기 정책 수립 (Strict Mode) | git-manager |
|
|
215
|
+
| 2025-10-17 | Advisory Mode로 전환 (경고만, 차단 안 함) | git-manager |
|
|
216
|
+
|
|
217
|
+
---
|
|
218
|
+
|
|
219
|
+
**이 정책은 권장사항이며, 사용자의 판단에 따라 유연하게 적용할 수 있습니다.**
|
|
220
|
+
**질문이나 제안사항은 팀 리드 또는 Release Engineer와 협의하세요.**
|