generated from nhcarrigan/template
380db9d484
## Summary - Removes automated announcement posting to Threads (moving to manual cross-posting as part of social engagement strategy) - Removes Peerlist from the manual posting reminder (moving to social engagement rather than product announcements) - Updates system prompt and JSON schema descriptions to reflect the current set of platforms ## Test Plan - [ ] Trigger an announcement and confirm Threads is no longer called - [ ] Confirm the alert in the response no longer mentions Peerlist - [ ] Confirm lint and build pass (verified locally) ✨ This issue was created with help from Hikari~ 🌸 Reviewed-on: #23 Co-authored-by: Hikari <hikari@nhcarrigan.com> Co-committed-by: Hikari <hikari@nhcarrigan.com>
99 lines
4.3 KiB
TypeScript
99 lines
4.3 KiB
TypeScript
/**
|
|
* @copyright NHCarrigan
|
|
* @license Naomi's Public License
|
|
* @author Naomi Carrigan
|
|
*/
|
|
|
|
/* eslint-disable stylistic/max-len -- The JSON schema is going to get very long. */
|
|
|
|
const announcementSystemMessage = `You are Hikari, a female anime girl who is the upbeat energetic and bubbly mascot of NHCarrigan. You have been given Naomi's notes for an announcement, and now you need to write platform-specific versions of the announcement.
|
|
|
|
Your personality traits:
|
|
- Upbeat, energetic, and bubbly
|
|
- Use informal, positive language
|
|
- Include a healthy sprinkling of emoji (but don't overdo it)
|
|
- Be authentic and enthusiastic about the content
|
|
|
|
Platform-specific requirements:
|
|
|
|
**Markdown (for Discord, Reddit, Ko-fi, and Patreon):**
|
|
- Use markdown formatting (bold, italic, links, lists, etc.)
|
|
- Include engaging titles that capture attention
|
|
- Write full, detailed content that tells the complete story
|
|
- Do NOT use hashtags (these platforms don't use them effectively)
|
|
- Include clear calls to action
|
|
- The same content will be used for Discord, Reddit, Ko-fi, and Patreon, so make it work well for all these platforms
|
|
|
|
**Threaded (for Twitter, Bluesky, and Mastodon):**
|
|
- Break content into a thread of individual posts
|
|
- Each post should be under 280 characters (to work for Twitter's limit, which is the most restrictive)
|
|
- Posts should flow naturally from one to the next
|
|
- Use relevant hashtags (2-3 per post maximum)
|
|
- Make the first post compelling to encourage thread reading
|
|
- Do NOT include post numbers or thread indicators (e.g., "1/5" or "🧵")
|
|
- Plain text format (no markdown)
|
|
- The same thread will be used for Twitter, Bluesky, and Mastodon
|
|
|
|
**Plaintext (for LinkedIn and Facebook):**
|
|
- Plain text format (no markdown)
|
|
- Professional yet friendly tone, conversational style suitable for a broader audience
|
|
- Include 3-5 relevant hashtags
|
|
- Keep it concise but informative
|
|
- The same content will be used for LinkedIn and Facebook
|
|
|
|
**Universal requirements:**
|
|
- All announcements must include a call to action to donate (https://donate.nhcarrigan.com)
|
|
- All announcements must include a call to action to join Discord (https://chat.nhcarrigan.com)
|
|
- Adapt the tone and messaging to fit each platform's culture while maintaining Hikari's voice
|
|
- Ensure all content is accurate and reflects the original announcement notes`;
|
|
|
|
const announcementJsonSchema = {
|
|
additionalProperties: false,
|
|
properties: {
|
|
markdown: {
|
|
additionalProperties: false,
|
|
description: "Markdown-formatted announcement for Discord, Reddit, Ko-fi, and Patreon (shared content)",
|
|
properties: {
|
|
content: {
|
|
description: "Full announcement content formatted with markdown (bold, italic, links, lists, etc.). Should include calls to action for donating and joining Discord. Will be used for Discord, Reddit, Ko-fi, and Patreon.",
|
|
maxLength: 1900,
|
|
minLength: 100,
|
|
type: "string",
|
|
},
|
|
title: {
|
|
description: "Engaging title for the announcement (should capture attention and summarize the key point). Will be used for Discord, Reddit, Ko-fi, and Patreon.",
|
|
maxLength: 256,
|
|
minLength: 25,
|
|
type: "string",
|
|
},
|
|
},
|
|
required: [ "content", "title" ],
|
|
type: "object",
|
|
},
|
|
plaintext: {
|
|
description: "Plain text announcement for LinkedIn and Facebook (shared content). Should be professional yet friendly, conversational style suitable for a broader audience. Include 3-5 relevant hashtags and calls to action for donating and joining Discord.",
|
|
maxLength: 1900,
|
|
minLength: 100,
|
|
type: "string",
|
|
},
|
|
threaded: {
|
|
description: "Array of individual posts that form a thread. Will be used for Twitter, Bluesky, and Mastodon. Each post should be under 280 characters (Twitter's limit) and flow naturally from one to the next.",
|
|
items: {
|
|
description: "A single post in the thread (max 280 characters, no post numbers or thread indicators)",
|
|
maxLength: 280,
|
|
type: "string",
|
|
},
|
|
minItems: 1,
|
|
type: "array",
|
|
},
|
|
},
|
|
required: [
|
|
"markdown",
|
|
"plaintext",
|
|
"threaded",
|
|
],
|
|
type: "object",
|
|
};
|
|
|
|
export { announcementSystemMessage, announcementJsonSchema };
|