Initial commit
This commit is contained in:
12
.claude-plugin/plugin.json
Normal file
12
.claude-plugin/plugin.json
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
{
|
||||||
|
"name": "common-skills",
|
||||||
|
"description": "公共工具技能 - 通用的辅助工具,如多语言问候、文本处理、格式转换等",
|
||||||
|
"version": "0.0.0-2025.11.28",
|
||||||
|
"author": {
|
||||||
|
"name": "FreeShip Team",
|
||||||
|
"email": "larry.koo711@gmail.com"
|
||||||
|
},
|
||||||
|
"skills": [
|
||||||
|
"./skills/sayhello"
|
||||||
|
]
|
||||||
|
}
|
||||||
3
README.md
Normal file
3
README.md
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
# common-skills
|
||||||
|
|
||||||
|
公共工具技能 - 通用的辅助工具,如多语言问候、文本处理、格式转换等
|
||||||
52
plugin.lock.json
Normal file
52
plugin.lock.json
Normal file
@@ -0,0 +1,52 @@
|
|||||||
|
{
|
||||||
|
"$schema": "internal://schemas/plugin.lock.v1.json",
|
||||||
|
"pluginId": "gh:mojito-llm/freeship-skills:common-skills",
|
||||||
|
"normalized": {
|
||||||
|
"repo": null,
|
||||||
|
"ref": "refs/tags/v20251128.0",
|
||||||
|
"commit": "591cfd45bde789c7907b5305dc13dd9479871986",
|
||||||
|
"treeHash": "d39bbe09483003c97f3b62b12b1e30007bb3ab4a7f3018ddc3683bd72ebdf7de",
|
||||||
|
"generatedAt": "2025-11-28T10:27:08.669836Z",
|
||||||
|
"toolVersion": "publish_plugins.py@0.2.0"
|
||||||
|
},
|
||||||
|
"origin": {
|
||||||
|
"remote": "git@github.com:zhongweili/42plugin-data.git",
|
||||||
|
"branch": "master",
|
||||||
|
"commit": "aa1497ed0949fd50e99e70d6324a29c5b34f9390",
|
||||||
|
"repoRoot": "/Users/zhongweili/projects/openmind/42plugin-data"
|
||||||
|
},
|
||||||
|
"manifest": {
|
||||||
|
"name": "common-skills",
|
||||||
|
"description": "公共工具技能 - 通用的辅助工具,如多语言问候、文本处理、格式转换等"
|
||||||
|
},
|
||||||
|
"content": {
|
||||||
|
"files": [
|
||||||
|
{
|
||||||
|
"path": "README.md",
|
||||||
|
"sha256": "664283e0bbcee96c0a59ea235d048e16596f52dddeba42e75d83f0cd35397a0c"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": ".claude-plugin/plugin.json",
|
||||||
|
"sha256": "8d1d321ce8361925385fd5e7d7dc8ca2cfe00cdc17bf9afce411217ffeeb42ce"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "skills/sayhello/SKILL.md",
|
||||||
|
"sha256": "a9163ba8e875f5fc44fc0a115515aba317260b6198d74606aae4d09aad4ae329"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "skills/sayhello/scripts/greet.py",
|
||||||
|
"sha256": "1f482cad5f2e00680d8388f9e2c4893747a9105ad8a85edf3acd18d29cef207a"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"path": "skills/sayhello/reference/greetings.md",
|
||||||
|
"sha256": "604d865ab36db76c4372ff8a21614777ea57bd8b741cd6ab5fbdca5880cb8609"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dirSha256": "d39bbe09483003c97f3b62b12b1e30007bb3ab4a7f3018ddc3683bd72ebdf7de"
|
||||||
|
},
|
||||||
|
"security": {
|
||||||
|
"scannedAt": null,
|
||||||
|
"scannerVersion": null,
|
||||||
|
"flags": []
|
||||||
|
}
|
||||||
|
}
|
||||||
210
skills/sayhello/SKILL.md
Normal file
210
skills/sayhello/SKILL.md
Normal file
@@ -0,0 +1,210 @@
|
|||||||
|
---
|
||||||
|
name: sayhello
|
||||||
|
description: Generate friendly greetings in multiple languages and styles. Use this skill when users request greetings, welcome messages, or multilingual hello messages for various contexts (formal, casual, cultural).
|
||||||
|
---
|
||||||
|
|
||||||
|
# Say Hello Skill
|
||||||
|
|
||||||
|
A skill that helps generate friendly, contextual greetings in multiple languages and styles.
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
|
||||||
|
Generate personalized greetings for various contexts including:
|
||||||
|
- Multilingual greetings (English, Chinese, Japanese, Spanish, French, etc.)
|
||||||
|
- Different formality levels (formal, casual, professional)
|
||||||
|
- Cultural contexts (business meetings, social gatherings, emails)
|
||||||
|
- Time-based greetings (morning, afternoon, evening)
|
||||||
|
- Custom greeting templates
|
||||||
|
|
||||||
|
## Quick Start
|
||||||
|
|
||||||
|
### Basic Usage
|
||||||
|
|
||||||
|
Generate a simple greeting:
|
||||||
|
```
|
||||||
|
"Say hello in Chinese"
|
||||||
|
→ 你好!(Nǐ hǎo!)
|
||||||
|
```
|
||||||
|
|
||||||
|
Generate a formal greeting:
|
||||||
|
```
|
||||||
|
"Generate a formal business greeting for a Japanese client"
|
||||||
|
→ おはようございます。お会いできて光栄です。(Ohayō gozaimasu. O-ai dekite kōei desu.)
|
||||||
|
```
|
||||||
|
|
||||||
|
Generate time-based greeting:
|
||||||
|
```
|
||||||
|
"Create a good morning greeting"
|
||||||
|
→ Good morning! Hope you have a wonderful day ahead!
|
||||||
|
```
|
||||||
|
|
||||||
|
## Core Capabilities
|
||||||
|
|
||||||
|
### 1. Multilingual Greetings
|
||||||
|
|
||||||
|
Generate greetings in various languages with proper pronunciation guides:
|
||||||
|
|
||||||
|
**Supported Languages:**
|
||||||
|
- English
|
||||||
|
- 中文 (Chinese - Simplified & Traditional)
|
||||||
|
- 日本語 (Japanese)
|
||||||
|
- Español (Spanish)
|
||||||
|
- Français (French)
|
||||||
|
- Deutsch (German)
|
||||||
|
- 한국어 (Korean)
|
||||||
|
- Italiano (Italian)
|
||||||
|
- Português (Portuguese)
|
||||||
|
- Русский (Russian)
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
```
|
||||||
|
"Say hello in Spanish with pronunciation"
|
||||||
|
→ ¡Hola! (OH-lah)
|
||||||
|
¡Buenos días! (BWEH-nos DEE-ahs)
|
||||||
|
```
|
||||||
|
|
||||||
|
### 2. Context-Aware Greetings
|
||||||
|
|
||||||
|
Generate greetings appropriate for different contexts:
|
||||||
|
|
||||||
|
**Business Context:**
|
||||||
|
```
|
||||||
|
"Professional greeting for email"
|
||||||
|
→ Dear [Name],
|
||||||
|
I hope this message finds you well.
|
||||||
|
```
|
||||||
|
|
||||||
|
**Casual Context:**
|
||||||
|
```
|
||||||
|
"Casual greeting for friends"
|
||||||
|
→ Hey there! What's up?
|
||||||
|
```
|
||||||
|
|
||||||
|
**Cultural Events:**
|
||||||
|
```
|
||||||
|
"Chinese New Year greeting"
|
||||||
|
→ 新年快乐!恭喜发财!
|
||||||
|
(Xīn nián kuài lè! Gōng xǐ fā cái!)
|
||||||
|
Happy New Year! Wishing you prosperity!
|
||||||
|
```
|
||||||
|
|
||||||
|
### 3. Time-Based Greetings
|
||||||
|
|
||||||
|
Generate appropriate greetings based on time of day:
|
||||||
|
|
||||||
|
- **Morning:** "Good morning", "早上好"
|
||||||
|
- **Afternoon:** "Good afternoon", "下午好"
|
||||||
|
- **Evening:** "Good evening", "晚上好"
|
||||||
|
- **Night:** "Good night", "晚安"
|
||||||
|
|
||||||
|
### 4. Custom Templates
|
||||||
|
|
||||||
|
Use the greeting templates in `assets/` for consistent, branded greetings:
|
||||||
|
|
||||||
|
**Email Templates:**
|
||||||
|
- Formal business introduction
|
||||||
|
- Casual team communication
|
||||||
|
- Client outreach
|
||||||
|
- Meeting invitations
|
||||||
|
|
||||||
|
**Social Templates:**
|
||||||
|
- Birthday greetings
|
||||||
|
- Holiday greetings
|
||||||
|
- Welcome messages
|
||||||
|
- Thank you notes
|
||||||
|
|
||||||
|
## Using Scripts
|
||||||
|
|
||||||
|
### greet.py
|
||||||
|
|
||||||
|
Generate greetings programmatically using the included Python script:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
python scripts/greet.py --language chinese --style formal
|
||||||
|
```
|
||||||
|
|
||||||
|
**Parameters:**
|
||||||
|
- `--language`: Target language (default: english)
|
||||||
|
- `--style`: Formality level (formal/casual/professional)
|
||||||
|
- `--context`: Specific context (business/social/email)
|
||||||
|
- `--time`: Time of day (morning/afternoon/evening/night)
|
||||||
|
|
||||||
|
**Example:**
|
||||||
|
```bash
|
||||||
|
# Generate formal Chinese business greeting
|
||||||
|
python scripts/greet.py --language chinese --style formal --context business
|
||||||
|
|
||||||
|
# Generate casual morning greeting
|
||||||
|
python scripts/greet.py --style casual --time morning
|
||||||
|
```
|
||||||
|
|
||||||
|
## Reference Materials
|
||||||
|
|
||||||
|
For comprehensive greeting conventions across cultures, pronunciation guides, and cultural etiquette, refer to:
|
||||||
|
|
||||||
|
- `reference/greetings.md` - Complete greeting reference for all supported languages
|
||||||
|
- `reference/cultural_contexts.md` - Cultural considerations and etiquette guidelines
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
1. **Consider Cultural Context:** Always consider the recipient's cultural background when choosing greetings
|
||||||
|
2. **Match Formality Level:** Ensure the greeting matches the relationship and context
|
||||||
|
3. **Include Pronunciation:** When using non-Latin scripts, include pronunciation guides
|
||||||
|
4. **Time Awareness:** Use time-appropriate greetings when context is known
|
||||||
|
5. **Personalization:** Customize greetings with names and specific details when available
|
||||||
|
|
||||||
|
## Examples
|
||||||
|
|
||||||
|
### Scenario 1: International Team Email
|
||||||
|
```
|
||||||
|
Request: "Greeting for international team email"
|
||||||
|
|
||||||
|
Response:
|
||||||
|
Hello Team / 大家好 / みなさん、こんにちは
|
||||||
|
|
||||||
|
I hope this message finds you all well. I wanted to reach out regarding...
|
||||||
|
```
|
||||||
|
|
||||||
|
### Scenario 2: Formal Business Introduction
|
||||||
|
```
|
||||||
|
Request: "Formal greeting for new Chinese business partner"
|
||||||
|
|
||||||
|
Response:
|
||||||
|
尊敬的 [Partner Name],
|
||||||
|
|
||||||
|
非常荣幸能与贵公司合作。期待我们之间建立长期互利的合作关系。
|
||||||
|
|
||||||
|
(Zūn jìng de [Partner Name],
|
||||||
|
Fēi cháng róng xìng néng yǔ guì gōng sī hé zuò. Qī dài wǒ men zhī jiān jiàn lì cháng qī hù lì de hé zuò guān xì.)
|
||||||
|
|
||||||
|
Dear [Partner Name],
|
||||||
|
It is a great honor to collaborate with your esteemed company. We look forward to establishing a long-term mutually beneficial partnership.
|
||||||
|
```
|
||||||
|
|
||||||
|
### Scenario 3: Casual Social Greeting
|
||||||
|
```
|
||||||
|
Request: "Fun greeting for team Slack channel"
|
||||||
|
|
||||||
|
Response:
|
||||||
|
Hey everyone! 👋
|
||||||
|
Hope you're all having an awesome day! ☀️
|
||||||
|
```
|
||||||
|
|
||||||
|
## Advanced Features
|
||||||
|
|
||||||
|
### Greeting Chains
|
||||||
|
Generate greeting sequences for multi-step interactions:
|
||||||
|
1. Initial greeting
|
||||||
|
2. Introduction
|
||||||
|
3. Purpose statement
|
||||||
|
4. Closing
|
||||||
|
|
||||||
|
### Cultural Adaptations
|
||||||
|
Automatically adapt greetings based on:
|
||||||
|
- Regional dialects
|
||||||
|
- Cultural holidays
|
||||||
|
- Business customs
|
||||||
|
- Social norms
|
||||||
|
|
||||||
|
### A/B Testing Support
|
||||||
|
Generate multiple greeting variations for testing effectiveness in different contexts.
|
||||||
360
skills/sayhello/reference/greetings.md
Normal file
360
skills/sayhello/reference/greetings.md
Normal file
@@ -0,0 +1,360 @@
|
|||||||
|
# Greeting Reference Guide
|
||||||
|
|
||||||
|
Complete reference for greetings across languages and cultures.
|
||||||
|
|
||||||
|
## Table of Contents
|
||||||
|
- [Supported Languages](#supported-languages)
|
||||||
|
- [Formality Levels](#formality-levels)
|
||||||
|
- [Time-Based Greetings](#time-based-greetings)
|
||||||
|
- [Cultural Contexts](#cultural-contexts)
|
||||||
|
- [Pronunciation Guide](#pronunciation-guide)
|
||||||
|
- [Common Phrases](#common-phrases)
|
||||||
|
|
||||||
|
## Supported Languages
|
||||||
|
|
||||||
|
### English
|
||||||
|
**Region:** Global, primarily US, UK, Australia, Canada
|
||||||
|
|
||||||
|
**Common Greetings:**
|
||||||
|
- Hello
|
||||||
|
- Hi
|
||||||
|
- Hey
|
||||||
|
- Good morning/afternoon/evening
|
||||||
|
- How are you?
|
||||||
|
- How's it going?
|
||||||
|
|
||||||
|
**Formality:**
|
||||||
|
- Formal: "Good day", "Greetings", "Dear Sir/Madam"
|
||||||
|
- Casual: "Hey", "What's up", "Howdy"
|
||||||
|
- Professional: "Good morning", "Hello [Name]"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 中文 (Chinese)
|
||||||
|
**Region:** China, Taiwan, Singapore
|
||||||
|
|
||||||
|
**Common Greetings:**
|
||||||
|
- 你好 (nǐ hǎo) - Hello [casual]
|
||||||
|
- 您好 (nín hǎo) - Hello [formal]
|
||||||
|
- 早上好 (zǎo shang hǎo) - Good morning
|
||||||
|
- 下午好 (xià wǔ hǎo) - Good afternoon
|
||||||
|
- 晚上好 (wǎn shang hǎo) - Good evening
|
||||||
|
- 晚安 (wǎn ān) - Good night
|
||||||
|
|
||||||
|
**Formality:**
|
||||||
|
- Formal: 尊敬的 (zūn jìng de) - Respected/Dear
|
||||||
|
- Casual: 嗨 (hāi), 哈喽 (hā lou)
|
||||||
|
- Professional: 您好 (nín hǎo)
|
||||||
|
|
||||||
|
**Cultural Notes:**
|
||||||
|
- Use 您 (nín) for elders and superiors
|
||||||
|
- Common to ask "吃了吗?" (Have you eaten?) as a greeting
|
||||||
|
- Handshakes are common in business settings
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 日本語 (Japanese)
|
||||||
|
**Region:** Japan
|
||||||
|
|
||||||
|
**Common Greetings:**
|
||||||
|
- おはようございます (ohayō gozaimasu) - Good morning [formal]
|
||||||
|
- こんにちは (konnichiwa) - Hello/Good afternoon
|
||||||
|
- こんばんは (konbanwa) - Good evening
|
||||||
|
- おやすみなさい (oyasuminasai) - Good night
|
||||||
|
- はじめまして (hajimemashite) - Nice to meet you
|
||||||
|
|
||||||
|
**Formality:**
|
||||||
|
- Formal: ございます (gozaimasu) ending
|
||||||
|
- Casual: おはよう (ohayō), やあ (yā)
|
||||||
|
- Professional: お疲れ様です (otsukaresama desu) - Thank you for your hard work
|
||||||
|
|
||||||
|
**Cultural Notes:**
|
||||||
|
- Bowing is standard when greeting
|
||||||
|
- Use さん (san) after names (honorific)
|
||||||
|
- Time-specific greetings are important
|
||||||
|
- Never use first names unless very close
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Español (Spanish)
|
||||||
|
**Region:** Spain, Latin America
|
||||||
|
|
||||||
|
**Common Greetings:**
|
||||||
|
- ¡Hola! (OH-lah) - Hello
|
||||||
|
- Buenos días (BWEH-nos DEE-ahs) - Good morning
|
||||||
|
- Buenas tardes (BWEH-nas TAR-des) - Good afternoon
|
||||||
|
- Buenas noches (BWEH-nas NOH-ches) - Good evening/night
|
||||||
|
- ¿Qué tal? (keh TAHL) - How's it going?
|
||||||
|
- ¿Cómo estás? (KOH-moh es-TAHS) - How are you?
|
||||||
|
|
||||||
|
**Formality:**
|
||||||
|
- Formal: Estimado/a (esteemed), Buenos días
|
||||||
|
- Casual: ¡Hola!, ¿Qué tal?, ¡Buenas!
|
||||||
|
- Professional: Buenos días, Don/Doña [Name]
|
||||||
|
|
||||||
|
**Cultural Notes:**
|
||||||
|
- Cheek kissing common in social settings (varies by region)
|
||||||
|
- Use "usted" for formal, "tú" for casual
|
||||||
|
- Handshakes common in business
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Français (French)
|
||||||
|
**Region:** France, Belgium, Canada (Quebec), Switzerland, parts of Africa
|
||||||
|
|
||||||
|
**Common Greetings:**
|
||||||
|
- Bonjour (bon-ZHOOR) - Hello/Good day
|
||||||
|
- Bonsoir (bon-SWAHR) - Good evening
|
||||||
|
- Salut (sa-LOO) - Hi [casual]
|
||||||
|
- Enchanté(e) (on-shon-TAY) - Pleased to meet you
|
||||||
|
- Ça va? (sa VAH) - How's it going?
|
||||||
|
|
||||||
|
**Formality:**
|
||||||
|
- Formal: Bonjour Madame/Monsieur, Enchanté(e)
|
||||||
|
- Casual: Salut, Coucou, Ça va?
|
||||||
|
- Professional: Bonjour, Madame/Monsieur [Last Name]
|
||||||
|
|
||||||
|
**Cultural Notes:**
|
||||||
|
- La bise (cheek kissing) common in France
|
||||||
|
- Use "vous" for formal, "tu" for casual
|
||||||
|
- Always say "Bonjour" before other conversation
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Deutsch (German)
|
||||||
|
**Region:** Germany, Austria, Switzerland
|
||||||
|
|
||||||
|
**Common Greetings:**
|
||||||
|
- Guten Morgen (GOO-ten MOR-gen) - Good morning
|
||||||
|
- Guten Tag (GOO-ten TAHK) - Good day
|
||||||
|
- Guten Abend (GOO-ten AH-bent) - Good evening
|
||||||
|
- Hallo (HAH-loh) - Hello
|
||||||
|
- Grüß Gott (GRUESS got) - Hello [Southern Germany/Austria]
|
||||||
|
|
||||||
|
**Formality:**
|
||||||
|
- Formal: Sehr geehrter Herr/Frau
|
||||||
|
- Casual: Hallo, Hi, Servus
|
||||||
|
- Professional: Guten Tag, Herr/Frau [Last Name]
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 한국어 (Korean)
|
||||||
|
**Region:** South Korea, North Korea
|
||||||
|
|
||||||
|
**Common Greetings:**
|
||||||
|
- 안녕하세요 (an-nyeong-ha-se-yo) - Hello [formal]
|
||||||
|
- 안녕 (an-nyeong) - Hi [casual]
|
||||||
|
- 좋은 아침입니다 (jo-eun a-chim-im-ni-da) - Good morning
|
||||||
|
- 처음 뵙겠습니다 (cheo-eum boep-get-seum-ni-da) - Nice to meet you
|
||||||
|
|
||||||
|
**Formality:**
|
||||||
|
- Formal: 하세요 (ha-se-yo) ending
|
||||||
|
- Casual: 안녕 (an-nyeong)
|
||||||
|
- Professional: 님 (nim) honorific
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Formality Levels
|
||||||
|
|
||||||
|
### Formal
|
||||||
|
**When to use:**
|
||||||
|
- First meetings with clients/superiors
|
||||||
|
- Official business correspondence
|
||||||
|
- Elderly people or authority figures
|
||||||
|
- Formal events and ceremonies
|
||||||
|
|
||||||
|
**Characteristics:**
|
||||||
|
- Complete sentences
|
||||||
|
- Titles and honorifics
|
||||||
|
- Respectful language
|
||||||
|
- Proper grammar
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- English: "Dear Mr. Smith, I hope this letter finds you well."
|
||||||
|
- Chinese: "尊敬的王先生" (Respected Mr. Wang)
|
||||||
|
- Japanese: "お世話になっております" (Thank you for your continued support)
|
||||||
|
|
||||||
|
### Casual
|
||||||
|
**When to use:**
|
||||||
|
- Friends and peers
|
||||||
|
- Informal social settings
|
||||||
|
- Family members
|
||||||
|
- Familiar colleagues
|
||||||
|
|
||||||
|
**Characteristics:**
|
||||||
|
- Shortened phrases
|
||||||
|
- Slang acceptable
|
||||||
|
- Relaxed tone
|
||||||
|
- First names
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- English: "Hey! What's up?"
|
||||||
|
- Chinese: "嗨!最近怎么样?" (Hi! How have you been lately?)
|
||||||
|
- Spanish: "¡Hola! ¿Qué tal?"
|
||||||
|
|
||||||
|
### Professional
|
||||||
|
**When to use:**
|
||||||
|
- Business meetings
|
||||||
|
- Email correspondence
|
||||||
|
- Networking events
|
||||||
|
- Office environment
|
||||||
|
|
||||||
|
**Characteristics:**
|
||||||
|
- Polite but not overly formal
|
||||||
|
- Respectful
|
||||||
|
- Clear and direct
|
||||||
|
- Appropriate for workplace
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
- English: "Good morning, Sarah"
|
||||||
|
- Chinese: "早上好,李经理" (Good morning, Manager Li)
|
||||||
|
- Japanese: "おはようございます、田中さん" (Good morning, Tanaka-san)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Time-Based Greetings
|
||||||
|
|
||||||
|
### Morning (5 AM - 12 PM)
|
||||||
|
- English: Good morning
|
||||||
|
- Chinese: 早上好 (zǎo shang hǎo)
|
||||||
|
- Japanese: おはようございます (ohayō gozaimasu)
|
||||||
|
- Spanish: Buenos días
|
||||||
|
- French: Bonjour
|
||||||
|
- German: Guten Morgen
|
||||||
|
|
||||||
|
### Afternoon (12 PM - 5 PM)
|
||||||
|
- English: Good afternoon
|
||||||
|
- Chinese: 下午好 (xià wǔ hǎo)
|
||||||
|
- Japanese: こんにちは (konnichiwa)
|
||||||
|
- Spanish: Buenas tardes
|
||||||
|
- French: Bon après-midi
|
||||||
|
- German: Guten Tag
|
||||||
|
|
||||||
|
### Evening (5 PM - 9 PM)
|
||||||
|
- English: Good evening
|
||||||
|
- Chinese: 晚上好 (wǎn shang hǎo)
|
||||||
|
- Japanese: こんばんは (konbanwa)
|
||||||
|
- Spanish: Buenas noches
|
||||||
|
- French: Bonsoir
|
||||||
|
- German: Guten Abend
|
||||||
|
|
||||||
|
### Night (9 PM - 5 AM)
|
||||||
|
- English: Good night
|
||||||
|
- Chinese: 晚安 (wǎn ān)
|
||||||
|
- Japanese: おやすみなさい (oyasuminasai)
|
||||||
|
- Spanish: Buenas noches
|
||||||
|
- French: Bonne nuit
|
||||||
|
- German: Gute Nacht
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Cultural Contexts
|
||||||
|
|
||||||
|
### Business Meetings
|
||||||
|
**Best Practices:**
|
||||||
|
- Arrive on time (or early in some cultures)
|
||||||
|
- Use formal greetings initially
|
||||||
|
- Business cards exchange (especially in Asia)
|
||||||
|
- Firm handshake (Western cultures)
|
||||||
|
- Bow (Japan, Korea)
|
||||||
|
- Research cultural norms beforehand
|
||||||
|
|
||||||
|
**Sample Greetings:**
|
||||||
|
- "Good morning, thank you for taking the time to meet with me."
|
||||||
|
- "您好,很高兴见到您。" (Hello, pleased to meet you.)
|
||||||
|
- "おはようございます。本日はお時間をいただきありがとうございます。"
|
||||||
|
|
||||||
|
### Email Communication
|
||||||
|
**Structure:**
|
||||||
|
1. Greeting
|
||||||
|
2. Brief pleasantry (optional)
|
||||||
|
3. Purpose
|
||||||
|
4. Closing
|
||||||
|
|
||||||
|
**Examples:**
|
||||||
|
```
|
||||||
|
Dear [Name],
|
||||||
|
|
||||||
|
I hope this email finds you well.
|
||||||
|
|
||||||
|
I am writing to discuss...
|
||||||
|
|
||||||
|
Best regards,
|
||||||
|
[Your Name]
|
||||||
|
```
|
||||||
|
|
||||||
|
### Social Events
|
||||||
|
**Characteristics:**
|
||||||
|
- Warmer, more personal
|
||||||
|
- Small talk encouraged
|
||||||
|
- Smile and eye contact
|
||||||
|
- Appropriate physical contact (culture-dependent)
|
||||||
|
|
||||||
|
### Cultural Holidays
|
||||||
|
- Chinese New Year: 新年快乐!恭喜发财!
|
||||||
|
- Ramadan: Ramadan Kareem / رمضان كريم
|
||||||
|
- Christmas: Merry Christmas / Joyeux Noël
|
||||||
|
- Diwali: Happy Diwali / दिवाली की शुभकामनाएं
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Pronunciation Guide
|
||||||
|
|
||||||
|
### Pinyin (Chinese)
|
||||||
|
- ā, á, ǎ, à - Different tones (flat, rising, falling-rising, falling)
|
||||||
|
- zh - like 'j' in "jump"
|
||||||
|
- x - like 'sh' in "she"
|
||||||
|
- q - like 'ch' in "cheer"
|
||||||
|
|
||||||
|
### Romanization (Japanese)
|
||||||
|
- Vowels: a(ah), i(ee), u(oo), e(eh), o(oh)
|
||||||
|
- Long vowels indicated by macron: ō, ū
|
||||||
|
- Double consonants indicate pause
|
||||||
|
|
||||||
|
### Spanish
|
||||||
|
- j - like 'h' in "hot"
|
||||||
|
- ll - like 'y' in "yes"
|
||||||
|
- ñ - like 'ny' in "canyon"
|
||||||
|
- r - rolled r sound
|
||||||
|
- rr - strongly rolled r
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Common Phrases
|
||||||
|
|
||||||
|
### Introducing Yourself
|
||||||
|
- English: "Nice to meet you. My name is..."
|
||||||
|
- Chinese: "很高兴认识您。我叫..." (hěn gāo xìng rèn shi nín. wǒ jiào...)
|
||||||
|
- Japanese: "はじめまして。[Name]と申します。" (hajimemashite. [Name] to mōshimasu.)
|
||||||
|
- Spanish: "Mucho gusto. Me llamo..."
|
||||||
|
|
||||||
|
### Asking How Someone Is
|
||||||
|
- English: "How are you?"
|
||||||
|
- Chinese: "你好吗?" (nǐ hǎo ma?)
|
||||||
|
- Japanese: "お元気ですか?" (o-genki desu ka?)
|
||||||
|
- Spanish: "¿Cómo está?"
|
||||||
|
|
||||||
|
### Responding
|
||||||
|
- English: "I'm well, thank you"
|
||||||
|
- Chinese: "我很好,谢谢" (wǒ hěn hǎo, xiè xie)
|
||||||
|
- Japanese: "元気です、ありがとうございます" (genki desu, arigatō gozaimasu)
|
||||||
|
- Spanish: "Estoy bien, gracias"
|
||||||
|
|
||||||
|
### Goodbye
|
||||||
|
- English: "Goodbye", "See you later"
|
||||||
|
- Chinese: "再见" (zài jiàn), "回头见" (huí tóu jiàn)
|
||||||
|
- Japanese: "さようなら" (sayōnara), "また後で" (mata ato de)
|
||||||
|
- Spanish: "Adiós", "Hasta luego"
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Best Practices
|
||||||
|
|
||||||
|
1. **Research Cultural Norms:** Always research greeting customs before international interactions
|
||||||
|
2. **Mirror Formality:** Match the formality level of the person you're greeting
|
||||||
|
3. **Use Names Appropriately:** Some cultures use first names, others use titles and last names
|
||||||
|
4. **Be Time-Aware:** Use appropriate greetings for time of day
|
||||||
|
5. **Respect Personal Space:** Physical contact varies widely across cultures
|
||||||
|
6. **Learn Pronunciation:** Make an effort to pronounce names and greetings correctly
|
||||||
|
7. **Smile:** Generally universal and well-received
|
||||||
|
8. **Follow Their Lead:** When unsure, follow the lead of locals or hosts
|
||||||
321
skills/sayhello/scripts/greet.py
Executable file
321
skills/sayhello/scripts/greet.py
Executable file
@@ -0,0 +1,321 @@
|
|||||||
|
#!/usr/bin/env python3
|
||||||
|
"""
|
||||||
|
Greeting Generator Script
|
||||||
|
|
||||||
|
Generate contextual greetings in multiple languages and styles.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
python greet.py --language chinese --style formal
|
||||||
|
python greet.py --style casual --time morning
|
||||||
|
python greet.py --language spanish --context business
|
||||||
|
"""
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import sys
|
||||||
|
from datetime import datetime
|
||||||
|
from typing import Dict, List, Tuple
|
||||||
|
|
||||||
|
|
||||||
|
class GreetingGenerator:
|
||||||
|
"""Generate greetings based on language, style, context, and time."""
|
||||||
|
|
||||||
|
GREETINGS: Dict[str, Dict[str, List[str]]] = {
|
||||||
|
"english": {
|
||||||
|
"formal": [
|
||||||
|
"Good day",
|
||||||
|
"Greetings",
|
||||||
|
"I hope this message finds you well"
|
||||||
|
],
|
||||||
|
"casual": [
|
||||||
|
"Hey",
|
||||||
|
"Hi there",
|
||||||
|
"Hello",
|
||||||
|
"What's up"
|
||||||
|
],
|
||||||
|
"professional": [
|
||||||
|
"Good morning/afternoon",
|
||||||
|
"Hello",
|
||||||
|
"Dear [Name]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"chinese": {
|
||||||
|
"formal": [
|
||||||
|
"您好 (nín hǎo)",
|
||||||
|
"尊敬的 [Name] (zūn jìng de)",
|
||||||
|
"很高兴见到您 (hěn gāo xìng jiàn dào nín)"
|
||||||
|
],
|
||||||
|
"casual": [
|
||||||
|
"你好 (nǐ hǎo)",
|
||||||
|
"嗨 (hāi)",
|
||||||
|
"哈喽 (hā lou)"
|
||||||
|
],
|
||||||
|
"professional": [
|
||||||
|
"您好 (nín hǎo)",
|
||||||
|
"早上好 (zǎo shang hǎo)",
|
||||||
|
"下午好 (xià wǔ hǎo)"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"spanish": {
|
||||||
|
"formal": [
|
||||||
|
"Buenos días (bweh-nos DEE-ahs)",
|
||||||
|
"Estimado/a [Name]",
|
||||||
|
"Es un placer conocerle"
|
||||||
|
],
|
||||||
|
"casual": [
|
||||||
|
"¡Hola! (OH-lah)",
|
||||||
|
"¿Qué tal?",
|
||||||
|
"¡Buenas!"
|
||||||
|
],
|
||||||
|
"professional": [
|
||||||
|
"Buenos días",
|
||||||
|
"Buenas tardes",
|
||||||
|
"Hola, [Name]"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"japanese": {
|
||||||
|
"formal": [
|
||||||
|
"おはようございます (ohayō gozaimasu)",
|
||||||
|
"こんにちは (konnichiwa)",
|
||||||
|
"お会いできて光栄です (o-ai dekite kōei desu)"
|
||||||
|
],
|
||||||
|
"casual": [
|
||||||
|
"やあ (yā)",
|
||||||
|
"おっす (ossu)",
|
||||||
|
"こんちは (konchiwa)"
|
||||||
|
],
|
||||||
|
"professional": [
|
||||||
|
"おはようございます (ohayō gozaimasu)",
|
||||||
|
"こんにちは (konnichiwa)",
|
||||||
|
"[Name]さん、お疲れ様です"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"french": {
|
||||||
|
"formal": [
|
||||||
|
"Bonjour (bon-ZHOOR)",
|
||||||
|
"Enchanté(e)",
|
||||||
|
"Ravi(e) de vous rencontrer"
|
||||||
|
],
|
||||||
|
"casual": [
|
||||||
|
"Salut (sa-LOO)",
|
||||||
|
"Coucou",
|
||||||
|
"Ça va?"
|
||||||
|
],
|
||||||
|
"professional": [
|
||||||
|
"Bonjour",
|
||||||
|
"Bonsoir",
|
||||||
|
"Madame/Monsieur [Name]"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
TIME_GREETINGS: Dict[str, Dict[str, str]] = {
|
||||||
|
"morning": {
|
||||||
|
"english": "Good morning",
|
||||||
|
"chinese": "早上好 (zǎo shang hǎo)",
|
||||||
|
"spanish": "Buenos días",
|
||||||
|
"japanese": "おはようございます (ohayō gozaimasu)",
|
||||||
|
"french": "Bonjour"
|
||||||
|
},
|
||||||
|
"afternoon": {
|
||||||
|
"english": "Good afternoon",
|
||||||
|
"chinese": "下午好 (xià wǔ hǎo)",
|
||||||
|
"spanish": "Buenas tardes",
|
||||||
|
"japanese": "こんにちは (konnichiwa)",
|
||||||
|
"french": "Bon après-midi"
|
||||||
|
},
|
||||||
|
"evening": {
|
||||||
|
"english": "Good evening",
|
||||||
|
"chinese": "晚上好 (wǎn shang hǎo)",
|
||||||
|
"spanish": "Buenas noches",
|
||||||
|
"japanese": "こんばんは (konbanwa)",
|
||||||
|
"french": "Bonsoir"
|
||||||
|
},
|
||||||
|
"night": {
|
||||||
|
"english": "Good night",
|
||||||
|
"chinese": "晚安 (wǎn ān)",
|
||||||
|
"spanish": "Buenas noches",
|
||||||
|
"japanese": "おやすみなさい (oyasuminasai)",
|
||||||
|
"french": "Bonne nuit"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
CONTEXT_TEMPLATES: Dict[str, str] = {
|
||||||
|
"business": """Dear [Name],
|
||||||
|
|
||||||
|
{greeting}
|
||||||
|
|
||||||
|
I hope this message finds you well. I am reaching out to discuss...
|
||||||
|
|
||||||
|
Best regards,
|
||||||
|
[Your Name]""",
|
||||||
|
|
||||||
|
"email": """Hello [Name],
|
||||||
|
|
||||||
|
{greeting}
|
||||||
|
|
||||||
|
I wanted to reach out regarding...
|
||||||
|
|
||||||
|
Kind regards,
|
||||||
|
[Your Name]""",
|
||||||
|
|
||||||
|
"social": """{greeting}
|
||||||
|
|
||||||
|
Great to connect with you!
|
||||||
|
|
||||||
|
Cheers,
|
||||||
|
[Your Name]""",
|
||||||
|
|
||||||
|
"meeting": """{greeting}
|
||||||
|
|
||||||
|
Thank you for taking the time to meet with me today.
|
||||||
|
|
||||||
|
Looking forward to our discussion.
|
||||||
|
|
||||||
|
Best,
|
||||||
|
[Your Name]"""
|
||||||
|
}
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.current_hour = datetime.now().hour
|
||||||
|
|
||||||
|
def get_auto_time(self) -> str:
|
||||||
|
"""Automatically determine time of day based on current hour."""
|
||||||
|
if 5 <= self.current_hour < 12:
|
||||||
|
return "morning"
|
||||||
|
elif 12 <= self.current_hour < 17:
|
||||||
|
return "afternoon"
|
||||||
|
elif 17 <= self.current_hour < 21:
|
||||||
|
return "evening"
|
||||||
|
else:
|
||||||
|
return "night"
|
||||||
|
|
||||||
|
def generate(
|
||||||
|
self,
|
||||||
|
language: str = "english",
|
||||||
|
style: str = "casual",
|
||||||
|
context: str = None,
|
||||||
|
time: str = None
|
||||||
|
) -> str:
|
||||||
|
"""
|
||||||
|
Generate a greeting based on parameters.
|
||||||
|
|
||||||
|
Args:
|
||||||
|
language: Target language
|
||||||
|
style: Formality level (formal/casual/professional)
|
||||||
|
context: Specific context (business/email/social/meeting)
|
||||||
|
time: Time of day (morning/afternoon/evening/night)
|
||||||
|
|
||||||
|
Returns:
|
||||||
|
Generated greeting string
|
||||||
|
"""
|
||||||
|
language = language.lower()
|
||||||
|
style = style.lower()
|
||||||
|
|
||||||
|
# Validate inputs
|
||||||
|
if language not in self.GREETINGS:
|
||||||
|
available = ", ".join(self.GREETINGS.keys())
|
||||||
|
return f"Error: Language '{language}' not supported. Available: {available}"
|
||||||
|
|
||||||
|
if style not in self.GREETINGS[language]:
|
||||||
|
available = ", ".join(self.GREETINGS[language].keys())
|
||||||
|
return f"Error: Style '{style}' not available. Available: {available}"
|
||||||
|
|
||||||
|
# Generate greeting based on time if specified
|
||||||
|
if time:
|
||||||
|
time = time.lower()
|
||||||
|
if time in self.TIME_GREETINGS:
|
||||||
|
greeting = self.TIME_GREETINGS[time].get(language, "Hello")
|
||||||
|
else:
|
||||||
|
greeting = self.GREETINGS[language][style][0]
|
||||||
|
else:
|
||||||
|
# Use first greeting from the style list
|
||||||
|
greeting = self.GREETINGS[language][style][0]
|
||||||
|
|
||||||
|
# Apply context template if specified
|
||||||
|
if context and context.lower() in self.CONTEXT_TEMPLATES:
|
||||||
|
template = self.CONTEXT_TEMPLATES[context.lower()]
|
||||||
|
return template.format(greeting=greeting)
|
||||||
|
|
||||||
|
return greeting
|
||||||
|
|
||||||
|
def list_options(self) -> str:
|
||||||
|
"""List all available languages, styles, and contexts."""
|
||||||
|
output = []
|
||||||
|
output.append("Available Languages:")
|
||||||
|
for lang in self.GREETINGS.keys():
|
||||||
|
output.append(f" - {lang}")
|
||||||
|
|
||||||
|
output.append("\nAvailable Styles:")
|
||||||
|
output.append(" - formal")
|
||||||
|
output.append(" - casual")
|
||||||
|
output.append(" - professional")
|
||||||
|
|
||||||
|
output.append("\nAvailable Contexts:")
|
||||||
|
for ctx in self.CONTEXT_TEMPLATES.keys():
|
||||||
|
output.append(f" - {ctx}")
|
||||||
|
|
||||||
|
output.append("\nAvailable Times:")
|
||||||
|
for t in self.TIME_GREETINGS.keys():
|
||||||
|
output.append(f" - {t}")
|
||||||
|
|
||||||
|
return "\n".join(output)
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(
|
||||||
|
description="Generate contextual greetings in multiple languages",
|
||||||
|
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||||
|
epilog="""
|
||||||
|
Examples:
|
||||||
|
python greet.py --language chinese --style formal
|
||||||
|
python greet.py --style casual --time morning
|
||||||
|
python greet.py --language spanish --context business
|
||||||
|
python greet.py --list
|
||||||
|
"""
|
||||||
|
)
|
||||||
|
|
||||||
|
parser.add_argument(
|
||||||
|
"--language",
|
||||||
|
default="english",
|
||||||
|
help="Target language (default: english)"
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--style",
|
||||||
|
default="casual",
|
||||||
|
help="Formality level: formal, casual, professional (default: casual)"
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--context",
|
||||||
|
help="Specific context: business, email, social, meeting"
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--time",
|
||||||
|
help="Time of day: morning, afternoon, evening, night"
|
||||||
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
"--list",
|
||||||
|
action="store_true",
|
||||||
|
help="List all available options"
|
||||||
|
)
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
generator = GreetingGenerator()
|
||||||
|
|
||||||
|
if args.list:
|
||||||
|
print(generator.list_options())
|
||||||
|
return 0
|
||||||
|
|
||||||
|
greeting = generator.generate(
|
||||||
|
language=args.language,
|
||||||
|
style=args.style,
|
||||||
|
context=args.context,
|
||||||
|
time=args.time
|
||||||
|
)
|
||||||
|
|
||||||
|
print(greeting)
|
||||||
|
return 0
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
sys.exit(main())
|
||||||
Reference in New Issue
Block a user