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.
Files changed (181) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +347 -0
  3. package/bin/tsq.js +6 -0
  4. package/dist/commands/feedback.d.ts +3 -0
  5. package/dist/commands/feedback.d.ts.map +1 -0
  6. package/dist/commands/feedback.js +142 -0
  7. package/dist/commands/feedback.js.map +1 -0
  8. package/dist/commands/full.d.ts +3 -0
  9. package/dist/commands/full.d.ts.map +1 -0
  10. package/dist/commands/full.js +87 -0
  11. package/dist/commands/full.js.map +1 -0
  12. package/dist/commands/git/commit.d.ts +3 -0
  13. package/dist/commands/git/commit.d.ts.map +1 -0
  14. package/dist/commands/git/commit.js +88 -0
  15. package/dist/commands/git/commit.js.map +1 -0
  16. package/dist/commands/git/index.d.ts +5 -0
  17. package/dist/commands/git/index.d.ts.map +1 -0
  18. package/dist/commands/git/index.js +5 -0
  19. package/dist/commands/git/index.js.map +1 -0
  20. package/dist/commands/git/pr.d.ts +3 -0
  21. package/dist/commands/git/pr.d.ts.map +1 -0
  22. package/dist/commands/git/pr.js +138 -0
  23. package/dist/commands/git/pr.js.map +1 -0
  24. package/dist/commands/git/release.d.ts +3 -0
  25. package/dist/commands/git/release.d.ts.map +1 -0
  26. package/dist/commands/git/release.js +158 -0
  27. package/dist/commands/git/release.js.map +1 -0
  28. package/dist/commands/git/sync.d.ts +3 -0
  29. package/dist/commands/git/sync.d.ts.map +1 -0
  30. package/dist/commands/git/sync.js +132 -0
  31. package/dist/commands/git/sync.js.map +1 -0
  32. package/dist/commands/init.d.ts +3 -0
  33. package/dist/commands/init.d.ts.map +1 -0
  34. package/dist/commands/init.js +150 -0
  35. package/dist/commands/init.js.map +1 -0
  36. package/dist/commands/log.d.ts +3 -0
  37. package/dist/commands/log.d.ts.map +1 -0
  38. package/dist/commands/log.js +271 -0
  39. package/dist/commands/log.js.map +1 -0
  40. package/dist/commands/metrics.d.ts +3 -0
  41. package/dist/commands/metrics.d.ts.map +1 -0
  42. package/dist/commands/metrics.js +299 -0
  43. package/dist/commands/metrics.js.map +1 -0
  44. package/dist/commands/quick.d.ts +3 -0
  45. package/dist/commands/quick.d.ts.map +1 -0
  46. package/dist/commands/quick.js +136 -0
  47. package/dist/commands/quick.js.map +1 -0
  48. package/dist/commands/retro.d.ts +3 -0
  49. package/dist/commands/retro.d.ts.map +1 -0
  50. package/dist/commands/retro.js +280 -0
  51. package/dist/commands/retro.js.map +1 -0
  52. package/dist/commands/status.d.ts +3 -0
  53. package/dist/commands/status.d.ts.map +1 -0
  54. package/dist/commands/status.js +127 -0
  55. package/dist/commands/status.js.map +1 -0
  56. package/dist/commands/watch.d.ts +3 -0
  57. package/dist/commands/watch.d.ts.map +1 -0
  58. package/dist/commands/watch.js +213 -0
  59. package/dist/commands/watch.js.map +1 -0
  60. package/dist/index.d.ts +3 -0
  61. package/dist/index.d.ts.map +1 -0
  62. package/dist/index.js +50 -0
  63. package/dist/index.js.map +1 -0
  64. package/dist/lib/config.d.ts +34 -0
  65. package/dist/lib/config.d.ts.map +1 -0
  66. package/dist/lib/config.js +108 -0
  67. package/dist/lib/config.js.map +1 -0
  68. package/dist/lib/project.d.ts +47 -0
  69. package/dist/lib/project.d.ts.map +1 -0
  70. package/dist/lib/project.js +191 -0
  71. package/dist/lib/project.js.map +1 -0
  72. package/dist/lib/template.d.ts +33 -0
  73. package/dist/lib/template.d.ts.map +1 -0
  74. package/dist/lib/template.js +151 -0
  75. package/dist/lib/template.js.map +1 -0
  76. package/dist/types/config.d.ts +75 -0
  77. package/dist/types/config.d.ts.map +1 -0
  78. package/dist/types/config.js +66 -0
  79. package/dist/types/config.js.map +1 -0
  80. package/dist/types/feedback.d.ts +59 -0
  81. package/dist/types/feedback.d.ts.map +1 -0
  82. package/dist/types/feedback.js +26 -0
  83. package/dist/types/feedback.js.map +1 -0
  84. package/dist/types/index.d.ts +4 -0
  85. package/dist/types/index.d.ts.map +1 -0
  86. package/dist/types/index.js +5 -0
  87. package/dist/types/index.js.map +1 -0
  88. package/dist/types/project.d.ts +89 -0
  89. package/dist/types/project.d.ts.map +1 -0
  90. package/dist/types/project.js +44 -0
  91. package/dist/types/project.js.map +1 -0
  92. package/dist/utils/colors.d.ts +30 -0
  93. package/dist/utils/colors.d.ts.map +1 -0
  94. package/dist/utils/colors.js +54 -0
  95. package/dist/utils/colors.js.map +1 -0
  96. package/dist/utils/date.d.ts +25 -0
  97. package/dist/utils/date.d.ts.map +1 -0
  98. package/dist/utils/date.js +65 -0
  99. package/dist/utils/date.js.map +1 -0
  100. package/dist/utils/fs.d.ts +49 -0
  101. package/dist/utils/fs.d.ts.map +1 -0
  102. package/dist/utils/fs.js +84 -0
  103. package/dist/utils/fs.js.map +1 -0
  104. package/dist/utils/prompts.d.ts +31 -0
  105. package/dist/utils/prompts.d.ts.map +1 -0
  106. package/dist/utils/prompts.js +95 -0
  107. package/dist/utils/prompts.js.map +1 -0
  108. package/dist/utils/yaml.d.ts +21 -0
  109. package/dist/utils/yaml.d.ts.map +1 -0
  110. package/dist/utils/yaml.js +40 -0
  111. package/dist/utils/yaml.js.map +1 -0
  112. package/package.json +71 -0
  113. package/templates/common/CLAUDE.md.template +254 -0
  114. package/templates/common/claude/agents/tsq-dba.md +290 -0
  115. package/templates/common/claude/agents/tsq-designer.md +304 -0
  116. package/templates/common/claude/agents/tsq-developer.md +118 -0
  117. package/templates/common/claude/agents/tsq-planner.md +90 -0
  118. package/templates/common/claude/agents/tsq-prompter.md +336 -0
  119. package/templates/common/claude/agents/tsq-qa.md +134 -0
  120. package/templates/common/claude/agents/tsq-retro.md +168 -0
  121. package/templates/common/claude/agents/tsq-security.md +190 -0
  122. package/templates/common/claude/skills/architecture/SKILL.md +123 -0
  123. package/templates/common/claude/skills/backend/node/SKILL.md +1015 -0
  124. package/templates/common/claude/skills/coding/SKILL.md +171 -0
  125. package/templates/common/claude/skills/database/prisma/SKILL.md +357 -0
  126. package/templates/common/claude/skills/frontend/nextjs/SKILL.md +279 -0
  127. package/templates/common/claude/skills/frontend/react/SKILL.md +1729 -0
  128. package/templates/common/claude/skills/methodology/bdd/SKILL.md +234 -0
  129. package/templates/common/claude/skills/methodology/ddd/SKILL.md +311 -0
  130. package/templates/common/claude/skills/methodology/tdd/SKILL.md +512 -0
  131. package/templates/common/claude/skills/planning/SKILL.md +90 -0
  132. package/templates/common/claude/skills/security/SKILL.md +234 -0
  133. package/templates/common/claude/skills/testing/SKILL.md +146 -0
  134. package/templates/common/claude/skills/typescript/SKILL.md +435 -0
  135. package/templates/common/config.template.yaml +131 -0
  136. package/templates/common/timsquad/architectures/clean/ARCHITECTURE.md +49 -0
  137. package/templates/common/timsquad/architectures/clean/backend.xml +210 -0
  138. package/templates/common/timsquad/architectures/clean/frontend.xml +148 -0
  139. package/templates/common/timsquad/architectures/fsd/ARCHITECTURE.md +67 -0
  140. package/templates/common/timsquad/architectures/fsd/frontend.xml +288 -0
  141. package/templates/common/timsquad/architectures/hexagonal/ARCHITECTURE.md +60 -0
  142. package/templates/common/timsquad/architectures/hexagonal/backend.xml +300 -0
  143. package/templates/common/timsquad/constraints/competency-framework.xml +501 -0
  144. package/templates/common/timsquad/constraints/ssot-schema.xml +433 -0
  145. package/templates/common/timsquad/feedback/feedback-router.sh +341 -0
  146. package/templates/common/timsquad/feedback/routing-rules.yaml +352 -0
  147. package/templates/common/timsquad/generators/data-design.xml +290 -0
  148. package/templates/common/timsquad/generators/prd.xml +280 -0
  149. package/templates/common/timsquad/generators/requirements.xml +220 -0
  150. package/templates/common/timsquad/generators/service-spec.xml +266 -0
  151. package/templates/common/timsquad/logs/_example.md +81 -0
  152. package/templates/common/timsquad/logs/_template.md +46 -0
  153. package/templates/common/timsquad/patterns/cqrs.xml +127 -0
  154. package/templates/common/timsquad/patterns/event-sourcing.xml +85 -0
  155. package/templates/common/timsquad/patterns/repository.xml +64 -0
  156. package/templates/common/timsquad/process/state-machine.xml +343 -0
  157. package/templates/common/timsquad/process/validation-rules.xml +308 -0
  158. package/templates/common/timsquad/process/workflow-base.xml +202 -0
  159. package/templates/common/timsquad/retrospective/cycle-report.template.md +205 -0
  160. package/templates/common/timsquad/retrospective/metrics/metrics-schema.json +203 -0
  161. package/templates/common/timsquad/retrospective/patterns/failure-patterns.md +199 -0
  162. package/templates/common/timsquad/retrospective/patterns/success-patterns.md +262 -0
  163. package/templates/common/timsquad/retrospective/retrospective-config.xml +294 -0
  164. package/templates/common/timsquad/retrospective/retrospective-state.xml +210 -0
  165. package/templates/common/timsquad/ssot/adr/ADR-000-template.md +121 -0
  166. package/templates/common/timsquad/ssot/adr/ADR-001-example.md +115 -0
  167. package/templates/common/timsquad/ssot/data-design.template.md +132 -0
  168. package/templates/common/timsquad/ssot/deployment-spec.template.md +384 -0
  169. package/templates/common/timsquad/ssot/env-config.template.md +346 -0
  170. package/templates/common/timsquad/ssot/error-codes.template.md +114 -0
  171. package/templates/common/timsquad/ssot/functional-spec.template.md +185 -0
  172. package/templates/common/timsquad/ssot/glossary.template.md +148 -0
  173. package/templates/common/timsquad/ssot/integration-spec.template.md +391 -0
  174. package/templates/common/timsquad/ssot/planning.template.md +94 -0
  175. package/templates/common/timsquad/ssot/prd.template.md +102 -0
  176. package/templates/common/timsquad/ssot/requirements.template.md +117 -0
  177. package/templates/common/timsquad/ssot/security-spec.template.md +309 -0
  178. package/templates/common/timsquad/ssot/service-spec.template.md +194 -0
  179. package/templates/common/timsquad/ssot/test-spec.template.md +264 -0
  180. package/templates/common/timsquad/ssot/ui-ux-spec.template.md +262 -0
  181. 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}} | 초기 템플릿 생성 |