timsquad 2.0.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/LICENSE +21 -0
- package/README.md +347 -0
- package/bin/tsq.js +6 -0
- package/dist/commands/feedback.d.ts +3 -0
- package/dist/commands/feedback.d.ts.map +1 -0
- package/dist/commands/feedback.js +142 -0
- package/dist/commands/feedback.js.map +1 -0
- package/dist/commands/full.d.ts +3 -0
- package/dist/commands/full.d.ts.map +1 -0
- package/dist/commands/full.js +87 -0
- package/dist/commands/full.js.map +1 -0
- package/dist/commands/git/commit.d.ts +3 -0
- package/dist/commands/git/commit.d.ts.map +1 -0
- package/dist/commands/git/commit.js +88 -0
- package/dist/commands/git/commit.js.map +1 -0
- package/dist/commands/git/index.d.ts +5 -0
- package/dist/commands/git/index.d.ts.map +1 -0
- package/dist/commands/git/index.js +5 -0
- package/dist/commands/git/index.js.map +1 -0
- package/dist/commands/git/pr.d.ts +3 -0
- package/dist/commands/git/pr.d.ts.map +1 -0
- package/dist/commands/git/pr.js +138 -0
- package/dist/commands/git/pr.js.map +1 -0
- package/dist/commands/git/release.d.ts +3 -0
- package/dist/commands/git/release.d.ts.map +1 -0
- package/dist/commands/git/release.js +158 -0
- package/dist/commands/git/release.js.map +1 -0
- package/dist/commands/git/sync.d.ts +3 -0
- package/dist/commands/git/sync.d.ts.map +1 -0
- package/dist/commands/git/sync.js +132 -0
- package/dist/commands/git/sync.js.map +1 -0
- package/dist/commands/init.d.ts +3 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +150 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/log.d.ts +3 -0
- package/dist/commands/log.d.ts.map +1 -0
- package/dist/commands/log.js +271 -0
- package/dist/commands/log.js.map +1 -0
- package/dist/commands/metrics.d.ts +3 -0
- package/dist/commands/metrics.d.ts.map +1 -0
- package/dist/commands/metrics.js +299 -0
- package/dist/commands/metrics.js.map +1 -0
- package/dist/commands/quick.d.ts +3 -0
- package/dist/commands/quick.d.ts.map +1 -0
- package/dist/commands/quick.js +136 -0
- package/dist/commands/quick.js.map +1 -0
- package/dist/commands/retro.d.ts +3 -0
- package/dist/commands/retro.d.ts.map +1 -0
- package/dist/commands/retro.js +280 -0
- package/dist/commands/retro.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +127 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/watch.d.ts +3 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +213 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +50 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/config.d.ts +34 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +108 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/project.d.ts +47 -0
- package/dist/lib/project.d.ts.map +1 -0
- package/dist/lib/project.js +191 -0
- package/dist/lib/project.js.map +1 -0
- package/dist/lib/template.d.ts +33 -0
- package/dist/lib/template.d.ts.map +1 -0
- package/dist/lib/template.js +151 -0
- package/dist/lib/template.js.map +1 -0
- package/dist/types/config.d.ts +75 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +66 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/feedback.d.ts +59 -0
- package/dist/types/feedback.d.ts.map +1 -0
- package/dist/types/feedback.js +26 -0
- package/dist/types/feedback.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +5 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/project.d.ts +89 -0
- package/dist/types/project.d.ts.map +1 -0
- package/dist/types/project.js +44 -0
- package/dist/types/project.js.map +1 -0
- package/dist/utils/colors.d.ts +30 -0
- package/dist/utils/colors.d.ts.map +1 -0
- package/dist/utils/colors.js +54 -0
- package/dist/utils/colors.js.map +1 -0
- package/dist/utils/date.d.ts +25 -0
- package/dist/utils/date.d.ts.map +1 -0
- package/dist/utils/date.js +65 -0
- package/dist/utils/date.js.map +1 -0
- package/dist/utils/fs.d.ts +49 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +84 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/prompts.d.ts +31 -0
- package/dist/utils/prompts.d.ts.map +1 -0
- package/dist/utils/prompts.js +95 -0
- package/dist/utils/prompts.js.map +1 -0
- package/dist/utils/yaml.d.ts +21 -0
- package/dist/utils/yaml.d.ts.map +1 -0
- package/dist/utils/yaml.js +40 -0
- package/dist/utils/yaml.js.map +1 -0
- package/package.json +71 -0
- package/templates/common/CLAUDE.md.template +254 -0
- package/templates/common/claude/agents/tsq-dba.md +290 -0
- package/templates/common/claude/agents/tsq-designer.md +304 -0
- package/templates/common/claude/agents/tsq-developer.md +118 -0
- package/templates/common/claude/agents/tsq-planner.md +90 -0
- package/templates/common/claude/agents/tsq-prompter.md +336 -0
- package/templates/common/claude/agents/tsq-qa.md +134 -0
- package/templates/common/claude/agents/tsq-retro.md +168 -0
- package/templates/common/claude/agents/tsq-security.md +190 -0
- package/templates/common/claude/skills/architecture/SKILL.md +123 -0
- package/templates/common/claude/skills/backend/node/SKILL.md +1015 -0
- package/templates/common/claude/skills/coding/SKILL.md +171 -0
- package/templates/common/claude/skills/database/prisma/SKILL.md +357 -0
- package/templates/common/claude/skills/frontend/nextjs/SKILL.md +279 -0
- package/templates/common/claude/skills/frontend/react/SKILL.md +1729 -0
- package/templates/common/claude/skills/methodology/bdd/SKILL.md +234 -0
- package/templates/common/claude/skills/methodology/ddd/SKILL.md +311 -0
- package/templates/common/claude/skills/methodology/tdd/SKILL.md +512 -0
- package/templates/common/claude/skills/planning/SKILL.md +90 -0
- package/templates/common/claude/skills/security/SKILL.md +234 -0
- package/templates/common/claude/skills/testing/SKILL.md +146 -0
- package/templates/common/claude/skills/typescript/SKILL.md +435 -0
- package/templates/common/config.template.yaml +131 -0
- package/templates/common/timsquad/architectures/clean/ARCHITECTURE.md +49 -0
- package/templates/common/timsquad/architectures/clean/backend.xml +210 -0
- package/templates/common/timsquad/architectures/clean/frontend.xml +148 -0
- package/templates/common/timsquad/architectures/fsd/ARCHITECTURE.md +67 -0
- package/templates/common/timsquad/architectures/fsd/frontend.xml +288 -0
- package/templates/common/timsquad/architectures/hexagonal/ARCHITECTURE.md +60 -0
- package/templates/common/timsquad/architectures/hexagonal/backend.xml +300 -0
- package/templates/common/timsquad/constraints/competency-framework.xml +501 -0
- package/templates/common/timsquad/constraints/ssot-schema.xml +433 -0
- package/templates/common/timsquad/feedback/feedback-router.sh +341 -0
- package/templates/common/timsquad/feedback/routing-rules.yaml +352 -0
- package/templates/common/timsquad/generators/data-design.xml +290 -0
- package/templates/common/timsquad/generators/prd.xml +280 -0
- package/templates/common/timsquad/generators/requirements.xml +220 -0
- package/templates/common/timsquad/generators/service-spec.xml +266 -0
- package/templates/common/timsquad/logs/_example.md +81 -0
- package/templates/common/timsquad/logs/_template.md +46 -0
- package/templates/common/timsquad/patterns/cqrs.xml +127 -0
- package/templates/common/timsquad/patterns/event-sourcing.xml +85 -0
- package/templates/common/timsquad/patterns/repository.xml +64 -0
- package/templates/common/timsquad/process/state-machine.xml +343 -0
- package/templates/common/timsquad/process/validation-rules.xml +308 -0
- package/templates/common/timsquad/process/workflow-base.xml +202 -0
- package/templates/common/timsquad/retrospective/cycle-report.template.md +205 -0
- package/templates/common/timsquad/retrospective/metrics/metrics-schema.json +203 -0
- package/templates/common/timsquad/retrospective/patterns/failure-patterns.md +199 -0
- package/templates/common/timsquad/retrospective/patterns/success-patterns.md +262 -0
- package/templates/common/timsquad/retrospective/retrospective-config.xml +294 -0
- package/templates/common/timsquad/retrospective/retrospective-state.xml +210 -0
- package/templates/common/timsquad/ssot/adr/ADR-000-template.md +121 -0
- package/templates/common/timsquad/ssot/adr/ADR-001-example.md +115 -0
- package/templates/common/timsquad/ssot/data-design.template.md +132 -0
- package/templates/common/timsquad/ssot/deployment-spec.template.md +384 -0
- package/templates/common/timsquad/ssot/env-config.template.md +346 -0
- package/templates/common/timsquad/ssot/error-codes.template.md +114 -0
- package/templates/common/timsquad/ssot/functional-spec.template.md +185 -0
- package/templates/common/timsquad/ssot/glossary.template.md +148 -0
- package/templates/common/timsquad/ssot/integration-spec.template.md +391 -0
- package/templates/common/timsquad/ssot/planning.template.md +94 -0
- package/templates/common/timsquad/ssot/prd.template.md +102 -0
- package/templates/common/timsquad/ssot/requirements.template.md +117 -0
- package/templates/common/timsquad/ssot/security-spec.template.md +309 -0
- package/templates/common/timsquad/ssot/service-spec.template.md +194 -0
- package/templates/common/timsquad/ssot/test-spec.template.md +264 -0
- package/templates/common/timsquad/ssot/ui-ux-spec.template.md +262 -0
- package/templates/common/timsquad/state/workspace.xml +217 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Cycle {{CYCLE_NUMBER}} Retrospective Report"
|
|
3
|
+
cycle: {{CYCLE_NUMBER}}
|
|
4
|
+
period_start: {{PERIOD_START}}
|
|
5
|
+
period_end: {{PERIOD_END}}
|
|
6
|
+
generated_at: {{TIMESTAMP}}
|
|
7
|
+
status: draft
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Cycle {{CYCLE_NUMBER}} 회고 리포트
|
|
11
|
+
|
|
12
|
+
## 1. 기간
|
|
13
|
+
|
|
14
|
+
| 항목 | 값 |
|
|
15
|
+
|-----|-----|
|
|
16
|
+
| 시작일 | {{PERIOD_START}} |
|
|
17
|
+
| 종료일 | {{PERIOD_END}} |
|
|
18
|
+
| 총 작업일 | {{WORKING_DAYS}}일 |
|
|
19
|
+
|
|
20
|
+
---
|
|
21
|
+
|
|
22
|
+
## 2. 메트릭 요약
|
|
23
|
+
|
|
24
|
+
### 2.1 핵심 지표
|
|
25
|
+
|
|
26
|
+
| 지표 | 이번 사이클 | 이전 사이클 | 변화 |
|
|
27
|
+
|-----|:-----------:|:-----------:|:----:|
|
|
28
|
+
| 총 작업 수 | {{TOTAL_TASKS}} | {{PREV_TOTAL_TASKS}} | {{TASKS_DIFF}} |
|
|
29
|
+
| 전체 성공률 | {{SUCCESS_RATE}}% | {{PREV_SUCCESS_RATE}}% | {{SUCCESS_DIFF}} |
|
|
30
|
+
| 평균 수정 횟수 | {{AVG_REVISIONS}} | {{PREV_AVG_REVISIONS}} | {{REVISIONS_DIFF}} |
|
|
31
|
+
| Level 3 피드백 | {{LEVEL3_COUNT}} | {{PREV_LEVEL3_COUNT}} | {{LEVEL3_DIFF}} |
|
|
32
|
+
|
|
33
|
+
### 2.2 목표 달성
|
|
34
|
+
|
|
35
|
+
| 목표 | 목표치 | 달성치 | 상태 |
|
|
36
|
+
|-----|:------:|:------:|:----:|
|
|
37
|
+
| 성공률 | 90%+ | {{SUCCESS_RATE}}% | {{SUCCESS_STATUS}} |
|
|
38
|
+
| 수정 횟수 | < 3 | {{AVG_REVISIONS}} | {{REVISIONS_STATUS}} |
|
|
39
|
+
| Level 3 피드백 | < 5 | {{LEVEL3_COUNT}} | {{LEVEL3_STATUS}} |
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## 3. 에이전트별 성과
|
|
44
|
+
|
|
45
|
+
### 3.1 성과 테이블
|
|
46
|
+
|
|
47
|
+
| 에이전트 | 작업 수 | 성공률 | 평균 수정 | 점수 | 추세 |
|
|
48
|
+
|---------|:-------:|:------:|:--------:|:----:|:----:|
|
|
49
|
+
| tsq-planner | {{PLANNER_TASKS}} | {{PLANNER_SUCCESS}}% | {{PLANNER_REVISIONS}} | {{PLANNER_SCORE}} | {{PLANNER_TREND}} |
|
|
50
|
+
| tsq-developer | {{DEVELOPER_TASKS}} | {{DEVELOPER_SUCCESS}}% | {{DEVELOPER_REVISIONS}} | {{DEVELOPER_SCORE}} | {{DEVELOPER_TREND}} |
|
|
51
|
+
| tsq-qa | {{QA_TASKS}} | {{QA_SUCCESS}}% | {{QA_REVISIONS}} | {{QA_SCORE}} | {{QA_TREND}} |
|
|
52
|
+
| tsq-security | {{SECURITY_TASKS}} | {{SECURITY_SUCCESS}}% | {{SECURITY_REVISIONS}} | {{SECURITY_SCORE}} | {{SECURITY_TREND}} |
|
|
53
|
+
|
|
54
|
+
### 3.2 에이전트별 세부 분석
|
|
55
|
+
|
|
56
|
+
#### tsq-planner
|
|
57
|
+
- **강점**: {{PLANNER_STRENGTHS}}
|
|
58
|
+
- **개선 필요**: {{PLANNER_IMPROVEMENTS}}
|
|
59
|
+
- **주요 이슈**: {{PLANNER_ISSUES}}
|
|
60
|
+
|
|
61
|
+
#### tsq-developer
|
|
62
|
+
- **강점**: {{DEVELOPER_STRENGTHS}}
|
|
63
|
+
- **개선 필요**: {{DEVELOPER_IMPROVEMENTS}}
|
|
64
|
+
- **주요 이슈**: {{DEVELOPER_ISSUES}}
|
|
65
|
+
|
|
66
|
+
#### tsq-qa
|
|
67
|
+
- **강점**: {{QA_STRENGTHS}}
|
|
68
|
+
- **개선 필요**: {{QA_IMPROVEMENTS}}
|
|
69
|
+
- **주요 이슈**: {{QA_ISSUES}}
|
|
70
|
+
|
|
71
|
+
#### tsq-security
|
|
72
|
+
- **강점**: {{SECURITY_STRENGTHS}}
|
|
73
|
+
- **개선 필요**: {{SECURITY_IMPROVEMENTS}}
|
|
74
|
+
- **주요 이슈**: {{SECURITY_ISSUES}}
|
|
75
|
+
|
|
76
|
+
---
|
|
77
|
+
|
|
78
|
+
## 4. 피드백 분석
|
|
79
|
+
|
|
80
|
+
### 4.1 피드백 분포
|
|
81
|
+
|
|
82
|
+
| 레벨 | 건수 | 비율 | 평균 해결 시간 |
|
|
83
|
+
|:----:|:----:|:----:|:-------------:|
|
|
84
|
+
| Level 1 (구현) | {{L1_COUNT}} | {{L1_PERCENT}}% | {{L1_RESOLUTION_TIME}} |
|
|
85
|
+
| Level 2 (설계) | {{L2_COUNT}} | {{L2_PERCENT}}% | {{L2_RESOLUTION_TIME}} |
|
|
86
|
+
| Level 3 (기획) | {{L3_COUNT}} | {{L3_PERCENT}}% | {{L3_RESOLUTION_TIME}} |
|
|
87
|
+
|
|
88
|
+
### 4.2 피드백 유형별 분류
|
|
89
|
+
|
|
90
|
+
| 유형 | 건수 | 주요 원인 |
|
|
91
|
+
|-----|:----:|---------|
|
|
92
|
+
| 테스트 실패 | {{TEST_FAIL_COUNT}} | {{TEST_FAIL_CAUSE}} |
|
|
93
|
+
| 타입 에러 | {{TYPE_ERROR_COUNT}} | {{TYPE_ERROR_CAUSE}} |
|
|
94
|
+
| API 불일치 | {{API_MISMATCH_COUNT}} | {{API_MISMATCH_CAUSE}} |
|
|
95
|
+
| 요구사항 불명확 | {{REQ_UNCLEAR_COUNT}} | {{REQ_UNCLEAR_CAUSE}} |
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## 5. 발견된 패턴
|
|
100
|
+
|
|
101
|
+
### 5.1 실패 패턴
|
|
102
|
+
|
|
103
|
+
{{#FAILURE_PATTERNS}}
|
|
104
|
+
#### FP-{{PATTERN_NUM}}: {{PATTERN_NAME}}
|
|
105
|
+
|
|
106
|
+
| 항목 | 내용 |
|
|
107
|
+
|-----|------|
|
|
108
|
+
| **빈도** | {{FREQUENCY}}회 |
|
|
109
|
+
| **영향 에이전트** | {{AFFECTED_AGENTS}} |
|
|
110
|
+
| **원인** | {{CAUSE}} |
|
|
111
|
+
| **제안** | {{SUGGESTION}} |
|
|
112
|
+
|
|
113
|
+
{{/FAILURE_PATTERNS}}
|
|
114
|
+
|
|
115
|
+
→ 상세: [failure-patterns.md](../patterns/failure-patterns.md) 참조
|
|
116
|
+
|
|
117
|
+
### 5.2 성공 패턴
|
|
118
|
+
|
|
119
|
+
{{#SUCCESS_PATTERNS}}
|
|
120
|
+
#### SP-{{PATTERN_NUM}}: {{PATTERN_NAME}}
|
|
121
|
+
|
|
122
|
+
| 항목 | 내용 |
|
|
123
|
+
|-----|------|
|
|
124
|
+
| **빈도** | {{FREQUENCY}}회 |
|
|
125
|
+
| **성공 요인** | {{FACTOR}} |
|
|
126
|
+
| **적용 확대** | {{RECOMMENDATION}} |
|
|
127
|
+
|
|
128
|
+
{{/SUCCESS_PATTERNS}}
|
|
129
|
+
|
|
130
|
+
→ 상세: [success-patterns.md](../patterns/success-patterns.md) 참조
|
|
131
|
+
|
|
132
|
+
---
|
|
133
|
+
|
|
134
|
+
## 6. 개선 조치
|
|
135
|
+
|
|
136
|
+
### 6.1 적용된 개선
|
|
137
|
+
|
|
138
|
+
| ID | 유형 | 대상 | 설명 | 상태 |
|
|
139
|
+
|----|------|------|------|:----:|
|
|
140
|
+
{{#IMPROVEMENTS_APPLIED}}
|
|
141
|
+
| {{IMP_ID}} | {{IMP_TYPE}} | {{IMP_TARGET}} | {{IMP_DESC}} | ✅ |
|
|
142
|
+
{{/IMPROVEMENTS_APPLIED}}
|
|
143
|
+
|
|
144
|
+
### 6.2 제안된 개선 (다음 사이클)
|
|
145
|
+
|
|
146
|
+
| ID | 유형 | 대상 | 설명 | 우선순위 |
|
|
147
|
+
|----|------|------|------|:--------:|
|
|
148
|
+
{{#IMPROVEMENTS_PROPOSED}}
|
|
149
|
+
| {{IMP_ID}} | {{IMP_TYPE}} | {{IMP_TARGET}} | {{IMP_DESC}} | {{IMP_PRIORITY}} |
|
|
150
|
+
{{/IMPROVEMENTS_PROPOSED}}
|
|
151
|
+
|
|
152
|
+
---
|
|
153
|
+
|
|
154
|
+
## 7. 다음 사이클 목표
|
|
155
|
+
|
|
156
|
+
### 7.1 정량적 목표
|
|
157
|
+
|
|
158
|
+
| 목표 | 지표 | 목표치 |
|
|
159
|
+
|-----|------|:------:|
|
|
160
|
+
{{#NEXT_GOALS}}
|
|
161
|
+
| {{GOAL}} | {{METRIC}} | {{TARGET}} |
|
|
162
|
+
{{/NEXT_GOALS}}
|
|
163
|
+
|
|
164
|
+
### 7.2 정성적 목표
|
|
165
|
+
|
|
166
|
+
{{#NEXT_QUALITATIVE_GOALS}}
|
|
167
|
+
- [ ] {{GOAL}}
|
|
168
|
+
{{/NEXT_QUALITATIVE_GOALS}}
|
|
169
|
+
|
|
170
|
+
---
|
|
171
|
+
|
|
172
|
+
## 8. 학습된 교훈 (Lessons Learned)
|
|
173
|
+
|
|
174
|
+
### 이번 사이클에서 배운 점
|
|
175
|
+
|
|
176
|
+
{{#LESSONS}}
|
|
177
|
+
#### [{{LESSON_DATE}}] {{LESSON_TITLE}}
|
|
178
|
+
|
|
179
|
+
- **상황**: {{LESSON_CONTEXT}}
|
|
180
|
+
- **문제**: {{LESSON_PROBLEM}}
|
|
181
|
+
- **해결**: {{LESSON_SOLUTION}}
|
|
182
|
+
- **교훈**: {{LESSON_TAKEAWAY}}
|
|
183
|
+
|
|
184
|
+
{{/LESSONS}}
|
|
185
|
+
|
|
186
|
+
→ 전체 교훈: [lessons.md](../../knowledge/lessons.md)에 통합됨
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
## 9. 메트릭 데이터
|
|
191
|
+
|
|
192
|
+
상세 메트릭 데이터는 JSON 형식으로 저장됩니다:
|
|
193
|
+
- `../metrics/cycle-{{CYCLE_NUMBER}}.json`
|
|
194
|
+
|
|
195
|
+
---
|
|
196
|
+
|
|
197
|
+
## 변경 이력
|
|
198
|
+
|
|
199
|
+
| 버전 | 날짜 | 작성자 | 변경 내용 |
|
|
200
|
+
|------|------|--------|----------|
|
|
201
|
+
| 1.0.0 | {{TIMESTAMP}} | tsq-retro | 초기 생성 |
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
**Generated by TimSquad Retrospective System v1.0**
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "TimSquad Retrospective Metrics",
|
|
4
|
+
"description": "회고 시스템 메트릭 스키마 정의",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
|
|
7
|
+
"definitions": {
|
|
8
|
+
"agentMetrics": {
|
|
9
|
+
"type": "object",
|
|
10
|
+
"properties": {
|
|
11
|
+
"tasks_completed": {
|
|
12
|
+
"type": "integer",
|
|
13
|
+
"description": "완료한 작업 수"
|
|
14
|
+
},
|
|
15
|
+
"success_rate": {
|
|
16
|
+
"type": "number",
|
|
17
|
+
"minimum": 0,
|
|
18
|
+
"maximum": 100,
|
|
19
|
+
"description": "성공률 (%)"
|
|
20
|
+
},
|
|
21
|
+
"avg_revision_count": {
|
|
22
|
+
"type": "number",
|
|
23
|
+
"description": "평균 수정 횟수"
|
|
24
|
+
},
|
|
25
|
+
"metrics": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"description": "에이전트별 세부 메트릭"
|
|
28
|
+
},
|
|
29
|
+
"score": {
|
|
30
|
+
"type": "number",
|
|
31
|
+
"minimum": 0,
|
|
32
|
+
"maximum": 100,
|
|
33
|
+
"description": "종합 점수"
|
|
34
|
+
},
|
|
35
|
+
"trend": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"pattern": "^[+-]?[0-9]+(\\.[0-9]+)?$",
|
|
38
|
+
"description": "이전 대비 변화 (예: +2.1, -0.5)"
|
|
39
|
+
}
|
|
40
|
+
},
|
|
41
|
+
"required": ["tasks_completed", "success_rate", "score"]
|
|
42
|
+
},
|
|
43
|
+
|
|
44
|
+
"feedbackStats": {
|
|
45
|
+
"type": "object",
|
|
46
|
+
"properties": {
|
|
47
|
+
"total": {
|
|
48
|
+
"type": "integer"
|
|
49
|
+
},
|
|
50
|
+
"by_level": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"properties": {
|
|
53
|
+
"level_1": { "type": "integer" },
|
|
54
|
+
"level_2": { "type": "integer" },
|
|
55
|
+
"level_3": { "type": "integer" }
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"by_type": {
|
|
59
|
+
"type": "object",
|
|
60
|
+
"additionalProperties": { "type": "integer" }
|
|
61
|
+
},
|
|
62
|
+
"resolution_time_avg_minutes": {
|
|
63
|
+
"type": "number"
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
|
|
68
|
+
"pattern": {
|
|
69
|
+
"type": "object",
|
|
70
|
+
"properties": {
|
|
71
|
+
"id": {
|
|
72
|
+
"type": "string",
|
|
73
|
+
"pattern": "^(FP|SP)-[0-9]{3}$",
|
|
74
|
+
"description": "패턴 ID (FP=실패, SP=성공)"
|
|
75
|
+
},
|
|
76
|
+
"name": {
|
|
77
|
+
"type": "string"
|
|
78
|
+
},
|
|
79
|
+
"frequency": {
|
|
80
|
+
"type": "integer",
|
|
81
|
+
"description": "발생 빈도"
|
|
82
|
+
},
|
|
83
|
+
"description": {
|
|
84
|
+
"type": "string"
|
|
85
|
+
},
|
|
86
|
+
"cause": {
|
|
87
|
+
"type": "string",
|
|
88
|
+
"description": "원인 (실패 패턴)"
|
|
89
|
+
},
|
|
90
|
+
"factor": {
|
|
91
|
+
"type": "string",
|
|
92
|
+
"description": "성공 요인 (성공 패턴)"
|
|
93
|
+
},
|
|
94
|
+
"suggestion": {
|
|
95
|
+
"type": "string",
|
|
96
|
+
"description": "개선 제안"
|
|
97
|
+
},
|
|
98
|
+
"agents_affected": {
|
|
99
|
+
"type": "array",
|
|
100
|
+
"items": { "type": "string" }
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
"required": ["id", "name", "frequency"]
|
|
104
|
+
},
|
|
105
|
+
|
|
106
|
+
"improvement": {
|
|
107
|
+
"type": "object",
|
|
108
|
+
"properties": {
|
|
109
|
+
"id": {
|
|
110
|
+
"type": "string",
|
|
111
|
+
"pattern": "^IMP-[0-9]{3}$"
|
|
112
|
+
},
|
|
113
|
+
"type": {
|
|
114
|
+
"type": "string",
|
|
115
|
+
"enum": ["prompt", "template", "skill", "process"]
|
|
116
|
+
},
|
|
117
|
+
"target": {
|
|
118
|
+
"type": "string",
|
|
119
|
+
"description": "수정 대상 파일/에이전트"
|
|
120
|
+
},
|
|
121
|
+
"description": {
|
|
122
|
+
"type": "string"
|
|
123
|
+
},
|
|
124
|
+
"status": {
|
|
125
|
+
"type": "string",
|
|
126
|
+
"enum": ["proposed", "approved", "applied", "rejected"]
|
|
127
|
+
},
|
|
128
|
+
"applied_at": {
|
|
129
|
+
"type": "string",
|
|
130
|
+
"format": "date-time"
|
|
131
|
+
},
|
|
132
|
+
"pattern_refs": {
|
|
133
|
+
"type": "array",
|
|
134
|
+
"items": { "type": "string" },
|
|
135
|
+
"description": "관련 패턴 ID들"
|
|
136
|
+
}
|
|
137
|
+
},
|
|
138
|
+
"required": ["id", "type", "target", "status"]
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
|
|
142
|
+
"type": "object",
|
|
143
|
+
"properties": {
|
|
144
|
+
"cycle": {
|
|
145
|
+
"type": "integer",
|
|
146
|
+
"minimum": 1,
|
|
147
|
+
"description": "사이클 번호"
|
|
148
|
+
},
|
|
149
|
+
"period": {
|
|
150
|
+
"type": "object",
|
|
151
|
+
"properties": {
|
|
152
|
+
"start": { "type": "string", "format": "date" },
|
|
153
|
+
"end": { "type": "string", "format": "date" }
|
|
154
|
+
},
|
|
155
|
+
"required": ["start", "end"]
|
|
156
|
+
},
|
|
157
|
+
"summary": {
|
|
158
|
+
"type": "object",
|
|
159
|
+
"properties": {
|
|
160
|
+
"total_tasks": { "type": "integer" },
|
|
161
|
+
"success_rate": { "type": "number" },
|
|
162
|
+
"avg_revision_count": { "type": "number" },
|
|
163
|
+
"level_3_feedback_count": { "type": "integer" }
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
"agents": {
|
|
167
|
+
"type": "object",
|
|
168
|
+
"additionalProperties": { "$ref": "#/definitions/agentMetrics" }
|
|
169
|
+
},
|
|
170
|
+
"feedback": {
|
|
171
|
+
"$ref": "#/definitions/feedbackStats"
|
|
172
|
+
},
|
|
173
|
+
"patterns": {
|
|
174
|
+
"type": "object",
|
|
175
|
+
"properties": {
|
|
176
|
+
"failure": {
|
|
177
|
+
"type": "array",
|
|
178
|
+
"items": { "$ref": "#/definitions/pattern" }
|
|
179
|
+
},
|
|
180
|
+
"success": {
|
|
181
|
+
"type": "array",
|
|
182
|
+
"items": { "$ref": "#/definitions/pattern" }
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
},
|
|
186
|
+
"improvements": {
|
|
187
|
+
"type": "array",
|
|
188
|
+
"items": { "$ref": "#/definitions/improvement" }
|
|
189
|
+
},
|
|
190
|
+
"next_cycle_goals": {
|
|
191
|
+
"type": "array",
|
|
192
|
+
"items": {
|
|
193
|
+
"type": "object",
|
|
194
|
+
"properties": {
|
|
195
|
+
"goal": { "type": "string" },
|
|
196
|
+
"metric": { "type": "string" },
|
|
197
|
+
"target": { "type": "string" }
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
},
|
|
202
|
+
"required": ["cycle", "period", "summary", "agents"]
|
|
203
|
+
}
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: "Failure Patterns"
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
last_updated: {{TIMESTAMP}}
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# 실패 패턴 (Failure Patterns)
|
|
8
|
+
|
|
9
|
+
> 반복적으로 발생하는 실패 패턴을 기록하고 분석합니다.
|
|
10
|
+
> 3회 이상 발생 시 자동으로 개선 조치가 제안됩니다.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
## 패턴 분류
|
|
15
|
+
|
|
16
|
+
### 카테고리
|
|
17
|
+
|
|
18
|
+
| 카테고리 | 코드 | 설명 |
|
|
19
|
+
|---------|:----:|------|
|
|
20
|
+
| 코드 품질 | CQ | 테스트 실패, 타입 에러, 린트 오류 |
|
|
21
|
+
| 설계 불일치 | DM | API 불일치, 스키마 불일치, 아키텍처 위반 |
|
|
22
|
+
| 요구사항 | RQ | 요구사항 불명확, 스코프 크리프 |
|
|
23
|
+
| 프로세스 | PR | Phase 위반, 문서 누락, 워크플로우 오류 |
|
|
24
|
+
| 커뮤니케이션 | CM | Handoff 실패, 컨텍스트 손실 |
|
|
25
|
+
|
|
26
|
+
---
|
|
27
|
+
|
|
28
|
+
## 등록된 패턴
|
|
29
|
+
|
|
30
|
+
<!--
|
|
31
|
+
패턴 추가 시 아래 템플릿 사용:
|
|
32
|
+
|
|
33
|
+
### FP-XXX: {패턴명}
|
|
34
|
+
|
|
35
|
+
| 항목 | 내용 |
|
|
36
|
+
|-----|------|
|
|
37
|
+
| **ID** | FP-XXX |
|
|
38
|
+
| **카테고리** | {CQ/DM/RQ/PR/CM} |
|
|
39
|
+
| **최초 발견** | {날짜} |
|
|
40
|
+
| **발생 횟수** | {N}회 |
|
|
41
|
+
| **영향 에이전트** | {에이전트 목록} |
|
|
42
|
+
| **상태** | active / mitigated / resolved |
|
|
43
|
+
|
|
44
|
+
**증상**
|
|
45
|
+
{어떤 현상이 발생하는지}
|
|
46
|
+
|
|
47
|
+
**원인 분석**
|
|
48
|
+
{왜 발생하는지}
|
|
49
|
+
|
|
50
|
+
**영향**
|
|
51
|
+
{프로젝트에 미치는 영향}
|
|
52
|
+
|
|
53
|
+
**개선 조치**
|
|
54
|
+
- [ ] {조치 1}
|
|
55
|
+
- [ ] {조치 2}
|
|
56
|
+
|
|
57
|
+
**관련 개선**
|
|
58
|
+
- IMP-XXX: {개선 제목}
|
|
59
|
+
-->
|
|
60
|
+
|
|
61
|
+
### FP-001: SSOT 미참조 구현
|
|
62
|
+
|
|
63
|
+
| 항목 | 내용 |
|
|
64
|
+
|-----|------|
|
|
65
|
+
| **ID** | FP-001 |
|
|
66
|
+
| **카테고리** | DM (설계 불일치) |
|
|
67
|
+
| **최초 발견** | - |
|
|
68
|
+
| **발생 횟수** | 0회 |
|
|
69
|
+
| **영향 에이전트** | tsq-developer |
|
|
70
|
+
| **상태** | active |
|
|
71
|
+
|
|
72
|
+
**증상**
|
|
73
|
+
- service-spec.md와 다른 API 응답 형식
|
|
74
|
+
- data-design.md와 다른 테이블 구조
|
|
75
|
+
- error-codes.md에 없는 에러 코드 사용
|
|
76
|
+
|
|
77
|
+
**원인 분석**
|
|
78
|
+
- 구현 전 SSOT 확인 단계 생략
|
|
79
|
+
- SSOT 문서가 최신 상태가 아님
|
|
80
|
+
- 에이전트 프롬프트에 SSOT 참조 강제 누락
|
|
81
|
+
|
|
82
|
+
**영향**
|
|
83
|
+
- 프론트엔드-백엔드 불일치
|
|
84
|
+
- 테스트 실패
|
|
85
|
+
- Level 2 피드백 증가
|
|
86
|
+
|
|
87
|
+
**개선 조치**
|
|
88
|
+
- [ ] validation-rules.xml에 pre-condition 강화
|
|
89
|
+
- [ ] tsq-developer SKILL.md에 SSOT 체크리스트 추가
|
|
90
|
+
- [ ] 구현 전 SSOT 버전 확인 자동화
|
|
91
|
+
|
|
92
|
+
---
|
|
93
|
+
|
|
94
|
+
### FP-002: 불완전한 Handoff
|
|
95
|
+
|
|
96
|
+
| 항목 | 내용 |
|
|
97
|
+
|-----|------|
|
|
98
|
+
| **ID** | FP-002 |
|
|
99
|
+
| **카테고리** | CM (커뮤니케이션) |
|
|
100
|
+
| **최초 발견** | - |
|
|
101
|
+
| **발생 횟수** | 0회 |
|
|
102
|
+
| **영향 에이전트** | 전체 |
|
|
103
|
+
| **상태** | active |
|
|
104
|
+
|
|
105
|
+
**증상**
|
|
106
|
+
- 다음 에이전트가 컨텍스트를 모름
|
|
107
|
+
- 같은 작업 반복 수행
|
|
108
|
+
- 결정 사항 누락
|
|
109
|
+
|
|
110
|
+
**원인 분석**
|
|
111
|
+
- workspace.xml handoff 섹션 미작성
|
|
112
|
+
- 전달 사항이 너무 간략함
|
|
113
|
+
- 참조할 SSOT 문서 누락
|
|
114
|
+
|
|
115
|
+
**영향**
|
|
116
|
+
- 작업 지연
|
|
117
|
+
- 토큰 낭비 (컨텍스트 재구성)
|
|
118
|
+
- 품질 저하
|
|
119
|
+
|
|
120
|
+
**개선 조치**
|
|
121
|
+
- [ ] handoff 필수 필드 검증 강화
|
|
122
|
+
- [ ] handoff 템플릿 개선
|
|
123
|
+
- [ ] 자동 handoff 생성 스크립트
|
|
124
|
+
|
|
125
|
+
---
|
|
126
|
+
|
|
127
|
+
### FP-003: Phase 위반
|
|
128
|
+
|
|
129
|
+
| 항목 | 내용 |
|
|
130
|
+
|-----|------|
|
|
131
|
+
| **ID** | FP-003 |
|
|
132
|
+
| **카테고리** | PR (프로세스) |
|
|
133
|
+
| **최초 발견** | - |
|
|
134
|
+
| **발생 횟수** | 0회 |
|
|
135
|
+
| **영향 에이전트** | 전체 |
|
|
136
|
+
| **상태** | active |
|
|
137
|
+
|
|
138
|
+
**증상**
|
|
139
|
+
- Planning phase에서 코드 작성 시도
|
|
140
|
+
- SSOT 승인 전 Implementation 시작
|
|
141
|
+
- Review 없이 배포 진행
|
|
142
|
+
|
|
143
|
+
**원인 분석**
|
|
144
|
+
- state-machine.xml 규칙 미준수
|
|
145
|
+
- Phase 상태 확인 누락
|
|
146
|
+
- 급한 마음에 프로세스 생략
|
|
147
|
+
|
|
148
|
+
**영향**
|
|
149
|
+
- 품질 저하
|
|
150
|
+
- 재작업 필요
|
|
151
|
+
- Level 3 피드백 발생
|
|
152
|
+
|
|
153
|
+
**개선 조치**
|
|
154
|
+
- [ ] Phase 검증 자동화 강화
|
|
155
|
+
- [ ] 위반 시 명확한 에러 메시지
|
|
156
|
+
- [ ] 위반 로그 기록 및 알림
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## 패턴 통계
|
|
161
|
+
|
|
162
|
+
### 카테고리별 분포
|
|
163
|
+
|
|
164
|
+
```
|
|
165
|
+
카테고리별 실패 패턴 (누적)
|
|
166
|
+
|
|
167
|
+
CQ (코드 품질) : ████████░░ 40%
|
|
168
|
+
DM (설계 불일치) : ████░░░░░░ 20%
|
|
169
|
+
RQ (요구사항) : ███░░░░░░░ 15%
|
|
170
|
+
PR (프로세스) : ███░░░░░░░ 15%
|
|
171
|
+
CM (커뮤니케이션) : ██░░░░░░░░ 10%
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### 에이전트별 분포
|
|
175
|
+
|
|
176
|
+
| 에이전트 | 연관 패턴 수 | 주요 카테고리 |
|
|
177
|
+
|---------|:-----------:|-------------|
|
|
178
|
+
| tsq-planner | 0 | - |
|
|
179
|
+
| tsq-developer | 0 | - |
|
|
180
|
+
| tsq-qa | 0 | - |
|
|
181
|
+
| tsq-security | 0 | - |
|
|
182
|
+
|
|
183
|
+
---
|
|
184
|
+
|
|
185
|
+
## 개선 연결
|
|
186
|
+
|
|
187
|
+
| 패턴 | 관련 개선 | 상태 |
|
|
188
|
+
|------|----------|:----:|
|
|
189
|
+
| FP-001 | IMP-001 | 제안됨 |
|
|
190
|
+
| FP-002 | IMP-002 | 제안됨 |
|
|
191
|
+
| FP-003 | IMP-003 | 제안됨 |
|
|
192
|
+
|
|
193
|
+
---
|
|
194
|
+
|
|
195
|
+
## 변경 이력
|
|
196
|
+
|
|
197
|
+
| 버전 | 날짜 | 변경 내용 |
|
|
198
|
+
|------|------|----------|
|
|
199
|
+
| 1.0.0 | {{TIMESTAMP}} | 초기 템플릿 생성 |
|