feat: various docs updates

This commit is contained in:
Naomi Carrigan 2025-01-22 20:54:06 -08:00
parent b8650dfa73
commit 40808b6dfe
Signed by: naomi
SSH Key Fingerprint: SHA256:rca1iUI2OhAM6n4FIUaFcZcicmri0jgocqKiTTAfrt8
10 changed files with 177 additions and 1473 deletions

View File

@ -4,112 +4,112 @@ export const navigation = [
items: [
{
label: "Mission Statement",
link: "/about/mission"
link: "/about/mission",
},
{
label: "Sustainability",
link: "/about/sustainability"
link: "/about/sustainability",
},
{
label: "Hire us!",
link: "/about/hire"
link: "/about/hire",
},
{
label: "Support Our Work 💜",
link: "/about/donate"
link: "/about/donate",
},
{
label: "Contact",
link: "/about/contact"
link: "/about/contact",
},
{
label: "Mentorship",
link: "/about/mentorship"
}
]
link: "/about/mentorship",
},
],
},
{
label: "Legal Information",
items: [
{
label: "Terms of Service",
link: "/legal/terms"
link: "/legal/terms",
},
{
label: "Privacy Policy",
link: "/legal/privacy"
link: "/legal/privacy",
},
{
label: "Software License",
link: "/legal/license"
link: "/legal/license",
},
{
label: "Security Policy",
link: "/legal/security"
link: "/legal/security",
},
{
label: "DMCA and Copyright",
link: "/legal/dmca"
link: "/legal/dmca",
},
{
label: "Subprocessors List",
link: "/legal/subprocessors"
link: "/legal/subprocessors",
},
{
label: "Government Actions",
link: "/legal/government"
}
]
link: "/legal/government",
},
],
},
{
label: "Community Policies",
items: [
{
label: "Code of Conduct",
link: "/community/coc"
link: "/community/coc",
},
{
label: "Community Guidelines",
link: "/community/guide"
link: "/community/guide",
},
{
label: "Appeal a Sanction",
link: "/community/appeal"
}
]
link: "/community/appeal",
},
],
},
{
label: "Development Documentation",
items: [
{
label: "Contributing Guide",
link: "/dev/contributing"
link: "/dev/contributing",
},
{
label: "Contributor Covenant",
link: "/dev/covenant"
link: "/dev/covenant",
},
{
label: "Style Guide",
link: "/dev/style"
link: "/dev/style",
},
{
label: "Issue/PR Labels",
link: "/dev/labels"
link: "/dev/labels",
},
{
label: "Development Environment",
link: "/dev/environment"
link: "/dev/environment",
},
{
label: "Server Setup",
link: "/dev/servers"
link: "/dev/servers",
},
{
label: "VTubing Setup",
link: "/dev/vtubing"
}
]
link: "/dev/vtubing",
},
],
},
{
label: "Project Documentation",
@ -117,41 +117,21 @@ export const navigation = [
{
label: "ESLint Config",
link: "/projects/eslint-config",
badge: { text: "v5.1.0", variant: "tip"}
badge: { text: "v5.1.0", variant: "tip" },
},
{
label: "Task Bot",
link: "/projects/task-bot",
badge: { text: "v1.0.0", variant: "tip"}
},
{
label: "Translation Bot",
link: "/projects/translation-bot",
badge: { text: "v1.0.0", variant: "tip"}
},
{
label: "NaomiAI",
link: "/projects/naomiai",
badge: { text: "v1.0.0", variant: "tip"}
},
{
label: "AltGenerator",
link: "/projects/alt-gen",
badge: { text: "v1.0.0", variant: "tip"}
}
].sort((a, b) => a.label.localeCompare(b.label))
].sort((a, b) => a.label.localeCompare(b.label)),
},
{
label: "Staff Guidelines",
items: [
{
label: "Staff Handbook",
link: "/staff/handbook"
link: "/staff/handbook",
},
{
label: "Join our Team",
link: "/staff/apply"
}
]
}
]
link: "/staff/apply",
},
],
},
];

View File

@ -6,17 +6,12 @@ title: Contact Policy
### 1.1 Public Support Channels
:::tip
We have a ticket system within our Discord server which allows for private communication with the staff team.
This is considered a public support platform and is not billed!
:::
We offer FREE support through several PUBLIC channels, including:
- Community Forums
- Public GitHub Issues
- Open Discord Servers
- Social Media Platforms
- Public Repository Issues
- Open IRC Channels
- Custom Fediverse Instance
These channels are ideal for:
@ -49,117 +44,77 @@ Our platforms offer various ways to engage with our projects and community:
Below, you'll find a comprehensive list of our official communication platforms. Each platform serves specific purposes and caters to different types of interactions. Please choose the most appropriate channel for your needs to ensure the fastest and most effective response.
## 2. Account Verification
### 1.5 Contact Form
### 2.1 List of Verified Accounts
We offer a [contact form](https://forms.nhcarrigan.com/contact) for direct, low-prioirity communication requests.
We maintain a comprehensive list of all our verified accounts across different platforms. This list is regularly updated to reflect any changes or additions to our official online presence.
It is often faster to reach out through one of the above platforms, and best to consider this contact form as a backup in the event of a severe outage.
- View our verified accounts: https://cdn.nhcarrigan.com/socials.txt
## 2. Communication Platforms
### 2.2 GPG Key for Verification
### 2.1 IRC
To ensure the integrity of our verified accounts list, we use GPG (GNU Privacy Guard) encryption. You can download our public GPG key to verify the authenticity of the list.
Our custom IRC network allows for real-time communication with your fellow community members.
- Download our GPG key: https://cdn.nhcarrigan.com/key.pgp
:::note
We do not have an IRC bouncer. The only people who will see your messages are the ones who are online when it is sent.
:::
### 2.3 Verification Process
Follow these steps to verify the integrity of our verified accounts list:
- Download both the verified accounts list and our GPG key from the links provided above.
- Open a terminal or command prompt on your system.
- Navigate to the directory where you saved the files.
- Run the following command:
```
gpg -f /path/to/key --verify /path/to/socials
```
Replace `/path/to/key` with the path to the downloaded GPG key file, and `/path/to/socials` with the path to the downloaded verified accounts list.
If the verification is successful, you'll see a message confirming the signature is valid.
### 2.4 Importance of Verification
Verifying our accounts helps you:
- Avoid impersonation attempts
- Ensure you're interacting with official channels
- Protect yourself from potential scams or misinformation
### 2.5 Reporting Suspicious Accounts
If you encounter an account claiming to represent us but not listed in our verified accounts:
- Do not engage with or share sensitive information with the account
- Report the suspicious account to us immediately through one of our verified channels
- If possible, report the account to the platform it's on for impersonation
### 2.6 Staying Updated
We recommend checking our verified accounts list periodically, as we may add new official accounts or remove outdated ones. Always use the verification process to ensure you have the most current and authentic list.
## 3. Real-Time Communication Platforms
### 3.1 Discord Server
Our Discord server is the primary and most active platform for real-time communication.
- Join Link: https://chat.naomi.lgbt
- Join Link: https://irc.nhcarrigan.com
- Features:
- Fastest response times
- Multiple topic-specific channels
- Voice chat capabilities
- Integration with our projects and bots
- Best for: Quick support, community discussions, and live collaboration
### 3.2 Matrix Space
### 2.2. Forum
For those who prefer an open-source alternative to Discord, we maintain a Matrix space.
Our self-hosted forum allows for more long-form communication, which is ideal for support queries and in-depth conversations.
- Join Link: https://matrix.to/#/#naomis:matrix.org
- Join Link: https://forum.nhcarrigan.com
- Features:
- Decentralized and open-source
- End-to-end encryption for private messages
- Cross-platform compatibility
- Best for: Privacy-conscious users and those who prefer open protocols
- Quick response times
- Threaded conversations
- Persistent and indexed posts
- Best for: Support queries
### 3.3 IRC Channels
### 2.3. Fediverse
For users who prefer traditional IRC, we maintain channels on LiberaChat.
We self-host a fediverse instance for our random thoughts.
- Network: LiberaChat
- Channels:
- #nhcarrigan - Main support and discussion channel
- #nhcarrigan-chat - Casual conversation and community chat
- Connection Guide: LiberaChat Connection Guide
:::caution
The instance is invite-only and invites are reserved for our core team and polycule. But you can follow and engage with any Mastodon-compliant instance!
:::
- Link: https://fedi.nhcarrigan.com
- Features:
- Lightweight and accessible from various clients
- Suitable for users with limited bandwidth
- Familiar interface for long-time internet users
- Best for: Users comfortable with traditional IRC interfaces and those seeking a minimal, text-based chat experience
- Microblogging platform
- Likes + reposts
- Best for: General chatter
### 3.4 Platform Choice Guidelines
### 2.4. Code Repositories
- Discord: Recommended for most users, especially those seeking quick responses or community interaction.
- Matrix: Ideal for users prioritizing privacy and open-source solutions.
- IRC: Best for those who prefer a classic, lightweight chat experience or are using older hardware.
Our code repositories are all self-hosted. Sign-ups are open for anyone who wants to file an issue or comment on a discussion, but making code contributions is restricted to our core team.
### 3.5 Etiquette and Best Practices
- Link: https://git.nhcarrigan.com
- Features:
- Issue tracking
- Source code for all of our products
- Best for: Filing tickets on our software.
### 2.5 Etiquette and Best Practices
- Please be respectful and follow the community guidelines on all platforms.
- Use appropriate channels or rooms for your queries to ensure the fastest response.
- Before asking a question, check if it has been answered in pinned messages or FAQs.
- When seeking help, provide as much relevant information as possible.
## 4. Announcements and Updates
## 3. Announcements and Updates
### 4.1 Reddit Board
### 3.1 Announcements Page
Our Reddit board serves as the primary hub for official announcements and updates.
We have a dedicated page where we post all of our organisational updates.
- URL: https://www.reddit.com/r/nhcarrigan/
- URL: https://announcements.nhcarrigan.com
- Nature: This board is read-only.
- Content:
- Project updates and new releases
@ -168,53 +123,29 @@ Our Reddit board serves as the primary hub for official announcements and update
- Major policy changes
- Best for: Comprehensive, detailed announcements and long-form updates
### 4.2 Social Media Platforms
### 3.2 Blog
For more frequent and concise updates, we cross-post select announcements to our social media accounts.
Our blog contains more personal posts and updates.
#### 4.2.1 Twitter
- Account: @naomi_lgbt
- URL: https://blog.nhcarrigan.com
- Nature: This board is read-only.
- Content:
- Brief announcements and updates
- Quick tips and insights
- Community engagement
- Personal life updates
- Random musings
- Cool insights into our decision making processes
- Best for: People who want more insight into the team behind NHCarrigan.
#### 4.2.2 Mastodon
### 3.3 Interacting with Announcements
- Account: @naomi_lgbt@mastodon.social
- Content:
- Similar to Twitter
- Greater focus on personal activities
All of our announcements are read-only, but you can discuss them in any of our platforms mentioned in Section 1!
### 4.3 Interacting with Announcements
### 3.6 Historical Announcements
- Reddit: The board is read-only. For questions or discussions about announcements, please use our Discord server or other interactive platforms.
- Twitter and Mastodon: You can reply to posts or @mention us with questions or comments. We encourage community engagement on these platforms.
All announcements on our board are archived and remain accessible for future reference.
### 4.4 Best Practices for Staying Informed
## 4. Professional Engagement and Portfolio
- Subscribe to Multiple Channels: Each platform may have slightly different content. Following multiple channels ensures you don't miss any important updates.
- Enable Notifications: Consider enabling notifications for critical updates on your preferred platform.
- Regular Check-ins: If you prefer not to use notifications, we recommend checking these channels regularly, especially before starting work on or with our projects.
- Cross-Reference: Major announcements will typically be posted across all platforms. If you see something important on one channel, you can cross-reference it on others for any additional details.
### 4.5 Emergency or Critical Updates
For time-sensitive or critical announcements:
- We will use all available channels to ensure maximum reach.
- Such announcements will be clearly marked as urgent or critical.
- We may use additional notification methods (e.g., email for registered users) for extremely critical updates.
### 4.6 Historical Announcements
- All announcements on our Reddit board are archived and remain accessible for future reference.
- While social media posts may have limited visibility over time, all major announcements will be permanently available on Reddit.
## 5. Professional Engagement and Portfolio
### 5.1 LinkedIn Profile
### 4.1 LinkedIn Profile
LinkedIn serves as our primary professional networking platform.
@ -228,11 +159,11 @@ LinkedIn serves as our primary professional networking platform.
- Professional collaborators
- Industry peers
#### 5.1.1 Connecting on LinkedIn
#### 4.1.1 Connecting on LinkedIn
When sending a connection request, please include a brief message explaining your interest. We typically respond to LinkedIn messages within 2-3 business days.
### 5.2 Peerlist Profile
### 4.2 Peerlist Profile
As an alternative to LinkedIn, we maintain a presence on Peerlist, a platform focused on tech professionals.
@ -246,11 +177,11 @@ As an alternative to LinkedIn, we maintain a presence on Peerlist, a platform fo
- Fellow developers and engineers
- Open-source collaborators
#### 5.2.1 Engaging on Peerlist
#### 4.2.1 Engaging on Peerlist
Feel free to explore our projects and contributions on Peerlist. You can leave comments or questions on specific items in our portfolio.
### 5.3 Professional Inquiries
### 4.3 Professional Inquiries
When reaching out for professional reasons, please consider the following:
@ -258,27 +189,23 @@ When reaching out for professional reasons, please consider the following:
- Relevant Background: Provide brief context about yourself or your company.
- Specific Questions: If you have particular queries, include them in your initial message.
### 5.4 Services
### 4.4 Services
For details about our services and past work, visit our portfolio: https://nhcarrigan.com
If you're interested in hiring us to perform some work for you, fill out the form at https://forms.nhcarrigan.com/commission.
### 5.5 Speaking Engagements and Events
### 4.5 Speaking Engagements and Events
If you're interested in having us speak at your event or contribute to your publication:
If you're interested in having us speak at your event or contribute to your publication, fill out the form at https://forms.nhcarrigan.com/events.
- Check our LinkedIn or Peerlist profiles for recent talks or articles.
- Reach out with specific details about your event or publication.
- Provide information about the audience, topic, and any other relevant details.
### 5.6 Keeping Professional Connections Updated
### 4.6 Keeping Professional Connections Updated
We regularly update our professional profiles with new projects, skills, and achievements. Follow us on these platforms to stay informed about our professional journey and potential opportunities for collaboration.
## 6. One-on-One Sessions
## 5. One-on-One Sessions
We offer personalized, one-on-one sessions to cater to various needs, from casual conversations to in-depth consultations. Book your session through our Topmate profile.
### 6.1 Coffee Chat
### 5.1 Coffee Chat - $50
A casual, informal conversation to connect and share ideas.
@ -292,7 +219,7 @@ A casual, informal conversation to connect and share ideas.
- Professionals seeking to expand their network
- Anyone interested in a friendly chat about tech and open source
### 6.2 Consulting Session
### 5.2 Consulting Session - $100
A focused, one-on-one session to discuss potential new projects and align our services with your needs.
@ -306,7 +233,7 @@ A focused, one-on-one session to discuss potential new projects and align our se
- Project managers seeking technical guidance
- Startups needing expert input on their tech stack
### 6.3 Mentorship Session
### 5.3 Mentorship Session - $200
An in-depth, personalized session focused on long-term professional growth and skill development.
@ -320,30 +247,28 @@ An in-depth, personalized session focused on long-term professional growth and s
- Professionals looking to transition into tech
- Anyone seeking structured, long-term professional development
### 6.4 How to Book a Session:
### 5.4 How to Book a Session:
- Visit one of:
- Our Topmate profile: https://topmate.io/nhcarrigan
- Our Fiverr profile: https://www.fiverr.com/nhcarrigan
- Select the type of session you need (Coffee Chat, Consulting, or Mentorship)
- Select an available time slot
- Complete the booking process and payment
- Complete the [meeting request form](https://forms.nhcarrigan.com/session)
- Wait for an email to schedule a time
- Once a time is agreed upon, you will receive an invoice via email.
- The invoice MUST be paid at least 24 hours prior to your session.
### 6.5 Preparing for Your Session:
### 5.5 Preparing for Your Session:
- Coffee Chat: Come with topics you'd like to discuss or questions about the industry
- Consulting: Prepare a clear description of your problem or project, and any relevant code or documentation
- Mentorship: Outline your career goals and areas where you'd like to improve
### 6.6 Additional Information:
### 5.6 Additional Information:
- All sessions are conducted virtually via a video call in our Discord server.
- All sessions are conducted virtually via a video call over Zoom or Google Meet.
- Payment is required at the time of booking
- Rescheduling is possible with at least 24 hours notice
For any questions about these sessions or to discuss a different type of engagement, please reach out through our preferred contact methods listed in previous sections.
## 7. Email Communication
## 6. Email Communication
:::caution
Email communication is considered a paid service and will be invoiced at $25 per email we receive.
@ -351,7 +276,7 @@ Email communication is considered a paid service and will be invoiced at $25 per
We offer several email addresses for specific types of inquiries. Please use the appropriate email address to ensure your message reaches the right team and receives the most efficient response.
### 7.1 General Inquiries
### 6.1 General Inquiries
- Email: contact@nhcarrigan.com
- Use for:
@ -360,7 +285,7 @@ We offer several email addresses for specific types of inquiries. Please use the
- Media or press inquiries
- Any queries that don't fit other categories
### 7.2 Billing and Financial Matters
### 6.2 Billing and Financial Matters
- Email: billing@nhcarrigan.com
- Use for:
@ -369,7 +294,7 @@ We offer several email addresses for specific types of inquiries. Please use the
- Refund requests
- Updating billing information
### 7.3 Technical Support
### 6.3 Technical Support
- Email: support@nhcarrigan.com
- Use for:
@ -377,7 +302,7 @@ We offer several email addresses for specific types of inquiries. Please use the
- Reporting bugs or technical issues
- Documentation clarifications
### 7.4 Privacy Concerns
### 6.4 Privacy Concerns
- Email: privacy@nhcarrigan.com
- Use for:
@ -386,7 +311,7 @@ We offer several email addresses for specific types of inquiries. Please use the
- Reporting potential privacy breaches
- Opting out of data collection (where applicable)
### 7.5 Security Matters
### 6.5 Security Matters
- Email: security@nhcarrigan.com
- Use for:
@ -394,7 +319,7 @@ We offer several email addresses for specific types of inquiries. Please use the
- Questions about our security practices
- Concerns about potential security breaches
### 7.6 Legal Inquiries
### 6.6 Legal Inquiries
- Email: legal@nhcarrigan.com
- Use for:
@ -403,7 +328,7 @@ We offer several email addresses for specific types of inquiries. Please use the
- Requests for legal documentation
- Formal notices or communications
### 7.7 Feedback and Suggestions
### 6.7 Feedback and Suggestions
- Email: feedback@nhcarrigan.com
- Use for:
@ -412,7 +337,7 @@ We offer several email addresses for specific types of inquiries. Please use the
- Sharing your experience with our services
- Offering ideas for future developments
### 7.8 Email Communication Guidelines
### 6.8 Email Communication Guidelines
- Subject Line: Please use a clear, concise subject line that summarizes your inquiry.
- Content: Provide all relevant details in your initial email to expedite the response process.
@ -420,7 +345,7 @@ We offer several email addresses for specific types of inquiries. Please use the
- Response Time: We aim to respond to all emails within 2 business days. Complex inquiries may require additional time.
- Follow-ups: If you haven't received a response after 3 business days, feel free to send a polite follow-up.
### 7.9 Email Privacy and Security
### 6.9 Email Privacy and Security
All email communications are treated as confidential.
@ -428,13 +353,13 @@ We do not share your email address or the content of your messages with third pa
- Required by law; OR
- As part of a public warning related to a violation of our Code of Conduct
### 7.10 Spam and Unsolicited Emails
### 6.10 Spam and Unsolicited Emails
We have a strict no-spam policy. If you receive any unsolicited emails claiming to be from us, please report them to security@nhcarrigan.com.
By using the appropriate email address for your inquiry, you help us provide you with the most efficient and accurate response possible. If you're unsure which email to use, feel free to send your inquiry to contact@nhcarrigan.com, and we'll direct it to the appropriate team.
### 7.11 Acceptable Use and Consequences
### 6.11 Acceptable Use and Consequences
We are committed to maintaining a respectful and productive communication environment. To ensure this:
@ -453,59 +378,55 @@ We reserve the right to report serious abuses to relevant authorities if necessa
By communicating with us via email, you agree to adhere to these guidelines and understand the consequences of misuse.
## 8. Direct Messages
## 7. Direct Messages
:::caution
Direct messages (DMs) are considered a paid service and will be invoiced at $25 per message we receive.
:::
### 8.1 Direct Message Policy
### 7.1 Direct Message Policy
We offer direct messaging as a premium, personalized communication channel. However, to manage our time effectively and ensure the highest quality of service, we have implemented the following policy for direct messages:
- Each direct message received will be invoiced at $25.
- This applies to all platforms where direct messaging is available, including but not limited to:
- Discord
- Twitter
- LinkedIn
- Any other social media or communication platforms
- This applies to all platforms where direct messaging is available.
### 8.2 Purpose and Use
### 7.2 Purpose and Use
Direct messages should be used for:
- Urgent matters that cannot be addressed through public channels
- Sensitive information that shouldn't be shared publicly
- Personalized support or consultation requests
### 8.3 Invoicing and Payment
### 7.3 Invoicing and Payment
- An invoice will be generated for each direct message received.
- Payment is required before a response will be provided.
- Invoices will be sent to you via the direct message channel on the platform where the direct message was received.
### 8.4 Response Time
### 7.4 Response Time
- Once payment is received, we aim to respond to direct messages within 1-2 business days.
- Complex inquiries may require additional time, which will be communicated to you.
### 8.5 Refund Policy
### 7.5 Refund Policy
- Due to the immediate nature of the service, refunds for direct messages are not typically offered.
- In exceptional circumstances, refund requests will be considered on a case-by-case basis.
### 8.6 Appropriate Use
### 7.6 Appropriate Use
- Direct messages should be used responsibly and for legitimate purposes only.
- Abusive, harassing, or spam messages will not be tolerated and may result in blocking or reporting to the platform.
### 8.7 Alternatives
### 7.7 Alternatives
We encourage users to consider the following alternatives before sending a direct message:
- Use our public support channels for general inquiries (see Section 1.1)
- Check our FAQ or documentation for commonly asked questions
- Post in our community forums for non-urgent matters
### 8.8 Consent and Acknowledgment
### 7.8 Consent and Acknowledgment
By sending a direct message, you acknowledge that you have read and agreed to this policy, including the fee structure and invoicing process.

View File

@ -10,14 +10,7 @@ These Terms and Conditions (“Terms”) outline the Programme provided by NHCar
### 1.1. Enrolment
You may enrol in the Programme via one of the following platforms:
- [Gumroad](https://nhcarrigan.gumroad.com/l/programme)
- [Topmate](https://topmate.io/nhcarrigan/958795)
- [Fiverr](https://www.fiverr.com/nhcarrigan/grant-you-access-to-our-mentorship-programme)
- [Discord](https://chat.nhcarrigan.com)
- [Patreon](https://patreon.com/nhcarrigan)
- [Ko-fi](https://ko-fi.com/nhcarrigan)
To enrol in the Programme, [fill out the application](https://forms.nhcarrigan.com/mentorship).
## 2. Programme Services

View File

@ -26,7 +26,7 @@ Please note that incomplete or inadequately prepared appeals may be summarily di
To submit your appeal, please complete the form available at the following link:
[Submit a Sanction Appeal](https://nhcarrigan.com/appeal)
[Submit a Sanction Appeal](https://forms.nhcarrigan.com/appeal)
## 3. Important Disclaimers

View File

@ -12,13 +12,11 @@ These entities directly store, manage, or handle our application data.
| Entity | Data Processed |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Anthropic | Any data provided to our AI-powered applications such as the AltGenerator Discord bot. |
| DigitalOcean | Any data transmitted over the network to and from our applications. |
| Discord | Any information related to usage logging and errors posted in our community. |
| HubSpot | Data submitted to our Contact, Sales Inquiry, Sanction Appeals, Newsletter Sign-up, and Staff Application forms, as well as data transmitted via our embedded chat widgets. |
| MongoDB | Any data provided to our applications when you interact with them. |
| ProtonMail | Any information transmitted to and from our `nhcarrigan.com` email addresses. |
| Stripe | Information provided during the identity and age verification processes necessary to access certain applications and community channels. |
| Stripe | Information provided during the identity and age verification processes necessary to access certain applications and community channels, and payment information for invoices. |
### 1.2. Secondary Subprocessors

View File

@ -1,89 +0,0 @@
---
title: AltGenerator
---
AltGenerator (hereinafter the "Application") is a wrapper around Anthropic's Claude model that allows you to sumbit an image to the LLM and receive descriptive alt-text.
## 1. User Documentation
:::caution[Note]
We offer free access to this bot within [our Discord server](https://chat.nhcarrigan.com).
For the bot to respond to you in other servers, or via DMs, you will need to subscribe.
:::
This section is for those interacting with a live instance of the Application.
To interact with the Application, you must send a message (in a server channel it can see and respond to, or in a direct message with the bot). The content of your message **must start with** a mention (or ping) of the bot.
If you are using the Application outside of our server, and have not subscribed, you will be met with a prompt to subscribe:
![](/images/alt-gen/no-subscription.png)
Otherwise, the bot will respond to your query. Note that the bot does NOT look at the text content of your message, only image attachments.
![](/images/alt-gen/response.png)
To cut down on costs and provide this service at an affordable rate to you, the Application does not track any conversation history. Each message you send is treated as an isolated query and receives a response independent of any prior interactions.
## 2. Technical Documentation
This section is for those interested in running their own instance of the Application.
In order to host your own instance of this application, you will need to complete a few steps.
### 2.1. Discord Application
First, you will need to go through the [Discord Developer Portal](https://discord.com/developers/applications) to set up a new Discord Bot account. The bot will not need any privileged intents.
Once you have the bot set up, save the token in 1password and update the `DISCORD_TOKEN` secret reference in `prod.env`.
You'll also need to set up a Discord webhook for debug logs. Save the URL in 1password and update the `DEBUG_HOOK` secret reference in `prod.env`.
### 2.2. Anthropic
You will need to register for an [Anthropic API account](https://console.anthropic.com). Note that this is NOT the same as a paid Claude account - they are independent services with independent billing.
Under the `Billing` tab, you'll need to load some credits. There is no free tier for this API.
Under the `API Keys` tab, generate an API key for your workspace. Save the key in 1password and update the `ANTHROPIC_TOKEN` secret reference in `prod.env`.
### 2.3. Monetisation
Whether you wish to enable monetisation or not, you'll want to update the logic in `src/index.ts` around line 239 to reflect the behaviour and values relevant to your instance.
For example, you may need to update the SKU in the button with the SKU for your application, or remove the entitlement logic entirely and offer the service for free.
### 2.4. Running the Application
Once you have the Application on a [configured server](/dev/servers), you'll need to run the following commands:
```bash
pnpm install #install the dependencies
pnpm build #compile the typescript into javascript
OP_SERVICE_ACCOUNT_TOKEN=<key> pm2 start 'pnpm start' --name 'naomiai' #start the app as a PM2 process
```
If you have configured everything correctly, you'll be all set!
## 3. Legal Documentation
This section is for expansions to our legal policies specific to the Application.
### 3.1. Privacy Policy
The Application does not use Discord's Message Content intent. This means that it cannot see the content of ANY message you send unless you explicitly ping the bot (or have DMed the bot directly).
We do not store any data related to the use of this Application.
The image files you consensually submit to the Application as part of normal usage are sent to Anthropic to generate the LLM response. Messages are sent anonymously, and not tied to your user account. However, the files may be processed in accordance with Anthropic's Terms and Privacy Policies.
Your UUID is logged in our support server, with the quantity and cost of tokens consumed in your interaction with the Application. No message content or other information is logged, and these data are solely used to track usage metrics and identify a need to adjust costs.
## 4. Contributing Documentation
:::note
This section is coming soon!
:::
This section is for documentation related to contributing to the Application's codebase.

View File

@ -1,89 +0,0 @@
---
title: NaomiAI
---
NaomiAI, also known as Anthropic Bot, (hereinafter the "Application") is a wrapper around Anthropic's Claude model that allows you to ask questions to the LLM directly through Discord. The Application is designed to respond as if it was a magical girl.
## 1. User Documentation
:::caution[Note]
We offer free access to this bot within [our Discord server](https://chat.nhcarrigan.com).
For the bot to respond to you in other servers, or via DMs, you will need to subscribe.
:::
This section is for those interacting with a live instance of the Application.
To interact with the Application, you must send a message (in a server channel it can see and respond to, or in a direct message with the bot). The content of your message **must start with** a mention (or ping) of the bot.
If you are using the Application outside of our server, and have not subscribed, you will be met with a prompt to subscribe:
![](/images/naomiai/no-subscription.png)
Otherwise, the bot will respond to your query:
![](/images/naomiai/response.png)
To cut down on costs and provide this service at an affordable rate to you, the Application does not track any conversation history. Each message you send is treated as an isolated query and receives a response independent of any prior interactions.
## 2. Technical Documentation
This section is for those interested in running their own instance of the Application.
In order to host your own instance of this application, you will need to complete a few steps.
### 2.1. Discord Application
First, you will need to go through the [Discord Developer Portal](https://discord.com/developers/applications) to set up a new Discord Bot account. The bot will not need any privileged intents.
Once you have the bot set up, save the token in 1password and update the `DISCORD_TOKEN` secret reference in `prod.env`.
You'll also need to set up a Discord webhook for debug logs. Save the URL in 1password and update the `DEBUG_HOOK` secret reference in `prod.env`.
### 2.2. Anthropic
You will need to register for an [Anthropic API account](https://console.anthropic.com). Note that this is NOT the same as a paid Claude account - they are independent services with independent billing.
Under the `Billing` tab, you'll need to load some credits. There is no free tier for this API.
Under the `API Keys` tab, generate an API key for your workspace. Save the key in 1password and update the `ANTHROPIC_TOKEN` secret reference in `prod.env`.
### 2.3. Monetisation
Whether you wish to enable monetisation or not, you'll want to update the logic in `src/index.ts` around line 239 to reflect the behaviour and values relevant to your instance.
For example, you may need to update the SKU in the button with the SKU for your application, or remove the entitlement logic entirely and offer the service for free.
### 2.4. Running the Application
Once you have the Application on a [configured server](/dev/servers), you'll need to run the following commands:
```bash
pnpm install #install the dependencies
pnpm build #compile the typescript into javascript
OP_SERVICE_ACCOUNT_TOKEN=<key> pm2 start 'pnpm start' --name 'naomiai' #start the app as a PM2 process
```
If you have configured everything correctly, you'll be all set!
## 3. Legal Documentation
This section is for expansions to our legal policies specific to the Application.
### 3.1. Privacy Policy
The Application does not use Discord's Message Content intent. This means that it cannot see the content of ANY message you send unless you explicitly ping the bot (or have DMed the bot directly).
We do not store any data related to the use of this Application.
The messages you consensually submit to the Application as part of normal usage are sent to Anthropic to generate the LLM response. Messages are sent anonymously, and not tied to your user account. However, the content of the message may be processed in accordance with Anthropic's Terms and Privacy Policies.
Your UUID is logged in our support server, with the quantity and cost of tokens consumed in your interaction with the Application. No message content or other information is logged, and these data are solely used to track usage metrics and identify a need to adjust costs.
## 4. Contributing Documentation
:::note
This section is coming soon!
:::
This section is for documentation related to contributing to the Application's codebase.

View File

@ -1,303 +0,0 @@
---
title: Task Bot
---
Task Bot (hereinafter the "Application") is a user-installable Discord application which allows you to manage your tasks anywhere on Discord: in a server, in a direct message with the bot, in direct messages with your friends... The possibilities are endless.
Task management with this bot is an individual feature. If you need server-level task management, such as for a development team, please reach out to us in our support server to discuss pricing.
## 1. User Documentation
This section is for those interacting with a live instance of the Application.
### 1.1. User Interactivity
Interaction with the Application is done through a series of slash commands ("Commands") exposed via Discord's native UI. The primary function of the Application is to allow users to create and manage "tasks", or records of objectives that must be completed.
#### 1.1.1. `assign` Command
:::note
This command is only available on guild-level private instances.
:::
The `/assign` command allows you to assign a specific Discord user to a task. A task may have multiple assignees.
![A discord slash command named Assign, taking a task and assignee argument](/images/task-bot/assign.png)
##### 1.1.1.1. Required Arguments
- `task`: An integer greater than 0, which is the unique identifier of the task you want to edit.
- `assignee`: The user to assign to (or unassign from) a ticket.
##### 1.1.1.2. Optional Arguments
- `null`
##### 1.1.1.3. Execution
Once the command has been called, a database query will be made to confirm a task exists with the given `task` ID.
If a task does not exist, you will be notified.
If a task does exist, the Application will determine whether the `assignee` has been added to the task previously or not. If the `assignee` is already on the task, they will be removed. If they are not on the task, they will be assigned. You will be shown a confirmation message indicating which action the Application performed.
#### 1.1.2. `complete` Command
The `/complete` command allows you to mark a task as completed. Once completed, a task can not be uncompleted. It can still be modified and deleted.
![A discord slash command named Complete, taking a task argument](/images/task-bot/complete.png)
##### 1.1.2.1. Required Arguments
- `task`: An integer greater than 0, which is the unique identifier of the task you want to edit.
##### 1.1.2.2. Optional Arguments
- `null`
##### 1.1.2.3. Execution
Once the command has been called, a database query will be made to confirm a task exists with the given `task` ID.
If a task does not exist, you will be notified.
If a task does exist, the Application will mark the task as completed and inform you of the success.
#### 1.1.3. `create` Command
The `/create` command allows you to create a new task.
![A discord slash command named Create, which takes no arguments](/images/task-bot/create.png)
##### 1.1.2.1. Required Arguments
- `null`
##### 1.1.2.2. Optional Arguments
- `null`
##### 1.1.2.3. Execution
Once the command has been called, the Application will construct and show a Discord-powered modal form. There are three fields you must complete.
![A discord modal titled New Task, with title, description, and due date fields.](/images/task-bot/create-modal.png)
- `TITLE`: The title of the task. This should be a short summary.
- `DESCRIPTION`: The description of the task. This may be longer, and supports multiple lines.
- `DUE DATE`: The date the task is due. This must be a format that can be parsed, such as `September 1, 2000`.
:::caution
If the Application cannot parse your `DUE DATE` value, it will fall back to the current date. You can edit this with the `/update` command.
:::
When you submit the modal form, the Application will insert a new task into the database and assign it an incremental ID. It will provide this ID to you as confirmation.
#### 1.1.4. `delete` Command
The `/delete` command allows you to "delete" a task from the database. The task record will remain present, as the incremental ID logic requires records to persist. All information will be scrubbed from the task and replaced with default values.
:::danger
Deleting a task is a very destructive action. You will not be able to undo it. Our support team will not be able to undo it. The data will be purged from our records.
:::
![A discord slash command named Delete, which takes a task argument](/images/task-bot/delete.png)
##### 1.1.4.1. Required Arguments
- `task`: The numerical identifier of the task you wish to delete.
##### 1.1.4.2. Optional Arguments
- `null`
##### 1.1.4.3. Execution
Once the command has been called, a database query will be made to confirm a task exists with the given `task` ID.
If a task does not exist, you will be notified.
If a task does exist, the Application will mark the task as `deleted`, and set the following default values:
```json
{
"assignees": [],
"deleted": true,
"description": "This task has been deleted.",
"dueAt": Date,
"priority": "deleted",
"tags": [],
"title": "Deleted Task",
}
```
You will receive confirmation when the deletion is complete.
#### 1.1.5. `list` Command
The `list` command allows you to view your tasks, optionally applying filters to narrow the results.
![A discord slash command named List, which takes priority, tag, assignee, and completed arguments](/images/task-bot/list.png)
##### 1.1.5.1. Required Arguments
- `null`
##### 1.1.5.2. Optional Arguments
- `priority`: Only show tasks which are at this priority level. If omitted, will show all priorities.
- `tag`: Only show tasks whose tags include this tag. If omitted, will not restrict query by any tags.
- `completed`: Show either complete or incomplete tasks. If omitted, will show incomplete tasks.
**Guild-level private instances** will also be able to filter by `assignee`.
##### 1.1.5.3. Execution
The Application will construct your selected filters into a database query and use that to fetch the tasks.
If your query returns no tasks, the Application will notify you to adjust your filters. Otherwise, you will receive a list of task titles and IDs.
#### 1.1.6. `priority` Command
The priority command allows you to modify the priority level of a task. A task may have one of the following priorities: `Low`, `Medium`, `High`, `Critial`, and `None`.
![A discord slash command named Priority, which takes task and priority arguments](/images/task-bot/priority.png)
##### 1.1.6.1. Required Arguments
- `null`
##### 1.1.6.2. Optional Arguments
- `null`
##### 1.1.6.3. Execution
Once the command has been called, a database query will be made to confirm a task exists with the given `task` ID.
If a task does not exist, you will be notified.
If a task does exist, the Application will update the `priority` field and send you a confirmation.
#### 1.1.7. `tag` Command
The `/tag` command allows you to assign a specific tag to a task. A task may have multiple tags.
![A discord slash command named Tag, taking a task and tag argument](/images/task-bot/tag.png)
##### 1.1.7.1. Required Arguments
- `task`: An integer greater than 0, which is the unique identifier of the task you want to edit.
- `tag`: The case-sensitive tag to apply.
##### 1.1.7.2. Optional Arguments
- `null`
##### 1.1.7.3. Execution
Once the command has been called, a database query will be made to confirm a task exists with the given `task` ID.
If a task does not exist, you will be notified.
If a task does exist, the Application will determine whether the `tag` has been added to the task previously or not. If the `tag` is already on the task, it will be removed. If it is not on the task, it will be added. You will be shown a confirmation message indicating which action the Application performed.
#### 1.1.8. `update` Command
The `/update` command allows you to update an existing task.
![A discord slash command named update, which takes no arguments](/images/task-bot/update.png)
##### 1.1.8.1. Required Arguments
- `null`
##### 1.1.8.2. Optional Arguments
- `null`
##### 1.1.8.3. Execution
Once the command has been called, the Application will construct and show a Discord-powered modal form. There is one field you MUST complete, and three fields you MAY complete.
![A discord modal titled Update Task, with title, description, and due date fields.](/images/task-bot/update-modal.png)
- `TASK NUMBER`: The numerical identifier of the task you wish to update.
- `TITLE`: The title of the task. This should be a short summary.
- `DESCRIPTION`: The description of the task. This may be longer, and supports multiple lines.
- `DUE DATE`: The date the task is due. This must be a format that can be parsed, such as `September 1, 2000`.
If you do not want to update a field, leave it blank and the Application will not modify it.
:::caution
If the Application cannot parse your `DUE DATE` value, it will fall back to the current date.
:::
When you submit the modal form, the Application will construct an update query from your fields. It will then try to update the task in the database, using the ID you provide. If it fails to find a record with that ID, it will notify you. Otherwise, it will send a confirmation message.
#### 1.1.9. `view` Command
The view command allows you to query a task by its ID and see all the information on that task.
![A discord slash command named view, which accepts a single id argument](/images/task-bot/view.png)
##### 1.1.9.1. Required Arguments
- `id`: The numerical ID of the task you wish to view.
##### 1.1.9.2. Optional Arguments
- `null`
##### 1.1.9.3. Execution
When you run the command, the bot will fetch the task matching your specified ID from the database. If no task is found, the bot will notify you.
![A discord embed showing the details of a task, including the title, description, due date, tags, and priority](/images/task-bot/view-embed.png)
Otherwise, the bot will display an embed containing all of the information about that task.
### 1.2. User Access Permissions
:::danger
The Application does not perform any permission validation against users calling commands. All commands are available to all users.
:::
:::note
User-access permissions are only available on guild-level private instances. The user-level public application will only allow you to manage tasks you have created.
:::
If you need to restrict access to specific commands based on a user's permission levels, you can do so through Discord's native UI.
![Discord's command permissions screen, with the everyone role denied access, the Staff role granted access, and the complete command indicating it has overrides](/images/task-bot/command-permissions.png)
This functionality will allow you to hide commands from users with or without specific roles, or grant scoped access to individual commands and channels. For more instructions on how to leverage this tool, please review [Discord's support article for command permissions](https://support.discord.com/hc/en-us/articles/4644915651095-Command-Permissions).
### 1.3. Application Access Permissions
The Application should not require any specific Discord permissions to function in your community.
### 1.4. Errors
We strive to deliver reliable and quality applications, but we are not perfect. If the Application generates an error, it will provide you with a Snowflake ID and a link to [our support server](https://chat.nhcarrigan.com).
When you join the server and share the ID with us, we will be able to look up the specific log and determine the cause of the error.
Note that not all errors are caused by the Application. Errors can occur for many reasons, including misconfigured permissions on the user side, external platform outages, and more. Our support team will be happy to assist you with any errors that you encounter, but we kindly ask that you demonstrate patience toward our team (many of whom are volunteers).
## 2. Technical Documentation
:::note
This section is coming soon!
:::
This section is for those interested in running their own instance of the Application.
## 3. Legal Documentation
:::note
This section is coming soon!
:::
This section is for expansions to our legal policies specific to the Application.

View File

@ -1,117 +0,0 @@
---
title: Translation Bot
---
Translation Bot (hereinafter the "Application") is a multi-platform application that allows quick and seamless translation of user messages.
## 1. User Documentation
This section is for those interacting with a live instance of the application.
### 1.1. Discord Integration
The Application is available as a user-installable Discord integration. Once installed, it becomes available for you to use in any server.
:::tip
The command names and descriptions should all be localised to the language you have your Discord client set to.
:::
All interactions with this Application are "ephemeral", meaning that only you will see the result. This leaves you free to use the Application in whatever way you need without disrupting your colleagues.
[Install the Discord integration](https://discord.com/oauth2/authorize?client_id=1293778694292115457)
#### 1.1.1. Setting Your Language
![A Discord slash command, called language, with a single language parameter](/images/translation-bot/discord-lang.png)
The `/language` command allows you to configure your target language. The language you set here will be the language messages are translated into.
![A Discord ephemeral response, with the text "Your language has been set to en."](/images/translation-bot/discord-lang-success.png)
#### 1.1.2. Translating Messages
![A Discord message context menu, with the translate command highlighted](/images/translation-bot/discord-trans.png)
To translate a message, right click on the message to open the context menu. Select the `translate` command, and the bot will translate the message you selected.
![A Discord ephemeral response, with the text "Detected pt with 100 confidence. :O"](/images/translation-bot/discord-trans-success.png)
### 1.2. Slack Integration
The Application is available as a workspace-level Slack integration. Once installed, it becomes available for anyone to use in the workspace.
All interactions with this Application are "ephemeral", meaning that only you will see the result. This leaves you free to use the Application in whatever way you need without disrupting your colleagues.
[Install the Slack integration](https://trans-slack.nhcarrigan.com/slack/install)
#### 1.2.1. Setting Your Language
![A Slash slash command, called lang, with a single ISO code parameter](/images/translation-bot/slack-lang.png)
The `/lang` command allows you to configure your target language. The language you set here will be the language messages are translated into.
![A Slack ephemeral response, with the text "Your language has been set to en."](/images/translation-bot/slack-lang-success.png)
#### 1.1.2. Translating Messages
![A Slack message context menu, with "More message actions" expanded, and the translate command highlighted](/images/translation-bot/slack-trans.png)
To translate a message, right click on the message to open the context menu. Select `More message actions`, then the `translate` command, and the bot will translate the message you selected.
![A Slack ephemeral response, with the text "Detected id with 45 confidence. Home"](/images/translation-bot/slack-trans-success.png)
### 1.3. Language Codes
The commands to toggle your language require a two-character language code. You may refer to the table below to identify the code for your language.
:::note
The list of languages we support is determined by the languages supported on each platform AND the languages supported by our translation service.
:::
| Language | Code |
| --------------------- | ---- |
| English | "en" |
| Bulgarian | "bg" |
| Czech | "cs" |
| Danish | "da" |
| German | "de" |
| Greek | "el" |
| Spanish | "es" |
| Finnish | "fi" |
| French | "fr" |
| Hindi | "hi" |
| Hungarian | "hu" |
| Italian | "it" |
| Japanese | "ja" |
| Korean | "ko" |
| Lithuanian | "lt" |
| Dutch | "nl" |
| Norwegian | "no" |
| Polish | "pl" |
| Portuguese | "pt" |
| Romanian | "ro" |
| Russian | "ru" |
| Swedish | "sv" |
| Thai | "th" |
| Turkish | "tr" |
| Ukrainian | "uk" |
| Chinese (Simplified) | "zh" |
| Chinese (Traditional) | "zt" |
## 2. Technical Documentation
:::note
This section is coming soon!
:::
This section is for those interested in running their own instance of the Application.
## 3. Legal Documentation
This section is for expansions to our legal policies specific to the Application.
### 3.1. Data Collection
The only Data the Application collects and stores is a map of your unique identifier (UUID) for each platform and the target language you have selected for the platform.
Message data and contents are NEVER stored by our application.

View File

@ -132,550 +132,22 @@ Know when and how to escalate issues:
- Identify situations that require input from administrators.
- Follow established procedures for escalating complex or sensitive matters.
### 2.2 Discord Moderation Guidelines
### 2.5 Sanction Logging
#### 2.2.1 General Principles
All moderation actions you take must be logged via our [web form](https://moderation.nhcarrigan.com/log).
- Always approach situations calmly and objectively.
- Escalate gradually: Start with the least severe action necessary and progress as needed.
- Document all moderation actions using the mod bot for consistency and future reference.
#### 2.2.2 Warning a Member
Use warnings for minor infractions or first-time offences.
**When to Warn:**
- Mild spam (e.g., posting the same message a few times)
- Non-discriminatory insults (e.g., "You're a jerk")
- Minor rule violations
**How to Warn:**
Use the mod bot command:
```txt
/warn @user [reason for warning]
```
**Follow-up:**
- Monitor the member's behavior after the warning.
- If behavior improves, no further action is needed.
- If issues persist, consider stronger measures.
#### 2.2.3 Kicking a Member
Kicking is a temporary removal that allows the member to rejoin.
**When to Kick:**
- Repeated minor infractions after warnings
- Arguing with moderators
- Moderate spam
- Non-severe rule violations
**How to Kick:**
Use the mod bot command:
```txt
/kick @user [reason for kick]
```
**Follow-up:**
- Monitor if the user returns and their subsequent behavior.
- Be prepared to take stronger action if issues continue upon their return.
#### 2.2.4 Banning a Member
Banning is the most severe action and should be used judiciously.
**When to Ban:**
- Severe rule violations
- Repeated offences after warnings and kicks
- Malicious actions (e.g., raiding, doxxing, severe harassment)
**How to Ban:**
Use the mod bot command:
```txt
/ban @user [reason for ban]
```
**Important Considerations:**
- Discord bans are IP-specific.
- The member cannot rejoin until the ban is lifted.
- Always double-check the user and reason before banning.
- For permanent bans, consult with administrators.
#### 2.2.5 Moderation Best Practices
1. **Communication:** Clearly explain the reason for moderation actions to the affected member when possible.
2. **Consistency:** Apply rules uniformly to all members.
3. **Documentation:** Always use the mod bot for actions to ensure proper logging.
4. **Discretion:** Use your judgment. Context matters in deciding appropriate actions.
5. **Team Coordination:** Discuss unclear situations with fellow moderators.
6. **Appeals Process:** Be aware of the process for members to appeal moderation decisions.
7. **Continuous Learning:** Stay updated on any changes to community guidelines or moderation policies.
### 2.3 Twitch Moderation
#### 2.3.1 General Responsibilities
- Monitor chat actively during live streams.
- Enforce our community rules and Twitch's Terms of Service.
- Assist viewers with questions and foster a welcoming atmosphere.
- Support the streamer by managing chat flow and addressing issues promptly.
#### 2.3.2 Chat Moderation Tools
Familiarize yourself with Twitch's built-in moderation tools:
1. **Timeout:** Temporarily prevents a user from chatting.
2. **Ban:** Permanently removes a user from the channel.
3. **Delete Message:** Removes a single message from chat.
4. **Slow Mode:** Limits how often users can send messages.
5. **Followers-Only Mode:** Restricts chat to followers.
6. **Subscribers-Only Mode:** Limits chat to subscribers.
7. **Unique-Chat Mode:** Prevents users from posting duplicate messages.
#### 2.3.3 Moderation Actions
##### 2.3.3.1 Warnings
- For minor infractions, start with a verbal warning in chat.
- Use clear, concise language to explain the issue.
Example: "@User, please avoid spamming emotes. Next time may result in a timeout."
##### 2.3.3.2 Timeouts
Use timeouts for more serious or repeated minor offences.
- First offence: 5-minute timeout
- Second offence: 10-minute timeout
- Third offence: 30-minute timeout
To timeout: `/timeout @username [duration]`
##### 2.3.3.3 Bans
Reserve bans for severe violations or persistent problematic behavior.
To ban: `/ban @username`
Always document the reason for bans in your moderator notes or designated channel.
#### 2.3.4 Specific Situations
1. **Spam:** Use timeouts, increasing duration for repeat offences.
2. **Hate Speech/Discrimination:** Immediate ban and report to Twitch.
3. **Excessive Backseat Gaming:** Start with a warning, then short timeout if it continues.
4. **Spoilers:** Delete message and issue a warning.
5. **Self-Promotion:** Remove message and warn. Timeout for repeated offences.
6. **Bot Attacks:** Enable followers-only or subscribers-only mode temporarily.
#### 2.3.5 Communication
- Coordinate with other moderators via a separate chat or Discord channel.
- Inform the streamer of any significant issues or decisions made during the stream.
- Be prepared to explain moderation actions if questioned by viewers.
#### 2.3.6 Raids and Hosting
- Welcome incoming raids positively.
- Be extra vigilant during raids to catch any potential influx of rule-breaking behavior.
- Assist in shouting out and thanking raiders/hosts as appropriate.
#### 2.3.7 Clips and Highlights
- Monitor clips created during streams for any inappropriate content.
- Report or delete any clips that violate our guidelines or Twitch ToS.
#### 2.3.8 Post-Stream Duties
- Review any user reports or issues that occurred during the stream.
- Discuss any notable incidents or concerns with the moderation team.
- Provide feedback or suggestions for improving stream moderation.
### 2.4 Reddit Moderation
#### 2.4.1 General Responsibilities
- Regularly check the moderation queue for reported posts and comments.
- Enforce subreddit rules and Reddit's content policy.
- Engage with the community to encourage positive interactions.
- Collaborate with other moderators to maintain consistency.
#### 2.4.2 Moderation Tools
Familiarize yourself with Reddit's moderation tools:
1. **Remove:** Takes down a post or comment from public view.
2. **Spam:** Removes content and marks it as spam.
3. **Approve:** Manually approves content, overriding auto-mod actions.
4. **Lock:** Prevents further comments on a post.
5. **Sticky:** Pins important posts to the top of the subreddit.
6. **Distinguish:** Marks your comment as coming from a moderator.
7. **Ban:** Prevents a user from posting or commenting in the subreddit.
#### 2.4.3 Moderation Actions
##### 2.4.3.1 Content Removal
- Remove posts and comments that violate subreddit rules or Reddit's content policy.
- Always provide a reason for removal, using removal reasons or commenting.
##### 2.4.3.2 User Warnings
- For minor infractions, issue a warning via modmail or comment.
- Document warnings in mod notes for future reference.
##### 2.4.3.3 Temporary Bans
- Use for repeated minor offences or more serious rule violations.
- Typical durations: 3 days, 7 days, 14 days, 30 days.
- Always include the reason and duration in the ban message.
##### 2.4.3.4 Permanent Bans
- Reserve for severe violations or persistent problematic behavior.
- Always provide a clear reason in the ban message.
- Allow for appeal process through modmail.
#### 2.4.4 Specific Situations
1. **Spam:** Remove and mark as spam. Temp ban for repeated offences.
2. **Harassment:** Remove, warn, and escalate to temp or permanent ban as needed.
3. **Off-topic Posts:** Remove and direct users to appropriate subreddits.
4. **Reposts:** Remove recent reposts, with a comment explaining the removal.
5. **Trolling:** Remove comments, warn, and ban for persistent behavior.
6. **Vote Manipulation:** Report to Reddit admins and remove content.
#### 2.4.5 AutoModerator
- Familiarize yourself with our AutoModerator configuration.
- Regularly review and update AutoMod rules as needed.
- Check the moderation log to ensure AutoMod is functioning correctly.
#### 2.4.6 Flair Management
- Ensure posts have the proper flair.
- Assist users with setting up user flairs if applicable.
#### 2.4.7 Modmail
- Respond to modmail inquiries promptly and professionally.
- Use templates for common responses to ensure consistency.
- Escalate complex issues to admins when necessary.
#### 2.4.8 Community Engagement
- Participate in discussions to set a positive example.
- Use distinguish feature judiciously when speaking officially as a moderator.
- Create and maintain community resources (FAQ, wiki, etc.).
#### 2.4.9 Coordinating with the Mod Team
- Use private moderator channels or subreddits for team discussions.
- Participate in periodic mod team meetings or discussions.
- Propose and discuss potential rule or policy changes.
#### 2.4.10 Handling Sensitive Content
- Remove adult-only content.
- For controversial topics, monitor discussions closely and lock if necessary.
- Report any illegal content to Reddit admins immediately.
### 2.5 Codeberg Moderation
#### 2.5.1 General Responsibilities
- Monitor repository activities, including issues, pull requests, and discussions.
- Enforce our organization's code of conduct and Codeberg's terms of service.
- Assist contributors with questions and foster a welcoming atmosphere for new participants.
- Manage repository settings and access controls.
#### 2.5.2 Moderation Tools
Familiarize yourself with Codeberg's moderation features:
1. **Issue Management:** Open, close, label, and moderate issues.
2. **Pull Request Review:** Review, comment on, and merge or reject pull requests.
3. **Commit Management:** Revert or cherry-pick commits if necessary.
4. **User Management:** Manage collaborator access and block problematic users.
5. **Repository Settings:** Adjust visibility, branch protection, and other settings.
#### 2.5.3 Moderation Actions
##### 2.5.3.1 Issue and Pull Request Moderation
- Review and triage new issues and pull requests promptly.
- Apply appropriate labels for categorization and priority.
- Close or merge after thorough review and discussion.
##### 2.5.3.2 Comment Moderation
- Remove inappropriate or off-topic comments.
- Provide warnings for minor infractions.
- Lock discussions that become unproductive or violate guidelines.
##### 2.5.3.3 User Management
- Grant appropriate access levels to contributors.
- Temporarily restrict access for users violating guidelines.
- Block persistent offenders after warnings and temporary restrictions.
#### 2.5.4 Specific Situations
1. **Spam:** Remove spam content and warn the user. Block for repeated offences.
2. **Harassment:** Remove offending content, warn the user, and escalate to blocking if behavior persists.
3. **Off-topic Discussions:** Redirect to appropriate channels or close if irrelevant.
4. **Code of Conduct Violations:** Address promptly, following the enforcement guidelines in the CoC.
5. **Licensing Issues:** Ensure all contributions comply with the project's license. Remove any content that violates licensing terms.
#### 2.5.5 Repository Management
- Regularly review and update repository descriptions and README files.
- Manage branch protection rules to maintain code quality.
#### 2.5.6 Collaboration and Communication
- Use repository discussions or a designated communication channel for project-related conversations.
- Clearly communicate decisions and reasoning behind moderation actions.
- Encourage constructive feedback and open dialogue among contributors.
#### 2.5.7 Pull Request Review Process
- Establish and communicate clear guidelines for PR submissions.
- Conduct thorough code reviews, focusing on both functionality and style.
- Provide constructive feedback and guidance, especially for new contributors.
- Ensure all checks (e.g., tests, linting) pass before merging.
#### 2.5.8 Security Management
- Monitor and address security vulnerabilities promptly.
- Manage responsible disclosure of security issues.
- Regularly update dependencies to patch known vulnerabilities.
#### 2.5.9 Community Building
- Recognize and appreciate valuable contributions.
- Organize periodic community events or sprints to boost engagement.
- Maintain a welcoming atmosphere for contributors of all experience levels.
#### 2.5.10 Documentation
- Ensure project documentation is comprehensive and up-to-date.
- Encourage contributors to improve documentation alongside code changes.
- Maintain clear guidelines for project structure, coding standards, and contribution processes.
### 2.6 IRC Moderation
#### 2.6.1 General Responsibilities
- Monitor channel activities continuously while online.
- Enforce channel rules and network policies.
- Assist users with questions and foster a welcoming atmosphere.
- Manage channel modes and user privileges as needed.
#### 2.6.2 IRC-Specific Moderation Tools
Familiarize yourself with these essential IRC commands:
1. `/kick <nick> [reason]`: Remove a user from the channel temporarily.
2. `/ban <mask>`: Ban a user or hostmask from the channel.
3. `/mute <nick>`: Prevent a user from speaking in the channel.
4. `/topic`: Set or modify the channel topic.
5. `/mode`: Change channel modes (e.g., moderated, invite-only).
#### 2.6.3 Moderation Actions
##### 2.6.3.1 Warnings
For minor infractions, start with a verbal warning in the channel.
Example: "Username, please avoid using excessive caps. It's considered shouting."
##### 2.6.3.2 Kicks
Use kicks for more serious or repeated minor offences.
To kick: `/kick username Reason for kick`
##### 2.6.3.3 Bans
Reserve bans for severe violations or persistent problematic behavior.
To ban: `/ban username*!*@*`
Always document the reason for bans in your moderation logs.
#### 2.6.4 Specific Situations
1. **Spam**: Use kicks, escalating to short-term bans for repeat offences.
2. **Offensive Language**: Warn, then kick. Ban for repeated offences.
3. **Flooding**: Mute temporarily, kick if behavior continues.
4. **Off-topic Discussions**: Gently redirect to appropriate channels.
5. **Bot Attacks**: Set channel to moderated mode (+m) temporarily.
#### 2.6.5 Channel Management
- Regularly update channel topics with important information or rules.
- Manage channel modes to maintain order (e.g., +m for moderated discussions).
- Coordinate with other ops to ensure consistent coverage and enforcement.
#### 2.6.6 User Support
- Be responsive to user queries about channel rules or IRC usage.
- Guide new users on proper IRC etiquette and our community standards.
#### 2.6.7 Logging and Reporting
- Maintain logs of significant moderation actions for team review.
- Report any serious incidents or patterns to admins.
### 2.7 Slack Moderation
#### 2.7.1 General Responsibilities
- Monitor channel activities across public channels.
- Enforce workspace rules and Slack's terms of service.
- Assist users with questions and foster a collaborative atmosphere.
- Manage channel settings and user permissions as needed.
#### 2.7.2 Slack-Specific Moderation Tools
Familiarize yourself with these essential Slack moderation features:
1. Message deletion: Remove inappropriate messages.
2. User management: Adjust user roles and permissions.
3. Channel management: Create, archive, or modify channel settings.
4. Workspace settings: Configure global settings for the workspace.
#### 2.7.3 Moderation Actions
##### 2.7.3.1 Warnings
For minor infractions, start with a private message to the user.
Example: "Hi [Username], please remember to use threads for extended discussions to keep the main channel clear. Thanks!"
##### 2.7.3.2 Message Removal
Use message deletion for content that violates workspace rules.
##### 2.7.3.3 Restricting Privileges
For repeated offences, consider restricting user privileges temporarily.
##### 2.7.3.4 Removing Users
In severe cases, remove users from the workspace. This should be a last resort.
#### 2.7.4 Specific Situations
1. **Off-topic discussions**: Gently redirect to appropriate channels.
2. **Inappropriate content**: Remove the content and privately message the user.
3. **Spam**: Delete spam messages and restrict user privileges if persistent.
4. **Heated arguments**: Intervene privately to de-escalate and remind users of conduct guidelines.
5. **Sensitive information sharing**: Quickly remove any posts containing sensitive data and follow up with the user.
#### 2.7.5 Channel Management
- Regularly review and update channel purposes and topics.
- Archive inactive channels to keep the workspace organized.
- Ensure channels have appropriate permissions set.
#### 2.7.6 User Support
- Be responsive to user queries about workspace rules or Slack usage.
- Guide new users on Slack etiquette and our community standards.
- Assist with general troubleshooting of Slack features.
#### 2.7.7 Logging and Reporting
- Utilize Slack's built-in logs for auditing purposes.
- Report any serious incidents or patterns to admins.
#### 2.7.8 Integration Management
- Monitor and manage third-party app integrations to ensure they're used appropriately.
- Be prepared to troubleshoot or disable problematic integrations.
### 2.8 Matrix Moderation
#### 2.8.1 General Responsibilities
- Monitor room activities across our Matrix spaces.
- Enforce room rules and the Matrix.org Terms of Service.
- Assist users with questions and foster an inclusive atmosphere.
- Manage room settings and user power levels as needed.
#### 2.8.2 Matrix-Specific Moderation Tools
Familiarize yourself with these essential Matrix moderation features:
1. Redaction: Remove inappropriate messages.
1. Kick/Ban: Remove users temporarily or permanently from rooms.
1. Room settings: Modify room join rules, visibility, and other parameters.
#### 2.8.3 Moderation Actions
##### 2.8.3.1 Warnings
For minor infractions, start with a private message to the user.
Example: "Hi @username:domain.com, please remember to stay on-topic in #general. Thanks for your cooperation!"
##### 2.8.3.2 Message Redaction
Use redaction for content that violates room rules or Matrix ToS.
##### 2.8.3.3 Kicks and Bans
In severe cases, kick or ban users from the room. Use bans sparingly and for serious violations.
#### 2.8.4 Specific Situations
1. **Spam**: Redact spam messages and lower user power level if persistent.
2. **Offensive content**: Redact the content and privately message the user.
3. **Off-topic discussions**: Gently redirect to appropriate rooms or spaces.
4. **Bridged content issues**: Address issues specific to bridged networks (e.g., IRC, Discord) appropriately.
5. **End-to-end encrypted rooms**: Be aware of limitations in moderating e2ee rooms.
#### 2.8.5 Room Management
- Regularly review and update room topics and info.
- Manage room aliases and directory visibility.
- Ensure rooms have appropriate power level settings.
#### 2.8.6 User Support
- Be responsive to user queries about room rules or Matrix usage.
- Guide new users on Matrix etiquette and our community standards.
- Assist with general troubleshooting of Matrix clients and features.
#### 2.8.7 Logging and Reporting
- Utilize Matrix's event logs for auditing purposes where necessary.
- Report any serious incidents or patterns to admins.
#### 2.8.8 Federation Management
- Be aware of federation status with other homeservers.
- Know how to contact admins of other homeservers if inter-server issues arise.
If you have not been granted a token, please notify Naomi and she will generate one for you.
## 3. Working With Fellow Moderators
### 3.1 Communication Channels
#### 3.1.1 Primary Communication Platform
- Discord serves as our primary communication hub for the moderation team.
- A private `#staff-chat` channel is available for internal discussions.
- Our forum as our primary communication hub for the moderation team.
- A private `staff` category is available for internal discussions.
#### 3.1.2 Use of Staff Chat
- Utilize the `#staff-chat` channel for:
- Utilize the `staff` channel for:
- Discussing concerns
- Seeking advice on handling situations
- Requesting assistance with ongoing issues
@ -733,177 +205,115 @@ In severe cases, kick or ban users from the room. Use bans sparingly and for ser
- Suggest improvements to moderation processes or team communication.
- Participate in any team training or development activities.
## 4. Logging Sanctions
## 4. User Support
### 4.1 Discord Sanctions
- Moderation actions on Discord are automatically logged by our system.
- No additional manual logging is required for Discord-specific actions.
### 4.2 Sanctions on Other Platforms
For all platforms other than Discord, manual logging is necessary:
#### 4.2.1 Logging Channel
- Use the `#mod-logs` channel in our Discord community for logging all non-Discord sanctions.
#### 4.2.2 Required Information
When logging a sanction, include the following details:
1. Platform: Specify the platform where the action was taken (e.g., Twitch, Reddit, Codeberg).
2. Username: Provide the exact username or handle of the sanctioned member.
3. Reason: Clearly state the reason for the sanction, referencing specific rule violations if applicable.
4. Evidence: Include or describe any relevant evidence supporting the action taken.
5. Action Taken: Specify the type of sanction (e.g., warning, temporary ban, permanent ban).
6. Duration: For temporary sanctions, note the duration.
#### 4.2.3 Logging Format
Use the following format for consistency:
```
Platform: [Platform Name]
User: [Username]
Action: [Type of Sanction]
Duration: [If applicable]
Reason: [Detailed explanation]
Evidence: [Description or link to evidence]
```
### 4.3 Best Practices for Sanction Logging
1. **Timeliness**: Log the sanction as soon as possible after taking action.
2. **Objectivity**: Stick to facts and avoid personal opinions in the log.
3. **Clarity**: Ensure your log entry is clear and understandable to other moderators.
4. **Completeness**: Include all relevant information, even if it seems minor.
5. **Confidentiality**: Do not share logs outside of the moderation team.
### 4.4 Using Logged Information
- Regularly review logs to identify patterns or recurring issues.
- Use logged information to ensure consistent application of rules across platforms.
- Refer to logs when discussing moderation strategies or updating community guidelines.
### 4.5 Correcting or Updating Logs
- If you need to correct or update a logged sanction, do so in the same channel.
- Clearly mark your message as an update or correction to a previous log entry.
### 4.6 Reviewing Logs
- Administrators should periodically review sanction logs to ensure:
- Consistency in moderation across the team
- Proper documentation of all actions
- Identification of any trends or areas needing attention
## 5. User Support
### 3.1 Role in User Experience
### 4.1 Role in User Experience
As a member of our team, you play a crucial role in ensuring a positive and smooth user experience across all our platforms. Your ability to provide timely and accurate support is essential to our community's satisfaction and growth.
### 5.2 Knowledge Base
### 4.2 Knowledge Base
- Familiarize yourself with most of our projects to answer a wide range of questions.
- Stay updated on recent changes or updates to our projects.
- Utilize available resources (documentation, FAQs, wikis) to assist users effectively.
### 5.3 Handling User Inquiries
### 4.3 Handling User Inquiries
#### 5.3.1 Immediate Assistance
#### 4.3.1 Immediate Assistance
- Respond promptly to users seeking help on any of our platforms.
- Provide clear, concise answers to questions you're confident about.
#### 5.3.2 Complex Inquiries
#### 4.3.2 Complex Inquiries
- For questions you're unsure about, don't hesitate to seek help.
- Inform the user that you're looking into their issue to manage expectations.
### 5.4 Collaborative Problem-Solving
### 4.4 Collaborative Problem-Solving
- Utilize the staff chat in Discord for discussing complex user questions.
- Engage with fellow staff members to collaboratively find solutions.
- Share knowledge and insights to improve the team's overall support capabilities.
### 5.5 Follow-up
### 4.5 Follow-up
- After providing a solution, check if the user's issue has been fully resolved.
- Encourage users to reach out again if they need further assistance.
### 5.6 Continuous Improvement
### 4.6 Continuous Improvement
- Keep track of common user issues and suggest improvements to our documentation or user interfaces.
- Share insights gained from user interactions with the rest of the team to enhance our overall support quality.
## 6. Contributor Support
## 5. Contributor Support
### 6.1 Welcoming New Contributors
### 5.1 Welcoming New Contributors
- Greet new contributors warmly when they show interest in our projects.
- Provide guidance on where to find our contribution guidelines and code of conduct.
- Offer assistance in identifying suitable first issues or tasks for newcomers.
### 6.2 Technical Assistance
### 5.2 Technical Assistance
- Help contributors set up their development environments.
- Provide explanations or resources for understanding our project structure and coding standards.
- Assist with version control (e.g. git) usage if needed.
### 6.3 Code Review Support
### 5.3 Code Review Support
- Offer constructive feedback on pull requests or proposed changes.
- Explain the reasoning behind any requested modifications.
- Guide contributors through the process of updating their submissions.
### 6.4 Documentation Support
### 5.4 Documentation Support
- Assist contributors in locating or updating project documentation.
- Encourage and guide contributors who wish to improve our documentation.
- Provide feedback on proposed documentation changes.
### 6.5 Issue Clarification
### 5.5 Issue Clarification
- Help contributors understand the scope and requirements of open issues.
- Provide additional context or clarification on feature requests or bug reports.
### 6.6 Communication Channels
### 5.6 Communication Channels
- Direct contributors to appropriate communication channels (e.g., mailing lists, chat rooms, forums) for project-specific discussions.
- Monitor these channels to provide timely responses to contributor queries.
### 6.7 Mentoring
### 5.7 Mentoring
- Offer mentorship to promising contributors who show consistent interest.
- Provide guidance on best practices, advanced topics, and project goals.
### 6.8 Recognition and Encouragement
### 5.8 Recognition and Encouragement
- Acknowledge and thank contributors for their efforts, regardless of the outcome.
- Highlight significant contributions in project updates or community announcements.
### 6.9 Conflict Resolution
### 5.9 Conflict Resolution
- Mediate any disagreements between contributors professionally and impartially.
- Ensure discussions remain constructive and aligned with our code of conduct.
### 6.10 Continuous Improvement
### 5.10 Continuous Improvement
- Regularly review and update our contribution processes based on feedback.
- Seek input from contributors on how to improve their experience.
## 7. Cross-Platform Access
## 6. Cross-Platform Access
### 7.1 Eligibility for Cross-Platform Roles
### 6.1 Eligibility for Cross-Platform Roles
- Once you have been selected for a staff position on any of our platforms, you become eligible to request staff access on additional platforms.
- This opportunity is open to all current staff members in good standing.
### 7.2 Requesting Additional Platform Access
### 6.2 Requesting Additional Platform Access
- If you wish to expand your staff role to other platforms:
- Express your interest to an admin or through the designated channel for such requests.
- Specify which additional platform(s) you'd like to moderate.
- Briefly explain why you're interested in moderating these additional platforms.
### 7.3 Approval Process
### 6.3 Approval Process
- Requests for additional platform access will be reviewed by the admin team.
- Factors considered in the approval process may include:
@ -911,29 +321,29 @@ As a member of our team, you play a crucial role in ensuring a positive and smoo
- Your familiarity with the requested platform
- The current staffing needs on that platform
### 7.4 Training and Onboarding
### 6.4 Training and Onboarding
- If approved for a cross-platform role, you may be required to undergo platform-specific training.
- Familiarize yourself with any unique rules or moderation tools for the new platform.
### 7.5 Responsibilities of Cross-Platform Staff
### 6.5 Responsibilities of Cross-Platform Staff
- Maintain consistency in rule enforcement across all platforms you moderate.
- Be aware of platform-specific nuances and adjust your approach accordingly.
- Help bridge communication between different platform teams.
### 7.6 Benefits of Cross-Platform Moderation
### 6.6 Benefits of Cross-Platform Moderation
- Provides a more cohesive user experience across our community's various platforms.
- Allows for more efficient sharing of information and moderation strategies.
- Enhances your skills and versatility as a moderator.
### 7.7 Balancing Responsibilities
### 6.7 Balancing Responsibilities
- Ensure that taking on additional platforms does not negatively impact your performance on your original platform.
- Communicate with the moderation team if you feel overwhelmed or need to scale back your responsibilities.
### 7.8 Periodic Review
### 6.8 Periodic Review
- Your cross-platform roles will be periodically reviewed to ensure effective moderation across all assigned platforms.
- Feedback and additional training may be provided as needed.