timsquad 2.0.0 → 2.1.0
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.
- package/README.md +688 -154
- package/dist/commands/feedback.d.ts.map +1 -1
- package/dist/commands/feedback.js +21 -2
- package/dist/commands/feedback.js.map +1 -1
- package/dist/commands/git/commit.d.ts.map +1 -1
- package/dist/commands/git/commit.js +1 -4
- package/dist/commands/git/commit.js.map +1 -1
- package/dist/commands/improve.d.ts +3 -0
- package/dist/commands/improve.d.ts.map +1 -0
- package/dist/commands/improve.js +286 -0
- package/dist/commands/improve.js.map +1 -0
- package/dist/commands/init.js +3 -2
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/log.d.ts.map +1 -1
- package/dist/commands/log.js +202 -2
- package/dist/commands/log.js.map +1 -1
- package/dist/commands/metrics.d.ts.map +1 -1
- package/dist/commands/metrics.js +404 -99
- package/dist/commands/metrics.js.map +1 -1
- package/dist/commands/retro.d.ts.map +1 -1
- package/dist/commands/retro.js +454 -54
- package/dist/commands/retro.js.map +1 -1
- package/dist/commands/session.d.ts +3 -0
- package/dist/commands/session.d.ts.map +1 -0
- package/dist/commands/session.js +346 -0
- package/dist/commands/session.js.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/dist/lib/template.d.ts.map +1 -1
- package/dist/lib/template.js +66 -1
- package/dist/lib/template.js.map +1 -1
- package/dist/types/feedback.d.ts +52 -1
- package/dist/types/feedback.d.ts.map +1 -1
- package/dist/types/feedback.js +0 -3
- package/dist/types/feedback.js.map +1 -1
- package/dist/types/project.d.ts +1 -1
- package/dist/types/project.d.ts.map +1 -1
- package/dist/types/project.js +3 -1
- package/dist/types/project.js.map +1 -1
- package/package.json +1 -1
- package/templates/common/claude/agents/tsq-dba.md +21 -0
- package/templates/common/claude/agents/tsq-designer.md +19 -0
- package/templates/common/claude/agents/tsq-developer.md +59 -0
- package/templates/common/claude/agents/tsq-planner.md +101 -1
- package/templates/common/claude/agents/tsq-prompter.md +20 -0
- package/templates/common/claude/agents/tsq-qa.md +38 -4
- package/templates/common/claude/agents/tsq-retro.md +25 -0
- package/templates/common/claude/agents/tsq-security.md +31 -0
- package/templates/common/claude/hooks/auto-metrics.sh +165 -0
- package/templates/common/claude/hooks/auto-worklog.sh +245 -0
- package/templates/common/claude/hooks/event-logger.sh +208 -0
- package/templates/common/claude/settings.json +86 -0
- package/templates/common/config.template.yaml +2 -1
- package/templates/common/timsquad/process/phase-checklist.yaml +174 -0
- package/templates/common/timsquad/process/state-machine.xml +12 -0
- package/templates/common/timsquad/process/workflow-base.xml +124 -0
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# TimSquad
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
**AI Agent Development Process Framework**
|
|
4
4
|
|
|
5
|
-
SSOT 기반 문서 체계, 최적화된 에이전트 롤, 회고적 학습을 통해
|
|
5
|
+
> **"AI 시대의 소프트웨어 개발 표준 프로세스"** — SSOT 기반 문서 체계, 최적화된 에이전트 롤, 회고적 학습을 통해 지속적으로 개선되는 고품질 소프트웨어 생성 프레임워크
|
|
6
6
|
|
|
7
7
|
```
|
|
8
8
|
최적화된 롤 정의 + 고도화된 스킬 + 회고적 학습 = 지속적으로 개선되는 고품질 결과물
|
|
@@ -12,12 +12,13 @@ SSOT 기반 문서 체계, 최적화된 에이전트 롤, 회고적 학습을
|
|
|
12
12
|
|
|
13
13
|
## Why TimSquad?
|
|
14
14
|
|
|
15
|
-
| oh-my-* | **TimSquad** |
|
|
16
|
-
|
|
17
|
-
| "Zero learning curve" | **"체계를 세우면 더 잘 된다"** |
|
|
18
|
-
| 알아서
|
|
19
|
-
| 속도
|
|
20
|
-
|
|
|
15
|
+
| | oh-my-* | **TimSquad** |
|
|
16
|
+
|---|---------|------------|
|
|
17
|
+
| 철학 | "Zero learning curve" | **"체계를 세우면 더 잘 된다"** |
|
|
18
|
+
| 의사결정 | LLM이 알아서 | **개발자가 컨트롤** |
|
|
19
|
+
| 우선순위 | 속도 | **품질 + 일관성** |
|
|
20
|
+
| 반복 작업 | LLM이 처리 | **프로그램이 처리 (토큰 절약)** |
|
|
21
|
+
| 학습 | 없음 | **회고적 학습으로 지속 개선** |
|
|
21
22
|
|
|
22
23
|
**For developers who want structure, not magic.**
|
|
23
24
|
|
|
@@ -32,26 +33,136 @@ SSOT 기반 문서 체계, 최적화된 에이전트 롤, 회고적 학습을
|
|
|
32
33
|
- "알아서 해줘" 원하는 사람 → oh-my-claudecode 추천
|
|
33
34
|
- 코딩만 빠르게 하고 싶은 사람 → Claude Code 그냥 사용
|
|
34
35
|
|
|
36
|
+
### 토큰 효율성
|
|
37
|
+
|
|
38
|
+
> **"LLM은 생각하는 일에만, 반복 작업은 프로그램에게"**
|
|
39
|
+
|
|
40
|
+
| 작업 | oh-my-* 방식 | TimSquad 방식 | 절약률 |
|
|
41
|
+
|-----|-------------|--------------|-------|
|
|
42
|
+
| 피드백 분류 | LLM 판단 | YAML 규칙 | **100%** |
|
|
43
|
+
| 로그 저장 | "저장해" 프롬프트 | bash 파이프 | **100%** |
|
|
44
|
+
| 에이전트 선택 | LLM 오케스트레이터 | 프로그램 스케줄러 | **100%** |
|
|
45
|
+
| 메트릭 수집 | LLM 분석 | jq + bash | **100%** |
|
|
46
|
+
| 품질 경고 | LLM 판단 | threshold 체크 | **100%** |
|
|
47
|
+
| **전체** | 100% | 40-60% | **40-60% 절약** |
|
|
48
|
+
|
|
35
49
|
---
|
|
36
50
|
|
|
37
|
-
##
|
|
51
|
+
## 설치
|
|
38
52
|
|
|
39
|
-
###
|
|
53
|
+
### npm (권장)
|
|
40
54
|
|
|
41
|
-
|
|
55
|
+
```bash
|
|
56
|
+
# 전역 설치
|
|
57
|
+
npm install -g timsquad
|
|
42
58
|
|
|
59
|
+
# 또는 npx로 직접 실행
|
|
60
|
+
npx timsquad init
|
|
43
61
|
```
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
62
|
+
|
|
63
|
+
### Git Clone
|
|
64
|
+
|
|
65
|
+
```bash
|
|
66
|
+
git clone https://github.com/sonature-lab/timsquad.git
|
|
67
|
+
cd timsquad
|
|
68
|
+
npm install && npm run build && npm link
|
|
50
69
|
```
|
|
51
70
|
|
|
71
|
+
**요구사항:**
|
|
72
|
+
- Node.js >= 18.0.0
|
|
73
|
+
- [Claude Code](https://claude.ai/claude-code) (에이전트 실행 환경)
|
|
74
|
+
- Git (선택 - `tsq commit`, `tsq pr` 등)
|
|
75
|
+
- GitHub CLI `gh` (선택 - 회고 Issue, Improvement 분석)
|
|
76
|
+
|
|
77
|
+
---
|
|
78
|
+
|
|
79
|
+
## 빠른 시작
|
|
80
|
+
|
|
81
|
+
### 1. 프로젝트 초기화
|
|
82
|
+
|
|
83
|
+
```bash
|
|
84
|
+
# 대화형 초기화
|
|
85
|
+
tsq init
|
|
86
|
+
|
|
87
|
+
# 비대화형
|
|
88
|
+
tsq init -n my-app -t web-service -l 2 -y
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
### 2. 생성되는 구조
|
|
92
|
+
|
|
93
|
+
```
|
|
94
|
+
my-app/
|
|
95
|
+
├── CLAUDE.md # PM 역할 정의 (에이전트 지시사항)
|
|
96
|
+
├── .gitignore # TimSquad 맞춤 설정
|
|
97
|
+
├── .claude/
|
|
98
|
+
│ ├── settings.json # Claude Code 훅 설정
|
|
99
|
+
│ ├── agents/ # 8개 전문 에이전트
|
|
100
|
+
│ │ ├── tsq-planner.md # 기획/설계 (Opus)
|
|
101
|
+
│ │ ├── tsq-developer.md # 코드 구현 (Sonnet)
|
|
102
|
+
│ │ ├── tsq-qa.md # 검증/리뷰
|
|
103
|
+
│ │ ├── tsq-security.md # 보안 검토
|
|
104
|
+
│ │ ├── tsq-dba.md # DB 설계
|
|
105
|
+
│ │ ├── tsq-designer.md # UI/UX 설계
|
|
106
|
+
│ │ ├── tsq-prompter.md # 프롬프트 최적화
|
|
107
|
+
│ │ └── tsq-retro.md # 회고 분석
|
|
108
|
+
│ ├── hooks/ # 이벤트 자동화
|
|
109
|
+
│ │ ├── event-logger.sh # 이벤트 로깅
|
|
110
|
+
│ │ ├── auto-worklog.sh # 작업 로그 자동 생성
|
|
111
|
+
│ │ └── auto-metrics.sh # 메트릭 자동 수집
|
|
112
|
+
│ └── skills/ # 도메인별 스킬셋
|
|
113
|
+
│ ├── backend/node/
|
|
114
|
+
│ ├── frontend/(react, nextjs)/
|
|
115
|
+
│ ├── database/prisma/
|
|
116
|
+
│ ├── methodology/(tdd, bdd, ddd)/
|
|
117
|
+
│ └── ...
|
|
118
|
+
└── .timsquad/
|
|
119
|
+
├── config.yaml # 프로젝트 설정
|
|
120
|
+
├── ssot/ # SSOT 문서 (최대 14개)
|
|
121
|
+
├── process/ # 워크플로우 정의
|
|
122
|
+
├── state/ # 상태 관리 (phase, workspace)
|
|
123
|
+
├── knowledge/ # 프로젝트 지식 베이스
|
|
124
|
+
├── feedback/ # 피드백 저장소
|
|
125
|
+
├── logs/ # 작업 로그
|
|
126
|
+
└── retrospective/ # 회고 데이터
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### 3. Claude Code에서 작업
|
|
130
|
+
|
|
131
|
+
```bash
|
|
132
|
+
claude # Claude Code 실행
|
|
133
|
+
|
|
134
|
+
# PM(CLAUDE.md)이 자동으로 작업을 분류하고 에이전트에 위임
|
|
135
|
+
@tsq-planner "PRD 작성 시작해줘"
|
|
136
|
+
@tsq-developer "로그인 API 구현해줘"
|
|
137
|
+
@tsq-qa "코드 리뷰해줘"
|
|
138
|
+
```
|
|
139
|
+
|
|
140
|
+
### 4. CLI로 작업 관리
|
|
141
|
+
|
|
142
|
+
```bash
|
|
143
|
+
tsq status # 현재 상태 확인
|
|
144
|
+
tsq q "버튼 색상 변경" # Quick 모드 (간단한 작업)
|
|
145
|
+
tsq f "결제 기능 추가" # Full 모드 (SSOT 검증)
|
|
146
|
+
tsq log today # 오늘 작업 로그
|
|
147
|
+
```
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## 핵심 개념
|
|
152
|
+
|
|
153
|
+
### SSOT (Single Source of Truth)
|
|
154
|
+
|
|
155
|
+
모든 에이전트가 참조하는 단일 문서 체계. 프로젝트 레벨에 따라 필수 문서 수가 결정됩니다:
|
|
156
|
+
|
|
157
|
+
| 레벨 | 설명 | 필수 문서 | 대상 |
|
|
158
|
+
|------|------|----------|------|
|
|
159
|
+
| **Level 1** (MVP) | 최소 문서, 빠른 개발 | PRD, Planning, Requirements, Service Spec, Data Design (5개) | 사이드 프로젝트, PoC |
|
|
160
|
+
| **Level 2** (Standard) | 균형 잡힌 문서화 | Level 1 + Glossary, Functional Spec, UI/UX Spec, Error Codes, Env Config, Test Spec (11개) | 일반 프로젝트, 스타트업 |
|
|
161
|
+
| **Level 3** (Enterprise) | 완전한 문서화 + 추적성 | Level 2 + Deployment Spec, Integration Spec, Security Spec (14개) | 엔터프라이즈, fintech |
|
|
162
|
+
|
|
52
163
|
### 분수(Fountain) 모델
|
|
53
164
|
|
|
54
|
-
SSOT는 순차적 의존성, 실제 작업은 병렬
|
|
165
|
+
SSOT는 순차적 의존성, 실제 작업은 병렬 실행:
|
|
55
166
|
|
|
56
167
|
```
|
|
57
168
|
SSOT (순차: PRD → 기획 → 설계)
|
|
@@ -73,219 +184,587 @@ SSOT (순차: PRD → 기획 → 설계)
|
|
|
73
184
|
회고적 학습 → 템플릿/프롬프트 자동 개선
|
|
74
185
|
```
|
|
75
186
|
|
|
76
|
-
###
|
|
187
|
+
### 프로젝트 타입
|
|
77
188
|
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
├── tsq-prompter.md # 프롬프트 최적화
|
|
87
|
-
└── tsq-retro.md # 회고 분석
|
|
88
|
-
```
|
|
189
|
+
| 타입 | 설명 | 추가 필수 문서 |
|
|
190
|
+
|------|------|--------------|
|
|
191
|
+
| `web-service` | SaaS, 풀스택 웹 서비스 | UI/UX Spec |
|
|
192
|
+
| `web-app` | BaaS 기반 (Supabase/Firebase) | UI/UX Spec, Data Design |
|
|
193
|
+
| `api-backend` | API 서버, 마이크로서비스 | - |
|
|
194
|
+
| `platform` | 프레임워크, SDK | Integration Spec, Glossary |
|
|
195
|
+
| `fintech` | 거래소, 결제 (Level 3 강제) | Security Spec, Error Codes, Deployment Spec |
|
|
196
|
+
| `infra` | DevOps, 자동화 | Deployment Spec, Env Config |
|
|
89
197
|
|
|
90
|
-
|
|
198
|
+
---
|
|
91
199
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
| 로그 저장 | "저장해" 프롬프트 | bash 파이프 | **100%** |
|
|
96
|
-
| 에이전트 선택 | LLM 오케스트레이터 | 프로그램 스케줄러 | **100%** |
|
|
97
|
-
| **전체** | 100% | 40-60% | **40-60% 절약** |
|
|
200
|
+
## 에이전트 시스템
|
|
201
|
+
|
|
202
|
+
PM(CLAUDE.md)이 총괄하며, 작업 유형에 따라 전문 에이전트에게 위임합니다:
|
|
98
203
|
|
|
99
|
-
|
|
204
|
+
| 에이전트 | 모델 | 역할 | 도구 |
|
|
205
|
+
|----------|------|------|------|
|
|
206
|
+
| **PM** (CLAUDE.md) | Opus | 총괄 관리, 작업 분류, SSOT 관리 | 전체 |
|
|
207
|
+
| `@tsq-planner` | Opus | 기획, 아키텍처, API 설계 | Read, Write, Edit, Bash, Grep, Glob, WebSearch |
|
|
208
|
+
| `@tsq-developer` | Sonnet | 코드 구현, 테스트, 리팩토링 | Read, Write, Edit, Bash, Grep, Glob |
|
|
209
|
+
| `@tsq-qa` | Sonnet | 코드 리뷰, 테스트 검증 | Read, Bash, Grep, Glob |
|
|
210
|
+
| `@tsq-security` | Sonnet | 보안 리뷰, 취약점 분석 | Read, Bash, Grep, Glob |
|
|
211
|
+
| `@tsq-dba` | Sonnet | DB 설계, 쿼리 최적화 | Read, Write, Edit, Bash |
|
|
212
|
+
| `@tsq-designer` | Sonnet | UI/UX 설계 | Read, Write, Edit |
|
|
213
|
+
| `@tsq-prompter` | Sonnet | 프롬프트 최적화 | Read, Write, Edit, Grep |
|
|
214
|
+
| `@tsq-retro` | Sonnet | 회고 분석, 학습 | Read, Write, Grep, Glob |
|
|
100
215
|
|
|
101
|
-
|
|
216
|
+
### 위임 규칙
|
|
217
|
+
|
|
218
|
+
```
|
|
219
|
+
기획/PRD/아키텍처 → @tsq-planner
|
|
220
|
+
코드/테스트/리팩토링 → @tsq-developer (SSOT 필수)
|
|
221
|
+
코드 리뷰/검증 → @tsq-qa
|
|
222
|
+
보안 검토 → @tsq-security
|
|
223
|
+
기타 → PM이 직접 처리
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Workspace 동기화
|
|
227
|
+
|
|
228
|
+
에이전트 간 작업 상태는 `.timsquad/state/workspace.xml`로 실시간 공유됩니다:
|
|
102
229
|
|
|
103
230
|
```xml
|
|
104
|
-
<
|
|
105
|
-
<
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
</section>
|
|
111
|
-
<output-template>...</output-template>
|
|
112
|
-
</generator>
|
|
231
|
+
<workspace>
|
|
232
|
+
<current-task>로그인 API 구현</current-task>
|
|
233
|
+
<completed-tasks>...</completed-tasks>
|
|
234
|
+
<blockers>...</blockers>
|
|
235
|
+
<handoff-notes>...</handoff-notes>
|
|
236
|
+
</workspace>
|
|
113
237
|
```
|
|
114
238
|
|
|
115
239
|
---
|
|
116
240
|
|
|
117
|
-
##
|
|
241
|
+
## CLI 명령어 상세
|
|
118
242
|
|
|
119
|
-
###
|
|
243
|
+
### 프로젝트 관리
|
|
120
244
|
|
|
121
245
|
```bash
|
|
122
|
-
#
|
|
123
|
-
|
|
246
|
+
tsq init # 프로젝트 초기화
|
|
247
|
+
tsq init -n my-app -t web-service -l 2 -y # 비대화형
|
|
248
|
+
tsq status # 프로젝트 상태 확인
|
|
249
|
+
tsq status --ssot # SSOT 문서 상태만
|
|
250
|
+
tsq status --phase # 현재 Phase만
|
|
251
|
+
tsq status --metrics # 메트릭만
|
|
252
|
+
tsq status --all # 전체 상세
|
|
253
|
+
```
|
|
124
254
|
|
|
125
|
-
|
|
126
|
-
|
|
255
|
+
### 작업 모드
|
|
256
|
+
|
|
257
|
+
```bash
|
|
258
|
+
# Quick 모드 - 간단한 작업 (SSOT 검증 생략)
|
|
259
|
+
tsq q "버튼 색상을 파란색으로 변경"
|
|
260
|
+
tsq quick "오타 수정"
|
|
261
|
+
|
|
262
|
+
# Full 모드 - 본격 작업 (SSOT 검증 포함)
|
|
263
|
+
tsq f "사용자 인증 기능 추가"
|
|
264
|
+
tsq full "결제 모듈 구현"
|
|
127
265
|
```
|
|
128
266
|
|
|
129
|
-
|
|
267
|
+
**Quick vs Full 판단 기준:**
|
|
268
|
+
|
|
269
|
+
| | Quick (`tsq q`) | Full (`tsq f`) |
|
|
270
|
+
|---|---|---|
|
|
271
|
+
| SSOT 검증 | 생략 | 필수 |
|
|
272
|
+
| 라우팅 | `@tsq-developer` 직행 | `@tsq-planner` 경유 |
|
|
273
|
+
| 적합한 작업 | CSS 수정, 오타, 간단한 버그 | 새 기능, API 변경, DB 변경 |
|
|
274
|
+
| 복잡도 판단 | 자동 (키워드 분석) | - |
|
|
275
|
+
| 로그 위치 | `logs/quick/` | `logs/{date}-planner.md` |
|
|
276
|
+
|
|
277
|
+
Quick 모드는 작업 복잡도를 자동 분석합니다. "API 변경", "DB 스키마", "인증" 등 복잡한 키워드가 감지되면 Full 모드 전환을 제안합니다.
|
|
278
|
+
|
|
279
|
+
### 작업 로그
|
|
130
280
|
|
|
131
281
|
```bash
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
282
|
+
tsq log add developer work "인증 모듈 구현 완료"
|
|
283
|
+
tsq log add qa decision "E2E 테스트 프레임워크로 Playwright 선택"
|
|
284
|
+
tsq log add developer error "Prisma migration 실패"
|
|
285
|
+
tsq log list # 로그 파일 목록
|
|
286
|
+
tsq log list developer # 특정 에이전트만
|
|
287
|
+
tsq log today # 오늘 로그
|
|
288
|
+
tsq log today developer # 오늘 특정 에이전트 로그
|
|
289
|
+
tsq log view 2026-02-13-developer.md # 특정 파일
|
|
290
|
+
tsq log search "인증" # 키워드 검색
|
|
291
|
+
tsq log summary # 오늘 요약
|
|
292
|
+
tsq log summary 2026-02-10 # 특정 날짜 요약
|
|
137
293
|
```
|
|
138
294
|
|
|
139
|
-
|
|
295
|
+
**로그 타입:**
|
|
140
296
|
|
|
141
|
-
|
|
297
|
+
| 타입 | 설명 | 예시 |
|
|
298
|
+
|------|------|------|
|
|
299
|
+
| `work` | 수행한 작업 | "로그인 API 구현 완료" |
|
|
300
|
+
| `decision` | 내린 결정 | "JWT 대신 세션 방식 채택" |
|
|
301
|
+
| `error` | 발생한 에러 | "DB connection timeout" |
|
|
302
|
+
| `feedback` | 피드백 기록 | "API 응답 형식 변경 필요" |
|
|
303
|
+
| `handoff` | 작업 인수인계 | "보안 검토 필요 → @tsq-security" |
|
|
142
304
|
|
|
143
|
-
|
|
305
|
+
#### 로그 압축 (`tsq log compact`)
|
|
306
|
+
|
|
307
|
+
오래된 로그를 압축하여 디스크를 절약합니다:
|
|
144
308
|
|
|
145
309
|
```bash
|
|
146
|
-
#
|
|
147
|
-
tsq
|
|
310
|
+
tsq log compact # 기본 30일 이상 로그 압축
|
|
311
|
+
tsq log compact --days 14 # 14일 이상 로그 압축
|
|
312
|
+
tsq log compact --dry-run # 미리보기 (실제 삭제 안 함)
|
|
313
|
+
```
|
|
148
314
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
315
|
+
**압축 방식:**
|
|
316
|
+
- **세션 JSONL** → 월별 summary JSON으로 통합 (이벤트 수, 도구 사용, 실패율 등 통계 보존)
|
|
317
|
+
- **작업 로그 MD** → 월별 archive MD로 병합
|
|
318
|
+
- 원본 파일은 삭제되어 디스크 절약
|
|
319
|
+
- `--dry-run`으로 먼저 확인 후 실행 권장
|
|
320
|
+
|
|
321
|
+
### Git 연동
|
|
322
|
+
|
|
323
|
+
```bash
|
|
324
|
+
tsq commit # 대화형 커밋
|
|
325
|
+
tsq commit -m "feat: 로그인 추가" # 메시지 지정
|
|
326
|
+
tsq commit -a -m "fix: 버그 수정" # 전체 스테이지 + 커밋
|
|
327
|
+
tsq pr # Pull Request 생성
|
|
328
|
+
tsq sync # fetch + rebase
|
|
329
|
+
tsq release # 태그 + GitHub Release
|
|
153
330
|
```
|
|
154
331
|
|
|
155
|
-
###
|
|
332
|
+
### SSOT 감시
|
|
156
333
|
|
|
334
|
+
```bash
|
|
335
|
+
tsq watch start # SSOT 파일 변경 감시 시작
|
|
336
|
+
tsq watch stop # 감시 중지
|
|
337
|
+
tsq watch status # 감시 상태 확인
|
|
157
338
|
```
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
├── generators/ # 문서 생성기 (XML)
|
|
167
|
-
├── state/ # 현재 상태
|
|
168
|
-
├── knowledge/ # 프로젝트 지식
|
|
169
|
-
├── feedback/ # 피드백 시스템
|
|
170
|
-
├── retrospective/ # 회고 시스템
|
|
171
|
-
└── logs/ # 작업 로그
|
|
339
|
+
|
|
340
|
+
`.timsquad/ssot/` 디렉토리의 변경을 실시간 감지하여 `ssot-changes.log`에 기록합니다.
|
|
341
|
+
|
|
342
|
+
### 세션 관리
|
|
343
|
+
|
|
344
|
+
```bash
|
|
345
|
+
tsq session list # 세션 목록
|
|
346
|
+
tsq session view <id> # 세션 상세
|
|
172
347
|
```
|
|
173
348
|
|
|
174
|
-
|
|
349
|
+
---
|
|
350
|
+
|
|
351
|
+
## 피드백 시스템
|
|
352
|
+
|
|
353
|
+
### 피드백 라우팅
|
|
354
|
+
|
|
355
|
+
피드백을 3단계로 분류하여 적절한 담당자에게 자동 전달합니다:
|
|
175
356
|
|
|
176
357
|
```bash
|
|
177
|
-
#
|
|
178
|
-
|
|
358
|
+
tsq feedback "테스트 실패: login API 404 에러" # → Level 1
|
|
359
|
+
tsq feedback "API 응답 구조가 프론트와 안 맞음" # → Level 2
|
|
360
|
+
tsq feedback "결제 기능 스펙 변경 필요" # → Level 3
|
|
361
|
+
```
|
|
179
362
|
|
|
180
|
-
|
|
181
|
-
@tsq-
|
|
182
|
-
@tsq-
|
|
183
|
-
|
|
363
|
+
```
|
|
364
|
+
Level 1 (구현 수정) → @tsq-developer → 승인 불필요, 즉시 수정
|
|
365
|
+
Level 2 (설계 수정) → @tsq-planner → SSOT 업데이트 필요
|
|
366
|
+
Level 3 (기획 수정) → 사용자 → 승인 필수
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
### 자동 분류 트리거 (15종)
|
|
370
|
+
|
|
371
|
+
| Level | 트리거 | 키워드 예시 |
|
|
372
|
+
|-------|--------|-----------|
|
|
373
|
+
| **1** (구현) | `test_failure` | 테스트 실패, test fail |
|
|
374
|
+
| **1** | `lint_error` | lint, eslint, prettier |
|
|
375
|
+
| **1** | `type_error` | 타입 에러, type error, TS2304 |
|
|
376
|
+
| **1** | `runtime_error` | 런타임 에러, crash, 500, timeout |
|
|
377
|
+
| **1** | `code_style_violation` | 코드 스타일, convention |
|
|
378
|
+
| **2** (설계) | `architecture_issue` | 아키텍처, 구조 변경, 레이어 |
|
|
379
|
+
| **2** | `api_mismatch` | API 불일치, 인터페이스, 스펙 |
|
|
380
|
+
| **2** | `performance_problem` | 성능, 느림, N+1, 메모리 |
|
|
381
|
+
| **2** | `scalability_concern` | 확장성, 스케일링, 부하 |
|
|
382
|
+
| **2** | `security_vulnerability` | 보안, 취약점, XSS, SQL injection |
|
|
383
|
+
| **3** (기획) | `requirement_ambiguity` | 요구사항 모호, 스펙 불명확 |
|
|
384
|
+
| **3** | `scope_change` | 범위 변경, 추가 기능, 일정 변경 |
|
|
385
|
+
| **3** | `business_logic_error` | 비즈니스 로직, 정책, 규칙 |
|
|
386
|
+
| **3** | `feature_request` | 기능 요청, 새 기능 |
|
|
387
|
+
| **3** | `stakeholder_feedback` | 피드백, 리뷰 결과, 고객 의견 |
|
|
388
|
+
|
|
389
|
+
### 피드백 저장
|
|
390
|
+
|
|
391
|
+
```
|
|
392
|
+
.timsquad/
|
|
393
|
+
├── logs/{date}-feedback.md # 사람이 읽는 로그
|
|
394
|
+
└── feedback/
|
|
395
|
+
├── FB-0001.json # 구조화 데이터 (회고 집계용)
|
|
396
|
+
├── FB-0002.json
|
|
397
|
+
└── phase-planning-2026-02-13.json # Phase KPT 회고
|
|
398
|
+
```
|
|
399
|
+
|
|
400
|
+
**FB JSON 구조:**
|
|
401
|
+
```json
|
|
402
|
+
{
|
|
403
|
+
"id": "FB-0001",
|
|
404
|
+
"timestamp": "2026-02-13T10:30:00Z",
|
|
405
|
+
"type": "user-feedback",
|
|
406
|
+
"level": 1,
|
|
407
|
+
"trigger": "test_failure",
|
|
408
|
+
"message": "login API 404 에러",
|
|
409
|
+
"routeTo": "developer",
|
|
410
|
+
"tags": ["api", "testing"]
|
|
411
|
+
}
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
### 자동 피드백 생성
|
|
415
|
+
|
|
416
|
+
Claude Code 세션 종료 시 도구 실패가 **3회 이상**이면 `auto-worklog.sh`가 자동으로 `FB-XXXX.json`을 생성합니다:
|
|
417
|
+
|
|
418
|
+
```json
|
|
419
|
+
{
|
|
420
|
+
"id": "FB-0005",
|
|
421
|
+
"type": "auto-feedback",
|
|
422
|
+
"level": 1,
|
|
423
|
+
"trigger": "tool_failure",
|
|
424
|
+
"message": "세션 abc123에서 도구 실패 5회 감지. 실패 도구: Bash(3) Edit(2)",
|
|
425
|
+
"routeTo": "developer",
|
|
426
|
+
"tags": ["auto-detected", "tool_failure", "abc123"]
|
|
427
|
+
}
|
|
184
428
|
```
|
|
185
429
|
|
|
430
|
+
수동 개입 없이 문제 패턴이 자동으로 축적되어 회고 시 분석됩니다.
|
|
431
|
+
|
|
186
432
|
---
|
|
187
433
|
|
|
188
|
-
##
|
|
434
|
+
## 회고 시스템 (Retrospective)
|
|
435
|
+
|
|
436
|
+
TimSquad의 핵심 차별점인 **회고적 학습 파이프라인**입니다. 축적된 데이터를 분석하여 에이전트 프롬프트, SSOT 템플릿, 워크플로우를 지속적으로 개선합니다.
|
|
437
|
+
|
|
438
|
+
### 전체 파이프라인
|
|
439
|
+
|
|
440
|
+
```
|
|
441
|
+
[Claude Code 세션]
|
|
442
|
+
│
|
|
443
|
+
▼
|
|
444
|
+
[Hook 자동화] ─── event-logger.sh ──→ 이벤트 JSONL 기록
|
|
445
|
+
(토큰 0) │
|
|
446
|
+
├──→ auto-worklog.sh ──→ 작업 로그 + 품질 경고 + 자동 피드백
|
|
447
|
+
└──→ auto-metrics.sh ──→ 누적 메트릭 갱신
|
|
448
|
+
│
|
|
449
|
+
▼
|
|
450
|
+
[피드백 축적] ─── tsq feedback ──→ FB-XXXX.json (수동)
|
|
451
|
+
auto-worklog ──→ FB-XXXX.json (자동, 실패 3회+)
|
|
452
|
+
tsq retro phase ──→ phase-{name}-{date}.json (KPT)
|
|
453
|
+
│
|
|
454
|
+
▼
|
|
455
|
+
[회고 사이클] ─── tsq retro auto ──→ 수집 → 분석 → 리포트 → 적용
|
|
456
|
+
│ │
|
|
457
|
+
│ ├──→ cycle-N.md (리포트)
|
|
458
|
+
│ ├──→ GitHub Issue (retro-feedback 라벨)
|
|
459
|
+
│ └──→ 피드백 아카이브
|
|
460
|
+
│
|
|
461
|
+
▼
|
|
462
|
+
[개선 분석] ─── tsq improve fetch ──→ GitHub Issue 수집
|
|
463
|
+
tsq improve analyze ──→ 패턴 분석 + 개선 제안
|
|
464
|
+
tsq improve summary ──→ 결과 확인
|
|
465
|
+
│
|
|
466
|
+
▼
|
|
467
|
+
[적용] ──→ 에이전트 프롬프트 개선
|
|
468
|
+
SSOT 템플릿 최적화
|
|
469
|
+
워크플로우 조정
|
|
470
|
+
피드백 라우팅 정확도 향상
|
|
471
|
+
```
|
|
472
|
+
|
|
473
|
+
### Phase 회고 (KPT)
|
|
189
474
|
|
|
190
|
-
|
|
475
|
+
개발 단계별로 KPT(Keep-Problem-Try) 프레임워크 회고를 실행합니다:
|
|
191
476
|
|
|
192
477
|
```bash
|
|
193
|
-
tsq
|
|
194
|
-
tsq
|
|
195
|
-
tsq
|
|
196
|
-
tsq
|
|
197
|
-
tsq retro
|
|
478
|
+
tsq retro phase planning # planning 단계 회고
|
|
479
|
+
tsq retro phase implementation # implementation 단계 회고
|
|
480
|
+
tsq retro phase review # review 단계 회고
|
|
481
|
+
tsq retro phase security # security 단계 회고
|
|
482
|
+
tsq retro phase deployment # deployment 단계 회고
|
|
198
483
|
```
|
|
199
484
|
|
|
200
|
-
|
|
485
|
+
대화형으로 진행:
|
|
486
|
+
```
|
|
487
|
+
? Keep (잘 된 것) 추가: SSOT 문서 기반 구현으로 일관성 확보
|
|
488
|
+
? 더 추가? (y/n): n
|
|
489
|
+
? Problem (문제점) 추가: API 스펙 변경이 프론트에 자동 전파 안 됨
|
|
490
|
+
? 더 추가? (y/n): n
|
|
491
|
+
? Try (다음에 시도) 추가: API 변경 시 프론트 자동 알림 추가
|
|
492
|
+
? 더 추가? (y/n): n
|
|
493
|
+
✓ Phase retrospective saved
|
|
494
|
+
```
|
|
495
|
+
|
|
496
|
+
저장: `.timsquad/feedback/phase-{phase}-{date}.json`
|
|
497
|
+
|
|
498
|
+
### 회고 사이클 (수동)
|
|
499
|
+
|
|
500
|
+
5단계로 구성된 전체 회고 사이클:
|
|
201
501
|
|
|
202
502
|
```bash
|
|
203
|
-
tsq
|
|
204
|
-
tsq
|
|
503
|
+
tsq retro start # 1. 새 사이클 시작
|
|
504
|
+
tsq retro collect # 2. 로그 및 메트릭 수집
|
|
505
|
+
tsq retro analyze # 3. 패턴 분석
|
|
506
|
+
tsq retro report # 4. 리포트 생성 + GitHub Issue
|
|
507
|
+
tsq retro apply # 5. 개선 적용 (피드백 아카이브)
|
|
508
|
+
tsq retro status # 현재 사이클 상태 확인
|
|
205
509
|
```
|
|
206
510
|
|
|
207
|
-
|
|
511
|
+
**상태 전이:**
|
|
512
|
+
```
|
|
513
|
+
idle → collecting → analyzing → reporting → applying → idle
|
|
514
|
+
```
|
|
515
|
+
|
|
516
|
+
각 단계는 중간에 중단해도 이어서 진행할 수 있습니다.
|
|
517
|
+
|
|
518
|
+
### 자동 회고 (`tsq retro auto`)
|
|
519
|
+
|
|
520
|
+
위 5단계를 원클릭으로 자동 실행합니다:
|
|
208
521
|
|
|
209
522
|
```bash
|
|
210
|
-
tsq
|
|
211
|
-
tsq
|
|
212
|
-
|
|
213
|
-
|
|
523
|
+
tsq retro auto # 전체 자동 실행
|
|
524
|
+
tsq retro auto --local # GitHub Issue 생성 생략
|
|
525
|
+
```
|
|
526
|
+
|
|
527
|
+
**실행 흐름:**
|
|
528
|
+
```
|
|
529
|
+
[1/4] Cycle 3 started
|
|
530
|
+
[2/4] Metrics collected (15 logs, 4 agents)
|
|
531
|
+
[3/4] Analysis skipped (programmatic mode)
|
|
532
|
+
[4/4] Cycle 3 completed
|
|
533
|
+
→ Improvement analysis 자동 실행 중...
|
|
534
|
+
→ Improvement analysis completed
|
|
535
|
+
결과 확인: tsq improve summary
|
|
214
536
|
```
|
|
215
537
|
|
|
216
|
-
|
|
538
|
+
**자동으로 수행하는 작업:**
|
|
539
|
+
1. 새 사이클 시작 (또는 기존 사이클 이어서 진행)
|
|
540
|
+
2. 로그 파일 수집 + 에이전트별 통계 생성
|
|
541
|
+
3. Phase 회고 + 피드백 데이터 집계 리포트 생성
|
|
542
|
+
4. GitHub Issue 자동 생성 (라벨: `retro-feedback`)
|
|
543
|
+
5. 처리된 피드백 아카이브 (`feedback/` → `archive-cycle-N/`)
|
|
544
|
+
6. `tsq improve fetch` + `tsq improve analyze` 자동 연결
|
|
545
|
+
|
|
546
|
+
### 개선 분석 (`tsq improve`)
|
|
547
|
+
|
|
548
|
+
회고에서 생성된 GitHub Issue를 분석하여 개선 패턴을 도출합니다:
|
|
217
549
|
|
|
218
550
|
```bash
|
|
219
|
-
tsq
|
|
220
|
-
tsq
|
|
221
|
-
tsq
|
|
222
|
-
tsq
|
|
551
|
+
tsq improve fetch # retro-feedback 라벨 Issue 수집
|
|
552
|
+
tsq improve fetch --limit 50 # 최대 50개 수집
|
|
553
|
+
tsq improve fetch --repo org/repo # 특정 레포
|
|
554
|
+
tsq improve analyze # 패턴 분석 + 개선 제안
|
|
555
|
+
tsq improve summary # 결과 확인
|
|
223
556
|
```
|
|
224
557
|
|
|
225
|
-
|
|
558
|
+
**분석 패턴 카테고리:**
|
|
226
559
|
|
|
227
|
-
|
|
560
|
+
| 카테고리 | 설명 | 개선 대상 |
|
|
561
|
+
|---------|------|----------|
|
|
562
|
+
| `agent-prompt` | 에이전트 지시/역할 개선 | `.claude/agents/*.md` |
|
|
563
|
+
| `ssot-template` | SSOT 템플릿 최적화 | `.timsquad/ssot/*.md` |
|
|
564
|
+
| `workflow` | 단계/전환 프로세스 개선 | `.timsquad/process/` |
|
|
565
|
+
| `feedback-routing` | 피드백 분류 정확도 향상 | 라우팅 규칙 |
|
|
566
|
+
| `config` | 프로젝트 설정 옵션 | `config.yaml` |
|
|
567
|
+
| `tooling` | CLI/명령어 UX 개선 | CLI 코드 |
|
|
228
568
|
|
|
229
|
-
|
|
230
|
-
|-----|------|----------|-----------|
|
|
231
|
-
| **web-service** | SaaS, 웹앱 | ui-ux-spec | 선택적 |
|
|
232
|
-
| **api-backend** | API 서버, 마이크로서비스 | - | 선택적 |
|
|
233
|
-
| **platform** | 프레임워크, SDK | integration-spec | 선택적 |
|
|
234
|
-
| **fintech** | 거래소, 결제 | security-spec | **필수** |
|
|
235
|
-
| **infra** | DevOps, 자동화 | deployment-spec | 선택적 |
|
|
569
|
+
저장: `.timsquad-improve/` 디렉토리
|
|
236
570
|
|
|
237
|
-
|
|
571
|
+
### 회고 리포트 구조
|
|
238
572
|
|
|
239
|
-
|
|
573
|
+
`tsq retro report` 또는 `tsq retro auto`가 생성하는 리포트:
|
|
240
574
|
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
| **1 (MVP)** | 최소 문서 | prd, requirements, service-spec, data-design | 사이드 프로젝트, PoC |
|
|
244
|
-
| **2 (Standard)** | 표준 문서 | L1 + glossary, error-codes, test-spec, ADR | 일반 프로젝트, 스타트업 |
|
|
245
|
-
| **3 (Enterprise)** | 전체 문서 | L2 + security-spec, deployment-spec | 엔터프라이즈, fintech |
|
|
575
|
+
```markdown
|
|
576
|
+
# Retrospective Report - Cycle 3
|
|
246
577
|
|
|
247
|
-
|
|
578
|
+
## Summary
|
|
579
|
+
- Phase Retros: 3건
|
|
580
|
+
- Feedbacks: 12건 (L1: 8, L2: 3, L3: 1)
|
|
581
|
+
|
|
582
|
+
## By Level
|
|
583
|
+
### Level 1 (구현 수정) - 8건
|
|
584
|
+
- 테스트 실패 관련 3건
|
|
585
|
+
- 타입 에러 관련 2건
|
|
586
|
+
- 도구 실패 자동 감지 3건
|
|
248
587
|
|
|
249
|
-
|
|
588
|
+
### Level 2 (설계 수정) - 3건
|
|
589
|
+
- API 스펙 불일치 2건
|
|
590
|
+
- 성능 이슈 1건
|
|
250
591
|
|
|
251
|
-
|
|
592
|
+
### Level 3 (기획 수정) - 1건
|
|
593
|
+
- 요구사항 변경 1건
|
|
252
594
|
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
595
|
+
## By Phase
|
|
596
|
+
### Implementation
|
|
597
|
+
- Keep: TDD 적용으로 버그 조기 발견
|
|
598
|
+
- Problem: API 스펙 변경이 프론트에 전파 안 됨
|
|
599
|
+
- Try: API 변경 시 자동 알림 추가
|
|
600
|
+
|
|
601
|
+
## Top Issues
|
|
602
|
+
1. API 스펙 불일치 (3회 반복)
|
|
603
|
+
2. 테스트 커버리지 미달 (2회 반복)
|
|
604
|
+
```
|
|
258
605
|
|
|
259
606
|
---
|
|
260
607
|
|
|
261
|
-
##
|
|
608
|
+
## 메트릭 시스템
|
|
262
609
|
|
|
263
|
-
|
|
610
|
+
### 수집 및 조회
|
|
264
611
|
|
|
265
612
|
```bash
|
|
266
|
-
tsq
|
|
613
|
+
tsq metrics collect # 메트릭 수집
|
|
614
|
+
tsq metrics collect --days 7 # 최근 7일만 수집
|
|
615
|
+
tsq metrics summary # 최신 메트릭 요약
|
|
616
|
+
tsq metrics trend # 기간별 트렌드 비교
|
|
617
|
+
tsq metrics trend --n 5 # 최근 5개 기간 비교
|
|
618
|
+
tsq metrics export # JSON 내보내기
|
|
619
|
+
tsq metrics export --output report.json
|
|
267
620
|
```
|
|
268
621
|
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
622
|
+
### 수집 항목
|
|
623
|
+
|
|
624
|
+
**프로세스 메트릭:**
|
|
625
|
+
|
|
626
|
+
| 항목 | 설명 |
|
|
627
|
+
|------|------|
|
|
628
|
+
| Log Activity | 에이전트별 로그 파일 빈도 |
|
|
629
|
+
| Decision Ratio | 의사결정 로그 비율 |
|
|
630
|
+
| Error Rate | 에러 로그 비율 |
|
|
631
|
+
|
|
632
|
+
**피드백 메트릭:**
|
|
633
|
+
|
|
634
|
+
| 항목 | 설명 |
|
|
635
|
+
|------|------|
|
|
636
|
+
| Total Feedback | 총 피드백 수 |
|
|
637
|
+
| Level 1/2/3 | 레벨별 분포 |
|
|
638
|
+
|
|
639
|
+
**SSOT 건강도:**
|
|
640
|
+
|
|
641
|
+
| 항목 | 설명 |
|
|
642
|
+
|------|------|
|
|
643
|
+
| Completion Rate | SSOT 문서 작성 완료율 (%) |
|
|
644
|
+
| Filled / Total | 작성된 문서 수 / 필수 문서 수 |
|
|
645
|
+
|
|
646
|
+
**세션 & 토큰 메트릭:**
|
|
647
|
+
|
|
648
|
+
| 항목 | 설명 | 기준 |
|
|
649
|
+
|------|------|------|
|
|
650
|
+
| Tool Efficiency | 도구 성공률 (%) | 90%+ 정상 |
|
|
651
|
+
| Cache Hit Rate | 프롬프트 캐시 적중률 | **80%+ 우수** / 60-80% 보통 / **<60% 주의** |
|
|
652
|
+
| Output Tokens/Turn | 턴당 평균 출력 토큰 | - |
|
|
653
|
+
| CLI Adoption | Bash에서 tsq CLI 사용률 (%) | 높을수록 자동화 활용 |
|
|
654
|
+
|
|
655
|
+
### 자동 메트릭 수집 (`auto-metrics.sh`)
|
|
656
|
+
|
|
657
|
+
Claude Code 세션 종료 시 자동으로 세션 JSONL을 분석하여 `.timsquad/retrospective/metrics/latest.json`에 누적합니다. **토큰 비용 0**.
|
|
658
|
+
|
|
659
|
+
누적 수집 항목:
|
|
660
|
+
- 총 세션 수, 총 이벤트 수
|
|
661
|
+
- 도구 사용 횟수, 실패 횟수
|
|
662
|
+
- 서브에이전트 호출 횟수
|
|
663
|
+
- 토큰 (Input, Output, Cache Create, Cache Read)
|
|
664
|
+
- 파생 지표: Tool Efficiency, Cache Hit Rate, CLI Adoption
|
|
665
|
+
|
|
666
|
+
### 품질 경고 (Quality Alerts)
|
|
667
|
+
|
|
668
|
+
`auto-worklog.sh`가 세션 종료 시 자동으로 threshold를 검사합니다:
|
|
669
|
+
|
|
670
|
+
| 경고 | 조건 | 의미 | 조치 |
|
|
671
|
+
|------|------|------|------|
|
|
672
|
+
| Tool Failure Rate | > 10% | 도구 실패 과다 | 에이전트 프롬프트, 권한 설정 점검 |
|
|
673
|
+
| Cache Hit Rate | < 60% | 캐시 비효율 | CLAUDE.md, 에이전트 프롬프트 구조 검토 |
|
|
674
|
+
|
|
675
|
+
경고 발생 시: `.timsquad/logs/{date}-alerts.md`에 자동 기록
|
|
676
|
+
|
|
677
|
+
```markdown
|
|
678
|
+
# Quality Alerts - 2026-02-13
|
|
679
|
+
|
|
680
|
+
> TimSquad 자동 품질 경고 - threshold 초과 시 자동 생성
|
|
681
|
+
|
|
682
|
+
- **[10:45:00]** Tool Failure Rate 15% (> 10%) - 세션 `abc123`
|
|
683
|
+
- 도구 실패 6/40회. 에이전트 프롬프트나 권한 설정 점검
|
|
684
|
+
- **[14:30:00]** Cache Hit Rate 45% (< 60%) - 세션 `def456`
|
|
685
|
+
- 프롬프트 구조 불안정. CLAUDE.md 또는 에이전트 프롬프트 검토
|
|
686
|
+
```
|
|
274
687
|
|
|
275
688
|
---
|
|
276
689
|
|
|
277
|
-
##
|
|
690
|
+
## 자동화 파이프라인
|
|
278
691
|
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
692
|
+
### Claude Code Hook 아키텍처
|
|
693
|
+
|
|
694
|
+
Claude Code 세션 이벤트에 반응하는 3개의 훅 스크립트:
|
|
695
|
+
|
|
696
|
+
```
|
|
697
|
+
SessionStart ───────→ event-logger.sh (세션 시작 로깅)
|
|
698
|
+
PostToolUse ────────→ event-logger.sh (도구 사용 기록)
|
|
699
|
+
PostToolUseFailure ─→ event-logger.sh (도구 실패 + 에러 기록)
|
|
700
|
+
SubagentStart ──────→ event-logger.sh (서브에이전트 시작)
|
|
701
|
+
SubagentStop ───────→ event-logger.sh (서브에이전트 종료)
|
|
702
|
+
Stop ───────────────→ event-logger.sh (에이전트 중단)
|
|
703
|
+
|
|
704
|
+
SessionEnd ─────────→ event-logger.sh ─┬→ auto-worklog.sh (작업 로그 자동 생성)
|
|
705
|
+
│ ├→ 품질 경고 (threshold 체크)
|
|
706
|
+
│ └→ 자동 피드백 (실패 3회+)
|
|
707
|
+
└→ auto-metrics.sh (누적 메트릭 갱신)
|
|
708
|
+
```
|
|
709
|
+
|
|
710
|
+
**모든 자동화는 토큰 비용 0** — bash + jq를 사용한 순수 파일 I/O
|
|
711
|
+
|
|
712
|
+
### event-logger.sh
|
|
713
|
+
|
|
714
|
+
세션의 모든 이벤트를 JSONL 형식으로 기록:
|
|
715
|
+
|
|
716
|
+
```jsonl
|
|
717
|
+
{"timestamp":"10:30:00","event":"SessionStart","session":"abc123"}
|
|
718
|
+
{"timestamp":"10:30:05","event":"PostToolUse","tool":"Read","session":"abc123"}
|
|
719
|
+
{"timestamp":"10:30:10","event":"PostToolUseFailure","tool":"Bash","error":"permission denied","session":"abc123"}
|
|
720
|
+
{"timestamp":"10:35:00","event":"SubagentStart","subagent_type":"developer","session":"abc123"}
|
|
721
|
+
{"timestamp":"10:40:00","event":"SubagentStop","session":"abc123"}
|
|
722
|
+
{"timestamp":"10:45:00","event":"SessionEnd","session":"abc123","total_usage":{"input_tokens":125000,"output_tokens":8500}}
|
|
723
|
+
```
|
|
724
|
+
|
|
725
|
+
저장: `.timsquad/logs/sessions/{date}-{session-id}.jsonl`
|
|
726
|
+
|
|
727
|
+
### auto-worklog.sh
|
|
728
|
+
|
|
729
|
+
세션 종료 시 JSONL을 분석하여 사람이 읽을 수 있는 작업 로그를 자동 생성합니다:
|
|
730
|
+
|
|
731
|
+
```markdown
|
|
732
|
+
## Session abc123 (2026-02-13 10:30)
|
|
733
|
+
| 항목 | 값 | 설명 |
|
|
734
|
+
|------|---|------|
|
|
735
|
+
| Tool Uses | 45 | PostToolUse 이벤트 수 |
|
|
736
|
+
| Failures | 2 | PostToolUseFailure 이벤트 수 |
|
|
737
|
+
| Subagents | 3 | 서브에이전트 호출 수 |
|
|
738
|
+
| Duration | ~15min | 세션 추정 시간 |
|
|
739
|
+
| Input Tokens | 125,000 | 프롬프트 입력 토큰 |
|
|
740
|
+
| Output Tokens | 8,500 | 모델 출력 토큰 |
|
|
741
|
+
| Cache Hit Rate | 82% | 80%+ 우수 / 60-80% 보통 / <60% 주의 |
|
|
742
|
+
|
|
743
|
+
### Top Tools
|
|
744
|
+
Read(15) Edit(12) Bash(8) Grep(5) Glob(3) Write(2)
|
|
745
|
+
```
|
|
746
|
+
|
|
747
|
+
### auto-metrics.sh
|
|
748
|
+
|
|
749
|
+
세션 JSONL을 분석하여 `latest.json`에 누적 메트릭을 갱신합니다. 기존 데이터에 새 세션 데이터를 더하는 방식으로, 여러 세션에 걸친 트렌드를 추적합니다.
|
|
750
|
+
|
|
751
|
+
---
|
|
752
|
+
|
|
753
|
+
## 아키텍처 템플릿
|
|
754
|
+
|
|
755
|
+
`tsq init` 시 포함되는 아키텍처 참조 문서:
|
|
756
|
+
|
|
757
|
+
| 패턴 | 설명 | 적합한 타입 |
|
|
758
|
+
|------|------|-----------|
|
|
759
|
+
| **Hexagonal** (Ports & Adapters) | 외부 의존성 격리 | api-backend, platform |
|
|
760
|
+
| **FSD** (Feature-Sliced Design) | 프론트엔드 기능 단위 분리 | web-app, web-service |
|
|
761
|
+
| **Clean Architecture** | 계층 분리, 의존성 역전 | 범용 |
|
|
762
|
+
|
|
763
|
+
추가로 CQRS, Event Sourcing, Repository 패턴 참조 파일도 포함됩니다.
|
|
285
764
|
|
|
286
765
|
---
|
|
287
766
|
|
|
288
|
-
##
|
|
767
|
+
## 설정
|
|
289
768
|
|
|
290
769
|
`.timsquad/config.yaml`:
|
|
291
770
|
|
|
@@ -311,17 +790,72 @@ methodology:
|
|
|
311
790
|
|
|
312
791
|
---
|
|
313
792
|
|
|
793
|
+
## 프로젝트 구조
|
|
794
|
+
|
|
795
|
+
```
|
|
796
|
+
timsquad/
|
|
797
|
+
├── bin/ # CLI 진입점
|
|
798
|
+
│ └── tsq.js
|
|
799
|
+
├── src/
|
|
800
|
+
│ ├── index.ts # 명령어 등록
|
|
801
|
+
│ ├── commands/ # CLI 명령어 구현
|
|
802
|
+
│ │ ├── init.ts # 프로젝트 초기화
|
|
803
|
+
│ │ ├── status.ts # 상태 확인
|
|
804
|
+
│ │ ├── log.ts # 로그 관리 + 압축
|
|
805
|
+
│ │ ├── retro.ts # 회고 시스템 (수동/자동)
|
|
806
|
+
│ │ ├── feedback.ts # 피드백 라우팅
|
|
807
|
+
│ │ ├── metrics.ts # 메트릭 수집/트렌드
|
|
808
|
+
│ │ ├── quick.ts # Quick 모드
|
|
809
|
+
│ │ ├── full.ts # Full 모드
|
|
810
|
+
│ │ ├── watch.ts # SSOT 감시
|
|
811
|
+
│ │ ├── improve.ts # 개선 분석
|
|
812
|
+
│ │ ├── session.ts # 세션 관리
|
|
813
|
+
│ │ └── git/ # Git 명령어
|
|
814
|
+
│ │ ├── commit.ts
|
|
815
|
+
│ │ ├── pr.ts
|
|
816
|
+
│ │ ├── release.ts
|
|
817
|
+
│ │ └── sync.ts
|
|
818
|
+
│ ├── lib/ # 핵심 라이브러리
|
|
819
|
+
│ ├── types/ # TypeScript 타입
|
|
820
|
+
│ └── utils/ # 유틸리티
|
|
821
|
+
├── templates/ # 프로젝트 타입별 템플릿
|
|
822
|
+
│ ├── common/ # 공통 (에이전트, 훅, 스킬, SSOT)
|
|
823
|
+
│ ├── web-service/
|
|
824
|
+
│ ├── web-app/
|
|
825
|
+
│ ├── api-backend/
|
|
826
|
+
│ ├── platform/
|
|
827
|
+
│ ├── fintech/
|
|
828
|
+
│ └── infra/
|
|
829
|
+
├── scripts/ # 레거시 셸 스크립트
|
|
830
|
+
├── docs/
|
|
831
|
+
│ └── PRD.md # 상세 기획 문서
|
|
832
|
+
└── install/
|
|
833
|
+
```
|
|
834
|
+
|
|
835
|
+
---
|
|
836
|
+
|
|
837
|
+
## Theoretical Background
|
|
838
|
+
|
|
839
|
+
| 이론/논문 | 핵심 개념 | TimSquad 적용 |
|
|
840
|
+
|---------|---------|--------------|
|
|
841
|
+
| **Agentsway** (2025) | Prompting Agent, Retrospective Learning | 프롬프트 최적화, 회고적 학습 |
|
|
842
|
+
| **ACM TOSEM** (2025) | Competency Mapping | 역량 프레임워크, 성과 지표 |
|
|
843
|
+
| **Agentic SE** (2025) | AGENT.md, Meta-Prompt Files | 계층화된 메타-프롬프트 구조 |
|
|
844
|
+
| **FRAME** (2025) | Feedback-Driven Refinement | 레벨별 피드백 라우팅 |
|
|
845
|
+
|
|
846
|
+
---
|
|
847
|
+
|
|
314
848
|
## Roadmap
|
|
315
849
|
|
|
316
850
|
- [x] **Phase 0 (MVP)** - common 템플릿, 기본 에이전트, CLI
|
|
317
|
-
- [
|
|
851
|
+
- [x] **Phase 1** - 자동화 파이프라인, 회고 시스템, 메트릭 고도화
|
|
318
852
|
- [ ] **Phase 2** - Plugin 배포, MCP 서버, 멀티 LLM 지원
|
|
319
853
|
|
|
320
854
|
---
|
|
321
855
|
|
|
322
856
|
## Contributing
|
|
323
857
|
|
|
324
|
-
기여를 환영합니다!
|
|
858
|
+
기여를 환영합니다!
|
|
325
859
|
|
|
326
860
|
1. Fork the repository
|
|
327
861
|
2. Create your feature branch (`git checkout -b feature/amazing-feature`)
|
|
@@ -344,4 +878,4 @@ MIT License - see [LICENSE](LICENSE) for details.
|
|
|
344
878
|
|
|
345
879
|
---
|
|
346
880
|
|
|
347
|
-
**TimSquad v2.
|
|
881
|
+
**TimSquad v2.1** - AI Agent Development Process Framework
|