@su-record/vibe 3.2.6 → 3.2.7
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.en.md +1 -1
- package/README.md +1 -1
- package/dist/cli/postinstall/constants.d.ts.map +1 -1
- package/dist/cli/postinstall/constants.js +10 -9
- package/dist/cli/postinstall/constants.js.map +1 -1
- package/hooks/scripts/__tests__/.vibe/command-log.txt +3 -3
- package/package.json +2 -2
- package/skills/vibe/SKILL.md +27 -86
- package/skills/vibe/references/routing-examples.md +85 -0
- package/skills/vibe.agents-md/SKILL.md +12 -10
- package/skills/vibe.analyze/SKILL.md +22 -211
- package/skills/vibe.analyze/references/mode1-feature.md +81 -0
- package/skills/vibe.analyze/references/mode2-document.md +50 -0
- package/skills/vibe.analyze/references/mode3-website.md +47 -0
- package/skills/vibe.analyze/references/mode4-quality.md +35 -0
- package/skills/vibe.brand-assets/SKILL.md +2 -2
- package/skills/vibe.brand-assets/references/mobile-assets.md +6 -0
- package/skills/vibe.capability-loop/SKILL.md +14 -80
- package/skills/vibe.capability-loop/references/escalate.md +86 -0
- package/skills/vibe.chub-usage/SKILL.md +3 -132
- package/skills/vibe.clone/SKILL.md +43 -358
- package/skills/vibe.clone/references/phase-commands.md +118 -0
- package/skills/vibe.clone/references/setup-and-layout.md +34 -0
- package/skills/vibe.clone/references/verification-loops.md +64 -0
- package/skills/vibe.commit-push-pr/SKILL.md +10 -4
- package/skills/vibe.context7-usage/SKILL.md +3 -99
- package/skills/vibe.continue/SKILL.md +17 -7
- package/skills/{vibe.handoff → vibe.continue}/agents/context-summarizer.md +1 -1
- package/skills/{vibe.handoff → vibe.continue}/agents/document-writer.md +1 -1
- package/skills/{vibe.handoff → vibe.continue}/agents/state-collector.md +1 -1
- package/skills/{vibe.handoff → vibe.continue}/agents/verifier.md +1 -1
- package/skills/{vibe.handoff/rubrics/completeness.md → vibe.continue/references/handoff-completeness.md} +1 -1
- package/skills/{vibe.handoff/templates → vibe.continue/references}/handoff.md +37 -2
- package/skills/vibe.contract/SKILL.md +4 -27
- package/skills/vibe.create-prd/SKILL.md +8 -1
- package/skills/vibe.design/SKILL.md +18 -5
- package/skills/vibe.design/references/design-context.md +184 -0
- package/skills/vibe.design-refine/SKILL.md +7 -0
- package/skills/vibe.design-review/SKILL.md +7 -0
- package/skills/vibe.design-teach/SKILL.md +2 -175
- package/skills/vibe.devlog/SKILL.md +14 -11
- package/skills/vibe.devlog/references/auto-push.md +10 -0
- package/skills/vibe.docs/SKILL.md +27 -198
- package/skills/vibe.docs/references/agent.md +55 -0
- package/skills/vibe.docs/references/arch.md +28 -0
- package/skills/vibe.docs/references/codemaps.md +17 -0
- package/skills/vibe.docs/references/diagram.md +24 -0
- package/skills/vibe.docs/references/guide.md +23 -0
- package/skills/vibe.docs/references/readme.md +45 -0
- package/skills/vibe.docs/references/release.md +31 -0
- package/skills/vibe.documentation-provider/SKILL.md +22 -0
- package/skills/vibe.documentation-provider/references/chub.md +141 -0
- package/skills/vibe.documentation-provider/references/context7.md +107 -0
- package/skills/vibe.educational-content/SKILL.md +7 -0
- package/skills/vibe.event/SKILL.md +47 -146
- package/skills/vibe.event/references/comms.md +173 -0
- package/skills/vibe.event/references/operations.md +208 -0
- package/skills/vibe.event/references/orchestration-legacy.md +97 -0
- package/skills/vibe.event/references/planning.md +145 -0
- package/skills/vibe.event-comms/SKILL.md +3 -165
- package/skills/vibe.event-ops/SKILL.md +3 -200
- package/skills/vibe.event-planning/SKILL.md +3 -137
- package/skills/vibe.figma/SKILL.md +26 -692
- package/skills/vibe.figma/references/branch1-read-convention.md +82 -0
- package/skills/vibe.figma/references/branch2-read-standalone.md +69 -0
- package/skills/vibe.figma/references/branch3-write.md +122 -0
- package/skills/vibe.figma/references/core-implementation.md +453 -0
- package/skills/vibe.git-worktree/SKILL.md +2 -6
- package/skills/vibe.git-worktree/references/troubleshooting.md +9 -0
- package/skills/vibe.handoff/SKILL.md +2 -103
- package/skills/vibe.harness/SKILL.md +17 -12
- package/skills/vibe.image/SKILL.md +8 -1
- package/skills/vibe.llm/SKILL.md +8 -1
- package/skills/vibe.loop/SKILL.md +9 -11
- package/skills/vibe.loop/references/install-adapters.md +10 -0
- package/skills/vibe.presentation/SKILL.md +7 -0
- package/skills/vibe.prioritization/SKILL.md +7 -0
- package/skills/vibe.priority-todos/SKILL.md +2 -57
- package/skills/vibe.react-best-practices/SKILL.md +1 -1
- package/skills/vibe.reason/SKILL.md +9 -2
- package/skills/vibe.regress/SKILL.md +6 -28
- package/skills/vibe.regress/templates/{test-jest.md → test-template.md} +1 -0
- package/skills/vibe.review/SKILL.md +35 -38
- package/skills/vibe.review/references/priority-todos.md +66 -0
- package/skills/vibe.review/references/ui-ux-review.md +39 -0
- package/skills/vibe.run/SKILL.md +57 -656
- package/skills/vibe.run/references/arch-guard.md +178 -0
- package/skills/vibe.run/references/e2e-and-autofix.md +40 -0
- package/skills/vibe.run/references/exec-plan.md +145 -0
- package/skills/vibe.run/references/guidelines-and-tools.md +84 -0
- package/skills/vibe.run/references/process-steps.md +179 -0
- package/skills/vibe.run/references/restraint.md +66 -0
- package/skills/vibe.scaffold/SKILL.md +9 -13
- package/skills/vibe.scaffold/references/clean-architecture.md +17 -0
- package/skills/vibe.spec/SKILL.md +12 -8
- package/skills/vibe.spec/references/legacy-artifacts.md +6 -0
- package/skills/vibe.test/SKILL.md +93 -70
- package/skills/vibe.test/references/report-template.md +101 -0
- package/skills/vibe.tool-fallback/SKILL.md +10 -32
- package/skills/vibe.tool-fallback/references/external-llm.md +10 -0
- package/skills/vibe.tool-fallback/references/file-lookup.md +9 -0
- package/skills/vibe.tool-fallback/references/web-search.md +11 -0
- package/skills/vibe.trace/SKILL.md +2 -264
- package/skills/vibe.ui-ux-pro-max/SKILL.md +1 -3
- package/skills/vibe.ui-ux-pro-max/references/charts-and-data.md +7 -0
- package/skills/vibe.user-personas/SKILL.md +8 -1
- package/skills/vibe.verify/SKILL.md +30 -4
- package/skills/vibe.verify/references/trace-mode.md +271 -0
- package/skills/vibe.regress/templates/test-vitest.md +0 -30
- /package/skills/{vibe.design-teach/rubrics → vibe.design/references}/brand-personality.md +0 -0
- /package/skills/{vibe.design-teach → vibe.design}/templates/design-context.json +0 -0
- /package/skills/{vibe.context7-usage/rubrics/when-to-use.md → vibe.documentation-provider/references/context7-when-to-use.md} +0 -0
- /package/skills/{vibe.event-ops/rubrics → vibe.event/references}/contingency.md +0 -0
- /package/skills/{vibe.event-ops/templates/d-day-checklist.md → vibe.event/references/d-day-checklist-template.md} +0 -0
- /package/skills/{vibe.event-comms/templates/email-invite.md → vibe.event/references/email-invite-template.md} +0 -0
- /package/skills/{vibe.event-planning/templates/event-plan.md → vibe.event/references/event-plan-template.md} +0 -0
- /package/skills/{vibe.event-comms/templates/sns-post.md → vibe.event/references/sns-post-template.md} +0 -0
- /package/skills/{vibe.event-planning/rubrics → vibe.event/references}/timeline.md +0 -0
- /package/skills/{vibe.priority-todos/templates/todo-board.md → vibe.review/references/todo-board-template.md} +0 -0
- /package/skills/{vibe.priority-todos/rubrics/prioritization.md → vibe.review/references/todo-prioritization.md} +0 -0
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: event-comms-reference
|
|
3
|
+
invocation: [auto]
|
|
4
|
+
tier: standard
|
|
5
|
+
description: "Event communication automation — SMS via Aligo, email via Gmail OAuth, SNS posts for LinkedIn/Threads. Handles templates, BCC rules, and confirmation protocol."
|
|
6
|
+
triggers: [sms, aligo, gmail, event email, event sms, 문자 발송, 메일 발송, SNS 홍보]
|
|
7
|
+
priority: 60
|
|
8
|
+
---
|
|
9
|
+
# Event Communications
|
|
10
|
+
|
|
11
|
+
SMS, email, and SNS content generation for community events.
|
|
12
|
+
|
|
13
|
+
## SMS (Aligo API)
|
|
14
|
+
|
|
15
|
+
### Rules
|
|
16
|
+
- Auto-switch to LMS when >90 bytes
|
|
17
|
+
- Use `%고객명%` substitution
|
|
18
|
+
- Always test with `testmode_yn=Y` first
|
|
19
|
+
- **Emoji strictly forbidden** (EUC-KR encoding)
|
|
20
|
+
|
|
21
|
+
### SMS Types
|
|
22
|
+
|
|
23
|
+
| Timing | Type | Content |
|
|
24
|
+
|--------|------|---------|
|
|
25
|
+
| D-7~D-3 | Notification LMS | Event name, datetime, venue, fee, registration URL |
|
|
26
|
+
| D-3 | Confirmation SMS | Attendance confirmed + detailed venue |
|
|
27
|
+
| D-1 | Reminder SMS | Tomorrow schedule reminder + venue |
|
|
28
|
+
| D-Day | Day-of SMS | Today schedule reminder |
|
|
29
|
+
|
|
30
|
+
### Templates
|
|
31
|
+
|
|
32
|
+
**Notification LMS (D-7~D-3)**
|
|
33
|
+
```
|
|
34
|
+
%고객명%님 안녕하세요.
|
|
35
|
+
|
|
36
|
+
{event_name} {edition}회 안내드립니다.
|
|
37
|
+
|
|
38
|
+
일시: {date} {time}
|
|
39
|
+
장소: {venue}
|
|
40
|
+
참가비: {fee}
|
|
41
|
+
|
|
42
|
+
신청: {url}
|
|
43
|
+
|
|
44
|
+
{community_name}
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
**Confirmation SMS (D-3)**
|
|
48
|
+
```
|
|
49
|
+
%고객명%님, {event_name} 참가가 확정되었습니다.
|
|
50
|
+
|
|
51
|
+
일시: {date} {time}
|
|
52
|
+
장소: {venue_detail}
|
|
53
|
+
|
|
54
|
+
당일 뵙겠습니다.
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
**Reminder SMS (D-1)**
|
|
58
|
+
```
|
|
59
|
+
%고객명%님, 내일 {event_name}이 있습니다.
|
|
60
|
+
|
|
61
|
+
일시: {date} {time}
|
|
62
|
+
장소: {venue}
|
|
63
|
+
|
|
64
|
+
내일 뵙겠습니다!
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
**Day-of SMS (D-Day)**
|
|
68
|
+
```
|
|
69
|
+
%고객명%님, 오늘 {time} {event_name}입니다.
|
|
70
|
+
|
|
71
|
+
장소: {venue}
|
|
72
|
+
|
|
73
|
+
오늘 뵙겠습니다!
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Email (Gmail OAuth 2.0)
|
|
77
|
+
|
|
78
|
+
### Rules
|
|
79
|
+
- **MUST use BCC** — never expose attendee emails to each other
|
|
80
|
+
- D-3 confirmation email includes: venue details, timetable, Slido link
|
|
81
|
+
|
|
82
|
+
### Confirmation Email Template (D-3)
|
|
83
|
+
```
|
|
84
|
+
Subject: [{event_name}] Attendance Confirmation
|
|
85
|
+
|
|
86
|
+
Hello {attendee_name},
|
|
87
|
+
|
|
88
|
+
Your attendance for {event_name} edition {edition} has been confirmed.
|
|
89
|
+
|
|
90
|
+
■ Date & Time: {date} {time}
|
|
91
|
+
■ Venue: {venue_detail}
|
|
92
|
+
■ Program:
|
|
93
|
+
{timetable}
|
|
94
|
+
|
|
95
|
+
■ Live Q&A: {slido_link}
|
|
96
|
+
|
|
97
|
+
We look forward to seeing you on the day.
|
|
98
|
+
Thank you.
|
|
99
|
+
|
|
100
|
+
{community_name}
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
## SNS Posts
|
|
104
|
+
|
|
105
|
+
### Platform Tone
|
|
106
|
+
|
|
107
|
+
| Platform | Tone | Length | Style |
|
|
108
|
+
|----------|------|--------|-------|
|
|
109
|
+
| LinkedIn | Professional, formal | 300+ chars | Expert participation encouragement |
|
|
110
|
+
| Threads | Casual, hooking | 150-200 chars | "Haven't seen this yet?" style |
|
|
111
|
+
|
|
112
|
+
### Post Types
|
|
113
|
+
|
|
114
|
+
| Timing | Type | Content |
|
|
115
|
+
|--------|------|---------|
|
|
116
|
+
| Open | Promo post | Event intro + CTA |
|
|
117
|
+
| D-14 | Deadline remind | Urgency + remaining spots |
|
|
118
|
+
| D+1 | Review post | Story → 3 insights → next event preview |
|
|
119
|
+
|
|
120
|
+
### LinkedIn Promo Template
|
|
121
|
+
```
|
|
122
|
+
{hook_sentence}
|
|
123
|
+
|
|
124
|
+
Introducing {event_name} edition {edition}.
|
|
125
|
+
|
|
126
|
+
📅 {date} {time}
|
|
127
|
+
📍 {venue}
|
|
128
|
+
|
|
129
|
+
This session's topic: {topic}
|
|
130
|
+
|
|
131
|
+
{speaker_intro}
|
|
132
|
+
|
|
133
|
+
{cta}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Threads Promo Template
|
|
137
|
+
```
|
|
138
|
+
{hook_casual}
|
|
139
|
+
|
|
140
|
+
{event_name} edition {edition} is happening!
|
|
141
|
+
|
|
142
|
+
{date} {time}
|
|
143
|
+
{venue_short}
|
|
144
|
+
|
|
145
|
+
{topic_casual}
|
|
146
|
+
|
|
147
|
+
{cta_casual}
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
### Review Post Structure
|
|
151
|
+
1. Story (emotional hook)
|
|
152
|
+
2. Key insights (3 items)
|
|
153
|
+
3. Next event preview
|
|
154
|
+
4. Thank you + community link
|
|
155
|
+
|
|
156
|
+
## Error Recovery
|
|
157
|
+
|
|
158
|
+
| Failure | Recovery |
|
|
159
|
+
|---------|----------|
|
|
160
|
+
| Aligo API timeout/error | Retry once after 5s. If still failing, output the SMS text as plain text for manual sending |
|
|
161
|
+
| Aligo auth error | Prompt user to verify API key in `~/.vibe/config.json` |
|
|
162
|
+
| Gmail auth expired | Prompt user to refresh the Gmail OAuth token |
|
|
163
|
+
| Gmail quota exceeded | Save email as `.eml` file for manual sending later |
|
|
164
|
+
| SNS post generation fails | Output post text as markdown for manual copy-paste |
|
|
165
|
+
|
|
166
|
+
## API Keys Required
|
|
167
|
+
|
|
168
|
+
| Key | Service | Required |
|
|
169
|
+
|-----|---------|----------|
|
|
170
|
+
| `ALIGO_API_KEY` | Aligo SMS | ✅ (for send) |
|
|
171
|
+
| `ALIGO_USER_ID` | Aligo SMS | ✅ (for send) |
|
|
172
|
+
| `ALIGO_SENDER` | Aligo SMS | ✅ (for send) |
|
|
173
|
+
| `GMAIL_CREDENTIALS_PATH` | Gmail OAuth | ✅ (for email) |
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: event-operations-reference
|
|
3
|
+
invocation: [auto]
|
|
4
|
+
tier: standard
|
|
5
|
+
description: "Event operations — nametags, checklists, operational slides, Slido plans, image generation specs, settlement reports."
|
|
6
|
+
triggers: [nametag, event checklist, event slide, slido, 이름표, 행사 체크리스트, 운영 슬라이드, 정산]
|
|
7
|
+
priority: 60
|
|
8
|
+
---
|
|
9
|
+
# Event Operations
|
|
10
|
+
|
|
11
|
+
Nametags, checklists, operational slides, Slido configuration, image generation, and settlement.
|
|
12
|
+
|
|
13
|
+
## Nametags
|
|
14
|
+
|
|
15
|
+
### Specs
|
|
16
|
+
- Size: 85mm × 60mm
|
|
17
|
+
- A4 layout: 8 per page (2 columns × 4 rows)
|
|
18
|
+
- Layout: Company(9pt gray) / Role(9pt gray) / Name(18pt bold) / Brand(7pt bottom-right)
|
|
19
|
+
- Output: HTML → browser A4 print
|
|
20
|
+
- Data: webhook participant CSV, or blank template if unavailable
|
|
21
|
+
|
|
22
|
+
### Community Brand
|
|
23
|
+
|
|
24
|
+
| MDC | webinar | DWK |
|
|
25
|
+
|-----|---------|-----|
|
|
26
|
+
| 마케팅데이터커넥트 | (none) | DATA + WOMEN KOREA TUG |
|
|
27
|
+
|
|
28
|
+
### HTML Template Structure
|
|
29
|
+
```html
|
|
30
|
+
<!DOCTYPE html>
|
|
31
|
+
<html>
|
|
32
|
+
<head>
|
|
33
|
+
<style>
|
|
34
|
+
@page { size: A4; margin: 10mm; }
|
|
35
|
+
.nametag-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5mm; }
|
|
36
|
+
.nametag {
|
|
37
|
+
width: 85mm; height: 60mm;
|
|
38
|
+
border: 1px dashed #ccc;
|
|
39
|
+
padding: 8mm;
|
|
40
|
+
display: flex; flex-direction: column;
|
|
41
|
+
justify-content: center; position: relative;
|
|
42
|
+
}
|
|
43
|
+
.company { font-size: 9pt; color: #888; }
|
|
44
|
+
.role { font-size: 9pt; color: #888; }
|
|
45
|
+
.name { font-size: 18pt; font-weight: bold; margin: 4mm 0; }
|
|
46
|
+
.brand { font-size: 7pt; position: absolute; bottom: 3mm; right: 5mm; color: #aaa; }
|
|
47
|
+
</style>
|
|
48
|
+
</head>
|
|
49
|
+
<body>
|
|
50
|
+
<div class="nametag-grid">
|
|
51
|
+
<!-- Repeat for each participant -->
|
|
52
|
+
<div class="nametag">
|
|
53
|
+
<span class="company">{company}</span>
|
|
54
|
+
<span class="role">{role}</span>
|
|
55
|
+
<span class="name">{name}</span>
|
|
56
|
+
<span class="brand">{brand}</span>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
</body>
|
|
60
|
+
</html>
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
## Checklist (D-1)
|
|
64
|
+
|
|
65
|
+
Fixed 4 items for all offline events:
|
|
66
|
+
|
|
67
|
+
```markdown
|
|
68
|
+
## D-1 Checklist
|
|
69
|
+
|
|
70
|
+
- [ ] Order water/snacks/meals
|
|
71
|
+
- [ ] Print nametags
|
|
72
|
+
- [ ] Prepare event operational slides
|
|
73
|
+
- [ ] Set up screen/camera/tripod
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## Operational Slides
|
|
77
|
+
|
|
78
|
+
### Format
|
|
79
|
+
- PPTX (16:9)
|
|
80
|
+
- Generated with python-pptx
|
|
81
|
+
- Community colors + timetable patterns
|
|
82
|
+
|
|
83
|
+
### Slide Structure (5-7 slides)
|
|
84
|
+
1. Cover (event name, topic, datetime, venue)
|
|
85
|
+
2. Timetable (community-specific pattern)
|
|
86
|
+
3~N. Speaker intro (1 slide per speaker)
|
|
87
|
+
N+1. Q&A + Networking (Slido QR placeholder)
|
|
88
|
+
N+2. Thank you + community links
|
|
89
|
+
|
|
90
|
+
### Community Colors
|
|
91
|
+
|
|
92
|
+
| MDC | webinar | DWK |
|
|
93
|
+
|-----|---------|-----|
|
|
94
|
+
| #ff6b35 (orange) | #a78bfa (purple) | #34d399 (mint) |
|
|
95
|
+
|
|
96
|
+
### Timetable Patterns
|
|
97
|
+
|
|
98
|
+
**MDC (3 speakers)**
|
|
99
|
+
```
|
|
100
|
+
19:00-19:10 Opening + Networking
|
|
101
|
+
19:10-19:35 Session 1: {speaker1_name} — {topic1}
|
|
102
|
+
19:35-20:00 Session 2: {speaker2_name} — {topic2}
|
|
103
|
+
20:00-20:25 Session 3: {speaker3_name} — {topic3}
|
|
104
|
+
20:25-20:40 Q&A + Slido
|
|
105
|
+
20:40-21:00 Networking
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
**Webinar (1-2 speakers)**
|
|
109
|
+
```
|
|
110
|
+
19:30-19:35 Opening
|
|
111
|
+
19:35-20:30 Session: {speaker_name} — {topic}
|
|
112
|
+
20:30-20:50 Q&A
|
|
113
|
+
20:50-21:00 Closing
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
**DWK (1-3 speakers + discussion)**
|
|
117
|
+
```
|
|
118
|
+
14:00-14:10 Opening + Icebreaker
|
|
119
|
+
14:10-14:40 Session 1: {speaker1_name} — {topic1}
|
|
120
|
+
14:40-15:10 Session 2: {speaker2_name} — {topic2}
|
|
121
|
+
15:10-15:30 Break
|
|
122
|
+
15:30-16:00 Discussion session
|
|
123
|
+
16:00-16:30 Networking
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Slido Configuration
|
|
127
|
+
|
|
128
|
+
API is read-only → the active harness outputs a plan → user manually configures.
|
|
129
|
+
|
|
130
|
+
### Community Presets
|
|
131
|
+
|
|
132
|
+
| Community | Items | Structure |
|
|
133
|
+
|-----------|-------|-----------|
|
|
134
|
+
| MDC | 5 | Icebreaker + Pre-Q&A + Balance game 2-3 + Satisfaction |
|
|
135
|
+
| Webinar | 5 | Icebreaker + Skill check + Live Q&A + Word cloud + Feedback |
|
|
136
|
+
| DWK | 10 | Icebreaker + Session feedback + Word cloud + Balance game 3 + Opinion poll 2 + Experience share + Feedback |
|
|
137
|
+
|
|
138
|
+
## Image Generation
|
|
139
|
+
|
|
140
|
+
### Model
|
|
141
|
+
Antigravity image backend
|
|
142
|
+
|
|
143
|
+
### Specs by Community
|
|
144
|
+
|
|
145
|
+
| Community | Size | Purpose |
|
|
146
|
+
|-----------|------|---------|
|
|
147
|
+
| MDC | 500×500 | Listing thumbnail |
|
|
148
|
+
| MDC | 595×842 | A4 poster |
|
|
149
|
+
| Webinar | 1080×1080 | Instagram/Threads 1:1 |
|
|
150
|
+
| Webinar | 1920×1080 | YouTube 16:9 |
|
|
151
|
+
| Webinar | 1440×1080 | Zoom background 4:3 |
|
|
152
|
+
| DWK | 2000×500 | Banner 4:1 |
|
|
153
|
+
| DWK | 1080×1080 | SNS 1:1 |
|
|
154
|
+
|
|
155
|
+
### Prompt Dual Structure
|
|
156
|
+
- **API prompt**: No length limit, detailed (colors, layout, text position, logo placement)
|
|
157
|
+
- **User prompt**: ≤400 chars summary → `output/images/{type}_prompt.txt`
|
|
158
|
+
|
|
159
|
+
### Logo Auto-include
|
|
160
|
+
- Source: `data/assets/common/images/{community} logo.png`
|
|
161
|
+
- Auto-append: "Place logo naturally at bottom-left"
|
|
162
|
+
|
|
163
|
+
### Smart Resizing
|
|
164
|
+
- Same ratio → Pillow scale only (no API call)
|
|
165
|
+
- Different ratio → Antigravity re-generate (pass original as reference, no white margins)
|
|
166
|
+
|
|
167
|
+
## Settlement
|
|
168
|
+
|
|
169
|
+
### MDC
|
|
170
|
+
Revenue(attendance fees) - Expenses(venue, snacks, speaker gifts) = Markdown settlement report
|
|
171
|
+
|
|
172
|
+
### DWK
|
|
173
|
+
Stripe receipts + speaker gifts → Slack Workflow settlement message (future)
|
|
174
|
+
|
|
175
|
+
### Webinar
|
|
176
|
+
Free — no settlement needed
|
|
177
|
+
|
|
178
|
+
## Intro Page Structure (Common)
|
|
179
|
+
|
|
180
|
+
1. Hook sentence (2-3 lines)
|
|
181
|
+
2. Event info (datetime/venue/fee)
|
|
182
|
+
3. "Recommended for" (5 items)
|
|
183
|
+
4. "What you'll learn" (5 items)
|
|
184
|
+
5. Speaker intro (1 paragraph per speaker)
|
|
185
|
+
6. Program timetable
|
|
186
|
+
7. Attendance benefits
|
|
187
|
+
8. CTA + quote
|
|
188
|
+
|
|
189
|
+
## Speaker Research
|
|
190
|
+
|
|
191
|
+
- Check past topic overlap → suggest 3 trend-based topics
|
|
192
|
+
- Collect related post URLs from LinkedIn/Threads/X/Blog/Brunch/Publy
|
|
193
|
+
- Use the harness's web research capability
|
|
194
|
+
|
|
195
|
+
## Speaker Outreach
|
|
196
|
+
|
|
197
|
+
- DM draft (short, 5-line version) + email draft (formal)
|
|
198
|
+
- Auto-reference existing contact history (for re-outreach)
|
|
199
|
+
- Business card image + LinkedIn URL → `data/speakers/{name}.json` accumulation
|
|
200
|
+
|
|
201
|
+
## Error Recovery
|
|
202
|
+
|
|
203
|
+
| Failure | Recovery |
|
|
204
|
+
|---------|----------|
|
|
205
|
+
| Antigravity image API unavailable | Skip image generation, use text-only placeholder slide with community colors |
|
|
206
|
+
| Antigravity image quality too low | Retry with simplified prompt (remove detail, keep core subject) |
|
|
207
|
+
| PPTX generation error | Output slide content as markdown with speaker notes for manual assembly |
|
|
208
|
+
| Nametag HTML render issue | Simplify to basic table layout, remove custom fonts |
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
# Event Orchestration Reference
|
|
2
|
+
|
|
3
|
+
This preserves the complete pre-merge umbrella routing contract.
|
|
4
|
+
|
|
5
|
+
## Execution Flow
|
|
6
|
+
|
|
7
|
+
1. Parse type (`MDC`, `webinar`, `DWK`), edition, required date, optional topic, and DWK format (default offline).
|
|
8
|
+
2. Calculate D-Day from the event date.
|
|
9
|
+
3. Load or create `.event_state.json`.
|
|
10
|
+
4. Determine the current phase: MDC 11 steps (D-60→D+2), webinar 5 steps (planning→D+1), DWK 9 steps (D-30→D+3).
|
|
11
|
+
5. Produce pending content, speaker research, images, communications drafts, and operations materials.
|
|
12
|
+
6. Request confirmation for real SMS/email sends and Notion registration.
|
|
13
|
+
7. Save `.event_state.json`.
|
|
14
|
+
|
|
15
|
+
## Input Parsing
|
|
16
|
+
|
|
17
|
+
| Input | Parsed result |
|
|
18
|
+
|---|---|
|
|
19
|
+
| `MDC 12차 3/30` | type=MDC, edition=12, date=2026-03-30 |
|
|
20
|
+
| `webinar AI에이전트` | type=webinar, topic=AI에이전트, date=TBD (ask) |
|
|
21
|
+
| `DWK 5차 5/20 오프라인` | type=DWK, edition=5, date=2026-05-20, format=offline |
|
|
22
|
+
| `status` | Show `.event_state.json` summary |
|
|
23
|
+
| `dashboard` | Run `python output/serve.py` |
|
|
24
|
+
|
|
25
|
+
## MDC Phases
|
|
26
|
+
|
|
27
|
+
| Phase | Mode | Outputs |
|
|
28
|
+
|---|---|---|
|
|
29
|
+
| D-60 | planning | 3 topic suggestions + speaker research |
|
|
30
|
+
| D-45 | planning | DM + email outreach drafts |
|
|
31
|
+
| D-40 | operations | Topic confirmation request email |
|
|
32
|
+
| D-28 | planning + operations | Intro + 2 images + 3 SMS + 1 email |
|
|
33
|
+
| D-30 | planning + operations | LinkedIn/Threads promo + SMS send |
|
|
34
|
+
| D-14 | planning | LinkedIn/Threads reminder |
|
|
35
|
+
| D-3 | operations | BCC email + SMS send |
|
|
36
|
+
| D-1 | operations | Nametags + checklist + PPTX + SMS |
|
|
37
|
+
| D-Day | operations | Day-of SMS |
|
|
38
|
+
| D+1 | planning + operations | Review posts + settlement |
|
|
39
|
+
| D+2 | manual | Site update |
|
|
40
|
+
|
|
41
|
+
## Webinar Phases
|
|
42
|
+
|
|
43
|
+
| Phase | Mode | Outputs |
|
|
44
|
+
|---|---|---|
|
|
45
|
+
| Planning | planning + operations | Intro + 3 images + SMS + email |
|
|
46
|
+
| Planning | planning | LinkedIn/Threads promo |
|
|
47
|
+
| D-4 | operations | Zoom manual setup + BCC email + SMS |
|
|
48
|
+
| D-Day | operations | SMS + slides |
|
|
49
|
+
| D+1 | planning | Review posts |
|
|
50
|
+
|
|
51
|
+
## DWK Phases
|
|
52
|
+
|
|
53
|
+
| Phase | Mode | Outputs |
|
|
54
|
+
|---|---|---|
|
|
55
|
+
| D-30 | planning | 3 topics + speaker research |
|
|
56
|
+
| D-25 | planning | DM + email outreach |
|
|
57
|
+
| D-20 | operations | Topic confirmation email |
|
|
58
|
+
| D-16 | planning + operations | Intro + 2 images + SMS + email |
|
|
59
|
+
| D-15 | planning | LinkedIn/Threads promo |
|
|
60
|
+
| D-3 | operations | BCC email + SMS |
|
|
61
|
+
| D-1 | operations | Slido plan + PPTX + SNS reminder |
|
|
62
|
+
| D-Day | operations | SMS + nametags (offline) |
|
|
63
|
+
| D+3 | planning + operations | Review + settlement |
|
|
64
|
+
|
|
65
|
+
## State Schema
|
|
66
|
+
|
|
67
|
+
```json
|
|
68
|
+
{
|
|
69
|
+
"event_id": "MDC-12",
|
|
70
|
+
"type": "MDC",
|
|
71
|
+
"edition": 12,
|
|
72
|
+
"date": "2026-03-30",
|
|
73
|
+
"title": "마케팅데이터커넥트 12회",
|
|
74
|
+
"topic": "마케팅 자동화",
|
|
75
|
+
"format": "offline",
|
|
76
|
+
"speakers": [{ "name": "김영수", "company": "Company X", "topic": "마케팅 데이터 파이프라인" }],
|
|
77
|
+
"current_step": "D-28",
|
|
78
|
+
"completed_steps": ["D-60", "D-45", "D-40"],
|
|
79
|
+
"outputs": { "D-28": ["intro.md", "thumbnail_500x500.png", "sms_notification.txt"] },
|
|
80
|
+
"confirmations_pending": []
|
|
81
|
+
}
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Dashboard
|
|
85
|
+
|
|
86
|
+
Run `python output/serve.py` and open `http://localhost:8080`. The dashboard provides timeline progress, per-step generation, file previews, provider status, and community color coding.
|
|
87
|
+
|
|
88
|
+
## Absolute Safety Rules
|
|
89
|
+
|
|
90
|
+
1. Never send SMS/email without explicit user confirmation.
|
|
91
|
+
2. Always use BCC for email.
|
|
92
|
+
3. Never use emoji in SMS (EUC-KR incompatibility).
|
|
93
|
+
4. Never delete event files; move them when cleanup is needed.
|
|
94
|
+
5. Test SMS with `testmode_yn=Y` before real send.
|
|
95
|
+
6. Never register to Notion without `dry_run` first.
|
|
96
|
+
7. Never commit `.env` files.
|
|
97
|
+
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: event-planning-reference
|
|
3
|
+
invocation: [auto]
|
|
4
|
+
tier: standard
|
|
5
|
+
description: "Community event automation — D-Day timeline, community patterns, proactive task execution. Auto-activates for event planning, meetup/webinar/conference management."
|
|
6
|
+
triggers: [event planning, meetup, webinar, conference, 행사, 밋업, 웨비나, D-Day, 이벤트 준비]
|
|
7
|
+
priority: 60
|
|
8
|
+
---
|
|
9
|
+
# Event Planning
|
|
10
|
+
|
|
11
|
+
Community event automation with D-Day based proactive execution.
|
|
12
|
+
|
|
13
|
+
## Supported Communities
|
|
14
|
+
|
|
15
|
+
| Code | Name | Format | Schedule |
|
|
16
|
+
|------|------|--------|----------|
|
|
17
|
+
| `MDC` | 마케팅데이터커넥트 | Offline meetup, 3 speakers × 20-25min | Odd months, last week weekday 19:00 |
|
|
18
|
+
| `webinar` | 퇴근후AI | Online Zoom, 1-2 speakers × 50-60min | Irregular |
|
|
19
|
+
| `DWK` | Data+Women Korea | Offline/Online, 1-3 speakers + discussion | Irregular |
|
|
20
|
+
|
|
21
|
+
## D-Day Timeline
|
|
22
|
+
|
|
23
|
+
### MDC (D-60 → D+2, 11 steps)
|
|
24
|
+
|
|
25
|
+
| D-Day | Task | Outputs | Confirm |
|
|
26
|
+
|-------|------|---------|---------|
|
|
27
|
+
| D-60 | Topic selection + speaker research | 3 topics + speaker research | — |
|
|
28
|
+
| D-45 | Speaker outreach | DM + email drafts | — |
|
|
29
|
+
| D-40 | Speaker topic confirmation request | Confirmation email | — |
|
|
30
|
+
| D-28 | **Registration page open** | Intro + 2 images + 3 SMS + 1 email + prompts | — |
|
|
31
|
+
| D-30 | SNS promo + notification SMS | LinkedIn/Threads + SMS send | ✅ send |
|
|
32
|
+
| D-14 | Remind | LinkedIn/Threads remind | — |
|
|
33
|
+
| D-3 | Confirmation email + SMS | BCC email + SMS send | ✅ send |
|
|
34
|
+
| D-1 | Nametags + checklist + slides + remind SMS | HTML + MD + PPTX + SMS draft | ✅ print/send |
|
|
35
|
+
| D-Day | Day-of remind | SMS send | ✅ send |
|
|
36
|
+
| D+1 | Review + settlement | Review draft + settlement template | — |
|
|
37
|
+
| D+2 | Site update | (manual) | — |
|
|
38
|
+
|
|
39
|
+
### Webinar (Planning → D+1, 5 steps)
|
|
40
|
+
|
|
41
|
+
| D-Day | Task | Outputs | Confirm |
|
|
42
|
+
|-------|------|---------|---------|
|
|
43
|
+
| Planning | Event page | Intro + 3 images + SMS + email + prompts | — |
|
|
44
|
+
| Planning | SNS promo | LinkedIn/Threads | — |
|
|
45
|
+
| D-4 | Zoom + notification | Zoom link(manual) + email(BCC) + SMS | ✅ send |
|
|
46
|
+
| D-Day | Day-of ops | SMS + slides | ✅ send |
|
|
47
|
+
| D+1 | Review post | LinkedIn/Threads | — |
|
|
48
|
+
|
|
49
|
+
### DWK (D-30 → D+3, 9 steps)
|
|
50
|
+
|
|
51
|
+
| D-Day | Task | Outputs | Confirm |
|
|
52
|
+
|-------|------|---------|---------|
|
|
53
|
+
| D-30 | Topic + speaker research | 3 topics + speaker research | — |
|
|
54
|
+
| D-25 | Speaker outreach | DM + email drafts | — |
|
|
55
|
+
| D-20 | Speaker topic confirmation | Confirmation email | — |
|
|
56
|
+
| D-16 | Event page | Intro + 2 images + SMS + email + prompts | — |
|
|
57
|
+
| D-15 | SNS promo | LinkedIn/Threads | — |
|
|
58
|
+
| D-3 | Confirmation email + SMS | BCC email + SMS | ✅ send |
|
|
59
|
+
| D-1 | Slido + ops + remind | Slido plan + PPTX + SNS remind | ✅ |
|
|
60
|
+
| D-Day | Day-of ops | SMS + nametags(offline) | ✅ send |
|
|
61
|
+
| D+3 | Review + settlement | Review draft + Stripe/Slack settlement | — |
|
|
62
|
+
|
|
63
|
+
## Proactive Execution Protocol
|
|
64
|
+
|
|
65
|
+
When user says "MDC 준비해줘" or similar:
|
|
66
|
+
|
|
67
|
+
```
|
|
68
|
+
1. Parse: event type + edition + date
|
|
69
|
+
2. Calculate D-Day from today
|
|
70
|
+
3. Identify current step(s) in timeline
|
|
71
|
+
4. Auto-execute ALL pending outputs for current step
|
|
72
|
+
5. Request confirmation ONLY for send/publish actions
|
|
73
|
+
6. Save state to .event_state.json
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
## State File (.event_state.json)
|
|
77
|
+
|
|
78
|
+
```json
|
|
79
|
+
{
|
|
80
|
+
"event_id": "MDC-12",
|
|
81
|
+
"type": "MDC",
|
|
82
|
+
"date": "2026-03-30",
|
|
83
|
+
"title": "마케팅데이터커넥트 12회",
|
|
84
|
+
"topic": "",
|
|
85
|
+
"speakers": [],
|
|
86
|
+
"current_step": "D-28",
|
|
87
|
+
"completed_steps": ["D-60", "D-45", "D-40"],
|
|
88
|
+
"outputs": {}
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## State Management
|
|
93
|
+
|
|
94
|
+
**Location**: `.vibe/.event_state.json` (project-local, gitignored)
|
|
95
|
+
|
|
96
|
+
### Error Recovery
|
|
97
|
+
|
|
98
|
+
| Failure | Recovery |
|
|
99
|
+
|---------|----------|
|
|
100
|
+
| State file missing | Regenerate from scratch by re-reading event config and completed artifacts |
|
|
101
|
+
| State file corrupted (invalid JSON) | Delete corrupted file, regenerate from current directory state |
|
|
102
|
+
| State phase mismatch | Trust directory artifacts over state file — scan for completed outputs and infer current phase |
|
|
103
|
+
|
|
104
|
+
## Community Tone Guide
|
|
105
|
+
|
|
106
|
+
| | MDC | Webinar | DWK |
|
|
107
|
+
|---|---|---|---|
|
|
108
|
+
| Tone | Professional, practical, formal | Friendly, casual, emoji-ok | Warm, inclusive, "together" |
|
|
109
|
+
| Example | "Apply directly in your work" | "Relax after work" | "Women who love data" |
|
|
110
|
+
| Brand color | #ff6b35 (orange) | #a78bfa (purple) | #34d399 (mint) |
|
|
111
|
+
|
|
112
|
+
## Community Brand Names
|
|
113
|
+
|
|
114
|
+
| MDC | webinar | DWK |
|
|
115
|
+
|-----|---------|-----|
|
|
116
|
+
| 마케팅데이터커넥트 | (none) | DATA + WOMEN KOREA TUG |
|
|
117
|
+
|
|
118
|
+
## Confirmation Rules
|
|
119
|
+
|
|
120
|
+
| Auto-execute (no confirm) | Requires confirmation |
|
|
121
|
+
|---------------------------|----------------------|
|
|
122
|
+
| Intro/SMS/email/SNS **draft** generation | SMS/email **actual send** |
|
|
123
|
+
| Image prompt + API generation | Notion **real registration** (dry_run first) |
|
|
124
|
+
| Checklist/nametag HTML generation | — |
|
|
125
|
+
|
|
126
|
+
## Absolute Prohibitions
|
|
127
|
+
|
|
128
|
+
- No SMS/email send without user confirmation
|
|
129
|
+
- **Email recipients MUST use BCC** (never expose attendee emails to each other)
|
|
130
|
+
- No file deletion (move only)
|
|
131
|
+
- No emoji in SMS (EUC-KR incompatible)
|
|
132
|
+
- No Notion registration without dry_run first
|
|
133
|
+
- No .env file commits
|
|
134
|
+
|
|
135
|
+
## Output Directory Structure
|
|
136
|
+
|
|
137
|
+
```
|
|
138
|
+
output/
|
|
139
|
+
├── images/ ← Generated images
|
|
140
|
+
│ ├── {type}_prompt.txt ← User-facing prompt summary (≤400 chars)
|
|
141
|
+
│ └── {type}_{size}.png ← Generated images
|
|
142
|
+
├── reports/ ← Text outputs (intro, SNS, SMS, email drafts)
|
|
143
|
+
├── log.html ← Dashboard frontend
|
|
144
|
+
└── serve.py ← Dashboard server
|
|
145
|
+
```
|