@rookiestar/eng-lang-tutor 1.1.5 → 1.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.
Potentially problematic release.
This version of @rookiestar/eng-lang-tutor might be problematic. Click here for more details.
- package/SKILL.md +4 -4
- package/package.json +1 -1
- package/templates/prompt_templates.md +1 -1
- package/templates/prompts/initialization.md +166 -40
package/SKILL.md
CHANGED
|
@@ -250,15 +250,15 @@ The bot recognizes these natural language commands:
|
|
|
250
250
|
|
|
251
251
|
## Initialization Flow
|
|
252
252
|
|
|
253
|
-
>
|
|
253
|
+
> **CRITICAL:** You MUST follow [templates/prompts/initialization.md](templates/prompts/initialization.md) exactly. Display ALL options with numbers (1, 2, 3...). NEVER skip or abbreviate options.
|
|
254
254
|
|
|
255
|
-
|
|
255
|
+
7-step onboarding: Welcome → CEFR Level → Topic Interests → Tutor Style → Oral/Written Ratio → Schedule → Voice Teaching → Confirm
|
|
256
256
|
|
|
257
|
-
**Step
|
|
257
|
+
**Step 7 Completion:** Set `initialized=true` + Create cron jobs for keypoint/quiz push times.
|
|
258
258
|
|
|
259
259
|
**State Fields:**
|
|
260
260
|
- `initialized`: Boolean - Whether user completed onboarding
|
|
261
|
-
- `onboarding_step`: Integer (0-
|
|
261
|
+
- `onboarding_step`: Integer (0-7) - Current step
|
|
262
262
|
|
|
263
263
|
---
|
|
264
264
|
|
package/package.json
CHANGED
|
@@ -20,7 +20,7 @@ This documentation has been split into focused modules for easier navigation:
|
|
|
20
20
|
|------|---------|
|
|
21
21
|
| [prompts/keypoint_generation.md](prompts/keypoint_generation.md) | Knowledge point generation template, topic resources |
|
|
22
22
|
| [prompts/quiz_generation.md](prompts/quiz_generation.md) | Quiz generation template with question types |
|
|
23
|
-
| [prompts/initialization.md](prompts/initialization.md) |
|
|
23
|
+
| [prompts/initialization.md](prompts/initialization.md) | 7-step onboarding flow templates |
|
|
24
24
|
|
|
25
25
|
### Display Templates
|
|
26
26
|
| File | Purpose |
|
|
@@ -1,10 +1,16 @@
|
|
|
1
1
|
# Initialization Flow Templates
|
|
2
2
|
|
|
3
|
-
> Templates for the
|
|
3
|
+
> Templates for the 7-step onboarding process when a new user starts.
|
|
4
4
|
|
|
5
5
|
**Related Files:**
|
|
6
6
|
- [shared_enums.md](shared_enums.md) - CEFR levels, topics, tutor styles
|
|
7
7
|
|
|
8
|
+
**IMPORTANT Display Rules:**
|
|
9
|
+
- Every step MUST display ALL options with numbers (1, 2, 3...)
|
|
10
|
+
- Every step MUST show the recommended/default option clearly
|
|
11
|
+
- Model MUST NOT skip any options or abbreviate the list
|
|
12
|
+
- User can reply with number or text (both should work)
|
|
13
|
+
|
|
8
14
|
---
|
|
9
15
|
|
|
10
16
|
## Step 0: Welcome Message
|
|
@@ -31,19 +37,27 @@
|
|
|
31
37
|
"type": "init_cefr",
|
|
32
38
|
"step": 1,
|
|
33
39
|
"display": {
|
|
34
|
-
"title": "📊 Step 1/
|
|
40
|
+
"title": "📊 Step 1/7: Your English Level",
|
|
35
41
|
"message": "What's your current English level?",
|
|
36
42
|
"options": [
|
|
37
|
-
"**A1-A2
|
|
38
|
-
"**B1-B2
|
|
39
|
-
"**C1-C2
|
|
43
|
+
"**1.** A1-A2 - Beginner: Basic conversations, everyday words",
|
|
44
|
+
"**2.** B1-B2 - Intermediate: Work conversations, some idioms ⭐ Recommended",
|
|
45
|
+
"**3.** C1-C2 - Advanced: Complex topics, nuanced expressions"
|
|
40
46
|
],
|
|
41
|
-
"
|
|
47
|
+
"default": "B1",
|
|
48
|
+
"prompt": "Reply with a number (1-3) or level (e.g., **2** or **B1**)",
|
|
42
49
|
"hint": "💡 Not sure? Most working professionals are B1-B2. You can change this later."
|
|
43
50
|
}
|
|
44
51
|
}
|
|
45
52
|
```
|
|
46
53
|
|
|
54
|
+
**Input Mapping:**
|
|
55
|
+
| User Input | Value |
|
|
56
|
+
|------------|-------|
|
|
57
|
+
| 1, A1, A2, beginner | A2 |
|
|
58
|
+
| 2, B1, B2, intermediate | B1 |
|
|
59
|
+
| 3, C1, C2, advanced | C1 |
|
|
60
|
+
|
|
47
61
|
---
|
|
48
62
|
|
|
49
63
|
## Step 2: Topic Preferences
|
|
@@ -53,23 +67,35 @@
|
|
|
53
67
|
"type": "init_topics",
|
|
54
68
|
"step": 2,
|
|
55
69
|
"display": {
|
|
56
|
-
"title": "🎯 Step 2/
|
|
57
|
-
"message": "Which topics interest you most?",
|
|
58
|
-
"
|
|
59
|
-
"🎬 movies - TV shows, films",
|
|
60
|
-
"📰 news - Current events",
|
|
61
|
-
"🎮 gaming - Video games",
|
|
62
|
-
"⚽ sports - Sports & fitness",
|
|
63
|
-
"🏢 workplace - Office & business",
|
|
64
|
-
"💬 social - Friends & parties",
|
|
65
|
-
"🏠 daily_life - Shopping, restaurants"
|
|
70
|
+
"title": "🎯 Step 2/7: Your Interests",
|
|
71
|
+
"message": "Which topics interest you most? (Select multiple)",
|
|
72
|
+
"options": [
|
|
73
|
+
"**1.** 🎬 movies - TV shows, films",
|
|
74
|
+
"**2.** 📰 news - Current events",
|
|
75
|
+
"**3.** 🎮 gaming - Video games",
|
|
76
|
+
"**4.** ⚽ sports - Sports & fitness",
|
|
77
|
+
"**5.** 🏢 workplace - Office & business ⭐ Popular",
|
|
78
|
+
"**6.** 💬 social - Friends & parties",
|
|
79
|
+
"**7.** 🏠 daily_life - Shopping, restaurants"
|
|
66
80
|
],
|
|
67
|
-
"
|
|
68
|
-
"
|
|
81
|
+
"default": "workplace, social, daily_life",
|
|
82
|
+
"prompt": "Reply with numbers (e.g., **1 5 6** or **movies workplace social**)",
|
|
83
|
+
"hint": "💡 Select 2-4 topics. Popular combo: 5 6 7 (workplace + social + daily_life)"
|
|
69
84
|
}
|
|
70
85
|
}
|
|
71
86
|
```
|
|
72
87
|
|
|
88
|
+
**Input Mapping:**
|
|
89
|
+
| User Input | Value |
|
|
90
|
+
|------------|-------|
|
|
91
|
+
| 1, movies | movies |
|
|
92
|
+
| 2, news | news |
|
|
93
|
+
| 3, gaming | gaming |
|
|
94
|
+
| 4, sports | sports |
|
|
95
|
+
| 5, workplace | workplace |
|
|
96
|
+
| 6, social | social |
|
|
97
|
+
| 7, daily, daily_life | daily_life |
|
|
98
|
+
|
|
73
99
|
---
|
|
74
100
|
|
|
75
101
|
## Step 3: Tutor Style
|
|
@@ -79,19 +105,28 @@
|
|
|
79
105
|
"type": "init_style",
|
|
80
106
|
"step": 3,
|
|
81
107
|
"display": {
|
|
82
|
-
"title": "🎭 Step 3/
|
|
108
|
+
"title": "🎭 Step 3/7: Tutor Style",
|
|
83
109
|
"message": "How should I teach you?",
|
|
84
110
|
"options": [
|
|
85
|
-
"😄
|
|
86
|
-
"📚
|
|
87
|
-
"😎
|
|
88
|
-
"👔
|
|
111
|
+
"**1.** 😄 humorous - Fun examples, jokes, pop culture ⭐ Recommended",
|
|
112
|
+
"**2.** 📚 rigorous - Detailed explanations, grammar focus",
|
|
113
|
+
"**3.** 😎 casual - Short & sweet, everyday language",
|
|
114
|
+
"**4.** 👔 professional - Business-focused, formal contexts"
|
|
89
115
|
],
|
|
90
|
-
"
|
|
116
|
+
"default": "humorous",
|
|
117
|
+
"prompt": "Reply with a number (1-4) or style name (e.g., **1** or **humorous**)"
|
|
91
118
|
}
|
|
92
119
|
}
|
|
93
120
|
```
|
|
94
121
|
|
|
122
|
+
**Input Mapping:**
|
|
123
|
+
| User Input | Value |
|
|
124
|
+
|------------|-------|
|
|
125
|
+
| 1, humorous, funny | humorous |
|
|
126
|
+
| 2, rigorous, serious | rigorous |
|
|
127
|
+
| 3, casual, relaxed | casual |
|
|
128
|
+
| 4, professional, formal | professional |
|
|
129
|
+
|
|
95
130
|
---
|
|
96
131
|
|
|
97
132
|
## Step 4: Oral/Written Ratio
|
|
@@ -101,18 +136,28 @@
|
|
|
101
136
|
"type": "init_ratio",
|
|
102
137
|
"step": 4,
|
|
103
138
|
"display": {
|
|
104
|
-
"title": "💬 Step 4/
|
|
139
|
+
"title": "💬 Step 4/7: Speaking vs Writing",
|
|
105
140
|
"message": "What do you want to focus on?",
|
|
106
141
|
"options": [
|
|
107
|
-
"🗣️
|
|
108
|
-
"⚖️
|
|
109
|
-
"✍️
|
|
142
|
+
"**1.** 🗣️ Mostly speaking (80%) - Daily conversations, casual chat",
|
|
143
|
+
"**2.** ⚖️ Balanced (50%) - Mix of speaking and writing",
|
|
144
|
+
"**3.** ✍️ Mostly writing (20%) - Emails, formal documents"
|
|
110
145
|
],
|
|
111
|
-
"
|
|
146
|
+
"default": "70",
|
|
147
|
+
"prompt": "Reply with a number (1-3) or percentage 0-100 (e.g., **1** or **70**)",
|
|
148
|
+
"hint": "💡 Recommended: 70% speaking (most learners want to speak better)"
|
|
112
149
|
}
|
|
113
150
|
}
|
|
114
151
|
```
|
|
115
152
|
|
|
153
|
+
**Input Mapping:**
|
|
154
|
+
| User Input | Value |
|
|
155
|
+
|------------|-------|
|
|
156
|
+
| 1, mostly speaking | 80 |
|
|
157
|
+
| 2, balanced | 50 |
|
|
158
|
+
| 3, mostly writing | 20 |
|
|
159
|
+
| 0-100 (number) | that number |
|
|
160
|
+
|
|
116
161
|
---
|
|
117
162
|
|
|
118
163
|
## Step 5: Schedule Configuration
|
|
@@ -122,18 +167,30 @@
|
|
|
122
167
|
"type": "init_schedule",
|
|
123
168
|
"step": 5,
|
|
124
169
|
"display": {
|
|
125
|
-
"title": "⏰ Step 5/
|
|
170
|
+
"title": "⏰ Step 5/7: Schedule Your Learning",
|
|
126
171
|
"message": "When should I send you daily content?",
|
|
172
|
+
"options": [
|
|
173
|
+
"**1.** Morning person: Keypoint 06:45, Quiz 22:45 ⭐ Recommended",
|
|
174
|
+
"**2.** Late riser: Keypoint 08:00, Quiz 23:00",
|
|
175
|
+
"**3.** Custom times (you specify)"
|
|
176
|
+
],
|
|
127
177
|
"defaults": {
|
|
128
|
-
"keypoint": "
|
|
129
|
-
"quiz": "
|
|
178
|
+
"keypoint": "06:45",
|
|
179
|
+
"quiz": "22:45"
|
|
130
180
|
},
|
|
131
|
-
"prompt": "Reply with
|
|
132
|
-
"hint": "💡 Quiz time must be later than keypoint time.
|
|
181
|
+
"prompt": "Reply with a number (1-3) or custom times (e.g., **1** or **07:00 21:30**)",
|
|
182
|
+
"hint": "💡 Quiz time must be later than keypoint time. Press Enter for defaults."
|
|
133
183
|
}
|
|
134
184
|
}
|
|
135
185
|
```
|
|
136
186
|
|
|
187
|
+
**Input Mapping:**
|
|
188
|
+
| User Input | Keypoint | Quiz |
|
|
189
|
+
|------------|----------|------|
|
|
190
|
+
| 1, default, enter | 06:45 | 22:45 |
|
|
191
|
+
| 2, late | 08:00 | 23:00 |
|
|
192
|
+
| 3, HH:MM HH:MM | first time | second time |
|
|
193
|
+
|
|
137
194
|
**Validation Rules:**
|
|
138
195
|
- Both times must be in HH:MM format (24-hour)
|
|
139
196
|
- Quiz time must be later than keypoint time
|
|
@@ -142,12 +199,72 @@
|
|
|
142
199
|
|
|
143
200
|
---
|
|
144
201
|
|
|
145
|
-
## Step 6:
|
|
202
|
+
## Step 6: Voice Teaching Configuration
|
|
146
203
|
|
|
147
204
|
```json
|
|
148
205
|
{
|
|
149
|
-
"type": "
|
|
206
|
+
"type": "init_voice",
|
|
150
207
|
"step": 6,
|
|
208
|
+
"display": {
|
|
209
|
+
"title": "🔊 Step 6/7: Voice Teaching",
|
|
210
|
+
"message": "Would you like audio versions of knowledge points for listening practice?",
|
|
211
|
+
"options": [
|
|
212
|
+
"**1.** 🔊 Yes - Enable voice teaching ⭐ Recommended",
|
|
213
|
+
"**2.** 🔇 No - Text only, no audio"
|
|
214
|
+
],
|
|
215
|
+
"speed_options": {
|
|
216
|
+
"description": "If yes, choose your preferred speech speed:",
|
|
217
|
+
"options": [
|
|
218
|
+
"**1.** Very slow (0.5x) - Beginner shadowing",
|
|
219
|
+
"**2.** Slow (0.7x) - Learning pronunciation",
|
|
220
|
+
"**3.** Normal (0.9x) - Daily learning ⭐ Recommended",
|
|
221
|
+
"**4.** Fast (1.3x) - Listening challenge",
|
|
222
|
+
"**5.** Very fast (1.7x) - Advanced training"
|
|
223
|
+
]
|
|
224
|
+
},
|
|
225
|
+
"default": "yes 3",
|
|
226
|
+
"prompt": "Reply with **1** or **2**. If yes, also pick speed (e.g., **1** or **1 3** or **yes 3**)",
|
|
227
|
+
"hint": "💡 Recommended: Yes with normal speed (option 3). Great for commute listening!"
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
**Input Mapping:**
|
|
233
|
+
| User Input | Enabled | Speed |
|
|
234
|
+
|------------|---------|-------|
|
|
235
|
+
| 1, yes, y | true | 0.9 (default) |
|
|
236
|
+
| 2, no, n | false | - |
|
|
237
|
+
| 1 3, yes 3 | true | 0.9 |
|
|
238
|
+
| 1 1, yes 1 | true | 0.5 |
|
|
239
|
+
| 1 2, yes 2 | true | 0.7 |
|
|
240
|
+
| 1 4, yes 4 | true | 1.3 |
|
|
241
|
+
| 1 5, yes 5 | true | 1.7 |
|
|
242
|
+
|
|
243
|
+
**State Update:**
|
|
244
|
+
```json
|
|
245
|
+
{
|
|
246
|
+
"tts_settings": {
|
|
247
|
+
"enabled": true,
|
|
248
|
+
"provider": "edge-tts",
|
|
249
|
+
"speed": 0.9,
|
|
250
|
+
"voices": {
|
|
251
|
+
"narrator": null,
|
|
252
|
+
"dialogue_a": null,
|
|
253
|
+
"dialogue_b": null
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}
|
|
257
|
+
```
|
|
258
|
+
- If `voices` values are null, use provider defaults
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
## Step 7: Confirmation
|
|
263
|
+
|
|
264
|
+
```json
|
|
265
|
+
{
|
|
266
|
+
"type": "init_confirm",
|
|
267
|
+
"step": 7,
|
|
151
268
|
"display": {
|
|
152
269
|
"title": "✅ All Set! Here's Your Profile:",
|
|
153
270
|
"summary": {
|
|
@@ -155,14 +272,23 @@
|
|
|
155
272
|
"topics": "🎯 Topics: {top_topics}",
|
|
156
273
|
"style": "🎭 Style: {tutor_style}",
|
|
157
274
|
"focus": "💬 Focus: {oral_ratio}% speaking",
|
|
158
|
-
"schedule": "⏰ Schedule: Keypoint at {keypoint_time}, Quiz at {quiz_time}"
|
|
275
|
+
"schedule": "⏰ Schedule: Keypoint at {keypoint_time}, Quiz at {quiz_time}",
|
|
276
|
+
"voice": "🔊 Voice: {voice_status}"
|
|
159
277
|
},
|
|
160
|
-
"
|
|
278
|
+
"options": [
|
|
279
|
+
"**1.** ✅ Yes, confirm and start learning",
|
|
280
|
+
"**2.** ✏️ Change something"
|
|
281
|
+
],
|
|
282
|
+
"prompt": "Reply with **1** or **yes** to confirm, or **2** to adjust.",
|
|
161
283
|
"footer": "───────────────────\n🚀 Your first lesson starts tomorrow!"
|
|
162
284
|
}
|
|
163
285
|
}
|
|
164
286
|
```
|
|
165
287
|
|
|
288
|
+
**Voice Status Display:**
|
|
289
|
+
- If enabled: "Enabled, {speed_desc} speed"
|
|
290
|
+
- If disabled: "Disabled (text only)"
|
|
291
|
+
|
|
166
292
|
---
|
|
167
293
|
|
|
168
294
|
## Completion
|
|
@@ -184,9 +310,9 @@
|
|
|
184
310
|
|
|
185
311
|
---
|
|
186
312
|
|
|
187
|
-
## Cron Job Creation (after Step
|
|
313
|
+
## Cron Job Creation (after Step 7 confirmation)
|
|
188
314
|
|
|
189
|
-
After user confirms with "yes", MUST execute the following bash commands to create cron jobs:
|
|
315
|
+
After user confirms with "yes" or "1", MUST execute the following bash commands to create cron jobs:
|
|
190
316
|
|
|
191
317
|
```bash
|
|
192
318
|
# Parse times from schedule
|