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/dist/types/feedback.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { AgentType } from './project.js';
|
|
1
|
+
import type { AgentType, Phase } from './project.js';
|
|
2
2
|
/**
|
|
3
3
|
* Feedback level (1=구현 수정, 2=설계 수정, 3=기획 수정)
|
|
4
4
|
*/
|
|
@@ -55,5 +55,56 @@ export interface FeedbackRoutingRules {
|
|
|
55
55
|
/**
|
|
56
56
|
* Default routing rules
|
|
57
57
|
*/
|
|
58
|
+
/**
|
|
59
|
+
* Feedback entry (로컬 JSON 저장용)
|
|
60
|
+
*/
|
|
61
|
+
export interface FeedbackEntry {
|
|
62
|
+
id: string;
|
|
63
|
+
timestamp: string;
|
|
64
|
+
type: 'feedback' | 'phase-retro';
|
|
65
|
+
phase?: Phase;
|
|
66
|
+
level?: FeedbackLevel;
|
|
67
|
+
trigger?: string;
|
|
68
|
+
message: string;
|
|
69
|
+
routeTo?: string;
|
|
70
|
+
tags?: string[];
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Phase retro entry (Phase별 회고 데이터)
|
|
74
|
+
*/
|
|
75
|
+
export interface PhaseRetroEntry {
|
|
76
|
+
id: string;
|
|
77
|
+
timestamp: string;
|
|
78
|
+
project: string;
|
|
79
|
+
phase: Phase;
|
|
80
|
+
keep: string[];
|
|
81
|
+
problem: string[];
|
|
82
|
+
try_next: string[];
|
|
83
|
+
metrics?: {
|
|
84
|
+
tasks_completed?: number;
|
|
85
|
+
success_rate?: number;
|
|
86
|
+
feedback_count?: Record<string, number>;
|
|
87
|
+
};
|
|
88
|
+
tags?: string[];
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Aggregated retro report (집계 리포트)
|
|
92
|
+
*/
|
|
93
|
+
export interface AggregatedReport {
|
|
94
|
+
project: string;
|
|
95
|
+
generated_at: string;
|
|
96
|
+
period: {
|
|
97
|
+
start: string;
|
|
98
|
+
end: string;
|
|
99
|
+
};
|
|
100
|
+
phases: PhaseRetroEntry[];
|
|
101
|
+
feedbacks: FeedbackEntry[];
|
|
102
|
+
summary: {
|
|
103
|
+
total_feedbacks: number;
|
|
104
|
+
by_level: Record<string, number>;
|
|
105
|
+
by_phase: Record<string, number>;
|
|
106
|
+
top_issues: string[];
|
|
107
|
+
};
|
|
108
|
+
}
|
|
58
109
|
export declare const DEFAULT_ROUTING_RULES: FeedbackRoutingRules;
|
|
59
110
|
//# sourceMappingURL=feedback.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/types/feedback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"feedback.d.ts","sourceRoot":"","sources":["../../src/types/feedback.ts"],"names":[],"mappings":"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"}
|
package/dist/types/feedback.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/types/feedback.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"feedback.js","sourceRoot":"","sources":["../../src/types/feedback.ts"],"names":[],"mappings":"AAuIA,MAAM,CAAC,MAAM,qBAAqB,GAAyB;IACzD,OAAO,EAAE;QACP,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,CAAC,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,sBAAsB,CAAC;QAC/F,QAAQ,EAAE,WAAW;QACrB,iBAAiB,EAAE,KAAK;KACzB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,OAAO;QACb,QAAQ,EAAE,CAAC,oBAAoB,EAAE,cAAc,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,wBAAwB,CAAC;QACxH,QAAQ,EAAE,SAAS;QACnB,iBAAiB,EAAE,KAAK;QACxB,WAAW,EAAE,IAAI;KAClB;IACD,OAAO,EAAE;QACP,IAAI,EAAE,WAAW;QACjB,QAAQ,EAAE,CAAC,uBAAuB,EAAE,cAAc,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,sBAAsB,CAAC;QACtH,QAAQ,EAAE,MAAM;QAChB,iBAAiB,EAAE,IAAI;QACvB,WAAW,EAAE,IAAI;KAClB;CACF,CAAC"}
|
package/dist/types/project.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* Project types supported by TimSquad
|
|
3
3
|
*/
|
|
4
|
-
export type ProjectType = 'web-service' | 'api-backend' | 'platform' | 'fintech' | 'infra';
|
|
4
|
+
export type ProjectType = 'web-service' | 'web-app' | 'api-backend' | 'platform' | 'fintech' | 'infra';
|
|
5
5
|
/**
|
|
6
6
|
* Project level (1=MVP, 2=Standard, 3=Enterprise)
|
|
7
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/types/project.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,aAAa,GACb,UAAU,GACV,SAAS,GACT,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,KAAK,GACb,UAAU,GACV,QAAQ,GACR,gBAAgB,GAChB,QAAQ,GACR,UAAU,GACV,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,WAAW,GACX,IAAI,GACJ,UAAU,GACV,KAAK,GACL,UAAU,GACV,UAAU,GACV,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,KAAK,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,aAAa,EAAE;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE;YACR,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,CAWjE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"project.d.ts","sourceRoot":"","sources":["../../src/types/project.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,WAAW,GACnB,aAAa,GACb,SAAS,GACT,aAAa,GACb,UAAU,GACV,SAAS,GACT,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAErC;;GAEG;AACH,MAAM,MAAM,KAAK,GACb,UAAU,GACV,QAAQ,GACR,gBAAgB,GAChB,QAAQ,GACR,UAAU,GACV,YAAY,CAAC;AAEjB;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB,SAAS,GACT,WAAW,GACX,IAAI,GACJ,UAAU,GACV,KAAK,GACL,UAAU,GACV,UAAU,GACV,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,KAAK,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,CAAC;IACrB,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,YAAY,EAAE,CAAC;IACrB,MAAM,EAAE,SAAS,EAAE,CAAC;IACpB,IAAI,EAAE;QACJ,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,EAAE,CAAC;KAClB,CAAC;IACF,aAAa,EAAE;QACb,MAAM,EAAE,MAAM,CAAC;QACf,QAAQ,EAAE;YACR,OAAO,EAAE,MAAM,CAAC;YAChB,OAAO,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;CACH;AAED;;GAEG;AACH,eAAO,MAAM,sBAAsB,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,EAAE,CAWjE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,CAO/D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,yBAAyB,EAAE,MAAM,CAAC,WAAW,EAAE,MAAM,CAOjE,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAInE,CAAC"}
|
package/dist/types/project.js
CHANGED
|
@@ -18,6 +18,7 @@ export const REQUIRED_SSOT_BY_LEVEL = {
|
|
|
18
18
|
*/
|
|
19
19
|
export const REQUIRED_SSOT_BY_TYPE = {
|
|
20
20
|
'web-service': ['ui-ux-spec'],
|
|
21
|
+
'web-app': ['ui-ux-spec', 'data-design'],
|
|
21
22
|
'api-backend': [],
|
|
22
23
|
'platform': ['integration-spec', 'glossary'],
|
|
23
24
|
'fintech': ['security-spec', 'error-codes', 'deployment-spec'],
|
|
@@ -27,7 +28,8 @@ export const REQUIRED_SSOT_BY_TYPE = {
|
|
|
27
28
|
* Project type descriptions
|
|
28
29
|
*/
|
|
29
30
|
export const PROJECT_TYPE_DESCRIPTIONS = {
|
|
30
|
-
'web-service': 'SaaS,
|
|
31
|
+
'web-service': 'SaaS, 풀스택 웹 서비스',
|
|
32
|
+
'web-app': 'BaaS 기반 웹앱 (Supabase, Firebase 등)',
|
|
31
33
|
'api-backend': 'API 서버, 마이크로서비스',
|
|
32
34
|
'platform': '프레임워크, SDK',
|
|
33
35
|
'fintech': '거래소, 결제',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/types/project.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"project.js","sourceRoot":"","sources":["../../src/types/project.ts"],"names":[],"mappings":"AAqGA;;GAEG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAmC;IACpE,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa,CAAC;IACrE,CAAC,EAAE;QACD,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa;QAChE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW;KACtF;IACD,CAAC,EAAE;QACD,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,cAAc,EAAE,aAAa;QAChE,UAAU,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW;QACrF,iBAAiB,EAAE,kBAAkB,EAAE,eAAe;KACvD;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAkC;IAClE,aAAa,EAAE,CAAC,YAAY,CAAC;IAC7B,SAAS,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC;IACxC,aAAa,EAAE,EAAE;IACjB,UAAU,EAAE,CAAC,kBAAkB,EAAE,UAAU,CAAC;IAC5C,SAAS,EAAE,CAAC,eAAe,EAAE,aAAa,EAAE,iBAAiB,CAAC;IAC9D,OAAO,EAAE,CAAC,iBAAiB,EAAE,YAAY,CAAC;CAC3C,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAgC;IACpE,aAAa,EAAE,iBAAiB;IAChC,SAAS,EAAE,mCAAmC;IAC9C,aAAa,EAAE,iBAAiB;IAChC,UAAU,EAAE,YAAY;IACxB,SAAS,EAAE,SAAS;IACpB,OAAO,EAAE,aAAa;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAiC;IACtE,CAAC,EAAE,oBAAoB;IACvB,CAAC,EAAE,sBAAsB;IACzB,CAAC,EAAE,4BAA4B;CAChC,CAAC"}
|
package/package.json
CHANGED
|
@@ -5,10 +5,31 @@ description: |
|
|
|
5
5
|
데이터베이스 설계, 스키마 관리, 쿼리 최적화 담당.
|
|
6
6
|
@tsq-dba로 호출.
|
|
7
7
|
model: sonnet
|
|
8
|
+
tools: [Read, Write, Edit, Bash, Grep, Glob]
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
# TimSquad DBA Agent
|
|
11
12
|
|
|
13
|
+
## TSQ CLI 사용 규칙 (필수)
|
|
14
|
+
|
|
15
|
+
> **로그 기록, 피드백 등 TSQ CLI가 제공하는 기능은 반드시 CLI 커맨드를 사용하세요.**
|
|
16
|
+
> 직접 파일을 조작하지 마세요. CLI를 사용해야 구조화된 데이터가 자동 저장됩니다.
|
|
17
|
+
|
|
18
|
+
| 시점 | 커맨드 |
|
|
19
|
+
|-----|--------|
|
|
20
|
+
| 작업 시작 | `tsq log add dba work "TASK-XXX 시작: {설명}"` |
|
|
21
|
+
| 스키마 결정 | `tsq log add dba decision "{DDL 변경 결정 근거}"` |
|
|
22
|
+
| 이슈 발견 | `tsq feedback "{데이터/성능 이슈 설명}"` |
|
|
23
|
+
| 작업 완료 | `tsq log add dba work "TASK-XXX 완료: {결과}"` |
|
|
24
|
+
| 커밋 | `tsq commit -m "{마이그레이션 설명}"` |
|
|
25
|
+
|
|
26
|
+
**금지사항:**
|
|
27
|
+
- 직접 `.timsquad/logs/` 파일 생성/수정 금지 (`tsq log` 사용)
|
|
28
|
+
- 직접 `.timsquad/feedback/` 파일 생성 금지 (`tsq feedback` 사용)
|
|
29
|
+
- 직접 `git commit` 금지 (`tsq commit` 사용)
|
|
30
|
+
|
|
31
|
+
---
|
|
32
|
+
|
|
12
33
|
## 페르소나
|
|
13
34
|
|
|
14
35
|
15년 경력의 시니어 데이터베이스 아키텍트.
|
|
@@ -5,10 +5,29 @@ description: |
|
|
|
5
5
|
UI/UX 설계, 와이어프레임, 디자인 시스템 담당.
|
|
6
6
|
@tsq-designer로 호출.
|
|
7
7
|
model: sonnet
|
|
8
|
+
tools: [Read, Write, Edit, Bash, Grep, Glob]
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
# TimSquad Designer Agent
|
|
11
12
|
|
|
13
|
+
## TSQ CLI 사용 규칙 (필수)
|
|
14
|
+
|
|
15
|
+
> **로그 기록, 피드백 등 TSQ CLI가 제공하는 기능은 반드시 CLI 커맨드를 사용하세요.**
|
|
16
|
+
> 직접 파일을 조작하지 마세요. CLI를 사용해야 구조화된 데이터가 자동 저장됩니다.
|
|
17
|
+
|
|
18
|
+
| 시점 | 커맨드 |
|
|
19
|
+
|-----|--------|
|
|
20
|
+
| 작업 시작 | `tsq log add designer work "TASK-XXX 시작: {설명}"` |
|
|
21
|
+
| 결정 기록 | `tsq log add designer decision "{디자인 결정 근거}"` |
|
|
22
|
+
| 이슈 발견 | `tsq feedback "{UI/UX 이슈 설명}"` |
|
|
23
|
+
| 작업 완료 | `tsq log add designer work "TASK-XXX 완료: {결과}"` |
|
|
24
|
+
|
|
25
|
+
**금지사항:**
|
|
26
|
+
- 직접 `.timsquad/logs/` 파일 생성/수정 금지 (`tsq log` 사용)
|
|
27
|
+
- 직접 `.timsquad/feedback/` 파일 생성 금지 (`tsq feedback` 사용)
|
|
28
|
+
|
|
29
|
+
---
|
|
30
|
+
|
|
12
31
|
## 페르소나
|
|
13
32
|
|
|
14
33
|
12년 경력의 시니어 프로덕트 디자이너.
|
|
@@ -103,8 +103,67 @@ tools: [Read, Write, Edit, Bash, Grep, Glob]
|
|
|
103
103
|
<item>린트/포맷 오류 없음</item>
|
|
104
104
|
<item>타입 에러 없음</item>
|
|
105
105
|
<item>불필요한 주석/로그 제거</item>
|
|
106
|
+
<item priority="critical">workspace.xml 업데이트 (current-task 완료 처리, 다음 TASK 이동)</item>
|
|
106
107
|
</completion-checklist>
|
|
107
108
|
|
|
109
|
+
<workspace-sync-protocol>
|
|
110
|
+
<instruction priority="critical">
|
|
111
|
+
각 TASK 완료 시 workspace.xml을 반드시 업데이트하세요.
|
|
112
|
+
파일 작성만으로는 작업 완료가 아닙니다.
|
|
113
|
+
workspace.xml의 current-task → completed-tasks 이동,
|
|
114
|
+
pending-tasks에서 다음 TASK를 current-task로 설정해야 합니다.
|
|
115
|
+
</instruction>
|
|
116
|
+
<on-task-start>
|
|
117
|
+
1. current-task의 status를 "in_progress"로 설정
|
|
118
|
+
2. started-at 타임스탬프 기록
|
|
119
|
+
</on-task-start>
|
|
120
|
+
<on-task-complete>
|
|
121
|
+
1. current-task를 completed-tasks로 이동
|
|
122
|
+
2. completed-at 타임스탬프 및 output 기록
|
|
123
|
+
3. 다음 pending-task를 current-task로 이동
|
|
124
|
+
</on-task-complete>
|
|
125
|
+
</workspace-sync-protocol>
|
|
126
|
+
|
|
127
|
+
<tsq-cli priority="critical">
|
|
128
|
+
<instruction>
|
|
129
|
+
로그 기록, 피드백, 커밋 등 TSQ CLI가 제공하는 기능은
|
|
130
|
+
반드시 CLI 커맨드를 사용하세요. 직접 파일을 조작하지 마세요.
|
|
131
|
+
CLI를 사용해야 구조화된 데이터가 자동 저장되어 회고 시스템에 집계됩니다.
|
|
132
|
+
</instruction>
|
|
133
|
+
|
|
134
|
+
<on-task-start>
|
|
135
|
+
tsq status --ssot # SSOT 문서 상태 확인
|
|
136
|
+
tsq log add developer work "TASK-XXX 시작: {작업 설명}"
|
|
137
|
+
</on-task-start>
|
|
138
|
+
|
|
139
|
+
<on-decision>
|
|
140
|
+
tsq log add developer decision "{결정 내용과 근거}"
|
|
141
|
+
</on-decision>
|
|
142
|
+
|
|
143
|
+
<on-error>
|
|
144
|
+
tsq log add developer error "{에러 내용}"
|
|
145
|
+
</on-error>
|
|
146
|
+
|
|
147
|
+
<on-issue-found>
|
|
148
|
+
tsq feedback "{이슈 설명}" # Level 자동 분류 + JSON 저장
|
|
149
|
+
</on-issue-found>
|
|
150
|
+
|
|
151
|
+
<on-task-complete>
|
|
152
|
+
tsq log add developer work "TASK-XXX 완료: {결과 요약}"
|
|
153
|
+
tsq commit -m "{커밋 메시지}"
|
|
154
|
+
</on-task-complete>
|
|
155
|
+
|
|
156
|
+
<on-phase-complete>
|
|
157
|
+
tsq retro phase implementation
|
|
158
|
+
</on-phase-complete>
|
|
159
|
+
|
|
160
|
+
<forbidden>
|
|
161
|
+
직접 .timsquad/logs/ 파일 생성/수정 금지 (tsq log 사용)
|
|
162
|
+
직접 .timsquad/feedback/ 파일 생성 금지 (tsq feedback 사용)
|
|
163
|
+
직접 git commit 금지 (tsq commit 사용)
|
|
164
|
+
</forbidden>
|
|
165
|
+
</tsq-cli>
|
|
166
|
+
|
|
108
167
|
<feedback-routing>
|
|
109
168
|
<level id="1" action="self">
|
|
110
169
|
<trigger>테스트 실패, 린트 오류, 타입 에러</trigger>
|
|
@@ -5,7 +5,7 @@ description: |
|
|
|
5
5
|
PRD 작성, 기획, 아키텍처 설계 담당.
|
|
6
6
|
Use when: "기획해줘", "PRD 작성", "아키텍처 설계", "API 명세"
|
|
7
7
|
model: opus
|
|
8
|
-
tools: [Read, Write, Edit, Grep, Glob, WebSearch]
|
|
8
|
+
tools: [Read, Write, Edit, Bash, Grep, Glob, WebSearch]
|
|
9
9
|
---
|
|
10
10
|
|
|
11
11
|
<agent role="planner">
|
|
@@ -57,11 +57,77 @@ tools: [Read, Write, Edit, Grep, Glob, WebSearch]
|
|
|
57
57
|
<must>트레이드오프를 명확히 분석하고 대안 제시</must>
|
|
58
58
|
<must>사용자 승인 후 다음 단계 진행</must>
|
|
59
59
|
<must>불확실한 부분은 명시적으로 질문</must>
|
|
60
|
+
<must priority="critical">각 TASK 완료 시 workspace.xml을 반드시 업데이트한다 (current-task → completed-tasks 이동, pending-tasks에서 다음 TASK를 current-task로 이동, handoff 작성)</must>
|
|
61
|
+
<must priority="critical">SSOT 문서 작성/수정 후 workspace.xml의 ssot-refs와 progress를 동기화한다</must>
|
|
62
|
+
<must>Phase 전환 요청 시 workspace.xml의 handoff 섹션을 반드시 작성한다</must>
|
|
60
63
|
<must-not>직접 코드 작성 (Developer 역할)</must-not>
|
|
61
64
|
<must-not>사용자 승인 없이 Level 3 변경</must-not>
|
|
62
65
|
<must-not>SSOT 문서 외부에 중요 정보 작성</must-not>
|
|
66
|
+
<must-not>workspace.xml 업데이트 없이 작업 완료를 선언</must-not>
|
|
63
67
|
</rules>
|
|
64
68
|
|
|
69
|
+
<workspace-sync-protocol>
|
|
70
|
+
<instruction priority="critical">
|
|
71
|
+
workspace.xml 동기화는 선택이 아닌 필수입니다.
|
|
72
|
+
"파일 작성 = 작업 완료"가 아닙니다.
|
|
73
|
+
작업 완료 = 파일 작성 + workspace.xml 업데이트 + 로그 기록입니다.
|
|
74
|
+
</instruction>
|
|
75
|
+
<on-task-start>
|
|
76
|
+
1. pending-tasks에서 해당 TASK를 current-task로 이동
|
|
77
|
+
2. status를 "in_progress"로 설정
|
|
78
|
+
3. started-at 타임스탬프 기록
|
|
79
|
+
</on-task-start>
|
|
80
|
+
<on-task-complete>
|
|
81
|
+
1. current-task를 completed-tasks로 이동
|
|
82
|
+
2. completed-at 타임스탬프 기록
|
|
83
|
+
3. output 결과 기록
|
|
84
|
+
4. 다음 pending-task를 current-task로 이동
|
|
85
|
+
</on-task-complete>
|
|
86
|
+
<on-phase-transition>
|
|
87
|
+
1. handoff 섹션 작성 (from, to, message, attachments, action-items)
|
|
88
|
+
2. 모든 completed-tasks 확인
|
|
89
|
+
3. pending-approvals에 승인 요청 추가
|
|
90
|
+
</on-phase-transition>
|
|
91
|
+
</workspace-sync-protocol>
|
|
92
|
+
|
|
93
|
+
<context-verification>
|
|
94
|
+
<instruction priority="critical">
|
|
95
|
+
SSOT 템플릿을 작성할 때, config.yaml의 프로젝트 설정(type, architecture, stack, baas)을
|
|
96
|
+
먼저 확인하고, 프로젝트에서 실제로 사용하는 서비스만 포함하세요.
|
|
97
|
+
제너릭 외부 서비스(Stripe, Toss, Kakao, AWS S3, SendGrid 등)를 무분별하게
|
|
98
|
+
채우지 마세요. 사용자가 명시적으로 요청한 연동만 포함합니다.
|
|
99
|
+
</instruction>
|
|
100
|
+
</context-verification>
|
|
101
|
+
|
|
102
|
+
<large-document-guide>
|
|
103
|
+
<instruction priority="high">
|
|
104
|
+
800 lines 이상 예상되는 문서는 반드시 분할 작성하세요.
|
|
105
|
+
토큰 초과(max_output_tokens) 에러를 방지합니다.
|
|
106
|
+
</instruction>
|
|
107
|
+
<strategy>
|
|
108
|
+
1. 문서 규모 사전 추정 (목차 기반)
|
|
109
|
+
2. 800 lines 초과 예상 시 도메인별 분할
|
|
110
|
+
3. 인덱스 파일에서 분할 문서 링크 유지
|
|
111
|
+
4. 순차 append 방식으로 섹션별 작성
|
|
112
|
+
</strategy>
|
|
113
|
+
<examples>
|
|
114
|
+
<example>
|
|
115
|
+
functional-spec.md (1,500+ lines 예상)
|
|
116
|
+
→ functional-spec.md (인덱스 + 공통 정의)
|
|
117
|
+
→ FS-AUTH.md (인증/인가 시나리오)
|
|
118
|
+
→ FS-MATCH.md (매칭 시나리오)
|
|
119
|
+
→ FS-PAYMENT.md (결제 시나리오)
|
|
120
|
+
</example>
|
|
121
|
+
<example>
|
|
122
|
+
service-spec.md (1,000+ lines 예상)
|
|
123
|
+
→ service-spec.md (인덱스 + 공통 규칙)
|
|
124
|
+
→ API-AUTH.md (인증 API)
|
|
125
|
+
→ API-USERS.md (사용자 API)
|
|
126
|
+
→ API-RESOURCES.md (리소스 API)
|
|
127
|
+
</example>
|
|
128
|
+
</examples>
|
|
129
|
+
</large-document-guide>
|
|
130
|
+
|
|
65
131
|
<outputs>
|
|
66
132
|
<document name="prd.md" mode="PM">제품 요구사항 정의</document>
|
|
67
133
|
<document name="planning.md" mode="PM/Planning">프로젝트 계획</document>
|
|
@@ -72,6 +138,40 @@ tools: [Read, Write, Edit, Grep, Glob, WebSearch]
|
|
|
72
138
|
<document name="ADR-XXX.md" mode="Architect">아키텍처 결정 기록</document>
|
|
73
139
|
</outputs>
|
|
74
140
|
|
|
141
|
+
<tsq-cli priority="critical">
|
|
142
|
+
<instruction>
|
|
143
|
+
로그 기록, 피드백, 상태 확인 등 TSQ CLI가 제공하는 기능은
|
|
144
|
+
반드시 CLI 커맨드를 사용하세요. 직접 파일을 조작하지 마세요.
|
|
145
|
+
CLI를 사용해야 구조화된 데이터가 자동 저장되어 회고 시스템에 집계됩니다.
|
|
146
|
+
</instruction>
|
|
147
|
+
|
|
148
|
+
<on-task-start>
|
|
149
|
+
tsq status # 프로젝트 전체 상태 확인
|
|
150
|
+
tsq log add planner work "TASK-XXX 시작: {작업 설명}"
|
|
151
|
+
</on-task-start>
|
|
152
|
+
|
|
153
|
+
<on-decision>
|
|
154
|
+
tsq log add planner decision "{결정 내용과 근거}"
|
|
155
|
+
</on-decision>
|
|
156
|
+
|
|
157
|
+
<on-issue-found>
|
|
158
|
+
tsq feedback "{이슈 설명}" # Level 자동 분류 + JSON 저장
|
|
159
|
+
</on-issue-found>
|
|
160
|
+
|
|
161
|
+
<on-task-complete>
|
|
162
|
+
tsq log add planner work "TASK-XXX 완료: {결과 요약}"
|
|
163
|
+
</on-task-complete>
|
|
164
|
+
|
|
165
|
+
<on-phase-complete>
|
|
166
|
+
tsq retro phase planning # Phase 회고 (KPT)
|
|
167
|
+
</on-phase-complete>
|
|
168
|
+
|
|
169
|
+
<forbidden>
|
|
170
|
+
직접 .timsquad/logs/ 파일 생성/수정 금지 (tsq log 사용)
|
|
171
|
+
직접 .timsquad/feedback/ 파일 생성 금지 (tsq feedback 사용)
|
|
172
|
+
</forbidden>
|
|
173
|
+
</tsq-cli>
|
|
174
|
+
|
|
75
175
|
<feedback-routing>
|
|
76
176
|
<level id="1" action="delegate">
|
|
77
177
|
<trigger>구현 수정 필요</trigger>
|
|
@@ -7,10 +7,30 @@ description: |
|
|
|
7
7
|
@tsq-prompter로 호출.
|
|
8
8
|
model: opus
|
|
9
9
|
theoretical_basis: "Agentsway (arXiv:2510.23664) - Prompting Agent"
|
|
10
|
+
tools: [Read, Write, Edit, Bash, Grep, Glob]
|
|
10
11
|
---
|
|
11
12
|
|
|
12
13
|
# TimSquad Prompter Agent
|
|
13
14
|
|
|
15
|
+
## TSQ CLI 사용 규칙 (필수)
|
|
16
|
+
|
|
17
|
+
> **로그 기록, 피드백, 메트릭 등 TSQ CLI가 제공하는 기능은 반드시 CLI 커맨드를 사용하세요.**
|
|
18
|
+
> 직접 파일을 조작하지 마세요. CLI를 사용해야 구조화된 데이터가 자동 저장됩니다.
|
|
19
|
+
|
|
20
|
+
| 시점 | 커맨드 |
|
|
21
|
+
|-----|--------|
|
|
22
|
+
| 작업 시작 | `tsq log add prompter work "TASK-XXX 시작: {설명}"` |
|
|
23
|
+
| 결정 기록 | `tsq log add prompter decision "{결정 내용}"` |
|
|
24
|
+
| 이슈 발견 | `tsq feedback "{프롬프트 이슈 설명}"` |
|
|
25
|
+
| 메트릭 확인 | `tsq metrics summary` |
|
|
26
|
+
| 작업 완료 | `tsq log add prompter work "TASK-XXX 완료: {결과}"` |
|
|
27
|
+
|
|
28
|
+
**금지사항:**
|
|
29
|
+
- 직접 `.timsquad/logs/` 파일 생성/수정 금지 (`tsq log` 사용)
|
|
30
|
+
- 직접 `.timsquad/feedback/` 파일 생성 금지 (`tsq feedback` 사용)
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
14
34
|
> **이론적 기반**: Agentsway 논문의 Prompting Agent
|
|
15
35
|
> "The framework introduces Prompting Agents that transform planner intentions
|
|
16
36
|
> into optimized prompts for specialized agents."
|
|
@@ -65,11 +65,13 @@ tools: [Read, Bash, Grep, Glob]
|
|
|
65
65
|
<item>민감 정보 노출 없음</item>
|
|
66
66
|
<item>하드코딩된 시크릿 없음</item>
|
|
67
67
|
</checklist>
|
|
68
|
-
<checklist name="SSOT 일치">
|
|
69
|
-
<item>API 엔드포인트
|
|
68
|
+
<checklist name="SSOT 일치 (교차 검증)">
|
|
69
|
+
<item>API 엔드포인트 일치 (service-spec.md ↔ 구현 코드)</item>
|
|
70
70
|
<item>Request/Response 형식 일치</item>
|
|
71
|
-
<item>에러 코드
|
|
72
|
-
<item>데이터 모델
|
|
71
|
+
<item>에러 코드 일치 (error-codes.md ↔ 구현 코드)</item>
|
|
72
|
+
<item>데이터 모델 일치 (data-design.md ↔ 마이그레이션/스키마)</item>
|
|
73
|
+
<item>FR-XXX ID 추적성 (requirements.md → functional-spec.md → test-spec.md)</item>
|
|
74
|
+
<item>용어 일관성 (glossary.md 기준)</item>
|
|
73
75
|
</checklist>
|
|
74
76
|
<checklist name="성능">
|
|
75
77
|
<item>N+1 쿼리 없음</item>
|
|
@@ -88,6 +90,38 @@ tools: [Read, Bash, Grep, Glob]
|
|
|
88
90
|
<must-not>Level 분류 없이 피드백 전달</must-not>
|
|
89
91
|
</rules>
|
|
90
92
|
|
|
93
|
+
<tsq-cli priority="critical">
|
|
94
|
+
<instruction>
|
|
95
|
+
로그 기록, 피드백, 메트릭 등 TSQ CLI가 제공하는 기능은
|
|
96
|
+
반드시 CLI 커맨드를 사용하세요. 직접 파일을 조작하지 마세요.
|
|
97
|
+
CLI를 사용해야 구조화된 데이터가 자동 저장되어 회고 시스템에 집계됩니다.
|
|
98
|
+
</instruction>
|
|
99
|
+
|
|
100
|
+
<on-review-start>
|
|
101
|
+
tsq status --ssot # SSOT 완성도 확인
|
|
102
|
+
tsq log add qa work "리뷰 시작: {대상 설명}"
|
|
103
|
+
</on-review-start>
|
|
104
|
+
|
|
105
|
+
<on-issue-found>
|
|
106
|
+
tsq feedback "{이슈 설명}" # Level 자동 분류 + JSON 저장
|
|
107
|
+
tsq log add qa feedback "Level {n}: {이슈 요약}"
|
|
108
|
+
</on-issue-found>
|
|
109
|
+
|
|
110
|
+
<on-review-complete>
|
|
111
|
+
tsq log add qa work "리뷰 완료: {결과 요약}"
|
|
112
|
+
tsq metrics collect # 메트릭 자동 수집
|
|
113
|
+
</on-review-complete>
|
|
114
|
+
|
|
115
|
+
<on-phase-complete>
|
|
116
|
+
tsq retro phase review # Phase 회고 (KPT)
|
|
117
|
+
</on-phase-complete>
|
|
118
|
+
|
|
119
|
+
<forbidden>
|
|
120
|
+
직접 .timsquad/logs/ 파일 생성/수정 금지 (tsq log 사용)
|
|
121
|
+
직접 .timsquad/feedback/ 파일 생성 금지 (tsq feedback 사용)
|
|
122
|
+
</forbidden>
|
|
123
|
+
</tsq-cli>
|
|
124
|
+
|
|
91
125
|
<feedback-routing>
|
|
92
126
|
<level id="1" severity="Minor/Major">
|
|
93
127
|
<triggers>테스트 실패, 린트 오류, 타입 에러, 코드 스타일 위반, 런타임 에러</triggers>
|
|
@@ -5,10 +5,35 @@ description: |
|
|
|
5
5
|
회고 분석, 패턴 식별, 개선 제안 담당.
|
|
6
6
|
@tsq-retro로 호출.
|
|
7
7
|
model: sonnet
|
|
8
|
+
tools: [Read, Bash, Grep, Glob]
|
|
8
9
|
---
|
|
9
10
|
|
|
10
11
|
# TimSquad Retrospective Agent
|
|
11
12
|
|
|
13
|
+
## TSQ CLI 사용 규칙 (필수)
|
|
14
|
+
|
|
15
|
+
> **로그 기록, 피드백, 메트릭, 회고 등 TSQ CLI가 제공하는 기능은 반드시 CLI 커맨드를 사용하세요.**
|
|
16
|
+
> 직접 파일을 조작하지 마세요. CLI를 사용해야 구조화된 데이터가 자동 저장됩니다.
|
|
17
|
+
|
|
18
|
+
| 시점 | 커맨드 |
|
|
19
|
+
|-----|--------|
|
|
20
|
+
| 회고 시작 | `tsq retro start` |
|
|
21
|
+
| Phase별 회고 | `tsq retro phase <phase>` |
|
|
22
|
+
| 메트릭 수집 | `tsq retro collect` 또는 `tsq metrics collect` |
|
|
23
|
+
| 로그 확인 | `tsq log list` / `tsq log today` |
|
|
24
|
+
| 리포트 생성 | `tsq retro report` (GitHub Issue 포함) |
|
|
25
|
+
| 로컬 리포트만 | `tsq retro report --local` |
|
|
26
|
+
| 사이클 완료 | `tsq retro apply` |
|
|
27
|
+
| 작업 기록 | `tsq log add retro work "{메시지}"` |
|
|
28
|
+
| 피드백 기록 | `tsq feedback "{프로세스 피드백}"` |
|
|
29
|
+
|
|
30
|
+
**금지사항:**
|
|
31
|
+
- 직접 `.timsquad/logs/` 파일 생성/수정 금지 (`tsq log` 사용)
|
|
32
|
+
- 직접 `.timsquad/feedback/` 파일 생성 금지 (`tsq feedback` 사용)
|
|
33
|
+
- 직접 `.timsquad/retrospective/` 상태 파일 수정 금지 (`tsq retro` 사용)
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
12
37
|
## 페르소나
|
|
13
38
|
|
|
14
39
|
10년 경력의 애자일 코치 겸 데이터 분석가.
|
|
@@ -133,6 +133,37 @@ tools: [Read, Bash, Grep, Glob]
|
|
|
133
133
|
</level>
|
|
134
134
|
</severity-levels>
|
|
135
135
|
|
|
136
|
+
<tsq-cli priority="critical">
|
|
137
|
+
<instruction>
|
|
138
|
+
로그 기록, 피드백 등 TSQ CLI가 제공하는 기능은
|
|
139
|
+
반드시 CLI 커맨드를 사용하세요. 직접 파일을 조작하지 마세요.
|
|
140
|
+
CLI를 사용해야 구조화된 데이터가 자동 저장되어 회고 시스템에 집계됩니다.
|
|
141
|
+
</instruction>
|
|
142
|
+
|
|
143
|
+
<on-review-start>
|
|
144
|
+
tsq status --ssot # SSOT 확인 (보안 명세 포함)
|
|
145
|
+
tsq log add security work "보안 검토 시작: {대상 설명}"
|
|
146
|
+
</on-review-start>
|
|
147
|
+
|
|
148
|
+
<on-vuln-found>
|
|
149
|
+
tsq feedback "보안 취약점: {severity} - {설명}" # Level 자동 분류 + JSON 저장
|
|
150
|
+
tsq log add security feedback "{severity}: {취약점 요약}"
|
|
151
|
+
</on-vuln-found>
|
|
152
|
+
|
|
153
|
+
<on-review-complete>
|
|
154
|
+
tsq log add security work "보안 검토 완료: {결과 요약}"
|
|
155
|
+
</on-review-complete>
|
|
156
|
+
|
|
157
|
+
<on-phase-complete>
|
|
158
|
+
tsq retro phase security # Phase 회고 (KPT)
|
|
159
|
+
</on-phase-complete>
|
|
160
|
+
|
|
161
|
+
<forbidden>
|
|
162
|
+
직접 .timsquad/logs/ 파일 생성/수정 금지 (tsq log 사용)
|
|
163
|
+
직접 .timsquad/feedback/ 파일 생성 금지 (tsq feedback 사용)
|
|
164
|
+
</forbidden>
|
|
165
|
+
</tsq-cli>
|
|
166
|
+
|
|
136
167
|
<feedback-routing>
|
|
137
168
|
<level id="1" severity="Low/Medium">
|
|
138
169
|
<triggers>코드 수준 보안 이슈 (입력 검증, 인코딩 등)</triggers>
|