ID Generator Skill
Expert at generating meaningful session IDs based on content source type and characteristics.
What This Skill Does
- Reads ContentSummary JSON with detectedSource field
- Analyzes source type and main topic/theme
- Generates human-readable, meaningful session ID
- Returns ID with confidence score and rationale
- Enables reusable content identification
ID Generation Process
Follow these 5 steps:
Step 1: Validate Input
- Confirm ContentSummary has required fields
- Check if detectedSource field exists
- Note the content's main topic/headline/category
Step 2: Analyze Source Type
- Review detectedSource value (podcast, transcript, article, youtube, twitter, text, other)
- Consider content characteristics:
- Podcast: Audio transcript with timestamps, speaker markers, conversational flow
- Transcript: Conversational content, dialogue, timestamps, multiple speakers
- Article: Written structure, sections, headlines, formal tone
- YouTube: Video description, channel info, timestamps
- Twitter: Social media context, short-form, engagement metrics
- Text: Unstructured thoughts, raw content, raw notes
- Other: Any other content type
Step 3: Extract Topic Keywords
- Identify main topic from headline, category, or keyThemes
- Select 1-2 most significant keywords
- Avoid generic terms, prefer specific subject matter
- Examples: "healthcare", "ai", "python", "productivity"
Step 4: Generate Base ID
- Format:
{source-type}-{date}-{topic}
- Source prefix from detectedSource (lowercase)
- Date in YYYY-MM-DD format
- Topic as 1-2 words (hyphen-separated, lowercase)
- Example:
podcast-2024-12-08-ai-healthcare
Step 5: Quality Check & Return
- Ensure ID is lowercase, hyphen-separated
- Validate length (20-50 characters preferred)
- Return JSON with:
contentId: Generated ID
detectedSource: Confirmed source type
sourceConfidence: 0.0-1.0 confidence in source detection
rationale: Brief explanation of why this source type
ID Generation Rules
Source-Based Naming
- Podcast:
podcast-{date}-{topic}
- Transcript:
transcript-{date}-{topic}
- Article:
article-{date}-{topic}
- YouTube:
youtube-{date}-{topic}
- Twitter:
tweet-{date}-{topic}
- Text:
text-{date}-{topic}
- Other:
content-{date}-{topic}
Topic Selection
- Extract from headline (first 2-3 words)
- If headline too generic, use category or first keyTheme
- Avoid articles (a, the, and, or)
- Use only letters, numbers, hyphens
- Maximum 3 words
Date Handling
- Use current date in YYYY-MM-DD format
- Or extract from context field if content has original date
- Format consistently
Examples
Input: Podcast about AI in Healthcare (2024-12-08)
Output: podcast-2024-12-08-ai-healthcare
Input: Whisper transcript of React conference talk (2024-12-07)
Output: transcript-2024-12-07-react-conference
Input: Article on productivity hacks (2024-12-06)
Output: article-2024-12-06-productivity-hacks
Input: YouTube tutorial on Python (2024-12-05)
Output: youtube-2024-12-05-python-tutorial
Output Format
Return structured JSON:
{
"contentId": "podcast-2024-12-08-ai-healthcare",
"detectedSource": "podcast",
"sourceConfidence": 0.95,
"rationale": "Audio transcript with speaker markers, timestamps, and conversational flow indicates podcast source."
}
Important Rules
- Always return valid JSON
- Confidence score reflects certainty in source detection (0.5-1.0 typical range)
- Rationale should be brief (1-2 sentences)
- ID must be unique and reusable
- Never include spaces or special characters (except hyphens)
- Generate ID even if source confidence is moderate (>0.5)
- Prefer readable IDs over random strings
- Keep ID length under 60 characters when possible
1---2name: id-generator3description: Generate intelligent session IDs based on detected content source type. Analyzes ContentSummary and creates meaningful IDs (podcast-xyz, transcript-abc, etc.).4---5
6# ID Generator Skill
7
8Expert at generating meaningful session IDs based on content source type and characteristics.
9
10## What This Skill Does
11
12- Reads ContentSummary JSON with detectedSource field
13- Analyzes source type and main topic/theme
14- Generates human-readable, meaningful session ID
15- Returns ID with confidence score and rationale
16- Enables reusable content identification
17
18## ID Generation Process
19
20Follow these 5 steps:
21
22### Step 1: Validate Input
23- Confirm ContentSummary has required fields
24- Check if detectedSource field exists
25- Note the content's main topic/headline/category
26
27### Step 2: Analyze Source Type
28- Review detectedSource value (podcast, transcript, article, youtube, twitter, text, other)
29- Consider content characteristics:
30 - **Podcast**: Audio transcript with timestamps, speaker markers, conversational flow
31 - **Transcript**: Conversational content, dialogue, timestamps, multiple speakers
32 - **Article**: Written structure, sections, headlines, formal tone
33 - **YouTube**: Video description, channel info, timestamps
34 - **Twitter**: Social media context, short-form, engagement metrics
35 - **Text**: Unstructured thoughts, raw content, raw notes
36 - **Other**: Any other content type
37
38### Step 3: Extract Topic Keywords
39- Identify main topic from headline, category, or keyThemes
40- Select 1-2 most significant keywords
41- Avoid generic terms, prefer specific subject matter
42- Examples: "healthcare", "ai", "python", "productivity"
43
44### Step 4: Generate Base ID
45- Format: `{source-type}-{date}-{topic}`
46- Source prefix from detectedSource (lowercase)
47- Date in YYYY-MM-DD format
48- Topic as 1-2 words (hyphen-separated, lowercase)
49- Example: `podcast-2024-12-08-ai-healthcare`
50
51### Step 5: Quality Check & Return
52- Ensure ID is lowercase, hyphen-separated
53- Validate length (20-50 characters preferred)
54- Return JSON with:
55 - `contentId`: Generated ID
56 - `detectedSource`: Confirmed source type
57 - `sourceConfidence`: 0.0-1.0 confidence in source detection
58 - `rationale`: Brief explanation of why this source type
59
60## ID Generation Rules
61
62### Source-Based Naming
63- **Podcast**: `podcast-{date}-{topic}`
64- **Transcript**: `transcript-{date}-{topic}`
65- **Article**: `article-{date}-{topic}`
66- **YouTube**: `youtube-{date}-{topic}`
67- **Twitter**: `tweet-{date}-{topic}`
68- **Text**: `text-{date}-{topic}`
69- **Other**: `content-{date}-{topic}`
70
71### Topic Selection
72- Extract from headline (first 2-3 words)
73- If headline too generic, use category or first keyTheme
74- Avoid articles (a, the, and, or)
75- Use only letters, numbers, hyphens
76- Maximum 3 words
77
78### Date Handling
79- Use current date in YYYY-MM-DD format
80- Or extract from context field if content has original date
81- Format consistently
82
83### Examples
84```
85Input: Podcast about AI in Healthcare (2024-12-08)
86Output: podcast-2024-12-08-ai-healthcare
87
88Input: Whisper transcript of React conference talk (2024-12-07)
89Output: transcript-2024-12-07-react-conference
90
91Input: Article on productivity hacks (2024-12-06)
92Output: article-2024-12-06-productivity-hacks
93
94Input: YouTube tutorial on Python (2024-12-05)
95Output: youtube-2024-12-05-python-tutorial
96```
97
98## Output Format
99
100Return structured JSON:
101```json
102{
103 "contentId": "podcast-2024-12-08-ai-healthcare",
104 "detectedSource": "podcast",
105 "sourceConfidence": 0.95,
106 "rationale": "Audio transcript with speaker markers, timestamps, and conversational flow indicates podcast source."
107}
108```
109
110## Important Rules
111
112- Always return valid JSON
113- Confidence score reflects certainty in source detection (0.5-1.0 typical range)
114- Rationale should be brief (1-2 sentences)
115- ID must be unique and reusable
116- Never include spaces or special characters (except hyphens)
117- Generate ID even if source confidence is moderate (>0.5)
118- Prefer readable IDs over random strings
119- Keep ID length under 60 characters when possible