@tomako/tools-runtime 0.1.5 → 0.1.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/package.json +2 -1
- package/src/components/tools/engine/package-widget-runtime.tsx +5 -1
- package/src/components/tools/engine/task-recovery.test.ts +65 -0
- package/src/components/tools/engine/task-recovery.ts +109 -0
- package/src/components/tools/engine/use-legacy-llm-task.ts +16 -3
- package/src/components/tools/engine/use-tool-task.ts +77 -53
- package/src/features/tools/app-store-screenshot-generator/widget/app-store-screenshot-generator.tsx +88 -16
- package/src/features/tools/app-store-screenshot-generator/widget/asset-slots.test.ts +52 -0
- package/src/features/tools/app-store-screenshot-generator/widget/asset-slots.ts +3 -2
- package/src/features/tools/app-store-screenshot-generator/widget/generation.test.ts +126 -0
- package/src/features/tools/app-store-screenshot-generator/widget/generation.ts +52 -14
- package/src/features/tools/app-store-screenshot-generator/widget/input-media.test.ts +81 -0
- package/src/features/tools/app-store-screenshot-generator/widget/input-media.ts +20 -8
- package/src/features/tools/cold-start-channel-selector/widget/cold-start-channel-selector.tsx +45 -16
- package/src/features/tools/competitor-analysis/competitor-analysis.container.tsx +26 -20
- package/src/features/tools/competitor-analysis/widget/competitor-analysis.tsx +47 -16
- package/src/features/tools/disclaimer-generator/disclaimer-generator.package.ts +3 -3
- package/src/features/tools/email-template-generator/widget/email-template-generator.tsx +37 -4
- package/src/features/tools/package/to-tool-module.ts +15 -0
- package/src/features/tools/product-name-generator/widget/product-name-generator.tsx +60 -27
- package/src/features/tools/product-poster-generator/widget/constants.ts +3 -1
- package/src/features/tools/product-poster-generator/widget/helpers.test.ts +51 -0
- package/src/features/tools/product-poster-generator/widget/helpers.ts +27 -0
- package/src/features/tools/product-poster-generator/widget/product-poster-generator.tsx +112 -12
- package/src/features/tools/slogan-generator/slogan-generator.package.ts +28 -28
- package/src/i18n/messages/en/tools/app-icon-resizer.ts +1 -1
- package/src/i18n/messages/en/tools/app-store-screenshot-generator.ts +2 -2
- package/src/i18n/messages/en/tools/cold-start-channel-selector.ts +4 -4
- package/src/i18n/messages/en/tools/competitor-analysis.ts +9 -8
- package/src/i18n/messages/en/tools/email-template-generator.ts +10 -10
- package/src/i18n/messages/en/tools/product-poster-generator.ts +1 -0
- package/src/i18n/messages/zh/tools/app-store-screenshot-generator.ts +3 -3
- package/src/i18n/messages/zh/tools/cold-start-channel-selector.ts +2 -2
- package/src/i18n/messages/zh/tools/competitor-analysis.ts +10 -9
- package/src/i18n/messages/zh/tools/email-template-generator.ts +11 -11
- package/src/i18n/messages/zh/tools/product-poster-generator.ts +1 -0
- package/src/i18n/messages/zh-tw/tools/app-store-screenshot-generator.ts +44 -44
- package/src/i18n/messages/zh-tw/tools/cold-start-channel-selector.ts +105 -105
- package/src/i18n/messages/zh-tw/tools/competitor-analysis.ts +41 -40
- package/src/i18n/messages/zh-tw/tools/email-template-generator.ts +111 -111
- package/src/i18n/messages/zh-tw/tools/product-name-generator.ts +92 -92
- package/src/i18n/messages/zh-tw/tools/product-poster-generator.ts +74 -73
- package/src/i18n/messages/zh-tw/tools/twitter-gif-downloader.ts +47 -47
- package/src/lib/tools/cold-start-channel-selector-schema.test.ts +39 -0
- package/src/lib/tools/cold-start-channel-selector-schema.ts +8 -4
- package/src/lib/tools/competitor-analysis-schema.test.ts +69 -0
- package/src/lib/tools/competitor-analysis-schema.ts +53 -5
|
@@ -1,77 +1,77 @@
|
|
|
1
1
|
const coldStartChannelSelector = {
|
|
2
2
|
meta: {
|
|
3
|
-
title: "
|
|
4
|
-
description: "
|
|
5
|
-
intro: "
|
|
3
|
+
title: "客戶開發通路選擇器",
|
|
4
|
+
description: "為早期產品挑選最值得先測試的客戶開發通路。填入產品、目標客群、時間與預算,取得排序、第一步行動與驗證指標。",
|
|
5
|
+
intro: "先選出最值得測試的客戶開發通路,再用真實指標決定下一步。",
|
|
6
6
|
category: "增長策略工具",
|
|
7
7
|
keywords: [
|
|
8
|
-
"
|
|
9
|
-
"
|
|
10
|
-
"
|
|
11
|
-
"
|
|
8
|
+
"客戶獲取通路",
|
|
9
|
+
"冷啟動通路策略",
|
|
10
|
+
"新創公司客戶獲取通路",
|
|
11
|
+
"如何選擇客戶獲取通路",
|
|
12
12
|
"早期成長行銷策略",
|
|
13
13
|
],
|
|
14
14
|
inputSignal: "產品 URL 或產品描述",
|
|
15
|
-
outputSignal: "
|
|
15
|
+
outputSignal: "冷啟動通路策略 + 首個驗證計畫",
|
|
16
16
|
boundarySignal: "根據公開資訊和你提供的脈絡提出決策輔助;投入預算或長期執行前請人工複核",
|
|
17
17
|
},
|
|
18
18
|
examples: [
|
|
19
19
|
{
|
|
20
20
|
label: "剛上線的 Web SaaS",
|
|
21
21
|
input: "產品 URL https://example.com,目標市場北美,每週 3-7 小時,預算 500 美元以內",
|
|
22
|
-
expectedOutput: "輸出 3-5
|
|
22
|
+
expectedOutput: "輸出 3-5 個優先通路、每個通路的匹配理由、第一步動作、驗證指標、暫不優先通路和 7 天執行計劃。",
|
|
23
23
|
},
|
|
24
24
|
{
|
|
25
25
|
label: "沒有官網的 App",
|
|
26
|
-
input: "
|
|
27
|
-
expectedOutput: "
|
|
26
|
+
input: "手動描述一個面向中文使用者的效率 App,剛內測,無預算,每週 8-15 小時",
|
|
27
|
+
expectedOutput: "基於描述給出通路排序,並把缺失的公開資料、目標使用者證據和商店素材列為 missingInfo。",
|
|
28
28
|
},
|
|
29
29
|
{
|
|
30
30
|
label: "開發者工具",
|
|
31
31
|
input: "產品 URL,一個面向 API 團隊的開源開發者工具,全球市場,已有 GitHub 倉庫",
|
|
32
|
-
expectedOutput: "優先考慮開發者社區、文檔型內容、GitHub/Show HN
|
|
32
|
+
expectedOutput: "優先考慮開發者社區、文檔型內容、GitHub/Show HN 等通路,並解釋為什麼廣告或泛社群媒體暫不優先。",
|
|
33
33
|
},
|
|
34
34
|
],
|
|
35
35
|
guide: {
|
|
36
|
-
workspaceTitle: "
|
|
36
|
+
workspaceTitle: "選擇最值得先測試的客戶開發通路",
|
|
37
37
|
workspaceHint:
|
|
38
|
-
"
|
|
39
|
-
workspaceBadge: "
|
|
38
|
+
"輸入產品、客戶、時間和預算,取得適合目前階段的冷啟動通路策略、選擇理由和驗證信號。",
|
|
39
|
+
workspaceBadge: "早期產品冷啟動通路策略",
|
|
40
40
|
standard: {
|
|
41
41
|
benefits: {
|
|
42
|
-
title: "
|
|
42
|
+
title: "選一條現在就能行動的客戶獲取通路",
|
|
43
43
|
cards: [
|
|
44
44
|
{
|
|
45
45
|
title: "先從一個能執行的選項開始",
|
|
46
|
-
body: "
|
|
46
|
+
body: "依目標使用者、階段、市場、時間和預算,排出 3–5 個客戶獲取通路;第一輪只要專注其中一個。",
|
|
47
47
|
},
|
|
48
48
|
{
|
|
49
49
|
title: "看懂為什麼現在適合做",
|
|
50
|
-
body: "
|
|
50
|
+
body: "了解通路為何符合目前情況、第一步要做什麼,以及為什麼其他選項應該先等等。",
|
|
51
51
|
},
|
|
52
52
|
{
|
|
53
53
|
title: "知道什麼結果會改變判斷",
|
|
54
|
-
body: "
|
|
54
|
+
body: "用一個小測試和明確信號——如回覆、試用、註冊或訪談——決定繼續、調整或換下一個通路。",
|
|
55
55
|
},
|
|
56
56
|
],
|
|
57
57
|
},
|
|
58
58
|
reportPreview: {
|
|
59
|
-
eyebrow: "
|
|
60
|
-
title: "
|
|
59
|
+
eyebrow: "通路策略示例",
|
|
60
|
+
title: "你會得到怎樣的成長通路策略",
|
|
61
61
|
intro:
|
|
62
|
-
"
|
|
62
|
+
"這份策略會結合你的產品、目標客戶、目前階段和資源限制,告訴你現在優先測試哪個通路、為什麼值得先做、第一步怎麼做,以及出現什麼信號後值得繼續投入。",
|
|
63
63
|
inputLabel: "示例產品背景",
|
|
64
64
|
input:
|
|
65
65
|
"面向小型銷售團隊的 B2B SaaS,內測階段;北美市場;每週可投入 3–7 小時;測試預算低於 500 美元。",
|
|
66
|
-
outputLabel: "
|
|
66
|
+
outputLabel: "你會得到的通路策略",
|
|
67
67
|
fields: [
|
|
68
68
|
{
|
|
69
|
-
label: "
|
|
70
|
-
body: "
|
|
69
|
+
label: "先測試哪個通路",
|
|
70
|
+
body: "在現有時間、預算和證據下,最值得先測試的客戶獲取通路。",
|
|
71
71
|
},
|
|
72
72
|
{
|
|
73
73
|
label: "為什麼符合現在",
|
|
74
|
-
body: "
|
|
74
|
+
body: "通路和目標客戶、產品階段的匹配理由,以及可以馬上執行的最小一步。",
|
|
75
75
|
},
|
|
76
76
|
{
|
|
77
77
|
label: "第一步怎麼做",
|
|
@@ -79,30 +79,30 @@ const coldStartChannelSelector = {
|
|
|
79
79
|
},
|
|
80
80
|
{
|
|
81
81
|
label: "什麼結果值得繼續",
|
|
82
|
-
body: "
|
|
82
|
+
body: "看到什麼信號時應該繼續、調整實驗,或測試下一個客戶獲取通路。",
|
|
83
83
|
},
|
|
84
84
|
],
|
|
85
85
|
},
|
|
86
86
|
imageTextSections: [
|
|
87
87
|
{
|
|
88
88
|
id: "channel-priority",
|
|
89
|
-
title: "
|
|
89
|
+
title: "新創公司最好的冷啟動通路有哪些?",
|
|
90
90
|
body: [
|
|
91
|
-
"
|
|
92
|
-
"SEO 和內容、創辦人外聯、社群、合作夥伴、發佈平臺、推薦和付費獲客都可能有效。填入公開產品 URL 或具體的尚未上線產品說明後,工具會依你的情況排出 3–5
|
|
91
|
+
"沒有一種冷啟動通路對所有新創公司都最好。早期團隊較適合從目標客戶已經在留意、產品有機會建立信任,而且你能持續投入的地方開始。",
|
|
92
|
+
"SEO 和內容、創辦人外聯、社群、合作夥伴、發佈平臺、推薦和付費獲客都可能有效。填入公開產品 URL 或具體的尚未上線產品說明後,工具會依你的情況排出 3–5 個選項,而不是給你一份通用通路清單。",
|
|
93
93
|
],
|
|
94
94
|
image: {
|
|
95
95
|
src: "/tools/cold-start-channel-selector-section-priority-8bit-v3.webp",
|
|
96
|
-
alt: "
|
|
96
|
+
alt: "產品說明變成聚焦的冷啟動通路策略",
|
|
97
97
|
},
|
|
98
98
|
imageFirst: true,
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
id: "channel-tradeoffs",
|
|
102
|
-
title: "
|
|
102
|
+
title: "新創公司如何選擇第一條冷啟動通路?",
|
|
103
103
|
body: [
|
|
104
104
|
"先選一個你能實際觸達的客戶群,再做一項可以重複的小型測試。比較目標客戶匹配度、產品階段、所需資產、回饋速度、成本,以及最小驗證動作能否帶來回覆、試用、註冊或訪談。",
|
|
105
|
-
"
|
|
105
|
+
"最適合先測試的,不一定是流量最大的通路,而是能在你現有的產品、證據、時間和預算下,盡快帶來有效學習信號的通路。",
|
|
106
106
|
],
|
|
107
107
|
image: {
|
|
108
108
|
src: "/tools/cold-start-channel-selector-section-tradeoffs-8bit-v2.webp",
|
|
@@ -114,8 +114,8 @@ const coldStartChannelSelector = {
|
|
|
114
114
|
id: "channel-validation",
|
|
115
115
|
title: "新創公司應該先做自然獲客還是付費獲客?",
|
|
116
116
|
body: [
|
|
117
|
-
"
|
|
118
|
-
"
|
|
117
|
+
"當你還需要理解客戶語言和產品回饋時,自然通路或創辦人主導的獲客通常更適合先測試。你可以透過對話、社群、內容和外聯,更快聽到真實回饋。",
|
|
118
|
+
"當目標使用者、轉換路徑、資料追蹤、單位經濟和測試預算都較清楚時,付費獲客才更有價值。這份策略會把取捨說清楚,而不是預設讓你投放廣告。",
|
|
119
119
|
],
|
|
120
120
|
image: {
|
|
121
121
|
src: "/tools/cold-start-channel-selector-section-validation-8bit-v2.webp",
|
|
@@ -127,25 +127,25 @@ const coldStartChannelSelector = {
|
|
|
127
127
|
narrativeSections: [
|
|
128
128
|
{
|
|
129
129
|
id: "channel-validation",
|
|
130
|
-
title: "
|
|
130
|
+
title: "如何測試一條冷啟動通路是否有效?",
|
|
131
131
|
body: [
|
|
132
|
-
"
|
|
133
|
-
"
|
|
132
|
+
"先用一條通路、一個目標客戶、一項具體動作和一個可觀察信號做小型測試,再決定是否增加投入。有效信號可以是高品質回覆、試用、註冊、訪談,或任何證明目標客戶正在回應的結果。",
|
|
133
|
+
"把結果當作需要驗證的假設。執行建議的第一步,觀察對應信號,再決定繼續、調整測試,或換下一個通路,然後再增加預算。",
|
|
134
134
|
],
|
|
135
135
|
background: "muted",
|
|
136
136
|
},
|
|
137
137
|
{
|
|
138
138
|
id: "growth-strategy-context",
|
|
139
|
-
title: "
|
|
139
|
+
title: "冷啟動通路策略如何放進成長行銷策略?",
|
|
140
140
|
body: [
|
|
141
|
-
"
|
|
142
|
-
"
|
|
141
|
+
"冷啟動通路策略解決的是一個更早的決定:第一批客戶應該去哪裡找、從哪裡獲得學習信號。更完整的成長行銷策略還會涉及定位、轉換路徑、啟動、留存、衡量和一組持續的實驗。",
|
|
142
|
+
"先用這輪通路測試理解哪些資訊和動作能打動客戶,再決定下一個通路、下一則訊息或下一項實驗。它是成長行銷策略的第一步,不是對完整策略的替代。",
|
|
143
143
|
],
|
|
144
144
|
},
|
|
145
145
|
],
|
|
146
146
|
generation: {
|
|
147
|
-
title: "
|
|
148
|
-
ctaLabel: "
|
|
147
|
+
title: "把第一輪通路測試變成下一步成長決策",
|
|
148
|
+
ctaLabel: "取得我的通路策略",
|
|
149
149
|
steps: [
|
|
150
150
|
{
|
|
151
151
|
title: "說明產品和目標客戶",
|
|
@@ -153,11 +153,11 @@ const coldStartChannelSelector = {
|
|
|
153
153
|
},
|
|
154
154
|
{
|
|
155
155
|
title: "寫下實際能投入的資源",
|
|
156
|
-
body: "
|
|
156
|
+
body: "補充市場、階段、每週可用時間和測試預算,讓通路策略符合你現在真正能執行的條件。",
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
|
-
title: "
|
|
160
|
-
body: "
|
|
159
|
+
title: "取得可測試的冷啟動通路策略",
|
|
160
|
+
body: "查看哪些客戶獲取通路現在最值得測試、為什麼適合、第一步做什麼,以及哪些選項應該先等等。",
|
|
161
161
|
},
|
|
162
162
|
{
|
|
163
163
|
title: "用結果決定下一步",
|
|
@@ -165,25 +165,25 @@ const coldStartChannelSelector = {
|
|
|
165
165
|
},
|
|
166
166
|
],
|
|
167
167
|
},
|
|
168
|
-
faqIntro: "
|
|
169
|
-
faqCtaLabel: "
|
|
168
|
+
faqIntro: "在選擇、測試和調整客戶獲取通路前,你可能會關心這些問題。",
|
|
169
|
+
faqCtaLabel: "取得我的通路策略",
|
|
170
170
|
},
|
|
171
171
|
valueKicker: "你可以得到什麼",
|
|
172
|
-
valueTitle: "
|
|
172
|
+
valueTitle: "把增長通路從“都想試”變成“先試這幾個”",
|
|
173
173
|
valueIntro:
|
|
174
|
-
"
|
|
174
|
+
"冷啟動最貴的不是沒有通路,而是把有限時間平均撒到每個平臺。這個工具把產品形態、市場、階段和資源約束放在一起判斷。",
|
|
175
175
|
valueItems: [
|
|
176
176
|
{
|
|
177
|
-
title: "Top
|
|
178
|
-
body: "按當前階段推薦 3-5
|
|
177
|
+
title: "Top 通路排序",
|
|
178
|
+
body: "按當前階段推薦 3-5 個優先通路,並說明為什麼現在適合做。",
|
|
179
179
|
},
|
|
180
180
|
{
|
|
181
181
|
title: "暫不優先清單",
|
|
182
|
-
body: "
|
|
182
|
+
body: "把廣告、泛社群媒體、SEO 或發佈平臺中暫時不值得投入的選項說清楚。",
|
|
183
183
|
},
|
|
184
184
|
{
|
|
185
185
|
title: "第一步動作",
|
|
186
|
-
body: "
|
|
186
|
+
body: "每個通路給出第一件可以做的小動作,避免停在策略建議。",
|
|
187
187
|
},
|
|
188
188
|
{
|
|
189
189
|
title: "7 天輕計劃",
|
|
@@ -191,13 +191,13 @@ const coldStartChannelSelector = {
|
|
|
191
191
|
},
|
|
192
192
|
],
|
|
193
193
|
standardsKicker: "為什麼選 Tomako",
|
|
194
|
-
standardsTitle: "
|
|
194
|
+
standardsTitle: "好的通路選擇器應該先幫你排除噪音",
|
|
195
195
|
standardsIntro:
|
|
196
196
|
"普通清單會告訴你 Product Hunt、Reddit、小紅書、SEO、廣告都能做。真正有用的選擇器要解釋:為什麼是現在,為什麼是你,為什麼不是別的。",
|
|
197
197
|
standards: [
|
|
198
198
|
{
|
|
199
199
|
title: "貼合產品形態",
|
|
200
|
-
body: "開發者工具、消費 App、B2B SaaS
|
|
200
|
+
body: "開發者工具、消費 App、B2B SaaS 和內容產品不應該得到同一組通路。",
|
|
201
201
|
},
|
|
202
202
|
{
|
|
203
203
|
title: "尊重資源約束",
|
|
@@ -205,74 +205,74 @@ const coldStartChannelSelector = {
|
|
|
205
205
|
},
|
|
206
206
|
{
|
|
207
207
|
title: "說明反證條件",
|
|
208
|
-
body: "
|
|
208
|
+
body: "每個推薦都應說清什麼信號出現時要停下或換通路。",
|
|
209
209
|
},
|
|
210
210
|
{
|
|
211
211
|
title: "保留不確定性",
|
|
212
|
-
body: "
|
|
212
|
+
body: "資訊不足時應列出缺失資訊和可信度,而不是編一個漂亮答案。",
|
|
213
213
|
},
|
|
214
214
|
],
|
|
215
215
|
resultKicker: "結果怎麼用",
|
|
216
216
|
resultTitle: "把報告當作一輪驗證計劃,而不是最終答案",
|
|
217
217
|
resultGuidanceItems: [
|
|
218
|
-
"
|
|
219
|
-
"如果結果裡有 missingInfo
|
|
218
|
+
"先做優先級第一的通路,跑到能判斷是否有信號,再擴展第二和第三通路。",
|
|
219
|
+
"如果結果裡有 missingInfo,先補齊這些資訊;它們通常會改變通路排序。",
|
|
220
220
|
"不要把低可信度建議直接變成長期戰略,先用 7 天計劃驗證能不能拿到回覆、註冊、收藏、試用或訪談。",
|
|
221
221
|
"把第一步動作複製到你的 Launch 或 Growth 看板,再根據真實反饋調整。",
|
|
222
222
|
],
|
|
223
223
|
useCasesKicker: "適用場景",
|
|
224
224
|
useCasesTitle: "適合剛要開始增長,但不想亂試一圈的時候",
|
|
225
225
|
useCasesIntro:
|
|
226
|
-
"
|
|
226
|
+
"它不是代替增長負責人,而是幫你把第一輪通路假設整理得更可執行。",
|
|
227
227
|
useCases: [
|
|
228
228
|
"獨立開發者剛上線一個 Web SaaS,不確定應該先做 SEO、社區還是發佈平臺。",
|
|
229
229
|
"App 還沒有完整官網,只能用產品描述和目標市場先判斷冷啟動方向。",
|
|
230
|
-
"開發者工具已有 GitHub
|
|
230
|
+
"開發者工具已有 GitHub 或文檔資產,需要判斷是走內容、社區還是開發者發佈通路。",
|
|
231
231
|
],
|
|
232
232
|
faqKicker: "常見問題",
|
|
233
|
-
faqTitle: "
|
|
233
|
+
faqTitle: "客戶獲取通路選擇器常見問題",
|
|
234
234
|
faqItems: [
|
|
235
235
|
{
|
|
236
|
-
question: "
|
|
236
|
+
question: "什麼是冷啟動通路策略產生器?",
|
|
237
237
|
answer:
|
|
238
|
-
"
|
|
238
|
+
"冷啟動通路策略產生器是一種協助你決定先測試哪些獲客通路的決策工具。Tomako 會比較產品、目標客戶、階段、市場、時間和預算,再提出通路排序,而不是一份適用所有產品的通用行銷通路清單。",
|
|
239
239
|
},
|
|
240
240
|
{
|
|
241
|
-
question: "
|
|
241
|
+
question: "冷啟動通路策略產生器怎麼使用?",
|
|
242
242
|
answer:
|
|
243
|
-
"輸入公開產品 URL
|
|
243
|
+
"輸入公開產品 URL 或具體的產品說明,再選擇產品型態、目標市場、階段、每週時間和測試預算。冷啟動通路策略產生器會依照這些限制產生通路策略;繼續補充目標使用者、已有資產和試過的通路,可以讓比較更具體。",
|
|
244
244
|
},
|
|
245
245
|
{
|
|
246
|
-
question: "
|
|
246
|
+
question: "客戶獲取通路選擇器會產生什麼報告?",
|
|
247
247
|
answer:
|
|
248
|
-
"
|
|
248
|
+
"客戶獲取通路報告包含 3–5 個優先通路、目前匹配理由、第一步動作、所需資產、驗證指標、主要風險、暫緩通路、簡短執行計畫、缺失資訊和可信邊界。",
|
|
249
249
|
},
|
|
250
250
|
{
|
|
251
|
-
question: "SaaS
|
|
251
|
+
question: "SaaS 或尚未上線的產品可以使用客戶獲取通路選擇器嗎?",
|
|
252
252
|
answer:
|
|
253
|
-
"可以。公開網站會有幫助,但不是必填;SaaS
|
|
253
|
+
"可以。公開網站會有幫助,但不是必填;SaaS、內測和尚未上線的團隊可以手動說明目標客戶、問題、產品和階段。公開證據較少時,客戶獲取通路選擇器可能給出較低的可信度,並列出更多需要補充的資訊。",
|
|
254
254
|
},
|
|
255
255
|
{
|
|
256
|
-
question: "
|
|
256
|
+
question: "客戶獲取通路選擇器能保證成長嗎?",
|
|
257
257
|
answer:
|
|
258
|
-
"
|
|
258
|
+
"不能。客戶獲取通路選擇器提供的是需要驗證的通路排序假設,不保證取得客戶或收入。投入長期預算或把它當作完整獲客策略前,仍要用真實回覆、註冊、試用、留存或使用者訪談驗證。",
|
|
259
259
|
},
|
|
260
260
|
],
|
|
261
261
|
boundaryTitle: "支持與限制",
|
|
262
262
|
boundaryItems: [
|
|
263
263
|
"支持產品 URL、App/工具描述、目標市場、階段、預算和時間約束。",
|
|
264
|
-
"
|
|
264
|
+
"不處理登入後內容、私密資料、付費資料庫或無法公開訪問的頁面。",
|
|
265
265
|
"不承諾增長結果、平臺收錄、廣告表現或收入增長。",
|
|
266
|
-
"
|
|
266
|
+
"結果基於公開資訊和你提供的上下文,僅作為決策輔助;投入預算或制定長期通路計畫前請人工複核。",
|
|
267
267
|
],
|
|
268
268
|
ctaHint: "想繼續檢查上線基礎?先用 GTM checklist 找出發佈前缺口。",
|
|
269
269
|
ctaPrimary: "檢查 GTM readiness",
|
|
270
270
|
ctaSecondary: "查看全部工具",
|
|
271
271
|
visualAlt: {
|
|
272
|
-
hero: "
|
|
272
|
+
hero: "產品說明變成聚焦的冷啟動通路策略",
|
|
273
273
|
standards: "在立即測試與暫緩之間做平衡判斷",
|
|
274
274
|
result: "一輪小型客戶獲取實驗得到早期信號",
|
|
275
|
-
useCases: "
|
|
275
|
+
useCases: "產品說明、資源限制和可複核的通路建議",
|
|
276
276
|
},
|
|
277
277
|
},
|
|
278
278
|
widget: {
|
|
@@ -286,58 +286,58 @@ const coldStartChannelSelector = {
|
|
|
286
286
|
stageLabel: "當前階段",
|
|
287
287
|
hoursLabel: "每週可投入時間",
|
|
288
288
|
budgetLabel: "預算",
|
|
289
|
-
audienceLabel: "
|
|
289
|
+
audienceLabel: "目標使用者",
|
|
290
290
|
audiencePlaceholder: "例如:獨立開發者、跨境電商運營、B2B 銷售團隊",
|
|
291
291
|
assetsLabel: "已有資產",
|
|
292
292
|
assetsPlaceholder: "例如:官網、文檔、GitHub、郵件列表、社群、案例、內容庫",
|
|
293
|
-
triedLabel: "
|
|
293
|
+
triedLabel: "已嘗試通路",
|
|
294
294
|
triedPlaceholder: "例如:發過 Product Hunt、寫過 SEO 文章、做過小紅書",
|
|
295
295
|
constraintsLabel: "限制或偏好",
|
|
296
296
|
constraintsPlaceholder: "例如:不想投廣告、不能公開客戶案例、只有一個人維護",
|
|
297
|
-
showAdvanced: "
|
|
298
|
-
hideAdvanced: "
|
|
299
|
-
submit: "
|
|
300
|
-
submitting: "
|
|
301
|
-
running: "
|
|
297
|
+
showAdvanced: "補充高級資訊",
|
|
298
|
+
hideAdvanced: "收起高級資訊",
|
|
299
|
+
submit: "取得通路策略",
|
|
300
|
+
submitting: "正在準備通路策略",
|
|
301
|
+
running: "正在產生通路策略",
|
|
302
302
|
inputHint:
|
|
303
|
-
"只使用公開產品資訊。沒有 URL
|
|
304
|
-
previewTitle: "
|
|
305
|
-
previewSubtitle: "
|
|
303
|
+
"只使用公開產品資訊。沒有 URL 時請補充具體產品說明和目標使用者;報告是需要驗證的假設,不承諾成長結果。",
|
|
304
|
+
previewTitle: "三步取得你的通路策略",
|
|
305
|
+
previewSubtitle: "告訴我們你在做什麼,以及你現在能投入哪些資源;工具會把這些資訊變成可以立即開始測試的通路策略。",
|
|
306
306
|
previewSteps: [
|
|
307
307
|
"說明產品和目標客戶",
|
|
308
308
|
"補充市場、階段、時間和預算",
|
|
309
|
-
"
|
|
309
|
+
"取得可測試的通路策略",
|
|
310
310
|
],
|
|
311
|
-
rightPanelHint: "
|
|
311
|
+
rightPanelHint: "提交後,這裡會顯示通路策略和首個驗證計畫。",
|
|
312
312
|
previewItems: [
|
|
313
|
-
"現在最值得優先驗證的 3-5
|
|
314
|
-
"
|
|
315
|
-
"
|
|
313
|
+
"現在最值得優先驗證的 3-5 個通路。",
|
|
314
|
+
"暫時不建議投入的通路和原因。",
|
|
315
|
+
"每個通路的第一步動作、驗證指標和主要風險。",
|
|
316
316
|
"一份簡單的 7 天執行計劃。",
|
|
317
317
|
],
|
|
318
|
-
runningTitle: "
|
|
318
|
+
runningTitle: "正在產生你的通路策略",
|
|
319
319
|
runningHint:
|
|
320
|
-
"
|
|
320
|
+
"正在結合產品資訊和限制條件,產生你的首輪通路策略,可能需要一兩分鐘。",
|
|
321
321
|
loadingSteps: [
|
|
322
322
|
{ status: "complete", title: "讀取產品資訊", countdown: "" },
|
|
323
|
-
{ status: "active", title: "
|
|
323
|
+
{ status: "active", title: "比較通路選項", countdown: "" },
|
|
324
324
|
{ status: "pending", title: "準備首個測試", countdown: "" },
|
|
325
325
|
],
|
|
326
326
|
loadingTip:
|
|
327
|
-
"
|
|
328
|
-
runningStatusLabel: "
|
|
327
|
+
"冷啟動通常先驗證一個低成本社區、內容或夥伴通路,再擴展到更重的廣告和長期 SEO。",
|
|
328
|
+
runningStatusLabel: "正在產生通路策略",
|
|
329
329
|
runningTipLabel: "提示",
|
|
330
|
-
reportTitle: "
|
|
330
|
+
reportTitle: "客戶獲取通路策略",
|
|
331
331
|
copyReport: "複製報告",
|
|
332
332
|
copiedReport: "已複製",
|
|
333
333
|
copyMarkdown: "複製 Markdown",
|
|
334
334
|
downloadHtml: "下載 HTML 報告",
|
|
335
335
|
analyzeAnother: "重新分析",
|
|
336
336
|
retry: "重試",
|
|
337
|
-
errorTitle: "
|
|
337
|
+
errorTitle: "暫時無法產生通路策略",
|
|
338
338
|
sections: {
|
|
339
339
|
analysis: "分析依據",
|
|
340
|
-
priority: "
|
|
340
|
+
priority: "優先通路",
|
|
341
341
|
plan: "簡單執行計劃",
|
|
342
342
|
avoid: "暫不優先",
|
|
343
343
|
boundary: "可信邊界",
|
|
@@ -345,7 +345,7 @@ const coldStartChannelSelector = {
|
|
|
345
345
|
labels: {
|
|
346
346
|
productModel: "產品/商業模式",
|
|
347
347
|
userStructure: "使用者結構",
|
|
348
|
-
channelDiscovery: "
|
|
348
|
+
channelDiscovery: "候選通路發現",
|
|
349
349
|
selectionCriteria: "選擇準則",
|
|
350
350
|
targetSegment: "目標客群",
|
|
351
351
|
whyNow: "為什麼現在做",
|
|
@@ -357,7 +357,7 @@ const coldStartChannelSelector = {
|
|
|
357
357
|
risks: "風險",
|
|
358
358
|
actions: "行動",
|
|
359
359
|
expectedSignal: "預期信號",
|
|
360
|
-
missingInfo: "
|
|
360
|
+
missingInfo: "缺失資訊",
|
|
361
361
|
},
|
|
362
362
|
fallback: {
|
|
363
363
|
unknown: "尚未判定",
|
|
@@ -388,10 +388,10 @@ const coldStartChannelSelector = {
|
|
|
388
388
|
errors: {
|
|
389
389
|
missingInput: "請輸入產品 URL,或填寫一段足夠具體的產品描述。",
|
|
390
390
|
invalidUrl: "請輸入可公開存取的有效產品 URL,或清空 URL 後改用產品說明。",
|
|
391
|
-
weakDescription: "
|
|
391
|
+
weakDescription: "產品描述太短,請補充目標使用者、問題和當前階段。",
|
|
392
392
|
validation: "請先修正輸入內容。",
|
|
393
393
|
submit: "暫時無法開始分析,請稍後重試。",
|
|
394
|
-
task: "
|
|
394
|
+
task: "分析沒有完成,因此暫時無法顯示通路策略。請重試。",
|
|
395
395
|
timeout: "分析耗時超過預期,請稍後重試。",
|
|
396
396
|
schema: "報告無法被安全讀取,請重新分析。",
|
|
397
397
|
},
|
|
@@ -420,7 +420,7 @@ const coldStartChannelSelector = {
|
|
|
420
420
|
{ value: "prototype", label: "原型階段" },
|
|
421
421
|
{ value: "private_beta", label: "內測階段" },
|
|
422
422
|
{ value: "launched", label: "剛上線" },
|
|
423
|
-
{ value: "early_traction", label: "
|
|
423
|
+
{ value: "early_traction", label: "已有少量使用者" },
|
|
424
424
|
],
|
|
425
425
|
weeklyHoursOptions: [
|
|
426
426
|
{ value: "under_3", label: "少於 3 小時" },
|