create-mintly 1.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.
@@ -0,0 +1,273 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "Meeting Dashboard Data (Universal)",
4
+ "description": "10가지 회의 유형을 지원하는 범용 대시보드 JSON 스키마. 공통 섹션은 필수, 유형별 섹션은 선택.",
5
+ "type": "object",
6
+ "required": ["meta", "summary", "signals", "risks", "timeline", "actions"],
7
+ "properties": {
8
+ "meta": {
9
+ "type": "object",
10
+ "required": ["title", "type", "date"],
11
+ "properties": {
12
+ "title": { "type": "string", "description": "대시보드 제목" },
13
+ "subtitle": { "type": "string", "description": "부제 / 한 줄 설명" },
14
+ "type": {
15
+ "type": "string",
16
+ "enum": ["team-sync", "one-on-one", "client-call", "brainstorm", "retrospective", "kickoff", "decision", "board", "sales", "workshop"],
17
+ "description": "회의 유형 ID"
18
+ },
19
+ "date": { "type": "string", "description": "기준 날짜 (YYYY-MM-DD)" },
20
+ "sources": {
21
+ "type": "array",
22
+ "items": { "type": "string" },
23
+ "description": "사용한 원천 파일 목록"
24
+ }
25
+ }
26
+ },
27
+ "summary": {
28
+ "type": "object",
29
+ "required": ["conclusion"],
30
+ "properties": {
31
+ "conclusion": { "type": "string" },
32
+ "status": { "type": "string" },
33
+ "next_action": { "type": "string" }
34
+ }
35
+ },
36
+ "signals": {
37
+ "type": "array",
38
+ "items": {
39
+ "type": "object",
40
+ "required": ["title", "severity"],
41
+ "properties": {
42
+ "title": { "type": "string" },
43
+ "severity": { "type": "string", "enum": ["high", "medium", "low"] },
44
+ "evidence": { "type": "string" }
45
+ }
46
+ }
47
+ },
48
+ "risks": {
49
+ "type": "array",
50
+ "items": {
51
+ "type": "object",
52
+ "required": ["title", "severity"],
53
+ "properties": {
54
+ "title": { "type": "string" },
55
+ "severity": { "type": "string", "enum": ["high", "medium", "low"] },
56
+ "evidence": { "type": "string" }
57
+ }
58
+ }
59
+ },
60
+ "timeline": {
61
+ "type": "array",
62
+ "items": {
63
+ "type": "object",
64
+ "required": ["date", "title"],
65
+ "properties": {
66
+ "date": { "type": "string" },
67
+ "title": { "type": "string" },
68
+ "type": { "type": "string" },
69
+ "note": { "type": "string" }
70
+ }
71
+ }
72
+ },
73
+ "actions": {
74
+ "type": "array",
75
+ "items": {
76
+ "type": "object",
77
+ "required": ["title", "owner", "priority"],
78
+ "properties": {
79
+ "title": { "type": "string" },
80
+ "owner": { "type": "string" },
81
+ "due_date": { "type": ["string", "null"] },
82
+ "priority": { "type": "string", "enum": ["high", "medium", "low"] },
83
+ "status": { "type": "string", "enum": ["todo", "doing", "done"] }
84
+ }
85
+ }
86
+ },
87
+ "decisions": {
88
+ "type": "array",
89
+ "description": "의사결정 회의, 팀 회의, 경영회의에서 사용",
90
+ "items": {
91
+ "type": "object",
92
+ "required": ["topic", "chosen"],
93
+ "properties": {
94
+ "topic": { "type": "string" },
95
+ "options": { "type": "array", "items": { "type": "string" } },
96
+ "chosen": { "type": "string" },
97
+ "rationale": { "type": "string" }
98
+ }
99
+ }
100
+ },
101
+ "pipeline": {
102
+ "type": "array",
103
+ "description": "영업/고객 미팅에서 사용",
104
+ "items": {
105
+ "type": "object",
106
+ "required": ["id", "label", "stage", "confidence"],
107
+ "properties": {
108
+ "id": { "type": "string" },
109
+ "label": { "type": "string" },
110
+ "stage": { "type": "string" },
111
+ "confidence": { "type": "string", "enum": ["high", "medium", "low"] },
112
+ "key_issue": { "type": "string" },
113
+ "owner": { "type": "string" },
114
+ "volume": { "type": "string" }
115
+ }
116
+ }
117
+ },
118
+ "profiles": {
119
+ "type": "array",
120
+ "description": "영업/고객 미팅에서 사용",
121
+ "items": {
122
+ "type": "object",
123
+ "required": ["id", "name", "type", "status"],
124
+ "properties": {
125
+ "id": { "type": "string" },
126
+ "name": { "type": "string" },
127
+ "type": { "type": "string" },
128
+ "status": { "type": "string" },
129
+ "owner": { "type": "string" },
130
+ "summary": { "type": "string" }
131
+ }
132
+ }
133
+ },
134
+ "retrospective": {
135
+ "type": "object",
136
+ "description": "회고에서 사용",
137
+ "properties": {
138
+ "went_well": { "type": "array", "items": { "type": "string" } },
139
+ "to_improve": { "type": "array", "items": { "type": "string" } },
140
+ "commitments": { "type": "array", "items": { "type": "string" } }
141
+ }
142
+ },
143
+ "project_scope": {
144
+ "type": "object",
145
+ "description": "킥오프에서 사용",
146
+ "properties": {
147
+ "goals": { "type": "array", "items": { "type": "string" } },
148
+ "roles": {
149
+ "type": "array",
150
+ "items": {
151
+ "type": "object",
152
+ "properties": {
153
+ "role": { "type": "string" },
154
+ "person": { "type": "string" },
155
+ "responsibility": { "type": "string" }
156
+ }
157
+ }
158
+ },
159
+ "milestones": {
160
+ "type": "array",
161
+ "items": {
162
+ "type": "object",
163
+ "properties": {
164
+ "title": { "type": "string" },
165
+ "date": { "type": "string" },
166
+ "deliverable": { "type": "string" }
167
+ }
168
+ }
169
+ }
170
+ }
171
+ },
172
+ "feedback": {
173
+ "type": "object",
174
+ "description": "1:1 미팅에서 사용",
175
+ "properties": {
176
+ "given": {
177
+ "type": "array",
178
+ "items": {
179
+ "type": "object",
180
+ "properties": {
181
+ "topic": { "type": "string" },
182
+ "content": { "type": "string" },
183
+ "tone": { "type": "string" }
184
+ }
185
+ }
186
+ },
187
+ "received": {
188
+ "type": "array",
189
+ "items": {
190
+ "type": "object",
191
+ "properties": {
192
+ "topic": { "type": "string" },
193
+ "content": { "type": "string" },
194
+ "tone": { "type": "string" }
195
+ }
196
+ }
197
+ },
198
+ "goals_progress": {
199
+ "type": "array",
200
+ "items": {
201
+ "type": "object",
202
+ "properties": {
203
+ "goal": { "type": "string" },
204
+ "status": { "type": "string" },
205
+ "note": { "type": "string" }
206
+ }
207
+ }
208
+ }
209
+ }
210
+ },
211
+ "kpis": {
212
+ "type": "array",
213
+ "description": "경영/이사회에서 사용",
214
+ "items": {
215
+ "type": "object",
216
+ "required": ["name", "value"],
217
+ "properties": {
218
+ "name": { "type": "string" },
219
+ "value": { "type": "string" },
220
+ "target": { "type": "string" },
221
+ "trend": { "type": "string", "enum": ["up", "down", "flat"] }
222
+ }
223
+ }
224
+ },
225
+ "ideas": {
226
+ "type": "array",
227
+ "description": "브레인스토밍/워크숍에서 사용",
228
+ "items": {
229
+ "type": "object",
230
+ "required": ["title"],
231
+ "properties": {
232
+ "title": { "type": "string" },
233
+ "votes": { "type": "number" },
234
+ "category": { "type": "string" },
235
+ "note": { "type": "string" }
236
+ }
237
+ }
238
+ },
239
+ "unresolved": {
240
+ "type": "array",
241
+ "items": {
242
+ "type": "object",
243
+ "required": ["title", "status"],
244
+ "properties": {
245
+ "title": { "type": "string" },
246
+ "owner": { "type": "string" },
247
+ "status": { "type": "string" }
248
+ }
249
+ }
250
+ },
251
+ "blockers": {
252
+ "type": "array",
253
+ "items": {
254
+ "type": "object",
255
+ "required": ["title", "status"],
256
+ "properties": {
257
+ "title": { "type": "string" },
258
+ "owner": { "type": "string" },
259
+ "status": { "type": "string" },
260
+ "note": { "type": "string" }
261
+ }
262
+ }
263
+ },
264
+ "follow_up": {
265
+ "type": "object",
266
+ "properties": {
267
+ "channel": { "type": "string" },
268
+ "subject": { "type": "string" },
269
+ "body": { "type": "string" }
270
+ }
271
+ }
272
+ }
273
+ }
@@ -0,0 +1,49 @@
1
+ # Output Contract
2
+
3
+ 이 킷의 출력은 3개 파일로 구성됩니다.
4
+
5
+ ## Required Outputs
6
+
7
+ | file | 목적 | 최소 포함 항목 |
8
+ |------|------|----------------|
9
+ | `brief.md` | 작업 브리프 | source_bundle, meeting_type, goal, audience, key_data_points |
10
+ | `analysis.md` | 구조화된 분석 | conclusion, signals, risks, actions, 유형별 추가 섹션 |
11
+ | `dashboard.html` | 시각화 대시보드 | JSON 데이터 + JS 렌더러 (조건부 섹션 자동 처리) |
12
+
13
+ ## Dashboard JSON Field Dictionary
14
+
15
+ ### 공통 필드 (항상 포함)
16
+
17
+ | 영역 | canonical fields |
18
+ |------|------------------|
19
+ | `meta` | `title`, `subtitle`, `type`, `date`, `sources[]` |
20
+ | `summary` | `conclusion`, `status`, `next_action` |
21
+ | `signals[]` | `title`, `severity`, `evidence` |
22
+ | `risks[]` | `title`, `severity`, `evidence` |
23
+ | `timeline[]` | `date`, `title`, `type`, `note` |
24
+ | `actions[]` | `title`, `owner`, `due_date`, `priority`, `status` |
25
+
26
+ ### 유형별 선택 필드 (있으면 렌더링, 없으면 생략)
27
+
28
+ | 영역 | canonical fields | 관련 유형 |
29
+ |------|------------------|----------|
30
+ | `decisions[]` | `topic`, `options[]`, `chosen`, `rationale` | decision, team-sync, board |
31
+ | `pipeline[]` | `id`, `label`, `stage`, `confidence`, `key_issue`, `owner`, `volume` | sales, client-call |
32
+ | `profiles[]` | `id`, `name`, `type`, `status`, `owner`, `summary` | sales, client-call |
33
+ | `retrospective` | `went_well[]`, `to_improve[]`, `commitments[]` | retrospective |
34
+ | `project_scope` | `goals[]`, `roles[]`, `milestones[]` | kickoff |
35
+ | `feedback` | `given[]`, `received[]`, `goals_progress[]` | one-on-one |
36
+ | `kpis[]` | `name`, `value`, `target`, `trend` | board |
37
+ | `ideas[]` | `title`, `votes`, `category`, `note` | brainstorm, workshop |
38
+ | `unresolved[]` | `title`, `owner`, `status` | 선택 |
39
+ | `blockers[]` | `title`, `owner`, `status`, `note` | 선택 |
40
+ | `follow_up` | `channel`, `subject`, `body` | 선택 |
41
+
42
+ ## Normalization Rules
43
+
44
+ 1. 액션은 항상 `title`, `owner`, `priority`를 가져야 합니다.
45
+ 2. 리스크와 신호는 별도 목록으로 분리합니다.
46
+ 3. severity와 priority는 `high` / `medium` / `low`로 통일합니다.
47
+ 4. status는 `todo` / `doing` / `done`으로 통일합니다.
48
+ 5. 추정치가 필요한 필드는 `note` 또는 `evidence`로 불확실성을 표시합니다.
49
+ 6. 빈 배열(`[]`)이나 빈 객체(`{}`)는 JSON에 포함하지 않습니다 — 해당 섹션이 렌더링되지 않게 합니다.
@@ -0,0 +1,29 @@
1
+ # Source Contract
2
+
3
+ 원천 자료의 종류가 달라도 같은 메타 구조를 유지합니다.
4
+
5
+ ## Required Fields
6
+
7
+ | field | required | 설명 |
8
+ |------|----------|------|
9
+ | `id` | yes | source bundle 식별자 |
10
+ | `date` | yes | 기준 날짜 |
11
+ | `title` | yes | 회의/문서 제목 |
12
+ | `type` | yes | meeting / interview / proposal / review / note |
13
+ | `participants` | yes | 관련자 목록 |
14
+ | `raw_path` | yes | 원본 transcript 또는 문서 경로 |
15
+ | `summary_path` | no | 요약본 경로 |
16
+ | `tags` | no | 분류용 태그 |
17
+
18
+ ## Supported Source Types
19
+
20
+ - `audio`: 녹음 파일 (m4a, mp3)
21
+ - `transcript`: 텍스트 변환 결과 (txt)
22
+ - `summary`: AI 또는 수동 요약 (md)
23
+ - `document`: 제안서, 노트, 운영 문서 (md, txt)
24
+
25
+ ## Operating Rules
26
+
27
+ 1. `summary`가 없어도 진행 가능하지만, transcript나 document가 있어야 근거를 추적할 수 있습니다.
28
+ 2. 파일명 규칙: `YYMMDD_제목.확장자` 권장. 없으면 Claude가 파일 내용에서 메타 정보를 추출합니다.
29
+ 3. 회의록이 아닌 문서형 자료도 같은 필드를 사용합니다.
@@ -0,0 +1,124 @@
1
+ # [bundle-id] Analysis
2
+
3
+ > 시각화 결과물로 바로 옮길 수 있는 구조화된 분석 문서
4
+
5
+ ## Input Bundle
6
+
7
+ | 항목 | 내용 |
8
+ |------|------|
9
+ | `id` | |
10
+ | `date` | YYYY-MM-DD |
11
+ | `title` | |
12
+ | `meeting_type` | team-sync / one-on-one / client-call / brainstorm / retrospective / kickoff / decision / board / sales / workshop |
13
+ | `participants` | |
14
+ | `source types` | transcript / summary / document / audio |
15
+
16
+ ---
17
+
18
+ ## Source Files Used
19
+
20
+ - transcript:
21
+ - summary:
22
+ - related docs:
23
+ - notes:
24
+
25
+ ---
26
+
27
+ ## One-line Conclusion
28
+
29
+ -
30
+
31
+ ---
32
+
33
+ ## Key Signals
34
+
35
+ ### Positive Signals
36
+ - signal:
37
+ - signal:
38
+
39
+ ### Warning Signals
40
+ - signal:
41
+ - signal:
42
+
43
+ ---
44
+
45
+ ## Risks / Issues
46
+
47
+ | 리스크 | 심각도 | 근거 | 상태 |
48
+ |--------|--------|------|------|
49
+ | | high / medium / low | | open / resolved / pending |
50
+ | | high / medium / low | | open / resolved / pending |
51
+
52
+ ---
53
+
54
+ ## Decisions / Current Status
55
+
56
+ - 현재 상태:
57
+ - 진행 단계:
58
+ - 중요한 결정:
59
+
60
+ ---
61
+
62
+ ## Action Items
63
+
64
+ | action | owner | due | priority | status | note |
65
+ |--------|-------|-----|----------|--------|------|
66
+ | | | YYYY-MM-DD | high / medium / low | todo / doing / done | |
67
+ | | | YYYY-MM-DD | high / medium / low | todo / doing / done | |
68
+
69
+ ---
70
+
71
+ ## 유형별 추가 섹션
72
+
73
+ <!-- 회의 유형에 따라 아래 중 해당하는 섹션만 작성합니다 -->
74
+
75
+ ### sales / client-call
76
+ - 파이프라인 상태:
77
+ - 상대 프로파일:
78
+ - 전환 가능성:
79
+
80
+ ### retrospective
81
+ - 잘한 점:
82
+ - 개선할 점:
83
+ - 팀 약속:
84
+
85
+ ### kickoff
86
+ - 프로젝트 범위:
87
+ - 역할 배분:
88
+ - 마일스톤:
89
+
90
+ ### one-on-one
91
+ - 피드백 요약:
92
+ - 목표 진행상황:
93
+
94
+ ### decision
95
+ - 선택지 비교:
96
+ - 결정 근거:
97
+
98
+ ### board
99
+ - KPI 현황:
100
+ - 전략 결정:
101
+
102
+ ### brainstorm
103
+ - 도출된 아이디어:
104
+ - 카테고리별 정리:
105
+
106
+ ---
107
+
108
+ ## Unresolved Questions
109
+
110
+ 1.
111
+ 2.
112
+ 3.
113
+
114
+ ---
115
+
116
+ ## Timeline Summary
117
+
118
+ | date | event | type | note |
119
+ |------|-------|------|------|
120
+ | | | meeting / milestone / deadline / follow-up | |
121
+
122
+ ---
123
+
124
+ *generated_from: source bundle · mintly*
@@ -0,0 +1,101 @@
1
+ # Intake Brief
2
+
3
+ > Claude가 자료를 먼저 읽고, 부족한 정보만 질문한 뒤 확정하는 작업 브리프
4
+
5
+ ## Source Bundle
6
+
7
+ - `bundle_id`:
8
+ - `folder`:
9
+ - `files_found`:
10
+ - transcript:
11
+ - summary:
12
+ - audio:
13
+ - related docs:
14
+ - `missing_files`:
15
+ - `source_used_for_output`:
16
+
17
+ ---
18
+
19
+ ## Meeting Type
20
+
21
+ - `meeting_type`: <!-- team-sync | one-on-one | client-call | brainstorm | retrospective | kickoff | decision | board | sales | workshop -->
22
+ - `감지 근거`:
23
+ - `사용자 확인`: <!-- 자동 감지 결과를 사용자에게 확인 -->
24
+
25
+ ---
26
+
27
+ ## Goal
28
+
29
+ - 이 결과물의 목적:
30
+ - 예: 회의 정리, 현황 공유, 내부 보고, 의사결정 기록
31
+ - 이 결과물이 필요한 이유:
32
+
33
+ ---
34
+
35
+ ## Audience
36
+
37
+ - 주요 독자:
38
+ - 공유 범위:
39
+
40
+ ---
41
+
42
+ ## Must Include
43
+
44
+ - 결과물에 반드시 들어갈 정보:
45
+ - 반드시 보여야 하는 섹션:
46
+
47
+ ---
48
+
49
+ ## Must Exclude
50
+
51
+ - 제외할 정보:
52
+ - 비식별화할 정보:
53
+
54
+ ---
55
+
56
+ ## Key Data Points
57
+
58
+ - 꼭 기록할 수치나 데이터:
59
+ - 예: 진행률, 기한, 담당자, 우선순위, 예산
60
+ - 상태값:
61
+ - 판단 기준:
62
+
63
+ ---
64
+
65
+ ## Visual Sections
66
+
67
+ - 기본 섹션: 핵심 요약, 주요 신호, 리스크/쟁점, 액션 아이템, 타임라인
68
+ - 유형별 추가 섹션:
69
+ - 강조 섹션:
70
+ - 제외할 섹션:
71
+
72
+ ---
73
+
74
+ ## Tone
75
+
76
+ - 결과물 톤:
77
+ - 예: 보고용, 공유용, 내부 참고용
78
+ - 문체:
79
+
80
+ ---
81
+
82
+ ## Context from Previous
83
+
84
+ - 이전 회의 산출물:
85
+ - 연결할 내용:
86
+ - 변화/반복/신규 사항:
87
+
88
+ ---
89
+
90
+ ## Open Questions
91
+
92
+ 1.
93
+ 2.
94
+ 3.
95
+
96
+ ---
97
+
98
+ ## Default Decisions
99
+
100
+ - 답이 없을 경우 적용한 기본값:
101
+ - Claude가 추론으로 채운 항목: