Files
hikari/bot/src/data/docs.ts
T
naomi b6c49f1206
Node.js CI / Lint and Test (push) Failing after 1m13s
feat: no more forum announcements
2025-08-14 11:40:46 -07:00

18651 lines
1.1 MiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* @copyright nhcarrigan
* @license Naomi's Public License
* @author Naomi Carrigan
*/
export const documentationData = {
"documents": [
{
"content": ":::tip\nWe maintain a full list of all officially-owned social media accounts. You can view those accounts at https://cdn.nhcarrigan.com/socials.txt.\n\n<details>\n <summary>Verification Instructions</summary>\n\nTo verify the authenticity of that document, grab our SSH key from https://git.nhcarrigan.com/naomi.keys and save it locally. ADD `naomi@nhcarrigan.com ` TO THE BEGINNING OF THIS SIGNATURE FILE. It should look like `naomi@nhcarrigan.com ssh-rsa <key string>`.\n\nSave the list of socials locally locally.\n\nCopy and save this signature locally:\n\n```\n-----BEGIN SSH SIGNATURE-----\nU1NIU0lHAAAAAQAAAhcAAAAHc3NoLXJzYQAAAAMBAAEAAAIBAMU5uZawMgDZj3m5jw9WZ6\nltOSMbYQWnfo9NyccKL8xiVoGVU9PxzSLEuPpczAZpNaKLD5JqhJ2zXN/9YVF+R3wq6NZY\ntCDTET02HShOEXTsfChEi+LVi4Brr1OY5Jo1pPViNfm4IintA1yTkCQtyQwrq/lWFvlc/B\nmS0Sn3ogEJCp0FxXYXrBfo6ujveKoYKiIBxRlHN4D13Mu00KDvufeEUqtJ42m5fNf/dKJU\n7H3Hb7e9l3IuUJeiBC8fb0tTx7E9pg6ivaH6KM8tVGK+U77LK3qzXWICutWGAg1GlMQNsd\n17sa03NB4tE12cXIVLCSPUo9Wlt+8BYNNvO14JrCJzQ4/mzBDSsUu2NKdAj4rYaoUW742/\nKnPdhfmjOpMFIW53IjldmAs5sixH8u6DrMR1Ge+goOcdwGpHGdl4c4Pkyr6gesdLIDwpE4\nsf5ea0XB23JqTDU2e7AusUzTwc4coUGPrrOBTVJI2NSJSS/eUEiGUMhUBYOTtcbnJEnHQb\nNw0sDi+8gqFLdJU6pl7NFWt8HrRKCU4g86DGO9Ym5j2MJNw3looFPjr4eNqbd0Xvnh3Hes\nbXTcDO+fT9vceJx/fT4ulE23GLiT5B0Pir8uVGaytKXTRLjBx9op7NrsvxYABQ2Z8Kp4Ck\nnTpTU75OikmKTNPltPk5sfIN5SAd0HWPAAAAB3NvY2lhbHMAAAAAAAAABnNoYTUxMgAAAh\nQAAAAMcnNhLXNoYTItNTEyAAACAHLoLzpT0ArzK3eLg3bA921wrf3Pcoxye3735O7zbOOK\njRoGgdprpXg5S5IkxEW/FARGlFX4G9nr+OTduNhBLRWwxcvRCYgGk2iRMydHzaslK0tAtN\ntz+uT5kxn+7Iky0oGvYhgXXYtbjV4QSyu6Og5VpDCluEj8c9mZx/y3/FEBfIdFSok9IqY1\nFyD7o20/pe/ZUnC90gR610F6uN67pp5NIuyFb1efnKVip99Ti3+zJ8QV/2YIyvcn+olRMj\nCoLARgxf+VMg0B+KVnT2rbSnxarG46ttl2YUPAPMgS8/P1RlrTk9bVvx6XD08R5xEcnv7o\nwS9iKxaBCHan8Wm7C5DpDmHYupQ/fj10b4ZIddf28JCPuCciHD4fvITa/ImMKTN+UqPWgO\nrBNk92TAE/ByaWcfhJDmvH4wi7HWaaumrFktN7CH1XKcYcKPlzALExAj6BtHCMWyQpgiiu\nVmS5IF/Q5nIDJ1ZOcUNlM3/joYcxXbMa5ZutRvJMnj08wLDweI6I6Q3S8gqY/nTRSwFfjV\n93VEI5Yso5mCZp16+vCegn90NlQ6jCPxc1HdytQFpcjPuQbMLdzxQpZ1WE62SoVhzVuLTn\nYpQLFsegssSDM/A1z54dgN9HI8lRNW8cxXXLKSIjDTYnk3W5dUaqW/JCttPmDcUd16YT8r\nJPPjuDt7Fb\n-----END SSH SIGNATURE-----\n```\n\nThen run:\n\n```\nssh-keygen -Y verify -f /path/to/saved/key -I naomi@nhcarrigan.com -n socials -s /path/to/saved/signature < /path/to/saved/list\n```\n\n</details>\n:::",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::0",
"metadata": {
"title": "Contact Policy"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/about/contact#"
},
{
"content": "1. Support and Communication Channels",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::1",
"metadata": {
"title": "Contact Policy"
},
"title": "1. Support and Communication Channels",
"url": "https://docs.nhcarrigan.com/about/contact#1-support-and-communication-channels"
},
{
"content": "1.1 Public Support Channels\n\nWe offer FREE support through several PUBLIC channels, including:\n\n- Community Forums\n- Public Repository Issues\n- Open IRC Channels\n- Custom Fediverse Instance\n\nThese channels are ideal for:\n\n- General inquiries about our projects\n- Bug reports and feature requests\n- Community discussions and knowledge sharing\n- Open-source collaboration opportunities",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::2",
"metadata": {
"title": "Contact Policy"
},
"title": "1.1 Public Support Channels",
"url": "https://docs.nhcarrigan.com/about/contact#11-public-support-channels"
},
{
"content": "1.2 Private Support Options\n\nWhile we encourage the use of public channels, we understand that some situations may require private communication. Please note:\n\n- Private support is a premium service and may be subject to fees.\n- We reserve the right to invoice you for private support services.\n- Billing is based on the anticipated workload for your query.\n- Responses to private queries will be provided only after invoice payment is confirmed.\n\nTo request private support, please contact us through `support@nhcarrigan.com`.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::3",
"metadata": {
"title": "Contact Policy"
},
"title": "1.2 Private Support Options",
"url": "https://docs.nhcarrigan.com/about/contact#12-private-support-options"
},
{
"content": "1.3 Engagement Opportunities\n\nOur platforms offer various ways to engage with our projects and community:\n\n- Request support for technical issues\n- Express interest in contributing to our open-source projects\n- Seek mentorship in software development\n- Participate in casual discussions with our team and community members",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::4",
"metadata": {
"title": "Contact Policy"
},
"title": "1.3 Engagement Opportunities",
"url": "https://docs.nhcarrigan.com/about/contact#13-engagement-opportunities"
},
{
"content": "1.4 Platform Directory\n\nBelow, 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.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::5",
"metadata": {
"title": "Contact Policy"
},
"title": "1.4 Platform Directory",
"url": "https://docs.nhcarrigan.com/about/contact#14-platform-directory"
},
{
"content": "1.5 Contact Form\n\nWe offer a [contact form](https://forms.nhcarrigan.com/form/HyqoJ9Th5QDiOn_GPLNIRhe1a5ON7mDQf-O_ukM6R4g) for direct, low-priority communication requests.\n\nIt 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.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::6",
"metadata": {
"title": "Contact Policy"
},
"title": "1.5 Contact Form",
"url": "https://docs.nhcarrigan.com/about/contact#15-contact-form"
},
{
"content": "2. Communication Platforms",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::7",
"metadata": {
"title": "Contact Policy"
},
"title": "2. Communication Platforms",
"url": "https://docs.nhcarrigan.com/about/contact#2-communication-platforms"
},
{
"content": "2.1. Forum\n\nOur self-hosted forum allows for more long-form communication, which is ideal for support queries and in-depth conversations.\n\n- Join Link: https://forum.nhcarrigan.com\n- Features:\n - Quick response times\n - Threaded conversations\n - Persistent and indexed posts\n- Best for: Support queries",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::8",
"metadata": {
"title": "Contact Policy"
},
"title": "2.1. Forum",
"url": "https://docs.nhcarrigan.com/about/contact#21-forum"
},
{
"content": "2.2. Code Repositories\n\nOur 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.\n\n- Link: https://git.nhcarrigan.com\n- Features:\n - Issue tracking\n - Source code for all of our products\n- Best for: Filing tickets on our software.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::9",
"metadata": {
"title": "Contact Policy"
},
"title": "2.2. Code Repositories",
"url": "https://docs.nhcarrigan.com/about/contact#22-code-repositories"
},
{
"content": "2.3. Etiquette and Best Practices\n\n- Please be respectful and follow the community guidelines on all platforms.\n- Use appropriate channels or rooms for your queries to ensure the fastest response.\n- Before asking a question, check if it has been answered in pinned messages or FAQs.\n- When seeking help, provide as much relevant information as possible.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::10",
"metadata": {
"title": "Contact Policy"
},
"title": "2.3. Etiquette and Best Practices",
"url": "https://docs.nhcarrigan.com/about/contact#23-etiquette-and-best-practices"
},
{
"content": "3. Announcements and Updates",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::11",
"metadata": {
"title": "Contact Policy"
},
"title": "3. Announcements and Updates",
"url": "https://docs.nhcarrigan.com/about/contact#3-announcements-and-updates"
},
{
"content": "3.1 Announcements Page\n\nWe have a dedicated forum category where we post all of our organisational updates.\n\n- URL: https://announcements.nhcarrigan.com\n- Nature: You can reply to announcement threads to discuss the announcement.\n- Content:\n - Project updates and new releases\n - Important community announcements\n - Event notifications\n - Major policy changes\n- Best for: Comprehensive, detailed announcements and long-form updates",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::12",
"metadata": {
"title": "Contact Policy"
},
"title": "3.1 Announcements Page",
"url": "https://docs.nhcarrigan.com/about/contact#31-announcements-page"
},
{
"content": "3.2 Blog\n\nOur blog contains more personal posts and updates.\n\n- URL: https://blog.nhcarrigan.com\n- Nature: This board is read-only.\n- Content:\n - Personal life updates\n - Random musings\n - Cool insights into our decision making processes\n- Best for: People who want more insight into the team behind NHCarrigan.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::13",
"metadata": {
"title": "Contact Policy"
},
"title": "3.2 Blog",
"url": "https://docs.nhcarrigan.com/about/contact#32-blog"
},
{
"content": "3.3 Interacting with Announcements\n\nAll of our announcements are read-only, but you can discuss them in any of our platforms mentioned in Section 1!",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::14",
"metadata": {
"title": "Contact Policy"
},
"title": "3.3 Interacting with Announcements",
"url": "https://docs.nhcarrigan.com/about/contact#33-interacting-with-announcements"
},
{
"content": "3.6 Historical Announcements\n\nAll announcements on our board are archived and remain accessible for future reference.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::15",
"metadata": {
"title": "Contact Policy"
},
"title": "3.6 Historical Announcements",
"url": "https://docs.nhcarrigan.com/about/contact#36-historical-announcements"
},
{
"content": "4. Professional Engagement and Portfolio",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::16",
"metadata": {
"title": "Contact Policy"
},
"title": "4. Professional Engagement and Portfolio",
"url": "https://docs.nhcarrigan.com/about/contact#4-professional-engagement-and-portfolio"
},
{
"content": "4.1 LinkedIn Profile\n\nLinkedIn serves as our primary professional networking platform.\n\n- Profile URL: https://linkedin.com/in/naomi-lgbt\n- Purpose:\n - Professional networking\n - Career history and accomplishments\n - Skills endorsements and recommendations\n- Best for:\n - Potential employers or clients\n - Professional collaborators\n - Industry peers",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::17",
"metadata": {
"title": "Contact Policy"
},
"title": "4.1 LinkedIn Profile",
"url": "https://docs.nhcarrigan.com/about/contact#41-linkedin-profile"
},
{
"content": "4.1.1 Connecting on LinkedIn\n\nWhen sending a connection request, please include a brief message explaining your interest. We typically respond to LinkedIn messages within 2-3 business days.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::18",
"metadata": {
"title": "Contact Policy"
},
"title": "4.1.1 Connecting on LinkedIn",
"url": "https://docs.nhcarrigan.com/about/contact#411-connecting-on-linkedin"
},
{
"content": "4.2 Peerlist Profile\n\nAs an alternative to LinkedIn, we maintain a presence on Peerlist, a platform focused on tech professionals.\n\n- Profile URL: https://peerlist.io/naomi_lgbt\n- Purpose:\n - Showcase technical projects and contributions\n - Highlight specific skills and technologies\n - Connect with other tech professionals\n- Best for:\n - Tech-focused recruiters and companies\n - Fellow developers and engineers\n - Open-source collaborators",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::19",
"metadata": {
"title": "Contact Policy"
},
"title": "4.2 Peerlist Profile",
"url": "https://docs.nhcarrigan.com/about/contact#42-peerlist-profile"
},
{
"content": "4.2.1 Engaging on Peerlist\n\nFeel free to explore our projects and contributions on Peerlist. You can leave comments or questions on specific items in our portfolio.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::20",
"metadata": {
"title": "Contact Policy"
},
"title": "4.2.1 Engaging on Peerlist",
"url": "https://docs.nhcarrigan.com/about/contact#421-engaging-on-peerlist"
},
{
"content": "4.3 Professional Inquiries\n\nWhen reaching out for professional reasons, please consider the following:\n\n- Clear Purpose: State the reason for your contact (e.g., job opportunity, collaboration, consultation).\n- Relevant Background: Provide brief context about yourself or your company.\n- Specific Questions: If you have particular queries, include them in your initial message.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::21",
"metadata": {
"title": "Contact Policy"
},
"title": "4.3 Professional Inquiries",
"url": "https://docs.nhcarrigan.com/about/contact#43-professional-inquiries"
},
{
"content": "4.4 Services\n\nIf you're interested in hiring us to perform some work for you, fill out the form at https://forms.nhcarrigan.com/form/XRlQjeu8CbMrTA-v0IPOxlUPEPitLKXTWg70UUCIORA.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::22",
"metadata": {
"title": "Contact Policy"
},
"title": "4.4 Services",
"url": "https://docs.nhcarrigan.com/about/contact#44-services"
},
{
"content": "4.5 Speaking Engagements and Events\n\nIf you're interested in having us speak at your event or contribute to your publication, fill out the form at https://forms.nhcarrigan.com/form/Xqap3Q8hazzJd4Rrp9OOs9ip8Pa7C9zOVThlyFoPCbU.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::23",
"metadata": {
"title": "Contact Policy"
},
"title": "4.5 Speaking Engagements and Events",
"url": "https://docs.nhcarrigan.com/about/contact#45-speaking-engagements-and-events"
},
{
"content": "4.6 Keeping Professional Connections Updated\n\nWe 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.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::24",
"metadata": {
"title": "Contact Policy"
},
"title": "4.6 Keeping Professional Connections Updated",
"url": "https://docs.nhcarrigan.com/about/contact#46-keeping-professional-connections-updated"
},
{
"content": "5. One-on-One Sessions\n\nWe 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.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::25",
"metadata": {
"title": "Contact Policy"
},
"title": "5. One-on-One Sessions",
"url": "https://docs.nhcarrigan.com/about/contact#5-one-on-one-sessions"
},
{
"content": "5.1 Coffee Chat - $50\n\nA casual, informal conversation to connect and share ideas.\n\n- Duration: 15 minutes\n- Purpose:\n - Get to know Naomi\n - Discuss general topics in tech\n - Share experiences and insights\n- Best for:\n - Students looking for career advice\n - Professionals seeking to expand their network\n - Anyone interested in a friendly chat about tech and open source",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::26",
"metadata": {
"title": "Contact Policy"
},
"title": "5.1 Coffee Chat - $50",
"url": "https://docs.nhcarrigan.com/about/contact#51-coffee-chat---$50"
},
{
"content": "5.2 Consulting Session - $100\n\nA focused, one-on-one session to discuss potential new projects and align our services with your needs.\n\n- Duration: 30 minutes\n- Purpose:\n - Explore your project requirements in detail\n - Discuss how our services can meet your needs\n - Provide estimated quotes for the proposed work\n- Best for:\n - Developers stuck on a particular problem\n - Project managers seeking technical guidance\n - Startups needing expert input on their tech stack",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::27",
"metadata": {
"title": "Contact Policy"
},
"title": "5.2 Consulting Session - $100",
"url": "https://docs.nhcarrigan.com/about/contact#52-consulting-session---$100"
},
{
"content": "5.3 Mentorship Session - $200\n\nAn in-depth, personalized session focused on long-term professional growth and skill development.\n\n- Duration: 1 hour\n- Purpose:\n - Provide career guidance and development strategies\n - Offer personalized learning plans and resources\n - Review and provide feedback on code or projects\n- Best for:\n - Early-career developers seeking guidance\n - Professionals looking to transition into tech\n - Anyone seeking structured, long-term professional development",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::28",
"metadata": {
"title": "Contact Policy"
},
"title": "5.3 Mentorship Session - $200",
"url": "https://docs.nhcarrigan.com/about/contact#53-mentorship-session---$200"
},
{
"content": "5.4 How to Book a Session:\n\n- Complete the [meeting request form](https://forms.nhcarrigan.com/form/uUKZiJSDm6847iDOlpZkD5QF7cAjoTbTm0F4T0EdW0I)\n- Wait for an email to schedule a time\n- Once a time is agreed upon, you will receive an invoice via email.\n- The invoice MUST be paid at least 24 hours prior to your session.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::29",
"metadata": {
"title": "Contact Policy"
},
"title": "5.4 How to Book a Session:",
"url": "https://docs.nhcarrigan.com/about/contact#54-how-to-book-a-session:"
},
{
"content": "5.5 Preparing for Your Session:\n\n- Coffee Chat: Come with topics you'd like to discuss or questions about the industry\n- Consulting: Prepare a clear description of your problem or project, and any relevant code or documentation\n- Mentorship: Outline your career goals and areas where you'd like to improve",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::30",
"metadata": {
"title": "Contact Policy"
},
"title": "5.5 Preparing for Your Session:",
"url": "https://docs.nhcarrigan.com/about/contact#55-preparing-for-your-session:"
},
{
"content": "5.6 Additional Information:\n\n- All sessions are conducted virtually via a video call over Zoom or Google Meet.\n- Payment is required at the time of booking\n- Rescheduling is possible with at least 24 hours notice\n\nFor 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.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::31",
"metadata": {
"title": "Contact Policy"
},
"title": "5.6 Additional Information:",
"url": "https://docs.nhcarrigan.com/about/contact#56-additional-information:"
},
{
"content": "6. Email Communication\n\n:::caution\nEmail communication is considered a paid service and will be invoiced at $25 per email we receive.\n:::\n\nWe 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.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::32",
"metadata": {
"title": "Contact Policy"
},
"title": "6. Email Communication",
"url": "https://docs.nhcarrigan.com/about/contact#6-email-communication"
},
{
"content": "6.1 General Inquiries\n\n- Email: contact@nhcarrigan.com\n- Use for:\n - General questions about our services or projects\n - Partnership or collaboration proposals\n - Media or press inquiries\n - Any queries that don't fit other categories",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::33",
"metadata": {
"title": "Contact Policy"
},
"title": "6.1 General Inquiries",
"url": "https://docs.nhcarrigan.com/about/contact#61-general-inquiries"
},
{
"content": "6.2 Billing and Financial Matters\n\n- Email: billing@nhcarrigan.com\n- Use for:\n - Questions about payments or invoices\n - Inquiries about outstanding balances\n - Refund requests\n - Updating billing information",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::34",
"metadata": {
"title": "Contact Policy"
},
"title": "6.2 Billing and Financial Matters",
"url": "https://docs.nhcarrigan.com/about/contact#62-billing-and-financial-matters"
},
{
"content": "6.3 Technical Support\n\n- Email: support@nhcarrigan.com\n- Use for:\n - Assistance with using our software or services\n - Reporting bugs or technical issues\n - Documentation clarifications",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::35",
"metadata": {
"title": "Contact Policy"
},
"title": "6.3 Technical Support",
"url": "https://docs.nhcarrigan.com/about/contact#63-technical-support"
},
{
"content": "6.4 Privacy Concerns\n\n- Email: privacy@nhcarrigan.com\n- Use for:\n - Questions about our privacy policy\n - Requests for data access or deletion\n - Reporting potential privacy breaches\n - Opting out of data collection (where applicable)",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::36",
"metadata": {
"title": "Contact Policy"
},
"title": "6.4 Privacy Concerns",
"url": "https://docs.nhcarrigan.com/about/contact#64-privacy-concerns"
},
{
"content": "6.5 Security Matters\n\n- Email: security@nhcarrigan.com\n- Use for:\n - Reporting security vulnerabilities\n - Questions about our security practices\n - Concerns about potential security breaches",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::37",
"metadata": {
"title": "Contact Policy"
},
"title": "6.5 Security Matters",
"url": "https://docs.nhcarrigan.com/about/contact#65-security-matters"
},
{
"content": "6.6 Legal Inquiries\n\n- Email: legal@nhcarrigan.com\n- Use for:\n - Legal questions or concerns\n - Copyright or trademark issues\n - Requests for legal documentation\n - Formal notices or communications",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::38",
"metadata": {
"title": "Contact Policy"
},
"title": "6.6 Legal Inquiries",
"url": "https://docs.nhcarrigan.com/about/contact#66-legal-inquiries"
},
{
"content": "6.7 Feedback and Suggestions\n\n- Email: feedback@nhcarrigan.com\n- Use for:\n - Providing feedback on our work or projects\n - Suggesting improvements or new features\n - Sharing your experience with our services\n - Offering ideas for future developments",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::39",
"metadata": {
"title": "Contact Policy"
},
"title": "6.7 Feedback and Suggestions",
"url": "https://docs.nhcarrigan.com/about/contact#67-feedback-and-suggestions"
},
{
"content": "6.8 Press/Media Inquiries\n\n- Email: press@nhcarrigan.com\n- Use for:\n - Requesting comment regarding news\n - Scheduling interviews for your media outlet\n - Attribution requests in academic articles",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::40",
"metadata": {
"title": "Contact Policy"
},
"title": "6.8 Press/Media Inquiries",
"url": "https://docs.nhcarrigan.com/about/contact#68-press/media-inquiries"
},
{
"content": "6.9 Event Requests\n\n- Email: events@nhcarrigan.com\n- Use for:\n - Requesting our appearance at your event\n - Speaking engagement opportunities\n - Workshop or training session requests\n - Event sponsorship inquiries",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::41",
"metadata": {
"title": "Contact Policy"
},
"title": "6.9 Event Requests",
"url": "https://docs.nhcarrigan.com/about/contact#69-event-requests"
},
{
"content": "6.10 Marketing Inquiries\n\n- Email: marketing@nhcarrigan.com\n- Use for:\n - Marketing collaboration proposals\n - Brand partnership opportunities\n - Advertising inquiries\n - Content licensing requests",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::42",
"metadata": {
"title": "Contact Policy"
},
"title": "6.10 Marketing Inquiries",
"url": "https://docs.nhcarrigan.com/about/contact#610-marketing-inquiries"
},
{
"content": "6.11 Career Information\n\n- Email: careers@nhcarrigan.com\n- Use for:\n - Sending your resume to inquire about opportunities to work with us\n - Questions about open positions\n - Inquiries\n - Following up on job applications",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::43",
"metadata": {
"title": "Contact Policy"
},
"title": "6.11 Career Information",
"url": "https://docs.nhcarrigan.com/about/contact#611-career-information"
},
{
"content": "6.12 Partnerships\n\n- Email: partners@nhcarrigan.com\n- Use for:\n - Requesting a collaboration between our organisation and yours\n - Sponsorship opportunities for our work\n - Brand ambassador programmes\n - Product placement or sponsored content inquiries",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::44",
"metadata": {
"title": "Contact Policy"
},
"title": "6.12 Partnerships",
"url": "https://docs.nhcarrigan.com/about/contact#612-partnerships"
},
{
"content": "6.13 Email Communication Guidelines\n\n- Subject Line: Please use a clear, concise subject line that summarizes your inquiry.\n- Content: Provide all relevant details in your initial email to expedite the response process.\n- Attachments: If sending attachments, please mention them in the email body and ensure they are in common file formats.\n- Response Time: We aim to respond to all emails within 2 business days. Complex inquiries may require additional time.\n- Follow-ups: If you haven't received a response after 3 business days, feel free to send a polite follow-up.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::45",
"metadata": {
"title": "Contact Policy"
},
"title": "6.13 Email Communication Guidelines",
"url": "https://docs.nhcarrigan.com/about/contact#613-email-communication-guidelines"
},
{
"content": "6.14 Email Privacy and Security\n\nAll email communications are treated as confidential.\n\nWe do not share your email address or the content of your messages with third parties unless:\n\n- Required by law; OR\n- As part of a public warning related to a violation of our Code of Conduct",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::46",
"metadata": {
"title": "Contact Policy"
},
"title": "6.14 Email Privacy and Security",
"url": "https://docs.nhcarrigan.com/about/contact#614-email-privacy-and-security"
},
{
"content": "6.15 Spam and Unsolicited Emails\n\nWe have a strict no-spam policy. If you receive any unsolicited emails claiming to be from us, please report them to security@nhcarrigan.com.\n\nBy 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.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::47",
"metadata": {
"title": "Contact Policy"
},
"title": "6.15 Spam and Unsolicited Emails",
"url": "https://docs.nhcarrigan.com/about/contact#615-spam-and-unsolicited-emails"
},
{
"content": "6.16 Acceptable Use and Consequences\n\nWe are committed to maintaining a respectful and productive communication environment. To ensure this:\n\n- All email communications should be professional and respectful.\n- Harassment, threats, or abusive language will not be tolerated.\n- Spam or excessive unsolicited emails are prohibited.\n- Attempting to use our email system for malicious purposes (e.g., phishing, spreading malware) is strictly forbidden.\n\n:::danger[Attention!]\nAbuse of our email system or violation of these guidelines will result in your email address being blocked from sending communications to any of our addresses. This block may be temporary or permanent, depending on the severity and frequency of the abuse.\n:::\n\nIf you believe your email has been blocked in error, please contact us through an alternative method listed in this document to request a review of the situation.\n\nWe reserve the right to report serious abuses to relevant authorities if necessary.\n\nBy communicating with us via email, you agree to adhere to these guidelines and understand the consequences of misuse.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::48",
"metadata": {
"title": "Contact Policy"
},
"title": "6.16 Acceptable Use and Consequences",
"url": "https://docs.nhcarrigan.com/about/contact#616-acceptable-use-and-consequences"
},
{
"content": "7. Direct Messages\n\n:::caution\nDirect messages (DMs) are considered a paid service and will be invoiced at $25 per message we receive.\n:::",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::49",
"metadata": {
"title": "Contact Policy"
},
"title": "7. Direct Messages",
"url": "https://docs.nhcarrigan.com/about/contact#7-direct-messages"
},
{
"content": "7.1 Direct Message Policy\n\nWe 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:\n\n- Each direct message received will be invoiced at $25.\n- This applies to all platforms where direct messaging is available.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::50",
"metadata": {
"title": "Contact Policy"
},
"title": "7.1 Direct Message Policy",
"url": "https://docs.nhcarrigan.com/about/contact#71-direct-message-policy"
},
{
"content": "7.2 Purpose and Use\n\nDirect messages should be used for:\n\n- Urgent matters that cannot be addressed through public channels\n- Sensitive information that shouldn't be shared publicly\n- Personalized support or consultation requests",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::51",
"metadata": {
"title": "Contact Policy"
},
"title": "7.2 Purpose and Use",
"url": "https://docs.nhcarrigan.com/about/contact#72-purpose-and-use"
},
{
"content": "7.3 Invoicing and Payment\n\n- An invoice will be generated for each direct message received.\n- Payment is required before a response will be provided.\n- Invoices will be sent to you via the direct message channel on the platform where the direct message was received.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::52",
"metadata": {
"title": "Contact Policy"
},
"title": "7.3 Invoicing and Payment",
"url": "https://docs.nhcarrigan.com/about/contact#73-invoicing-and-payment"
},
{
"content": "7.4 Response Time\n\n- Once payment is received, we aim to respond to direct messages within 1-2 business days.\n- Complex inquiries may require additional time, which will be communicated to you.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::53",
"metadata": {
"title": "Contact Policy"
},
"title": "7.4 Response Time",
"url": "https://docs.nhcarrigan.com/about/contact#74-response-time"
},
{
"content": "7.5 Refund Policy\n\n- Due to the immediate nature of the service, refunds for direct messages are not typically offered.\n- In exceptional circumstances, refund requests will be considered on a case-by-case basis.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::54",
"metadata": {
"title": "Contact Policy"
},
"title": "7.5 Refund Policy",
"url": "https://docs.nhcarrigan.com/about/contact#75-refund-policy"
},
{
"content": "7.6 Appropriate Use\n\n- Direct messages should be used responsibly and for legitimate purposes only.\n- Abusive, harassing, or spam messages will not be tolerated and may result in blocking or reporting to the platform.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::55",
"metadata": {
"title": "Contact Policy"
},
"title": "7.6 Appropriate Use",
"url": "https://docs.nhcarrigan.com/about/contact#76-appropriate-use"
},
{
"content": "7.7 Alternatives\n\nWe encourage users to consider the following alternatives before sending a direct message:\n\n- Use our public support channels for general inquiries (see Section 1.1)\n- Check our FAQ or documentation for commonly asked questions\n- Post in our community forums for non-urgent matters",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::56",
"metadata": {
"title": "Contact Policy"
},
"title": "7.7 Alternatives",
"url": "https://docs.nhcarrigan.com/about/contact#77-alternatives"
},
{
"content": "7.8 Consent and Acknowledgment\n\nBy sending a direct message, you acknowledge that you have read and agreed to this policy, including the fee structure and invoicing process.\n\nRemember, while we value direct communication, we encourage the use of our public channels whenever possible to foster community engagement and shared learning.",
"file": "src/content/docs/about/contact.md",
"id": "src/content/docs/about/contact.md::57",
"metadata": {
"title": "Contact Policy"
},
"title": "7.8 Consent and Acknowledgment",
"url": "https://docs.nhcarrigan.com/about/contact#78-consent-and-acknowledgment"
},
{
"content": "We are passionate about creating and maintaining free-to-use projects and providing guidance in various programming communities. Your support helps us continue this mission and expand our efforts.",
"file": "src/content/docs/about/donate.md",
"id": "src/content/docs/about/donate.md::0",
"metadata": {
"title": "Support Our Work 💜"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/about/donate#"
},
{
"content": "1. Why Support Us?\n\n- **Free Resources**: We offer numerous projects that are free for everyone to use and learn from.\n- **Community Guidance**: We actively participate in programming communities, offering help and mentorship.\n- **Open Source Contributions**: Your support enables us to dedicate more time to open source development.\n- **Continuous Improvement**: Donations help us improve existing projects and create new ones.",
"file": "src/content/docs/about/donate.md",
"id": "src/content/docs/about/donate.md::1",
"metadata": {
"title": "Support Our Work 💜"
},
"title": "1. Why Support Us?",
"url": "https://docs.nhcarrigan.com/about/donate#1-why-support-us?"
},
{
"content": "2. How Your Support Helps\n\n- Covers hosting and infrastructure costs\n- Allows us to dedicate more time to project development and community support\n- Enables us to invest in better tools and resources\n- Supports our ongoing education and skill development",
"file": "src/content/docs/about/donate.md",
"id": "src/content/docs/about/donate.md::2",
"metadata": {
"title": "Support Our Work 💜"
},
"title": "2. How Your Support Helps",
"url": "https://docs.nhcarrigan.com/about/donate#2-how-your-support-helps"
},
{
"content": "3. Ways to Support\n\nYou can make a $5 monthly donation via https://buy.stripe.com/cN24iTfqu1j6b3afZ2\n\nOr, if you'd like to make a one-off donation: https://donate.stripe.com/8wMcPp1zE8Ly2wEcMR",
"file": "src/content/docs/about/donate.md",
"id": "src/content/docs/about/donate.md::3",
"metadata": {
"title": "Support Our Work 💜"
},
"title": "3. Ways to Support",
"url": "https://docs.nhcarrigan.com/about/donate#3-ways-to-support"
},
{
"content": "4. Other Ways to Help\n\n- **Spread the Word**: Share our projects and resources with others who might benefit.\n- **Contribute**: If you have skills to offer, consider contributing to our open source projects.\n- **Provide Feedback**: Your input helps us improve and refine our work.",
"file": "src/content/docs/about/donate.md",
"id": "src/content/docs/about/donate.md::4",
"metadata": {
"title": "Support Our Work 💜"
},
"title": "4. Other Ways to Help",
"url": "https://docs.nhcarrigan.com/about/donate#4-other-ways-to-help"
},
{
"content": "5. Thank You!\n\nEvery contribution, no matter the size, makes a significant impact. We deeply appreciate your support and are committed to using it to benefit the wider programming community.\n\nFor any questions about donations or to discuss other support options, please contact us at donors@nhcarrigan.com.",
"file": "src/content/docs/about/donate.md",
"id": "src/content/docs/about/donate.md::5",
"metadata": {
"title": "Support Our Work 💜"
},
"title": "5. Thank You!",
"url": "https://docs.nhcarrigan.com/about/donate#5-thank-you!"
},
{
"content": "6. Perks\n\nOnce you have donated, make sure to join our [community](https://forum.nhcarrigan.com)! Once there, DM Naomi to request access to our special supporters subforum!\n\nYou can also request access to our [private development notes](https://notes.nhcarrigan.com), which gives you a sneak peek into our roadmap and future plans. You'll need to provide an email address so we can add you to the access list.",
"file": "src/content/docs/about/donate.md",
"id": "src/content/docs/about/donate.md::6",
"metadata": {
"title": "Support Our Work 💜"
},
"title": "6. Perks",
"url": "https://docs.nhcarrigan.com/about/donate#6-perks"
},
{
"content": "We're excited about the opportunity to collaborate with you and contribute to the success of your goals. Our team brings a wealth of experience and a passion for delivering high-quality solutions tailored to your specific needs.\n\n![\"If you knew I was so unstable, why'd you hire me?](https://cdn.nhcarrigan.com/hire.jpeg)",
"file": "src/content/docs/about/hire.md",
"id": "src/content/docs/about/hire.md::0",
"metadata": {
"title": "Hire us!"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/about/hire#"
},
{
"content": "1. Our Services\n\n- **Discord Bot Development**: Custom bots to enhance your server's functionality\n- **Web Development**: From simple websites to complex web applications\n- **Community Management**: Strategies to grow and maintain thriving online communities\n- **Technical Consulting**: Expert advice on your tech-related projects and decisions",
"file": "src/content/docs/about/hire.md",
"id": "src/content/docs/about/hire.md::1",
"metadata": {
"title": "Hire us!"
},
"title": "1. Our Services",
"url": "https://docs.nhcarrigan.com/about/hire#1-our-services"
},
{
"content": "2. Engagement Options\n\nWe offer flexible ways to work together, catering to projects of all sizes and complexities:",
"file": "src/content/docs/about/hire.md",
"id": "src/content/docs/about/hire.md::2",
"metadata": {
"title": "Hire us!"
},
"title": "2. Engagement Options",
"url": "https://docs.nhcarrigan.com/about/hire#2-engagement-options"
},
{
"content": "2.1. Quick Sync (15 minutes)\n\nFor those with a well-defined product idea or seeking a quick review of their community plan, book a quick sync.\n\n- Ideal for: Initial project discussions, quick advice, or community plan reviews\n- Duration: 15 minutes\n- Outcome: Rapid insights and direction for your project",
"file": "src/content/docs/about/hire.md",
"id": "src/content/docs/about/hire.md::3",
"metadata": {
"title": "Hire us!"
},
"title": "2.1. Quick Sync (15 minutes)",
"url": "https://docs.nhcarrigan.com/about/hire#21-quick-sync-(15-minutes)"
},
{
"content": "2.2. In-Depth Consultation (30 minutes)\n\nFor more complex, long-term, or in-depth projects, we recommend booking an in-depth consultation.\n\n- Ideal for: Detailed project planning, technical strategy discussions, or exploring long-term collaborations\n- Duration: 30 minutes\n- Outcome: Comprehensive project assessment and tailored recommendations",
"file": "src/content/docs/about/hire.md",
"id": "src/content/docs/about/hire.md::4",
"metadata": {
"title": "Hire us!"
},
"title": "2.2. In-Depth Consultation (30 minutes)",
"url": "https://docs.nhcarrigan.com/about/hire#22-in-depth-consultation-(30-minutes)"
},
{
"content": "2.3. Mentorship Session (60 minutes)\n\n:::tip\nIndividual mentorship sessions are made available for those who might need one-off guidance, but the best value is actually through our [Mentorship programme](/about/mentorship).\n:::\n\nFor those seeking personalized guidance and skill development, we offer a full mentorship session.\n\n- Ideal for: Individuals looking to enhance their skills in development, community management, or related areas\n- Duration: 60 minutes\n- Outcome: Personalized learning path, hands-on projects, and ongoing support",
"file": "src/content/docs/about/hire.md",
"id": "src/content/docs/about/hire.md::5",
"metadata": {
"title": "Hire us!"
},
"title": "2.3. Mentorship Session (60 minutes)",
"url": "https://docs.nhcarrigan.com/about/hire#23-mentorship-session-(60-minutes)"
},
{
"content": "3. Why Choose Us?\n\n- **Expertise**: Years of experience in development and community management\n- **Flexibility**: Multiple engagement options to suit your needs and preferences\n- **Personalized Approach**: Tailored solutions for your unique challenges\n- **Commitment to Quality**: Delivering high-value insights and solutions in every interaction",
"file": "src/content/docs/about/hire.md",
"id": "src/content/docs/about/hire.md::6",
"metadata": {
"title": "Hire us!"
},
"title": "3. Why Choose Us?",
"url": "https://docs.nhcarrigan.com/about/hire#3-why-choose-us?"
},
{
"content": "4. Ready to Get Started?\n\nSubmit a [commission request](https://forms.nhcarrigan.com/form/XRlQjeu8CbMrTA-v0IPOxlUPEPitLKXTWg70UUCIORA)!\n\nNot sure which option is right for you? Feel free to contact us with any questions. We're excited to explore how we can help bring your ideas to life and contribute to your success!",
"file": "src/content/docs/about/hire.md",
"id": "src/content/docs/about/hire.md::7",
"metadata": {
"title": "Hire us!"
},
"title": "4. Ready to Get Started?",
"url": "https://docs.nhcarrigan.com/about/hire#4-ready-to-get-started?"
},
{
"content": "Here at NHCarrigan, we are dedicated to lowering the barriers of entry into tech and helping underprivileged/under-represented classes reach their goals. As part of this mission, we offer a mentorship programme (\"Programme\").",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::0",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/about/mentorship#"
},
{
"content": "1. Introduction\n\nThese Terms and Conditions (“Terms”) outline the Programme provided by NHCarrigan (“Company”) and apply to all participants enrolled in the Programme. By enrolling, you (the \"Mentee\") agree to abide by these Terms. The Programme cost is $200 USD per month.",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::1",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "1. Introduction",
"url": "https://docs.nhcarrigan.com/about/mentorship#1-introduction"
},
{
"content": "1.1. Enrolment\n\nTo enrol in the Programme, [fill out the application](https://forms.nhcarrigan.com/form/gNv4NYZmdiMWpkUcnknII2yYCvnYNGAmabG5O5He9Mo).",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::2",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "1.1. Enrolment",
"url": "https://docs.nhcarrigan.com/about/mentorship#11-enrolment"
},
{
"content": "2. Programme Services\n\nUpon successful enrolment, the Mentee receives the following benefits:",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::3",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "2. Programme Services",
"url": "https://docs.nhcarrigan.com/about/mentorship#2-programme-services"
},
{
"content": "2.1 Monthly 1:1 Sessions\n\nParticipants are entitled to one monthly 1:1 session with a mentor to discuss progress, set goals, and address any questions. Scheduling of these sessions is subject to mutual agreement and the mentors availability.",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::4",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "2.1 Monthly 1:1 Sessions",
"url": "https://docs.nhcarrigan.com/about/mentorship#21-monthly-1:1-sessions"
},
{
"content": "2.2 Private Discord Channel\n\nParticipants will have access to a private Discord channel exclusively for Mentees. This channel offers priority response times from the NHCarrigan team. All participants must adhere to the Discord Code of Conduct found [here](https://docs.nhcarrigan.com).",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::5",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "2.2 Private Discord Channel",
"url": "https://docs.nhcarrigan.com/about/mentorship#22-private-discord-channel"
},
{
"content": "2.3 Group Meetings\n\nIf the Programme enrols five (5) or more participants within a given month, all Mentees will be invited to a monthly group meeting. This meeting will provide opportunities for group discussions, shared experiences, and networking.",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::6",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "2.3 Group Meetings",
"url": "https://docs.nhcarrigan.com/about/mentorship#23-group-meetings"
},
{
"content": "2.4 Maintainer-Level Access to Open Source Projects\n\nParticipants will gain maintainer-level access to NHCarrigans open-source projects for hands-on work experience. This access is a privilege and requires adherence to project guidelines, which can be reviewed [here](https://docs.nhcarrigan.com).",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::7",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "2.4 Maintainer-Level Access to Open Source Projects",
"url": "https://docs.nhcarrigan.com/about/mentorship#24-maintainer-level-access-to-open-source-projects"
},
{
"content": "2.5 Internship and Resume Building\n\nParticipants will have the opportunity to build their resumes through an internship with NHCarrigan. This includes eligibility for project contributions and collaboration with the NHCarrigan team.",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::8",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "2.5 Internship and Resume Building",
"url": "https://docs.nhcarrigan.com/about/mentorship#25-internship-and-resume-building"
},
{
"content": "2.6 Ongoing Support and Resources\n\nMentees will receive continuous resume reviews, personalized learning roadmaps, and dedicated guidance for the duration of their membership. Additional resources and Programme updates will be provided as part of this lifetime membership support.",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::9",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "2.6 Ongoing Support and Resources",
"url": "https://docs.nhcarrigan.com/about/mentorship#26-ongoing-support-and-resources"
},
{
"content": "3. Payment Terms\n\nThe Programme fee of $200 USD is due at the start of each month to retain membership. Failure to make payments may result in suspension or termination of services.",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::10",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "3. Payment Terms",
"url": "https://docs.nhcarrigan.com/about/mentorship#3-payment-terms"
},
{
"content": "4. Code of Conduct\n\nParticipants agree to uphold the Companys Code of Conduct and other policies, as outlined in the [NHCarrigan Documentation](https://docs.nhcarrigan.com/commnuity/coc.md).",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::11",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "4. Code of Conduct",
"url": "https://docs.nhcarrigan.com/about/mentorship#4-code-of-conduct"
},
{
"content": "5. Programme Modifications\n\nNHCarrigan reserves the right to modify Programme features, benefits, and terms at any time. Notification of such changes will be provided to participants with as much advance notice as possible.",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::12",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "5. Programme Modifications",
"url": "https://docs.nhcarrigan.com/about/mentorship#5-programme-modifications"
},
{
"content": "6. Termination and Cancellation\n\nParticipants may cancel their membership at any time, effective at the end of the current billing cycle. Refunds will not be issued for partial months. NHCarrigan reserves the right to terminate membership if a participant violates any of these Terms.",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::13",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "6. Termination and Cancellation",
"url": "https://docs.nhcarrigan.com/about/mentorship#6-termination-and-cancellation"
},
{
"content": "7. Contact Information\n\nFor questions or further information, please contact the NHCarrigan team through the official support channels listed in the [documentation](https://docs.nhcarrigan.com/about/contact).",
"file": "src/content/docs/about/mentorship.md",
"id": "src/content/docs/about/mentorship.md::14",
"metadata": {
"title": "Mentorship Programme Terms and Conditions"
},
"title": "7. Contact Information",
"url": "https://docs.nhcarrigan.com/about/mentorship#7-contact-information"
},
{
"content": "This Mission Statement (\"Statement\") articulates the core values and guiding principles of [Company Name] in its efforts to build inclusive, ethical, and sustainable technology solutions.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::0",
"metadata": {
"title": "Mission Statement"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/about/mission#"
},
{
"content": "1. Core Values",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::1",
"metadata": {
"title": "Mission Statement"
},
"title": "1. Core Values",
"url": "https://docs.nhcarrigan.com/about/mission#1-core-values"
},
{
"content": "1.1. Commitment to Inclusivity\n\nThe Company shall actively work to dismantle barriers and promote diversity in all areas of its operations. We seek to create spaces where all individuals, particularly from marginalized communities, feel supported and valued.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::2",
"metadata": {
"title": "Mission Statement"
},
"title": "1.1. Commitment to Inclusivity",
"url": "https://docs.nhcarrigan.com/about/mission#11-commitment-to-inclusivity"
},
{
"content": "1.2. Sustainability as a Priority\n\nEnvironmental sustainability is integral to the Company's mission. We shall consistently minimize our carbon footprint, use eco-friendly technologies, and ensure that every project aligns with our environmental goals.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::3",
"metadata": {
"title": "Mission Statement"
},
"title": "1.2. Sustainability as a Priority",
"url": "https://docs.nhcarrigan.com/about/mission#12-sustainability-as-a-priority"
},
{
"content": "1.3. Ethical Responsibility\n\nThe Company adheres to a strict ethical code that guides our technological developments. This includes ensuring that our technologies respect user privacy, do no harm, and contribute positively to society.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::4",
"metadata": {
"title": "Mission Statement"
},
"title": "1.3. Ethical Responsibility",
"url": "https://docs.nhcarrigan.com/about/mission#13-ethical-responsibility"
},
{
"content": "1.4. Transparency and Integrity\n\nWe are dedicated to maintaining transparency with our stakeholders, whether clients, users, or community members. Clear communication and honesty are at the forefront of our interactions and decision-making.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::5",
"metadata": {
"title": "Mission Statement"
},
"title": "1.4. Transparency and Integrity",
"url": "https://docs.nhcarrigan.com/about/mission#14-transparency-and-integrity"
},
{
"content": "1.5. Community-Driven Innovation\n\nOur projects are community-centric, encouraging collaboration and input from diverse voices. We believe in technology as a tool to uplift, empower, and serve communities through innovative solutions that address real-world challenges.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::6",
"metadata": {
"title": "Mission Statement"
},
"title": "1.5. Community-Driven Innovation",
"url": "https://docs.nhcarrigan.com/about/mission#15-community-driven-innovation"
},
{
"content": "1.6. Breaking Down Barriers in Tech\n\nThe Company is committed to tearing down the systemic and social barriers that exist in the tech industry. We actively work to make the field more accessible to individuals from all backgrounds, particularly those who have historically been excluded.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::7",
"metadata": {
"title": "Mission Statement"
},
"title": "1.6. Breaking Down Barriers in Tech",
"url": "https://docs.nhcarrigan.com/about/mission#16-breaking-down-barriers-in-tech"
},
{
"content": "1.7. Challenging Toxic Behaviors\n\nWe recognize that toxic behaviors and exclusionary practices harm communities. The Company shall take a proactive stance in challenging these behaviors within our industry and within the tech communities we interact with, fostering spaces where collaboration, respect, and growth thrive.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::8",
"metadata": {
"title": "Mission Statement"
},
"title": "1.7. Challenging Toxic Behaviors",
"url": "https://docs.nhcarrigan.com/about/mission#17-challenging-toxic-behaviors"
},
{
"content": "1.8. Mentorship and Support for New Developers\n\nThe Company is dedicated to providing mentorship and support to new developers, particularly those from underrepresented groups. Through guided mentorship, educational resources, and hands-on support, we help individuals break into the industry, equipping them with the skills and confidence to succeed.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::9",
"metadata": {
"title": "Mission Statement"
},
"title": "1.8. Mentorship and Support for New Developers",
"url": "https://docs.nhcarrigan.com/about/mission#18-mentorship-and-support-for-new-developers"
},
{
"content": "2. Strategic Goals",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::10",
"metadata": {
"title": "Mission Statement"
},
"title": "2. Strategic Goals",
"url": "https://docs.nhcarrigan.com/about/mission#2-strategic-goals"
},
{
"content": "2.1. Elevating Marginalized Voices\n\nThe Company is committed to using its platform to elevate the voices and contributions of individuals from underrepresented communities in tech and beyond.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::11",
"metadata": {
"title": "Mission Statement"
},
"title": "2.1. Elevating Marginalized Voices",
"url": "https://docs.nhcarrigan.com/about/mission#21-elevating-marginalized-voices"
},
{
"content": "2.2. Long-Term Sustainability\n\nAll Company projects and partnerships will be evaluated against their long-term environmental impact, with a focus on contributing to a sustainable future.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::12",
"metadata": {
"title": "Mission Statement"
},
"title": "2.2. Long-Term Sustainability",
"url": "https://docs.nhcarrigan.com/about/mission#22-long-term-sustainability"
},
{
"content": "2.3. Development of Ethical Technologies\n\nWe shall continue to develop and support open-source projects that align with our ethical standards, ensuring they are accessible, secure, and beneficial to society.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::13",
"metadata": {
"title": "Mission Statement"
},
"title": "2.3. Development of Ethical Technologies",
"url": "https://docs.nhcarrigan.com/about/mission#23-development-of-ethical-technologies"
},
{
"content": "2.4. Continuous Growth and Learning\n\nThe Company is committed to evolving its practices and technologies in line with industry advancements, social justice movements, and environmental research.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::14",
"metadata": {
"title": "Mission Statement"
},
"title": "2.4. Continuous Growth and Learning",
"url": "https://docs.nhcarrigan.com/about/mission#24-continuous-growth-and-learning"
},
{
"content": "2.5. Supporting the Next Generation of Developers\n\nWe will continue to build and expand initiatives aimed at mentoring and supporting new developers, ensuring that they have the knowledge and resources to thrive within the industry.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::15",
"metadata": {
"title": "Mission Statement"
},
"title": "2.5. Supporting the Next Generation of Developers",
"url": "https://docs.nhcarrigan.com/about/mission#25-supporting-the-next-generation-of-developers"
},
{
"content": "3. Amendments and Updates",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::16",
"metadata": {
"title": "Mission Statement"
},
"title": "3. Amendments and Updates",
"url": "https://docs.nhcarrigan.com/about/mission#3-amendments-and-updates"
},
{
"content": "3.1. Right to Amend\n\nThe Company reserves the right to amend this Statement as necessary to reflect evolving best practices and organizational goals.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::17",
"metadata": {
"title": "Mission Statement"
},
"title": "3.1. Right to Amend",
"url": "https://docs.nhcarrigan.com/about/mission#31-right-to-amend"
},
{
"content": "3.2. Notification of Changes\n\nSignificant amendments to this Statement will be communicated through the Companys official channels.",
"file": "src/content/docs/about/mission.md",
"id": "src/content/docs/about/mission.md::18",
"metadata": {
"title": "Mission Statement"
},
"title": "3.2. Notification of Changes",
"url": "https://docs.nhcarrigan.com/about/mission#32-notification-of-changes"
},
{
"content": "This Environmental Impact Commitment (\"Commitment\") outlines the principles and obligations that [Company Name] upholds to minimize its environmental impact and contribute to global sustainability efforts.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::0",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/about/sustainability#"
},
{
"content": "1. Definitions",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::1",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "1. Definitions",
"url": "https://docs.nhcarrigan.com/about/sustainability#1-definitions"
},
{
"content": "1.1. Environmental Impact\n\nThe measurable effect of the Companys activities, operations, and technologies on the environment, including but not limited to carbon emissions, energy consumption, and waste production.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::2",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "1.1. Environmental Impact",
"url": "https://docs.nhcarrigan.com/about/sustainability#11-environmental-impact"
},
{
"content": "1.2. Carbon Footprint\n\nThe total greenhouse gas emissions caused directly or indirectly by the Companys activities, measured in units of carbon dioxide equivalent.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::3",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "1.2. Carbon Footprint",
"url": "https://docs.nhcarrigan.com/about/sustainability#12-carbon-footprint"
},
{
"content": "1.3. Tree-Nation\n\nA reforestation and carbon offset platform used by the Company to compensate for emissions by planting trees for specific activities, including but not limited to website operations.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::4",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "1.3. Tree-Nation",
"url": "https://docs.nhcarrigan.com/about/sustainability#13-tree-nation"
},
{
"content": "1.4. Net-Negative Impact\n\nA situation where the environmental harm caused by a project or activity exceeds any positive environmental contributions or mitigation efforts.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::5",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "1.4. Net-Negative Impact",
"url": "https://docs.nhcarrigan.com/about/sustainability#14-net-negative-impact"
},
{
"content": "2. General Principles",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::6",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "2. General Principles",
"url": "https://docs.nhcarrigan.com/about/sustainability#2-general-principles"
},
{
"content": "2.1. Commitment to Sustainability\n\nThe Company is committed to sustainability at all levels of its operations, actively seeking to minimize its environmental impact and promote long-term environmental health.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::7",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "2.1. Commitment to Sustainability",
"url": "https://docs.nhcarrigan.com/about/sustainability#21-commitment-to-sustainability"
},
{
"content": "2.2. Prioritization of Environmental Impact\n\nEnvironmental considerations, including carbon footprint and resource consumption, shall be a key factor in the selection and use of technologies, tools, and resources by the Company.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::8",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "2.2. Prioritization of Environmental Impact",
"url": "https://docs.nhcarrigan.com/about/sustainability#22-prioritization-of-environmental-impact"
},
{
"content": "2.3. Responsible Technology Use\n\nThe Company shall only utilize technologies that align with its environmental goals, ensuring minimal energy consumption and environmental degradation.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::9",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "2.3. Responsible Technology Use",
"url": "https://docs.nhcarrigan.com/about/sustainability#23-responsible-technology-use"
},
{
"content": "3. Carbon Offsetting",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::10",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "3. Carbon Offsetting",
"url": "https://docs.nhcarrigan.com/about/sustainability#3-carbon-offsetting"
},
{
"content": "3.1. Partnership with Tree-Nation\n\nThe Company shall actively offset its carbon emissions through its partnership with Tree-Nation, which will involve automatically planting trees for specific online activities, such as website operations.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::11",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "3.1. Partnership with Tree-Nation",
"url": "https://docs.nhcarrigan.com/about/sustainability#31-partnership-with-tree-nation"
},
{
"content": "3.2. Scope of Offsetting\n\nCarbon offsetting efforts shall include, but are not limited to, emissions generated by:\n\n- Website hosting and maintenance\n- Digital services provided by the Company\n- Any other relevant activities contributing to the Companys carbon footprint",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::12",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "3.2. Scope of Offsetting",
"url": "https://docs.nhcarrigan.com/about/sustainability#32-scope-of-offsetting"
},
{
"content": "4. Environmental Due Diligence",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::13",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "4. Environmental Due Diligence",
"url": "https://docs.nhcarrigan.com/about/sustainability#4-environmental-due-diligence"
},
{
"content": "4.1. Project Assessment\n\nBefore taking on any project, the Company shall conduct an environmental impact assessment to ensure that the project does not introduce a net-negative impact on the environment.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::14",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "4.1. Project Assessment",
"url": "https://docs.nhcarrigan.com/about/sustainability#41-project-assessment"
},
{
"content": "4.2. Refusal of Net-Negative Work\n\nThe Company reserves the right to refuse any project or contract that it determines would result in a net-negative environmental impact.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::15",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "4.2. Refusal of Net-Negative Work",
"url": "https://docs.nhcarrigan.com/about/sustainability#42-refusal-of-net-negative-work"
},
{
"content": "4.3. Continuous Monitoring\n\nThe Company shall continuously monitor the environmental impact of its ongoing operations and projects, making adjustments as necessary to remain aligned with its sustainability goals.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::16",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "4.3. Continuous Monitoring",
"url": "https://docs.nhcarrigan.com/about/sustainability#43-continuous-monitoring"
},
{
"content": "5. Legal and Ethical Compliance",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::17",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "5. Legal and Ethical Compliance",
"url": "https://docs.nhcarrigan.com/about/sustainability#5-legal-and-ethical-compliance"
},
{
"content": "5.1. Compliance with Environmental Laws\n\nThe Company shall ensure that all its operations, projects, and partnerships comply with applicable environmental laws and regulations.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::18",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "5.1. Compliance with Environmental Laws",
"url": "https://docs.nhcarrigan.com/about/sustainability#51-compliance-with-environmental-laws"
},
{
"content": "5.2. Ethical Responsibility\n\nBeyond legal compliance, the Company acknowledges its ethical responsibility to proactively mitigate environmental harm and contribute to a sustainable future.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::19",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "5.2. Ethical Responsibility",
"url": "https://docs.nhcarrigan.com/about/sustainability#52-ethical-responsibility"
},
{
"content": "6. Amendments and Updates",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::20",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "6. Amendments and Updates",
"url": "https://docs.nhcarrigan.com/about/sustainability#6-amendments-and-updates"
},
{
"content": "6.1. Right to Amend\n\nThe Company reserves the right to amend this Commitment as necessary to reflect evolving best practices and environmental standards.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::21",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "6.1. Right to Amend",
"url": "https://docs.nhcarrigan.com/about/sustainability#61-right-to-amend"
},
{
"content": "6.2. Notification of Changes\n\nSignificant amendments to this Commitment will be communicated through the Companys official channels.",
"file": "src/content/docs/about/sustainability.md",
"id": "src/content/docs/about/sustainability.md::22",
"metadata": {
"title": "Environmental Impact Commitment"
},
"title": "6.2. Notification of Changes",
"url": "https://docs.nhcarrigan.com/about/sustainability#62-notification-of-changes"
},
{
"content": "Our moderators exercise careful discretion when implementing disciplinary measures (including but not limited to temporary suspensions, permanent bans, or other access restrictions). However, we acknowledge that misunderstandings or errors may occasionally occur.\n\nIf you believe you have been unjustly restricted from participating in our community, you may initiate our formal appeal process as outlined below.\n\n:::caution[Warning!]\nSubmitting multiple appeals for the same sanction will result in our appeals team automatically denying your request.\n:::",
"file": "src/content/docs/community/appeal.md",
"id": "src/content/docs/community/appeal.md::0",
"metadata": {
"title": "Appealing a Sanction"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/community/appeal#"
},
{
"content": "1. Preparing Your Appeal\n\nPrior to submitting an appeal, please ensure you have the following information ready:\n\n1. Confirmation that you have thoroughly reviewed and understood our Community Guidelines and Terms of Service.\n2. An explicit statement of your commitment to adhere to all applicable rules and policies.\n3. Your understanding of the specific sanction levied against you and the alleged violation(s) cited.\n4. A clear and concise explanation of why you believe the moderation decision was erroneous or disproportionate.\n5. A statement detailing your motivations for seeking reinstatement and the potential positive contributions you intend to make to our community.\n\nPlease note that incomplete or inadequately prepared appeals may be summarily dismissed. You can [find your sanction in our logs](https://moderation.nhcarrigan.com) to review.",
"file": "src/content/docs/community/appeal.md",
"id": "src/content/docs/community/appeal.md::1",
"metadata": {
"title": "Appealing a Sanction"
},
"title": "1. Preparing Your Appeal",
"url": "https://docs.nhcarrigan.com/community/appeal#1-preparing-your-appeal"
},
{
"content": "2. Appeal Submission Process\n\nTo submit your appeal, please complete the form available at the following link:\n\n[Submit a Sanction Appeal](https://forms.nhcarrigan.com/form/l3PC15yalSWjdZASTQvGo22q_uj_7OtXAhZdcW35ev8)",
"file": "src/content/docs/community/appeal.md",
"id": "src/content/docs/community/appeal.md::2",
"metadata": {
"title": "Appealing a Sanction"
},
"title": "2. Appeal Submission Process",
"url": "https://docs.nhcarrigan.com/community/appeal#2-appeal-submission-process"
},
{
"content": "3. Important Disclaimers\n\n- Submission of an appeal does not guarantee its approval.\n- The decision of the appeals review panel is final and binding.\n- We reserve the right to deny or revoke access to our services at any time, for any reason, at our sole discretion.\n- Repeated violations or abuse of the appeals process may result in permanent ineligibility for reinstatement.\n\nBy submitting an appeal, you acknowledge that you have read, understood, and agree to abide by the terms outlined in this document.",
"file": "src/content/docs/community/appeal.md",
"id": "src/content/docs/community/appeal.md::3",
"metadata": {
"title": "Appealing a Sanction"
},
"title": "3. Important Disclaimers",
"url": "https://docs.nhcarrigan.com/community/appeal#3-important-disclaimers"
},
{
"content": "",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::0",
"metadata": {
"title": "Code of Conduct"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/community/coc#"
},
{
"content": "1. Definitions",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::1",
"metadata": {
"title": "Code of Conduct"
},
"title": "1. Definitions",
"url": "https://docs.nhcarrigan.com/community/coc#1-definitions"
},
{
"content": "1.1. \"Our Community\"\n\nEncompasses all platforms and spaces, both digital and physical, where members interact under our organization's auspices. This includes, but is not limited to:\n\n- Our official Discord server\n- Our code repositories and associated accounts\n- Our official social media accounts and pages\n- Any other online forums or platforms we officially endorse or manage\n- In-person events organized or sponsored by our organization",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::2",
"metadata": {
"title": "Code of Conduct"
},
"title": "1.1. \"Our Community\"",
"url": "https://docs.nhcarrigan.com/community/coc#11-\"our-community\""
},
{
"content": "1.2. \"Community Members\"\n\nRefers to all individuals who participate in Our Community, regardless of their role or level of engagement. This includes casual users, regular contributors, and community leaders.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::3",
"metadata": {
"title": "Code of Conduct"
},
"title": "1.2. \"Community Members\"",
"url": "https://docs.nhcarrigan.com/community/coc#12-\"community-members\""
},
{
"content": "1.3. \"Community Leaders\"\n\nRefers to individuals with official responsibilities within Our Community, including but not limited to:\n\n- Moderators\n- Developers\n- Support staff\n- Administrators\n- Project managers\n- Event organizers",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::4",
"metadata": {
"title": "Code of Conduct"
},
"title": "1.3. \"Community Leaders\"",
"url": "https://docs.nhcarrigan.com/community/coc#13-\"community-leaders\""
},
{
"content": "1.4. \"Code of Conduct\" or \"CoC\"\n\nRefers to this document in its entirety, including all sections, subsections, and any future amendments.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::5",
"metadata": {
"title": "Code of Conduct"
},
"title": "1.4. \"Code of Conduct\" or \"CoC\"",
"url": "https://docs.nhcarrigan.com/community/coc#14-\"code-of-conduct\"-or-\"coc\""
},
{
"content": "1.5. \"Violating the Code of Conduct\"\n\nMeans engaging in behavior that contradicts the guidelines, rules, and principles outlined in this document.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::6",
"metadata": {
"title": "Code of Conduct"
},
"title": "1.5. \"Violating the Code of Conduct\"",
"url": "https://docs.nhcarrigan.com/community/coc#15-\"violating-the-code-of-conduct\""
},
{
"content": "1.6. \"Reporting\"\n\nRefers to the act of bringing a potential Code of Conduct violation to the attention of Community Leaders through officially designated channels.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::7",
"metadata": {
"title": "Code of Conduct"
},
"title": "1.6. \"Reporting\"",
"url": "https://docs.nhcarrigan.com/community/coc#16-\"reporting\""
},
{
"content": "1.7. \"Sanctions\"\n\nRefers to the consequences imposed on community members who violate the Code of Conduct, as determined by Community Leaders.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::8",
"metadata": {
"title": "Code of Conduct"
},
"title": "1.7. \"Sanctions\"",
"url": "https://docs.nhcarrigan.com/community/coc#17-\"sanctions\""
},
{
"content": "1.8. \"Platforms\"\n\nRefers to any digital or physical space where Our Community interacts, as listed in section 1.1.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::9",
"metadata": {
"title": "Code of Conduct"
},
"title": "1.8. \"Platforms\"",
"url": "https://docs.nhcarrigan.com/community/coc#18-\"platforms\""
},
{
"content": "2. Scope",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::10",
"metadata": {
"title": "Code of Conduct"
},
"title": "2. Scope",
"url": "https://docs.nhcarrigan.com/community/coc#2-scope"
},
{
"content": "2.1. Applicability\n\nThis Code of Conduct applies to all interactions within Our Community, including but not limited to:\n\n- Public channels and forums\n- Private channels and direct messages\n- Online and offline community spaces\n- Community-organized events and meetups\n- Any form of communication using our official platforms or branding",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::11",
"metadata": {
"title": "Code of Conduct"
},
"title": "2.1. Applicability",
"url": "https://docs.nhcarrigan.com/community/coc#21-applicability"
},
{
"content": "2.2. Extended Scope\n\nThe Code of Conduct may also apply to interactions outside Our Community when:\n\n- A Community Member is involved in an incident affecting another Community Member\n- The incident has a substantial impact on the well-being or participation of Community Members\n- The behavior significantly affects the reputation or integrity of Our Community",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::12",
"metadata": {
"title": "Code of Conduct"
},
"title": "2.2. Extended Scope",
"url": "https://docs.nhcarrigan.com/community/coc#22-extended-scope"
},
{
"content": "2.3. Temporal Scope\n\nThis Code of Conduct applies to:\n\n- Current interactions within Our Community\n- Past behavior of Community Members, including actions prior to joining Our Community\n- Ongoing patterns of behavior that may have started before joining Our Community",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::13",
"metadata": {
"title": "Code of Conduct"
},
"title": "2.3. Temporal Scope",
"url": "https://docs.nhcarrigan.com/community/coc#23-temporal-scope"
},
{
"content": "2.4. Reporting\n\nWe encourage reporting of any violations of this Code of Conduct, including:\n\n- Harassment by Community Members, especially Community Leaders\n- Incidents that occur outside Our Community spaces\n- Past incidents, regardless of when they took place",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::14",
"metadata": {
"title": "Code of Conduct"
},
"title": "2.4. Reporting",
"url": "https://docs.nhcarrigan.com/community/coc#24-reporting"
},
{
"content": "2.5. Commitment to Action\n\nCommunity Leaders commit to:\n\n- Take all good-faith reports seriously\n- Respect the privacy and security of reporters\n- Conduct fair and thorough investigations of reported incidents\n- Take appropriate action based on the findings of investigations",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::15",
"metadata": {
"title": "Code of Conduct"
},
"title": "2.5. Commitment to Action",
"url": "https://docs.nhcarrigan.com/community/coc#25-commitment-to-action"
},
{
"content": "2.6. Exclusion Rights\n\nCommunity Leaders reserve the right to exclude individuals from Our Community based on:\n\n- Violations of this Code of Conduct\n- Past behavior, including actions outside Our Community spaces\n- Behavior towards individuals who are not members of Our Community\n- Any conduct deemed detrimental to the safety, well-being, or positive environment of Our Community",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::16",
"metadata": {
"title": "Code of Conduct"
},
"title": "2.6. Exclusion Rights",
"url": "https://docs.nhcarrigan.com/community/coc#26-exclusion-rights"
},
{
"content": "2.7. Scope of Authority\n\nWhile this Code of Conduct primarily governs behavior within Our Community, we recognize that actions outside our spaces can significantly impact our environment. Therefore, Community Leaders may consider external behaviors when making decisions about community participation.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::17",
"metadata": {
"title": "Code of Conduct"
},
"title": "2.7. Scope of Authority",
"url": "https://docs.nhcarrigan.com/community/coc#27-scope-of-authority"
},
{
"content": "2.8. Amendments\n\nThe scope of this Code of Conduct may be amended as necessary to address emerging concerns or changing circumstances within Our Community. Any changes will be clearly communicated to all Community Members.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::18",
"metadata": {
"title": "Code of Conduct"
},
"title": "2.8. Amendments",
"url": "https://docs.nhcarrigan.com/community/coc#28-amendments"
},
{
"content": "3. Rules and Prohibited Conduct",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::19",
"metadata": {
"title": "Code of Conduct"
},
"title": "3. Rules and Prohibited Conduct",
"url": "https://docs.nhcarrigan.com/community/coc#3-rules-and-prohibited-conduct"
},
{
"content": "3.1. General Conduct\n\n- No trolling, insulting, or derogatory comments.\n- No harassment, whether public or private (see section 3.2 for detailed definition).\n- No incitement of violence towards any individual, including encouraging suicide or self-harm.\n- No deliberate \"outing\" of any aspect of a person's identity without their consent, except to protect vulnerable individuals from intentional abuse.\n- No publication of non-harassing private communication without explicit consent from all parties involved.\n- No advocating for members to be banned, except in direct messages to or private discussions with community leaders.\n- No spam or excessive self-promotion.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::20",
"metadata": {
"title": "Code of Conduct"
},
"title": "3.1. General Conduct",
"url": "https://docs.nhcarrigan.com/community/coc#31-general-conduct"
},
{
"content": "3.2. Harassment\n\nHarassment includes, but is not limited to:\n\n- Deliberate misgendering or use of rejected names\n- Unwanted physical contact or simulated physical contact without consent\n- Threats of violence or intimidation\n- Stalking or following\n- Unwanted photography or recording, including logging online activity for harassment purposes\n- Unwelcome sexual attention\n- Pattern of inappropriate social contact, such as requesting/assuming inappropriate levels of intimacy\n- Continued one-on-one communication after requests to cease\n- Targeted and deliberate aggression\n- Sustained disruption of discussion or community events",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::21",
"metadata": {
"title": "Code of Conduct"
},
"title": "3.2. Harassment",
"url": "https://docs.nhcarrigan.com/community/coc#32-harassment"
},
{
"content": "3.3. Respect for Identity and Diversity\n\n- No questioning or challenging someone's stated self-identity or chosen labels.\n- No unwelcome comments regarding a person's lifestyle choices and practices, including those related to food, health, parenting, relationships, drugs, and employment.\n- No offensive comments related to gender, gender identity and expression, sexual orientation, disability, mental illness, neurodiversity, physical appearance, body size, age, race, national origin, ethnic origin, nationality, immigration status, language, religion or lack thereof, or other identity markers.\n- No use or promotion of \"reverse\"-isms, including \"reverse racism,\" \"reverse sexism,\" and \"cisphobia\" against marginalized members.\n- No debating the rights and lived experiences of marginalized people in the community.\n- No racist, sexist, cissexist, ableist, or otherwise oppressive behavior, whether casual or explicit.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::22",
"metadata": {
"title": "Code of Conduct"
},
"title": "3.3. Respect for Identity and Diversity",
"url": "https://docs.nhcarrigan.com/community/coc#33-respect-for-identity-and-diversity"
},
{
"content": "3.4. Oppression and Neutrality\n\n:::caution\nNeutrality in the face of oppression is to choose the side of the oppressor.\n:::\n\nWe understand that not everyone may be aware of the struggles that underprivileged classes face. Asking questions to inform yourself is good.\n\nBut attempting to \"bow out\" of a discussion, or to claim you are remaining neutral when an under-represented person shares their experiences with oppression and anti-* legislation, is just as bad as siding against those underprivileged classes.\n\nAs such, behaviour like this is considered a violation of our Code of Conduct and will be actioned accordingly.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::23",
"metadata": {
"title": "Code of Conduct"
},
"title": "3.4. Oppression and Neutrality",
"url": "https://docs.nhcarrigan.com/community/coc#34-oppression-and-neutrality"
},
{
"content": "3.5. Content and Communication\n\n- No explicit sexual images or behavior.\n- No use of slurs or hateful terminology.\n- Content warnings should be used when discussing potentially triggering topics.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::24",
"metadata": {
"title": "Code of Conduct"
},
"title": "3.5. Content and Communication",
"url": "https://docs.nhcarrigan.com/community/coc#35-content-and-communication"
},
{
"content": "3.6. Intellectual Property and Privacy\n\n- Respect copyright and intellectual property rights.\n- Do not share personal information of others without their explicit consent.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::25",
"metadata": {
"title": "Code of Conduct"
},
"title": "3.6. Intellectual Property and Privacy",
"url": "https://docs.nhcarrigan.com/community/coc#36-intellectual-property-and-privacy"
},
{
"content": "3.7. Community Discussions and Debates\n\n- Engage in respectful and constructive dialogue.\n- Be open to learning from others' perspectives.\n- Avoid derailing discussions or intentionally inflaming tensions.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::26",
"metadata": {
"title": "Code of Conduct"
},
"title": "3.7. Community Discussions and Debates",
"url": "https://docs.nhcarrigan.com/community/coc#37-community-discussions-and-debates"
},
{
"content": "3.8. Reporting and Enforcement\n\n- Report violations of this Code of Conduct to community leaders promptly.\n- Cooperate with community leaders during investigations of reported incidents.\n- Respect the privacy of individuals involved in reports and investigations.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::27",
"metadata": {
"title": "Code of Conduct"
},
"title": "3.8. Reporting and Enforcement",
"url": "https://docs.nhcarrigan.com/community/coc#38-reporting-and-enforcement"
},
{
"content": "3.9. Compliance with Platform-Specific Rules\n\n- Adhere to the terms of service and community guidelines of any platforms used by Our Community.\n- Be aware that certain behaviors may violate platform rules even if not explicitly mentioned in this Code of Conduct.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::28",
"metadata": {
"title": "Code of Conduct"
},
"title": "3.9. Compliance with Platform-Specific Rules",
"url": "https://docs.nhcarrigan.com/community/coc#39-compliance-with-platform-specific-rules"
},
{
"content": "3.10. Amendments and Interpretations\n\n- These rules may be amended or expanded as necessary to address emerging issues.\n- Community leaders reserve the right to interpret these rules and make decisions in cases where the application of rules may be unclear.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::29",
"metadata": {
"title": "Code of Conduct"
},
"title": "3.10. Amendments and Interpretations",
"url": "https://docs.nhcarrigan.com/community/coc#310-amendments-and-interpretations"
},
{
"content": "4. Reporting and Response Procedures",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::30",
"metadata": {
"title": "Code of Conduct"
},
"title": "4. Reporting and Response Procedures",
"url": "https://docs.nhcarrigan.com/community/coc#4-reporting-and-response-procedures"
},
{
"content": "4.1. Reporting Methods\n\n- In Discord: Type @Moderator in any channel to alert community leaders.\n- Direct Message: Contact a community leader directly via private message.\n- Email: contact@nhcarrigan.com",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::31",
"metadata": {
"title": "Code of Conduct"
},
"title": "4.1. Reporting Methods",
"url": "https://docs.nhcarrigan.com/community/coc#41-reporting-methods"
},
{
"content": "4.2. Information to Include in Reports\n\n- Your contact information (unless reporting anonymously)\n- Names or descriptions of individuals involved\n- Description of the incident, including date, time, and location (online or physical)\n- Any relevant screenshots, chat logs, or other evidence\n- Any additional context you believe is important",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::32",
"metadata": {
"title": "Code of Conduct"
},
"title": "4.2. Information to Include in Reports",
"url": "https://docs.nhcarrigan.com/community/coc#42-information-to-include-in-reports"
},
{
"content": "4.3. Handling of Reports\n\n- We will respond to all reports as promptly as possible.\n- If a reported violator is on our staff team, they will be immediately recused from handling the incident.\n- All reports will be handled with discretion and confidentiality to the extent possible.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::33",
"metadata": {
"title": "Code of Conduct"
},
"title": "4.3. Handling of Reports",
"url": "https://docs.nhcarrigan.com/community/coc#43-handling-of-reports"
},
{
"content": "4.4. Confidentiality and Privacy\n\n- We will respect confidentiality requests, especially to protect victims of abuse.\n- Anonymous reporting options are available, though they may limit our ability to investigate.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::34",
"metadata": {
"title": "Code of Conduct"
},
"title": "4.4. Confidentiality and Privacy",
"url": "https://docs.nhcarrigan.com/community/coc#44-confidentiality-and-privacy"
},
{
"content": "4.5. Public Statements and Warnings\n\n- At our discretion, we may publicly name a person about whom we've received harassment complaints.\n- We may privately warn third parties about individuals if we believe it will increase community safety.\n- We will not name harassment victims without their explicit, affirmative consent.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::35",
"metadata": {
"title": "Code of Conduct"
},
"title": "4.5. Public Statements and Warnings",
"url": "https://docs.nhcarrigan.com/community/coc#45-public-statements-and-warnings"
},
{
"content": "4.6. False Reports and Abuse of Process\n\n- We reserve the right to reject reports we believe to have been made in bad faith.\n- Reports intended to silence legitimate criticism may be dismissed without response.\n- Deliberately false reporting is a violation of this Code of Conduct and may result in sanctions.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::36",
"metadata": {
"title": "Code of Conduct"
},
"title": "4.6. False Reports and Abuse of Process",
"url": "https://docs.nhcarrigan.com/community/coc#46-false-reports-and-abuse-of-process"
},
{
"content": "4.7. Protection of Reporters and Victims\n\n- We will take all reasonable steps to protect reporters and victims from retaliation.\n- Retaliation against reporters or victims is a serious violation of this Code of Conduct.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::37",
"metadata": {
"title": "Code of Conduct"
},
"title": "4.7. Protection of Reporters and Victims",
"url": "https://docs.nhcarrigan.com/community/coc#47-protection-of-reporters-and-victims"
},
{
"content": "4.8. Investigation Process\n\n- We will conduct a thorough and impartial investigation of all reports.\n- Investigations will be conducted as quickly as possible while ensuring thoroughness.\n- All parties involved will be given an opportunity to present their perspective.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::38",
"metadata": {
"title": "Code of Conduct"
},
"title": "4.8. Investigation Process",
"url": "https://docs.nhcarrigan.com/community/coc#48-investigation-process"
},
{
"content": "4.9. Outcomes and Appeals\n\n- After investigation, we will determine appropriate actions based on the evidence.\n- We will communicate outcomes to involved parties as appropriate, respecting privacy concerns.\n- An appeals process will be available for individuals who believe a decision was made in error.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::39",
"metadata": {
"title": "Code of Conduct"
},
"title": "4.9. Outcomes and Appeals",
"url": "https://docs.nhcarrigan.com/community/coc#49-outcomes-and-appeals"
},
{
"content": "4.10. Continuous Improvement\n\n- We will regularly review our reporting and response procedures to ensure their effectiveness.\n- Feedback on these procedures is welcome and will be considered for future improvements.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::40",
"metadata": {
"title": "Code of Conduct"
},
"title": "4.10. Continuous Improvement",
"url": "https://docs.nhcarrigan.com/community/coc#410-continuous-improvement"
},
{
"content": "4.11. Support for Community Leaders\n\n- We recognize the potential for burnout among our volunteer moderators and leaders.\n- We will provide support and resources to our community leaders to help them manage their responsibilities effectively.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::41",
"metadata": {
"title": "Code of Conduct"
},
"title": "4.11. Support for Community Leaders",
"url": "https://docs.nhcarrigan.com/community/coc#411-support-for-community-leaders"
},
{
"content": "5. Sanctions and Enforcement",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::42",
"metadata": {
"title": "Code of Conduct"
},
"title": "5. Sanctions and Enforcement",
"url": "https://docs.nhcarrigan.com/community/coc#5-sanctions-and-enforcement"
},
{
"content": "5.1. General Principles\n\n- Participants must immediately comply when asked to stop any harmful behavior.\n- Community leaders may take any appropriate action in response to harmful behavior.\n- All sanctions will be applied fairly, consistently, and proportionally to the violation.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::43",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.1. General Principles",
"url": "https://docs.nhcarrigan.com/community/coc#51-general-principles"
},
{
"content": "5.2. Authority of Community Leaders\n\n- Community leaders have the right and responsibility to remove, edit, or reject contributions not aligned with this Code of Conduct.\n- Leaders commit to applying these principles fairly and consistently in all aspects of community management.\n- Leaders who fail to follow or enforce the Code of Conduct may be permanently removed from their position.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::44",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.2. Authority of Community Leaders",
"url": "https://docs.nhcarrigan.com/community/coc#52-authority-of-community-leaders"
},
{
"content": "5.3 Sanction Criteria\n\nThe following list outlines the criteria used when determining if a sanction should be issued.\n\n- Behaviour which violates this Code of Conduct, our Community Guidelines, or our other public policies.\n- Behaviour which our staff feel is not in the spirit of the policy, even if it is not violating the letter of the policy.\n- Repeated behaviour that has been previously sanctioned, as outlined in our escalation policy.\n- Attempts to circumvent sanctions, such as ban evasion.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::45",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.3 Sanction Criteria",
"url": "https://docs.nhcarrigan.com/community/coc#53-sanction-criteria"
},
{
"content": "5.4. Privacy and Security\n\n- All community leaders are obligated to respect the privacy and security of incident reporters.\n- Information about sanctions will be shared on a need-to-know basis.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::46",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.4. Privacy and Security",
"url": "https://docs.nhcarrigan.com/community/coc#54-privacy-and-security"
},
{
"content": "5.5. Gradated Sanction System\n\nCommunity leaders will follow these Community Impact Guidelines in determining consequences:",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::47",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.5. Gradated Sanction System",
"url": "https://docs.nhcarrigan.com/community/coc#55-gradated-sanction-system"
},
{
"content": "5.5.1. Level 1: Reminder\n\n- Example Behavior: Use of inappropriate language or other behavior deemed unprofessional or unwelcome.\n- Consequences:\n - A public, written reminder from community leaders\n - Clarification of the violation and why the behavior was inappropriate\n - A public apology may be requested",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::48",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.5.1. Level 1: Reminder",
"url": "https://docs.nhcarrigan.com/community/coc#551-level-1:-reminder"
},
{
"content": "5.5.2. Level 2: Warning\n\n- Example Behavior: A violation through a single incident or series of actions.\n- Consequences:\n - A formal warning\n - Clear communication of consequences for continued behavior\n - Incident is logged for future reference",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::49",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.5.2. Level 2: Warning",
"url": "https://docs.nhcarrigan.com/community/coc#552-level-2:-warning"
},
{
"content": "5.5.3. Level 3: Temporary Removal\n\n- Example Behavior: A serious violation of community standards or sustained inappropriate behavior.\n- Consequences:\n - Temporary removal from community platforms (e.g., Discord kick)\n - Clear conditions for return, including a cooling-off period\n - Requirement to re-read and acknowledge the Code of Conduct before rejoining",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::50",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.5.3. Level 3: Temporary Removal",
"url": "https://docs.nhcarrigan.com/community/coc#553-level-3:-temporary-removal"
},
{
"content": "5.5.4. Level 4: Permanent Ban\n\n- Example Behavior: Pattern of violations, sustained inappropriate behavior, harassment, or aggression towards individuals or groups.\n- Consequences:\n - Permanent ban from all community platforms\n - Public statement may be made, if deemed necessary for community safety",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::51",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.5.4. Level 4: Permanent Ban",
"url": "https://docs.nhcarrigan.com/community/coc#554-level-4:-permanent-ban"
},
{
"content": "5.6. Additional Sanction Considerations\n\n- Repeated violations will generally result in escalating sanctions.\n- The severity of the violation may warrant skipping levels in the sanction system.\n- Community leaders may impose additional requirements, such as public apologies or community service, as conditions for continued participation.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::52",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.6. Additional Sanction Considerations",
"url": "https://docs.nhcarrigan.com/community/coc#56-additional-sanction-considerations"
},
{
"content": "5.7. Appeals Process\n\n- Individuals may appeal sanctions by [completing the form](/community/appeal)\n- Appeals will be reviewed by leaders not involved in the original decision.\n- During the appeal, the original sanction remains in effect.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::53",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.7. Appeals Process",
"url": "https://docs.nhcarrigan.com/community/coc#57-appeals-process"
},
{
"content": "5.8. Documentation and Transparency\n\n- All formal sanctions will be publicised for review and consistency. Sanctions can be viewed at https://logs.nhcarrigan.com.\n- Aggregate data on Code of Conduct violations and sanctions may be published periodically to ensure transparency.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::54",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.8. Documentation and Transparency",
"url": "https://docs.nhcarrigan.com/community/coc#58-documentation-and-transparency"
},
{
"content": "5.9. Rehabilitation and Education\n\n- Where appropriate, we will provide resources and support for individuals to learn from their mistakes and improve their behavior.\n- For less severe violations, completion of educational programs may be offered as an alternative or supplement to other sanctions.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::55",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.9. Rehabilitation and Education",
"url": "https://docs.nhcarrigan.com/community/coc#59-rehabilitation-and-education"
},
{
"content": "5.10. Legal Implications\n\n- In cases of illegal activity, appropriate legal authorities may be notified.\n- Our sanctions do not preclude or replace any legal action that may be warranted.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::56",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.10. Legal Implications",
"url": "https://docs.nhcarrigan.com/community/coc#510-legal-implications"
},
{
"content": "5.11. Regular Review\n\n- This sanction system will be reviewed periodically to ensure its effectiveness and fairness.\n- Community feedback on the sanction system is welcome and will be considered in reviews.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::57",
"metadata": {
"title": "Code of Conduct"
},
"title": "5.11. Regular Review",
"url": "https://docs.nhcarrigan.com/community/coc#511-regular-review"
},
{
"content": "6. Moderation Logs and Transparency",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::58",
"metadata": {
"title": "Code of Conduct"
},
"title": "6. Moderation Logs and Transparency",
"url": "https://docs.nhcarrigan.com/community/coc#6-moderation-logs-and-transparency"
},
{
"content": "6.1. Purpose of Moderation Logs\n\n- To ensure transparency in moderation sanctions\n- To maintain accountability of the moderation team to community members\n- To provide a clear record of enforcement of the Code of Conduct",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::59",
"metadata": {
"title": "Code of Conduct"
},
"title": "6.1. Purpose of Moderation Logs",
"url": "https://docs.nhcarrigan.com/community/coc#61-purpose-of-moderation-logs"
},
{
"content": "6.2. Scope of Logged Actions\n\n- All moderation sanctions across all community platforms will be logged\n- This includes, but is not limited to:\n - Warnings issued\n - Temporary removals or suspensions\n - Permanent bans\n - Appeals and their outcomes",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::60",
"metadata": {
"title": "Code of Conduct"
},
"title": "6.2. Scope of Logged Actions",
"url": "https://docs.nhcarrigan.com/community/coc#62-scope-of-logged-actions"
},
{
"content": "6.3. Location of Moderation Logs\n\n- All moderation sanctions will be publicly logged at https://logs.nhcarrigan.com\n- The log will be accessible to all community members",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::61",
"metadata": {
"title": "Code of Conduct"
},
"title": "6.3. Location of Moderation Logs",
"url": "https://docs.nhcarrigan.com/community/coc#63-location-of-moderation-logs"
},
{
"content": "6.4. Information Included in Logs\n\n- Date and time of the action\n- Type of action taken\n- Reason for the action\n- Platform where the violation occurred\n- Identifier of the user who received the action\n- Identifier of the leader who performed the action\n- Any relevant evidence",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::62",
"metadata": {
"title": "Code of Conduct"
},
"title": "6.4. Information Included in Logs",
"url": "https://docs.nhcarrigan.com/community/coc#64-information-included-in-logs"
},
{
"content": "6.5. Privacy Considerations\n\n- In cases where privacy is crucial (e.g., harassment reports), certain details may be omitted or generalized",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::63",
"metadata": {
"title": "Code of Conduct"
},
"title": "6.5. Privacy Considerations",
"url": "https://docs.nhcarrigan.com/community/coc#65-privacy-considerations"
},
{
"content": "6.6. Accessibility of Logs\n\n- The moderation log channel will be read-only for regular community members\n- Community members can request clarification on logged sanctions through appropriate channels",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::64",
"metadata": {
"title": "Code of Conduct"
},
"title": "6.6. Accessibility of Logs",
"url": "https://docs.nhcarrigan.com/community/coc#66-accessibility-of-logs"
},
{
"content": "6.7. Retention of Logs\n\n- Moderation logs will be retained for a period of no less than 1 year.\n - After this period, logs may be archived or summarized for long-term record-keeping",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::65",
"metadata": {
"title": "Code of Conduct"
},
"title": "6.7. Retention of Logs",
"url": "https://docs.nhcarrigan.com/community/coc#67-retention-of-logs"
},
{
"content": "6.8. Audit and Review\n\n- Moderation logs will be periodically reviewed by community leadership to ensure consistency and fairness in enforcement\n- Annual reports summarizing moderation actions may be published to the community",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::66",
"metadata": {
"title": "Code of Conduct"
},
"title": "6.8. Audit and Review",
"url": "https://docs.nhcarrigan.com/community/coc#68-audit-and-review"
},
{
"content": "6.9. Dispute Resolution\n\n- If a community member believes a moderation action was taken in error, they can refer to the logs and follow the appeals process outlined in the Sanctions section",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::67",
"metadata": {
"title": "Code of Conduct"
},
"title": "6.9. Dispute Resolution",
"url": "https://docs.nhcarrigan.com/community/coc#69-dispute-resolution"
},
{
"content": "6.10. Moderator Accountability\n\n- Patterns of biased or inconsistent moderation will be addressed by community leadership\n- Moderators who consistently fail to log their actions may have their privileges revoked",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::68",
"metadata": {
"title": "Code of Conduct"
},
"title": "6.10. Moderator Accountability",
"url": "https://docs.nhcarrigan.com/community/coc#610-moderator-accountability"
},
{
"content": "6.11. Feedback and Improvement\n\n- Community members are encouraged to provide feedback on the moderation log system\n- The logging process will be reviewed periodically and may be adjusted to better serve the community's needs",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::69",
"metadata": {
"title": "Code of Conduct"
},
"title": "6.11. Feedback and Improvement",
"url": "https://docs.nhcarrigan.com/community/coc#611-feedback-and-improvement"
},
{
"content": "7. Advertising and Promotion",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::70",
"metadata": {
"title": "Code of Conduct"
},
"title": "7. Advertising and Promotion",
"url": "https://docs.nhcarrigan.com/community/coc#7-advertising-and-promotion"
},
{
"content": "7.1. General Prohibition\n\n- Advertising and self-promotion are generally not permitted within our community spaces.\n- This includes, but is not limited to, unsolicited promotion of products, services, websites, social media accounts, or other communities.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::71",
"metadata": {
"title": "Code of Conduct"
},
"title": "7.1. General Prohibition",
"url": "https://docs.nhcarrigan.com/community/coc#71-general-prohibition"
},
{
"content": "7.2. Exceptions\n\n- Links or information expressly requested by our team for support or moderation purposes.\n- Sharing of resources directly relevant to ongoing discussions, when done in good faith and not for commercial gain.\n- Official announcements or promotions approved by community leadership.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::72",
"metadata": {
"title": "Code of Conduct"
},
"title": "7.2. Exceptions",
"url": "https://docs.nhcarrigan.com/community/coc#72-exceptions"
},
{
"content": "7.3. Support and Moderation Contexts\n\n- Community members may be asked to provide links or information to assist with support inquiries or moderation investigations.\n- In these cases, sharing such information is permitted and encouraged.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::73",
"metadata": {
"title": "Code of Conduct"
},
"title": "7.3. Support and Moderation Contexts",
"url": "https://docs.nhcarrigan.com/community/coc#73-support-and-moderation-contexts"
},
{
"content": "7.4. Relevance and Context\n\n- Any shared links or information must be directly relevant to the current discussion or inquiry.\n- The relevance and appropriateness of shared content will be at the discretion of community leaders.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::74",
"metadata": {
"title": "Code of Conduct"
},
"title": "7.4. Relevance and Context",
"url": "https://docs.nhcarrigan.com/community/coc#74-relevance-and-context"
},
{
"content": "7.5. Disclosure of Affiliations\n\n- If sharing information about a product or service with which you have a personal or professional affiliation, this affiliation must be clearly disclosed.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::75",
"metadata": {
"title": "Code of Conduct"
},
"title": "7.5. Disclosure of Affiliations",
"url": "https://docs.nhcarrigan.com/community/coc#75-disclosure-of-affiliations"
},
{
"content": "7.6. Consequences of Violation\n\n- Violations of this policy will be treated as a breach of the Code of Conduct.\n- Consequences may range from content removal to temporary or permanent bans, depending on the severity and frequency of violations.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::76",
"metadata": {
"title": "Code of Conduct"
},
"title": "7.6. Consequences of Violation",
"url": "https://docs.nhcarrigan.com/community/coc#76-consequences-of-violation"
},
{
"content": "7.7. Appeals and Clarifications\n\n- If you are unsure whether specific content would be considered advertising, consult with a community leader before posting.\n- If your content is removed under this policy, you may appeal the decision through the established channels outlined in the Sanctions section.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::77",
"metadata": {
"title": "Code of Conduct"
},
"title": "7.7. Appeals and Clarifications",
"url": "https://docs.nhcarrigan.com/community/coc#77-appeals-and-clarifications"
},
{
"content": "8. Languages",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::78",
"metadata": {
"title": "Code of Conduct"
},
"title": "8. Languages",
"url": "https://docs.nhcarrigan.com/community/coc#8-languages"
},
{
"content": "8.1. Official Language\n\n- The official language of our community is English.\n- All community interactions, discussions, and contributions should be in English.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::79",
"metadata": {
"title": "Code of Conduct"
},
"title": "8.1. Official Language",
"url": "https://docs.nhcarrigan.com/community/coc#81-official-language"
},
{
"content": "8.2. Scope of English-Only Policy\n\n- This policy applies to all community spaces, including but not limited to:\n - Discord channels\n - GitHub discussions and issues\n - Documentation\n - Official communication channels",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::80",
"metadata": {
"title": "Code of Conduct"
},
"title": "8.2. Scope of English-Only Policy",
"url": "https://docs.nhcarrigan.com/community/coc#82-scope-of-english-only-policy"
},
{
"content": "8.3. Multilingual Applications\n\n- Even if our applications or services are offered in multiple languages, community discussions about them must be conducted in English.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::81",
"metadata": {
"title": "Code of Conduct"
},
"title": "8.3. Multilingual Applications",
"url": "https://docs.nhcarrigan.com/community/coc#83-multilingual-applications"
},
{
"content": "8.4. Rationale\n\n- To ensure clear communication among all community members.\n- To facilitate effective moderation and support.\n- To maintain consistency across all community platforms.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::82",
"metadata": {
"title": "Code of Conduct"
},
"title": "8.4. Rationale",
"url": "https://docs.nhcarrigan.com/community/coc#84-rationale"
},
{
"content": "8.5. Exceptions\n\n- Specific channels or sections designated for other languages, if explicitly created and approved by community leadership.\n- Brief translations to assist non-native English speakers, when immediately followed by an English translation.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::83",
"metadata": {
"title": "Code of Conduct"
},
"title": "8.5. Exceptions",
"url": "https://docs.nhcarrigan.com/community/coc#85-exceptions"
},
{
"content": "8.6. Support for Non-Native Speakers\n\n- We encourage patience and understanding towards non-native English speakers.\n- Community members are encouraged to help clarify or rephrase messages if there's a language barrier, while maintaining English as the primary language.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::84",
"metadata": {
"title": "Code of Conduct"
},
"title": "8.6. Support for Non-Native Speakers",
"url": "https://docs.nhcarrigan.com/community/coc#86-support-for-non-native-speakers"
},
{
"content": "8.7. Translation Tools\n\n- While automatic translation tools may be used personally, the original English content should be included in all community interactions.",
"file": "src/content/docs/community/coc.md",
"id": "src/content/docs/community/coc.md::85",
"metadata": {
"title": "Code of Conduct"
},
"title": "8.7. Translation Tools",
"url": "https://docs.nhcarrigan.com/community/coc#87-translation-tools"
},
{
"content": "",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::0",
"metadata": {
"title": "Community Guidelines"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/community/guide#"
},
{
"content": "1. Introduction\n\nWelcome to our community. These guidelines are designed to foster a safe, respectful, and productive environment for all members. While not exhaustive or legally binding, adherence to these principles is strongly encouraged to maintain the integrity and value of our community.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::1",
"metadata": {
"title": "Community Guidelines"
},
"title": "1. Introduction",
"url": "https://docs.nhcarrigan.com/community/guide#1-introduction"
},
{
"content": "1.1. Purpose\n\nThe purpose of these Community Guidelines is to:\n\n1. Promote positive interactions and meaningful discussions\n1. Protect the well-being and rights of all community members\n1. Maintain a welcoming atmosphere for diverse perspectives and backgrounds",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::2",
"metadata": {
"title": "Community Guidelines"
},
"title": "1.1. Purpose",
"url": "https://docs.nhcarrigan.com/community/guide#11-purpose"
},
{
"content": "1.2 Scope\n\nThese guidelines apply to all forms of interaction within our community, including but not limited to:\n\n- Forum discussions\n- Comment sections\n- Direct messaging\n- Live events or webinars\n- Social media interactions associated with our community",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::3",
"metadata": {
"title": "Community Guidelines"
},
"title": "1.2 Scope",
"url": "https://docs.nhcarrigan.com/community/guide#12-scope"
},
{
"content": "1.3 Encouragement to Participate\n\nWe highly value your contributions and encourage you to:\n\n1. Actively engage in discussions and share your knowledge\n2. Provide constructive feedback and support to fellow members\n3. Report any concerns or violations to the community moderators\n4. Suggest improvements to enhance the community experience",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::4",
"metadata": {
"title": "Community Guidelines"
},
"title": "1.3 Encouragement to Participate",
"url": "https://docs.nhcarrigan.com/community/guide#13-encouragement-to-participate"
},
{
"content": "1.4 Code of Conduct\n\nWhile many aspects of our Community Guidelines are recommendations, our Code of Conduct establishes non-negotiable standards that ALL community members MUST adhere to in ALL interactions within our community spaces.\n\nNothing in this guide may supercede or overwrite the Code of Conduct.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::5",
"metadata": {
"title": "Community Guidelines"
},
"title": "1.4 Code of Conduct",
"url": "https://docs.nhcarrigan.com/community/guide#14-code-of-conduct"
},
{
"content": "2. Interacting with Staff\n\nPlease remember that our staff members generously volunteer their time to help our community remain safe and welcoming. Above all else, be kind to them - moderating online spaces is *hard*, and we don't need to make it harder on them!",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::6",
"metadata": {
"title": "Community Guidelines"
},
"title": "2. Interacting with Staff",
"url": "https://docs.nhcarrigan.com/community/guide#2-interacting-with-staff"
},
{
"content": "2.1 Respect for Authority\n\nOur staff team consists of trusted members empowered with tools to maintain community safety and harmony. While they strive for fairness and consistency, it's important to recognize their human nature and the potential for occasional errors.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::7",
"metadata": {
"title": "Community Guidelines"
},
"title": "2.1 Respect for Authority",
"url": "https://docs.nhcarrigan.com/community/guide#21-respect-for-authority"
},
{
"content": "2.2 Dispute Resolution Process\n\nIf you believe a staff decision was made in error or in bad faith, we encourage you to follow these steps:\n\n1. Refrain from direct argumentation or confrontation with staff members.\n2. Document the incident, including relevant details and any supporting evidence.\n3. Submit an appeal through our official [appeal form](/community/appeal).",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::8",
"metadata": {
"title": "Community Guidelines"
},
"title": "2.2 Dispute Resolution Process",
"url": "https://docs.nhcarrigan.com/community/guide#22-dispute-resolution-process"
},
{
"content": "2.3 Appeal Process\n\n- Appeals are reviewed by Naomi, who has exclusive access to the submission form.\n- All appeals will be treated confidentially and impartially.\n- Information from submissions will only be shared on a need-to-know basis to investigate and resolve the issue.\n- Your identity will be protected; any revealed submission information will not be associated with your name.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::9",
"metadata": {
"title": "Community Guidelines"
},
"title": "2.3 Appeal Process",
"url": "https://docs.nhcarrigan.com/community/guide#23-appeal-process"
},
{
"content": "2.4 Staff Accountability\n\nWe are committed to maintaining high standards of conduct for our staff. Any substantiated claims of misconduct or abuse of power will be addressed promptly and appropriately.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::10",
"metadata": {
"title": "Community Guidelines"
},
"title": "2.4 Staff Accountability",
"url": "https://docs.nhcarrigan.com/community/guide#24-staff-accountability"
},
{
"content": "2.5 Continuous Improvement\n\nWe value your feedback on our moderation processes. If you have suggestions for improving our systems or policies, please submit them through the appropriate channels.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::11",
"metadata": {
"title": "Community Guidelines"
},
"title": "2.5 Continuous Improvement",
"url": "https://docs.nhcarrigan.com/community/guide#25-continuous-improvement"
},
{
"content": "2.6 Responding to Sanctions\n\nIf you receive a sanction, here are tips on how to avoid further moderation action:\n\n- Do not continue the behaviour\n- Do not attempt to continue the behaviour in a slightly modified way, such as to avoid a specific component of our policies\n- Do not make passive-aggressive comments about our policies, staff, or your sanction\n- Do not try to justify your behaviour by comparing it to another user's that was not sanctioned\n- Do try to learn from the sanction and improve your interactions\n- Do keep an open mind and try to learn\n- Do be the kindest you can be",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::12",
"metadata": {
"title": "Community Guidelines"
},
"title": "2.6 Responding to Sanctions",
"url": "https://docs.nhcarrigan.com/community/guide#26-responding-to-sanctions"
},
{
"content": "3. Plural Systems",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::13",
"metadata": {
"title": "Community Guidelines"
},
"title": "3. Plural Systems",
"url": "https://docs.nhcarrigan.com/community/guide#3-plural-systems"
},
{
"content": "3.1 Understanding Plurality\n\nPlural systems refer to individuals who experience the presence of two or more distinct identities or personality states, often called alters. Our community recognizes and respects the existence of plural systems.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::14",
"metadata": {
"title": "Community Guidelines"
},
"title": "3.1 Understanding Plurality",
"url": "https://docs.nhcarrigan.com/community/guide#31-understanding-plurality"
},
{
"content": "3.2 Inclusivity and Respect\n\n1. Plural systems are fully welcome and valued members of our community.\n2. We are committed to providing a safe and supportive environment for all system members.\n3. Discrimination or harassment based on plurality is strictly prohibited.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::15",
"metadata": {
"title": "Community Guidelines"
},
"title": "3.2 Inclusivity and Respect",
"url": "https://docs.nhcarrigan.com/community/guide#32-inclusivity-and-respect"
},
{
"content": "3.3 Privacy and Boundaries\n\n1. Respect the privacy of plural systems and their individual alters.\n2. Do not pressure or attempt to coerce any system or alter to reveal information they are not comfortable sharing.\n3. Refrain from trying to identify which alter is fronting or using a platform's plural proxying service.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::16",
"metadata": {
"title": "Community Guidelines"
},
"title": "3.3 Privacy and Boundaries",
"url": "https://docs.nhcarrigan.com/community/guide#33-privacy-and-boundaries"
},
{
"content": "3.4 Self-Disclosure\n\n1. Systems have the right to disclose information about their alters at their own discretion.\n2. Members are encouraged to respect the level of disclosure each system or alter chooses.\n3. Unsolicited advice or attempts to \"help\" without consent are not appropriate.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::17",
"metadata": {
"title": "Community Guidelines"
},
"title": "3.4 Self-Disclosure",
"url": "https://docs.nhcarrigan.com/community/guide#34-self-disclosure"
},
{
"content": "3.5 Communication Guidelines\n\n1. Address alters by their preferred names and pronouns when known.\n2. If unsure about how to address a system or alter, it's acceptable to politely ask for clarification.\n3. Be mindful that switching between alters may result in a difference of communication styles or preferences.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::18",
"metadata": {
"title": "Community Guidelines"
},
"title": "3.5 Communication Guidelines",
"url": "https://docs.nhcarrigan.com/community/guide#35-communication-guidelines"
},
{
"content": "3.6 Education and Awareness\n\n1. We encourage community-wide education about plurality to foster understanding and inclusivity.\n2. Questions about plurality should be directed to appropriate educational resources rather than to individual systems, unless they have explicitly welcomed such inquiries.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::19",
"metadata": {
"title": "Community Guidelines"
},
"title": "3.6 Education and Awareness",
"url": "https://docs.nhcarrigan.com/community/guide#36-education-and-awareness"
},
{
"content": "4. Tone Tags",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::20",
"metadata": {
"title": "Community Guidelines"
},
"title": "4. Tone Tags",
"url": "https://docs.nhcarrigan.com/community/guide#4-tone-tags"
},
{
"content": "4.1 Purpose of Tone Tags\n\nIn text-based communication, the nuances of tone and intention can often be lost, leading to potential misunderstandings. To address this limitation, we encourage the use of tone tags. These tags provide additional context to messages, helping to clarify the intended tone and reduce misinterpretations.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::21",
"metadata": {
"title": "Community Guidelines"
},
"title": "4.1 Purpose of Tone Tags",
"url": "https://docs.nhcarrigan.com/community/guide#41-purpose-of-tone-tags"
},
{
"content": "4.2 When to Use Tone Tags\n\nConsider using tone tags in the following situations:\n\n- When your message could be interpreted in multiple ways\n- If you're using sarcasm, humour, or other tones that might not be immediately apparent\n- When discussing sensitive topics where clarity of intention is crucial\n- If you're communicating with someone who has expressed difficulty interpreting tone in text",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::22",
"metadata": {
"title": "Community Guidelines"
},
"title": "4.2 When to Use Tone Tags",
"url": "https://docs.nhcarrigan.com/community/guide#42-when-to-use-tone-tags"
},
{
"content": "4.3 How to Use Tone Tags\n\n- Place the tone tag at the end of your message or the relevant section\n- Use forward slashes to enclose the tag, e.g., `/j` for joking\n- You can use multiple tags if needed, e.g., `/s /b` for sarcastic and bitter\n- If you're unsure about a tag's meaning, refer to our community glossary or ask for clarification",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::23",
"metadata": {
"title": "Community Guidelines"
},
"title": "4.3 How to Use Tone Tags",
"url": "https://docs.nhcarrigan.com/community/guide#43-how-to-use-tone-tags"
},
{
"content": "4.4 Commonly Used Tone Tags\n\n| Tag | Meaning |\n| ---------------------- | ------------------------------------ |\n| `/aff` | Affectionate |\n| `/apa` | Apathetic |\n| `/b` | Bitter |\n| `/cel` | Celebratory |\n| `/ci` | Caring Intent |\n| `/cj` | Coping Joke |\n| `/co` or `/cf` | Comforting |\n| `/ex` | Exaggeration |\n| `/f` | fake |\n| `/fam` | Familial |\n| `/fex` | for example |\n| `/gen` or `/g` | Genuine |\n| `/genq` or `/gq` | Genuine Question |\n| `/gens` or `/gs` | Genuine Suggestion |\n| `/hj` | Half Joking |\n| `/hyp` | Hyperbole |\n| `/ij` | Inside Joke |\n| `/info` | Information |\n| `/j` | Joking |\n| `/jov` | Jokingly Overreacting |\n| `/l`, `/ly` or `/lyr` | Lyrics |\n| `/lh` | Lighthearted |\n| `/li` or `/lit` | Literally |\n| `/lu` | Little Upset |\n| `/m` | Metaphorically |\n| `/md` | Melodramatic |\n| `/nav` | Not A Vent |\n| `/nay` | Not At You |\n| `/nbh` | Nobody Here (for vague venting only) |\n| `/nbr` | Not Being Rude |\n| `/nc` or `/neg` | Negative connotation |\n| `/ncm` | Not Comparing |\n| `/neu` | Neutral connotation |\n| `/nf` | Not Forced |\n| `/nm` | Not Mad (or upset) |\n| `/np` | No Pressure |\n| `/npa` | Not Passive Aggressive |\n| `/nsx` or `/nx` | Non Sexual Intent |\n| `/ny` | Not Yelling |\n| `/op` | Optional |\n| `/ot` | Off Topic |\n| `/p` or `/plat` | Platonic |\n| `/pc` or `/pos` | Positive connotation |\n| `/q` | Quote |\n| `/ref` | Reference |\n| `/rh`, `/rt` or `/rhq` | Rhetorical Question |\n| `/s` or `/sar` | Sarcastic |\n| `/srs` | Serious |\n| `/sym` | Sympathetic |\n| `/t` | Teasing |\n| `/tc`, `/ti` or `/tic` | Typing a tic |",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::24",
"metadata": {
"title": "Community Guidelines"
},
"title": "4.4 Commonly Used Tone Tags",
"url": "https://docs.nhcarrigan.com/community/guide#44-commonly-used-tone-tags"
},
{
"content": "4.5 Respecting Tone Tags\n\n- When someone uses a tone tag, interpret their message accordingly\n- If you're unsure about the meaning of a tag, ask politely for clarification\n- Do not mock or belittle others for using tone tags",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::25",
"metadata": {
"title": "Community Guidelines"
},
"title": "4.5 Respecting Tone Tags",
"url": "https://docs.nhcarrigan.com/community/guide#45-respecting-tone-tags"
},
{
"content": "4.6 Accessibility Considerations\n\n- Tone tags can be particularly helpful for neurodivergent individuals who may have difficulty interpreting tone in text\n- Screen readers can often interpret tone tags, making them a useful tool for visually impaired users",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::26",
"metadata": {
"title": "Community Guidelines"
},
"title": "4.6 Accessibility Considerations",
"url": "https://docs.nhcarrigan.com/community/guide#46-accessibility-considerations"
},
{
"content": "4.7 Limitations of Tone Tags\n\n- While helpful, tone tags are not a perfect solution and may not convey all nuances of communication\n- They should be used as a supplement to clear writing, not a replacement for it",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::27",
"metadata": {
"title": "Community Guidelines"
},
"title": "4.7 Limitations of Tone Tags",
"url": "https://docs.nhcarrigan.com/community/guide#47-limitations-of-tone-tags"
},
{
"content": "4.8 Community-Specific Tags\n\n- Our community may develop additional tags specific to our discussions\n- New tags will be added to our glossary after community consensus",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::28",
"metadata": {
"title": "Community Guidelines"
},
"title": "4.8 Community-Specific Tags",
"url": "https://docs.nhcarrigan.com/community/guide#48-community-specific-tags"
},
{
"content": "5. Pronouns",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::29",
"metadata": {
"title": "Community Guidelines"
},
"title": "5. Pronouns",
"url": "https://docs.nhcarrigan.com/community/guide#5-pronouns"
},
{
"content": "5.1 Importance of Pronouns\n\nPronouns are an essential aspect of personal identity and respectful communication. Our community values and respects each individual's right to self-identify and be addressed correctly.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::30",
"metadata": {
"title": "Community Guidelines"
},
"title": "5.1 Importance of Pronouns",
"url": "https://docs.nhcarrigan.com/community/guide#51-importance-of-pronouns"
},
{
"content": "5.2 Displaying Pronouns\n\nWe strongly encourage all community members to display their pronouns:\n\n- In your platform bio\n- Using designated pronoun roles in our Discord community, or comparable feature on other platforms\n- As part of your username or display name, if desired",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::31",
"metadata": {
"title": "Community Guidelines"
},
"title": "5.2 Displaying Pronouns",
"url": "https://docs.nhcarrigan.com/community/guide#52-displaying-pronouns"
},
{
"content": "5.3 Benefits of Sharing Pronouns\n\n1. Clarity: Helps others address you correctly\n2. Inclusivity: Creates a welcoming environment for all gender identities\n3. Normalization: Reduces stigma around pronoun sharing\n4. Education: Raises awareness about gender diversity",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::32",
"metadata": {
"title": "Community Guidelines"
},
"title": "5.3 Benefits of Sharing Pronouns",
"url": "https://docs.nhcarrigan.com/community/guide#53-benefits-of-sharing-pronouns"
},
{
"content": "5.4 Normalizing Pronoun Sharing\n\nBy encouraging all members to share pronouns, regardless of gender identity or expression, we:\n\n- Challenge the assumption that only transgender individuals share pronouns\n- Create a safer space for transgender and non-binary individuals to share their pronouns without implicitly outing themselves\n- Promote a culture of respect and understanding",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::33",
"metadata": {
"title": "Community Guidelines"
},
"title": "5.4 Normalizing Pronoun Sharing",
"url": "https://docs.nhcarrigan.com/community/guide#54-normalizing-pronoun-sharing"
},
{
"content": "5.5 Respecting Others' Pronouns\n\n- Always use the pronouns a person has specified for themselves\n- If you're unsure about someone's pronouns, it's appropriate to politely ask\n- If you make a mistake, apologize briefly, correct yourself, and move on",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::34",
"metadata": {
"title": "Community Guidelines"
},
"title": "5.5 Respecting Others' Pronouns",
"url": "https://docs.nhcarrigan.com/community/guide#55-respecting-others'-pronouns"
},
{
"content": "5.6 Pronoun Options\n\nWhile not exhaustive, common pronoun options include:\n\n- She/her/hers\n- He/him/his\n- They/them/theirs\n<!-- cSpell:disable-next-line -->\n- Neopronouns (e.g., xe/xem/xyr, ze/zir/zirs)\n- Any pronouns\n- No pronouns (use name only)",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::35",
"metadata": {
"title": "Community Guidelines"
},
"title": "5.6 Pronoun Options",
"url": "https://docs.nhcarrigan.com/community/guide#56-pronoun-options"
},
{
"content": "5.7 Changing Pronouns\n\n- Members are welcome to update their pronouns at any time\n- Respect and use a person's current pronouns, even if you knew them by different pronouns previously",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::36",
"metadata": {
"title": "Community Guidelines"
},
"title": "5.7 Changing Pronouns",
"url": "https://docs.nhcarrigan.com/community/guide#57-changing-pronouns"
},
{
"content": "5.8 Pronoun Misuse\n\n- Intentional misuse of pronouns (misgendering) is a form of harassment and violates our community guidelines\n- Repeated accidental misuse, despite correction, may be addressed by moderation",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::37",
"metadata": {
"title": "Community Guidelines"
},
"title": "5.8 Pronoun Misuse",
"url": "https://docs.nhcarrigan.com/community/guide#58-pronoun-misuse"
},
{
"content": "5.9 Privacy Considerations\n\n- While we encourage pronoun sharing, it is ultimately a personal choice\n- Do not pressure others to share their pronouns if they are not comfortable doing so",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::38",
"metadata": {
"title": "Community Guidelines"
},
"title": "5.9 Privacy Considerations",
"url": "https://docs.nhcarrigan.com/community/guide#59-privacy-considerations"
},
{
"content": "6. Accessibility\n\nOur community is committed to ensuring that all members, regardless of their needs, can fully participate and engage with our content. We encourage everyone to follow these accessibility guidelines to create a more inclusive environment.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::39",
"metadata": {
"title": "Community Guidelines"
},
"title": "6. Accessibility",
"url": "https://docs.nhcarrigan.com/community/guide#6-accessibility"
},
{
"content": "6.1 Alt Text for Images\n\nAlt text (alternative text) provides a textual description of images for those who use screen readers or cannot view images.\n\n- Always include alt text when posting images.\n- Describe the key elements of the image concisely.\n- If the image contains text, include that text in the alt description.\n Example: Instead of alt=\"meme\", use alt=\"A cat wearing sunglasses with the text 'Deal with it' below\"",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::40",
"metadata": {
"title": "Community Guidelines"
},
"title": "6.1 Alt Text for Images",
"url": "https://docs.nhcarrigan.com/community/guide#61-alt-text-for-images"
},
{
"content": "6.2 Creating Accessible Content",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::41",
"metadata": {
"title": "Community Guidelines"
},
"title": "6.2 Creating Accessible Content",
"url": "https://docs.nhcarrigan.com/community/guide#62-creating-accessible-content"
},
{
"content": "6.2.1 Descriptive Link Text\n\n- Use descriptive link text that indicates where the link leads.\n- Avoid using \"click here\" or \"read more\" as standalone link text.\n\nExample: Instead of \"Click here to read about our events\", use \"View our upcoming community events\"",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::42",
"metadata": {
"title": "Community Guidelines"
},
"title": "6.2.1 Descriptive Link Text",
"url": "https://docs.nhcarrigan.com/community/guide#621-descriptive-link-text"
},
{
"content": "6.2.2 Avoiding Flashing Content\n\n- Do not post content that flashes more than three times per second.\n- If you must share such content, provide a clear warning beforehand.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::43",
"metadata": {
"title": "Community Guidelines"
},
"title": "6.2.2 Avoiding Flashing Content",
"url": "https://docs.nhcarrigan.com/community/guide#622-avoiding-flashing-content"
},
{
"content": "6.2.3 Structuring Content\n\n- Use headings to organize content hierarchically (H1, H2, H3, etc.).\n- Break long paragraphs into shorter, more digestible sections.\n- Use bullet points or numbered lists for easy scanning.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::44",
"metadata": {
"title": "Community Guidelines"
},
"title": "6.2.3 Structuring Content",
"url": "https://docs.nhcarrigan.com/community/guide#623-structuring-content"
},
{
"content": "6.2.4 Multimedia Content\n\n- Provide captions for videos.\n- Offer transcripts for audio content when possible.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::45",
"metadata": {
"title": "Community Guidelines"
},
"title": "6.2.4 Multimedia Content",
"url": "https://docs.nhcarrigan.com/community/guide#624-multimedia-content"
},
{
"content": "6.3 Continuous Improvement\n\n- We welcome feedback on how to improve our community's accessibility.\n- Report any accessibility issues to the moderation team.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::46",
"metadata": {
"title": "Community Guidelines"
},
"title": "6.3 Continuous Improvement",
"url": "https://docs.nhcarrigan.com/community/guide#63-continuous-improvement"
},
{
"content": "7. Content and Trigger Warnings\n\nOur community is committed to creating a safe and respectful environment for all members. Content and trigger warnings play a crucial role in this effort by allowing individuals to make informed decisions about engaging with potentially distressing content.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::47",
"metadata": {
"title": "Community Guidelines"
},
"title": "7. Content and Trigger Warnings",
"url": "https://docs.nhcarrigan.com/community/guide#7-content-and-trigger-warnings"
},
{
"content": "7.1 Purpose of Content/Trigger Warnings\n\n- To give members advance notice of potentially sensitive or disturbing content\n- To allow individuals to prepare themselves emotionally or choose to avoid the content\n- To promote a culture of empathy and consideration within our community",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::48",
"metadata": {
"title": "Community Guidelines"
},
"title": "7.1 Purpose of Content/Trigger Warnings",
"url": "https://docs.nhcarrigan.com/community/guide#71-purpose-of-content/trigger-warnings"
},
{
"content": "7.2 When to Use Warnings\n\n:::caution[Warning!]\nContent/Trigger warnings are **mandatory** in all of our community spaces. Repeated patterns of failure to properly label your content will result in sanctions. \"I forgot\" is not an acceptable excuse.\n:::\n\nUse content or trigger warnings when posting about:\n\n- Graphic violence or gore\n- Sexual content or explicit discussions of sexuality (except within our clearly-indicated adult-only areas)\n- Abuse (physical, emotional, sexual)\n- Self-harm or suicide\n- Eating disorders or body image issues\n- Substance abuse or addiction\n- Mental health issues\n- Phobias (e.g., spiders, heights, confined spaces)\n- Political extremism or hate speech\n- Natural disasters or traumatic events\n- Flashing images or loud noises (for photosensitive epilepsy)\n\nRemember, this list is not exhaustive. If you're unsure whether content needs a warning, err on the side of caution and provide one.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::49",
"metadata": {
"title": "Community Guidelines"
},
"title": "7.2 When to Use Warnings",
"url": "https://docs.nhcarrigan.com/community/guide#72-when-to-use-warnings"
},
{
"content": "7.3 How to Use Content/Trigger Warnings\n\n- Place the warning at the beginning of your post or message\n- Use clear, specific language\n- If possible, use spoiler tags or a \"read more\" cut to hide the sensitive content\n\nExample formats:\n\n\"CW: Discussion of eating disorders\"\n\"TW: Graphic description of violence\"\n\"Content Warning: This post contains references to suicide\"",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::50",
"metadata": {
"title": "Community Guidelines"
},
"title": "7.3 How to Use Content/Trigger Warnings",
"url": "https://docs.nhcarrigan.com/community/guide#73-how-to-use-content/trigger-warnings"
},
{
"content": "7.4 Respecting Warnings\n\n- Do not mock or belittle others for using or needing content warnings\n- If someone asks for a warning on a specific topic, respect their request in future interactions",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::51",
"metadata": {
"title": "Community Guidelines"
},
"title": "7.4 Respecting Warnings",
"url": "https://docs.nhcarrigan.com/community/guide#74-respecting-warnings"
},
{
"content": "7.5 False Alarms and Overuse\n\nWhile we encourage the use of content warnings, try to avoid overuse for mundane topics. This helps maintain their effectiveness for truly sensitive content.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::52",
"metadata": {
"title": "Community Guidelines"
},
"title": "7.5 False Alarms and Overuse",
"url": "https://docs.nhcarrigan.com/community/guide#75-false-alarms-and-overuse"
},
{
"content": "7.6 Moderator Intervention\n\nModerators may add content warnings to posts if they deem it necessary. Repeated failure to use appropriate warnings may result in moderation action.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::53",
"metadata": {
"title": "Community Guidelines"
},
"title": "7.6 Moderator Intervention",
"url": "https://docs.nhcarrigan.com/community/guide#76-moderator-intervention"
},
{
"content": "8. Conflict Resolution\n\nDisagreements and conflicts can arise in any community. Our goal is to foster an environment where conflicts can be resolved respectfully and constructively. This section outlines the steps for resolving conflicts and when to involve moderators.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::54",
"metadata": {
"title": "Community Guidelines"
},
"title": "8. Conflict Resolution",
"url": "https://docs.nhcarrigan.com/community/guide#8-conflict-resolution"
},
{
"content": "8.1 General Principles\n\n- Treat all parties with respect, even in disagreement\n- Assume good faith unless proven otherwise\n- Focus on the issue, not personal attacks\n- Be open to different perspectives and willing to compromise",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::55",
"metadata": {
"title": "Community Guidelines"
},
"title": "8.1 General Principles",
"url": "https://docs.nhcarrigan.com/community/guide#81-general-principles"
},
{
"content": "8.2 Steps for Resolving Conflicts",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::56",
"metadata": {
"title": "Community Guidelines"
},
"title": "8.2 Steps for Resolving Conflicts",
"url": "https://docs.nhcarrigan.com/community/guide#82-steps-for-resolving-conflicts"
},
{
"content": "8.2.1 Direct Communication\n\n- If you have an issue with another member, try to address it directly with them first.\n- Use private messages to avoid public confrontations.\n- Clearly and calmly explain your concerns, using \"I\" statements.\n- Listen to their perspective without interrupting.\n- Look for common ground and potential solutions.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::57",
"metadata": {
"title": "Community Guidelines"
},
"title": "8.2.1 Direct Communication",
"url": "https://docs.nhcarrigan.com/community/guide#821-direct-communication"
},
{
"content": "8.2.2 Cool-Down Period\n\nIf emotions are running high:\n\n- Take a break from the discussion.\n- Reflect on the issue and your role in the conflict.\n- Return to the conversation when you can discuss it calmly.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::58",
"metadata": {
"title": "Community Guidelines"
},
"title": "8.2.2 Cool-Down Period",
"url": "https://docs.nhcarrigan.com/community/guide#822-cool-down-period"
},
{
"content": "8.2.3 Seeking Mediation\n\nIf direct communication doesn't resolve the issue:\n\n- Ask a neutral third party from the community to mediate.\n- Both parties should agree on the mediator.\n- The mediator should facilitate discussion, not take sides.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::59",
"metadata": {
"title": "Community Guidelines"
},
"title": "8.2.3 Seeking Mediation",
"url": "https://docs.nhcarrigan.com/community/guide#823-seeking-mediation"
},
{
"content": "8.3 When to Involve Moderators\n\nInvolve moderators if:\n\n- The conflict violates our Code of Conduct\n- You feel unsafe or harassed\n- The conflict is disrupting the broader community\n- Previous attempts at resolution have failed\n- You're unsure how to handle the situation",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::60",
"metadata": {
"title": "Community Guidelines"
},
"title": "8.3 When to Involve Moderators",
"url": "https://docs.nhcarrigan.com/community/guide#83-when-to-involve-moderators"
},
{
"content": "8.4 How to Involve Moderators\n\n- Use the designated reporting system on the platform.\n- Provide a clear, factual account of the issue.\n- Include relevant screenshots or links if applicable.\n- Explain steps you've already taken to resolve the conflict.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::61",
"metadata": {
"title": "Community Guidelines"
},
"title": "8.4 How to Involve Moderators",
"url": "https://docs.nhcarrigan.com/community/guide#84-how-to-involve-moderators"
},
{
"content": "8.5 Moderator Actions\n\nModerators may:\n\n- Facilitate discussion between parties\n- Issue warnings or reminders about community guidelines\n- Temporarily mute or suspend accounts\n- Remove inflammatory content\n- In severe cases, ban members who consistently create conflicts",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::62",
"metadata": {
"title": "Community Guidelines"
},
"title": "8.5 Moderator Actions",
"url": "https://docs.nhcarrigan.com/community/guide#85-moderator-actions"
},
{
"content": "8.6 Appealing Moderator Decisions\n\nIf you disagree with a moderator's decision:\n\n- Wait 24 hours to ensure you can discuss it calmly\n- Contact the moderation team through the appropriate channels\n- Clearly explain why you think the decision should be reconsidered\n- Be prepared to provide additional context or evidence",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::63",
"metadata": {
"title": "Community Guidelines"
},
"title": "8.6 Appealing Moderator Decisions",
"url": "https://docs.nhcarrigan.com/community/guide#86-appealing-moderator-decisions"
},
{
"content": "8.7 Conflict Prevention\n\nTo minimize conflicts:\n\n- Re-read your posts before sending to ensure they're not unintentionally inflammatory\n- Use tone indicators when your intent might be unclear\n- Ask for clarification before assuming negative intent\n- Be willing to apologize and correct mistakes",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::64",
"metadata": {
"title": "Community Guidelines"
},
"title": "8.7 Conflict Prevention",
"url": "https://docs.nhcarrigan.com/community/guide#87-conflict-prevention"
},
{
"content": "8.8 Learning from Conflicts\n\nAfter a conflict is resolved:\n\n- Reflect on what led to the disagreement\n- Consider how it could have been prevented or handled better\n- Apply these lessons in future interactions",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::65",
"metadata": {
"title": "Community Guidelines"
},
"title": "8.8 Learning from Conflicts",
"url": "https://docs.nhcarrigan.com/community/guide#88-learning-from-conflicts"
},
{
"content": "9. This Should Be Fun!\n\nIt is important to remember that engaging with our community should be a fun process. If you aren't enjoying your time, please consider some of these options:",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::66",
"metadata": {
"title": "Community Guidelines"
},
"title": "9. This Should Be Fun!",
"url": "https://docs.nhcarrigan.com/community/guide#9-this-should-be-fun!"
},
{
"content": "9.1. Take a Break\n\nIt's okay if you need some time away from our community! We'll be here when you get back, so don't hesitate to step away for a while and decompress. Let yourself come back refreshed so you have the best experience possible.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::67",
"metadata": {
"title": "Community Guidelines"
},
"title": "9.1. Take a Break",
"url": "https://docs.nhcarrigan.com/community/guide#91-take-a-break"
},
{
"content": "9.2. Evaluate Your Engagement\n\nOur community spaces are intended to be fun, relaxed, and wholesome environments. If you find that you aren't meshing with our vibe in the way that you want, consider taking a look at the type of interactions you are creating. It may be that you aren't using our community in the best way.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::68",
"metadata": {
"title": "Community Guidelines"
},
"title": "9.2. Evaluate Your Engagement",
"url": "https://docs.nhcarrigan.com/community/guide#92-evaluate-your-engagement"
},
{
"content": "9.3. Temporary Bans\n\nIf you need a break and you find yourself unable to step away, or you keep coming back to check on things when you really do not want to, please reach out to our staff. We are more than willing to issue temporary bans to help you preserve the space you need.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::69",
"metadata": {
"title": "Community Guidelines"
},
"title": "9.3. Temporary Bans",
"url": "https://docs.nhcarrigan.com/community/guide#93-temporary-bans"
},
{
"content": "10. Mini-modding\n\n\"Mini-modding\" is a term often used to describe behaviour in which a non-staff user instructs another user to amend their behaviour as if they were a member of staff.\n\nOur community does not prohibit mini-modding, provided:\n\n- You gently encourage and support members in properly integrating with our community\n- You do not represent yourself as a member of NHCarrigan's team\n- You do not belittle, call out, or antagonise a user who is violating our policies\n\nRemember that the best way to correct someone's behaviour is to lead by example. If that fails, do not escalate - instead, report the behaviour to our team.",
"file": "src/content/docs/community/guide.md",
"id": "src/content/docs/community/guide.md::70",
"metadata": {
"title": "Community Guidelines"
},
"title": "10. Mini-modding",
"url": "https://docs.nhcarrigan.com/community/guide#10-mini-modding"
},
{
"content": "",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::0",
"metadata": {
"title": "Contributing Documentation"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/dev/contributing#"
},
{
"content": "1. Scope and General Contribution Guidelines",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::1",
"metadata": {
"title": "Contributing Documentation"
},
"title": "1. Scope and General Contribution Guidelines",
"url": "https://docs.nhcarrigan.com/dev/contributing#1-scope-and-general-contribution-guidelines"
},
{
"content": "1.1 Overview\n\nThis document outlines the general guidelines for contributing to our projects. It serves as a high-level framework for all contributors, whether you're submitting code, documentation, or other forms of contribution.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::2",
"metadata": {
"title": "Contributing Documentation"
},
"title": "1.1 Overview",
"url": "https://docs.nhcarrigan.com/dev/contributing#11-overview"
},
{
"content": "1.2 Project-Specific Instructions\n\nWhile these guidelines apply broadly, individual projects may have unique requirements or processes. Always refer to the specific project's documentation for:\n\n- Supplemental instructions\n- Project-specific workflows\n- Coding standards\n- Testing requirements\n- Other relevant information\n\nIn case of any discrepancy between this document and project-specific guidelines, the project-specific instructions take precedence.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::3",
"metadata": {
"title": "Contributing Documentation"
},
"title": "1.2 Project-Specific Instructions",
"url": "https://docs.nhcarrigan.com/dev/contributing#12-project-specific-instructions"
},
{
"content": "1.3 Commit Signing Requirements\n\nAll commits must be cryptographically signed using either GPG or SSH. This requirement serves to verify the authenticity and integrity of your contributions.\n\n- For GPG signing, ensure your GPG key is associated with your GitHub or Codeberg account.\n- For SSH signing, use a key linked to your GitHub or Codeberg account.\n\nBy signing your commit, you are certifying that:\n\n- The commit adheres to our [Contributor Covenant](/covenant.md)\n- You have the right to submit the contribution under our project license.\n- You understand and agree to our contribution terms.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::4",
"metadata": {
"title": "Contributing Documentation"
},
"title": "1.3 Commit Signing Requirements",
"url": "https://docs.nhcarrigan.com/dev/contributing#13-commit-signing-requirements"
},
{
"content": "1.4 Contributor Covenant\n\nAll contributors are expected to adhere to our Contributor Covenant. The full text of the Contributor Covenant can be found in [its own document](/covenant.md).",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::5",
"metadata": {
"title": "Contributing Documentation"
},
"title": "1.4 Contributor Covenant",
"url": "https://docs.nhcarrigan.com/dev/contributing#14-contributor-covenant"
},
{
"content": "1.5 Licensing of Contributions\n\nAll contributions to our projects, including but not limited to code, documentation, artwork, and other materials, will be licensed under our global software license. By submitting a contribution, you are agreeing to license your work under the terms of this license.\n\n- Our global software license: Naomi's Public License\n- Full text of the license: https://docs.nhcarrigan.com/#/license",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::6",
"metadata": {
"title": "Contributing Documentation"
},
"title": "1.5 Licensing of Contributions",
"url": "https://docs.nhcarrigan.com/dev/contributing#15-licensing-of-contributions"
},
{
"content": "1.6 Intellectual Property\n\nBy contributing to our projects, you affirm that:\n\n- You own the copyright to your contribution or have authorization from the copyright owner to submit it under our license.\n- Your contribution does not infringe on any third-party intellectual property rights.\n- You grant us a perpetual, worldwide, non-exclusive, royalty-free license to use, modify, and distribute your contribution.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::7",
"metadata": {
"title": "Contributing Documentation"
},
"title": "1.6 Intellectual Property",
"url": "https://docs.nhcarrigan.com/dev/contributing#16-intellectual-property"
},
{
"content": "1.7 Legal Compliance\n\nEnsure all contributions comply with relevant laws and regulations, including export controls and data protection laws.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::8",
"metadata": {
"title": "Contributing Documentation"
},
"title": "1.7 Legal Compliance",
"url": "https://docs.nhcarrigan.com/dev/contributing#17-legal-compliance"
},
{
"content": "1.8 Acceptance of Contributions\n\nWhile we appreciate all contributions, we reserve the right to reject any contribution that doesn't meet our standards or align with our project goals. The project maintainers have final say on the inclusion of any contribution.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::9",
"metadata": {
"title": "Contributing Documentation"
},
"title": "1.8 Acceptance of Contributions",
"url": "https://docs.nhcarrigan.com/dev/contributing#18-acceptance-of-contributions"
},
{
"content": "2. Secrets Management",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::10",
"metadata": {
"title": "Contributing Documentation"
},
"title": "2. Secrets Management",
"url": "https://docs.nhcarrigan.com/dev/contributing#2-secrets-management"
},
{
"content": "2.1 Overview\n\nProper management of secrets is crucial for maintaining the security and integrity of our projects. We use 1Password as our centralized secrets management solution. This section outlines our policies and procedures for handling secrets.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::11",
"metadata": {
"title": "Contributing Documentation"
},
"title": "2.1 Overview",
"url": "https://docs.nhcarrigan.com/dev/contributing#21-overview"
},
{
"content": "2.2 General Policy\n\n- Plain-text secrets should never be stored on personal machines, development environments, or our servers.\n- All secrets should be stored and managed through 1Password.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::12",
"metadata": {
"title": "Contributing Documentation"
},
"title": "2.2 General Policy",
"url": "https://docs.nhcarrigan.com/dev/contributing#22-general-policy"
},
{
"content": "2.3 1Password Setup and Usage\n\nTo work with secrets locally, you must set up the 1Password CLI (Command Line Interface) and integrate it with your 1Password desktop application.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::13",
"metadata": {
"title": "Contributing Documentation"
},
"title": "2.3 1Password Setup and Usage",
"url": "https://docs.nhcarrigan.com/dev/contributing#23-1password-setup-and-usage"
},
{
"content": "2.3.1 Setup Instructions\n\n- Install the 1Password desktop application if you haven't already.\n- Install the 1Password CLI. Instructions can be found at: https://developer.1password.com/docs/cli/get-started/\n- Authenticate the CLI with your 1Password account.\n- Configure your development environment to use the 1Password CLI for secret retrieval. https://developer.1password.com/docs/cli/secrets-environment-variables/",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::14",
"metadata": {
"title": "Contributing Documentation"
},
"title": "2.3.1 Setup Instructions",
"url": "https://docs.nhcarrigan.com/dev/contributing#231-setup-instructions"
},
{
"content": "2.3.2 Best Practices\n\n- Use environment variables to store secrets retrieved from 1Password during runtime.\n- Never log or display secrets in any form.\n- Rotate secrets regularly.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::15",
"metadata": {
"title": "Contributing Documentation"
},
"title": "2.3.2 Best Practices",
"url": "https://docs.nhcarrigan.com/dev/contributing#232-best-practices"
},
{
"content": "2.4 Handling Secrets in Code\n\n- Development environment variables should be set in `dev.env` - changes to this file should generally be excluded from your contributions.\n- Use 1Password references instead of actual secret values in configuration files.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::16",
"metadata": {
"title": "Contributing Documentation"
},
"title": "2.4 Handling Secrets in Code",
"url": "https://docs.nhcarrigan.com/dev/contributing#24-handling-secrets-in-code"
},
{
"content": "3. Setting Up Your Development Environment",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::17",
"metadata": {
"title": "Contributing Documentation"
},
"title": "3. Setting Up Your Development Environment",
"url": "https://docs.nhcarrigan.com/dev/contributing#3-setting-up-your-development-environment"
},
{
"content": "3.1 Forking the Repository\n\n1. Navigate to the original repository on Codeberg.\n2. Click the \"Fork\" button in the upper right corner of the page.\n3. Select your account as the destination for the fork.\n4. Wait for Codeberg to create a copy of the repository in your account.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::18",
"metadata": {
"title": "Contributing Documentation"
},
"title": "3.1 Forking the Repository",
"url": "https://docs.nhcarrigan.com/dev/contributing#31-forking-the-repository"
},
{
"content": "3.2 Cloning Your Fork\n\n1. Go to your forked repository on Codeberg.\n2. Click the \"Code\" button and copy the URL (HTTPS or SSH, depending on your setup).\n3. Open your terminal or command prompt.\n4. Navigate to the directory where you want to store the project.\n5. Run the following command, replacing `<url>` with the URL you copied:\n\n ```\n git clone <url>\n ```\n\n6. Enter your GitHub credentials if prompted.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::19",
"metadata": {
"title": "Contributing Documentation"
},
"title": "3.2 Cloning Your Fork",
"url": "https://docs.nhcarrigan.com/dev/contributing#32-cloning-your-fork"
},
{
"content": "3.3 Setting Up the Upstream Remote\n\nAdding the original repository as an upstream remote allows you to easily keep your fork up-to-date.\n\n1. Change into the project directory:\n\n ```\n cd <project-name>\n ```\n\n2. Add the upstream remote:\n\n ```\n git remote add upstream <original-repository-url>\n ```\n\n Replace `<original-repository-url>` with the **git** URL of the original repository.\n\n3. Verify the new remote:\n\n ```\n git remote -v\n ```\n\n You should see entries for both `origin` (your fork) and `upstream`.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::20",
"metadata": {
"title": "Contributing Documentation"
},
"title": "3.3 Setting Up the Upstream Remote",
"url": "https://docs.nhcarrigan.com/dev/contributing#33-setting-up-the-upstream-remote"
},
{
"content": "3.4 Keeping Your Fork Up-to-Date\n\nRegularly update your fork to incorporate changes from the upstream repository:\n\n1. Fetch the branches and commits from the upstream repository:\n\n ```\n git fetch upstream\n ```\n\n2. Check out your fork's local main branch:\n\n ```\n git checkout main\n ```\n\n3. Merge changes from upstream/main into your local main branch:\n\n ```\n git merge upstream/main\n ```",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::21",
"metadata": {
"title": "Contributing Documentation"
},
"title": "3.4 Keeping Your Fork Up-to-Date",
"url": "https://docs.nhcarrigan.com/dev/contributing#34-keeping-your-fork-up-to-date"
},
{
"content": "3.5 Troubleshooting\n\nIf you encounter any issues during setup:\n\n1. Check the project's FAQ or troubleshooting guide (if available).\n2. Search for similar issues in the project's issue tracker.\n3. If the problem persists, open a new issue with detailed information about the problem and steps to reproduce it.\n\nYou can also reach out to us on our forum: https://forum.nhcarrigan.com",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::22",
"metadata": {
"title": "Contributing Documentation"
},
"title": "3.5 Troubleshooting",
"url": "https://docs.nhcarrigan.com/dev/contributing#35-troubleshooting"
},
{
"content": "4. Claiming an Issue",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::23",
"metadata": {
"title": "Contributing Documentation"
},
"title": "4. Claiming an Issue",
"url": "https://docs.nhcarrigan.com/dev/contributing#4-claiming-an-issue"
},
{
"content": "4.1 Finding an Issue\n\n1. Navigate to the project's issue tracker.\n2. Browse open issues or use filters to find tasks that interest you.\n3. Read the issue description thoroughly to understand the requirements and context.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::24",
"metadata": {
"title": "Contributing Documentation"
},
"title": "4.1 Finding an Issue",
"url": "https://docs.nhcarrigan.com/dev/contributing#41-finding-an-issue"
},
{
"content": "4.2 Expressing Interest\n\n1. If you find an issue you'd like to work on, comment on the issue expressing your interest.\n2. Example comment: \"I'm interested in working on this issue. May I be assigned to it?\"\n3. Wait for a project maintainer to respond and potentially assign the issue to you.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::25",
"metadata": {
"title": "Contributing Documentation"
},
"title": "4.2 Expressing Interest",
"url": "https://docs.nhcarrigan.com/dev/contributing#42-expressing-interest"
},
{
"content": "4.3 Issue Assignment\n\n- Project maintainers will assign issues based on the order of interest and the contributor's experience level.\n- Once assigned, you'll see your username in the \"Assignees\" section of the issue.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::26",
"metadata": {
"title": "Contributing Documentation"
},
"title": "4.3 Issue Assignment",
"url": "https://docs.nhcarrigan.com/dev/contributing#43-issue-assignment"
},
{
"content": "4.4 Already Assigned Issues\n\nIf an issue is already assigned:\n\n1. Check the assignee and the last activity date.\n2. If you're still interested in contributing, you can:\n a. Comment on the issue expressing your interest to collaborate.\n b. Reach out to the assigned person to offer assistance or discuss collaboration.\n\nWe encourage collaboration and pair programming on complex issues!",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::27",
"metadata": {
"title": "Contributing Documentation"
},
"title": "4.4 Already Assigned Issues",
"url": "https://docs.nhcarrigan.com/dev/contributing#44-already-assigned-issues"
},
{
"content": "4.5 Working on the Issue\n\n1. Once assigned, create a new branch in your fork for this specific issue.\n2. Use a descriptive branch name, e.g., `fix/issue-123-button-alignment`.\n3. Make your changes, committing regularly with clear, concise commit messages.\n4. Push your changes to your fork.\n5. Open a pull request when ready for review (see Pull Request Guidelines in section [X]).",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::28",
"metadata": {
"title": "Contributing Documentation"
},
"title": "4.5 Working on the Issue",
"url": "https://docs.nhcarrigan.com/dev/contributing#45-working-on-the-issue"
},
{
"content": "4.6 Keeping the Community Updated\n\n1. Provide regular updates on your progress in the issue comments.\n2. If you encounter obstacles, don't hesitate to ask for help in the issue thread.\n3. If you need to step away from an issue, please let us know so it can be reassigned if necessary.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::29",
"metadata": {
"title": "Contributing Documentation"
},
"title": "4.6 Keeping the Community Updated",
"url": "https://docs.nhcarrigan.com/dev/contributing#46-keeping-the-community-updated"
},
{
"content": "4.7 Time Management\n\n- Try to start working on the issue within a few days of assignment.\n- If you haven't made progress within a week, the issue may be unassigned to keep the project moving forward.\n- If you need more time, communicate this in the issue comments.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::30",
"metadata": {
"title": "Contributing Documentation"
},
"title": "4.7 Time Management",
"url": "https://docs.nhcarrigan.com/dev/contributing#47-time-management"
},
{
"content": "4.8 Multiple Issues\n\n- We encourage focusing on one issue at a time to ensure quality and timely completion.\n- If you want to work on multiple issues, please complete one before requesting assignment to another.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::31",
"metadata": {
"title": "Contributing Documentation"
},
"title": "4.8 Multiple Issues",
"url": "https://docs.nhcarrigan.com/dev/contributing#48-multiple-issues"
},
{
"content": "4.9 Issue Labels\n\nPay attention to issue labels for additional context:\n\n- `good first issue`: Suitable for newcomers to the project or open source.\n- `help wanted`: Issues where we're actively seeking community help.\n- `staff only`: Issue that will require staff attention.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::32",
"metadata": {
"title": "Contributing Documentation"
},
"title": "4.9 Issue Labels",
"url": "https://docs.nhcarrigan.com/dev/contributing#49-issue-labels"
},
{
"content": "4.10 Respectful Communication\n\n- Always be courteous and professional in issue discussions.\n- Respect the decisions of project maintainers regarding issue assignments and priorities.\n- If you disagree with something, express your thoughts constructively and be open to feedback.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::33",
"metadata": {
"title": "Contributing Documentation"
},
"title": "4.10 Respectful Communication",
"url": "https://docs.nhcarrigan.com/dev/contributing#410-respectful-communication"
},
{
"content": "5. Working on Your Issue",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::34",
"metadata": {
"title": "Contributing Documentation"
},
"title": "5. Working on Your Issue",
"url": "https://docs.nhcarrigan.com/dev/contributing#5-working-on-your-issue"
},
{
"content": "5.1 Updating Your Fork\n\nBefore starting work, ensure your forked version is up to date with the original repository. If you've set up the `upstream` remote as mentioned in Section 3, follow these steps:\n\n1. Open your terminal and navigate to your project's root directory.\n2. Run the following commands:\n\n ```bash\n git fetch upstream\n git merge upstream/main\n ```",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::35",
"metadata": {
"title": "Contributing Documentation"
},
"title": "5.1 Updating Your Fork",
"url": "https://docs.nhcarrigan.com/dev/contributing#51-updating-your-fork"
},
{
"content": "5.2 Creating a New Branch\n\nAlways create a new branch for your work:\n\n1. Create and switch to a new branch:\n\n ```bash\n git checkout -b <branchname>\n ```\n\n2. Follow the branch naming convention: `type/description`\n\n - `type`: Indicates the nature of the changes (e.g., `feat`, `fix`, `docs`, `refactor`)\n - `description`: A brief, hyphenated description of the changes\n\n Examples:\n\n - `feat/add-login-page`\n - `fix/resolve-memory-leak`\n - `docs/update-api-endpoints`",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::36",
"metadata": {
"title": "Contributing Documentation"
},
"title": "5.2 Creating a New Branch",
"url": "https://docs.nhcarrigan.com/dev/contributing#52-creating-a-new-branch"
},
{
"content": "5.3 Making Changes\n\n1. Make your code changes, following the project's coding standards and guidelines.\n2. Regularly commit your changes with clear, concise messages.\n3. Push your changes to your fork periodically:\n\n ```bash\n git push origin <branchname>\n ```",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::37",
"metadata": {
"title": "Contributing Documentation"
},
"title": "5.3 Making Changes",
"url": "https://docs.nhcarrigan.com/dev/contributing#53-making-changes"
},
{
"content": "5.4 Committing Changes\n\nWhen you're ready to commit your changes:\n\n1. Stage your changes:\n\n ```bash\n git add .\n ```\n\n Or stage specific files:\n\n ```bash\n git add <file1> <file2>\n ```\n\n2. Commit:\n\n ```bash\n git commit\n ```",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::38",
"metadata": {
"title": "Contributing Documentation"
},
"title": "5.4 Committing Changes",
"url": "https://docs.nhcarrigan.com/dev/contributing#54-committing-changes"
},
{
"content": "5.5 Commit Message Guidelines\n\n- Follow Conventional Commit standards: `type(scope): description` such as `docs: update contributing guidelines`.\n- Use the present tense (\"Add feature\" not \"Added feature\")\n- Use the imperative mood (\"Move cursor to...\" not \"Moves cursor to...\")\n- Limit the first line to 50 characters or less\n - Additional information can be included in the body\n- Do NOT reference issues/PRs in your commit\n\nExample:\n\n```\nfeat: add user authentication system\n\nImplement JWT-based authentication for API endpoints.\n```",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::39",
"metadata": {
"title": "Contributing Documentation"
},
"title": "5.5 Commit Message Guidelines",
"url": "https://docs.nhcarrigan.com/dev/contributing#55-commit-message-guidelines"
},
{
"content": "5.7 Testing Your Changes\n\n- Run the linter to ensure your code complies with [our style guidelines](/dev/style).\n\n ```bash\n pnpm lint # or the appropriate lint command for your project\n ```\n\n- Run any existing tests to ensure your changes haven't broken anything:\n\n ```bash\n pnpm test # or the appropriate test command for your project\n ```\n\n- Add new tests for your changes if applicable.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::40",
"metadata": {
"title": "Contributing Documentation"
},
"title": "5.7 Testing Your Changes",
"url": "https://docs.nhcarrigan.com/dev/contributing#57-testing-your-changes"
},
{
"content": "5.8 Documentation\n\n- Update relevant documentation to reflect your changes.\n- If you've added new features, include appropriate documentation.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::41",
"metadata": {
"title": "Contributing Documentation"
},
"title": "5.8 Documentation",
"url": "https://docs.nhcarrigan.com/dev/contributing#58-documentation"
},
{
"content": "5.9 Preparing for Pull Request\n\nBefore submitting a pull request:\n\n1. Check that your code adheres to the project's style guidelines - the linters should pass.\n1. Ensure the build succeeds.\n1. Ensure all tests pass.\n1. Review your changes and commit history.\n\nIf you're unsure about any part of the process or need help, don't hesitate to ask in our [forum](https://forum.nhcarrigan.com). Our community is here to support you!",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::42",
"metadata": {
"title": "Contributing Documentation"
},
"title": "5.9 Preparing for Pull Request",
"url": "https://docs.nhcarrigan.com/dev/contributing#59-preparing-for-pull-request"
},
{
"content": "6. Submitting a Pull Request",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::43",
"metadata": {
"title": "Contributing Documentation"
},
"title": "6. Submitting a Pull Request",
"url": "https://docs.nhcarrigan.com/dev/contributing#6-submitting-a-pull-request"
},
{
"content": "6.1 Pushing Your Changes\n\n1. Push your changes to your forked repository:\n\n```bash\ngit push -u origin <branchname>\n```\n\n- `-u` sets the upstream, linking your local branch to the remote branch\n- `origin` specifies your forked repository as the destination\n- `<branchname>` is the name of your local branch\n\n2. Ensure the push is successful and your changes appear in your forked repository on Codeberg.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::44",
"metadata": {
"title": "Contributing Documentation"
},
"title": "6.1 Pushing Your Changes",
"url": "https://docs.nhcarrigan.com/dev/contributing#61-pushing-your-changes"
},
{
"content": "6.2 Creating the Pull Request\n\n1. Navigate to your forked repository on Codeberg.\n2. You should see a prompt to create a pull request for your recently pushed branch. If not, click on the \"Pull requests\" tab and then the \"New pull request\" button.\n3. Ensure the base repository is the original project repository and the base branch is `main`.\n4. Select your fork as the head repository and your recently pushed branch as the compare branch.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::45",
"metadata": {
"title": "Contributing Documentation"
},
"title": "6.2 Creating the Pull Request",
"url": "https://docs.nhcarrigan.com/dev/contributing#62-creating-the-pull-request"
},
{
"content": "6.3 Filling Out the Pull Request\n\n1. Change the title of your pull request to be a conventional commit message summarising all changes in that PR\n2. Fill out the pull request description with as much information as possible. This typically includes:\n - A clear description of the changes\n - The issue number(s) your pull request addresses\n - Any additional context or explanations\n3. Fill out the rest of the pull request form *completely*.\n4. If your changes include visual elements, consider adding screenshots or GIFs to illustrate the modifications.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::46",
"metadata": {
"title": "Contributing Documentation"
},
"title": "6.3 Filling Out the Pull Request",
"url": "https://docs.nhcarrigan.com/dev/contributing#63-filling-out-the-pull-request"
},
{
"content": "6.4 Pull Request Best Practices\n\n- Ensure your PR addresses only one issue or adds one feature. If you have made multiple unrelated changes, consider breaking them into separate pull requests.\n- Double-check that all tests pass and there are no conflicts with the base branch.\n- If your PR is a work in progress, mark it as a draft pull request.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::47",
"metadata": {
"title": "Contributing Documentation"
},
"title": "6.4 Pull Request Best Practices",
"url": "https://docs.nhcarrigan.com/dev/contributing#64-pull-request-best-practices"
},
{
"content": "6.5 After Submitting\n\n- Keep an eye on your pull request for any comments, requests for changes, or approval.\n- Be prepared to make additional commits to your branch if changes are requested.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::48",
"metadata": {
"title": "Contributing Documentation"
},
"title": "6.5 After Submitting",
"url": "https://docs.nhcarrigan.com/dev/contributing#65-after-submitting"
},
{
"content": "6.6 Updating Your Pull Request\n\nIf you need to make changes to your pull request:\n\n1. Make the required changes in your local branch.\n2. Commit the changes.\n3. Push the new commits to your fork:\n\n ```bash\n git push origin <branchname>\n ```\n\n4. The pull request will automatically update with your new commits.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::49",
"metadata": {
"title": "Contributing Documentation"
},
"title": "6.6 Updating Your Pull Request",
"url": "https://docs.nhcarrigan.com/dev/contributing#66-updating-your-pull-request"
},
{
"content": "6.7 Pull Request Etiquette\n\n- Be patient. Maintainers are often managing multiple priorities.\n- Be open to feedback and willing to make changes.\n- Respond promptly to any questions or requests from reviewers.\n- If there's a delay in your ability to respond or make requested changes, leave a comment explaining the situation.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::50",
"metadata": {
"title": "Contributing Documentation"
},
"title": "6.7 Pull Request Etiquette",
"url": "https://docs.nhcarrigan.com/dev/contributing#67-pull-request-etiquette"
},
{
"content": "6.8 Merging and Closing\n\n- Once your pull request is approved, a maintainer will merge it into the main project.\n- After merging, you can delete your branch from your fork if you won't be using it anymore.\n- Celebrate your contribution to the project!",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::51",
"metadata": {
"title": "Contributing Documentation"
},
"title": "6.8 Merging and Closing",
"url": "https://docs.nhcarrigan.com/dev/contributing#68-merging-and-closing"
},
{
"content": "7. Pull Request Reviews",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::52",
"metadata": {
"title": "Contributing Documentation"
},
"title": "7. Pull Request Reviews",
"url": "https://docs.nhcarrigan.com/dev/contributing#7-pull-request-reviews"
},
{
"content": "7.1 Review Process Overview\n\n- All pull requests require at least one approved review before merging.\n- Reviews are primarily conducted by Naomi, but some projects may have additional reviewers.\n- The review process helps maintain code quality, consistency, and project standards.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::53",
"metadata": {
"title": "Contributing Documentation"
},
"title": "7.1 Review Process Overview",
"url": "https://docs.nhcarrigan.com/dev/contributing#71-review-process-overview"
},
{
"content": "7.2 What Reviewers Look For\n\nReviewers typically assess the following aspects:\n\n1. Code quality and style adherence\n2. Functionality and correctness of the implementation\n3. Test coverage and passing status\n4. Documentation updates (if applicable)\n5. Adherence to project-specific guidelines\n6. Potential impact on existing features or performance",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::54",
"metadata": {
"title": "Contributing Documentation"
},
"title": "7.2 What Reviewers Look For",
"url": "https://docs.nhcarrigan.com/dev/contributing#72-what-reviewers-look-for"
},
{
"content": "7.3 Types of Review Outcomes\n\n1. **Approved**: Your pull request is ready to be merged.\n2. **Changes Requested**: Modifications or additional information is needed before approval.\n3. **Commented**: The reviewer has provided feedback but hasn't explicitly approved or requested changes.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::55",
"metadata": {
"title": "Contributing Documentation"
},
"title": "7.3 Types of Review Outcomes",
"url": "https://docs.nhcarrigan.com/dev/contributing#73-types-of-review-outcomes"
},
{
"content": "7.4 Responding to Review Feedback\n\nIf changes are requested:\n\n1. Read all comments carefully to understand the requested modifications.\n2. Ask for clarification if any feedback is unclear.\n3. Make the necessary changes in your local branch.\n4. Commit and push the changes to update your pull request.\n5. Respond to each comment, explaining how you addressed the feedback or why you chose a different approach.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::56",
"metadata": {
"title": "Contributing Documentation"
},
"title": "7.4 Responding to Review Feedback",
"url": "https://docs.nhcarrigan.com/dev/contributing#74-responding-to-review-feedback"
},
{
"content": "7.5 Best Practices for Handling Reviews\n\n- Respond promptly to review comments (ideally within a few days).\n- Be open to constructive criticism and willing to make changes.\n- If you disagree with a suggestion, explain your reasoning politely and be open to discussion.\n- Use the review process as a learning opportunity to improve your coding skills.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::57",
"metadata": {
"title": "Contributing Documentation"
},
"title": "7.5 Best Practices for Handling Reviews",
"url": "https://docs.nhcarrigan.com/dev/contributing#75-best-practices-for-handling-reviews"
},
{
"content": "7.6 Timelines and Expectations\n\n- We strive to review pull requests as quickly as possible, typically within a week.\n- If your pull request requires changes, please address them promptly.\n- Pull requests with outstanding change requests and no activity for a week may be closed as stale.\n- If you need more time to address changes, communicate this in the pull request comments to prevent your contribution from being closed.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::58",
"metadata": {
"title": "Contributing Documentation"
},
"title": "7.6 Timelines and Expectations",
"url": "https://docs.nhcarrigan.com/dev/contributing#76-timelines-and-expectations"
},
{
"content": "7.7 Multiple Iterations\n\n- Complex changes may require multiple rounds of reviews and revisions.\n- Stay engaged throughout the process and be patient if additional iterations are needed.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::59",
"metadata": {
"title": "Contributing Documentation"
},
"title": "7.7 Multiple Iterations",
"url": "https://docs.nhcarrigan.com/dev/contributing#77-multiple-iterations"
},
{
"content": "7.8 Learning from the Review Process\n\n- Take note of common feedback to improve future contributions.\n- Consider reviewing other pull requests to gain insights into the project's standards and practices.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::60",
"metadata": {
"title": "Contributing Documentation"
},
"title": "7.8 Learning from the Review Process",
"url": "https://docs.nhcarrigan.com/dev/contributing#78-learning-from-the-review-process"
},
{
"content": "7.9 After Approval\n\nOnce your pull request is approved:\n\n1. It will be merged into the main branch by a project maintainer.\n2. Depending on the project's deployment pipeline, your changes may be deployed immediately or as part of the next release cycle.\n\nThank you for providing that section. I'll expand and improve it to make it more comprehensive and encourage a wider range of contributions. Here's an enhanced version:",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::61",
"metadata": {
"title": "Contributing Documentation"
},
"title": "7.9 After Approval",
"url": "https://docs.nhcarrigan.com/dev/contributing#79-after-approval"
},
{
"content": "8. Other Contributions\n\nWe value all types of contributions, not just code. There are many ways to contribute to our project, regardless of your technical experience or comfort level with the codebase. Here are several ways you can make a meaningful impact:",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::62",
"metadata": {
"title": "Contributing Documentation"
},
"title": "8. Other Contributions",
"url": "https://docs.nhcarrigan.com/dev/contributing#8-other-contributions"
},
{
"content": "8.1 Documentation Updates\n\nClear and accurate documentation is crucial for any project. You can help by:\n\n- Fixing typos, grammatical errors, or unclear phrasing\n- Adding examples or clarifying existing explanations\n- Creating new documentation for undocumented features\n- Improving README files, API documentation, or user guides",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::63",
"metadata": {
"title": "Contributing Documentation"
},
"title": "8.1 Documentation Updates",
"url": "https://docs.nhcarrigan.com/dev/contributing#81-documentation-updates"
},
{
"content": "8.2 Feature Requests\n\nYour ideas can help shape the future of the project. To suggest a new feature:\n\n1. Check existing issues to ensure your idea hasn't been proposed\n1. Clearly describe the feature and its potential benefits\n1. If possible, outline how the feature might be implemented\n\n:::tip[Before you start:]\nConsider discussing your idea in our community chat before creating an issue to gather initial feedback.\n:::",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::64",
"metadata": {
"title": "Contributing Documentation"
},
"title": "8.2 Feature Requests",
"url": "https://docs.nhcarrigan.com/dev/contributing#82-feature-requests"
},
{
"content": "8.3 Bug Reports\n\nIdentifying and reporting bugs is a valuable contribution. When reporting a bug:\n\n1. Search existing issues to avoid duplicates\n1. Provide a clear, concise description of the problem\n1. Include steps to reproduce the bug\n1. Describe the expected behavior and what actually happened\n1. If possible, include screenshots, error messages, or code samples",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::65",
"metadata": {
"title": "Contributing Documentation"
},
"title": "8.3 Bug Reports",
"url": "https://docs.nhcarrigan.com/dev/contributing#83-bug-reports"
},
{
"content": "8.4 User Support\n\nHelping other users is a great way to contribute to the community:\n\n- Answer questions in our Discord server or other community platforms\n- Share your knowledge and experiences with the project\n- Guide new users through common issues or setup processes\n- Create tutorials or blog posts about using the project",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::66",
"metadata": {
"title": "Contributing Documentation"
},
"title": "8.4 User Support",
"url": "https://docs.nhcarrigan.com/dev/contributing#84-user-support"
},
{
"content": "8.5 Design Contributions\n\nIf you have design skills, you can contribute by:\n\n- Creating or improving project logos or icons\n- Designing user interface mockups for new features\n- Improving the overall user experience and accessibility\n- Creating infographics or visual aids for documentation",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::67",
"metadata": {
"title": "Contributing Documentation"
},
"title": "8.5 Design Contributions",
"url": "https://docs.nhcarrigan.com/dev/contributing#85-design-contributions"
},
{
"content": "8.6 Testing and Quality Assurance\n\nHelp improve the project's stability by:\n\n- Testing new features or bug fixes\n- Performing usability testing and providing feedback\n- Writing or improving automated tests\n- Identifying edge cases or potential security issues",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::68",
"metadata": {
"title": "Contributing Documentation"
},
"title": "8.6 Testing and Quality Assurance",
"url": "https://docs.nhcarrigan.com/dev/contributing#86-testing-and-quality-assurance"
},
{
"content": "8.7 Community Building\n\nFoster a welcoming and inclusive community by:\n\n- Welcoming new contributors and helping them get started\n- Organizing or participating in community events or meetups\n- Promoting the project on social media or relevant forums\n- Helping to moderate community discussions",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::69",
"metadata": {
"title": "Contributing Documentation"
},
"title": "8.7 Community Building",
"url": "https://docs.nhcarrigan.com/dev/contributing#87-community-building"
},
{
"content": "8.8 Internationalization and Localization\n\nMake the project accessible to a global audience:\n\n- Translate user interfaces\n- Provide localized documentation\n- Ensure the project supports multiple languages and cultures",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::70",
"metadata": {
"title": "Contributing Documentation"
},
"title": "8.8 Internationalization and Localization",
"url": "https://docs.nhcarrigan.com/dev/contributing#88-internationalization-and-localization"
},
{
"content": "8.9 Code Reviews\n\nEven if you're not comfortable making code changes, you can:\n\n- Review pull requests for documentation or small changes\n- Provide feedback on proposed features or bug fixes\n- Help ensure code style and convention consistency",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::71",
"metadata": {
"title": "Contributing Documentation"
},
"title": "8.9 Code Reviews",
"url": "https://docs.nhcarrigan.com/dev/contributing#89-code-reviews"
},
{
"content": "8.10 Fundraising and Sponsorship\n\nIf you have connections or experience in this area:\n\n- Help identify potential sponsors or grants\n- Assist with writing grant applications\n- Organize fundraising events or campaigns\n\nOr even make a donation yourself!",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::72",
"metadata": {
"title": "Contributing Documentation"
},
"title": "8.10 Fundraising and Sponsorship",
"url": "https://docs.nhcarrigan.com/dev/contributing#810-fundraising-and-sponsorship"
},
{
"content": "8.11 Mentoring\n\nShare your knowledge and experience:\n\n- Mentor new contributors\n- Create learning resources for the project\n- Participate in or organize coding workshops related to the project\n\nRemember, all contributions, big or small, are valuable to the project. Don't hesitate to get involved in any way you feel comfortable. If you have any questions about how to contribute or need help getting started, please reach out to us in our Discord server or through the project's communication channels.",
"file": "src/content/docs/dev/contributing.md",
"id": "src/content/docs/dev/contributing.md::73",
"metadata": {
"title": "Contributing Documentation"
},
"title": "8.11 Mentoring",
"url": "https://docs.nhcarrigan.com/dev/contributing#811-mentoring"
},
{
"content": "Copyright (C) 2024 nhcarrigan and its contributors.\n\nEveryone is permitted to copy and distribute verbatim copies of this\nlicense document, but changing it is not allowed.",
"file": "src/content/docs/dev/covenant.md",
"id": "src/content/docs/dev/covenant.md::0",
"metadata": {
"title": "nhcarrigan Contributor Covenant"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/dev/covenant#"
},
{
"content": "nhcarrigan Contributor Covenant 1.0\n\nBy making a contribution to this project I certify that:\n\n<ol type=\"a\">\n <li>\n I have read, understood, and agree to abide by the project's Code of Conduct in its entirety.\n </li>\n <li>\n My contribution and participation align with the principles outlined in the Code of Conduct, including respect for all community members regardless of their identity or background.\n </li>\n <li>\n I have the right to submit any code, documentation, or other content under the project's designated license.\n </li>\n <li>\n If my contribution is based on previous work covered under an open source license, I have the right to submit that work with modifications under the project's license.\n </li>\n <li>\n Any contribution provided to me by another person for submission to this project has been done so with certification of points <code>a</code> through <code>d</code>, and I have not modified it.\n </li>\n <li>\n I understand that my contributions may be logged publicly, and that moderation actions taken in response to Code of Conduct violations may be recorded in the community's public moderation log.\n </li>\n <li>\n I understand and agree that this project and the contribution are public and that a record of the contribution (including all personal information I submit with it) is maintained indefinitely and may be redistributed consistent with this project or the open source license(s) involved.\n </li>\n <li>\n I acknowledge that community leaders have the right and responsibility to remove, edit, or reject my contributions if they do not align with this certificate or the project's Code of Conduct.\n </li>\n <li>\n I agree to release my contribution to nhcarrigan pursuant to the Terms of Service.\n </li>\n</ol>",
"file": "src/content/docs/dev/covenant.md",
"id": "src/content/docs/dev/covenant.md::1",
"metadata": {
"title": "nhcarrigan Contributor Covenant"
},
"title": "nhcarrigan Contributor Covenant 1.0",
"url": "https://docs.nhcarrigan.com/dev/covenant#nhcarrigan-contributor-covenant-10"
},
{
"content": "This page documents Naomi's local development environment. The information here is provided to allow contributors to mirror the environment as closely as possible, ensuring the smoothest developer experience.",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::0",
"metadata": {
"title": "Development Environment"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/dev/environment#"
},
{
"content": "1. System Information\n\nNaomi's local environment runs on the Arch Linux kernel.",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::1",
"metadata": {
"title": "Development Environment"
},
"title": "1. System Information",
"url": "https://docs.nhcarrigan.com/dev/environment#1-system-information"
},
{
"content": "1.1. `hyfetch`\n\nThis is the current diagnostic report from `hyfetch`.\n\n```bash title=\"hyfetch\"\nnaomi@technomancer\n------------------\nOS: Arch Linux x86_64\n├─Kernel: 6.14.2-arch1-1\n├─Locale: en_GB.UTF-8\n├─Shell: /usr/bin/zsh 5.9\n├─WM: sway version 1.10.1\n├─Terminal: ghostty\nHost: MS-7B86 4.0\n├─CPU: AMD Ryzen 5 3600X (12) @ 3.8GHz [80.7°on]\n├─GPU: NVIDIA GeForce GTX 1070 Ti\n├───GPU Driver: NVIDIA 570.133.07\n├─Disk: /home: 377G/412G (97%)\n├───Root: /: 42G/45G (98%)\n├───Boot: /boot: 466M/1022M (46%)\n└─Memory: 15.51GiB / 31.29GiB (49%)\n\nProgramming Languages\n---------------------\nBash: 5.2.37(1)-release\nClang: 19.1.7\nC++: 14.2.1\nDart\n└─Flutter: failed\nDotnet: 9.0.104\n└─C-sharp Compiler: 3.9.0-6.21124.20\nGo: 1.24.2\nHaskell: 9.4.8\n└─Cabal: 3.8.1.0\nJava: version\n├─Gradle: 8.13\n└─Kotlin: 2.1.20-release-217\nLua: 5.4.7\nPHP: 8.4.6\nPython: 3.13.3\n└─PIP: 25.0.1\nNode: v23.9.0\n├─NPM: 11.3.0\n├─Yarn: 1.22.22\n└─PNPM: 10.8.1\nRuby: 3.3.7\nRust: 1.80.1\n├─Rustup: 1.27.1\n└─Cargo: 1.80.1\nTypeScript: 5.9.0-dev\nZig: 0.13.0\n\nDatabases\n---------\nMongoDB: v8.0.4\n└─Mongo Shell: v8.0.4\nMySQL: 9.2.0\nPostgreSQL: 17.4\nSQlite: 3.49.1\n\nTools\n-----\nBrowser: Zen 1.11.3b\nEditor: Emacs 30.1\n└─Nano: 8.4\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::2",
"metadata": {
"title": "Development Environment"
},
"title": "1.1. `hyfetch`",
"url": "https://docs.nhcarrigan.com/dev/environment#11-`hyfetch`"
},
{
"content": "2. Packages\n\nNaomi uses the following packages.",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::3",
"metadata": {
"title": "Development Environment"
},
"title": "2. Packages",
"url": "https://docs.nhcarrigan.com/dev/environment#2-packages"
},
{
"content": "2.1. Foreign Packages\n\nThese packages come from unofficial repositories, such as the AUR. This list is generated with `yay -Qm`.\n\n<details>\n <summary>Expand List</summary>\n\n```txt frame=\"terminal\" title=\"yay -Qm\"\n1password-cli 2.30.3-1\namor-debug 15.08.3-11\nangular-cli 19.2.7-1\napg 2.2.3-5\nasciiquarium-transparent-git r24.cfe288e-1\naws-cli-v2-bin 2:2.22.15-1\ncal3d 0.11.0-7\ncal3d-debug 0.11.0-7\ncbonsai 1.3.1-3\nccze 0.2.1-13\nchafa-git 1.14.5.r112.g9aa862e-1\nckb-next-debug 0.6.0-1\ncrowdin-cli 4.7.0-1\ndependency-check-cli 12.1.0-1\ndreamweb 1.1-1\nelectron25-bin 25.9.8-3\nespanso-gui 24.7-1\nespanso-wayland 2.2.3-1\neternallands 1.9.7.0-0\neternallands-debug 1.9.7.0-0\nfaudio 25.04-1\nfaudio-debug 25.04-1\nflyctl 0.3.105-1\nflyctl-debug 0.3.105-1\nfreetube-bin 0.23.3-1\nfreetube-nightly-debug 0.23.2_nightly_5764-1\nghostty-git 1.1.2.r307.ge07b6fd-1\nghostty-git-debug 1.1.2.r307.ge07b6fd-1\ngoogle-chat-linux-bin 5.29.23-1\ngoogle-chat-linux-bin-debug 5.29.23-1\ngpu-usage-waybar-git 0.1.12.r17.g61ebe61-1\ngrimshot 1.10-1\ngwenview-no-purpose 24.12.3-1\ngwenview-no-purpose-debug 24.12.3-1\nhaskell-data-array-byte 0.1.0.1-84\nhollywood 1.21-7\ninsomnium 0.2.3_a-8\nlib32-sdl2-debug 2.30.11-2\nlibelectron 2025.3-1\nlibelectron-debug 2025.3-1\nlibretro-beetle-psx-git 2747.80d3eba2-1\nlibretro-beetle-psx-git-debug 2747.80d3eba2-1\nlibrewolf-bin 1:137.0.2_1-1\nlibrewolf-bin-debug 1:137.0.2_1-1\nlibscanmem-git 0.17.1103.0def8b2-1\nlrexlib-pcre5.1 2.9.0-2\nlua-yajl 2.0-2\nlua51-lcf 5.1-3\nlua51-sql-sqlite 2.3.0-4\nluazip5.1 1.2.7-1\nmommy 1.6.0-1\nmongodb-tools-bin 100.10.0-3\nmongosh-bin 2.5.0-1\nmongosh-bin-debug 2.5.0-1\nmoosync-debug 11.0.1-2\nmpris-discord-rpc 0.2.2-1\nmpris-discord-rpc-debug 0.2.2-1\nneverwinter.nim-bin 2.0.1-1\nnodejs-http-server 14.1.1-1\nnotepad++ 8.7.6-1\nnoto-fonts-emoji-flags 20200120-1\nobs-retro-effects-debug 1.0.0-1\nobs-studio-liberty-debug 31.0.3-1\nopenlinkhub-bin-debug 0.5.1-4\nopenssl-1.0 1.0.2.u-6\notf-compagnon 1.000-1\npipes.sh 1.3.0-1\nplay.it-git 2.29.1.r1.g03ba243f-1\nproton-ge-custom 2:GE.Proton9.23-1\npython-eyed3 0.9.7-3\npython-keyboard 0.13.5-2\nredact-bin 0.18.0-1\nrenovate-git-debug 39.83.2.r0.g68c05cf-1\nresonance 0.1.3-1\nresonance-debug 0.1.3-1\nroam 157.0.0.beta001-1\nrpgvxace-rtp 100-3\nsamrewritten-git r261.cac0291-1\nsamrewritten-git-debug r261.cac0291-1\nsdl2-debug 2.30.11-2\nshellspec 0.28.1-3\nslack-cli 3.0.0-0\nslack-cli-debug 3.0.0-0\nsonar-scanner 7.0.2.4839-1\nspacecadetpinball-bin 2.1.0-2\nspacecadetpinball-bin-debug 2.1.0-2\nspeedometer 2.9-3\nttf-joypixels 8.0.0-2\nvercel 39.2.2-1\nvercel-debug 39.2.2-1\nvsce 3.3.2-1\nvsce-debug 3.3.2-1\nwofi-emoji 1.2-3\nwscat 5.2.0-2\nwxhexeditor 0.24-4\n```\n\n</details>",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::4",
"metadata": {
"title": "Development Environment"
},
"title": "2.1. Foreign Packages",
"url": "https://docs.nhcarrigan.com/dev/environment#21-foreign-packages"
},
{
"content": "2.2. Explicit Installations\n\nThese are all of the packages Naomi has specifically installed. This list is generated with `yay -Qe`.\n\n<details>\n <summary>Expand List</summary>\n\n```txt frame=\"terminal\" title=\"yay -Qe\"\n1password 8.10.72-27\n1password-cli 2.30.3-1\n7zip 24.09-3\nact 0.2.76-1\nactivitywatch-bin 0.13.2-1\nalacarte 1:3.54.1-1\nalacritty 0.15.1-1\nalsa-utils 1.2.14-1\namberol 2024.2-1\namd-ucode 20250408.c1a774f3-1\nangular-cli 19.2.7-1\nanime-games-launcher-bin 1.0.2-1\nappimagelauncher 2.2.0-9.8\nasciiquarium-transparent-git r24.cfe288e-1\naspell 0.60.8.1-2\naws-cli-v2-bin 2:2.22.15-1\nbaobab 48.0-2\nbase 3-2\nbase-devel 1-2\nbind 9.20.8-1\nbrave-bin 1:1.77.100-1\nbtop 1.4.0-5\ncabal-install 3.8.1.0-25\ncalc 2.15.1.0-1\ncbonsai 1.3.1-3\nccls 0.20241108-1\nchafa-git 1.14.5.r112.g9aa862e-1\nchaotic-keyring 20230616-1\nchaotic-mirrorlist 20240724-3\ncheese 44.1-3\ncinny-desktop 4.6.0-1.5\ncliphist 1:0.6.1-1\ncloc 2.04-1\ncloudflared 2025.4.0-1\ncmake 4.0.1-1\ncmatrix 2.0-3\ncrowdin-cli 4.7.0-1\ndependency-check-cli 12.1.0-1\ndiscord 1:0.0.91-1\ndkms 3.1.8-1\ndoctl 1.124.0-1\ndolphin 24.12.3-1\ndosbox-x 2025.02.01-1\ndosfstools 4.2-5\ndotnet-runtime-8.0 8.0.14.sdk114-1\ndotnet-sdk 9.0.3.sdk104-1\ndotnet-sdk-8.0 8.0.14.sdk114-1\ndotnet-targeting-pack-8.0 8.0.14.sdk114-1\ndowngrade 11.5.1-1\ndpkg 1.22.18-1\ndreamweb 1.1-1\nduckstation 0.1.7465-1.5\ndunst 1.12.2-1\nefibootmgr 18-3\nelisa 24.12.3-1\nemacs 30.1-4\nespanso-gui 24.7-1\nespanso-wayland 2.2.3-1\neternallands 1.9.7.0-0\neza 0.21.0-1\nfirefox 137.0.2-1\nflameshot 12.1.0-6\nflatpak-builder 1.4.4-1\nfluffychat 1.25.1-1.3\nflyctl 0.3.105-1\nfreetube-bin 0.23.3-1\ngameconqueror 0.17-10\nghc 9.4.8-1\nghostty-git 1.1.2.r307.ge07b6fd-1\ngimp 3.0.2-2\ngit 2.49.0-1\ngithub-cli 2.70.0-1\ngitleaks 8.24.3-1\ngnome-clocks 48.0-1\ngnome-keyring 1:48.0-1\ngnu-netcat 0.7.1-10\ngoogle-chat-linux-bin 5.29.23-1\ngoogle-chrome 135.0.7049.95-1\ngpu-usage-waybar-git 0.1.12.r17.g61ebe61-1\ngradle 8.13-1\ngrim 1.4.1-3\ngrimshot 1.10-1\ngrype-bin 0.91.0-1\ngst-plugin-pipewire 1:1.4.2-1\ngwenview-no-purpose 24.12.3-1\nhexchat 2.16.2-4\nhexedit 1.6-2\nhollywood 1.21-7\nhtop 3.4.1-1\nhunspell-en_gb 2020.12.07-5\nhyfetch 1.99.0-2\nicoutils 0.32.3-3\nid3v2 0.1.12-7\ninetutils 2.6-1\ninnoextract 1.9-12\ninsomnium 0.2.3_a-8\niwd 3.6-1\njoyutils 1.8.1-3\nkazam 1.4.5-9.8\nkdenlive 24.12.3-1\nkitty 0.41.1-1\nkotlin 2.1.20-1\nlazygit 0.49.0-1\nlib32-gnutls 3.8.9-1\nlib32-libpulse 17.0+r43+g3e2bb8a1e-1\nlib32-openal 1.24.3-1\nlibgnome-keyring 1:3.12.0+r14+g23438cc-1\nlibpulse 17.0+r43+g3e2bb8a1e-1\nlibqalculate 5.5.2-1\nlibredefender 0.7.0-2\nlibreoffice-fresh 25.2.2-2\nlibretro-beetle-psx-git 2747.80d3eba2-1\nlibretro-core-info 1.20.0-1\nlibretro-genesis-plus-gx 2217-1\nlibretro-mesen 2904-1\nlibretro-mesen-s 916-4\nlibretro-mgba 9298-2\nlibretro-picodrive 2736-1\nlibretro-sameboy 1720-3\nlibretro-shaders-slang 1648-1\nlibrewolf-bin 1:137.0.2_1-1\nlibscanmem-git 0.17.1103.0def8b2-1\nlinux 6.14.2.arch1-1\nlinux-firmware 20250408.c1a774f3-1\nlinux-headers 6.14.2.arch1-1\nlrzip 0.651-3\nluanti 5.11.0-1\nlutris 0.5.19-2\nlynx 2.9.2-1\nman-db 2.13.0-1\nmari0 1.6.2-5\nmommy 1.6.0-1\nmongodb 8.0.4-1.4\nmongodb-tools-bin 100.10.0-3\nmongosh-bin 2.5.0-1\nmpris-discord-rpc 0.2.2-1\nmpv 1:0.40.0-2\nmysql 9.2.0-1\nnano 8.4-1\nnasm 2.16.03-1\nncurses5-compat-libs 6.5-1.1\nneofetch 7.1.0-2\nnet-tools 2.10-3\nnetwork-manager-applet 1.36.0-1\nnetworkmanager 1.52.0-1\nneverwinter.nim-bin 2.0.1-1\nnmap 7.95-1\nnodejs-http-server 14.1.1-1\nnodejs-nativefier 52.0.0-1\nnotepad++ 8.7.6-1\nnotepadnext 0.11-1\nnoto-fonts 1:2025.04.01-1\nnoto-fonts-cjk 20240730-1\nnoto-fonts-emoji 1:2.047-1\nnoto-fonts-emoji-flags 20200120-1\nnpm-check-updates 17.1.16-1\nnvidia-dkms 570.133.07-1\nnvtop 3.2.0-1\nodilia 0.1.4-1\noneko 1.2.5-5.1\nopendoas 6.8.2-3\nopenrgb 0.9-4\norca 48.0-1\notf-compagnon 1.000-1\notf-font-awesome 6.7.2-1\notf-opendyslexic-nerd 3.3.0-1\npavucontrol 1:6.1-1\npcsx2-avx-git 2.3.281.r0.g01120f6-1\nperl-archive-zip 1.68-10\nperl-image-exiftool 13.25-1\nperl-net-telnet 3.05-6\nphp 8.4.6-1\npicom-git 12.5.r92.gb995372-1\npipes.sh 1.3.0-1\npipewire 1:1.4.2-1\npipewire-alsa 1:1.4.2-1\npipewire-jack 1:1.4.2-1\npipewire-pulse 1:1.4.2-1\npnpm 10.8.1-1\npokemon-colorscripts-git r114.5802ff67-1\npolkit-gnome 0.105-11\npolkit-kde-agent 6.3.4-1\npostgresql 17.4-1\nproton-ge-custom 2:GE.Proton9.23-1\nproton-vpn-gtk-app 4.9.6-1\npyright 1.1.399-1\npython-eyed3 0.9.7-3\npython-pipenv 2024.4.1-1\npython-pipx 1.7.1-2\npython-pyquery 2.0.1-1\npython-virtualenv 20.28.0-1\nqbittorrent 5.0.4-3\nqt5-wayland 5.15.16+kde+r60-1\nqt6-wayland 6.9.0-2\nquodlibet 4.6.0-5\nredact-bin 0.18.0-1\nreflector 2023-3\nresonance 0.1.3-1\nretroarch 1.20.0-2\nretroarch-assets-xmb 1:528-1\nroam 157.0.0.beta001-1\nrofimoji 6.5.0-2\nrpgvxace-rtp 100-3\nrpm-tools 4.20.1-1\nrsync 3.4.1-2\nruby 3.3.7-2\nsamrewritten-git r261.cac0291-1\nscanmem 0.17-10\nscrcpy 3.2-1\nsddm 0.21.0-6\nser2net 4.6.2-1\nsignal-desktop 7.51.0-1\nslack-cli 3.0.0-0\nslack-desktop 4.43.51-1\nslurp 1.5.0-1\nsmartmontools 7.4-2\nsonar-scanner 7.0.2.4839-1\nspacecadetpinball-bin 2.1.0-2\nspeedtest-cli 2.1.3-9\nspotdl 4.2.11-1\nspotify 1:1.2.60.564-2.6\nsquashfs-tools 4.6.1-2\nstarship 1.22.1-1\nsteam 1.0.0.82-2\nstrace 6.14-1\nsublime-text-4 4.4192-1\nswappy 1.5.1-2\nsway 1:1.10.1-2\nswaybg 1.2.1-1\nswayidle 1.8.0-2\nswaylock-effects 1.7.0.0-4.4\nsyft 1.20.0-1\ntailscale 1.82.5-1\nthefuck 3.32-11\nthunar 4.20.2-1\nthunderbird 137.0.1-1\ntk 8.6.16-1\ntransmission-cli 4.0.6-9\ntrayscale 0.14.3-2\ntrivy 0.61.1-1\nttf-firacode-nerd 3.3.0-1\nttf-font-awesome 6.7.2-1\nttf-jetbrains-mono-nerd 3.3.0-1\nttf-joypixels 8.0.0-2\nttf-symbola 14.00-2\nttf-twemoji 15.1.0-1\ntypescript 5.8.3-1\ntypescript-language-server 4.3.3-1\nunrar 1:7.1.6-1\nv4l2loopback-dkms 0.14.0-1\nvalgrind 3.24.0-3\nvercel 39.2.2-1\nvi 1:070224-6\nvim 9.1.1236-1\nvosk-api 0.3.50-5\nvsce 3.3.2-1\nvscodium 1.99.32562-1\nvscodium-marketplace 1.97.0-1\nw3m 0.5.3.git20230713_1-1\nwaybar 0.12.0-1\nwaybar-module-pacman-updates-git 0.2.7-1\nwebcamoid 9.2.3-1.5\nwebsocat 1.14.0-1\nwev 1.0.0-13\nwget 1.25.0-2\nwhatsapp-for-linux 1.7.0-1.3\nwine 10.5-1\nwireless_tools 30.pre9-4\nwireplumber 0.5.8-1\nwlogout 1.2.2-0.3\nwofi 1.4.1-1\nwofi-emoji 1.2-3\nwscat 5.2.0-2\nwxhexeditor 0.24-4\nxclip 0.13-6\nxdg-desktop-portal-hyprland 1.3.9-8\nxdg-desktop-portal-wlr 0.7.1-1\nxdg-utils 1.2.1-1\nxorg-server 21.1.16-1\nxorg-xcursorgen 1.0.8-2\nxorg-xhost 1.0.10-1\nxorg-xinit 1.4.4-1\nyamllint 1.37.0-1\nyay 12.4.2-1.1\nyq 3.4.3-2\nzen-browser-bin 1.11.3b-1\nzig 0.13.0-2\nzoom 6.4.3-1\nzsh 5.9-5\n```\n\n</details>",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::5",
"metadata": {
"title": "Development Environment"
},
"title": "2.2. Explicit Installations",
"url": "https://docs.nhcarrigan.com/dev/environment#22-explicit-installations"
},
{
"content": "2.3. Pinned Packages\n\nThese packages have updates ignored, due to incompatibility issues. This list is generated with `grep \"^IgnorePkg\" /etc/pacman.conf`.\n\n```ini frame=\"code\" title=\"pacman.conf\"\nIgnorePkg =\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::6",
"metadata": {
"title": "Development Environment"
},
"title": "2.3. Pinned Packages",
"url": "https://docs.nhcarrigan.com/dev/environment#23-pinned-packages"
},
{
"content": "2.4. All Packages\n\nThis is a complete list of all packages on the machine. This list is generated with `yay -Q`.\n\n:::caution\nThis list is quite large.\n:::\n\n<details>\n <summary>Expand List</summary>\n\n```txt frame=\"terminal\" title=\"yay -Q\"\n1password 8.10.72-27\n1password-cli 2.30.3-1\n7zip 24.09-3\na52dec 0.8.0-2\naalib 1.4rc5-18\nabseil-cpp 20250127.1-1\naccounts-qml-module 0.7-6\nacl 2.3.2-1\nact 0.2.76-1\nactivitywatch-bin 0.13.2-1\nadobe-source-code-pro-fonts 2.042u+1.062i+1.026vf-2\nadwaita-cursors 48.0-1\nadwaita-fonts 48.2-1\nadwaita-icon-theme 48.0-1\nadwaita-icon-theme-legacy 46.2-3\nalacarte 1:3.54.1-1\nalacritty 0.15.1-1\nalsa-card-profiles 1:1.4.2-1\nalsa-lib 1.2.14-1\nalsa-plugins 1:1.2.12-4\nalsa-topology-conf 1.2.5.1-4\nalsa-ucm-conf 1.2.14-1\nalsa-utils 1.2.14-1\namberol 2024.2-1\namd-ucode 20250408.c1a774f3-1\namor-debug 15.08.3-11\nandroid-tools 35.0.2-14\nandroid-udev 20250314-1\nangular-cli 19.2.7-1\nanime-games-launcher-bin 1.0.2-1\naom 3.12.1-1\napg 2.2.3-5\nappimagelauncher 2.2.0-9.8\nappmenu-gtk-module 24.05-1\nappstream 1.0.4-1\nappstream-glib 0.8.3-2\naquamarine 0.8.0-3\narchlinux-keyring 20250123-1\nargon2 20190702-6\naribb24 1.0.3-4\nasciiquarium-transparent-git r24.cfe288e-1\nasio 1.34.2-1\naspell 0.60.8.1-2\nat-spi2-core 2.56.1-1\natkmm 2.28.4-1\nattica 6.12.0-1\nattr 2.5.2-1\naudit 4.0.3-1\nautoconf 2.72-1\nautomake 1.17-1\navahi 1:0.8+r194+g3f79789-3\naws-cli-v2-bin 2:2.22.15-1\nayatana-ido 0.10.4-1\nbabl 0.1.112-1\nbaloo 6.12.0-1\nbaloo-widgets 24.12.3-1\nbaobab 48.0-2\nbase 3-2\nbase-devel 1-2\nbash 5.2.037-2\nbind 9.20.8-1\nbinutils 2.44-1\nbison 3.8.2-8\nblas 3.12.1-2\nbluez-libs 5.82-1\nbmon 4.0-5\nboost 1.87.0-3\nboost-libs 1.87.0-3\nbotan2 2.19.5-2\nbrave-bin 1:1.77.100-1\nbreeze-icons 6.12.0-1\nbreezy 3.3.9-4\nbridge-utils 1.7.1-2\nbrltty 6.7-5\nbrotli 1.1.0-3\nbtop 1.4.0-5\nbubblewrap 0.11.0-1\nbyobu 6.12-1\nbzip2 1.0.8-6\nc-ares 1.34.5-1\nca-certificates 20240618-1\nca-certificates-mozilla 3.110-1\nca-certificates-utils 20240618-1\ncabal-install 3.8.1.0-25\ncabextract 1.11-2\ncairo 1.18.4-1\ncairomm 1.14.5-1\ncairomm-1.16 1.18.0-1\ncal3d 0.11.0-7\ncal3d-debug 0.11.0-7\ncalc 2.15.1.0-1\ncantarell-fonts 1:0.303.1-2\ncapstone 5.0.6-1\ncbindgen 0.28.0-1\ncblas 3.12.1-2\ncbonsai 1.3.1-3\nccls 0.20241108-1\nccze 0.2.1-13\ncdparanoia 10.2-9\ncfitsio 1:4.6.2-1\nchafa-git 1.14.5.r112.g9aa862e-1\nchaotic-keyring 20230616-1\nchaotic-mirrorlist 20240724-3\ncheese 44.1-3\nchromaprint 1.5.1-10\ncifs-utils 7.3-1\ncinny-desktop 4.6.0-1.5\ncjson 1.7.18-1\nckb-next-debug 0.6.0-1\nclamav 1.4.2-1\nclang 19.1.7-1\nclang18 18.1.8-1\ncliphist 1:0.6.1-1\ncloc 2.04-1\ncloudflared 2025.4.0-1\nclucene 2.3.3.4-16\nclutter 1.26.4-3\nclutter-gst 3.0.27-5\nclutter-gtk 1.8.4-4\ncmake 4.0.1-1\ncmatrix 2.0-3\ncogl 1.22.8-3\ncolord 1.4.7-2\ncompiler-rt 19.1.7-1\ncompiler-rt18 18.1.8-1\ncomposefs 1.0.7-1\nconfuse 3.3-4\ncontainerd 2.0.5-1\nconvertlit 1.8-12\ncoreutils 9.7-1\ncpio 2.15-2\ncppdap 1.58.0-2\ncrowdin-cli 4.7.0-1\ncryptsetup 2.7.5-2\ncurl 8.13.0-2\ndav1d 1.5.1-1\ndb5.3 5.3.28-5\ndbus 1.16.2-1\ndbus-broker 36-4\ndbus-broker-units 36-4\ndbus-glib 0.114-1\ndconf 0.40.0-3\ndebugedit 5.1-1\ndebuginfod 0.192-4\ndefault-cursors 3-1\ndeno 2.2.7-1\ndependency-check-cli 12.1.0-1\ndesktop-file-utils 0.28-1\ndevice-mapper 2.03.31-1\ndiffutils 3.12-1\ndiscord 1:0.0.91-1\ndkms 3.1.8-1\ndnssec-anchors 20190629-4\ndocbook-xml 4.5-10\ndocbook-xsl 1.79.2-9\ndoctl 1.124.0-1\ndolphin 24.12.3-1\ndosbox-x 2025.02.01-1\ndosfstools 4.2-5\ndotconf 1.4.1-1\ndotnet-host 9.0.3.sdk104-1\ndotnet-runtime 9.0.3.sdk104-1\ndotnet-runtime-8.0 8.0.14.sdk114-1\ndotnet-sdk 9.0.3.sdk104-1\ndotnet-sdk-8.0 8.0.14.sdk114-1\ndotnet-targeting-pack 9.0.3.sdk104-1\ndotnet-targeting-pack-8.0 8.0.14.sdk114-1\ndouble-conversion 3.3.1-1\ndowngrade 11.5.1-1\ndpkg 1.22.18-1\ndreamweb 1.1-1\nduckstation 0.1.7465-1.5\nduktape 2.7.0-7\ndunst 1.12.2-1\ne2fsprogs 1.47.2-2\nebook-tools 0.2.2-8\nefibootmgr 18-3\nefivar 39-1\negl-gbm 1.1.2.1-1\negl-wayland 4:1.1.18-1\negl-x11 1.0.0-1\neglexternalplatform 1.2-2\nelectron25-bin 25.9.8-3\nelectron32 32.3.1-3\nelectron34 34.5.0-2\nelfutils 0.192-4\nelisa 24.12.3-1\nell 0.76-1\nemacs 30.1-4\nenchant 2.8.2-2\nenet 1.3.18-1\nespanso-gui 24.7-1\nespanso-wayland 2.2.3-1\neternallands 1.9.7.0-0\neternallands-debug 1.9.7.0-0\nexiv2 0.28.5-1\nexo 4.20.0-2\nexpat 2.7.1-1\nextra-cmake-modules 6.12.0-1\neza 0.21.0-1\nfaac 1.31.1-1\nfaad2 2.11.2-1\nfakeroot 1.37.1.1-1\nfaudio 25.04-1\nfaudio-debug 25.04-1\nfeh 3.10.3-1\nffmpeg 2:7.1-9\nffmpeg4.4 4.4.5-3\nffnvcodec-headers 13.0.19.0-1\nfftw 3.3.10-7\nfile 5.46-4\nfilesystem 2024.11.21-1\nfindutils 4.10.0-2\nfirefox 137.0.2-1\nflac 1.5.0-1\nflameshot 12.1.0-6\nflatbuffers 25.2.10-1\nflatpak 1:1.16.0-2\nflatpak-builder 1.4.4-1\nflex 2.6.4-5\nfluffychat 1.25.1-1.3\nfluidsynth 2.4.5-3\nflutter-bin 3.29.3-1\nflyctl 0.3.105-1\nflyctl-debug 0.3.105-1\nfmt 11.1.4-1\nfontconfig 2:2.16.2-1\nfreeglut 3.6.0-1\nfreetube-bin 0.23.3-1\nfreetube-nightly-debug 0.23.2_nightly_5764-1\nfreetype2 2.13.3-3\nfrei0r-plugins 2.3.3-3\nfribidi 1.0.16-1\nfuse-common 3.17.1-1\nfuse-overlayfs 1.14-2\nfuse2 2.9.9-5\nfuse3 3.17.1-1\nfzf 0.61.1-1\ngameconqueror 0.17-10\ngawk 5.3.2-1\ngc 8.2.8-2\ngcc 14.2.1+r753+g1cd744a6828f-1\ngcc-libs 14.2.1+r753+g1cd744a6828f-1\ngcr 3.41.2-2\ngcr-4 4.4.0.1-1\ngd 2.3.3-8\ngdb 16.2-1\ngdb-common 16.2-1\ngdbm 1.25-1\ngdk-pixbuf2 2.42.12-2\ngegl 0.4.58-1\ngensio 2.8.10-1\ngeoclue 2.7.2-1\ngeocode-glib-2 3.26.4-4\ngeocode-glib-common 3.26.4-4\ngettext 0.24-1\nghc 9.4.8-1\nghc-libs 9.4.8-1\nghostty-git 1.1.2.r307.ge07b6fd-1\nghostty-git-debug 1.1.2.r307.ge07b6fd-1\ngiflib 5.2.2-2\ngimp 3.0.2-2\ngit 2.49.0-1\ngit-lfs 3.6.1-1\ngithub-cli 2.70.0-1\ngitleaks 8.24.3-1\nglew 2.2.0-7\nglew1.10 1.10.0-4\nglib-networking 1:2.80.1-1\nglib2 2.84.1-1\nglibc 2.41+r9+ga900dbaf70f0-1\nglibmm 2.66.8-1\nglibmm-2.68 2.84.0-1\ngloox 1.0.28-1\nglslang 15.2.0-2\nglu 9.0.3-2\ngmp 6.3.0-2\ngn 0.2223.6e8e0d6d-1\ngnome-clocks 48.0-1\ngnome-desktop 1:44.1-1\ngnome-desktop-4 1:44.1-1\ngnome-desktop-common 1:44.1-1\ngnome-keyring 1:48.0-1\ngnome-menus 3.36.0-3\ngnome-video-effects 1:0.6.0-2\ngnu-free-fonts 20120503-8\ngnu-netcat 0.7.1-10\ngnulib-l10n 20241231-1\ngnupg 2.4.7-1\ngnutls 3.8.9-1\ngo 2:1.24.2-1\ngobject-introspection 1.84.0-1\ngobject-introspection-runtime 1.84.0-1\ngoogle-chat-linux-bin 5.29.23-1\ngoogle-chat-linux-bin-debug 5.29.23-1\ngoogle-chrome 135.0.7049.95-1\ngperf 3.1-5\ngperftools 2.16-1\ngpgme 1.24.2-1\ngpm 1.20.7.r38.ge82d1a6-6\ngpu-usage-waybar-git 0.1.12.r17.g61ebe61-1\ngradle 8.13-1\ngraphene 1.10.8-2\ngraphite 1:1.3.14-4\ngrep 3.12-1\ngrim 1.4.1-3\ngrimshot 1.10-1\ngroff 1.23.0-7\ngrype-bin 0.91.0-1\ngsettings-desktop-schemas 48.0-1\ngsettings-system-schemas 48.0-1\ngsfonts 20200910-4\ngsm 1.0.22-2\ngspell 1.14.0-2\ngssdp 1.6.3-2\ngst-libav 1.26.0-3\ngst-plugin-pipewire 1:1.4.2-1\ngst-plugins-bad 1.26.0-3\ngst-plugins-bad-libs 1.26.0-3\ngst-plugins-base 1.26.0-3\ngst-plugins-base-libs 1.26.0-3\ngst-plugins-good 1.26.0-3\ngst-plugins-ugly 1.26.0-3\ngstreamer 1.26.0-3\ngtest 1.16.0-2\ngtk-layer-shell 0.9.1-1\ngtk-update-icon-cache 1:4.18.4-1\ngtk2 2.24.33-5\ngtk3 1:3.24.49-1\ngtk4 1:4.18.4-1\ngtkmm-4.0 4.18.0-2\ngtkmm3 3.24.10-1\ngtksourceview3 1:3.24.11+r28+g73e57b57-2\nguile 3.0.10-1\ngulp 5.0.0-1\ngupnp 1:1.6.8-1\ngupnp-igd 1.6.0-1\ngvfs 1.57.2-2\ngwenview-no-purpose 24.12.3-1\ngwenview-no-purpose-debug 24.12.3-1\ngzip 1.14-1\nharfbuzz 11.0.1-1\nharfbuzz-icu 11.0.1-1\nhaskell-async 2.2.5-96\nhaskell-base-orphans 0.9.0-6\nhaskell-base16-bytestring 1.0.2.0-104\nhaskell-base64-bytestring 1.2.1.0-128\nhaskell-cabal-install-solver 3.8.1.0-9\nhaskell-cryptohash-sha256 0.11.102.1-115\nhaskell-data-array-byte 0.1.0.1-84\nhaskell-echo 0.1.4-6\nhaskell-ed25519 0.0.5.0-26\nhaskell-edit-distance 0.2.2.1-232\nhaskell-ghc-bignum-orphans 0.1.1-3\nhaskell-hackage-security 0.6.2.6-42\nhaskell-hashable 1.4.4.0-81\nhaskell-http 4000.4.1-262\nhaskell-lukko 0.1.1.3-221\nhaskell-network 3.1.4.0-44\nhaskell-network-uri 2.6.4.2-56\nhaskell-os-string 2.0.7-26\nhaskell-random 1.2.1.2-77\nhaskell-regex-base 0.94.0.3-2\nhaskell-regex-posix 0.96.0.2-2\nhaskell-resolv 0.2.0.2-225\nhaskell-safe-exceptions 0.1.7.4-45\nhaskell-splitmix 0.1.0.5-71\nhaskell-tar 0.5.1.1-196\nhaskell-th-compat 0.1.6-6\nhaskell-zlib 0.6.3.0-84\nhexchat 2.16.2-4\nhexedit 1.6-2\nhicolor-icon-theme 0.18-1\nhidapi 0.14.0-3\nhighway 1.2.0-1\nhollywood 1.21-7\nhtop 3.4.1-1\nhttp-parser 2.9.4-2\nhunspell 1.7.2-2\nhunspell-en_gb 2020.12.07-5\nhwdata 0.394-1\nhyfetch 1.99.0-2\nhyphen 2.8.8-6\nhyprcursor 0.1.12-2\nhyprgraphics 0.1.3-3\nhyprland-qt-support 0.1.0-5\nhyprland-qtutils 0.1.3-6\nhyprlang 0.6.1-1\nhyprutils 0.6.0-1\nhyprwayland-scanner 0.4.4-1\ni2c-tools 4.4-2\niana-etc 20250328-1\nicoutils 0.32.3-3\nicu 76.1-1\nid3lib 3.8.3-19\nid3v2 0.1.12-7\nimagemagick 7.1.1.47-1\nimake 1.0.10-2\nimath 3.1.12-3\nimlib2 1.12.5-1\ninetutils 2.6-1\ninnoextract 1.9-12\ninsomnium 0.2.3_a-8\nintltool 0.51.0-6\niproute2 6.14.0-1\niptables 1:1.8.11-2\niputils 20240905-1\niso-codes 4.18.0-1\niwd 3.6-1\njansson 2.14.1-1\njasper 4.2.5-1\njava-environment-common 3-6\njava-runtime-common 3-6\njbigkit 2.1-8\njdk17-openjdk 17.0.15.u6-1\njdk21-openjdk 21.0.7.u6-1\njemalloc 1:5.3.0-5\njoyutils 1.8.1-3\njp2a 1.3.2-1\njq 1.7.1-2\njson-c 0.18-1\njson-glib 1.10.6-1\njsoncpp 1.9.6-3\nkaccounts-integration 24.12.3-1\nkarchive 6.12.0-1\nkarchive5 5.116.0-1\nkauth 6.12.0-1\nkauth5 5.116.0-1\nkazam 1.4.5-9.8\nkbd 2.7.1-2\nkbookmarks 6.12.0-1\nkcmutils 6.12.0-1\nkcodecs 6.12.0-1\nkcodecs5 5.116.0-1\nkcolorpicker 0.3.1-4\nkcolorscheme 6.12.0-1\nkcompletion 6.12.0-1\nkconfig 6.12.0-1\nkconfig5 5.116.0-1\nkconfigwidgets 6.12.0-1\nkconfigwidgets5 5.116.0-1\nkcoreaddons 6.12.0-2\nkcoreaddons5 5.116.0-1\nkcrash 6.12.0-1\nkdbusaddons 6.12.0-1\nkdbusaddons5 5.116.0-1\nkddockwidgets-qt6 2.2.2-2.1\nkdenlive 24.12.3-1\nkdnssd 6.12.0-1\nkdoctools5 5.116.0-1\nkdsoap-qt6 2.2.0-1\nkdsoap-ws-discovery-client 0.4.0-1\nkeystone 0.9.2-7\nkeyutils 1.6.3-3\nkfilemetadata 6.12.0-1\nkglobalaccel 6.12.0-1\nkglobalaccel5 5.116.0-1\nkguiaddons 6.12.0-2\nkguiaddons5 5.116.0-1\nki18n 6.12.0-1\nki18n5 5.116.0-1\nkiconthemes 6.12.0-1\nkiconthemes5 5.116.0-1\nkidletime 6.12.0-1\nkimageannotator 0.7.1-3\nkio 6.12.0-1\nkio-extras 24.12.3-1\nkirigami 6.12.0-1\nkirigami-addons 1.7.0-1\nkitemmodels 6.12.0-1\nkitemviews 6.12.0-1\nkitemviews5 5.116.0-1\nkitty 0.41.1-1\nkitty-shell-integration 0.41.1-1\nkitty-terminfo 0.41.1-1\nkjobwidgets 6.12.0-1\nkmod 34.2-1\nknewstuff 6.12.0-1\nknotifications 6.12.0-2\nknotifyconfig 6.12.0-1\nkotlin 2.1.20-1\nkpackage 6.12.0-1\nkparts 6.12.0-1\nkrb5 1.21.3-1\nkservice 6.12.0-1\nksvg 6.12.0-1\nktextwidgets 6.12.0-1\nkuserfeedback 6.12.0-1\nkwallet 6.12.0-1\nkwidgetsaddons 6.12.0-2\nkwidgetsaddons5 5.116.0-1\nkwindowsystem 6.12.0-3\nkwindowsystem5 5.116.0-1\nkxmlgui 6.12.0-2\nkxmlgui5 5.116.0-1\nl-smash 2.14.5-4\nlame 3.100-5\nlapack 3.12.1-2\nlazygit 0.49.0-1\nlcms2 2.17-1\nldb 2:4.22.1-1\nleancrypto 1.3.0-1\nlensfun 1:0.3.4-5\nless 1:668-1\nlhasa 0.4.0-1\nlib32-acl 2.3.2-1\nlib32-alsa-lib 1.2.14-1\nlib32-alsa-plugins 1.2.12-1\nlib32-at-spi2-core 2.56.1-1\nlib32-attr 2.5.2-1\nlib32-audit 4.0.3-1\nlib32-brotli 1.1.0-1\nlib32-bzip2 1.0.8-4\nlib32-cairo 1.18.4-1\nlib32-curl 8.13.0-1\nlib32-dbus 1.16.2-1\nlib32-dbus-glib 0.112-3\nlib32-duktape 2.7.0-7\nlib32-e2fsprogs 1.47.2-1\nlib32-expat 2.7.1-1\nlib32-flac 1.5.0-1\nlib32-fontconfig 2:2.16.2-1\nlib32-freeglut 3.6.0-1\nlib32-freetype2 2.13.3-3\nlib32-fribidi 1.0.16-1\nlib32-gcc-libs 14.2.1+r753+g1cd744a6828f-1\nlib32-gdk-pixbuf2 2.42.12-2\nlib32-gettext 0.24-1\nlib32-giflib 5.2.2-1\nlib32-glew1.10 1.10.0-6\nlib32-glib-networking 1:2.80.1-1\nlib32-glib2 2.84.1-1\nlib32-glibc 2.41+r9+ga900dbaf70f0-1\nlib32-glu 9.0.3-2\nlib32-gmp 6.3.0-2\nlib32-gnutls 3.8.9-1\nlib32-gtk2 2.24.33-5\nlib32-harfbuzz 11.0.1-1\nlib32-icu 76.1-1\nlib32-imlib2 1.12.5-1\nlib32-json-c 0.18-1\nlib32-keyutils 1.6.3-2\nlib32-krb5 1.21.3-1\nlib32-libappindicator-gtk2 12.10.0.r298-2\nlib32-libasyncns 1:0.8+r3+g68cd5af-3\nlib32-libcaca 0.99.beta20-2\nlib32-libcanberra 1:0.30+r2+gc0620e4-3\nlib32-libcap 2.76-1\nlib32-libcups 2.4.11-1\nlib32-libcurl-compat 8.13.0-1\nlib32-libcurl-gnutls 8.13.0-1\nlib32-libdatrie 0.2.13-3\nlib32-libdbusmenu-glib 16.04.0-6\nlib32-libdbusmenu-gtk2 16.04.0-6\nlib32-libdrm 2.4.124-1\nlib32-libelf 0.192-2\nlib32-libffi 3.4.8-1\nlib32-libgcrypt 1.11.0-1\nlib32-libgcrypt15 1.5.6-8\nlib32-libglvnd 1.7.0-1\nlib32-libgpg-error 1.51-1\nlib32-libgudev 238-2\nlib32-libice 1.1.1-2\nlib32-libidn11 1.33-3\nlib32-libidn2 2.3.7-1\nlib32-libindicator-gtk2 12.10.1-10\nlib32-libjpeg-turbo 3.1.0-1\nlib32-libjpeg6-turbo 1.5.3-3\nlib32-libldap 2.6.9-1\nlib32-libltdl 2.5.4+r1+gbaa1fe41-1\nlib32-libmikmod 3.3.12-1\nlib32-libmodplug 0.8.9.0-5\nlib32-libnghttp2 1.65.0-1\nlib32-libnghttp3 1.8.0-1\nlib32-libnl 3.11.0-1\nlib32-libnm 1.52.0-1\nlib32-libnsl 2.0.1-1\nlib32-libogg 1.3.5-2\nlib32-libpcap 1.10.5-2\nlib32-libpciaccess 0.18.1-1\nlib32-libpipewire 1:1.4.2-1\nlib32-libpng 1.6.47-1\nlib32-libpng12 1.2.59-3\nlib32-libproxy 0.5.9-1\nlib32-libpsl 0.21.5-1\nlib32-libpulse 17.0+r43+g3e2bb8a1e-1\nlib32-librsvg 2:2.60.0-1\nlib32-librtmp0 2.4-6\nlib32-libsm 1.2.4-2\nlib32-libsndfile 1.2.2-3\nlib32-libsoup 2.74.3-2\nlib32-libssh2 1.11.1-1\nlib32-libtasn1 4.20.0-1\nlib32-libthai 0.1.29-3\nlib32-libtheora 1.1.1-14\nlib32-libtiff 4.7.0-1\nlib32-libtiff4 3.9.7-6\nlib32-libtirpc 1.3.6-1\nlib32-libudev0-shim 2-1\nlib32-libunistring 1.3-1\nlib32-libunwind 1.8.1-1\nlib32-libusb 1.0.28-1\nlib32-libva 2.22.0-1\nlib32-libvdpau 1.5-3\nlib32-libvorbis 1.3.7-4\nlib32-libvpx 1.15.0-1\nlib32-libvpx1.3 1.3.0-4\nlib32-libwebp 1.5.0-1\nlib32-libx11 1.8.12-1\nlib32-libxau 1.0.11-2\nlib32-libxcb 1.17.0-1\nlib32-libxcomposite 0.4.6-2\nlib32-libxcrypt 4.4.38-1\nlib32-libxcrypt-compat 4.4.38-1\nlib32-libxcursor 1.2.3-1\nlib32-libxdamage 1.1.6-2\nlib32-libxdmcp 1.1.5-1\nlib32-libxext 1.3.6-1\nlib32-libxfixes 6.0.1-2\nlib32-libxft 2.3.8-2\nlib32-libxi 1.8.2-1\nlib32-libxinerama 1.1.5-2\nlib32-libxkbcommon 1.8.1-1\nlib32-libxml2 2.13.7-1\nlib32-libxmu 1.2.1-1\nlib32-libxrandr 1.5.4-1\nlib32-libxrender 0.9.11-2\nlib32-libxshmfence 1.3.3-1\nlib32-libxss 1.2.4-2\nlib32-libxt 1.3.1-1\nlib32-libxtst 1.2.5-2\nlib32-libxxf86vm 1.1.5-2\nlib32-llvm-libs 1:19.1.7-1\nlib32-lm_sensors 1:3.6.0.r41.g31d1f125-3\nlib32-lzo 2.10-2\nlib32-mesa 1:25.0.3-1\nlib32-mpg123 1.32.10-1\nlib32-ncurses 6.5-1\nlib32-nettle 3.10.1-1\nlib32-nspr 4.36-1\nlib32-nss 3.110-1\nlib32-nvidia-utils 570.133.07-1\nlib32-openal 1.24.3-1\nlib32-openssl 1:3.5.0-1\nlib32-openssl-1.1 1.1.1.w-2\nlib32-opus 1.5.2-1\nlib32-p11-kit 0.25.5-1\nlib32-pam 1.7.0-1\nlib32-pango 1:1.56.3-1\nlib32-pcre2 10.45-1\nlib32-pipewire 1:1.4.2-1\nlib32-pixman 0.44.2-1\nlib32-sdl12-compat 1.2.68-2\nlib32-sdl2-compat 2.32.54-1\nlib32-sdl2-debug 2.30.11-2\nlib32-sdl2_image 2.8.4-1\nlib32-sdl2_mixer 2.8.0-1\nlib32-sdl2_ttf 2.24.0-1\nlib32-sdl3 3.2.10-1\nlib32-sdl_image 1.2.12-9\nlib32-sdl_mixer 1.2.12-6\nlib32-sdl_ttf 2.0.11-9\nlib32-speex 1.2.1-2\nlib32-spirv-tools 1:1.4.309.0-1\nlib32-sqlite 3.49.1-1\nlib32-systemd 257.5-1\nlib32-tdb 1.4.12-1\nlib32-util-linux 2.41-1\nlib32-vulkan-icd-loader 1.4.309.0-1\nlib32-wayland 1.23.1-1\nlib32-xz 5.8.1-1\nlib32-zlib 1.3.1-2\nlib32-zstd 1.5.7-2\nlibabw 0.1.3-4\nlibaccounts-glib 1.27-2\nlibaccounts-qt 1.17-1\nlibadwaita 1:1.7.2-1\nlibaio 0.3.113-3\nlibajantv2 1:17.1.0-2\nlibao 1.2.2-6\nlibappimage 1.0.4.5-9\nlibappindicator-gtk3 12.10.0.r298-4\nlibarchive 3.7.9-1\nlibass 0.17.3-1\nlibassuan 3.0.0-1\nlibasyncns 1:0.8+r3+g68cd5af-3\nlibatasmart 0.19-6\nlibatomic_ops 7.8.2-1\nlibavc1394 0.5.4-6\nlibavif 1.2.1-1\nlibavtp 0.2.0-3\nlibayatana-appindicator 0.5.94-1\nlibayatana-indicator 0.9.4-1\nlibb2 0.98.1-3\nlibb64 1.2.1-5\nlibbacktrace 1.0.git1-1\nlibblockdev 3.3.0-1\nlibblockdev-crypto 3.3.0-1\nlibblockdev-fs 3.3.0-1\nlibblockdev-loop 3.3.0-1\nlibblockdev-mdraid 3.3.0-1\nlibblockdev-nvme 3.3.0-1\nlibblockdev-part 3.3.0-1\nlibblockdev-swap 3.3.0-1\nlibbluray 1.3.4-2\nlibbpf 1.5.0-1\nlibbs2b 3.1.0-9\nlibbsd 0.12.2-2\nlibbytesize 2.11-1\nlibcaca 0.99.beta20-5\nlibcamera 0.5.0-1\nlibcamera-ipa 0.5.0-1\nlibcanberra 1:0.30+r2+gc0620e4-4\nlibcap 2.76-1\nlibcap-ng 0.8.5-3\nlibcbor 0.11.0-1\nlibcdio 2.2.0-1\nlibcdio-paranoia 10.2+2.0.2-1\nlibcdr 0.1.8-2\nlibcgif 0.5.0-1\nlibcheese 44.1-3\nlibcloudproviders 0.3.6-1\nlibcmis 0.6.2-3\nlibcolord 1.4.7-2\nlibconfig 1.7.3-3\nlibcups 2:2.4.12-1\nlibcurl-compat 8.13.0-2\nlibcurl-gnutls 8.13.0-2\nlibdaemon 0.14-6\nlibdatachannel 0.21.2-2\nlibdatrie 0.2.13-4\nlibdbusmenu-glib 16.04.0.r498-2\nlibdbusmenu-gtk2 16.04.0.r498-2\nlibdbusmenu-gtk3 16.04.0.r498-2\nlibdbusmenu-qt5 0.9.3+16.04.20160218-7\nlibdc1394 2.2.7-1\nlibdca 0.0.7-2\nlibde265 1.0.15-3\nlibdecor 0.2.2-1\nlibdeflate 1.23-1\nlibdisplay-info 0.2.0-2\nlibdovi 3.3.1-1\nlibdrm 2.4.124-1\nlibdv 1.0.0-11\nlibdvbpsi 1:1.3.3-3\nlibdvdnav 6.1.1-2\nlibdvdread 6.1.3-2\nlibe-book 0.1.3-17\nlibebml 1.4.5-1\nlibebur128 1.2.6-2\nlibedit 20250104_3.1-1\nlibei 1.4.0-1\nlibelectron 2025.3-1\nlibelectron-debug 2025.3-1\nlibelf 0.192-4\nlibepoxy 1.5.10-3\nlibepubgen 0.1.1-5\nlibetonyek 0.1.12-2\nlibev 4.33-3\nlibevdev 1.13.4-1\nlibevent 2.1.12-4\nlibexif 0.6.25-1\nlibexttextcat 3.4.7-1\nlibfdk-aac 2.0.3-1\nlibffi 3.4.8-1\nlibfido2 1.15.0-1\nlibfontenc 1.1.8-1\nlibfreeaptx 0.2.2-1\nlibfreehand 0.1.2-5\nlibgccjit 14.2.1+r753+g1cd744a6828f-1\nlibgcrypt 1.11.0-3\nlibgcrypt15 1.5.6-6\nlibgdiplus 6.2-1\nlibgexiv2 0.14.3-2\nlibgirepository 1.84.0-1\nlibgit2 1:1.9.0-2\nlibglvnd 1.7.0-1\nlibgme 0.6.4-1\nlibgnome-keyring 1:3.12.0+r14+g23438cc-1\nlibgpg-error 1.53-1\nlibgtop 2.41.3-2\nlibgudev 238-1\nlibgusb 0.4.9-2\nlibgweather-4 4.4.4-1\nlibheif 1.19.7-3\nlibibus 1.5.31-2\nlibice 1.1.2-1\nlibidn 1.43-1\nlibidn11 1.33-2\nlibidn2 2.3.7-1\nlibiec61883 1.2.0-8\nlibimagequant 4.3.4-1\nlibimobiledevice 1.3.0-16\nlibimobiledevice-glue 1.3.1-1\nlibindicator-gtk2 12.10.1-10\nlibinih 58-1\nlibinput 1.28.1-1\nlibinstpatch 1.1.6-3\nlibisl 0.27-1\nlibixion 0.20.0-1\nlibjpeg-turbo 3.1.0-1\nlibjpeg6-turbo 1.5.3-2\nlibjuice 1.5.2-1\nlibjxl 0.11.1-3\nlibkdcraw 24.12.3-1\nlibkexiv2 24.12.3-1\nlibkeybinder3 0.3.2-5\nlibksba 1.6.7-2\nliblangtag 0.6.7-1\nliblc3 1.1.3-1\nlibldac 2.0.2.3-2\nlibldap 2.6.9-1\nlibliftoff 0.5.0-1\nliblouis 3.33.0-1\nliblqr 0.4.3-1\nliblrdf 0.6.1-5\nlibltc 1.3.2-2\nlibmad 0.15.1b-10\nlibmalcontent 0.13.0-1\nlibmanette 0.2.12-1\nlibmatroska 1.7.1-2\nlibmaxminddb 1.12.2-2\nlibmd 1.1.0-2\nlibmfx 23.2.2-3\nlibmicrodns 0.2.0-2\nlibmicrohttpd 1.0.1-1\nlibmikmod 3.3.12-1\nlibmm-glib 1.24.0-1\nlibmng 2.0.3-4\nlibmnl 1.0.5-2\nlibmodplug 0.8.9.0-6\nlibmpc 1.3.1-2\nlibmpcdec 1:0.1+r475-6\nlibmpdclient 2.22-1\nlibmpeg2 0.5.1-10\nlibmspack 1:1.11-1\nlibmspub 0.1.4-17\nlibmtp 1.1.22-1\nlibmwaw 0.3.22-3\nlibmypaint 1.6.1-2\nlibmysofa 1.3.3-1\nlibmysqlclient 9.2.0-1\nlibnatpmp 20230423-3\nlibndp 1.9-1\nlibnet 2:1.3-1\nlibnetfilter_conntrack 1.0.9-2\nlibnewt 0.52.25-1\nlibnfnetlink 1.0.2-2\nlibnftnl 1.2.9-1\nlibnghttp2 1.65.0-1\nlibnghttp3 1.8.0-1\nlibngtcp2 1.12.0-1\nlibnice 0.1.22-1\nlibnl 3.11.0-1\nlibnm 1.52.0-1\nlibnma 1.10.6-3\nlibnma-common 1.10.6-3\nlibnoise 1.0.0-7\nlibnotify 0.8.6-1\nlibnsl 2.0.1-1\nlibnumbertext 1.0.11-2\nlibnvme 1.12-2\nlibodfgen 0.1.8-3\nlibogg 1.3.5-2\nlibolm 3.2.16-5\nlibomxil-bellagio 0.9.3-5\nlibopenmpt 0.7.13-2\nliborcus 0.20.0-1\nlibotf 0.9.16-5\nlibp11-kit 0.25.5-1\nlibpagemaker 0.0.4-4\nlibpcap 1.10.5-2\nlibpciaccess 0.18.1-2\nlibpgm 5.3.128-3\nlibpipeline 1.5.8-1\nlibpipewire 1:1.4.2-1\nlibplacebo 7.349.0-6\nlibplist 2.6.0-2\nlibpng 1.6.47-1\nlibpng12 1.2.59-2\nlibproxy 0.5.9-1\nlibpsl 0.21.5-2\nlibpulse 17.0+r43+g3e2bb8a1e-1\nlibqalculate 5.5.2-1\nlibqxp 0.0.2-13\nlibraqm 0.10.2-1\nlibraw 0.21.3-1\nlibraw1394 2.1.2-4\nlibredefender 0.7.0-2\nlibreoffice-fresh 25.2.2-2\nlibretro-beetle-psx-git 2747.80d3eba2-1\nlibretro-beetle-psx-git-debug 2747.80d3eba2-1\nlibretro-core-info 1.20.0-1\nlibretro-genesis-plus-gx 2217-1\nlibretro-mesen 2904-1\nlibretro-mesen-s 916-4\nlibretro-mgba 9298-2\nlibretro-picodrive 2736-1\nlibretro-sameboy 1720-3\nlibretro-shaders-slang 1648-1\nlibrevenge 0.0.5-3\nlibrewolf-bin 1:137.0.2_1-1\nlibrewolf-bin-debug 1:137.0.2_1-1\nlibrist 0.2.11-1\nlibrsvg 2:2.60.0-1\nlibrsync 1:2.3.4-2\nlibrtmp0 2.4-6\nlibsamplerate 0.2.2-3\nlibsasl 2.1.28-5\nlibscanmem-git 0.17.1103.0def8b2-1\nlibseccomp 2.5.6-1\nlibsecret 0.21.7-1\nlibshout 1:2.4.6-3\nlibsigc++ 2.12.1-1\nlibsigc++-3.0 3.6.0-1\nlibsixel 1.10.5-1\nlibslirp 4.9.0-1\nlibsm 1.2.6-1\nlibsndfile 1.2.2-3\nlibsodium 1.0.20-1\nlibsoup 2.74.3-1\nlibsoup3 3.6.5-1\nlibsoxr 0.1.3-4\nlibspeechd 0.12.0-1\nlibspiro 1:20240903-1\nlibspng 0.7.4-2\nlibsrtp 1:2.7.0-1\nlibssh 0.11.1-1\nlibssh2 1.11.1-1\nlibstaroffice 0.0.7-4\nlibstemmer 2.2.0-2\nlibsysprof-capture 48.0-4\nlibtar 1.2.20-7\nlibtasn1 4.20.0-1\nlibteam 1.32-2\nlibthai 0.1.29-3\nlibtheora 1.1.1-6\nlibtiff 4.7.0-1\nlibtiff4 3.9.7-6\nlibtirpc 1.3.6-1\nlibtommath 1.3.0-1\nlibtool 2.5.4+r1+gbaa1fe41-3\nlibtorrent-rasterbar 1:2.0.11-3\nlibudev0-shim 2-1\nlibunibreak 6.1-1\nlibunistring 1.3-1\nlibunwind 1.8.1-3\nlibupnp 1.14.20-2\nliburcu 0.15.1-1\nliburing 2.9-1\nlibusb 1.0.28-1\nlibusbmuxd 2.1.0-1\nlibutempter 1.2.3-1\nlibuv 1.50.0-1\nlibva 2.22.0-1\nlibvdpau 1.5-3\nlibverto 0.3.2-5\nlibvips 8.16.1-2\nlibvisio 0.1.8-2\nlibvlc 3.0.21-16\nlibvorbis 1.3.7-4\nlibvpl 2.14.0-1\nlibvpx 1.15.0-1\nlibvpx1.3 1.3.0-3\nlibwacom 2.15.0-1\nlibwbclient 2:4.22.1-1\nlibwebp 1.5.0-1\nlibwireplumber 0.5.8-1\nlibwmf 0.2.13-4\nlibwnck3 43.2-1\nlibwpd 0.10.3-5\nlibwps 0.4.14-3\nlibx11 1.8.12-1\nlibxau 1.0.12-1\nlibxaw 1.0.16-1\nlibxcb 1.17.0-1\nlibxcomposite 0.4.6-2\nlibxcrypt 4.4.38-1\nlibxcrypt-compat 4.4.38-1\nlibxcursor 1.2.3-1\nlibxcvt 0.1.3-1\nlibxdamage 1.1.6-2\nlibxdmcp 1.1.5-1\nlibxext 1.3.6-1\nlibxfce4ui 4.20.1-1\nlibxfce4util 4.20.1-1\nlibxfixes 6.0.1-2\nlibxfont2 2.0.7-1\nlibxft 2.3.8-2\nlibxi 1.8.2-1\nlibxinerama 1.1.5-2\nlibxkbcommon 1.8.1-1\nlibxkbcommon-x11 1.8.1-1\nlibxkbfile 1.1.3-1\nlibxml2 2.13.7-1\nlibxmlb 0.3.22-1\nlibxmu 1.2.1-1\nlibxpm 3.5.17-2\nlibxpresent 1.0.1-2\nlibxrandr 1.5.4-1\nlibxrender 0.9.12-1\nlibxres 1.2.2-2\nlibxshmfence 1.3.3-1\nlibxslt 1.1.43-1\nlibxss 1.2.4-2\nlibxt 1.3.1-1\nlibxtst 1.2.5-1\nlibxv 1.0.13-1\nlibxxf86vm 1.1.6-1\nlibyaml 0.2.5-3\nlibyuv r2426+464c51a03-1\nlibzip 1.11.3-1\nlibzmf 0.0.2-17\nlicenses 20240728-1\nlilv 0.24.26-1\nlinux 6.14.2.arch1-1\nlinux-api-headers 6.14-1\nlinux-firmware 20250408.c1a774f3-1\nlinux-firmware-whence 20250408.c1a774f3-1\nlinux-headers 6.14.2.arch1-1\nlld 19.1.7-1\nlld18 18.1.6-2\nllhttp 9.2.1-2\nllvm 19.1.7-1\nllvm-libs 19.1.7-1\nllvm18-libs 18.1.8-1\nlm_sensors 1:3.6.0.r41.g31d1f125-3\nlmdb 0.9.33-1\nlove 11.5-1\nlpsolve 5.5.2.11-3\nlrexlib-pcre5.1 2.9.0-2\nlrzip 0.651-3\nlsb-release 2.0.r55.a25a4fc-1\nlsof 4.99.4-1\nlua 5.4.7-1\nlua-yajl 2.0-2\nlua51 5.1.5-12\nlua51-filesystem 1.8.0-5\nlua51-lcf 5.1-3\nlua51-luautf8 0.1.6-1\nlua51-sql-sqlite 2.3.0-4\nluajit 2.1.1741730670-1\nluanti 5.11.0-1\nluanti-common 5.11.0-1\nluarocks 3.11.1-2\nluazip5.1 1.2.7-1\nlutris 0.5.19-2\nlv2 1.18.10-1\nlynx 2.9.2-1\nlz4 1:1.10.0-2\nlzo 2.10-5\nm17n-db 1.8.8-1\nm17n-lib 1.8.4-4\nm4 1.4.19-3\nmailcap 2.1.54-2\nmake 4.4.1-2\nman-db 2.13.0-1\nmari0 1.6.2-5\nmbedtls 3.6.3-1\nmbedtls2 2.28.10-1\nmd4c 0.5.2-1\nmdadm 4.4-1\nmedia-player-info 26-1\nmesa 1:25.0.3-1\nmesa-utils 9.0.0-5\nminiupnpc 2.3.0-1\nminizip 1:1.3.1-2\nmjpegtools 2.2.1-2\nmkinitcpio 39.2-3\nmkinitcpio-busybox 1.36.1-1\nmlt 7.30.0-1\nmobile-broadband-provider-info 20240407-1\nmommy 1.6.0-1\nmongodb 8.0.4-1.4\nmongodb-tools-bin 100.10.0-3\nmongosh-bin 2.5.0-1\nmongosh-bin-debug 2.5.0-1\nmono 6.12.0.206-1\nmono-msbuild 16.10.1.xamarinxplat.2021.05.26.14.00-5\nmoosync-debug 11.0.1-2\nmoreutils 0.70-1\nmpdecimal 4.0.0-2\nmpfr 4.2.2-1\nmpg123 1.32.10-1\nmpris-discord-rpc 0.2.2-1\nmpris-discord-rpc-debug 0.2.2-1\nmpv 1:0.40.0-2\nmtdev 1.1.7-1\nmujs 1.3.6-1\nmypaint-brushes1 1.3.1-2\nmysql 9.2.0-1\nmysql-clients 9.2.0-1\nnano 8.4-1\nnasm 2.16.03-1\nncompress 5.0-3\nncurses 6.5-3\nncurses5-compat-libs 6.5-1.1\nneofetch 7.1.0-2\nneon 0.34.2-1\nnet-tools 2.10-3\nnetstandard-targeting-pack 9.0.3.sdk104-1\nnettle 3.10.1-1\nnetwork-manager-applet 1.36.0-1\nnetworkmanager 1.52.0-1\nnetworkmanager-openvpn 1.12.0-1\nneverwinter.nim-bin 2.0.1-1\nninja 1.12.1-2\nnlohmann-json 3.12.0-1\nnm-connection-editor 1.36.0-1\nnmap 7.95-1\nnode-gyp 11.2.0-1\nnodejs 23.9.0-1\nnodejs-http-server 14.1.1-1\nnodejs-nativefier 52.0.0-1\nnodejs-nopt 7.2.1-1\nnotepad++ 8.7.6-1\nnotepadnext 0.11-1\nnoto-fonts 1:2025.04.01-1\nnoto-fonts-cjk 20240730-1\nnoto-fonts-emoji 1:2.047-1\nnoto-fonts-emoji-flags 20200120-1\nnpm 11.3.0-1\nnpm-check-updates 17.1.16-1\nnpth 1.8-1\nnspr 4.36-1\nnss 3.110-1\nnumactl 2.0.19-1\nnvidia-dkms 570.133.07-1\nnvidia-utils 570.133.07-1\nnvtop 3.2.0-1\nobs-retro-effects-debug 1.0.0-1\nobs-studio-liberty-debug 31.0.3-1\nocl-icd 2.3.2-2\nodilia 0.1.4-1\noneko 1.2.5-5.1\noniguruma 6.9.10-1\nopenal 1.24.3-1\nopencore-amr 0.1.6-2\nopendoas 6.8.2-3\nopenexr 3.3.3-1\nopenh264 2.6.0-1\nopenjpeg2 2.5.3-1\nopenlinkhub-bin-debug 0.5.1-4\nopenrgb 0.9-4\nopenssh 10.0p1-3\nopenssl 3.5.0-1\nopenssl-1.0 1.0.2.u-6\nopenssl-1.1 1.1.1.w-2\nopenvpn 2.6.14-1\nopus 1.5.2-1\nopusfile 0.12-4\norc 0.4.41-1\norca 48.0-1\nostree 2025.2-2\notf-compagnon 1.000-1\notf-font-awesome 6.7.2-1\notf-opendyslexic-nerd 3.3.0-1\np11-kit 0.25.5-1\npacman 7.0.0.r6.gc685ae6-2\npacman-contrib 1.11.0-1\npacman-mirrorlist 20250311-1\npahole 1:1.29-1\npam 1.7.0-2\npambase 20230918-2\npango 1:1.56.3-1\npangomm 2.46.4-1\npangomm-2.48 2.56.1-1\nparted 3.6-2\npatch 2.8-1\npatchelf 0.18.0-3\npatchutils 0.4.2-3\npavucontrol 1:6.1-1\npciutils 3.13.0-2\npcre 8.45-4\npcre2 10.45-1\npcsclite 2.3.3-1\npcsx2-avx-git 2.3.281.r0.g01120f6-1\nperl 5.40.2-1\nperl-algorithm-diff 1:1.201-6\nperl-archive-zip 1.68-10\nperl-class-method-modifiers 2.15-4\nperl-clone 0.47-1\nperl-curses 1.45-2\nperl-data-optlist 0.114-4\nperl-devel-globaldestruction 0.14-11\nperl-encode-locale 1.05-13\nperl-error 0.17030-1\nperl-file-listing 6.16-4\nperl-html-parser 3.83-1\nperl-html-tagset 3.24-2\nperl-http-cookiejar 0.014-3\nperl-http-cookies 6.11-2\nperl-http-daemon 6.16-4\nperl-http-date 6.06-3\nperl-http-message 7.00-1\nperl-http-negotiate 6.01-14\nperl-image-exiftool 13.25-1\nperl-import-into 1.002005-11\nperl-io-html 1.004-6\nperl-io-tty 1.20-2\nperl-ipc-run 20231003.0-2\nperl-libwww 6.78-1\nperl-lwp-mediatypes 6.04-6\nperl-mailtools 2.22-1\nperl-module-runtime 0.017-1\nperl-moo 2.005005-4\nperl-net-http 6.23-4\nperl-net-telnet 3.05-6\nperl-parallel-forkmanager 2.03-2\nperl-params-util 1.102-6\nperl-regexp-common 2024080801-2\nperl-role-tiny 2.002004-6\nperl-sub-exporter 0.991-2\nperl-sub-exporter-progressive 0.001013-11\nperl-sub-install 0.929-2\nperl-sub-quote 1:2.006008-4\nperl-term-animation 2.6-12\nperl-time-duration 1:1.21-2\nperl-timedate 2.33-7\nperl-try-tiny 0.32-2\nperl-uri 5.31-1\nperl-www-robotrules 6.02-14\nperl-xml-parser 2.47-2\nphonon-qt6 4.12.0-4\nphonon-qt6-vlc 0.12.0-2\nphp 8.4.6-1\nphysfs 3.2.0-2\npicom-git 12.5.r92.gb995372-1\npinentry 1.3.1-5\npipes.sh 1.3.0-1\npipewire 1:1.4.2-1\npipewire-alsa 1:1.4.2-1\npipewire-audio 1:1.4.2-1\npipewire-jack 1:1.4.2-1\npipewire-pulse 1:1.4.2-1\npixman 0.44.2-1\npkcs11-helper 1.30.0-1\npkgconf 2.4.3-1\nplasma-activities 6.3.4-1\nplay.it-git 2.29.1.r1.g03ba243f-1\nplayerctl 2.4.1-4\nplocate 1.1.23-1\npnpm 10.8.1-1\npokemon-colorscripts-git r114.5802ff67-1\npolkit 126-2\npolkit-gnome 0.105-11\npolkit-kde-agent 6.3.4-1\npolkit-qt5 0.200.0-1\npolkit-qt6 0.200.0-1\npoppler 25.04.0-1\npoppler-data 0.4.12-2\npoppler-glib 25.04.0-1\npoppler-qt6 25.04.0-1\npopt 1.19-2\nportaudio 1:19.7.0-3\npostgresql 17.4-1\npostgresql-libs 17.4-1\nprocps-ng 4.0.5-3\nprotobuf 30.1-1\nproton-ge-custom 2:GE.Proton9.23-1\nproton-vpn-gtk-app 4.9.6-1\npsmisc 23.7-1\npugixml 1.15-2\npurpose 6.12.0-1\npyright 1.1.399-1\npython 3.13.3-1\npython-aiohappyeyeballs 2.5.0-1\npython-aiohttp 3.10.11-1\npython-aiosignal 1.3.1-8\npython-annotated-types 0.7.0-2\npython-anyio 4.8.0-1\npython-argcomplete 3.5.3-1\npython-asgiref 3.8.1-2\npython-attrs 24.1.0-1\npython-autocommand 2.2.2-7\npython-bandcamp-api 0.2.3-2.1\npython-bcrypt 4.2.1-2\npython-beautifulsoup4 4.13.3-1\npython-cairo 1.28.0-1\npython-capstone 5.0.6-1\npython-certifi 2025.01.31-1\npython-cffi 1.17.1-2\npython-charset-normalizer 3.4.1-1\npython-click 8.1.8-1\npython-colorama 0.4.6-5\npython-configargparse 1.5.5-3\npython-configobj 5.0.9-5\npython-cryptography 44.0.2-1\npython-cssselect 1.2.0-8\npython-dacite 1.9.2-2\npython-dateutil 2.9.0-6\npython-dbus 1.4.0-1\npython-decorator 5.2.1-1\npython-demjson3 3.0.6-2.1\npython-deprecated 1.2.18-1\npython-deprecation 2.1.0-10\npython-distlib 0.3.9-2\npython-distro 1.9.0-3\npython-distutils-extra 2.39-14\npython-dotenv 1.1.0-1\npython-dulwich 0.22.8-1\npython-evdev 1.9.0-1\npython-eyed3 0.9.7-3\npython-factory-boy 3.3.3-1\npython-faker 37.1.0-1\npython-fastapi 0.115.12-1\npython-fastbencode 0.3.1-2\npython-fastjsonschema 2.21.1-1\npython-feedparser 6.0.11-3\npython-filelock 3.18.0-1\npython-filetype 1.2.0-6\npython-frozenlist 1.4.1-4\npython-gnupg 0.5.4-2\npython-gobject 3.52.3-3\npython-h11 0.14.0-6\npython-html5lib 1.1-15\npython-httplib2 0.22.0-8\npython-httptools 0.6.4-1\npython-idna 3.10-2\npython-importlib-metadata 7.2.1-4\npython-inflect 7.5.0-1\npython-iniconfig 2.1.0-1\npython-jaconv 0.4.0-1\npython-jaraco.classes 3.4.0-2\npython-jaraco.collections 5.1.0-1\npython-jaraco.context 6.0.1-1\npython-jaraco.functools 4.1.0-1\npython-jaraco.text 4.0.0-2\npython-jeepney 0.9.0-1\npython-jinja 1:3.1.5-1\npython-keyboard 0.13.5-2\npython-keyring 25.6.0-1\npython-keystone 0.9.2-7\npython-loguru 0.7.2-3\npython-lxml 5.3.2-1\npython-magic 1:0.4.27-5\npython-mako 1.3.9-1\npython-markdown 3.7-2\npython-markdown-it-py 3.0.0-4\npython-markupsafe 2.1.5-3\npython-mdurl 0.1.2-8\npython-merge3 0.0.15-2\npython-moddb 0.12.0-1\npython-more-itertools 10.6.0-1\npython-multidict 6.0.5-4\npython-mutagen 1.47.0-3\npython-numpy 2.2.4-1\npython-ordered-set 4.1.0-7\npython-packaging 24.2-3\npython-pathspec 0.12.1-3\npython-patiencediff 0.2.15-2\npython-pexpect 4.9.0-4\npython-pillow 11.2.1-1\npython-pip 25.0.1-1\npython-pipenv 2024.4.1-1\npython-pipx 1.7.1-2\npython-platformdirs 4.3.6-2\npython-pluggy 1.5.0-3\npython-proton-core 0.4.0-4\npython-proton-keyring-linux 0.2.0-4\npython-proton-vpn-api-core 0.42.4-1\npython-proton-vpn-local-agent 1.4.5-1\npython-proton-vpn-network-manager 0.12.13-1\npython-psutil 7.0.0-1\npython-ptyprocess 0.7.0-8\npython-pycparser 2.22-3\npython-pydantic 2.11.3-1\npython-pydantic-core 2:2.33.1-1\npython-pydantic-extra-types 2.10.3-1\npython-pydantic-settings 2.8.1-1\npython-pygdbmi 0.11.0.0-5\npython-pygments 2.19.1-1\npython-pyinotify 0.9.6-15\npython-pykakasi 2.3.0-2\npython-pynacl 1.5.0-3\npython-pyopenssl 25.0.0-1\npython-pyparsing 3.2.1-1\npython-pyqt5 5.15.11-2\npython-pyqt5-sip 12.17.0-1\npython-pyqt6 6.9.0-1\npython-pyqt6-sip 13.10.0-1\npython-pyquery 2.0.1-1\npython-pyte 0.8.2-4\npython-pytest 1:8.3.5-1\npython-pytube 15.0.0-4\npython-pyxdg 0.28-4\npython-rapidfuzz 3.12.2-1\npython-redis 5.2.1-2\npython-requests 2.32.3-4\npython-rich 14.0.0-1\npython-scrap_engine-git 1.4.2-1\npython-secretstorage 3.3.3-6\npython-sentry_sdk 2.26.1-1\npython-setproctitle 1.3.5-1\npython-setuptools 1:78.1.0-1\npython-sgmllib3k 1.0.0-7\npython-six 1.17.0-1\npython-slugify 8.0.4-3\npython-sniffio 1.3.1-4\npython-soundcloud-v2 1.6.0-1.1\npython-soupsieve 2.6-2\npython-spotipy 2.25.1-1\npython-starlette 0.46.2-1\npython-syncedlyrics 1.0.1-1.1\npython-text-unidecode 1.3-12\npython-tomli 2.0.1-5\npython-tomlkit 0.13.2-2\npython-tqdm 4.67.1-2\npython-trove-classifiers 2025.4.11.15-1\npython-typeguard 4.4.2-1\npython-typing-inspection 0.4.0-1\npython-typing_extensions 4.12.2-3\npython-tzdata 2025.2-1\npython-tzlocal 1:5.3.1-1\npython-urllib3 2.4.0-1\npython-urwid 2.6.15-2\npython-userpath 1.9.2-3\npython-uvloop 0.21.0-2\npython-validate-pyproject 0.24.1-1\npython-virtualenv 20.28.0-1\npython-virtualenv-clone 0.5.7-6\npython-wand 0.6.11-5\npython-wcwidth 0.2.13-3\npython-webencodings 0.5.1-12\npython-websockets 12.0-3\npython-wheel 0.45.1-1\npython-wrapt 1.16.0-4\npython-xlib 0.33-4\npython-xmltodict 0.14.2-1\npython-yaml 6.0.2-2\npython-yarl 1.13.1-1\npython-ytmusicapi 1.10.3-1\npython-zipp 3.21.0-2\nqbittorrent 5.0.4-3\nqca-qt6 2.3.10-1\nqqc2-desktop-style 6.12.0-1\nqrcodegencpp-cmake 1:1.8.0-3\nqrencode 4.1.1-3\nqt5-base 5.15.16+kde+r131-1\nqt5-declarative 5.15.16+kde+r22-3\nqt5-gamepad 5.15.16-2.2\nqt5-location 5.15.16+kde+r7-4\nqt5-multimedia 5.15.16+kde+r2-3\nqt5-remoteobjects 5.15.16-3\nqt5-svg 5.15.16+kde+r5-3\nqt5-tools 5.15.16+kde+r3-6\nqt5-translations 5.15.16-3\nqt5-wayland 5.15.16+kde+r60-1\nqt5-webchannel 5.15.16+kde+r3-3\nqt5-webengine 5.15.18-6\nqt5-x11extras 5.15.16-3\nqt6-5compat 6.9.0-1\nqt6-base 6.9.0-1\nqt6-declarative 6.9.0-2\nqt6-multimedia 6.9.0-1\nqt6-multimedia-ffmpeg 6.9.0-1\nqt6-networkauth 6.9.0-1\nqt6-positioning 6.9.0-1\nqt6-shadertools 6.9.0-1\nqt6-speech 6.9.0-1\nqt6-svg 6.9.0-1\nqt6-tools 6.9.0-2\nqt6-translations 6.9.0-1\nqt6-wayland 6.9.0-2\nqt6-webchannel 6.9.0-1\nqt6-webengine 6.9.0-4\nqt6-websockets 6.9.0-1\nqtkeychain-qt5 0.15.0-1\nqtkeychain-qt6 0.15.0-1\nquazip-qt5 1.5-1\nquodlibet 4.6.0-5\nrapidjson 1.1.0-6\nraptor 2.0.16-6\nrasqal 1:0.9.33-7\nrav1e 0.7.1-1\nre2 1:20240702-4\nreadline 8.2.013-1\nredact-bin 0.18.0-1\nredland 1:1.0.17-9\nreflector 2023-3\nrenovate-git-debug 39.83.2.r0.g68c05cf-1\nresonance 0.1.3-1\nresonance-debug 0.1.3-1\nretroarch 1.20.0-2\nretroarch-assets-xmb 1:528-1\nrhash 1.4.4-1\nripgrep 14.1.1-1\nripgrep-all 0.10.6-3\nrnnoise 1:0.2-1\nroam 157.0.0.beta001-1\nrofimoji 6.5.0-2\nrpcsvc-proto 1.4.4-2\nrpgvxace-rtp 100-3\nrpm-sequoia 1.8.0-1\nrpm-tools 4.20.1-1\nrsync 3.4.1-2\nrtkit 0.13-3\nrtmpdump 1:2.4.r105.6f6bb13-1\nrubberband 4.0.0-1\nruby 3.3.7-2\nrubygems 3.5.22-3\nrunc 1.2.6-1\nrustup 1.28.1-1\nsamrewritten-git r261.cac0291-1\nsamrewritten-git-debug r261.cac0291-1\nsbc 2.0-2\nscanmem 0.17-10\nscrcpy 3.2-1\nscummvm 2.9.0-2\nsdbus-cpp 2.1.0-2\nsddm 0.21.0-6\nsdl12-compat 1.2.68-2\nsdl2-compat 2.32.54-2\nsdl2-debug 2.30.11-2\nsdl2_image 2.8.8-1\nsdl2_mixer 2.8.1-1\nsdl2_net 1:2.2.0-2\nsdl2_ttf 2.24.0-1\nsdl3 3.2.10-1\nsdl_gfx 2.0.27-1\nsdl_image 1.2.12-9\nsdl_mixer 1.2.12-12\nsdl_ttf 2.0.11-7\nseatd 0.9.1-1\nsed 4.9-3\nsemver 7.7.1-1\nser2net 4.6.2-1\nserd 0.32.4-1\nsfml 3.0.0-2\nshaderc 2025.1-3\nshadow 4.17.4-1\nshared-mime-info 2.4-1\nshellspec 0.28.1-3\nsignal-desktop 7.51.0-1\nsignon-kwallet-extension 24.12.3-1\nsignon-plugin-oauth2 0.25-3\nsignon-ui 0.17+20231016-3\nsignond 8.61-3\nsimdjson 1:3.12.3-1\nslack-cli 3.0.0-0\nslack-cli-debug 3.0.0-0\nslack-desktop 4.43.51-1\nslang 2.3.3-3\nslurp 1.5.0-1\nsmartmontools 7.4-2\nsmbclient 2:4.22.1-1\nsnappy 1.2.2-1\nsndio 1.10.0-1\nsolid 6.12.0-1\nsonar-scanner 7.0.2.4839-1\nsonnet 6.12.0-1\nsord 0.16.18-1\nsound-theme-freedesktop 0.8-6\nsoundtouch 2.3.3-1\nsource-highlight 3.1.9-14\nspacecadetpinball-bin 2.1.0-2\nspacecadetpinball-bin-debug 2.1.0-2\nspandsp 0.0.6-5\nspatialindex 2.0.0-1\nspdlog 1.15.2-1\nspeech-dispatcher 0.12.0-1\nspeedometer 2.9-3\nspeedtest-cli 2.1.3-9\nspeex 1.2.1-2\nspeexdsp 1.2.1-2\nspirv-headers 1:1.4.309.0-1\nspirv-tools 1:1.4.309.0-1\nspotdl 4.2.11-1\nspotify 1:1.2.60.564-2.6\nsqlite 3.49.1-1\nsquashfs-tools 4.6.1-2\nsquashfuse 0.6.0-1\nsratom 0.6.18-1\nsrt 1.5.4-1\nstarship 1.22.1-1\nstartup-notification 0.12-8\nsteam 1.0.0.82-2\nsteam-native-runtime 1.0.0.75-4\nstrace 6.14-1\nsublime-text-4 4.4192-1\nsudo 1.9.16.p2-2\nsuitesparse 7.10.2-1\nsvt-av1 3.0.2-1\nsvt-hevc 1.5.1-3\nswappy 1.5.1-2\nsway 1:1.10.1-2\nswaybg 1.2.1-1\nswayidle 1.8.0-2\nswaylock-effects 1.7.0.0-4.4\nswig 4.3.0-1\nsyft 1.20.0-1\nsyndication 6.12.0-1\nsyntax-highlighting 6.12.0-1\nsystemd 257.5-1\nsystemd-libs 257.5-1\nsystemd-sysvcompat 257.5-1\ntaglib 2.0.2-1\ntailscale 1.82.5-1\ntalloc 2.4.3-1\ntar 1.35-2\ntcl 8.6.16-1\ntdb 1.4.13-1\ntevent 1:0.16.2-1\ntexinfo 7.2-1\nthefuck 3.32-11\nthunar 4.20.2-1\nthunderbird 137.0.1-1\ntinysparql 3.9.1-1\ntk 8.6.16-1\ntmux 3.5_a-1\ntomlplusplus 3.4.0-1\ntpm2-tss 4.1.3-1\ntransmission-cli 4.0.6-9\ntrayscale 0.14.3-2\ntree 2.2.1-1\ntree-sitter 0.25.3-1\ntrivy 0.61.1-1\ntslib 1.23-1\nttf-dejavu 2.37+18+g9b5d1b2f-7\nttf-firacode-nerd 3.3.0-1\nttf-font-awesome 6.7.2-1\nttf-jetbrains-mono-nerd 3.3.0-1\nttf-joypixels 8.0.0-2\nttf-liberation 2.1.5-2\nttf-symbola 14.00-2\nttf-twemoji 15.1.0-1\ntwolame 0.4.0-4\ntypescript 5.8.3-1\ntypescript-language-server 4.3.3-1\ntzdata 2025b-1\nuchardet 0.0.8-3\nudisks2 2.10.1-5\nunionfs-fuse 3.6-1\nunrar 1:7.1.6-1\nunzip 6.0-22\nupower 1.90.9-1\nusbutils 018-1\nuthash 2.3.0-2\nutil-linux 2.41-4\nutil-linux-libs 2.41-4\nuvicorn 0.34.0-1\nv4l-utils 1.28.1-2\nv4l2loopback-dkms 0.14.0-1\nvalgrind 3.24.0-3\nvapoursynth R70-2\nvercel 39.2.2-1\nvercel-debug 39.2.2-1\nvesktop 1.5.6-1\nvi 1:070224-6\nvid.stab 1.1.1-2\nvim 9.1.1236-1\nvim-runtime 9.1.1236-1\nvlc 3.0.21-16\nvmaf 3.0.0-1\nvolume_key 0.3.12-10\nvosk-api 0.3.50-5\nvsce 3.3.2-1\nvsce-debug 3.3.2-1\nvscodium 1.99.32562-1\nvscodium-marketplace 1.97.0-1\nvulkan-headers 1:1.4.309.0-1\nvulkan-icd-loader 1.4.309.0-1\nvulkan-tools 1.4.309.0-1\nvulkan-validation-layers 1.4.309.0-1\nw3m 0.5.3.git20230713_1-1\nwasi-compiler-rt 19.1.6-1\nwasi-libc 1:0+410+574b88da-2\nwasi-libc++ 19.1.6-2\nwasi-libc++abi 19.1.6-2\nwavpack 5.8.1-1\nwaybar 0.12.0-1\nwaybar-module-pacman-updates-git 0.2.7-1\nwayland 1.23.1-1\nwayland-protocols 1.43-1\nwebcamoid 9.2.3-1.5\nwebkit2gtk 2.48.1-1\nwebkit2gtk-4.1 2.48.1-1\nwebrtc-audio-processing-1 1.3-4\nwebsocat 1.14.0-1\nwebsocketpp 0.8.2-3\nweston 14.0.0-2\nwev 1.0.0-13\nwget 1.25.0-2\nwhatsapp-for-linux 1.7.0-1.3\nwhich 2.23-1\nwildmidi 0.4.6-1\nwine 10.5-1\nwireless_tools 30.pre9-4\nwireplumber 0.5.8-1\nwl-clipboard 1:2.2.1-2\nwlogout 1.2.2-0.3\nwlroots 0.18.2-2\nwlroots0.17 0.17.4-3\nwmctrl 1.07-6\nwoff2 1.0.2-5\nwofi 1.4.1-1\nwofi-emoji 1.2-3\nwpa_supplicant 2:2.11-3\nwscat 5.2.0-2\nwtype 0.4-2\nwxhexeditor 0.24-4\nwxwidgets-common 3.2.7.1-2\nwxwidgets-gtk3 3.2.7.1-2\nx264 3:0.164.r3108.31e19f9-2\nx265 4.0-1\nxautomation 1.09-6\nxcb-proto 1.17.0-3\nxcb-util 0.4.1-2\nxcb-util-cursor 0.1.5-1\nxcb-util-errors 1.0.1-2\nxcb-util-image 0.4.1-3\nxcb-util-keysyms 0.4.1-5\nxcb-util-renderutil 0.3.10-2\nxcb-util-wm 0.4.2-2\nxcb-util-xrm 1.3-3\nxclip 0.13-6\nxdelta3 3.1.0-5\nxdg-dbus-proxy 0.1.6-1\nxdg-desktop-portal 1.20.0-2\nxdg-desktop-portal-hyprland 1.3.9-8\nxdg-desktop-portal-wlr 0.7.1-1\nxdg-user-dirs 0.18-2\nxdg-utils 1.2.1-1\nxf86-input-libinput 1.5.0-1\nxfconf 4.20.0-2\nxkeyboard-config 2.44-1\nxmlsec 1.3.7-1\nxorg-fonts-alias-misc 1.0.5-1\nxorg-fonts-encodings 1.1.0-1\nxorg-fonts-misc 1.0.4-2\nxorg-mkfontscale 1.2.3-1\nxorg-server 21.1.16-1\nxorg-server-common 21.1.16-1\nxorg-setxkbmap 1.3.4-2\nxorg-xauth 1.1.4-1\nxorg-xcursorgen 1.0.8-2\nxorg-xdpyinfo 1.3.4-2\nxorg-xhost 1.0.10-1\nxorg-xinit 1.4.4-1\nxorg-xinput 1.6.4-2\nxorg-xkbcomp 1.4.7-1\nxorg-xmodmap 1.0.11-2\nxorg-xprop 1.2.8-1\nxorg-xrandr 1.5.3-1\nxorg-xrdb 1.2.2-2\nxorg-xset 1.2.5-2\nxorg-xwayland 24.1.6-1\nxorg-xwd 1.0.9-2\nxorgproto 2024.1-2\nxvidcore 1.3.7-3\nxwayland-run-git 0.0.4.r4.g3d0a384-1.1\nxxhash 0.8.3-1\nxz 5.8.1-1\nyad 14.1-2\nyajl 2.1.0-6\nyaml-cpp 0.8.0-2\nyamllint 1.37.0-1\nyarn 1.22.22-2\nyasm 1.3.0-7\nyay 12.4.2-1.1\nyq 3.4.3-2\nyt-dlp 2025.03.31-1\nzbar 0.23.93-4\nzen-browser-bin 1.11.3b-1\nzenity 4.1.90-1\nzeromq 4.3.5-2\nzig 0.13.0-2\nzimg 3.0.5-1\nzip 3.0-11\nzix 0.6.2-1\nzlib 1:1.3.1-2\nzoom 6.4.3-1\nzsh 5.9-5\nzstd 1.5.7-2\nzvbi 0.2.44-1\nzxing-cpp 2.3.0-4\nzycore-c 1.5.0-1\nzydis 4.1.0-1\nzziplib 0.13.78-1\n```\n\n</details>",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::7",
"metadata": {
"title": "Development Environment"
},
"title": "2.4. All Packages",
"url": "https://docs.nhcarrigan.com/dev/environment#24-all-packages"
},
{
"content": "2.5. AppImages\n\nThese are portable applications Naomi has installed locally.\n\n```txt frame=\"terminal\" title=\"ls ~/Applications\"\n0ad-0.0.27-rc1-27645-alpha-2306180726-jammy-x86_64_cbded66ae29716e935227ef4cb299d37.AppImage\nBeyond-All-Reason-1.2988.0_9fb3f6a9297f1ec22d919932ae885bd3.AppImage\nCameoMod-playtest-20250216-x86_64_a41bc76b4c0745adb0dfb1d5c63cfcf0.AppImage\nCombinedArms-1.05.1-x86_64_417a5cc685d34536edaac5b40061bf46.AppImage\nEternalLands-Linux-x86_64_1.9.7.0_19d1a1810624505aee843061155a6894.AppImage\nFractured Realms-release-v1.2_20230723-x86_64_7ab34cf8b77e62529b1195e8770eabd0.AppImage\nGeneralsAlpha-gen-20240829-x86_64_8fbe511107c1325422c496eb7b4172d1.AppImage\nnaev-0.12.3-linux-x86-64_239e0699e5a8136b4eca1f590e3a23fb.AppImage\nOpenDR-devtest-20221110-x86_64_10791154aedc0626e152a7902cfa1e68.AppImage\nOpenHV-20240908-x86_64_d473508a0c9592b269617989d8a68cc8.AppImage\nOpenRA-Dune-2000-x86_64_9fe830325d03aa43cd4c105115f185d4.AppImage\nOpenRA-Red-Alert-x86_64_f1d7ea8052bd4fe918d45a31ba851215.AppImage\nOpenRA-Tiberian-Dawn-x86_64_9c8e76f77716f90a652120ee035be3a5.AppImage\nOpenSA-20230905-x86_64_240722c9473761e361e5e363f877603e.AppImage\nopenttd-14.1-linux-generic-amd64\nRomanovs.Vengeance-playtest-20241215-x86_64_cb20ddd4d79808397df6503848e85692.AppImage\nShatteredParadise-playtest-20241231-x86_64_be7a765e388c6b6f9fd9d318f1687fd3.AppImage\nWidelands-1.2.1-x86_64_769576562cd3efe6293fcd7e9b7023ce.AppImage\nYouMustConstructAdditional-v0.95.49-x86_64_e20cd34f19f938052377b61b4d250292.AppImage\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::8",
"metadata": {
"title": "Development Environment"
},
"title": "2.5. AppImages",
"url": "https://docs.nhcarrigan.com/dev/environment#25-appimages"
},
{
"content": "3. Configuration\n\nNaomi's specific application configurations are noted here for posterity.",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::9",
"metadata": {
"title": "Development Environment"
},
"title": "3. Configuration",
"url": "https://docs.nhcarrigan.com/dev/environment#3-configuration"
},
{
"content": "3.1. `git`\n\nThe most important thing to note is that Naomi signs her commits with her SSH key, not a GPG key.\n\n```ini frame=\"code\" title=\"~/.gitconfig\"\n[gpg]\n format = ssh\n[gpg \"ssh\"]\n program = /opt/1Password/op-ssh-sign\n[commit]\n gpgsign = true\n[user]\n signingkey = ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQDFObmWsDIA2Y95uY8PVmepbTkjG2EFp36PTcnHCi/MYlaBlVPT8c0ixLj6XMwGaTWiiw+SaoSds1zf/WFRfkd8KujWWLQg0xE9Nh0oThF07HwoRIvi1YuAa69TmOSaNaT1YjX5uCIp7QNck5AkLckMK6v5Vhb5XPwZktEp96IBCQqdBcV2F6wX6Oro73iqGCoiAcUZRzeA9dzLtNCg77n3hFKrSeNpuXzX/3SiVOx9x2+3vZdyLlCXogQvH29LU8exPaYOor2h+ijPLVRivlO+yyt6s11iArrVhgINRpTEDbHde7GtNzQeLRNdnFyFSwkj1KPVpbfvAWDTbzteCawic0OP5swQ0rFLtjSnQI+K2GqFFu+Nvypz3YX5ozqTBSFudyI5XZgLObIsR/Lug6zEdRnvoKDnHcBqRxnZeHOD5Mq+oHrHSyA8KROLH+XmtFwdtyakw1NnuwLrFM08HOHKFBj66zgU1SSNjUiUkv3lBIhlDIVAWDk7XG5yRJx0GzcNLA4vvIKhS3SVOqZezRVrfB60SglOIPOgxjvWJuY9jCTcN5aKBT46+Hjam3dF754dx3rG103Azvn0/b3Hicf30+LpRNtxi4k+QdD4q/LlRmsrSl00S4wcfaKeza7L8WAAUNmfCqeApJ06U1O+TopJikzT5bT5ObHyDeUgHdB1jw==\n name = Naomi Carrigan\n email = commits@nhcarrigan.com\n[core]\n editor = emacs -nw\n[push]\n autoSetupRemote = true\n[init]\n defaultBranch = main\n[credential]\n helper = store\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::10",
"metadata": {
"title": "Development Environment"
},
"title": "3.1. `git`",
"url": "https://docs.nhcarrigan.com/dev/environment#31-`git`"
},
{
"content": "3.2. `zsh`\n\nNaomi uses Oh My ZSH instead of bash.\n\n```bash frame=\"code\" title=\"~/.zshrc\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::11",
"metadata": {
"title": "Development Environment"
},
"title": "3.2. `zsh`",
"url": "https://docs.nhcarrigan.com/dev/environment#32-`zsh`"
},
{
"content": "",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::12",
"metadata": {
"title": "Development Environment"
},
"title": "",
"url": "https://docs.nhcarrigan.com/dev/environment#"
},
{
"content": "Dotfile for Oh My Zsh.",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::13",
"metadata": {
"title": "Development Environment"
},
"title": "Dotfile for Oh My Zsh.",
"url": "https://docs.nhcarrigan.com/dev/environment#dotfile-for-oh-my-zsh"
},
{
"content": "Installs on top of zsh,",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::14",
"metadata": {
"title": "Development Environment"
},
"title": "Installs on top of zsh,",
"url": "https://docs.nhcarrigan.com/dev/environment#installs-on-top-of-zsh,"
},
{
"content": "so install that first.",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::15",
"metadata": {
"title": "Development Environment"
},
"title": "so install that first.",
"url": "https://docs.nhcarrigan.com/dev/environment#so-install-that-first"
},
{
"content": "",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::16",
"metadata": {
"title": "Development Environment"
},
"title": "",
"url": "https://docs.nhcarrigan.com/dev/environment#"
},
{
"content": "SYSTEM",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::17",
"metadata": {
"title": "Development Environment"
},
"title": "SYSTEM",
"url": "https://docs.nhcarrigan.com/dev/environment#system"
},
{
"content": "",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::18",
"metadata": {
"title": "Development Environment"
},
"title": "",
"url": "https://docs.nhcarrigan.com/dev/environment#"
},
{
"content": "Path to your Oh My Zsh installation.\nexport ZSH=\"$HOME/.oh-my-zsh\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::19",
"metadata": {
"title": "Development Environment"
},
"title": "Path to your Oh My Zsh installation.",
"url": "https://docs.nhcarrigan.com/dev/environment#path-to-your-oh-my-zsh-installation"
},
{
"content": "Plugins\nplugins=(git zsh-256color zsh-autosuggestions zsh-syntax-highlighting)\n\nsource $ZSH/oh-my-zsh.sh",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::20",
"metadata": {
"title": "Development Environment"
},
"title": "Plugins",
"url": "https://docs.nhcarrigan.com/dev/environment#plugins"
},
{
"content": "We're lazy. :3\nalias zshrc=\"source ~/.zshrc\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::21",
"metadata": {
"title": "Development Environment"
},
"title": "We're lazy. :3",
"url": "https://docs.nhcarrigan.com/dev/environment#we're-lazy-:3"
},
{
"content": "We hate nano\nalias nano=\"emacs -nw\"\nalias code=\"codium .\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::22",
"metadata": {
"title": "Development Environment"
},
"title": "We hate nano",
"url": "https://docs.nhcarrigan.com/dev/environment#we-hate-nano"
},
{
"content": "Listing files\nalias ls=\"eza -ahl --extended --octal-permissions --git -g\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::23",
"metadata": {
"title": "Development Environment"
},
"title": "Listing files",
"url": "https://docs.nhcarrigan.com/dev/environment#listing-files"
},
{
"content": "More details on which thing to run\nalias which=\"type -a\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::24",
"metadata": {
"title": "Development Environment"
},
"title": "More details on which thing to run",
"url": "https://docs.nhcarrigan.com/dev/environment#more-details-on-which-thing-to-run"
},
{
"content": "Untar\nalias untar=\"tar -xvzf\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::25",
"metadata": {
"title": "Development Environment"
},
"title": "Untar",
"url": "https://docs.nhcarrigan.com/dev/environment#untar"
},
{
"content": "Packages\nalias yay-list=\"yay -Qs\"\nalias yay-clean=\"yay -Scc\"\nalias yay-update=\"yay -Syu\"\nalias yay-new=\"yay -Syuu\"\nalias yay-install=\"yay\" # Just for consistency.\nalias yay-uninstall=\"yay -R\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::26",
"metadata": {
"title": "Development Environment"
},
"title": "Packages",
"url": "https://docs.nhcarrigan.com/dev/environment#packages"
},
{
"content": "File System\nalias .2=\"cd ../..\"\nalias .3=\"cd ../../..\"\nalias .4=\"cd ../../../..\"\nalias .5=\"cd ../../../../..\"\nalias delete=\"rm -rf\"\nalias cp=\"cp -i\"\nalias mkdir=\"mkdir -p\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::27",
"metadata": {
"title": "Development Environment"
},
"title": "File System",
"url": "https://docs.nhcarrigan.com/dev/environment#file-system"
},
{
"content": "git\nalias clone=\"git clone\"\nalias comm=\"git add -A && git commit\"\nalias commv=\"git add -A && git commit --no-verify\"\nalias push=\"git push\"\nalias pull=\"git pull\"\nalias upmain=\"git checkout main && git fetch upstream && git merge upstream/main\"\nalias co=\"git checkout\"\nalias cob=\"git checkout -b\"\n\nalias fcc=\"cd ~/code/freecodecamp\"\nalias ridm=\"cd ~/code/rythm\"\nalias sc=\"cd ~/code/streamcord\"\nalias dg=\"cd ~/code/deepgram\"\nalias naomi=\"cd ~/code/naomi\"\n\nalias hug=\"curl -L https://api.github.com/octocat\\?s\\=You%20deserve%20a%20hug\"\n\nalias tunnel2=\"cloudflared tunnel --config ~/.cloudflared/local2.yml run local2\"\nalias tunnel1=\"cloudflared tunnel --config ~/.cloudflared/local.yml run local\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::28",
"metadata": {
"title": "Development Environment"
},
"title": "git",
"url": "https://docs.nhcarrigan.com/dev/environment#git"
},
{
"content": "Silly\nalias tree=\"cbonsai -S\"\nalias poke=\"pokemon-colorscripts --no-title -r\"\nalias fish=\"asciiquarium --transparent\"\nalias matrix=\"cmatrix -r\"\nalias pipe=\"pipes.sh\"\nalias hacker=\"hollywood\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::29",
"metadata": {
"title": "Development Environment"
},
"title": "Silly",
"url": "https://docs.nhcarrigan.com/dev/environment#silly"
},
{
"content": "THE FUCK\neval $(thefuck --alias)\n\nalias shit=\"fuck\"\nalias damn=\"fuck\"\nalias crap=\"fuck\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::30",
"metadata": {
"title": "Development Environment"
},
"title": "THE FUCK",
"url": "https://docs.nhcarrigan.com/dev/environment#the-fuck"
},
{
"content": "pnpm\nexport PNPM_HOME=\"/home/naomi/.local/share/pnpm\"\ncase \":$PATH:\" in\n *\":$PNPM_HOME:\"*) ;;\n *) export PATH=\"$PNPM_HOME:$PATH\" ;;\nesac",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::31",
"metadata": {
"title": "Development Environment"
},
"title": "pnpm",
"url": "https://docs.nhcarrigan.com/dev/environment#pnpm"
},
{
"content": "pnpm end\nexport PATH=$HOME/.local/bin:$PATH",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::32",
"metadata": {
"title": "Development Environment"
},
"title": "pnpm end",
"url": "https://docs.nhcarrigan.com/dev/environment#pnpm-end"
},
{
"content": "sonarqube\nexport SONAR_SCANNER_HOME=\"/opt/sonar-scanner\"\nexport PATH=${SONAR_SCANNER_HOME}/bin:${PATH}",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::33",
"metadata": {
"title": "Development Environment"
},
"title": "sonarqube",
"url": "https://docs.nhcarrigan.com/dev/environment#sonarqube"
},
{
"content": "dotnet\nexport PATH=\"$PATH:/home/naomi/.dotnet/tools\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::34",
"metadata": {
"title": "Development Environment"
},
"title": "dotnet",
"url": "https://docs.nhcarrigan.com/dev/environment#dotnet"
},
{
"content": "Starship\neval \"$(starship init zsh)\"\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::35",
"metadata": {
"title": "Development Environment"
},
"title": "Starship",
"url": "https://docs.nhcarrigan.com/dev/environment#starship"
},
{
"content": "3.2.1. `starship`\n\nNaomi uses `starship` to manage her customised shell prompt.\n\nNote that her config requires your terminal be using a Nerd Font, or the symbols will not render.\n\n```toml frame=\"code\" title=\"~/.config/starship.toml\"\n\"$schema\" = 'https://starship.rs/config-schema.json'\n\nformat = '''\n┌─  $username$hostname$fill$git_commit$git_branch󰊢 ─┐\n│  $directory$fill$git_state$git_metrics$git_status│\n└─  $dotnet$nodejs$golang$python$dart$c$gradle$java$kotlin$php$ruby$rust$package$fill$status$cmd_duration$time ─┘'''\n\nright_format = '$custom'\n\nadd_newline = false\n\n[fill]\nsymbol = \" \"\n\n[username]\nshow_always = true\nformat = '[$user]($style) @ '\n\n[hostname]\nssh_only = false\nformat = '[$hostname]($style)'\n\n[directory]\ntruncate_to_repo = true\ntruncation_length = 5\ntruncation_symbol = \"\"\n\n[nodejs]\nformat = '[$symbol($version )]($style)'\n\n[dotnet]\nformat = '[$symbol($version )(🎯 $tfm )]($style)'\ndetect_extensions = ['csproj', 'fsproj', 'xproj', 'sln']\n\n[golang]\nformat = '[$symbol($version )]($style)'\n\n[python]\nformat = '[${symbol}${pyenv_prefix}(${version} )(\\($virtualenv\\) )]($style)'\n\n[dart]\nformat = '[$symbol($version )]($style)'\n\n[c]\nformat = '[$symbol($version(-$name) )]($style)'\n\n[gradle]\nformat = '[$symbol($version )]($style)'\n\n[java]\nformat = '[${symbol}(${version} )]($style)'\n\n[kotlin]\nformat = '[$symbol($version )]($style)'\n\n[php]\nformat = '[$symbol($version )]($style)'\n\n[ruby]\nformat = '[$symbol($version )]($style)'\n\n[rust]\nformat = '[$symbol($version )]($style)'\n\n[cmd_duration]\nformat = 'took [$duration]($style) at '\nmin_time = 0\n\n[git_commit]\nonly_detached = false\nformat = '[$hash$tag]($style) '\n\n[git_status]\nconflicted = '!'\nuntracked = 'u'\nmodified = 'm'\nstaged = 's'\nrenamed = 'r'\ndeleted = 'd'\nstashed = ''\n\n[git_metrics]\ndisabled = false\n\n[package]\nformat = '[$symbol$version]($style) '\ndisplay_private = true\n\n[time]\ndisabled = false\nformat = '[$time]($style) '\n\n[status]\nformat = '[$symbol $status]($style) '\ndisabled = false\nsuccess_symbol = '✅'\n\n[custom.mommy]\ncommand = \"mommy -1 -s $status\"\nwhen = true\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::36",
"metadata": {
"title": "Development Environment"
},
"title": "3.2.1. `starship`",
"url": "https://docs.nhcarrigan.com/dev/environment#321-`starship`"
},
{
"content": "3.3. `pacman`\n\nNaomi's package manager configuration.\n\n```ini frame=\"code\" title=\"/etc/pacman.conf\"\n[options]\nHoldPkg = pacman glibc\nArchitecture = auto\nCheckSpace\nSigLevel = Required DatabaseOptional\nLocalFileSigLevel = Optional\n\n[core]\nInclude = /etc/pacman.d/mirrorlist\n\n[extra]\nInclude = /etc/pacman.d/mirrorlist\n\n[multilib]\nInclude = /etc/pacman.d/mirrorlist\n\n[chaotic-aur]\nInclude = /etc/pacman.d/chaotic-mirrorlist\n\n[sublime-text]\nServer = https://download.sublimetext.com/arch/stable/x86_64\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::37",
"metadata": {
"title": "Development Environment"
},
"title": "3.3. `pacman`",
"url": "https://docs.nhcarrigan.com/dev/environment#33-`pacman`"
},
{
"content": "3.4 `sway`\n\n```ini frame=\"code\" title=\"~/.config/sway/config\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::38",
"metadata": {
"title": "Development Environment"
},
"title": "3.4 `sway`",
"url": "https://docs.nhcarrigan.com/dev/environment#34-`sway`"
},
{
"content": "Logo key. Use Mod1 for Alt.\nset $mod Mod4\nset $left Left\nset $down Down\nset $up Up\nset $right Right\nset $term ghostty\nset $menu wofi --show=drun --allow-images\n\noutput HDMI-A-1 mode 1920x1080 pos 0 0\noutput DP-2 mode 1920x1080 pos 1920 0\noutput DP-3 mode 1920x1080 pos 3840 0\noutput DP-2 bg /home/naomi/cloud/Photos/background.png fill\noutput DP-3 bg /home/naomi/cloud/Photos/bg-right.png fill\noutput HDMI-A-1 bg /home/naomi/cloud/Photos/bg-left.png fill\n\nbindsym $mod+q exec $term\nbindsym $mod+c kill\nbindsym $mod+r exec $menu\nbindsym $mod+e exec thunar\nbindsym $mod+v floating toggle\nbindsym $mod+x exec cliphist list | wofi --dmenu | cliphist decode | wl-copy\nbindsym $mod+f fullscreen\n\nexec swayidle -w \\\n timeout 240 'notify-send \"Locking workstation due to inactivity\"' \\\n resume 'notify-send \"Cancelled lock\"' \\\n timeout 300 'swaylock' \\\n before-sleep 'swaylock'",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::39",
"metadata": {
"title": "Development Environment"
},
"title": "Logo key. Use Mod1 for Alt.",
"url": "https://docs.nhcarrigan.com/dev/environment#logo-key-use-mod1-for-alt"
},
{
"content": "Move with mod + left click, resize with mod + right click\nfloating_modifier $mod normal\n\ninput * {\n xkb_layout us\n xkb_numlock enabled\n pointer_accel 0\n accel_profile flat\n}\n\nfocus_follows_mouse yes\ndefault_border none\ndefault_floating_border none\nfont pango:OpenDyslexicMono 10",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::40",
"metadata": {
"title": "Development Environment"
},
"title": "Move with mod + left click, resize with mod + right click",
"url": "https://docs.nhcarrigan.com/dev/environment#move-with-mod-+-left-click,-resize-with-mod-+-right-click"
},
{
"content": "",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::41",
"metadata": {
"title": "Development Environment"
},
"title": "",
"url": "https://docs.nhcarrigan.com/dev/environment#"
},
{
"content": "Keybinds:",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::42",
"metadata": {
"title": "Development Environment"
},
"title": "Keybinds:",
"url": "https://docs.nhcarrigan.com/dev/environment#keybinds:"
},
{
"content": "bindsym $mod+$left focus left\nbindsym $mod+$down focus down\nbindsym $mod+$up focus up\nbindsym $mod+$right focus right\nbindsym $mod+Shift+$left move left\nbindsym $mod+Shift+$down move down\nbindsym $mod+Shift+$up move up\nbindsym $mod+Shift+$right move right\nbindsym $mod+Shift+h splith\nbindsym $mod+Shift+v splitv\nbindsym $mod+Shift+s layout stacking\nbindsym $mod+Shift+w layout tabbed\nbindsym $mod+Shift+e layout toggle split\nbindsym $mod+l exec swaylock\nbindsym $mod+p focus parent\nbindsym $mod+Shift+space focus mode_toggle\nbindsym $mod+period exec rofimoji -a copy --skin-tone light\nbindsym $mod+period+Ctrl exec rofimoji -f all -a copy --skin-tone light\nbindsym --locked XF86AudioMute exec pactl set-sink-mute \\@DEFAULT_SINK@ toggle\nbindsym --locked XF86AudioLowerVolume exec pactl set-sink-volume \\@DEFAULT_SINK@ -1%\nbindsym --locked XF86AudioRaiseVolume exec pactl set-sink-volume \\@DEFAULT_SINK@ +1%\nbindsym --locked XF86AudioPlay exec playerctl play-pause\nbindsym --locked XF86AudioNext exec playerctl next\nbindsym --locked XF86AudioPrev exec playerctl previous\nbindsym Print exec grimshot --notify --cursor copy area\nbindsym Ctrl+Print exec grimshot --notify --cursor --wait 5 copy area\nbindsym $mod+Shift+r mode \"resize\"\nbindsym $mod+Shift+c exec swaymsg reload",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::43",
"metadata": {
"title": "Development Environment"
},
"title": "bindsym $mod+$left focus left",
"url": "https://docs.nhcarrigan.com/dev/environment#bindsym-$mod+$left-focus-left"
},
{
"content": "",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::44",
"metadata": {
"title": "Development Environment"
},
"title": "",
"url": "https://docs.nhcarrigan.com/dev/environment#"
},
{
"content": "Workspace bindings:",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::45",
"metadata": {
"title": "Development Environment"
},
"title": "Workspace bindings:",
"url": "https://docs.nhcarrigan.com/dev/environment#workspace-bindings:"
},
{
"content": "bindsym $mod+1 workspace number 1\nbindsym $mod+2 workspace number 2\nbindsym $mod+3 workspace number 3\nbindsym $mod+4 workspace number 4\nbindsym $mod+5 workspace number 5\nbindsym $mod+6 workspace number 6\nbindsym $mod+7 workspace number 7\nbindsym $mod+8 workspace number 8\nbindsym $mod+9 workspace number 9\nbindsym $mod+0 workspace number 10\nbindsym $mod+Shift+1 workspace number 11\nbindsym $mod+Shift+2 workspace number 12\nbindsym $mod+Shift+3 workspace number 13\nbindsym $mod+Shift+4 workspace number 14\nbindsym $mod+Shift+5 workspace number 15\nbindsym $mod+Shift+6 workspace number 16\nbindsym $mod+Shift+7 workspace number 17\nbindsym $mod+Shift+8 workspace number 18\nbindsym $mod+Shift+9 workspace number 19\nbindsym $mod+Shift+0 workspace number 20\n\nworkspace 1 output HDMI-A-1\nworkspace 2 output DP-3\nworkspace 3 output DP-2\nworkspace 4 output HDMI-A-1\nworkspace 5 output HDMI-A-1\nworkspace 6 output HDMI-A-1\nworkspace 7 output HDMI-A-1\nworkspace 8 output HDMI-A-1\nworkspace 9 output HDMI-A-1\nworkspace 10 output DP-3\nworkspace 11 output DP-2\nworkspace 12 output DP-2\nworkspace 13 output DP-2\nworkspace 14 output DP-2\nworkspace 15 output DP-2\nworkspace 16 output DP-3\n\nassign [title=\".*Discord.*\"] 1\nassign [title=\".*LibreWolf.*\"] 2\nassign [title=\".*Google Chat.*\"] 4\nassign [title=\".*Slack.*\"] 5\nassign [title=\".*Roam.*\"] 6\nassign [title=\".*WasIstLos.*\"] 7\nassign [title=\".*NHCarrigan.*\"] 8\nassign [title=\".*nhcarrigan.*\"] 8\nassign [title=\".*NHcarrigan.*\"] 8\nassign [title=\".*Asana.*\"] 9\nassign [title=\".*Amberol.*\"] 10\nassign [title=\".*Sublime Text.*\"] 11\nassign [title=\".*Thunderbird.*\"] 12\nassign [title=\".*1Password.*\"] 13\nassign [title=\".*Espanso.*\"] 14\nassign [title=\".*Steam.*\"] 15\nassign [title=\".*FreeTube.*\"] 16\n\nfor_window [title=\".*Discord.*\"] opacity 0.9\nfor_window [title=\".*VSCodium.*\"] opacity 0.9\nfor_window [title=\".*Amberol.*\"] opacity 0.9\nfor_window [title=\".*Sublime Text.*\"] opacity 0.9\nfor_window [title=\".*Thunderbird.*\"] opacity 0.9\nfor_window [title=\".*1Password.*\"] opacity 0.9\nfor_window [title=\".*Slack.*\"] opacity 0.9\nfor_window [title=\".*Google Chat.*\"] opacity 0.9\nfor_window [title=\".*WasIstLos.*\"] opacity 0.9",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::46",
"metadata": {
"title": "Development Environment"
},
"title": "bindsym $mod+1 workspace number 1",
"url": "https://docs.nhcarrigan.com/dev/environment#bindsym-$mod+1-workspace-number-1"
},
{
"content": "",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::47",
"metadata": {
"title": "Development Environment"
},
"title": "",
"url": "https://docs.nhcarrigan.com/dev/environment#"
},
{
"content": "Resizing containers:",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::48",
"metadata": {
"title": "Development Environment"
},
"title": "Resizing containers:",
"url": "https://docs.nhcarrigan.com/dev/environment#resizing-containers:"
},
{
"content": "mode \"resize\" {\n bindsym $left resize shrink width 10px\n bindsym $down resize grow height 10px\n bindsym $up resize shrink height 10px\n bindsym $right resize grow width 10px\n\n # Return to default mode\n bindsym Return mode \"default\"\n bindsym Escape mode \"default\"\n}",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::49",
"metadata": {
"title": "Development Environment"
},
"title": "mode \"resize\" {",
"url": "https://docs.nhcarrigan.com/dev/environment#mode-\"resize\"-{"
},
{
"content": "",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::50",
"metadata": {
"title": "Development Environment"
},
"title": "",
"url": "https://docs.nhcarrigan.com/dev/environment#"
},
{
"content": "Startup Apps:",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::51",
"metadata": {
"title": "Development Environment"
},
"title": "Startup Apps:",
"url": "https://docs.nhcarrigan.com/dev/environment#startup-apps:"
},
{
"content": "",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::52",
"metadata": {
"title": "Development Environment"
},
"title": "",
"url": "https://docs.nhcarrigan.com/dev/environment#"
},
{
"content": "Clipboard manager\nexec wl-paste --watch cliphist store",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::53",
"metadata": {
"title": "Development Environment"
},
"title": "Clipboard manager",
"url": "https://docs.nhcarrigan.com/dev/environment#clipboard-manager"
},
{
"content": "This creates the GUI for apps to ask for sudo perms\nexec /usr/lib/polkit-gnome/polkit-gnome-authentication-agent-1\nexec gsettings set org.gnome.desktop.interface gtk-theme \"Sweet-Ambar-Blue-Dark-v40\"\nexec gsettings set org.gnome.desktop.interface color-scheme prefer-dark\nexec gsettings set org.gnome.desktop.interface font-name 'OpenDyslexicMono 10'\nexec gsettings set org.gnome.desktop.interface cursor-theme miku-cursor-linux\nexec echo \"Xcursor.theme: miku-cursor-linux\" | xrdb -merge\nexec aw-qt\nexec aw-awatcher",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::54",
"metadata": {
"title": "Development Environment"
},
"title": "This creates the GUI for apps to ask for sudo perms",
"url": "https://docs.nhcarrigan.com/dev/environment#this-creates-the-gui-for-apps-to-ask-for-sudo-perms"
},
{
"content": "Actual apps\nexec discord\nexec librewolf\nexec google-chat-linux\nexec slack\nexec roam\nexec wasistlos\nexec /home/naomi/Applications/Forum-linux-x64/Forum\nexec /home/naomi/Applications/Code-linux-x64/Code\nexec /home/naomi/Applications/Asana-linux-x64/Asana\nexec amberol\nexec subl\nexec thunderbird\nexec 1password\nexec steam\nexec freetube",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::55",
"metadata": {
"title": "Development Environment"
},
"title": "Actual apps",
"url": "https://docs.nhcarrigan.com/dev/environment#actual-apps"
},
{
"content": "",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::56",
"metadata": {
"title": "Development Environment"
},
"title": "",
"url": "https://docs.nhcarrigan.com/dev/environment#"
},
{
"content": "Status Bar:",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::57",
"metadata": {
"title": "Development Environment"
},
"title": "Status Bar:",
"url": "https://docs.nhcarrigan.com/dev/environment#status-bar:"
},
{
"content": "",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::58",
"metadata": {
"title": "Development Environment"
},
"title": "",
"url": "https://docs.nhcarrigan.com/dev/environment#"
},
{
"content": "Read `man 5 sway-bar` for more information about this section.\nbar {\n swaybar_command waybar\n}\n\ninclude /etc/sway/config.d/*\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::59",
"metadata": {
"title": "Development Environment"
},
"title": "Read `man 5 sway-bar` for more information about this section.",
"url": "https://docs.nhcarrigan.com/dev/environment#read-`man-5-sway-bar`-for-more-information-about-this-section"
},
{
"content": "3.4.1. `swaylock`\n\n```ini frame=\"code\" title=\"~/.config/swaylock/config\"",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::60",
"metadata": {
"title": "Development Environment"
},
"title": "3.4.1. `swaylock`",
"url": "https://docs.nhcarrigan.com/dev/environment#341-`swaylock`"
},
{
"content": "Background image\nimage=/home/naomi/cloud/Photos/bg-left.png\nscaling=fill\nscreenshot=false\n\nignore-empty-password\nshow-failed-attempts",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::61",
"metadata": {
"title": "Development Environment"
},
"title": "Background image",
"url": "https://docs.nhcarrigan.com/dev/environment#background-image"
},
{
"content": "Background effects\nfade-in=0.2\neffect-blur=8x2\neffect-vignette=0.5:0.5",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::62",
"metadata": {
"title": "Development Environment"
},
"title": "Background effects",
"url": "https://docs.nhcarrigan.com/dev/environment#background-effects"
},
{
"content": "Ring customization\nindicator-radius=120\nindicator-thickness=20\nindicator-idle-visible\n\nclock\nclockoutline-color=abfcec\nclock-color=04624f\nclock-radius=60\nclock-thickness=10\ntimestr=%H:%M:%S\ndatestr=%a, %B %e",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::63",
"metadata": {
"title": "Development Environment"
},
"title": "Ring customization",
"url": "https://docs.nhcarrigan.com/dev/environment#ring-customization"
},
{
"content": "Colors\nkey-hl-color=04624f\nseparator-color=04624f\ninside-color=04624fcc\ninside-clear-color=04624fcc\ninside-ver-color=04624fcc\ninside-wrong-color=04624fcc\n\nring-color=abfcec\nring-clear-color=abfcec\nring-ver-color=abfcec\nring-wrong-color=cc8822\n\nline-color=04624f\nline-clear-color=04624f\nline-ver-color=04624f\nline-wrong-color=04624f\n\ntext-color=abfcec\ntext-clear-color=abfcec\ntext-ver-color=abfcec\ntext-wrong-color=abfcec",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::64",
"metadata": {
"title": "Development Environment"
},
"title": "Colors",
"url": "https://docs.nhcarrigan.com/dev/environment#colors"
},
{
"content": "Text customization\nfont=OpenDyslexicMono\nfont-size=24\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::65",
"metadata": {
"title": "Development Environment"
},
"title": "Text customization",
"url": "https://docs.nhcarrigan.com/dev/environment#text-customization"
},
{
"content": "3.5 Waybar\n\nThese manage Naomi's waybar instance.",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::66",
"metadata": {
"title": "Development Environment"
},
"title": "3.5 Waybar",
"url": "https://docs.nhcarrigan.com/dev/environment#35-waybar"
},
{
"content": "`config.jsonc`\n\n```json frame=\"code\" title=\"~/.config/waybar/config.jsonc\"\n{\n \"layer\": \"top\",\n \"position\": \"top\",\n \"mode\": \"dock\",\n \"height\": 15,\n \"exclusive\": true,\n \"passthrough\": false,\n \"gtk-layer-shell\": true,\n \"reload_style_on_change\": true,\n \"modules-left\": [\"custom/ws\", \"sway/workspaces\", \"sway/window\"],\n \"modules-center\": [\n \"custom/storage\",\n \"custom/cpuinfo\",\n \"memory\",\n \"cpu\",\n \"custom/gpu-usage\",\n \"custom/arch\",\n \"clock#time\",\n \"clock#date\",\n \"custom/weather\"\n ],\n \"modules-right\": [\n \"pulseaudio\",\n \"custom/updates\",\n \"tray\",\n \"custom/notifs\",\n \"custom/power\"\n ],\n \"custom/notifs\": {\n \"exec\": \"~/.config/waybar/scripts/dunst.sh\",\n \"return-type\": \"json\",\n \"interval\": 1,\n \"tooltip\": false,\n \"on-click\": \"dunstctl history-pop\",\n \"on-click-right\": \"dunstctl set-paused toggle\"\n },\n \"custom/ws\": {\n \"format\": \"\",\n \"tooltip\": false,\n \"on-click\": \"wofi --show=drun --allow-images\"\n },\n \"custom/gpu-usage\": {\n \"format\": \"{icon} {0}\",\n \"exec\": \"gpu-usage-waybar\",\n \"return-type\": \"json\",\n \"format-icons\": \"󰾲\",\n \"on-click\": \"kitty nvtop\",\n \"min-length\": 8,\n \"max-length\": 10\n },\n \"custom/weather\": {\n \"exec\": \"python ~/.config/waybar/scripts/weather.py\",\n \"restart-interval\": 300,\n \"return-type\": \"json\",\n \"on-click\": \"zen-browser https://weather.com/weather/today/l/f1fc8cc5233b6f8620dda922b1cb97b5cc8781f508c572de2f969ff79c7b293a\"\n },\n \"custom/updates\": {\n \"format\": \"{} {icon}\",\n \"return-type\": \"json\",\n \"format-icons\": {\n \"has-updates\": \"<span foreground='#cc0099'>󱍷</span>\",\n \"updated\": \"<span foreground='#00b300'>󰂪</span>\"\n },\n \"exec-if\": \"which waybar-module-pacman-updates\",\n \"exec\": \"waybar-module-pacman-updates --interval-seconds 5 --network-interval-seconds 300\",\n \"min-length\": 4,\n \"max-length\": 8,\n \"on-click\": \"ghostty -e yay -Syu\"\n },\n \"sway/workspaces\": {\n \"all-outputs\": false,\n \"active-only\": false,\n \"on-click\": \"activate\",\n \"disable-scroll\": true,\n \"sort-by-number\": true\n },\n \"sway/window\": {\n \"format\": \"{}\",\n \"separate-outputs\": true,\n \"rewrite\": {\n \"naomi@technomancer:(.*)\": \" $1\",\n \"(.*)naomi@technomancer:~\": \" naomi@technomancer\",\n \"(.*) - Visual Studio Code\": \"<span foreground='#89b4fa'>󰨞</span> $1\",\n \"(.*) - VSCodium\": \"<span foreground='#89b4fa'>󰨞</span> $1\",\n \"(.*) - Sublime Text(.*)\": \"<span foreground='#f9e2af'>󰘦</span> $1\",\n \"(.*)Zen Browser\": \"<span foreground='#94e2d5'>󰇧</span> $1\",\n \"(.*) — LibreWolf\": \"<span foreground='#94e2d5'>󰇧</span> $1\",\n \"(.*) — 1Password\": \"<span foreground='#89b4fa'>󰢁</span> $1\",\n \"(.*) - Slack\": \"<span foreground='#f38ba8'>󰒱</span> $1\",\n \"(.*) - Chat\": \"<span foreground='#a6e3a1'>󰊭</span> $1\",\n \"(.*) - Roam\": \"<span foreground='#cba6f7'></span> $1\",\n \"(.*) - Mozilla Thunderbird\": \"<span foreground='#fab387'>󰊫</span> $1\",\n \"(.*)Steam\": \"<span foreground='#89b4fa'>󰓓</span> Steam\",\n \"(.*) - Discord\": \"<span foreground='#5865F2'></span> $1\",\n \"(.*)GNU Image Manipulation Program\": \"<span foreground='#a6adc8'></span> $1\",\n \"(.*)GIMP\": \"<span foreground='#a6adc8'></span> $1\",\n \"OBS(.*)\": \"<span foreground='#a6adc8'></span> OBS Studio\",\n \"(.*) - FreeTube\": \"<span foreground='#FF1716'></span> $1\",\n \"WasIstLos\": \"<span foreground='#02FB00'></span> WasIstLos\",\n \"(.*).jpg\": \" $1.jpg\",\n \"(.*).png\": \" $1.png\",\n \"(.*).svg\": \" $1.svg\",\n \"(.*)Thunar\": \" $1\",\n \"Espanso.*\": \"<span foreground='#f9e2af'>󰌵</span> Espanso\",\n \"(.*) - NHCarrigan\": \"<span foreground='#f9e2af'></span> $1\",\n \"\": \"<span foreground='#cba6f7'></span> Naomi 󰅂 Technomancer\"\n }\n },\n \"custom/cpuinfo\": {\n \"exec\": \"~/.config/waybar/scripts/cpuinfo.sh\",\n \"return-type\": \"json\",\n \"format\": \"{}\",\n \"tooltip\": true,\n \"interval\": 5,\n \"on-click\": \"ghostty -e watch sensors\"\n },\n \"memory\": {\n \"states\": { \"c\": 90 },\n \"format\": \"󰘚 {percentage}%\",\n \"format-c\": \"<span foreground='#cc0000'>󰀪</span> {percentage}%\",\n \"tooltip\": true,\n \"tooltip-format\": \"{used:0.1f}GB / {total:0.1f}GB\",\n \"interval\": 20,\n \"on-click\": \"ghostty -e btop\"\n },\n \"cpu\": {\n \"format\": \"󰻠 {usage}%\",\n \"tooltip\": true,\n \"interval\": 5,\n \"on-click\": \"ghostty -e htop\"\n },\n \"custom/arch\": {\n \"format\": \"\",\n \"tooltip\": true,\n \"tooltip-format\": \"Arch Version: {}\",\n \"interval\": 86400,\n \"exec\": \"uname -r\",\n \"on-click\": \"ghostty\"\n },\n \"clock#time\": {\n \"format\": \"󱑂 {:%H:%M:%S (%Z)} \",\n \"tooltip\": true,\n \"tooltip-format\": \"{tz_list}\",\n \"interval\": 1,\n \"on-click\": \"gnome-clocks\",\n \"timezones\": [\n \"America/Los_Angeles\",\n \"America/Chicago\",\n \"Europe/London\",\n \"Europe/Berlin\",\n \"Asia/Tel_Aviv\",\n \"Asia/Tokyo\"\n ]\n },\n \"clock#date\": {\n \"format\": \"󱨴 {:L%A, %d %B}\",\n \"tooltip-format\": \"<tt>{calendar}</tt>\",\n \"calendar\": {\n \"mode\": \"month\",\n \"mode-mon-col\": 3,\n \"on-click\": \"thunderbird\",\n \"on-click-right\": \"mode\",\n \"format\": {\n \"months\": \"<span color='#f5e0dc'><b>{}</b></span>\",\n \"weekdays\": \"<span color='#f9e2af'><b>{}</b></span>\",\n \"today\": \"<span color='#f38ba8'><b>{}</b></span>\"\n }\n },\n \"actions\": { \"on-click-right\": \"mode\" }\n },\n \"pulseaudio\": {\n \"format\": \"<span foreground='#00b300'>{icon}</span> {volume}%\",\n \"format-muted\": \"<span foreground='#cc0099'></span> {volume}%\",\n \"format-icons\": {\n \"headphone\": \"󰋋\",\n \"default\": [\"󰖀\", \"󰕾\"]\n },\n \"on-click\": \"pactl set-sink-mute @DEFAULT_SINK@ toggle\",\n \"on-click-right\": \"pavucontrol -t 3\",\n \"on-scroll-up\": \"pactl set-sink-volume @DEFAULT_SINK@ +1%\",\n \"on-scroll-down\": \"pactl set-sink-volume @DEFAULT_SINK@ -1%\",\n \"scroll-step\": 10\n },\n \"custom/power\": {\n \"format\": \"<span foreground='#cc0000'></span>\",\n \"tooltip\": false,\n \"on-click\": \"swaylock\",\n \"on-click-right\": \"shutdown now\",\n \"interval\": 86400\n },\n \"tray\": {\n \"icon-size\": 15,\n \"spacing\": 5,\n \"show-passive-items\": true\n },\n \"custom/storage\": {\n \"format\": \"{}\",\n \"return-type\": \"json\",\n \"tooltip\": true,\n \"interval\": 10,\n \"exec\": \"~/.config/waybar/scripts/disk-use.sh\",\n \"on-click\": \"baobab\"\n }\n}\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::67",
"metadata": {
"title": "Development Environment"
},
"title": "`config.jsonc`",
"url": "https://docs.nhcarrigan.com/dev/environment#`configjsonc`"
},
{
"content": "`style.css`\n\n```css frame=\"code\" title=\"~/.config/waybar/style.css\"\n#waybar {\n border: none;\n font-family: \"OpenDyslexicM Nerd Font\";\n font-weight: bold;\n font-size: 10px;\n color: #ffb6c1;\n text-shadow: 0px 0px 5px;\n background: rgba(42, 10, 24, 0.8);\n}\n\n#workspaces button {\n padding: 0px 3px;\n color: #ffb6c1;\n border-radius: 50%;\n}\n\n#tray menu {\n background: rgba(42, 10, 24, 0.8);\n color: #ffb6c1;\n text-shadow: 0px 0px 5px;\n}\n\n#tray menu menuitem:hover {\n background: rgba(255, 239, 239, 0.8);\n color: #db7093;\n}\n\ntooltip {\n color: #ffb6c1;\n border: solid;\n border-radius: 7px;\n border-width: 1px;\n border-color: #ffb6c1;\n background-color: rgba(42, 10, 24, 0.8);\n text-shadow: 0px 0px 5px;\n}\n\n.module {\n background-color: rgba(42, 10, 24, 0.8);\n border: solid;\n border-radius: 10px;\n border-width: 1px;\n border-color: #ffb6c1;\n padding: 0px 4px;\n margin: 0px 0px 0px 0px;\n}\n\n.modules-left .module {\n margin-right: 6px;\n box-shadow: 2px 2px 3px #ffb6c177;\n}\n\n.modules-right .module {\n margin-left: 6px;\n box-shadow: -2px 2px 3px #ffb6c177;\n}\n\n.modules-center .module {\n margin-left: 5px;\n margin-right: 5px;\n box-shadow: 0px 2px 3px #ffb6c177;\n}\n\n#custom-arch,\n#custom-ws {\n padding-left: 8px;\n padding-right: 12px;\n}\n\n#custom-notifs,\n#custom-power {\n padding-left: 8px;\n padding-right: 10px;\n}\n\n#workspaces button:hover {\n background: rgba(255, 239, 239, 0.8);\n color: #db7093;\n}\n\n#workspaces button.visible {\n background: rgba(255, 239, 239, 0.8);\n color: #db7093;\n}\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::68",
"metadata": {
"title": "Development Environment"
},
"title": "`style.css`",
"url": "https://docs.nhcarrigan.com/dev/environment#`stylecss`"
},
{
"content": "Scripts\n\nThere are a few scripts necessary for waybar to work.\n\n<details>\n <summary><code>disk-use.sh</code></summary>\n\n```sh frame=\"code\" title=\"~/.config/waybar/scripts/disk-use.sh\"\n#!/usr/bin/env sh\n\nhome_use=$(df -h /home | tail -1);\nread -ra home_array <<< \"$home_use\"\n\nboot_use=$(df -h /boot | tail -1);\nread -ra boot_array <<< \"$boot_use\"\n\nroot_use=$(df -h / | tail -1);\nread -ra root_array <<< \"$root_use\"\n\ntext=\" ${home_array[2]} / ${home_array[1]}\";\ntooltip=\"Home: ${home_array[2]} / ${home_array[1]} (${home_array[4]})\\nBoot: ${boot_array[2]} / ${boot_array[1]} (${boot_array[4]})\\nRoot: ${root_array[2]} / ${root_array[1]} (${root_array[4]})\";\n\necho \"{\\\"text\\\":\\\"${text}\\\", \\\"tooltip\\\":\\\"${tooltip}\\\"}\";\n```\n\n</details>\n\n<details>\n <summary><code>cpuinfo.sh</code></summary>\n\n```sh frame=\"code\" title=\"~/.config/waybar/scripts/cpuinfo.sh\"\n#!/usr/bin/env sh\n\nmodel=$(cat /proc/cpuinfo | grep 'model name' | head -n 1 | awk -F ': ' '{print $2}')\nutilization=$(top -bn1 | awk '/^%Cpu/ {print 100 - $8}')\nfreqlist=$(cat /proc/cpuinfo | grep \"cpu MHz\" | awk '{ print $4 }')\nmaxfreq=$(cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq | sed 's/...$//')\nfrequency=$(echo $freqlist | tr ' ' '\\n' | awk \"{ sum+=\\$1 } END {printf \\\"%.0f/$maxfreq MHz\\\", sum/NR}\")\ntemp=$(sensors | awk '/Package id 0/ {print $4}' | awk -F '[+.]' '{print $2}')\nif [ -z \"$temp\" ]; then\n temp=$(sensors | awk '/Tctl/ {print $2}' | tr -d '+°C')\nfi\nif [ -z \"$temp\" ]; then\n temp=\"N/A\"\nfi\nset_ico=\"{\\\"thermo\\\":{\\\"0\\\":\\\"󱃃\\\",\\\"45\\\":\\\"󰔏\\\",\\\"65\\\":\\\"󱃂\\\",\\\"85\\\":\\\"<span foreground='#cc0000'>󰸁</span>\\\"},\\\"util\\\":{\\\"0\\\":\\\"󰾆\\\",\\\"30\\\":\\\"󰾅\\\",\\\"60\\\":\\\"󰓅\\\",\\\"90\\\":\\\"<span foreground='#cc0000'>󰀪</span>\\\"}}\"\neval_ico() {\n map_ico=$(echo \"${set_ico}\" | jq -r --arg aky \"$1\" --argjson avl \"$2\" '.[$aky] | keys_unsorted | map(tonumber) | map(select(. <= $avl)) | max')\n echo \"${set_ico}\" | jq -r --arg aky \"$1\" --arg avl \"$map_ico\" '.[$aky] | .[$avl]'\n}\nthermo=$(eval_ico thermo $temp)\nspeedo=$(eval_ico util $utilization)\necho \"{\\\"text\\\":\\\"${thermo} ${temp}°C\\\", \\\"tooltip\\\":\\\"${model}\\n${thermo} Temperature: ${temp}°C\\n${speedo} Utilization: ${utilization}%\\n󰘚 Clock Speed: ${frequency}\\\"}\"\n```\n\n</details>\n\n<details>\n <summary><code>dunst.sh</code></summary>\n\n```sh frame=\"code\" title=\"~/.config/waybar/scripts/dunst.sh\"\n#!/bin/bash\n\nif dunstctl is-paused | grep -q \"true\"; then\n echo '{\"text\": \"<span foreground=\\\"#cc0099\\\"></span>\", \"class\": \"paused\"}'\nelse\n echo '{\"text\": \"<span foreground=\\\"#00b300\\\"></span>\", \"class\": \"active\"}'\nfi\n```\n\n</details>\n\n<details>\n <summary><code>weather.py</code></summary>\n\n```py frame=\"code\" title=\"~/.config/waybar/scripts/weather.py\"\n#!/usr/bin/env python\n\nimport subprocess\nfrom pyquery import PyQuery\nimport json\n\nweather_icons = {\n \"sunnyDay\": \"<span foreground='#dbd402'></span>\",\n \"clearNight\": \"<span foreground='#3239fc'></span>\",\n \"cloudyFoggyDay\": \"<span foreground='#e0dc62'></span>\",\n \"cloudyFoggyNight\": \"<span foreground='#6368f9'></span>\",\n \"rainyDay\": \"<span foreground='#dddba1'></span>\",\n \"rainyNight\": \"<span foreground='#6c71fc'></span>\",\n \"snowyIcyDay\": \"<span foreground='#cccbb7'></span>\",\n \"snowyIcyNight\": \"<span foreground='#9c9ffc'></span>\",\n \"severe\": \"<span foreground='#db0202'></span>\",\n \"default\": \"\",\n}\n\nlocation_id = \"f1fc8cc5233b6f8620dda922b1cb97b5cc8781f508c572de2f969ff79c7b293a\"\n\nurl = \"https://weather.com/weather/today/l/\" + location_id\nhtml_data = PyQuery(url=url)\n\ntemp = html_data(\"span[data-testid='TemperatureValue']\").eq(0).text()\nstatus = html_data(\"div[data-testid='wxPhrase']\").text()\nstatus = f\"{status[:16]}..\" if len(status) > 17 else status\nstatus_code = html_data(\"#regionHeader\").attr(\"class\").split(\" \")[2].split(\"-\")[2]\nicon = (\n weather_icons[status_code]\n if status_code in weather_icons\n else weather_icons[\"default\"]\n)\ntemp_feel = html_data(\n \"div[data-testid='FeelsLikeSection'] > span > span[data-testid='TemperatureValue']\"\n).text()\ntemp_feel_text = f\"Feels like {temp_feel}F\"\ntemp_min = (\n html_data(\"div[data-testid='wxData'] > span[data-testid='TemperatureValue']\")\n .eq(0)\n .text()\n)\ntemp_max = (\n html_data(\"div[data-testid='wxData'] > span[data-testid='TemperatureValue']\")\n .eq(1)\n .text()\n)\ntemp_min_max = f\" {temp_min}\\t\\t {temp_max}\"\nwind_speed = html_data(\"span[data-testid='Wind']\").text().split(\"\\n\")[1]\nwind_text = f\" {wind_speed}\"\nhumidity = html_data(\"span[data-testid='PercentageValue']\").text()\nhumidity_text = f\" {humidity}\"\nvisbility = html_data(\"span[data-testid='VisibilityValue']\").text()\nvisbility_text = f\" {visbility}\"\nair_quality_index = html_data(\"text[data-testid='DonutChartValue']\").text()\nprediction = html_data(\"section[aria-label='Hourly Forecast']\")(\n \"div[data-testid='SegmentPrecipPercentage'] > span\"\n).text()\nprediction = prediction.replace(\"Chance of Rain\", \"\")\nprediction = f\"\\n\\n  (hourly) {prediction}\" if len(prediction) > 0 else prediction\ntooltip_text = str.format(\n \"\\t\\t{}\\t\\t\\n{}\\n{}\\n{}\\n\\n{}\\n{}\\n{}{}\",\n f'<span size=\"xx-large\">{temp}</span>',\n f\"<big>{icon}</big>\",\n f\"<big>{status}</big>\",\n f\"<small>{temp_feel_text}</small>\",\n f\"<big>{temp_min_max}</big>\",\n f\"{wind_text}\\t{humidity_text}\",\n f\"{visbility_text}\\tAQI {air_quality_index}\",\n f\"<i>{prediction}</i>\",\n)\nout_data = {\n \"text\": f\"{icon} {temp}\",\n \"alt\": status,\n \"tooltip\": tooltip_text,\n \"class\": status_code,\n}\nprint(json.dumps(out_data))\n```\n\n</details>",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::69",
"metadata": {
"title": "Development Environment"
},
"title": "Scripts",
"url": "https://docs.nhcarrigan.com/dev/environment#scripts"
},
{
"content": "3.6 Ghostty\n\n```ini frame=\"code\" title=\"~/.config/ghostty/config\"\nfont-family=\"OpenDyslexicM Nerd Font\"\ntheme=\"SakuraDreamsDark\"\nbackground-opacity=0.8\ngtk-titlebar=false\n```\n\n```ini frame=\"code\" title=\"~/.config/ghostty/themes/SakuraDreamsDark\"\npalette = 0=#26010a\npalette = 1=#ff66b2\npalette = 2=#ff1493\npalette = 3=#db7093\npalette = 4=#b03060\npalette = 5=#c71585\npalette = 6=#d87093\npalette = 7=#ff5c8a\npalette = 8=#ff85a2\npalette = 9=#ff004f\npalette = 10=#ff3377\npalette = 11=#ff77a8\npalette = 12=#ff3b6f\npalette = 13=#ff6b94\npalette = 14=#ff96b5\npalette = 15=#ffe6ee\n\nbackground = #2a0a18\nbackground-blur-radius = 20\nforeground = #ffd1dc\nselection-background = #b03060\nselection-foreground = #ffe6ee\ncursor-color = #ff3b6f\ncursor-text = #ffe6ee\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::70",
"metadata": {
"title": "Development Environment"
},
"title": "3.6 Ghostty",
"url": "https://docs.nhcarrigan.com/dev/environment#36-ghostty"
},
{
"content": "3.7 Discord\n\n```json frame=\"code\" title=\"~/.config/discord/settings.json\"\n{\n \"chromiumSwitches\": {},\n \"IS_MAXIMIZED\": false,\n \"IS_MINIMIZED\": false,\n \"WINDOW_BOUNDS\": {\n \"x\": 22,\n \"y\": 42,\n \"width\": 1876,\n \"height\": 1016\n },\n \"SKIP_HOST_UPDATE\": true,\n \"DANGEROUS_ENABLE_DEVTOOLS_ONLY_ENABLE_IF_YOU_KNOW_WHAT_YOURE_DOING\": true,\n \"MINIMIZE_TO_TRAY\": true\n}\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::71",
"metadata": {
"title": "Development Environment"
},
"title": "3.7 Discord",
"url": "https://docs.nhcarrigan.com/dev/environment#37-discord"
},
{
"content": "3.8 Hyfetch\n\nThere are two config files here.\n\n```json frame=\"code\" title=\"~/.config/hyfetch.json\"\n{\n \"preset\": \"transfeminine\",\n \"mode\": \"rgb\",\n \"light_dark\": \"dark\",\n \"lightness\": 0.81,\n \"color_align\": {\n \"mode\": \"vertical\",\n \"custom_colors\": [],\n \"fore_back\": []\n },\n \"backend\": \"neofetch\",\n \"args\": null,\n \"distro\": null,\n \"pride_month_shown\": [],\n \"pride_month_disable\": false,\n \"image\": \"/home/naomi/pics/profile.png\"\n}\n```\n\n```ini frame=\"code\" title=\"~/.config/neofetch/config.conf\"\nhome_disk_info() {\n df -h | grep '/home$' | awk '{printf \"%s: %s/%s (%s)\", $NF, $3, $2, $5}'\n}\n\nboot_disk_info() {\n df -h | grep '/boot$' | awk '{printf \"%s: %s/%s (%s)\", $NF, $3, $2, $5}'\n}\n\nroot_disk_info() {\n df -h | grep '/$' | awk '{printf \"%s: %s/%s (%s)\", $NF, $3, $2, $5}'\n}\n\nprint_info() {\n info title\n info underline\n info \"OS\" distro\n info \"├─Kernel\" kernel\n info \"├─Locale\" locale\n info \"├─Shell\" shell\n prin \"├─WM\" \"$(sway --version)\"\n info \"├─Terminal\" term\n info \"└───Terminal Font\" term_font\n info \"Host\" model\n info \"├─BIOS\" bios\n info \"├─CPU\" cpu\n info \"├─GPU\" gpu\n info \"├───GPU Driver\" gpu_driver\n prin \"├─Disk\" \"$(home_disk_info)\"\n prin \"├───Root\" \"$(root_disk_info)\"\n prin \"├───Boot\" \"$(boot_disk_info)\"\n info \"└─Memory\" memory\n prin \"\"\n prin \"Programming Languages\"\n info underline\n prin \"Bash\" \"$(bash --version | head -n1 | cut -d' ' -f4)\"\n prin \"Clang\" \"$(clang --version | head -n1 | cut -d' ' -f3)\"\n prin \"C++\" \"$(cpp --version | head -n1 | cut -d' ' -f3)\"\n prin \"Dart\" \"$(dart --version | cut -d' ' -f4)\"\n prin \"└─Flutter\" \"$(flutter --version | head -n1 | cut -d' ' -f2)\"\n prin \"Dotnet\" \"$(dotnet --version)\"\n prin \"└─C-sharp Compiler\" \"$(csc -v | head -n1 | cut -d' ' -f7)\"\n prin \"Go\" \"$(go version | cut -d' ' -f3 | sed 's/go//')\"\n prin \"Haskell\" \"$(ghc --version | head -n1 | cut -d' ' -f8)\"\n prin \"└─Cabal\" \"$(cabal --version | head -n1 | cut -d' ' -f3)\"\n prin \"Java\" \"$(java -version 2>&1 | head -n1 | cut -d' ' -f2 | sed 's/\\\"//g')\"\n prin \"├─Gradle\" \"$(gradle -v | head -n3 | tail -n1 | cut -d' ' -f2)\"\n prin \"└─Kotlin\" \"$(kotlin -version | cut -d' ' -f3)\"\n prin \"Lua\" \"$(lua -v | cut -d' ' -f2)\"\n prin \"PHP\" \"$(php -v | head -n1 | cut -d' ' -f2)\"\n prin \"Python\" \"$(python --version | cut -d' ' -f2)\"\n prin \"└─PIP\" \"$(pip --version | cut -d' ' -f2)\"\n prin \"Node\" \"$(node -v)\"\n prin \"├─NPM\" \"$(npm -v)\"\n prin \"├─Yarn\" \"$(yarn -v)\"\n prin \"└─PNPM\" \"$(pnpm -v)\"\n prin \"Ruby\" \"$(ruby -v | cut -d' ' -f2)\"\n prin \"Rust\" \"$(rustc --version | cut -d' ' -f2)\"\n prin \"├─Rustup\" \"$(rustup -V | head -n1 | cut -d' ' -f2)\"\n prin \"└─Cargo\" \"$(cargo version | cut -d' ' -f2)\"\n prin \"TypeScript\" \"$(tsc -v | cut -d' ' -f2)\"\n prin \"Zig\" \"$(zig version)\"\n prin \"\"\n prin \"Databases\"\n info underline\n prin \"MongoDB\" \"$(mongod --version | head -n1 | cut -d' ' -f3)\"\n prin \"└─Mongo Shell\" \"$(mongo --version | head -n1 | cut -d' ' -f4)\"\n prin \"MySQL\" \"$(mysql --version | cut -d' ' -f4)\"\n prin \"PostgreSQL\" \"$(psql --version | cut -d' ' -f3)\"\n prin \"SQlite\" \"$(sqlite3 --version | cut -d' ' -f1)\"\n prin \"\"\n prin \"Tools\"\n info underline\n prin \"Browser\" \"Zen $(zen-browser --version | cut -d' ' -f3)\"\n prin \"Editor\" \"Emacs $(emacs --version | head -n1 | cut -d' ' -f3)\"\n prin \"└─Nano\" \"$(nano --version | head -n1 | cut -d' ' -f5)\"\n}\ntitle_fqdn=\"on\"\nkernel_shorthand=\"on\"\ndistro_shorthand=\"off\"\nos_arch=\"on\"\nmemory_percent=\"on\"\nmemory_unit=\"gib\"\nmem_precision=2\nshell_path=\"on\"\nshell_version=\"on\"\nspeed_type=\"bios_limit\"\nspeed_shorthand=\"on\"\ncpu_brand=\"on\"\ncpu_speed=\"on\"\ncpu_cores=\"logical\"\ncpu_temp=\"on\"\ngpu_brand=\"on\"\ngpu_type=\"all\"\nrefresh_rate=\"on\"\ngtk3=\"on\"\nbold=\"on\"\nunderline_enabled=\"on\"\nunderline_char=\"-\"\nseparator=\":\"\nblock_range=(0 15)\ncolor_blocks=\"on\"\nblock_width=3\nblock_height=1\ncol_offset=\"auto\"\nbar_char_elapsed=\"-\"\nbar_char_total=\"=\"\nbar_border=\"on\"\nbar_length=15\nbar_color_elapsed=\"distro\"\nbar_color_total=\"distro\"\nmemory_display=\"on\"\ndisk_display=\"on\"\nimage_backend=\"kitty\"\nimage_source=\"/home/naomi/pics/profile.png\"\nimage_loop=\"off\"\nthumbnail_dir=\"${XDG_CACHE_HOME:-${HOME}/.cache}/thumbnails/neofetch\"\ncrop_mode=\"normal\"\ncrop_offset=\"center\"\nimage_size=\"auto\"\ncatimg_size=\"2\"\ngap=3\nyoffset=0\nxoffset=0\nbackground_color=\nstdout=\"off\"\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::72",
"metadata": {
"title": "Development Environment"
},
"title": "3.8 Hyfetch",
"url": "https://docs.nhcarrigan.com/dev/environment#38-hyfetch"
},
{
"content": "3.9 Wofi\n\n```css frame=\"code\" title=\"~/.config/wofi/style.css\"\n#window {\n background-color: rgba(42, 10, 24, 0.75);\n border-radius: 1rem;\n font-size: 1.2rem;\n font-family: \"OpenDyslexicM Nerd Font\";\n text-shadow: 0px 0px 5px;\n}\n#window #outer-box #input {\n background-color: rgba(42, 10, 24, 0.75);\n color: #ffb6c1;\n border: none;\n border-bottom: 1px solid rgba(24, 24, 24, 0.2);\n padding: 0.8rem 1rem;\n font-size: 1.5rem;\n border-radius: 1rem 1rem 0 0;\n}\n#window #outer-box #input::placeholder {\n color: #ffb6c1;\n}\n#window #outer-box #input:focus,\n#window #outer-box #input:focus-visible,\n#window #outer-box #input:active {\n border: none;\n outline: 2px solid transparent;\n outline-offset: 2px;\n}\n#window #outer-box #scroll #inner-box #entry {\n color: #ffb6c1;\n background-color: rgba(24, 24, 24, 0.1);\n padding: 0.6rem 1rem;\n}\n#window #outer-box #scroll #inner-box #entry #img {\n width: 1rem;\n margin-right: 0.5rem;\n}\n#window #outer-box #scroll #inner-box #entry:selected {\n color: #ffb6c1;\n background-color: rgba(255, 255, 255, 0.1);\n outline: none;\n}\n#text:selected {\n color: rgb(219, 112, 147);\n background-color: #ffb6c1;\n}\n\n#img:selected {\n background: none;\n}\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::73",
"metadata": {
"title": "Development Environment"
},
"title": "3.9 Wofi",
"url": "https://docs.nhcarrigan.com/dev/environment#39-wofi"
},
{
"content": "3.10 Dunst\n\n`dunst` manages Naomi's system notifications, and (like many other aspects of her environment) has been highly customised.\n\n```toml frame=\"code\" title=\"~/.config/dunst/dunstrc\"\n[global]\n follow=mouse\n width=(0, 750)\n height=(0, 250)\n notification_limit=10\n origin=center\n icon_corner_radius=10\n sort=update\n word_wrap=false\n ellipsize=end\n layer=overlay\n show_age_threshold=-1\n stack_duplicates=false\n corner_radius=10\n mouse_left_click=close_current\n mouse_right_click=do_action, close_current\n mouse_middle_click=none\n font=OpenDyslexicMono 12\n format=\"<b>%a - %s</b>\\n<big>%b</big>\"\n background=\"#2a0a1899\"\n foreground=\"#ffb6c1\"\n max_icon_size=32\n icon_corner_radius=10\n frame_color=\"#ffefef\"\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::74",
"metadata": {
"title": "Development Environment"
},
"title": "3.10 Dunst",
"url": "https://docs.nhcarrigan.com/dev/environment#310-dunst"
},
{
"content": "4. Code Editors\n\nThese are the code editors Naomi uses.",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::75",
"metadata": {
"title": "Development Environment"
},
"title": "4. Code Editors",
"url": "https://docs.nhcarrigan.com/dev/environment#4-code-editors"
},
{
"content": "4.1. VSCodium\n\nNaomi uses VSCodium as her current code editor.",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::76",
"metadata": {
"title": "Development Environment"
},
"title": "4.1. VSCodium",
"url": "https://docs.nhcarrigan.com/dev/environment#41-vscodium"
},
{
"content": "4.1.1. Settings\n\nThis is Naomi's configuration.\n\n```json frame=\"code\" title=\"~/.config/VSCodium/User/settings.json\"\n{\n \"workbench.iconTheme\": \"vscode-icons\",\n \"[typescript]\": {\n \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n },\n \"[json]\": {\n \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n },\n \"[jsonc]\": {\n \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n },\n \"[typescriptreact]\": {\n \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n },\n \"javascript.preferences.importModuleSpecifierEnding\": \"js\",\n \"javascript.updateImportsOnFileMove.enabled\": \"always\",\n \"typescript.preferences.importModuleSpecifierEnding\": \"js\",\n \"typescript.preferences.preferTypeOnlyAutoImports\": true,\n \"[javascript]\": {\n \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n },\n \"typescript.updateImportsOnFileMove.enabled\": \"always\",\n \"[html]\": {\n \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n },\n \"editor.fontFamily\": \"'OpenDyslexicM Nerd Font'\",\n \"files.exclude\": {\n \"**/node_modules/\": true\n },\n \"editor.fontLigatures\": true,\n \"editor.codeLensFontFamily\": \"'OpenDyslexicM Nerd Font'\",\n \"editor.inlineSuggest.fontFamily\": \"'OpenDyslexicM Nerd Font'\",\n \"editor.inlayHints.fontFamily\": \"'OpenDyslexicM Nerd Font'\",\n \"terminal.integrated.fontFamily\": \"'OpenDyslexicM Nerd Font'\",\n \"notebook.output.fontFamily\": \"'OpenDyslexicM Nerd Font'\",\n \"chat.editor.fontFamily\": \"'OpenDyslexicM Nerd Font'\",\n \"markdown.preview.fontFamily\": \"'OpenDyslexicM Nerd Font'\",\n \"colorize.languages\": [\n \"html\",\n \"javascript\",\n \"typescript\",\n \"json\",\n \"typescriptreact\",\n \"css\",\n \"sass\",\n \"scss\",\n \"less\",\n \"postcss\",\n \"sss\",\n \"stylus\",\n \"xml\",\n \"svg\"\n ],\n \"cSpell.language\": \"en-GB\",\n \"http.proxyAuthorization\": null,\n \"github.copilot.enable\": {\n \"*\": true\n },\n \"discord.detailsIdling\": \"She's not editing a file...\",\n \"discord.detailsEditing\": \"{file_name}:L{current_line}:{current_column}\",\n \"discord.lowerDetailsEditing\": \"{workspace}/{git_branch}\",\n \"discord.largeImageIdling\": \"Nothing to see here...\",\n \"discord.lowerDetailsIdling\": \"Off in lala land...\",\n \"editor.inlayHints.enabled\": \"off\",\n \"workbench.colorCustomizations\": {\n \"editor.lineHighlightBackground\": \"#1073cf2d\",\n \"editor.lineHighlightBorder\": \"#9fced11f\"\n },\n \"editor.wordWrap\": \"off\",\n \"diffEditor.wordWrap\": \"off\",\n \"editor.guides.indentation\": false,\n \"editor.guides.bracketPairs\": false,\n \"sonarlint.connectedMode.connections.sonarcloud\": [],\n \"terminal.integrated.lineHeight\": 1,\n \"[css]\": {\n \"editor.defaultFormatter\": \"esbenp.prettier-vscode\"\n },\n \"debug.console.fontFamily\": \"'OpenDyslexicM Nerd Font'\",\n \"scm.inputFontFamily\": \"'OpenDyslexicM Nerd Font'\",\n \"errorLens.fontFamily\": \"'OpenDyslexicM Nerd Font'\",\n \"gitlens.currentLine.fontFamily\": \"'OpenDyslexicM Nerd Font'\",\n \"gitlens.blame.fontFamily\": \"'OpenDyslexicM Nerd Font'\",\n \"sonarlint.disableTelemetry\": true,\n \"explorer.confirmDelete\": false,\n \"wordcounter.include_eol_chars\": false,\n \"wordcounter.side.left\": [\"word\", \"char\"],\n \"explorer.confirmDragAndDrop\": false,\n \"vscord.app.name\": \"VSCodium\",\n \"vscord.status.buttons.button1.active.label\": \"Wanna chat?\",\n \"vscord.status.buttons.button1.active.url\": \"https://chat.nhcarrigan.com\",\n \"vscord.status.buttons.button2.active.enabled\": true,\n \"vscord.status.buttons.button2.active.url\": \"https://chat.nhcarrigan.com\",\n \"vscord.status.buttons.button2.active.label\": \"Wanna chat?\",\n \"vscord.status.buttons.button2.enabled\": true,\n \"vscord.status.buttons.button2.idle.enabled\": true,\n \"vscord.status.buttons.button2.idle.label\": \"Wanna chat?\",\n \"vscord.status.buttons.button2.idle.url\": \"https://chat.nhcarrigan.com\",\n \"vscord.status.buttons.button2.inactive.enabled\": true,\n \"vscord.status.buttons.button2.inactive.label\": \"Wanna chat?\",\n \"vscord.status.buttons.button2.inactive.url\": \"https://chat.nhcarrigan.com\",\n \"vscord.status.buttons.button2.git.active.enabled\": true,\n \"vscord.status.buttons.button2.git.active.label\": \"Wanna chat?\",\n \"vscord.status.buttons.button2.git.active.url\": \"https://chat.nhcarrigan.com\",\n \"vscord.status.buttons.button2.git.idle.enabled\": true,\n \"vscord.status.buttons.button2.git.idle.label\": \"Wanna chat?\",\n \"vscord.status.buttons.button2.git.inactive.enabled\": true,\n \"vscord.status.buttons.button2.git.idle.url\": \"https://chat.nhcarrigan.com\",\n \"vscord.status.buttons.button2.git.inactive.label\": \"Wanna chat?\",\n \"vscord.status.buttons.button2.git.inactive.url\": \"https://chat.nhcarrigan.com\",\n \"sonarlint.connectedMode.connections.sonarqube\": [\n {\n \"serverUrl\": \"https://quality.nhcarrigan.com\",\n \"connectionId\": \"Naomi\"\n }\n ],\n \"window.menuBarVisibility\": \"toggle\",\n \"workbench.colorTheme\": \"Sakura Dreams (Dark)\"\n}\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::77",
"metadata": {
"title": "Development Environment"
},
"title": "4.1.1. Settings",
"url": "https://docs.nhcarrigan.com/dev/environment#411-settings"
},
{
"content": "4.1.2. Extensions\n\nNaomi uses the following extensions sourced from the Pulsar marketplace. This list does not include the core extensions bundled with the editor.\n\n```txt frame=\"terminal\" title=\"codium --list-extensions\"\n1password.op-vscode\naaron-bond.better-comments\naddy2142.avalonia-templates\nadpyke.codesnap\nahmadalli.vscode-nginx-conf\nanchoreinc.grype-vscode\naquasecurityofficial.trivy-vulnerability-scanner\nastro-build.astro-vscode\navaloniateam.vscode-avalonia\nbmewburn.vscode-intelephense-client\nbradlc.vscode-tailwindcss\nbungcip.better-toml\nchrmarti.regex\ndabbinavo.xamlstyler\ndart-code.dart-code\ndart-code.flutter\ndbaeumer.vscode-eslint\ndonjayamanne.githistory\neamodio.gitlens\nesbenp.prettier-vscode\nfirefox-devtools.vscode-firefox-debug\nfwcd.kotlin\ngithub.copilot\ngithub.copilot-chat\ngolang.go\nhaskell.haskell\nionide.ionide-fsharp\njustusadam.language-haskell\njzmstrjp.color-the-tag-name\nkirozen.wordcounter\nleodevbro.blockman\nleonardssh.vscord\nmkxml.vscode-filesize\nmrmlnc.vscode-scss\nms-dotnettools.csdevkit\nms-dotnettools.csharp\nms-dotnettools.dotnet-interactive-vscode\nms-dotnettools.vscode-dotnet-pack\nms-dotnettools.vscode-dotnet-runtime\nms-dotnettools.vscodeintellicode-csharp\nms-python.black-formatter\nms-python.debugpy\nms-python.pylint\nms-python.python\nms-python.vscode-pylance\nms-toolsai.jupyter\nms-toolsai.jupyter-keymap\nms-toolsai.jupyter-renderers\nms-toolsai.vscode-jupyter-cell-tags\nms-toolsai.vscode-jupyter-slideshow\nms-vscode.cmake-tools\nms-vscode.cpptools\nms-vscode.cpptools-extension-pack\nms-vscode.cpptools-themes\nmskelton.npm-outdated\nnhcarrigan.naomis-themes\noderwat.indent-rainbow\noracle.oracle-java\nprisma.prisma\nrebornix.ruby\nredhat.java\nrust-lang.rust-analyzer\nsonarsource.sonarlint-vscode\nstreetsidesoftware.code-spell-checker\ntwxs.cmake\nusernamehw.errorlens\nvisualstudioexptteam.intellicode-api-usage-examples\nvisualstudioexptteam.vscodeintellicode\nvitest.explorer\nvscjava.vscode-gradle\nvscjava.vscode-java-debug\nvscjava.vscode-java-dependency\nvscjava.vscode-java-pack\nvscjava.vscode-java-test\nvscjava.vscode-maven\nvscode-icons-team.vscode-icons\nwilliam-voyek.vscode-nginx\nwingrunr21.vscode-ruby\nwix.vscode-import-cost\nxdebug.php-debug\nyandeu.five-server\nyoavbls.pretty-ts-errors\nyutengjing.vscode-colorize-plus\nyzane.markdown-pdf\nziglang.vscode-zig\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::78",
"metadata": {
"title": "Development Environment"
},
"title": "4.1.2. Extensions",
"url": "https://docs.nhcarrigan.com/dev/environment#412-extensions"
},
{
"content": "4.1.3. Themes\n\nNaomi uses her own custom built themes, which can be found at https://git.nhcarrigan.com/nhcarrigan/vscode-themes",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::79",
"metadata": {
"title": "Development Environment"
},
"title": "4.1.3. Themes",
"url": "https://docs.nhcarrigan.com/dev/environment#413-themes"
},
{
"content": "4.2. Emacs\n\nNaomi uses `emacs` for her terminal editing.",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::80",
"metadata": {
"title": "Development Environment"
},
"title": "4.2. Emacs",
"url": "https://docs.nhcarrigan.com/dev/environment#42-emacs"
},
{
"content": "4.2.1. Config\n\n```lisp frame=\"code\" title=\"~/.config/emacs/init.el\"\n;; Initialize package system\n(require 'package)\n(setq package-archives '((\"melpa\" . \"https://melpa.org/packages/\")\n (\"org\" . \"https://orgmode.org/elpa/\")\n (\"elpa\" . \"https://elpa.gnu.org/packages/\")))\n(package-initialize)\n\n;; Bootstrap use-package\n(unless (package-installed-p 'use-package)\n (package-install 'use-package))\n(require 'use-package)\n(setq use-package-always-ensure t)\n\n;; Terminal-specific settings\n(xterm-mouse-mode 1) ; Enable mouse support\n(global-set-key (kbd \"<mouse-4>\") 'scroll-down-line)\n(global-set-key (kbd \"<mouse-5>\") 'scroll-up-line)\n(menu-bar-mode -1) ; Disable menu bar in terminal\n\n;; Better terminal colors\n(use-package eterm-256color\n :hook (term-mode . eterm-256color-mode))\n\n;; Line numbers configuration\n(global-display-line-numbers-mode 1) ; Enable line numbers globally\n(setq display-line-numbers-type t)\n\n;; Make line numbers stand out a bit\n(set-face-background 'line-number-current-line nil)\n(set-face-foreground 'line-number-current-line \"yellow\")\n\n;; Optional: Customize line number format\n(setq display-line-numbers-width 4) ; Reserve space for line numbers\n(setq display-line-numbers-widen t) ; Expand line number space as needed\n\n;; Disable line numbers for some modes where they don't make sense\n(dolist (mode '(term-mode-hook\n shell-mode-hook\n treemacs-mode-hook\n eshell-mode-hook))\n (add-hook mode (lambda () (display-line-numbers-mode 0))))\n\n;; Project management\n(use-package projectile\n :config\n (projectile-mode +1)\n :bind-keymap (\"C-c p\" . projectile-command-map))\n\n;; File tree with treemacs\n(use-package treemacs\n :bind\n (:map global-map\n (\"C-c t\" . treemacs))\n :config\n (treemacs-follow-mode t)\n (treemacs-project-follow-mode t))\n\n(use-package treemacs-projectile\n :after (treemacs projectile))\n\n;; LSP Mode base configuration\n(use-package lsp-mode\n :init\n (setq lsp-keymap-prefix \"C-c l\"\n lsp-enable-symbol-highlighting t\n lsp-enable-snippet t\n lsp-enable-indentation t)\n :hook\n ((typescript-mode . lsp)\n (js2-mode . lsp)\n (web-mode . lsp)\n (python-mode . lsp)\n (java-mode . lsp)\n (c++-mode . lsp)\n (c-mode . lsp)\n (csharp-mode . lsp))\n :commands lsp)\n\n;; LSP UI enhancements\n(use-package lsp-ui\n :commands lsp-ui-mode\n :config\n (setq lsp-ui-doc-enable t\n lsp-ui-doc-position 'at-point))\n\n(use-package typescript-mode\n :mode (\"\\\\.ts\\\\'\")\n :hook (typescript-mode . (lambda () (setq typescript-indent-level 2))))\n(use-package web-mode\n :mode ((\"\\\\.tsx\\\\'\" . web-mode)\n (\"\\\\.jsx\\\\'\" . web-mode))\n :config\n (setq web-mode-markup-indent-offset 2\n web-mode-css-indent-offset 2\n web-mode-code-indent-offset 2)\n web-mode-json-indent-offset 2)\n\n;; JavaScript better syntax highlighting\n(use-package js2-mode\n :mode \"\\\\.js\\\\'\")\n(setq js-indent-level 2)\n\n(use-package csharp-mode\n :config\n (add-to-list 'auto-mode-alist '(\"\\\\.cs\\\\'\" . csharp-mode)))\n\n(use-package ccls\n :hook ((c-mode c++-mode) . (lambda () (require 'ccls) (lsp))))\n\n(use-package lsp-java\n :config (add-hook 'java-mode-hook 'lsp))\n\n(use-package kotlin-mode)\n\n(use-package python-mode\n :hook (python-mode . (lambda ()\n (require 'lsp-pyright)\n (lsp))))\n(use-package lsp-pyright\n :ensure t)\n\n(use-package markdown-mode\n :mode ((\"README\\\\.md\\\\'\" . gfm-mode)\n (\"\\\\.md\\\\'\" . markdown-mode)\n (\"\\\\.mdx\\\\'\" . markdown-mode))\n :init (setq markdown-command \"multimarkdown\"))\n\n(use-package git-gutter\n :config\n (global-git-gutter-mode +1))\n\n(use-package hl-todo\n :config\n (setq hl-todo-keyword-faces\n '((\"TODO\" . \"#FF0000\")\n (\"FIXME\" . \"#FF0000\")\n (\"DEBUG\" . \"#A020F0\")\n (\"GOTCHA\" . \"#FF4500\")\n (\"STUB\" . \"#1E90FF\")))\n (global-hl-todo-mode))\n\n(use-package elcord)\n (elcord-mode)\n\n;; Redirect backup files\n(setq backup-directory-alist `((\".\" . \"~/.config/emacs/backups\")))\n\n;; Redirect auto-save files\n(setq auto-save-file-name-transforms `((\".*\" \"~/.config/emacs/auto-saves/\" t)))\n\n(setq backup-by-copying t)\n\n(custom-set-variables\n ;; custom-set-variables was added by Custom.\n ;; If you edit it by hand, you could mess it up, so be careful.\n ;; Your init file should contain only one such instance.\n ;; If there is more than one, they won't work right.\n '(package-selected-packages\n '(hl-todo format-all flycheck git-gutter lsp-pyright python-mode kotlin-mode lsp-java ccls js2-mode web-mode typescript-mode lsp-ui lsp-mode treemacs-projectile treemacs projectile eterm-256color)))\n(custom-set-faces\n ;; custom-set-faces was added by Custom.\n ;; If you edit it by hand, you could mess it up, so be careful.\n ;; Your init file should contain only one such instance.\n ;; If there is more than one, they won't work right.\n )\n\n(setq-default indent-tabs-mode nil)\n(setq-default tab-width 2)\n(setq indent-line-function 'insert-tab)\n\n(add-to-list 'custom-theme-load-path \"/home/naomi/.config/emacs/themes/\")\n(load-theme 'sakura-dreams t)\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::81",
"metadata": {
"title": "Development Environment"
},
"title": "4.2.1. Config",
"url": "https://docs.nhcarrigan.com/dev/environment#421-config"
},
{
"content": "4.2.2. Theme\n\n```lisp frame=\"code\" title=\"~/.config/emacs/themes/sakura-dreams-theme.el\"\n(deftheme sakura-dreams\n \"A light pink Emacs theme inspired by cherry blossoms.\")\n\n;; Set frame transparency\n(set-frame-parameter nil 'alpha-background 0)\n(add-to-list 'default-frame-alist '(alpha-background . 0))\n\n(let ((class '((class color) (min-colors 89)))\n ;; Core colors\n (bg \"unspecified-bg\")\n (bg-light \"#fff0f5\")\n (bg-lighter \"#ffeef3\")\n (fg \"#7a2048\")\n (fg-dark \"#5a1737\")\n (selection-bg \"#ffd6e0\")\n (selection-fg \"#7a2048\")\n (cursor \"#ff69b4\")\n\n ;; ANSI color palette\n (black \"#fff0f5\")\n (red \"#ff1493\")\n (green \"#ff69b4\")\n (yellow \"#ffb6c1\")\n (blue \"#db7093\")\n (magenta \"#ff85a2\")\n (cyan \"#ffafc5\")\n (white \"#ffd1dc\")\n\n ;; Bright ANSI colors\n (bright-black \"#ffe4e8\")\n (bright-red \"#ff0066\")\n (bright-green \"#ff77a8\")\n (bright-yellow \"#ffa6c9\")\n (bright-blue \"#f08080\")\n (bright-magenta \"#ff9aac\")\n (bright-cyan \"#ffc0cb\")\n (bright-white \"#fff5f7\"))\n\n (custom-theme-set-faces\n 'sakura-dreams\n\n ;; Basic faces\n `(default ((,class (:foreground ,fg :background ,bg))))\n `(cursor ((,class (:background ,cursor))))\n `(region ((,class (:background ,selection-bg :foreground ,selection-fg))))\n `(highlight ((,class (:background ,selection-bg))))\n `(hl-line ((,class (:background ,bg-light))))\n `(fringe ((,class (:background ,bg))))\n `(vertical-border ((,class (:foreground ,bg-lighter))))\n\n ;; Font-lock faces\n `(font-lock-builtin-face ((,class (:foreground ,magenta))))\n `(font-lock-comment-face ((,class (:foreground ,bright-blue :italic t))))\n `(font-lock-constant-face ((,class (:foreground ,cyan))))\n `(font-lock-doc-face ((,class (:foreground ,green))))\n `(font-lock-function-name-face ((,class (:foreground ,blue))))\n `(font-lock-keyword-face ((,class (:foreground ,magenta))))\n `(font-lock-string-face ((,class (:foreground ,green))))\n `(font-lock-type-face ((,class (:foreground ,yellow))))\n `(font-lock-variable-name-face ((,class (:foreground ,fg))))\n `(font-lock-warning-face ((,class (:foreground ,red))))\n\n ;; Mode line\n `(mode-line ((,class (:background ,bright-cyan :foreground ,fg))))\n `(mode-line-inactive ((,class (:background ,bg-light :foreground ,bright-blue))))\n\n ;; Search\n `(isearch ((,class (:background ,yellow :foreground ,fg-dark))))\n `(lazy-highlight ((,class (:background ,bright-yellow :foreground ,fg-dark))))\n\n ;; Others\n `(minibuffer-prompt ((,class (:foreground ,blue))))\n `(link ((,class (:foreground ,bright-magenta :underline t))))\n `(show-paren-match ((,class (:background ,selection-bg :foreground ,bright-red))))\n `(show-paren-mismatch ((,class (:background ,red :foreground ,white))))))\n\n;;;###autoload\n(when load-file-name\n (add-to-list 'custom-theme-load-path\n (file-name-as-directory (file-name-directory load-file-name))))\n\n(provide-theme 'sakura-dreams)\n```",
"file": "src/content/docs/dev/environment.md",
"id": "src/content/docs/dev/environment.md::82",
"metadata": {
"title": "Development Environment"
},
"title": "4.2.2. Theme",
"url": "https://docs.nhcarrigan.com/dev/environment#422-theme"
},
{
"content": "",
"file": "src/content/docs/dev/hall-of-fame.md",
"id": "src/content/docs/dev/hall-of-fame.md::0",
"metadata": {
"title": "Security Hall of Fame"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/dev/hall-of-fame#"
},
{
"content": "1. Purpose\nThis document recognises the folks who have reported security vulnerabilities in our Applications pursuant to our [security policy](/security).",
"file": "src/content/docs/dev/hall-of-fame.md",
"id": "src/content/docs/dev/hall-of-fame.md::1",
"metadata": {
"title": "Security Hall of Fame"
},
"title": "1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/hall-of-fame#1-purpose"
},
{
"content": "2. Recognitions\n\nWe extend our thanks to the following people for their efforts in keeping our users secure:",
"file": "src/content/docs/dev/hall-of-fame.md",
"id": "src/content/docs/dev/hall-of-fame.md::2",
"metadata": {
"title": "Security Hall of Fame"
},
"title": "2. Recognitions",
"url": "https://docs.nhcarrigan.com/dev/hall-of-fame#2-recognitions"
},
{
"content": "We use very specific labels to help categorise our issues. This page explains what each label means.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::0",
"metadata": {
"title": "Labels"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/dev/labels#"
},
{
"content": "1. Contribution Labels\n\nThese are the most important. These labels indicate who is encouraged to make a pull request to resolve the issue.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::1",
"metadata": {
"title": "Labels"
},
"title": "1. Contribution Labels",
"url": "https://docs.nhcarrigan.com/dev/labels#1-contribution-labels"
},
{
"content": "1.1. `contribute: good first issue`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::2",
"metadata": {
"title": "Labels"
},
"title": "1.1. `contribute: good first issue`",
"url": "https://docs.nhcarrigan.com/dev/labels#11-`contribute:-good-first-issue`"
},
{
"content": "1.1.1. Purpose\n\nIdentifies issues suitable for contributors who are new to the project.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::3",
"metadata": {
"title": "Labels"
},
"title": "1.1.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#111-purpose"
},
{
"content": "1.1.2. Characteristics\n\nDoes not require prior knowledge of the codebase. Issues with this label should include a detailed description of the implementation process.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::4",
"metadata": {
"title": "Labels"
},
"title": "1.1.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#112-characteristics"
},
{
"content": "1.1.3. Expectations\n\nContributors are responsible for ensuring their work complies with the project's licensing terms and contribution guidelines.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::5",
"metadata": {
"title": "Labels"
},
"title": "1.1.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#113-expectations"
},
{
"content": "1.2. `contribute: help wanted`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::6",
"metadata": {
"title": "Labels"
},
"title": "1.2. `contribute: help wanted`",
"url": "https://docs.nhcarrigan.com/dev/labels#12-`contribute:-help-wanted`"
},
{
"content": "1.2.1. Purpose\n\nIndicates issues open for contribution from any interested party.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::7",
"metadata": {
"title": "Labels"
},
"title": "1.2.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#121-purpose"
},
{
"content": "1.2.2. Characteristics\n\nTypically assumes prior experience with the codebase. As such, issues may not include a detailed implementation description.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::8",
"metadata": {
"title": "Labels"
},
"title": "1.2.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#122-characteristics"
},
{
"content": "1.2.3. Expectations\n\nContributors should review and adhere to the project's contribution guidelines and code of conduct before submitting work on these issues.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::9",
"metadata": {
"title": "Labels"
},
"title": "1.2.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#123-expectations"
},
{
"content": "1.3. `contribute: staff only`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::10",
"metadata": {
"title": "Labels"
},
"title": "1.3. `contribute: staff only`",
"url": "https://docs.nhcarrigan.com/dev/labels#13-`contribute:-staff-only`"
},
{
"content": "1.3.1. Purpose\n\nDesignates issues restricted to project maintainers or staff due to specific access requirements.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::11",
"metadata": {
"title": "Labels"
},
"title": "1.3.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#131-purpose"
},
{
"content": "1.3.2. Characteristics\n\nRequires access to production infrastructure for proper testing and implementation. As such, limited to authorised project maintainers and staff.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::12",
"metadata": {
"title": "Labels"
},
"title": "1.3.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#132-characteristics"
},
{
"content": "1.3.3. Expectations\n\nStaff members working on these issues must adhere to all relevant confidentiality agreements, data protection policies, and internal security protocols.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::13",
"metadata": {
"title": "Labels"
},
"title": "1.3.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#133-expectations"
},
{
"content": "1.4 Disclaimer\n\nLabels are assigned based on the project maintainers' best judgment but may not guarantee the exact level of difficulty or access requirements for every contributor. Contributors should use their discretion and communicate with project maintainers if they have any doubts about their ability to address an issue or comply with any associated legal requirements.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::14",
"metadata": {
"title": "Labels"
},
"title": "1.4 Disclaimer",
"url": "https://docs.nhcarrigan.com/dev/labels#14-disclaimer"
},
{
"content": "2. Aspect Labels\n\nThese labels indicate the scope of the work required to resolve the issue.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::15",
"metadata": {
"title": "Labels"
},
"title": "2. Aspect Labels",
"url": "https://docs.nhcarrigan.com/dev/labels#2-aspect-labels"
},
{
"content": "2.1. `aspect: code`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::16",
"metadata": {
"title": "Labels"
},
"title": "2.1. `aspect: code`",
"url": "https://docs.nhcarrigan.com/dev/labels#21-`aspect:-code`"
},
{
"content": "2.1.1. Purpose\n\nIdentifies issues requiring changes to the project's codebase.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::17",
"metadata": {
"title": "Labels"
},
"title": "2.1.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#211-purpose"
},
{
"content": "2.1.2. Characteristics\n\nInvolves direct modification to the project's source code. Familiarity with the languages and libraries used is expected.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::18",
"metadata": {
"title": "Labels"
},
"title": "2.1.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#212-characteristics"
},
{
"content": "2.1.3. Expectations\n\nContributors must ensure their code changes comply with the project's coding standards, license terms, and any applicable software patents or copyrights.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::19",
"metadata": {
"title": "Labels"
},
"title": "2.1.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#213-expectations"
},
{
"content": "2.2. `aspect: dx`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::20",
"metadata": {
"title": "Labels"
},
"title": "2.2. `aspect: dx`",
"url": "https://docs.nhcarrigan.com/dev/labels#22-`aspect:-dx`"
},
{
"content": "2.2.1. Purpose\n\nIndicates issues related to improving the project's tooling and development workflow.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::21",
"metadata": {
"title": "Labels"
},
"title": "2.2.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#221-purpose"
},
{
"content": "2.2.2. Characteristics\n\nMay include changes to automated tests, development dependencies, build processes, etc. Understanding of the development workflows is expected.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::22",
"metadata": {
"title": "Labels"
},
"title": "2.2.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#222-characteristics"
},
{
"content": "2.2.3. Expectations\n\nChanges to tooling or dependencies must be compatible with the project's overall licensing strategy and not introduce conflicts with existing terms.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::23",
"metadata": {
"title": "Labels"
},
"title": "2.2.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#223-expectations"
},
{
"content": "2.3. `aspect: interface`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::24",
"metadata": {
"title": "Labels"
},
"title": "2.3. `aspect: interface`",
"url": "https://docs.nhcarrigan.com/dev/labels#23-`aspect:-interface`"
},
{
"content": "2.3.1. Purpose\n\nDesignates issues that affect the end-user's experience with the project.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::25",
"metadata": {
"title": "Labels"
},
"title": "2.3.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#231-purpose"
},
{
"content": "2.3.2. Characteristics\n\nMay require changes in the code, particularly in front-end components. Can include visual modifications like CSS changes or image updates. Understanding of the end-user experience expected.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::26",
"metadata": {
"title": "Labels"
},
"title": "2.3.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#232-characteristics"
},
{
"content": "2.3.3. Expectations\n\nContributors must ensure they have the necessary rights to any visual assets introduced or modified. Changes should comply with accessibility standards and regulations where applicable.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::27",
"metadata": {
"title": "Labels"
},
"title": "2.3.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#233-expectations"
},
{
"content": "2.4. `aspect: text`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::28",
"metadata": {
"title": "Labels"
},
"title": "2.4. `aspect: text`",
"url": "https://docs.nhcarrigan.com/dev/labels#24-`aspect:-text`"
},
{
"content": "2.4.1. Purpose\n\nIdentifies issues related to the project's documentation.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::29",
"metadata": {
"title": "Labels"
},
"title": "2.4.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#241-purpose"
},
{
"content": "2.4.2. Characteristics\n\nTypically does not require code changes. Proficiency in technical writing is a must.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::30",
"metadata": {
"title": "Labels"
},
"title": "2.4.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#242-characteristics"
},
{
"content": "2.4.3. Expectations\n\nContributors must ensure the accuracy of the information provided in documentation updates. Documentation changes should adhere to any applicable style guides and licensing terms.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::31",
"metadata": {
"title": "Labels"
},
"title": "2.4.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#243-expectations"
},
{
"content": "2.5 Disclaimer\n\nAspect labels are assigned based on the primary focus of the issue but may not encompass all potential areas of impact. Contributors are encouraged to consider potential cross-aspect effects of their work and discuss these with project maintainers when in doubt. The project maintainers reserve the right to reassign aspect labels or request additional changes if the submitted work does not align with the intended scope of the issue.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::32",
"metadata": {
"title": "Labels"
},
"title": "2.5 Disclaimer",
"url": "https://docs.nhcarrigan.com/dev/labels#25-disclaimer"
},
{
"content": "3. Goal Labels\n\nThese labels indicate the primary objective of the issue, reflecting our project's modular approach. They help contributors understand the nature and scope of the changes they'll be making.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::33",
"metadata": {
"title": "Labels"
},
"title": "3. Goal Labels",
"url": "https://docs.nhcarrigan.com/dev/labels#3-goal-labels"
},
{
"content": "3.1. `goal: addition`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::34",
"metadata": {
"title": "Labels"
},
"title": "3.1. `goal: addition`",
"url": "https://docs.nhcarrigan.com/dev/labels#31-`goal:-addition`"
},
{
"content": "3.1.1. Purpose\n\nIdentifies issues that involve adding a new feature to the project.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::35",
"metadata": {
"title": "Labels"
},
"title": "3.1.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#311-purpose"
},
{
"content": "3.1.2. Characteristics\n\nTypically involves creating new code files. Understanding of how different modules in the project integrate with each other is expected.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::36",
"metadata": {
"title": "Labels"
},
"title": "3.1.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#312-characteristics"
},
{
"content": "3.1.3. Expectations\n\nContributors must ensure that new features do not infringe on existing patents or copyrights. New code should be compatible with the project's existing license. If introducing third-party libraries or dependencies, their licenses must be compatible with the project's license.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::37",
"metadata": {
"title": "Labels"
},
"title": "3.1.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#313-expectations"
},
{
"content": "3.2. `goal: fix`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::38",
"metadata": {
"title": "Labels"
},
"title": "3.2. `goal: fix`",
"url": "https://docs.nhcarrigan.com/dev/labels#32-`goal:-fix`"
},
{
"content": "3.2.1. Purpose\n\nDesignates issues aimed at fixing bugs in the project.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::39",
"metadata": {
"title": "Labels"
},
"title": "3.2.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#321-purpose"
},
{
"content": "3.2.2. Characteristics\n\nTypically involves editing code within existing files. Scope should be kept to the specific bug - separate contributions should be made for unrelated bugs.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::40",
"metadata": {
"title": "Labels"
},
"title": "3.2.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#322-characteristics"
},
{
"content": "3.2.3. Expectations\n\nBug fixes should not introduce new legal issues or licensing conflicts. Contributors should document the nature of the bug and the fix for future reference and potential legal compliance (e.g., security vulnerabilities).",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::41",
"metadata": {
"title": "Labels"
},
"title": "3.2.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#323-expectations"
},
{
"content": "3.3. `goal: improvement`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::42",
"metadata": {
"title": "Labels"
},
"title": "3.3. `goal: improvement`",
"url": "https://docs.nhcarrigan.com/dev/labels#33-`goal:-improvement`"
},
{
"content": "3.3.1. Purpose\n\nIndicates issues that expand upon or enhance existing features.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::43",
"metadata": {
"title": "Labels"
},
"title": "3.3.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#331-purpose"
},
{
"content": "3.3.2. Characteristics\n\nUsually involves adding code to existing files. Scope should be kept to the existing feature.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::44",
"metadata": {
"title": "Labels"
},
"title": "3.3.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#332-characteristics"
},
{
"content": "3.3.3. Expectations\n\nImprovements should maintain compatibility with existing licenses and legal obligations. If the improvement significantly changes the functionality, consider if additional legal reviews or updates to user agreements are necessary.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::45",
"metadata": {
"title": "Labels"
},
"title": "3.3.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#333-expectations"
},
{
"content": "3.4. Disclaimer\n\nWhile goal labels provide guidance on the nature of the task, the actual work required may vary or expand beyond the initial scope. Contributors are encouraged to communicate with project maintainers if they believe a different approach or additional changes are necessary to achieve the goal. The project maintainers reserve the right to request modifications or additional work to ensure that contributions align with the project's goals, standards, and legal requirements.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::46",
"metadata": {
"title": "Labels"
},
"title": "3.4. Disclaimer",
"url": "https://docs.nhcarrigan.com/dev/labels#34-disclaimer"
},
{
"content": "4. Priority Labels\n\nPriority labels indicate the importance assigned to specific issues by the project maintainers. These labels help guide resource allocation and set expectations for resolution timeframes.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::47",
"metadata": {
"title": "Labels"
},
"title": "4. Priority Labels",
"url": "https://docs.nhcarrigan.com/dev/labels#4-priority-labels"
},
{
"content": "4.1. `priority: critical`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::48",
"metadata": {
"title": "Labels"
},
"title": "4.1. `priority: critical`",
"url": "https://docs.nhcarrigan.com/dev/labels#41-`priority:-critical`"
},
{
"content": "4.1.1. Purpose\n\nIdentifies issues requiring immediate attention due to their severe impact on project usability.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::49",
"metadata": {
"title": "Labels"
},
"title": "4.1.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#411-purpose"
},
{
"content": "4.1.2. Characteristics\n\nRequire urgent resolution to restore project functionality. Experience with the project is a must, to avoid delays from long review processes.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::50",
"metadata": {
"title": "Labels"
},
"title": "4.1.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#412-characteristics"
},
{
"content": "4.1.3. Expectations\n\nMay involve security vulnerabilities or critical bugs that could lead to legal liabilities if not addressed promptly. Resolution of these issues may need to be reported to relevant stakeholders or authorities in certain cases (e.g., data protection regulators for security breaches).",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::51",
"metadata": {
"title": "Labels"
},
"title": "4.1.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#413-expectations"
},
{
"content": "4.2. `priority: high`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::52",
"metadata": {
"title": "Labels"
},
"title": "4.2. `priority: high`",
"url": "https://docs.nhcarrigan.com/dev/labels#42-`priority:-high`"
},
{
"content": "4.2.1. Purpose\n\nDesignates important issues that, while not preventing basic functionality, are impeding further development.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::53",
"metadata": {
"title": "Labels"
},
"title": "4.2.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#421-purpose"
},
{
"content": "4.2.2. Characteristics\n\nNot critical for current project operation but blocking future progress. Require prompt attention to unblock development efforts.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::54",
"metadata": {
"title": "Labels"
},
"title": "4.2.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#422-characteristics"
},
{
"content": "4.2.3. Expectations\n\nMay involve compliance deadlines or contractual obligations that need to be met. Could impact project timelines, potentially affecting agreements with stakeholders or clients.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::55",
"metadata": {
"title": "Labels"
},
"title": "4.2.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#423-expectations"
},
{
"content": "4.3. `priority: medium`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::56",
"metadata": {
"title": "Labels"
},
"title": "4.3. `priority: medium`",
"url": "https://docs.nhcarrigan.com/dev/labels#43-`priority:-medium`"
},
{
"content": "4.3.1. Purpose\n\nIndicates issues that need resolution as soon as possible but are not blocking other development.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::57",
"metadata": {
"title": "Labels"
},
"title": "4.3.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#431-purpose"
},
{
"content": "4.3.2. Characteristics\n\nImportant for project improvement but not critical for current functionality. Should be addressed in a timely manner but with less urgency than high-priority issues.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::58",
"metadata": {
"title": "Labels"
},
"title": "4.3.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#432-characteristics"
},
{
"content": "4.3.3. Expectations\n\nMay involve improvements to user experience or accessibility, which could have legal implications if neglected long-term. Could relate to optimizations that affect performance guarantees or service level agreements.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::59",
"metadata": {
"title": "Labels"
},
"title": "4.3.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#433-expectations"
},
{
"content": "4.4. `priority: low`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::60",
"metadata": {
"title": "Labels"
},
"title": "4.4. `priority: low`",
"url": "https://docs.nhcarrigan.com/dev/labels#44-`priority:-low`"
},
{
"content": "4.4.1. Purpose\n\nRepresents issues that should be resolved but are not considered urgent.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::61",
"metadata": {
"title": "Labels"
},
"title": "4.4.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#441-purpose"
},
{
"content": "4.4.2. Characteristics\n\nDesirable improvements or minor issues that don't significantly impact project functionality.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::62",
"metadata": {
"title": "Labels"
},
"title": "4.4.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#442-characteristics"
},
{
"content": "4.4.3. Expectations\n\nWhile not urgent, neglecting these issues over time could lead to technical debt or gradual degradation of project quality, potentially affecting long-term compliance or user satisfaction.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::63",
"metadata": {
"title": "Labels"
},
"title": "4.4.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#443-expectations"
},
{
"content": "4.5. `priority: none`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::64",
"metadata": {
"title": "Labels"
},
"title": "4.5. `priority: none`",
"url": "https://docs.nhcarrigan.com/dev/labels#45-`priority:-none`"
},
{
"content": "4.5.1. Purpose\n\nIdentifies \"nice-to-have\" issues that are not essential for project functionality or immediate development goals.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::65",
"metadata": {
"title": "Labels"
},
"title": "4.5.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#451-purpose"
},
{
"content": "4.5.2. Characteristics\n\nNot critical enough to dedicate maintainer time for resolution. Often left for community contributors or future consideration.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::66",
"metadata": {
"title": "Labels"
},
"title": "4.5.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#452-characteristics"
},
{
"content": "4.5.3. Expectations\n\nWhile not prioritized, maintainers should periodically review these issues to ensure they haven't become more significant over time, potentially accruing legal or compliance risks.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::67",
"metadata": {
"title": "Labels"
},
"title": "4.5.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#453-expectations"
},
{
"content": "4.6 Disclaimer\n\nPriority labels reflect the project maintainers' current assessment and may be subject to change. The presence of a lower-priority label does not diminish the importance of the issue or the value of contributions addressing it. Contributors should communicate with maintainers if they believe an issue's priority should be reassessed due to new information or changing circumstances.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::68",
"metadata": {
"title": "Labels"
},
"title": "4.6 Disclaimer",
"url": "https://docs.nhcarrigan.com/dev/labels#46-disclaimer"
},
{
"content": "5. Status Labels\n\nStatus labels indicate the current stage of an issue in the project lifecycle. These labels help manage workflow and set expectations for contributors and users.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::69",
"metadata": {
"title": "Labels"
},
"title": "5. Status Labels",
"url": "https://docs.nhcarrigan.com/dev/labels#5-status-labels"
},
{
"content": "5.1. `status: awaiting triage`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::70",
"metadata": {
"title": "Labels"
},
"title": "5.1. `status: awaiting triage`",
"url": "https://docs.nhcarrigan.com/dev/labels#51-`status:-awaiting-triage`"
},
{
"content": "5.1.1. Purpose\n\nIdentifies newly created issues that have not yet been reviewed by the maintainer team.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::71",
"metadata": {
"title": "Labels"
},
"title": "5.1.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#511-purpose"
},
{
"content": "5.1.2. Characteristics\n\nShould be applied to issues when they are opened.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::72",
"metadata": {
"title": "Labels"
},
"title": "5.1.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#512-characteristics"
},
{
"content": "5.1.3. Expectations\n\nContributors should be aware that engaging with these issues is at their own discretion, as the project team has not yet evaluated them. Maintainers should establish a reasonable timeframe for initial triage to manage expectations and potential liability.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::73",
"metadata": {
"title": "Labels"
},
"title": "5.1.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#513-expectations"
},
{
"content": "5.2. `status: blocked`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::74",
"metadata": {
"title": "Labels"
},
"title": "5.2. `status: blocked`",
"url": "https://docs.nhcarrigan.com/dev/labels#52-`status:-blocked`"
},
{
"content": "5.2.1. Purpose\n\nIndicates issues with a planned resolution that depend on the completion of another issue.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::75",
"metadata": {
"title": "Labels"
},
"title": "5.2.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#521-purpose"
},
{
"content": "5.2.2. Characteristics\n\nNot yet ready for work but expected to be addressed in the future.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::76",
"metadata": {
"title": "Labels"
},
"title": "5.2.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#522-characteristics"
},
{
"content": "5.2.3. Expectations\n\nMaintainers should clearly document dependencies to avoid potential conflicts or misunderstandings. Regular review of blocked issues is advisable to prevent indefinite delays that could impact project timelines or contractual obligations.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::77",
"metadata": {
"title": "Labels"
},
"title": "5.2.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#523-expectations"
},
{
"content": "5.3. `status: discarded`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::78",
"metadata": {
"title": "Labels"
},
"title": "5.3. `status: discarded`",
"url": "https://docs.nhcarrigan.com/dev/labels#53-`status:-discarded`"
},
{
"content": "5.3.1. Purpose\n\nDesignates issues that the project team does not intend to resolve.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::79",
"metadata": {
"title": "Labels"
},
"title": "5.3.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#531-purpose"
},
{
"content": "5.3.2. Characteristics\n\nTypically applied to feature requests that don't align with project goals.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::80",
"metadata": {
"title": "Labels"
},
"title": "5.3.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#532-characteristics"
},
{
"content": "5.3.3. Expectations\n\nClearly communicate the rationale for discarding issues to manage user expectations and maintain transparency. Ensure that discarded issues don't conflict with any promised features or contractual obligations.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::81",
"metadata": {
"title": "Labels"
},
"title": "5.3.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#533-expectations"
},
{
"content": "5.4. `status: discontinued`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::82",
"metadata": {
"title": "Labels"
},
"title": "5.4. `status: discontinued`",
"url": "https://docs.nhcarrigan.com/dev/labels#54-`status:-discontinued`"
},
{
"content": "5.4.1. Purpose\n\nApplies to feature requests for projects in maintenance mode.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::83",
"metadata": {
"title": "Labels"
},
"title": "5.4.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#541-purpose"
},
{
"content": "5.4.2. Characteristics\n\nIndicates no new features will be added, but bug fixes and support continue.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::84",
"metadata": {
"title": "Labels"
},
"title": "5.4.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#542-characteristics"
},
{
"content": "5.4.3. Expectations\n\nClearly communicate the project's maintenance status to manage user expectations and potential liability. Ensure that discontinuation doesn't breach any ongoing support agreements or licenses.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::85",
"metadata": {
"title": "Labels"
},
"title": "5.4.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#543-expectations"
},
{
"content": "5.5. `status: label work required`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::86",
"metadata": {
"title": "Labels"
},
"title": "5.5. `status: label work required`",
"url": "https://docs.nhcarrigan.com/dev/labels#55-`status:-label-work-required`"
},
{
"content": "5.5.1. Purpose\n\nIndicates issues that need proper labeling and categorization.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::87",
"metadata": {
"title": "Labels"
},
"title": "5.5.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#551-purpose"
},
{
"content": "5.5.2. Characteristics\n\nMay have ongoing discussions but lack appropriate classification.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::88",
"metadata": {
"title": "Labels"
},
"title": "5.5.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#552-characteristics"
},
{
"content": "5.5.3. Expectations\n\nProper labeling is crucial for efficient project management and may have implications for compliance tracking and reporting. Establish clear guidelines for labeling to ensure consistency and avoid potential misunderstandings.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::89",
"metadata": {
"title": "Labels"
},
"title": "5.5.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#553-expectations"
},
{
"content": "5.6. `status: ready for dev`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::90",
"metadata": {
"title": "Labels"
},
"title": "5.6. `status: ready for dev`",
"url": "https://docs.nhcarrigan.com/dev/labels#56-`status:-ready-for-dev`"
},
{
"content": "5.6.1. Purpose\n\nSignifies issues that are ready for contribution.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::91",
"metadata": {
"title": "Labels"
},
"title": "5.6.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#561-purpose"
},
{
"content": "5.6.2. Characteristics\n\nMay have an assigned contributor who has expressed interest.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::92",
"metadata": {
"title": "Labels"
},
"title": "5.6.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#562-characteristics"
},
{
"content": "5.6.3. Expectations\n\nClearly communicate contribution guidelines and any legal requirements (e.g., Contributor Covenant) to potential contributors. Ensure that collaborative efforts are managed in compliance with project licenses and contributor agreements.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::93",
"metadata": {
"title": "Labels"
},
"title": "5.6.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#563-expectations"
},
{
"content": "5.7. `status: ticket work required`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::94",
"metadata": {
"title": "Labels"
},
"title": "5.7. `status: ticket work required`",
"url": "https://docs.nhcarrigan.com/dev/labels#57-`status:-ticket-work-required`"
},
{
"content": "5.7.1. Purpose\n\nIndicates issues lacking sufficient information for proper triage.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::95",
"metadata": {
"title": "Labels"
},
"title": "5.7.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#571-purpose"
},
{
"content": "5.7.2. Characteristics\n\nOften paired with Conversation Labels for further clarification.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::96",
"metadata": {
"title": "Labels"
},
"title": "5.7.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#572-characteristics"
},
{
"content": "5.7.3. Expectations\n\nEstablish clear guidelines for required information to avoid potential misunderstandings or misdirected efforts. Be mindful of data privacy when requesting additional information from issue reporters.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::97",
"metadata": {
"title": "Labels"
},
"title": "5.7.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#573-expectations"
},
{
"content": "5.8. Disclaimer\n\nStatus labels reflect the current assessment of the project team and may change as circumstances evolve. While the project team strives to maintain accurate status labels, contributors and users should communicate with maintainers if they notice any discrepancies or have questions about an issue's status.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::98",
"metadata": {
"title": "Labels"
},
"title": "5.8. Disclaimer",
"url": "https://docs.nhcarrigan.com/dev/labels#58-disclaimer"
},
{
"content": "6. Conversation Labels\n\nConversation labels indicate that an issue has received initial maintainer attention but requires further discussion or information before proceeding. These labels help manage communication and ensure all necessary information is gathered before taking action.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::99",
"metadata": {
"title": "Labels"
},
"title": "6. Conversation Labels",
"url": "https://docs.nhcarrigan.com/dev/labels#6-conversation-labels"
},
{
"content": "6.1. `talk: discussion`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::100",
"metadata": {
"title": "Labels"
},
"title": "6.1. `talk: discussion`",
"url": "https://docs.nhcarrigan.com/dev/labels#61-`talk:-discussion`"
},
{
"content": "6.1.1. Purpose\n\nIdentifies issues that are under active discussion but have not yet been accepted for resolution.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::101",
"metadata": {
"title": "Labels"
},
"title": "6.1.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#611-purpose"
},
{
"content": "6.1.2. Characteristics\n\nOngoing dialogue between maintainers, contributors, and/or users. May involve debates about feature requests, implementation strategies, or project direction.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::102",
"metadata": {
"title": "Labels"
},
"title": "6.1.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#612-characteristics"
},
{
"content": "6.1.3. Expectations\n\nEnsure discussions remain constructive and adhere to the project's code of conduct. Be cautious about making commitments or promises during discussions that could create legal obligations. Document key decisions and rationales to maintain transparency and provide a record for future reference.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::103",
"metadata": {
"title": "Labels"
},
"title": "6.1.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#613-expectations"
},
{
"content": "6.2. `talk: question`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::104",
"metadata": {
"title": "Labels"
},
"title": "6.2. `talk: question`",
"url": "https://docs.nhcarrigan.com/dev/labels#62-`talk:-question`"
},
{
"content": "6.2.1. Purpose\n\nIndicates issues waiting on additional information from the author for proper triage.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::105",
"metadata": {
"title": "Labels"
},
"title": "6.2.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#621-purpose"
},
{
"content": "6.2.2. Characteristics\n\nRequires clarification or more details from the issue creator. Cannot proceed with triage or resolution until the requested information is provided.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::106",
"metadata": {
"title": "Labels"
},
"title": "6.2.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#622-characteristics"
},
{
"content": "6.2.3. Expectations\n\nClearly communicate what information is needed and why it's necessary. Be mindful of data privacy when requesting additional information. Establish and communicate timeframes for expected responses to manage the issue lifecycle efficiently.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::107",
"metadata": {
"title": "Labels"
},
"title": "6.2.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#623-expectations"
},
{
"content": "6.3. Disclaimer\n\nConversation labels indicate ongoing dialogue and do not guarantee that an issue will be implemented or resolved in a specific manner. Participants should understand that project priorities and decisions may change based on new information or project direction.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::108",
"metadata": {
"title": "Labels"
},
"title": "6.3. Disclaimer",
"url": "https://docs.nhcarrigan.com/dev/labels#63-disclaimer"
},
{
"content": "7. Pull Request Labels\n\nPull Request (PR) labels are used to indicate the current status of pull requests and guide contributors through the review and merge process.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::109",
"metadata": {
"title": "Labels"
},
"title": "7. Pull Request Labels",
"url": "https://docs.nhcarrigan.com/dev/labels#7-pull-request-labels"
},
{
"content": "7.1. `pull: merge conflict`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::110",
"metadata": {
"title": "Labels"
},
"title": "7.1. `pull: merge conflict`",
"url": "https://docs.nhcarrigan.com/dev/labels#71-`pull:-merge-conflict`"
},
{
"content": "7.1.1. Purpose\n\nIndicates that the pull request has conflicts with the target branch.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::111",
"metadata": {
"title": "Labels"
},
"title": "7.1.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#711-purpose"
},
{
"content": "7.1.2. Characteristics\n\nConflicts need to be resolved before the PR can be reviewed or merged. May require action from the original contributor or project maintainers.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::112",
"metadata": {
"title": "Labels"
},
"title": "7.1.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#712-characteristics"
},
{
"content": "7.1.3. Expectations\n\nClearly communicate the responsibility for resolving conflicts (e.g., whether it's the contributor's or maintainer's role). Ensure that conflict resolution doesn't introduce unintended changes or legal issues (e.g., license conflicts).",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::113",
"metadata": {
"title": "Labels"
},
"title": "7.1.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#713-expectations"
},
{
"content": "7.2. `pull: ready for review`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::114",
"metadata": {
"title": "Labels"
},
"title": "7.2. `pull: ready for review`",
"url": "https://docs.nhcarrigan.com/dev/labels#72-`pull:-ready-for-review`"
},
{
"content": "7.2.1. Purpose\n\nSignifies that the pull request is not in draft mode and is awaiting maintainer review.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::115",
"metadata": {
"title": "Labels"
},
"title": "7.2.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#721-purpose"
},
{
"content": "7.2.2. Characteristics\n\nPR has been submitted as complete and ready for evaluation. Maintainers should prioritize reviewing these PRs.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::116",
"metadata": {
"title": "Labels"
},
"title": "7.2.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#722-characteristics"
},
{
"content": "7.2.3. Expectations\n\nEnsure contributors understand that \"ready for review\" doesn't guarantee acceptance or merging. Maintain clear review criteria and communicate them to contributors.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::117",
"metadata": {
"title": "Labels"
},
"title": "7.2.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#723-expectations"
},
{
"content": "7.3. `pull: requires update`",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::118",
"metadata": {
"title": "Labels"
},
"title": "7.3. `pull: requires update`",
"url": "https://docs.nhcarrigan.com/dev/labels#73-`pull:-requires-update`"
},
{
"content": "7.3.1. Purpose\n\nIndicates that the maintainer team has requested changes to the pull request.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::119",
"metadata": {
"title": "Labels"
},
"title": "7.3.1. Purpose",
"url": "https://docs.nhcarrigan.com/dev/labels#731-purpose"
},
{
"content": "7.3.2. Characteristics\n\nFeedback has been provided, and updates are needed before further review or merging. Requires action from the contributor to address the requested changes.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::120",
"metadata": {
"title": "Labels"
},
"title": "7.3.2. Characteristics",
"url": "https://docs.nhcarrigan.com/dev/labels#732-characteristics"
},
{
"content": "7.3.3. Expectations\n\nClearly document requested changes to maintain transparency and avoid misunderstandings. Consider setting timeframes for updates to manage the PR lifecycle effectively.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::121",
"metadata": {
"title": "Labels"
},
"title": "7.3.3. Expectations",
"url": "https://docs.nhcarrigan.com/dev/labels#733-expectations"
},
{
"content": "7.4. Disclaimer\n\nThe presence of these labels does not guarantee that a pull request will be merged. All contributions must still meet the project's quality standards, guidelines, and legal requirements.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::122",
"metadata": {
"title": "Labels"
},
"title": "7.4. Disclaimer",
"url": "https://docs.nhcarrigan.com/dev/labels#74-disclaimer"
},
{
"content": "8. Continuous Improvement\n\nWe encourage all project participants to provide feedback on our labeling system. If you have suggestions for improvements or notice any inconsistencies, please reach out to us in our [forums](https://forum.nhcarrigan.com).",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::123",
"metadata": {
"title": "Labels"
},
"title": "8. Continuous Improvement",
"url": "https://docs.nhcarrigan.com/dev/labels#8-continuous-improvement"
},
{
"content": "9. Legal Notice\n\nThis labels documentation is provided for informational purposes and to facilitate project management. It does not constitute a legal agreement. All contributions to the project must comply with the project's license, contributor agreement (if applicable), and relevant laws and regulations.\n\nBy using these labels and participating in the project, you agree to abide by the project's code of conduct and contribution guidelines.",
"file": "src/content/docs/dev/labels.md",
"id": "src/content/docs/dev/labels.md::124",
"metadata": {
"title": "Labels"
},
"title": "9. Legal Notice",
"url": "https://docs.nhcarrigan.com/dev/labels#9-legal-notice"
},
{
"content": "This document outlines how we set up our remote servers for running projects.",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::0",
"metadata": {
"title": "Server Setup"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/dev/servers#"
},
{
"content": "1. Provision a Server\n\nWe use DigitalOcean as our provider. Regardless of your choice, provision a new VPS using the **latest Ubuntu LTS version**. Add your `ssh` key AND Naomi's `ssh` key in the setup process.",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::1",
"metadata": {
"title": "Server Setup"
},
"title": "1. Provision a Server",
"url": "https://docs.nhcarrigan.com/dev/servers#1-provision-a-server"
},
{
"content": "2. Set Up User\n\nYou should never run applications on root. SSH into the new VPS to prepare your user.",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::2",
"metadata": {
"title": "Server Setup"
},
"title": "2. Set Up User",
"url": "https://docs.nhcarrigan.com/dev/servers#2-set-up-user"
},
{
"content": "2.1. Creating the User\n\nYou'll need to set a password for the `root` account first.\n\n```bash\npasswd\n```\n\nOnce you have set a password, ensure that you have provided it to Naomi to store in the vault.\n\nCreate an `nhcarrigan` user for our organisation.\n\n```bash\nadduser nhcarrigan\n```\n\nSet a **different** password, and provide that to Naomi as well. For all of the user information, use the default blank values.\n\nAdd the new user to the sudoers file.\n\n```bash\nusermod -aG sudo nhcarrigan\n```\n\nThen sync the SSH keys so we can authenticate as that user.\n\n```bash\nrsync --archive --chown=nhcarrigan:nhcarrigan ~/.ssh /home/nhcarrigan\n```\n\nWhile you are there, set the timezone for the server to our business' local timezone.\n\n```bash\nsudo timedatectl set-timezone America/Los_Angeles\n```",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::3",
"metadata": {
"title": "Server Setup"
},
"title": "2.1. Creating the User",
"url": "https://docs.nhcarrigan.com/dev/servers#21-creating-the-user"
},
{
"content": "3. Preparing For Web Requests\n\nTo prepare the server to receive web requests, you'll need to follow a few steps.",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::4",
"metadata": {
"title": "Server Setup"
},
"title": "3. Preparing For Web Requests",
"url": "https://docs.nhcarrigan.com/dev/servers#3-preparing-for-web-requests"
},
{
"content": "3.1. SSL Certificate\n\n:::note\nIf the Firewall has been set up, you'll need to temporarily allow port 80 for the certificate to generate.\n:::\n\nWe use LetsEncrypt to provision our SSL certificates. If it is not installed, install it with:\n\n```bash\nsudo snap install --classic certbot\n```\n\nThen link the snap to our `usr` directory.\n\n```bash\nsudo ln -s /snap/bin/certbot /usr/bin/certbot\n```\n\nGenerate a certificate with:\n\n```bash\nsudo certbot certonly --standalone\n```\n\nAnd allow applications to read it:\n\n```bash\nsudo chmod -R a+rwx /etc/letsencrypt\n```\n\nWhen you need to renew the certificate:\n\n```bash\nsudo certbot renew\n```",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::5",
"metadata": {
"title": "Server Setup"
},
"title": "3.1. SSL Certificate",
"url": "https://docs.nhcarrigan.com/dev/servers#31-ssl-certificate"
},
{
"content": "3.2. NGINX\n\nAll requests should be routed through NGINX. At no point should an application run directly on ports 80 or 443.\n\nInstall NGINX:\n\n```bash\nsudo apt-get install nginx\n```\n\nEdit the configuration file:\n\n```bash\nsudo emacs /etc/nginx/conf.d/server.conf\n```\n\nUse this template to set up a reverse proxy on the standard HTTPS port 443:\n\n```nginx\nserver {\n listen 443 ssl;\n server_name subdomain.domain.tld;\n ssl_certificate /etc/letsencrypt/live/subdomain.domain.tld/fullchain.pem;\n ssl_certificate_key /etc/letsencrypt/live/subdomain.domain.tld/privkey.pem;\n\n location / {\n proxy_set_header Host $host;\n proxy_pass https://127.0.0.1:port;\n proxy_redirect off;\n }\n}\n```\n\nValidate that the config is correct with:\n\n```bash\nsudo nginx -t\n```\n\nIf so, restart NGINX to apply the changes:\n\n```bash\nsudo systemctl restart nginx\n```",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::6",
"metadata": {
"title": "Server Setup"
},
"title": "3.2. NGINX",
"url": "https://docs.nhcarrigan.com/dev/servers#32-nginx"
},
{
"content": "4. Securing the Server\n\nWe have a minimum level of security that is required on ALL of our servers. This section should not be treated as the best effort, but as the minimal requirements to comply with our policies.",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::7",
"metadata": {
"title": "Server Setup"
},
"title": "4. Securing the Server",
"url": "https://docs.nhcarrigan.com/dev/servers#4-securing-the-server"
},
{
"content": "4.1. Firewall\n\nWe use `ufw` as our firewall. First, enable the SSH port.\n\n```bash\nsudo ufw allow \"OpenSSH\"\n```\n\nThen, allow the standard HTTPS port and **deny** the standard HTTP port.\n\n```bash\nsudo ufw deny http\nsudo ufw allow https\n```\n\nEnable the firewall. You may get dropped from the SSH connection.\n\n```bash\nsudo ufw enable\n```",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::8",
"metadata": {
"title": "Server Setup"
},
"title": "4.1. Firewall",
"url": "https://docs.nhcarrigan.com/dev/servers#41-firewall"
},
{
"content": "4.2. Fail2Ban\n\nWe also use Fail2Ban to block IP addresses which fail to make requests too often.\n\nInstall the tool:\n\n```bash\nsudo apt-get install fail2ban\n```\n\nConfigure the NGINX jail in `/etc/fail2ban/jail.d/nginx-auth.conf`:\n\n```ini\n[nginx-auth]\nenabled = true\nfilter = nginx-auth\nlogpath = /var/log/nginx/access.log\nmaxretry = 3\nfindtime = 86400\nbantime = 86400\n```\n\nConfigure the NGINX filter in `/etc/fail2ban/filter.d/nginx-auth.conf`:\n\n```ini\n[Definition]\nfailregex = ^<HOST> - .* \\[.*\\] \".*\" (4\\d{2}) .*$\n```\n\nBecause we use Cloudflare, you'll need to grab the original IP for all requests. Start by creating a file to store Cloudflare's IPs.\n\n```bash\nsudo touch /etc/nginx/cloudflare_ips.conf\n```\n\nThen create your script:\n\n```bash\nnano ~/update_cf_ips.sh\n```\n\n```bash\n#!/bin/bash",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::9",
"metadata": {
"title": "Server Setup"
},
"title": "4.2. Fail2Ban",
"url": "https://docs.nhcarrigan.com/dev/servers#42-fail2ban"
},
{
"content": "Create a temporary file\ntemp_file=$(mktemp)",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::10",
"metadata": {
"title": "Server Setup"
},
"title": "Create a temporary file",
"url": "https://docs.nhcarrigan.com/dev/servers#create-a-temporary-file"
},
{
"content": "Download IPv4 ranges and format each line\ncurl -s https://www.cloudflare.com/ips-v4 | while read ip; do\n echo \"set_real_ip_from $ip;\" >> \"$temp_file\"\ndone",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::11",
"metadata": {
"title": "Server Setup"
},
"title": "Download IPv4 ranges and format each line",
"url": "https://docs.nhcarrigan.com/dev/servers#download-ipv4-ranges-and-format-each-line"
},
{
"content": "Download IPv6 ranges and format each line\ncurl -s https://www.cloudflare.com/ips-v6 | while read ip; do\n echo \"set_real_ip_from $ip;\" >> \"$temp_file\"\ndone",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::12",
"metadata": {
"title": "Server Setup"
},
"title": "Download IPv6 ranges and format each line",
"url": "https://docs.nhcarrigan.com/dev/servers#download-ipv6-ranges-and-format-each-line"
},
{
"content": "Add the real_ip_header directive\necho \"real_ip_header CF-Connecting-IP;\" >> \"$temp_file\"",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::13",
"metadata": {
"title": "Server Setup"
},
"title": "Add the real_ip_header directive",
"url": "https://docs.nhcarrigan.com/dev/servers#add-the-real_ip_header-directive"
},
{
"content": "Replace the old file with the new one\nsudo mv \"$temp_file\" /etc/nginx/cloudflare_ips.conf",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::14",
"metadata": {
"title": "Server Setup"
},
"title": "Replace the old file with the new one",
"url": "https://docs.nhcarrigan.com/dev/servers#replace-the-old-file-with-the-new-one"
},
{
"content": "Test Nginx configuration\nsudo nginx -t",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::15",
"metadata": {
"title": "Server Setup"
},
"title": "Test Nginx configuration",
"url": "https://docs.nhcarrigan.com/dev/servers#test-nginx-configuration"
},
{
"content": "If the test is successful, reload Nginx\nif [ $? -eq 0 ]; then\n sudo systemctl reload nginx\n echo \"Nginx configuration updated and reloaded successfully.\"\nelse\n echo \"Nginx configuration test failed. Please check your configuration.\"\nfi\n```\n\nMake it executable and run it:\n\n```bash\nsudo chmod +x update_cf_ips.sh\nsudo ./update_cf_ips.sh\n```\n\nIf it runs as expected, set it up to run on a CRON.\n\n```bash\nsudo crontab -e\n```\n\n```bash\n0 3 * * 1 ~/update_cf_ips.sh\n```\n\nThen, update the `/etc/nginx/nginx.conf` to use all of this new logic. This goes at the end of your `http` directive block.\n\n```nginx",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::16",
"metadata": {
"title": "Server Setup"
},
"title": "If the test is successful, reload Nginx",
"url": "https://docs.nhcarrigan.com/dev/servers#if-the-test-is-successful,-reload-nginx"
},
{
"content": "Look at the real IP, not the cloudflare IP.\ninclude /etc/nginx/cloudflare_ips.conf;\n\nlog_format custom_format '$remote_addr - $remote_user [$time_local] '\n '\"$request\" $status $body_bytes_sent '\n '\"$http_referer\" \"$http_user_agent\" '\n '\"$http_x_forwarded_for\"';\n\naccess_log /var/log/nginx/access.log custom_format;\n```\n\nConfirm the NGINX configuration is correct:\n\n```bash\nsudo nginx -t\n```\n\nThen restart everything.\n\n```bash\nsudo systemctl restart nginx\nsudo systemctl restart fail2ban\n```\n\nTo view banned IPs:\n\n```bash\nsudo fail2ban-client status nginx-auth\n```\n\nAnd to unban them:\n\n```bash\nsudo fail2ban-client set nginx-auth unbanip <ip>\n```",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::17",
"metadata": {
"title": "Server Setup"
},
"title": "Look at the real IP, not the cloudflare IP.",
"url": "https://docs.nhcarrigan.com/dev/servers#look-at-the-real-ip,-not-the-cloudflare-ip"
},
{
"content": "5. Uploading a Project\n\nTo upload a project, you should **not** use `git` to clone the project to the machine. Instead, start by cloning the project to your local environment and navigating to the directory:\n\n```bash\ngit clone <url>\ncd /path/to/project\n```\n\nThen sync the project up to the machine, ignoring any installed packages.\n\n```bash\nrsync -av --exclude='node_modules' ./ <server name>:/home/nhcarrigan/<project directory>\n```",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::18",
"metadata": {
"title": "Server Setup"
},
"title": "5. Uploading a Project",
"url": "https://docs.nhcarrigan.com/dev/servers#5-uploading-a-project"
},
{
"content": "6. Running a Project\n\nNow you are ready to start running the project.",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::19",
"metadata": {
"title": "Server Setup"
},
"title": "6. Running a Project",
"url": "https://docs.nhcarrigan.com/dev/servers#6-running-a-project"
},
{
"content": "6.1. Node.js\n\nMost of our projects will run on Node. For a new machine, you'll need to set that up.\n\nWe use `nvm` to manage Node versions. Fetch and run the install script:\n\n```bash\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.37.2/install.sh | bash\n```\n\nThe script will automatically update the `.bashrc` file to load `nvm` into the PATH. Reload that:\n\n```bash\nsource ~/.bashrc\n```\n\nInstall the long-term support Node version.\n\n```bash\nnvm install --lts\n```\n\nThis should automatically set it as the default. When updating, be sure to remove any older versions!\n\nFinally, install `pnpm` as the package manager.\n\n```bash\nnpm i -g pnpm\n```",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::20",
"metadata": {
"title": "Server Setup"
},
"title": "6.1. Node.js",
"url": "https://docs.nhcarrigan.com/dev/servers#61-nodejs"
},
{
"content": "6.2. PM2\n\nAll of our processes run with PM2 to allow for monitoring and auto-restarts. You'll need to install it.\n\n```bash\npnpm i -g pm2\n```\n\nTo start a project, use this template:\n\n```bash\npm2 start '<script>' --name '<name>'\n```\n\nThen run `pm2 save` to save the application list.",
"file": "src/content/docs/dev/servers.md",
"id": "src/content/docs/dev/servers.md::21",
"metadata": {
"title": "Server Setup"
},
"title": "6.2. PM2",
"url": "https://docs.nhcarrigan.com/dev/servers#62-pm2"
},
{
"content": "This document outlines the style guide that applies to all of our projects.",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::0",
"metadata": {
"title": "Style Guide"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/dev/style#"
},
{
"content": "1. Global Conventions\n\nThese sections apply to all code in any of our projects.",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::1",
"metadata": {
"title": "Style Guide"
},
"title": "1. Global Conventions",
"url": "https://docs.nhcarrigan.com/dev/style#1-global-conventions"
},
{
"content": "1.1. Copyright Notice\n\nAll code files should begin with a comment section containing the copyright information:\n\n```js\n/**\n * @copyright nhcarrigan\n * @license Naomi's Public License\n * @author Naomi Carrigan\n */\n```\n\nNote that `copyright` _must_ be assigned to `nhcarrigan`, and our `license` must be applied, but when checking in new code you may attribute yourself as the author, or add yourself to the list for existing code.",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::2",
"metadata": {
"title": "Style Guide"
},
"title": "1.1. Copyright Notice",
"url": "https://docs.nhcarrigan.com/dev/style#11-copyright-notice"
},
{
"content": "2. JavaScript Projects\n\nThe following sections apply to our JavaScript/TypeScript projects. Style conventions are enforced through our [custom ESLint package](/projects/eslint).\n\n:::caution\nWe do _not_ use Prettier in any of our projects. Instead, our linter package also handles code styling.\n\nIf you are using VSCode, you can add this to your `.vscode/settings.json` file in the project directory to enable auto-formatting on save.\n\n```json\n{\n \"editor.codeActionsOnSave\": {\n \"source.fixAll.eslint\": \"explicit\"\n },\n \"eslint.validate\": [\"typescript\"]\n}\n```\n\nBecause of this, our style guide will not cover the formatting section of our linter package.\n:::",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::3",
"metadata": {
"title": "Style Guide"
},
"title": "2. JavaScript Projects",
"url": "https://docs.nhcarrigan.com/dev/style#2-javascript-projects"
},
{
"content": "2.1. Main Rules\n\nThese rules apply to all TypeScript code, and will run on files in `src/**/*.ts`.",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::4",
"metadata": {
"title": "Style Guide"
},
"title": "2.1. Main Rules",
"url": "https://docs.nhcarrigan.com/dev/style#21-main-rules"
},
{
"content": "2.1.1. `eslint` Enforced Rules\n\n- Setters must have a corresponding getter.\n- Array methods which return a value must return a value in the callback.\n- Arrow functions should always use curly braces.\n- Variables must be used within the scope they are defined.\n- Comments should always start with a capital letter.\n- Avoid overly complex functions.\n- `return` statements must either never return a value, or always return a value.\n- `if` statements and similar control blocks should always use curly braces.\n- Switch statements must always have a default case, and the default case must always come last.\n- Never use loose equality.\n- A `for` loops iteration direction must match the conditional bound.\n- Functions assigned to a property must match the name of the property.\n- With the exception of callback functions, all functions should be assigned a name.\n- When using the `function` keyword, prefer `function name()` declarations over `const name = function()` expressions.\n- Getters should always return a value.\n- Getters and setters should be grouped together.\n- You should never use logical assignment operators.\n- You should never have more than one class per file.\n- Logical blocks should not be nested more than five levels deep. Prefer extracting into separate functions.\n- Files should not have more than 300 lines. Prefer extracting into modular functions.\n- Functions should not have more than 50 lines. Prefer breaking down into smaller logic.\n- Callbacks should not be nested more than two levels.\n- Functions should not have more than 20 logical statements/branches.\n- Constructor names should begin with a capital letter.\n- Do not use the `alert` API.\n- Promise executor functions should not be async.\n- Do not use `await` within loops.\n- Do not use bitwise operators.\n- Do not use `arguments.caller` or `arguments.callee`.\n- Do not declare variables within switch case statements.\n- Do not reassign class definitions.\n- Do not compare with `-0`.\n- Do not perform assignments in conditions e.g. `if (name = \"Naomi\")`.\n- Do not use the `console` API, prefer our custom logger.\n- Avoid confusing operator combinations e.g. `a + b ?? c`.\n- Avoid constant conditions e.g. `if(false)` or `while(true)`.\n- Constructors should not return a value. They implicitly return the instance.\n- Do not use control characters `\\x00` in regular expressions.\n- Do not use `debugger` statements.\n- Do not use `delete` on variables.\n- Do not start a regular expression with `=` (confusing with `/=` operator).\n- Functions should not have multiple parameters with the same name.\n- Classes should not have multiple members with the same name.\n- Objects should not have multiple keys with the same name.\n- If/else statements should not use the same condition.\n- Switch statements should not have duplicate case conditions.\n- Import statements should not have duplicate imports.\n- Prefer using early return over if/else.\n- Block statements should not be empty.\n- Character classes in regular expressions should not be empty.\n- Destructured values should not be empty.\n- Static class blocks should not be empty.\n- You should not use loose equality with `null`.\n- You should not use `eval`.\n- Do not reassign the error parameter in a catch block.\n- Do not extend native prototypes.\n- Do not call `bind` unnecessarily.\n- Do not cast to a boolean in conditions.\n- Do not use `continue` or `break` unnecessarily.\n- All case statements should have a break statement.\n- Do not reassign function declarations.\n- Do not reassign global values (e.g. `window`).\n- Do not use implicit coercion (e.g. `!!bool`, `+num`).\n- Do not declare global variables. All values should be scoped to a module.\n- Do not reassign to imported variables.\n- Do not declare functions in logical blocks.\n- Do not pass invalid regular expression strings to `RegExp()`.\n- Do not use `this` outside of classes.\n- Do not use unusual space characters.\n- Do not access `__iterator__`.\n- Do not use loop labels.\n- Do not create unnecessary blocks.\n- Do not nest `if` within `else`, use `else if`.\n- Do not use multi-code characters (such as emotes) within character classes.\n- Do not chain assignment operators.\n- Do not use `\\` to create multi-line strings. Use concatenation or template strings.\n- `if` conditions should not be in the negative (e.g. `!bool`).\n- Do not nest ternary statements.\n- Do not use `new` outside of an assignment.\n- Do not use `new` with `BigInt` or `Symbol`.\n- Do not use `new` with `String`, `Number`, or `Boolean`.\n- Do not use octal escapes (e.g. `\\8`, `\\2`).\n- Do not call the `Math`, `JSON`, `Reflect`, `Atomics`, or `Intl` objects as functions or constructors.\n- Do not call `new Object()` without an argument.\n- Do not use octal literals e.g. `071`.\n- Do not reassign function parameters.\n- Do not use the `++` operator.\n- Do not use `return` in promise executors.\n- Do not use the `__proto__` property.\n- Prefer calling the Object prototype over builtins (e.g. `Object.prototype.hasOwnProperty.call(foo, \"bar\")` over `foo.hasOwnProperty(\"bar\")`).\n- Do not use literal spaces in regular expressions, use the escape sequence `\\s`.\n- Do not return assignment operations.\n- Do not use `javascript:void` URLs.\n- Do not assign a variable to itself.\n- Do not compare a variable with itself.\n- Do not use the comma operator to evaluate multiple expressions.\n- Setters should not return a value.\n- Do not allow sparse arrays.\n- Do not use `${foo}` template interpolation in regular strings.\n- Do not reference `this` before calling `super` in constructors that call `super`.\n- Do not reference variables that are not declared.\n- Do not initialise variables to `undefined`.\n- With the exception of trailing underscores for unused variables, do not use dangling underscores.\n- Do not insert line breaks in confusing locations, such as the middle of a variable assignment.\n- Do not use a variable in a loop condition that is not modified within the loop.\n- Do not use a ternary if a simpler approach exists.\n- There should be no unreachable code.\n- Do not use control statements in `finally` blocks.\n- You must use parentheses when negating `in` or `instanceOf`, e.g. `if (!(key in obj))`.\n- Do not use optional chaining where an undefined value is not allowed.\n- Do not declare private class members that are not consumed by the class.\n- Do not declare variables that are unused.\n- Avoid backreferences in regular expressions when they would match nothing.\n- Do not use `.call()` or `.apply()` unnecessarily.\n- `catch` statements should _handle_ an error, not turn around and throw the error.\n- Do not use computed-key syntax for literal keys e.g. `{[\"a\"]: \"b\"}`.\n- Do not concatenate string literals without variables.\n- Do not escape characters unnecessarily.\n- Do not rename a reference to the same name e.g. `let { a: a } = b;`.\n- Do not use redundant `return` statements.\n- No use of the `var` keyword.\n- Do not merge `TODO` or `FIX` comments into the main branch.\n- Do not use the `with` statement.\n- An object must use either all long-form definitions `{a : a}` or all short-form definitions `{ a }`, but never a mix of the two `{ a, b: c}`.\n- Avoid shorthand operators `+=`, prefer the explicit `x = x + y`.\n- Callback functions should be anonymous arrow functions.\n- Use `const` for all variables that are not reassigned.\n- Capture groups should be named.\n- Prefer `Object.hasOwn()`.\n- Prefer the spread operator over `Object.assign`.\n- Prefer regular expression literals over the RegExp constructor.\n- Prefer using the `...` operator instead of `arguments`.\n- Prefer the spread operator over `.apply()`.\n- Prefer template literals over string concatenation.\n- `parseInt()` should always be given a radix.\n- When an asynchronous function relies on an argument that might change (such as an object reference), care must be taken to avoid race conditions within that function.\n- Generator functions must use the `yield` keyword.\n- Object keys must be sorted alphabetically.\n- Variables within the same declaration block must be sorted alphabetically.\n- If using the `Symbol` function, you must include a description.\n- Do not compare to `NaN`, use `Number.isNaN()`.\n- `typeof` comparators must be a valid return type of `typeof`.\n- Conditions should always start with the variable, not the constant.",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::5",
"metadata": {
"title": "Style Guide"
},
"title": "2.1.1. `eslint` Enforced Rules",
"url": "https://docs.nhcarrigan.com/dev/style#211-`eslint`-enforced-rules"
},
{
"content": "2.1.2. `typescript-eslint` Enforced Rules\n\n- Do not use `await` on functions that do not return a Promise.\n- Exported type definitions should use the `export type` keyword.\n- Use dot notation for property access, unless such syntax would be invalid.\n- Do not use the `delete` keyword with arrays.\n- Do not use `<Object>.toString()` on objects. Prefer `JSON.stringify()`.\n- Do not assign void values to variables, such as `const log = console.log(\"Bad\");`.\n- Do not duplicate types (e.g. `type myType = \"A\" | \"A\"`).\n- Promises should always be awaited.\n- Do not implicitly evaluate code, such as with `new Function()`.\n- Do not use `void` with functions that do not return a value.\n- Do not use Promises in places that do not consume them (such as callbacks).\n- Do not combine string and number values in an enum.\n- Do not use unions/intersections with overriding values (such as `any` or `unknown`).\n- Do not use comparison operators with boolean values (e.g. `variable === false`).\n- Do not pass values to a conditional statement that are always truthy or falsy.\n- Do not use unnecessary namespace references.\n- Do not use template strings without interpolated values.\n- Do not pass type arguments to a function that match the default value of that parameter.\n- Do not define unused type parameters in a function.\n- Values with an `any` type should not be passed to function calls.\n- Values with an `any` type should not be assigned to variables.\n- Values which have an `any` type should not be called as functions.\n- Do not merge declarations (instead of `interface Foo` and `class Foo`, use `interface Foo` and `class Bar implements Foo`).\n- Do not compare enum values against arbitrary values.\n- Do not use the `Function` type. Functions should have a specific type signature.\n- Values with an `any` type cannot have properties, and such properties should not be accessed.\n- Functions should not return an `any` value.\n- The unary minus operator should only be used on numbers.\n- `throw` statements should only throw an `Error` instance.\n- Object properties should be destructured, rather than assigned to variables via direct access.\n- Use `<Array>.find()` instead of `<Array>.filter()[0]` to find an element in an array.\n- Use `<Array>.includes()` instead of `<Array>.indexOf() === -1`.\n- Use `??` instead of `||`.\n- Use optional chaining when possible.\n- Promises that reject should always return an Error.\n- Class members that are not modified outside of the constructor should be `readonly`.\n- The `.reduce()` callback should have typed parameters.\n- When using a non-global regular expression, use `<RegExp>.exec` over `<String>.match()`.\n- Class methods that return `this` should have `this` as the return type, not the class.\n- When testing the beginning or end of a string, use `<String>.startsWith()` or `<String>.endsWith()`.\n- Functions which return a Promise must use the `async` keyword.\n- `<Array>.sort()` should always be given a compare function.\n- `async` functions must use `await`, or be rewritten without the promise.\n- The `+` operator can only be used with operands of the same type.\n- Values interpolated in a template string must be of type `string`.\n- Functions which return a promise should await that return value.\n- Conditions should not use nullable values - you must always explicitly compare against `null` or `undefined`.\n- Switch statements are not preferred, but when you must use them it should have exhaustive cases.\n- Unbound class methods must be called with the expected scope (e.g. `myClass.method.bind(myClass)`).\n- The `error` parameter in a catch statement is of type `unknown`.\n- Function overload signatures must be grouped together.\n- Array type definitions should use the generic `Array<T>` over `T[]`.\n- `@ts` directives are disallowed, except for `@ts-expect-error` which requires a description.\n- Classes with static public properties should have a getter for each property.\n- Class methods which are not static must make use of `this` or be converted to static.\n- Prefer passing type arguments to a constructor instead of a type annotation.\n- Prefer `Record<string, T>` over `{ [key: string]: T}`.\n- Do not use any type assertions (`x as T`).\n- Object types should be defined with `interface` over `type`.\n- Imported values which are only used as types should be imported with `type`.\n- Function parameters which are optional or have a default value should come after all mandatory parameters.\n- Functions should always have an explicit return type.\n- All class members should have an accessibility modifier (`public`, `protected`, `private`).\n- All exported functions and public class methods should have explicit parameter and return types.\n- Variables should always be initialised with a value.\n- Functions which take more than three arguments should take a single object instead.\n- Class members should be ordered as `constructor`, `fields`, `statics`, `getters`, `setters`, then `methods`.\n- Method types should use the property signature `func: (arg: string) => string`.\n- Variables should use `camelCase`, types and classes should use `PascalCase`. Only variables may use a leading underscore to indicate they are unused.\n- Never use the `Array` constructor.\n- Do not use non-null assertions.\n- Enums should not have duplicate values.\n- Do not use the `delete` operator on dynamic property accesses.\n- Functions, interfaces, and object types should never be empty.\n- Do not use `any`.\n- Classes should not consist solely of static members.\n- The `for...in` loop should not be used.\n- When all imported members are type imports, use `import type { a, b }` over `import { type a, type b }`.\n- Do not use type annotations for variables with a string, number, or boolean value. These can be inferred.\n- The `void` type should only be used as the _sole_ return type of a function. `(): void | string` is invalid.\n- Do not reference unsafe values in a loop.\n- Do not use number literals which would lose precision due to memory constraints.\n- Classes should use `constructor()`, not `new()`. Interfaces for the class should use `new()`, not `constructor()`.\n- Do not use namespaces.\n- Do not use `require()`.\n- Do not declare variables in an inner scope that share a name with a variable in the outer scope.\n- Do not alias `this`.\n- Do not needlessly assign constructor parameters to class members of the same name.\n- Do not `extends` `any` or `unknown`.\n- Unused expressions should be removed.\n- Unused variables should be removed.\n- Do not access a variable before its definition.\n- Do not define empty constructors.\n- Do not define empty exports.\n- Do not use wrapper types (e.g. use `boolean`, not `Boolean`).\n- Use `as const` over literal types.\n- Enum values should always be explicitly initialised.\n- The `for...of` loop should be used over the `for` loop, when the index _value_ is not needed.\n- Enum values should always be literal values.\n- Do not use TypeScript's `///` reference.\n- Do not use overloads when the same result can be achieved via union types or optional parameters.",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::6",
"metadata": {
"title": "Style Guide"
},
"title": "2.1.2. `typescript-eslint` Enforced Rules",
"url": "https://docs.nhcarrigan.com/dev/style#212-`typescript-eslint`-enforced-rules"
},
{
"content": "2.1.3. `eslint-comments` Enforced Rules\n\n- Do not use blanket `eslint-disable` directives. All `disable` directives must target specific rules.\n- All `disable` directives must include a comment explaining why the linter is being bypassed.",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::7",
"metadata": {
"title": "Style Guide"
},
"title": "2.1.3. `eslint-comments` Enforced Rules",
"url": "https://docs.nhcarrigan.com/dev/style#213-`eslint-comments`-enforced-rules"
},
{
"content": "2.1.4. `deprecation` Enforced Rules\n\n- Do not use deprecated methods/features, even if the package still supports them.",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::8",
"metadata": {
"title": "Style Guide"
},
"title": "2.1.4. `deprecation` Enforced Rules",
"url": "https://docs.nhcarrigan.com/dev/style#214-`deprecation`-enforced-rules"
},
{
"content": "2.1.5. `import` Enforced Rules\n\n- Do not use default imports if the module does not have a default export.\n- Do not import modules simply to re-export them.\n- Exports should always be at the end of the file.\n- With the exception of packages, imports should always have a file extension.\n- Imports should always be at the beginning of the file.\n- If a module has multiple named exports, group them in a single `export { a, b }` declaration.\n- Import statements should be followed by a newline.\n- Import paths should never be absolute\n- You should not use AMD syntax\n- You should not use CJS syntax\n- You should not define cyclical imports (if file a imports file b, file b CANNOT import file a)\n- Modules should not use a default export.\n- A module should not import the same file multiple times.\n- You should not use dynamic `require` calls.\n- Named import blocks cannot be empty.\n- You should not import packages that are not included in the `package.json` file.\n- You cannot `import` a CommonJS module.\n- Exports must always be declared with `const`.\n- You cannot use a named export as the default export.\n- You cannot use a named export as the property of a default export.\n- You should not have orphaned modules (modules without any exports, or a module which is never imported).\n- You cannot use webpack loader syntax.\n- Imports must be sorted alphabetically, first grouped by: builtin node modules, external packages, internal packages, modules in parent directory, modules in current directory, type-only imports.\n - There should be no new lines between these groups.",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::9",
"metadata": {
"title": "Style Guide"
},
"title": "2.1.5. `import` Enforced Rules",
"url": "https://docs.nhcarrigan.com/dev/style#215-`import`-enforced-rules"
},
{
"content": "2.1.6. `jsdoc` Enforced Rules\n\n- `@access` tags should be one of `package`, `private`, `protected`, or `public`.\n- Asterisks should be aligned.\n- Lines should not be improperly indented.\n- `@param` names should reflect the actual parameters.\n- `@property` names should reflect the actual properties.\n- Should not use `=` (GCC syntax).\n- All tags must be valid JSDoc tags.\n- `@template` names should be used in the `@typedef`.\n- `@license` tag MUST be set to `Naomi's Public License`.\n- Tags that do not expect content should not have content.\n- `@implements` should only be used on constructors or classes.\n- Tag descriptions should not be just a reflection of the name.\n- Description tags must be complete sentences.\n- JSDocs must be multiple lines. The first and last line cannot have text content.\n- JSDoc syntax must be valid.\n- JSDocs must have a description.\n- JSDocs cannot be empty.\n- A hyphen should separate the parameter name from the description.\n- JSDocs are required on all public functions, classes, and methods. They are encouraged on all public exports.\n- Parameters must have a name and description.\n- Properties must have a name and description.\n- If a function returns a value, it must be documented in `@returns`.\n- If a function throws an unhandled error intentionally, it must be documented in `@throws`.\n- If a generator yields a value, it must be documented in `@yields`.\n- Tags must be sorted alphabetically.\n- There should be no blank lines between tags.\n- Any types referenced must be valid types.",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::10",
"metadata": {
"title": "Style Guide"
},
"title": "2.1.6. `jsdoc` Enforced Rules",
"url": "https://docs.nhcarrigan.com/dev/style#216-`jsdoc`-enforced-rules"
},
{
"content": "2.1.7. `unicorn` Enforced Rules\n\n- Regular expressions should use special shorthand where possible.\n- `catch` blocks should always have `error` as the parameter.\n- When destructuring an object, all consumed properties should be destructured. Do not perform direct property access on an object that is previously destructured.\n- When spreading a ternary in an array, both sides of the expression must be of the same type.\n- Functions should be declared in the highest scope possible.\n- `Error()` constructor calls must always be given a message.\n- Escape sequences must use uppercase text.\n- Files should be named in camelCase.\n- Do not pass function references as callbacks to array methods.\n- Do not use `.forEach()`.\n- Do not use `this` in array methods.\n- Do not chain `.push()` calls.\n- Do not use `.reduce()`.\n- Do not access properties directly from an `await` expression.\n- Do not use `await` in Promise methods such as `.all()`.\n- Files should not be empty.\n- Do not use a `for` loop when you can use a `for...of` loop.\n- Use Unicode escape sequences over hexadecimal escape sequences.\n- Use `Array.isArray()` over `instanceof Array`.\n- `GET` or `HEAD` requests should never have a body.\n- Do not declare variables that start with `new` or `class`.\n- Do not use `.length` as the argument to `.slice()`.\n- Use `Buffer.from()`, not `new Buffer()`.\n- Do not use objects as default parameters.\n- Do not pass single-element arrays to Promise methods.\n- Do not define a class that only has static members.\n- Do not use `.then()`.\n- Do not assign to `this`.\n- Do not use `typeof x === \"undefined\"`.\n- `await` cannot be used on non-promise values.\n- You cannot ignore consecutive values when destructuring an array, e.g. `[,,,, val]`.\n- You cannot use IIFEs.\n- Promises should not return `.resolve()` or `.reject()`.\n- You should not spread an array into a new array without adding values.\n- You should not associate any case statements with the default statement.\n- Number literals cannot have trailing zeroes after the decimal place.\n- Number literals must use proper case.\n- Numbers over 9999 should use `_` to separate each group of three digits, e.g. `10_000`.\n- If you need to flatten an array, use `Array.flat()`.\n- Prefer `.flatMap()` over `.map().flat()`.\n- Prefer `indexOf` over `findIndex`.\n- Prefer `.some()` over `.filter().length`.\n- Prefer `.at()` for accessing array and string indices.\n- Prefer `.codePointAt()` over `.charCodeAt()`.\n- Prefer `Date.now()` over `new Date().getTime()`.\n- Use default parameters instead of reassigning undefined values.\n- Use `Math.trunc` to round numbers, not bitwise operators.\n- Use ESM modules, not CJS.\n- Use coercion functions such as `String()` directly.\n- Use a negative index instead of `.legnth - 1`.\n- Use the `node:` protocol when importing built-in packages.\n- Use `Number` properties instead of global helpers e.g. `Number.isNaN()` over `isNaN()`.\n- Use `Object.fromEntries` to create an object from key-value pairs.\n- If a `catch` block does not use the `error` parameter, the parameter should be omitted.\n- Prefer calling prototype methods over instance methods.\n- Prefer using `Set.has()` over `Array.includes` to check for existence.\n- Prefer using `Set.size` over `Array.length`.\n- Prefer using the spread operator over `Array.concat()` or `String.split(\"\")`.\n- Prefer using `String.replaceAll()` over regex searches.\n- Prefer `String.slice()` over `String.substr[ing]()`.\n- Prefer `String.startsWith()` or `.endsWith()` over `RegExp.test()`.\n- Prefer `String.trim[Start|End]()` over `String.trim[Left|Right]()`.\n- Use `structuredClone` to create a deep clone of an object.\n- Use top-level await instead of IIFEs.\n- Variable names should not be abbreviated.\n- `Array.join()` must always be given a separator.\n- `Number.toFixed()` must always be given a digits argument.",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::11",
"metadata": {
"title": "Style Guide"
},
"title": "2.1.7. `unicorn` Enforced Rules",
"url": "https://docs.nhcarrigan.com/dev/style#217-`unicorn`-enforced-rules"
},
{
"content": "2.2. React Rules\n\nThese rules apply to TSX, and will run on files in `src/**/*.tsx`.\n\n- Boolean properties should be named accordingly, such as `isEnabled` instead of `enabled`.\n- Buttons must always have a `type` attribute.\n- If a radio button or checkbox is checked, it must be `readonly` or have an `onChange` handler.\n- Default properties should match the property types.\n- Properties, state, and context should always be destructured.\n- Components must always have a name.\n- A component cannot consume another component's propTypes.\n- PropTypes cannot use `any`, `array`, or `object`.\n- `forwardRef` components must use `ref`.\n- Components should always be defined as named arrow functions.\n- State should have matching names, e.g. `[color, setColor]`.\n- `iframes` should always use the `sandbox` attribute.\n- Boolean properties should always be explicitly written: `<Component prop={true}>`.\n- Spaces between JSX elements must be explicitly written: `{' '}`.\n- Files that contain JSX must have the extension `.jsx` or `.tsx`.\n- Fragments should always use the shorthand syntax.\n- Event handlers must be appropriately named: `onChange={this.handleChange}`\n- Iterators must always have a `key` prop, and it should never be the index.\n- You should not use `.bind()` in component props\n- You should not insert comments as text nodes.\n- Contexts should not use mutable values (e.g. objects), to prevent re-renders.\n- Components should not have duplicate properties.\n- Avoid leaking conditional values. Prefer `condition ? <Component> : null` over `condition && <Component>`.\n- Element text should always be wrapped in JSX containers.\n- You should never use `javascript:` urls.\n- `target=_blank` must always be accompanied with `rel=noreferrer`.\n- You should not use variables that are not declared.\n- You should not use fragments unless there is no singular wrapping element.\n- Components should use PascalCase.\n- You should not spread props multiple times.\n- Props should be sorted alphabetically.\n- You should not access `this.state` inside any `setState` functions.\n- You should not use arrow functions for lifecycle methods.\n- Children cannot be passed as props.\n- You cannot use dangerous properties (`dangerouslySetInnerHTML`).\n- You cannot use deprecated methods.\n- You cannot use `setState` in `componentDidMount` or `componentDidUpdate` or `componentWillUpdate`.\n- You cannot directly mutate `this.state`.\n- You cannot use `findDOMNode`.\n- You cannot use `isMounted`.\n- Each file should have only one component.\n- `ReactDOM.render`'s return value should not be used.\n- You should not use string references.\n- `this` cannot be used in stateless functional components.\n- HTML entities must be escaped.\n- You cannot use unknown HTML properties.\n- You cannot use unsafe lifecycle methods.\n- You cannot define a component within another component.\n- Class components should not have unused methods.\n- Components should not have unused propTypes or state\n- Class components should use the ES6 `class Component extends React.Component` syntax.\n- Props should be readonly.\n- Stateless components should be pure functions.\n- Property accesses must be reflected in the propTypes.\n- Any optional property must have a default value.\n- Classes using the `render` method MUST return a value.\n- Components without children must still have a separate closing tag.\n- State initialisation must always happen in the constructor.\n- Static properties should be defined as `static name = `.\n- The `style` property must always be an object.\n- Void elements `img`, `br` etc. must never have children.",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::12",
"metadata": {
"title": "Style Guide"
},
"title": "2.2. React Rules",
"url": "https://docs.nhcarrigan.com/dev/style#22-react-rules"
},
{
"content": "2.3. Playwright Rules\n\nThese files apply to Playwright End-to-end tests, and will run on `e2e/**/*.spec.ts`.\n\n- All tests must have at least one `expect` assertion.\n- `describe` calls cannot be nested more than two levels deep.\n- Playwright APIs must be `await`ed.\n- Tests cannot be commented out.\n- `expect` cannot be called conditionally.\n- Tests cannot contain conditional logic.\n- Setup and teardown hooks cannot be duplicated.\n- You cannot use element handles (`page.$`).\n- You cannot use `page.$eval()`.\n- Tests cannot be focused with `.only()`.\n- Tests cannot be forced with `{ force: true }`.\n- You cannot use `getByTitle()`.\n- You cannot use the `networkidle` option.\n- You cannot use `first()`, `lat()`, or `nth()`.\n- You cannot use `page.pause()`.\n- You cannot use `page.locator()`. Prefer specific methods like `page.getByRole()`.\n- Tests cannot be skipped with `.skip()`.\n- `expect` can only be called within test blocks.\n- You cannot reference variables in `page.evaluate()`.\n- Some Playwright methods are synchronous - these cannot be `await`ed.\n- You cannot use `.not()` when a specific matcher exists.\n- You cannot use `page.waitForSelector()` or `page.waitForTimeout()`.\n- Prefer `.toBeGreaterThan()` over `(x > 5).toBe(true)`.\n- Prefer `.toBe(5)` over `(x === 5).toBe(true)`\n- Hooks should be ordered as Playwright calls them: `beforeAll`, `beforeEach`, `afterEach`, `afterAll`.\n- Hooks should be at the top of the test.\n- Test names should be lowercase.\n- Use `.toStrictEqual()` over `.toEqual()`.\n- Use `.toBe()` over `.toStrictEqual()` for primitive values.\n- Use `.toContain()` over `.includes()`.\n- Use `.toHaveCount()` over `locator.count()` and `.toHaveLength()` over `.length`.\n- Prefer assertions like `.toBeVisible()` over `(locator.isVisible()).toBe(true)`.\n- Setup and teardown code must be in a hook.\n- `.toThrow()` assertions require a message.\n- Tests must be within a `describe` block.\n- All `expect()` calls must have a custom message.\n- Promises that contain an `expect` must be awaited.\n- Tests must have a title that is not empty.",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::13",
"metadata": {
"title": "Style Guide"
},
"title": "2.3. Playwright Rules",
"url": "https://docs.nhcarrigan.com/dev/style#23-playwright-rules"
},
{
"content": "2.4. Vitest Rules\n\nThese files apply to Vitest unit tests, and will run on `test/**/*.spec.ts`.\n\n:::warn\nWe also mandate the use of `describe`, `it`, and `expect` over `suite`, `test`, and `assert`.\n:::\n\n- Files must have `.spec.ts` extension.\n- consistent-test-it\n- Tests must have at least one `expect`.\n- `describe` calls cannot be nested more than two levels deep.\n- Prefer `.toHaveBeenCalled()` over `.toBeCalled()`.\n- Tests cannot be commented out.\n- `expect` cannot be called conditionally.\n- Tests cannot contain conditional logic.\n- Tests cannot be run conditionally.\n- Tests cannot be disabled.\n- You cannot use the `done()` callback.\n- Setup and teardown hooks cannot be duplicated.\n- Tests cannot be focused with `.only()`.\n- Test titles must be unique.\n- `node:test` cannot be imported.\n- Snapshots cannot use string interpolation.\n- `expect` must be within `it` or `test`.\n- Tests cannot use `return`.\n- Prefer `toHaveBeenCalledWith()` over `toHaveBeenCalled()`.\n- Prefer `.toBeGreaterThan()` over `(x > 5).toBe(true)`.\n- Use `describe.each` instead of manual loops.\n- Prefer `.toBe(5)` over `(x === 5).toBe(true)`.\n- All tests must start with `expect.assertions(number)`.\n- Use `expect.resolves(fn)` over `expect(await fn)`.\n- Hooks should be ordered as Vitest calls them: `beforeAll`, `beforeEach`, `afterEach`, `afterAll`.\n- Hooks should be at the top of the test.\n- Test titles should be lowercase.\n- Prefer `vi.fn().mockResolvedValue(val)` over `vi.fn().mockImplementation(() => Promise.resolve(val))`.\n- Prefer `vi.spyOn(Date, \"now\")` instead of overwriting the global `Date.now = vi.fn()`.\n- Use `.toStrictEqual()` over `.toEqual()`.\n- Use `.toBe()` over `.toStrictEqual()` for primitive values.\n- Use `.toBeFalsy()` over `.toBe(false)`.\n- Use `.toBeObject()` over `.toBeInstanceOf(Object)`.\n- Use `.toBeTruthy()` over `.toBe(true)`.\n- Use `.toContain()` over `.includes()`.\n- Use `.toHaveLength()` over `.length`.\n- Use `test.todo()` instead of `test.skip()`.\n- Setup and teardown code must be in a hook.\n- `.toThrow()` assertions require a message.\n- Tests must be within a `describe` block.\n- The `describe` callback should not have any parameters and cannot use `return`.\n- All `expect()` calls must have a custom message.\n- Tests must have a title that is not empty.",
"file": "src/content/docs/dev/style.md",
"id": "src/content/docs/dev/style.md::14",
"metadata": {
"title": "Style Guide"
},
"title": "2.4. Vitest Rules",
"url": "https://docs.nhcarrigan.com/dev/style#24-vitest-rules"
},
{
"content": "Naomi uses her VTuber model for all of her client meetings, as well as streaming. Getting the software to work on Linux is a bit of a nightmare, so this page documents how she does so.",
"file": "src/content/docs/dev/vtubing.md",
"id": "src/content/docs/dev/vtubing.md::0",
"metadata": {
"title": "Naomi's VTubing Setup"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/dev/vtubing#"
},
{
"content": "1. OpenSeeFace\n\nIn order to track her webcamera, OpenSeeFace needs to be run independently as a native script.",
"file": "src/content/docs/dev/vtubing.md",
"id": "src/content/docs/dev/vtubing.md::1",
"metadata": {
"title": "Naomi's VTubing Setup"
},
"title": "1. OpenSeeFace",
"url": "https://docs.nhcarrigan.com/dev/vtubing#1-openseeface"
},
{
"content": "1.1. Installation\n\nThis should all be done in your home `~` directory.\n\n- Begin by cloning the repository:\n - `git clone https://github.com/emilianavt/OpenSeeFace`\n - `cd OpenSeeFace`\n- You will need to prepare Python\n - Install the packages: `yay -Sy python python-virtualenv`\n - Prepare the environment: `virtualenv -p python3 env`\n - Source the environment: `source env/bin/activate`\n - Install the dependencies: `pip3 install onnxruntime opencv-python pillow numpy`",
"file": "src/content/docs/dev/vtubing.md",
"id": "src/content/docs/dev/vtubing.md::2",
"metadata": {
"title": "Naomi's VTubing Setup"
},
"title": "1.1. Installation",
"url": "https://docs.nhcarrigan.com/dev/vtubing#11-installation"
},
{
"content": "1.2. Running\n\n```\ncd OpenSeeFace\nsource env/bin/activate\npython facetracker.py -c 0 -W 1280 -H 720 --discard-after 0 --scan-every 0 --no-3d-adapt 1 --max-feature-updates 900\n```",
"file": "src/content/docs/dev/vtubing.md",
"id": "src/content/docs/dev/vtubing.md::3",
"metadata": {
"title": "Naomi's VTubing Setup"
},
"title": "1.2. Running",
"url": "https://docs.nhcarrigan.com/dev/vtubing#12-running"
},
{
"content": "2. VSeeFace\n\nVSeeFace does not run natively, and will need to run with Wine.",
"file": "src/content/docs/dev/vtubing.md",
"id": "src/content/docs/dev/vtubing.md::4",
"metadata": {
"title": "Naomi's VTubing Setup"
},
"title": "2. VSeeFace",
"url": "https://docs.nhcarrigan.com/dev/vtubing#2-vseeface"
},
{
"content": "2.1. Installation\n\n[Download and run the installer](https://www.vseeface.icu/#download). When selecting a directory, put it in `~/VSeeFace`.",
"file": "src/content/docs/dev/vtubing.md",
"id": "src/content/docs/dev/vtubing.md::5",
"metadata": {
"title": "Naomi's VTubing Setup"
},
"title": "2.1. Installation",
"url": "https://docs.nhcarrigan.com/dev/vtubing#21-installation"
},
{
"content": "2.2. Running\n\n```bash\nwine ~/VSeeFace/VSeeFace.exe --background-color \"#00FF00\"\n```\n\nThe `--background-color` flag creates a green screen background to be chroma-keyed out by OBS.",
"file": "src/content/docs/dev/vtubing.md",
"id": "src/content/docs/dev/vtubing.md::6",
"metadata": {
"title": "Naomi's VTubing Setup"
},
"title": "2.2. Running",
"url": "https://docs.nhcarrigan.com/dev/vtubing#22-running"
},
{
"content": "3. OBS\n\nOBS allows for virtual camera, as well as for streaming.",
"file": "src/content/docs/dev/vtubing.md",
"id": "src/content/docs/dev/vtubing.md::7",
"metadata": {
"title": "Naomi's VTubing Setup"
},
"title": "3. OBS",
"url": "https://docs.nhcarrigan.com/dev/vtubing#3-obs"
},
{
"content": "3.1. Installation\n\nThe `obs-studio-git` AUR package is Naomi's current installation.",
"file": "src/content/docs/dev/vtubing.md",
"id": "src/content/docs/dev/vtubing.md::8",
"metadata": {
"title": "Naomi's VTubing Setup"
},
"title": "3.1. Installation",
"url": "https://docs.nhcarrigan.com/dev/vtubing#31-installation"
},
{
"content": "",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::0",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/legal/dmca#"
},
{
"content": "1. General Principles\n\n- Respect for intellectual property rights is fundamental to our community's ethos and operations.\n- All community members, including users, contributors, and administrators, are expected to comply with applicable copyright laws, trademark regulations, and licensing terms.\n- This policy aims to protect the rights of content creators while fostering an environment of innovation and knowledge sharing.\n- Ignorance of the law or this policy is not considered a valid excuse for non-compliance.",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::1",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "1. General Principles",
"url": "https://docs.nhcarrigan.com/legal/dmca#1-general-principles"
},
{
"content": "2. Sharing Copyrighted Material\n\n- Do not share copyrighted material without explicit permission from the copyright holder or a valid license.\n- When sharing is permitted, always include proper attribution and adhere to any specified terms of use.\n- Linking to legitimately published content is generally acceptable, but copying and pasting substantial portions is discouraged unless explicitly allowed by the copyright holder.\n- Be aware that even user-generated content on social media platforms may be copyrighted.\n- When in doubt about the copyright status of material, err on the side of caution and seek permission or clarification.",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::2",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "2. Sharing Copyrighted Material",
"url": "https://docs.nhcarrigan.com/legal/dmca#2-sharing-copyrighted-material"
},
{
"content": "3. Fair Use and Educational Purposes\n\n- Limited use of copyrighted material for commentary, criticism, news reporting, teaching, scholarship, or research may be permissible under fair use doctrines.\n- When relying on fair use, clearly indicate the source and purpose of the use.\n- Fair use is determined on a case-by-case basis, considering factors such as:\n - The purpose and character of the use (commercial vs. non-profit educational)\n - The nature of the copyrighted work\n - The amount and substantiality of the portion used\n - The effect of the use upon the potential market for the copyrighted work\n- Educational use does not automatically qualify as fair use; consider all factors carefully.",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::3",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "3. Fair Use and Educational Purposes",
"url": "https://docs.nhcarrigan.com/legal/dmca#3-fair-use-and-educational-purposes"
},
{
"content": "4. Proper Attribution\n\n- When using or referencing others' work, always provide clear and comprehensive attribution.\n- Attribution should include:\n - The name of the creator or author\n - The title of the work\n - The source (e.g., website URL, book title, journal name)\n - The date of publication or creation (if available)\n - Any applicable license terms\n- For digital content, consider using hyperlinks to the original source when possible.\n- Follow citation guidelines appropriate to your field or the context of use (e.g., APA, Chicago).",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::4",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "4. Proper Attribution",
"url": "https://docs.nhcarrigan.com/legal/dmca#4-proper-attribution"
},
{
"content": "5. Original Content Creation and Sharing\n\n- Community members are encouraged to create and share original content.\n- By sharing original content in our community spaces, you grant the community a non-exclusive, worldwide, royalty-free right to use, reproduce, modify, adapt, publish, translate, distribute, and display the content within the community.\n- You retain copyright of your original work unless explicitly stated otherwise.\n- Consider adding a clear copyright notice to your original works.\n- Be mindful of using third-party content (e.g., images, music) in your original creations, ensuring you have the right to incorporate such elements.",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::5",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "5. Original Content Creation and Sharing",
"url": "https://docs.nhcarrigan.com/legal/dmca#5-original-content-creation-and-sharing"
},
{
"content": "6. Open Source and Creative Commons\n\n- We encourage the use of open source licenses and Creative Commons for shared content where appropriate.\n- When using open source or Creative Commons licensed material, adhere strictly to the terms of the license.\n- Familiarize yourself with different types of open source and Creative Commons licenses and their requirements (e.g., attribution, share-alike, non-commercial use).\n- Provide clear license information when sharing your own content under open source or Creative Commons terms.",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::6",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "6. Open Source and Creative Commons",
"url": "https://docs.nhcarrigan.com/legal/dmca#6-open-source-and-creative-commons"
},
{
"content": "7. Code Snippets and Examples\n\n- Short code snippets shared for educational or troubleshooting purposes are generally acceptable under fair use.\n- For larger code samples, include license information and attribution if taken from other sources.\n- When sharing your own code, consider using an appropriate open source license.\n- Be aware that copying entire programs or substantial portions of code may infringe copyright, even if source attribution is provided.",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::7",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "7. Code Snippets and Examples",
"url": "https://docs.nhcarrigan.com/legal/dmca#7-code-snippets-and-examples"
},
{
"content": "8. Plagiarism\n\n- Presenting others' work as your own is strictly prohibited and considered a serious offence.\n- This includes code, text, images, ideas, and any other form of content.\n- Plagiarism can have serious consequences, including loss of community privileges, academic penalties, or legal action.\n- Always cite your sources and use quotation marks for direct quotes.",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::8",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "8. Plagiarism",
"url": "https://docs.nhcarrigan.com/legal/dmca#8-plagiarism"
},
{
"content": "9. Trademark Usage\n\n- Respect trademark rights when referencing products, services, or organizations.\n- Use trademark symbols (™, ®) appropriately when referring to trademarked names.\n- Avoid using trademarks in a way that suggests endorsement or affiliation without permission.",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::9",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "9. Trademark Usage",
"url": "https://docs.nhcarrigan.com/legal/dmca#9-trademark-usage"
},
{
"content": "10. Digital Millennium Copyright Act (DMCA) Compliance\n\n- We comply with the DMCA and maintain a policy for addressing claims of copyright infringement.\n- If you believe your copyrighted work has been improperly used within our community, submit a DMCA takedown notice to DMCA@nhcarrigan.com.\n- DMCA takedown notices must include:\n - Identification of the copyrighted work claimed to have been infringed\n - Identification of the allegedly infringing material\n - Contact information for the complainant\n - A statement of good faith belief that the use is not authorized\n - A statement, under penalty of perjury, that the information in the notice is accurate and that the complainant is authorized to act on behalf of the copyright owner\n- We will promptly investigate all legitimate DMCA takedown notices and take appropriate action, which may include content removal or account suspension.",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::10",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "10. Digital Millennium Copyright Act (DMCA) Compliance",
"url": "https://docs.nhcarrigan.com/legal/dmca#10-digital-millennium-copyright-act-(dmca)-compliance"
},
{
"content": "11. Counter-Notifications\n\n- If you believe your content was wrongly removed due to a DMCA takedown notice, you may submit a counter-notification.\n- Counter-notifications must include:\n - Identification of the removed material and its location before removal\n - A statement under penalty of perjury that you have a good faith belief the material was removed by mistake or misidentification\n - Your name, address, and telephone number\n - A statement that you consent to the jurisdiction of the federal district court for the judicial district in which you reside",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::11",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "11. Counter-Notifications",
"url": "https://docs.nhcarrigan.com/legal/dmca#11-counter-notifications"
},
{
"content": "12. Repeat Infringer Policy\n\n- We maintain a repeat infringer policy to ensure ongoing DMCA compliance.\n- Users who repeatedly infringe copyrights may have their accounts terminated.\n- We keep records of DMCA notices and counter-notifications to identify repeat infringers.",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::12",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "12. Repeat Infringer Policy",
"url": "https://docs.nhcarrigan.com/legal/dmca#12-repeat-infringer-policy"
},
{
"content": "13. Education and Awareness\n\n- We are committed to educating our community about intellectual property rights and responsibilities.\n- Regular updates and resources on copyright law and best practices will be provided.\n- Members are encouraged to seek clarification on any aspect of this policy they find unclear.",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::13",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "13. Education and Awareness",
"url": "https://docs.nhcarrigan.com/legal/dmca#13-education-and-awareness"
},
{
"content": "14. Policy Updates\n\n- This policy may be updated periodically to reflect changes in law, technology, or community needs.\n- Continued use of our community platforms constitutes acceptance of the current policy.",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::14",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "14. Policy Updates",
"url": "https://docs.nhcarrigan.com/legal/dmca#14-policy-updates"
},
{
"content": "15. Disclaimer\n\n- This policy is not exhaustive and does not constitute legal advice.\n- Users are encouraged to seek independent legal counsel for specific intellectual property matters.\n\nBy participating in our community, you agree to abide by this DMCA and Intellectual Property Compliance Policy. Failure to comply may result in content removal, account suspension, or other appropriate actions as determined by community administrators.",
"file": "src/content/docs/legal/dmca.md",
"id": "src/content/docs/legal/dmca.md::15",
"metadata": {
"title": "DMCA and Intellectual Property Compliance Policy"
},
"title": "15. Disclaimer",
"url": "https://docs.nhcarrigan.com/legal/dmca#15-disclaimer"
},
{
"content": "",
"file": "src/content/docs/legal/government.md",
"id": "src/content/docs/legal/government.md::0",
"metadata": {
"title": "Government Actions and Compliance"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/legal/government#"
},
{
"content": "1. Introduction\n\nThe purpose of this document is to maintain transparency regarding any government or legal authority's actions against our organisation that result in a release of your data to those authorities.",
"file": "src/content/docs/legal/government.md",
"id": "src/content/docs/legal/government.md::1",
"metadata": {
"title": "Government Actions and Compliance"
},
"title": "1. Introduction",
"url": "https://docs.nhcarrigan.com/legal/government#1-introduction"
},
{
"content": "1.1. Disclaimers\n\n- We do not provide any sort of proactive information to regulatory agencies.\n- We do not, and will never, set up \"backdoors\" or other direct access routes for regulatory agencies to surveil or access your data.\n- All data in this document cover the entirety of NHCarrigan's lifetime, from our inception in",
"file": "src/content/docs/legal/government.md",
"id": "src/content/docs/legal/government.md::2",
"metadata": {
"title": "Government Actions and Compliance"
},
"title": "1.1. Disclaimers",
"url": "https://docs.nhcarrigan.com/legal/government#11-disclaimers"
},
{
"content": "2. Requests for Information\n\nWe have received 0 requests for information/data from authoritative agencies.\n\n| Agency | Data Requested | Result |\n| ------ | -------------- | ------ |",
"file": "src/content/docs/legal/government.md",
"id": "src/content/docs/legal/government.md::3",
"metadata": {
"title": "Government Actions and Compliance"
},
"title": "2. Requests for Information",
"url": "https://docs.nhcarrigan.com/legal/government#2-requests-for-information"
},
{
"content": "3. Warrants and Subpoenas\n\nWe have been the subject of 0 warrants or subpoenas for our information/data.\n\n| Agency | Date of Action | Result |\n| ------ | -------------- | ------ |",
"file": "src/content/docs/legal/government.md",
"id": "src/content/docs/legal/government.md::4",
"metadata": {
"title": "Government Actions and Compliance"
},
"title": "3. Warrants and Subpoenas",
"url": "https://docs.nhcarrigan.com/legal/government#3-warrants-and-subpoenas"
},
{
"content": "4. Asset Seizures\n\nWe have had our data/information searched or seized 0 times.\n\n| Agency | Scope of Search | Result |\n| ------ | --------------- | ------ |",
"file": "src/content/docs/legal/government.md",
"id": "src/content/docs/legal/government.md::5",
"metadata": {
"title": "Government Actions and Compliance"
},
"title": "4. Asset Seizures",
"url": "https://docs.nhcarrigan.com/legal/government#4-asset-seizures"
},
{
"content": "All of Our Open Source Software are licensed under these terms.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::0",
"metadata": {
"title": "Naomi's Public License"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/legal/license#"
},
{
"content": "1. Definitions",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::1",
"metadata": {
"title": "Naomi's Public License"
},
"title": "1. Definitions",
"url": "https://docs.nhcarrigan.com/legal/license#1-definitions"
},
{
"content": "1.1. Software\n\nThe code, documentation text, and other related materials licensed under this License.\n\nThis includes, but is not limited to:\n\n- Source code files\n- Compiled binaries\n- Configuration files\n- User manuals and documentation\n- Development tools and scripts directly related to the software",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::2",
"metadata": {
"title": "Naomi's Public License"
},
"title": "1.1. Software",
"url": "https://docs.nhcarrigan.com/legal/license#11-software"
},
{
"content": "1.2. Assets\n\nThe non-Software copyrighted materials, such as images, logos, and names.\n\nThis may include:\n\n- Graphical elements (icons, backgrounds, etc.)\n- Audio files\n- Video content\n- Trademarks and brand elements\n- Any other creative works associated with the Software but not part of its functional code",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::3",
"metadata": {
"title": "Naomi's Public License"
},
"title": "1.2. Assets",
"url": "https://docs.nhcarrigan.com/legal/license#12-assets"
},
{
"content": "1.3. Package\n\nSoftware specifically bundled to be used in other Works.\n\nThis refers to:\n\n- Libraries or modules designed for integration\n- APIs or SDKs\n- Any component of the Software intended for use within larger systems or applications",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::4",
"metadata": {
"title": "Naomi's Public License"
},
"title": "1.3. Package",
"url": "https://docs.nhcarrigan.com/legal/license#13-package"
},
{
"content": "1.4. We, Us, and Our\n\nNaomi Carrigan, and her software consulting firm nhcarrigan.\n\nThis includes:\n\n- Naomi Carrigan in her individual capacity\n- All employees, contractors, and representatives of nhcarrigan\n- Any successors or assigns of nhcarrigan",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::5",
"metadata": {
"title": "Naomi's Public License"
},
"title": "1.4. We, Us, and Our",
"url": "https://docs.nhcarrigan.com/legal/license#14-we,-us,-and-our"
},
{
"content": "1.5. You and Your\n\nThe individual or entity exercising the rights granted under this License.\n\nThis may refer to:\n\n- Individual users\n- Organizations or companies\n- Government entities\n- Any other legal entity using or modifying the Software",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::6",
"metadata": {
"title": "Naomi's Public License"
},
"title": "1.5. You and Your",
"url": "https://docs.nhcarrigan.com/legal/license#15-you-and-your"
},
{
"content": "1.6. Contributor(s)\n\nAn individual or entity who contributes to the Software.\n\nThis includes anyone who:\n\n- Submits code changes or additions\n- Provides documentation improvements\n- Offers bug fixes or feature enhancements\n- Contributes in any other substantive way to the development of the Software",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::7",
"metadata": {
"title": "Naomi's Public License"
},
"title": "1.6. Contributor(s)",
"url": "https://docs.nhcarrigan.com/legal/license#16-contributor(s)"
},
{
"content": "1.7. Contribution(s)\n\nAny work submitted by a Contributor to the Software, such as Source Code or Assets.\n\nThis encompasses:\n\n- Code submissions (additions, modifications, or deletions)\n- Documentation updates\n- Asset contributions (e.g., new icons or graphics)\n- Bug reports with proposed fixes\n- Feature suggestions with implementation details",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::8",
"metadata": {
"title": "Naomi's Public License"
},
"title": "1.7. Contribution(s)",
"url": "https://docs.nhcarrigan.com/legal/license#17-contribution(s)"
},
{
"content": "1.8. Source Code\n\nThe code in its original form, as written by the author(s).\n\nThis refers to:\n\n- Human-readable programming language files\n- Configuration and build scripts\n- Any other files necessary to compile or run the Software",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::9",
"metadata": {
"title": "Naomi's Public License"
},
"title": "1.8. Source Code",
"url": "https://docs.nhcarrigan.com/legal/license#18-source-code"
},
{
"content": "1.9. Open Source\n\nSoftware where the Source Code has been made publicly available under this License.\n\nThis implies:\n\n- The code can be viewed by anyone\n- Users have the right to modify and distribute the code under the terms of this License\n- The software adheres to open source principles of transparency and collaboration",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::10",
"metadata": {
"title": "Naomi's Public License"
},
"title": "1.9. Open Source",
"url": "https://docs.nhcarrigan.com/legal/license#19-open-source"
},
{
"content": "1.10. License\n\nThis document.\n\nSpecifically:\n\n- The entire text of this agreement\n- Any referenced attachments or appendices\n- The most current version as indicated in the document",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::11",
"metadata": {
"title": "Naomi's Public License"
},
"title": "1.10. License",
"url": "https://docs.nhcarrigan.com/legal/license#110-license"
},
{
"content": "1.11. Works\n\nAny works derived from the Software, such as modifications, distributions, and incorporations.\n\nThis includes:\n\n- Modified versions of the Software\n- Applications or systems that incorporate the Software\n- Distributions of the Software, whether modified or not\n- Any product that significantly relies on or extends the functionality of the Software",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::12",
"metadata": {
"title": "Naomi's Public License"
},
"title": "1.11. Works",
"url": "https://docs.nhcarrigan.com/legal/license#111-works"
},
{
"content": "2. Use of Software\n\nThis license grants You the right to use Our Open Source software under the following terms.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::13",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2. Use of Software",
"url": "https://docs.nhcarrigan.com/legal/license#2-use-of-software"
},
{
"content": "2.1. Do No Harm\n\nYou may not use Our Software in any way that may cause harm to Us, Our Software, or Our Assets. Additionally, You may not use Our Software in any way that may cause harm to other individuals or entities.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::14",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.1. Do No Harm",
"url": "https://docs.nhcarrigan.com/legal/license#21-do-no-harm"
},
{
"content": "2.1.1. Definition of Harm\n\nFor the purposes of this License, \"harm\" includes, but is not limited to:\n\n- Financial loss or damage\n- Violation of privacy or data protection laws\n- Engagement in or facilitation of illegal activities\n- Promotion or encouragement of hate speech or discrimination\n- Reputational damage\n- Intellectual property infringement\n- Compromise of system security or integrity\n- Physical or emotional harm to individuals",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::15",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.1.1. Definition of Harm",
"url": "https://docs.nhcarrigan.com/legal/license#211-definition-of-harm"
},
{
"content": "2.1.2. Specific Prohibitions\n\nWithout limiting the generality of the above, You are explicitly prohibited from using Our Software:\n\n- To conduct or facilitate fraudulent activities\n- To distribute malware or engage in cyber attacks\n- To harvest or collect personal data without proper consent\n- To impersonate others or engage in identity theft\n- To violate the terms of service of any platform or service\n- To interfere with the operation of other software or networks\n- To create or distribute content that is defamatory, obscene, or otherwise illegal",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::16",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.1.2. Specific Prohibitions",
"url": "https://docs.nhcarrigan.com/legal/license#212-specific-prohibitions"
},
{
"content": "2.1.3. Responsibility for Downstream Usage\n\nIf You distribute or make available Our Software to others, You are responsible for ensuring that those users also adhere to the \"Do No Harm\" principle outlined in this License.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::17",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.1.3. Responsibility for Downstream Usage",
"url": "https://docs.nhcarrigan.com/legal/license#213-responsibility-for-downstream-usage"
},
{
"content": "2.1.4. Reporting Harmful Usage\n\nIf You become aware of any use of Our Software that violates this \"Do No Harm\" principle, You are encouraged to report it to Us immediately through our forums: https://forum.nhcarrigan.com",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::18",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.1.4. Reporting Harmful Usage",
"url": "https://docs.nhcarrigan.com/legal/license#214-reporting-harmful-usage"
},
{
"content": "2.1.5. Consequences of Violation\n\nViolation of this \"Do No Harm\" principle may result in immediate termination of Your rights under this License, and may subject You to legal action where applicable.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::19",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.1.5. Consequences of Violation",
"url": "https://docs.nhcarrigan.com/legal/license#215-consequences-of-violation"
},
{
"content": "2.1.6. Indemnification\n\nYou agree to indemnify and hold Us harmless from any claims, damages, or legal actions arising from Your use of Our Software in violation of this \"Do No Harm\" principle.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::20",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.1.6. Indemnification",
"url": "https://docs.nhcarrigan.com/legal/license#216-indemnification"
},
{
"content": "2.2. Code of Conduct\n\nUse of Our Software must not be in violation of Our Code of Conduct. This requirement extends to all aspects of interaction with Our Software, including but not limited to:",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::21",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.2. Code of Conduct",
"url": "https://docs.nhcarrigan.com/legal/license#22-code-of-conduct"
},
{
"content": "2.2.1. User Behavior\n\nAll users of Our Software must adhere to the principles outlined in Our Code of Conduct when interacting with other users, contributors, or maintainers in any forum related to Our Software.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::22",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.2.1. User Behavior",
"url": "https://docs.nhcarrigan.com/legal/license#221-user-behavior"
},
{
"content": "2.2.2. Content Creation\n\nAny content created using Our Software must comply with the standards set forth in Our Code of Conduct, including but not limited to avoiding hate speech, discrimination, and harassment.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::23",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.2.2. Content Creation",
"url": "https://docs.nhcarrigan.com/legal/license#222-content-creation"
},
{
"content": "2.2.3. Project Atmosphere\n\nUsers who maintain projects that incorporate Our Software are responsible for fostering an inclusive and respectful environment in line with Our Code of Conduct.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::24",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.2.3. Project Atmosphere",
"url": "https://docs.nhcarrigan.com/legal/license#223-project-atmosphere"
},
{
"content": "2.2.4. Reporting Violations\n\nUsers are encouraged to report any violations of the Code of Conduct they observe in relation to Our Software. Reports can be made through license@nhcarrigan.com",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::25",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.2.4. Reporting Violations",
"url": "https://docs.nhcarrigan.com/legal/license#224-reporting-violations"
},
{
"content": "2.2.5. Consequences of Violation\n\nViolations of Our Code of Conduct may result in:\n\n- Warnings\n- Temporary suspension of access to Our Software or related communities\n- Permanent ban from using Our Software or participating in related communities\n- Revocation of this License",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::26",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.2.5. Consequences of Violation",
"url": "https://docs.nhcarrigan.com/legal/license#225-consequences-of-violation"
},
{
"content": "2.2.6. Enforcement\n\nWe reserve the right to enforce the Code of Conduct at Our discretion. Enforcement actions will be proportional to the severity and frequency of the violations.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::27",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.2.6. Enforcement",
"url": "https://docs.nhcarrigan.com/legal/license#226-enforcement"
},
{
"content": "2.2.7. Updates to Code of Conduct\n\nUsers are responsible for staying informed about any updates to Our Code of Conduct.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::28",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.2.7. Updates to Code of Conduct",
"url": "https://docs.nhcarrigan.com/legal/license#227-updates-to-code-of-conduct"
},
{
"content": "2.3. Source Control\n\nCustom instances of Our Software must remain Open Source under this License. This requirement ensures transparency, promotes collaboration, and maintains the integrity of Our Software ecosystem.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::29",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.3. Source Control",
"url": "https://docs.nhcarrigan.com/legal/license#23-source-control"
},
{
"content": "2.3.1. Definition of Custom Instances\n\nFor the purposes of this License, \"custom instances\" refer to any modified, adapted, or derivative versions of Our Software created by You or any third party.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::30",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.3.1. Definition of Custom Instances",
"url": "https://docs.nhcarrigan.com/legal/license#231-definition-of-custom-instances"
},
{
"content": "2.3.2. Open Source Requirement\n\nAll custom instances of Our Software must:\n\n- Be made available to the public in source code form\n- Be licensed under the terms of this License\n- Include a copy of this License with the source code",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::31",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.3.2. Open Source Requirement",
"url": "https://docs.nhcarrigan.com/legal/license#232-open-source-requirement"
},
{
"content": "2.3.3. Source Code Availability\n\nThe source code for custom instances must be:\n\n- Hosted in a publicly accessible repository (e.g., GitHub, GitLab, CodeBerg)\n- Made available free of charge\n- Kept up-to-date with any changes or modifications",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::32",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.3.3. Source Code Availability",
"url": "https://docs.nhcarrigan.com/legal/license#233-source-code-availability"
},
{
"content": "2.3.4. Documentation of Changes\n\nFor any custom instance, You must:\n\n- Clearly document all modifications made to Our Software\n- Provide a changelog detailing the nature and date of each significant change\n- Identify the original source of Our Software and acknowledge Our copyright",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::33",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.3.4. Documentation of Changes",
"url": "https://docs.nhcarrigan.com/legal/license#234-documentation-of-changes"
},
{
"content": "2.3.5. Forking and Branching\n\nWhen creating custom instances through forking or branching:\n\n- The fork or branch must be public and accessible\n- The relationship to Our original Software must be clearly stated\n- Any significant divergence from Our Software should be clearly communicated",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::34",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.3.5. Forking and Branching",
"url": "https://docs.nhcarrigan.com/legal/license#235-forking-and-branching"
},
{
"content": "2.3.6. Contributions Back to Original Software\n\nWhile not required, You are encouraged to contribute improvements and bug fixes back to Our original Software through pull requests or other appropriate means.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::35",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.3.6. Contributions Back to Original Software",
"url": "https://docs.nhcarrigan.com/legal/license#236-contributions-back-to-original-software"
},
{
"content": "2.3.7. Exceptions\n\nAny exceptions to these Source Control requirements must be explicitly granted by Us in writing.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::36",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.3.7. Exceptions",
"url": "https://docs.nhcarrigan.com/legal/license#237-exceptions"
},
{
"content": "2.3.8. Compliance Verification\n\nWe reserve the right to verify compliance with these Source Control requirements at any time. Upon request, You must provide Us with access to the source code and documentation for any custom instance of Our Software.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::37",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.3.8. Compliance Verification",
"url": "https://docs.nhcarrigan.com/legal/license#238-compliance-verification"
},
{
"content": "2.3.9. Consequences of Non-Compliance\n\nFailure to comply with these Source Control requirements may result in:\n\n- Termination of Your rights under this License\n- A requirement to immediately cease distribution of the non-compliant custom instance\n- Legal action to enforce compliance",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::38",
"metadata": {
"title": "Naomi's Public License"
},
"title": "2.3.9. Consequences of Non-Compliance",
"url": "https://docs.nhcarrigan.com/legal/license#239-consequences-of-non-compliance"
},
{
"content": "3. Modification of Software\n\nModifications of Our Software are permitted under the following terms.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::39",
"metadata": {
"title": "Naomi's Public License"
},
"title": "3. Modification of Software",
"url": "https://docs.nhcarrigan.com/legal/license#3-modification-of-software"
},
{
"content": "3.1. Licensing\n\nAll modifications of Our Software must be licensed under this License. This ensures consistency in the licensing terms across all versions and derivatives of Our Software.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::40",
"metadata": {
"title": "Naomi's Public License"
},
"title": "3.1. Licensing",
"url": "https://docs.nhcarrigan.com/legal/license#31-licensing"
},
{
"content": "3.1.1. Definition of Modifications\n\nFor the purposes of this License, \"modifications\" include, but are not limited to:\n\n- Any changes to the source code of Our Software\n- Additions to or deletions from Our Software's functionality\n- Alterations to Our Software's user interface\n- Translations of Our Software into other languages\n- Adaptations of Our Software for different platforms or environments",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::41",
"metadata": {
"title": "Naomi's Public License"
},
"title": "3.1.1. Definition of Modifications",
"url": "https://docs.nhcarrigan.com/legal/license#311-definition-of-modifications"
},
{
"content": "3.1.2. Scope of Licensing Requirement\n\nThe requirement to license modifications under this License applies to:\n\n- All modified components of Our Software\n- Any new components that are integral to the functioning of the modified version\n- Documentation related to the modifications",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::42",
"metadata": {
"title": "Naomi's Public License"
},
"title": "3.1.2. Scope of Licensing Requirement",
"url": "https://docs.nhcarrigan.com/legal/license#312-scope-of-licensing-requirement"
},
{
"content": "3.1.3. Inclusion of License\n\nWhen distributing modifications of Our Software, You must:\n\n- Include a complete copy of this License with the distribution\n- Retain all copyright, patent, trademark, and attribution notices from the original Software\n- State clearly that the Software has been modified and provide a brief description of the modifications",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::43",
"metadata": {
"title": "Naomi's Public License"
},
"title": "3.1.3. Inclusion of License",
"url": "https://docs.nhcarrigan.com/legal/license#313-inclusion-of-license"
},
{
"content": "3.1.4. Nomenclature and Branding\n\nModified versions of Our Software:\n\n- Must be clearly distinguished from the original Software in name and branding\n- May not use Our trademarks or logos without Our explicit permission\n- Should include a statement that they are derived from Our Software, with a link to the original Software's repository",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::44",
"metadata": {
"title": "Naomi's Public License"
},
"title": "3.1.4. Nomenclature and Branding",
"url": "https://docs.nhcarrigan.com/legal/license#314-nomenclature-and-branding"
},
{
"content": "3.1.5. Compatibility with Original License\n\nAny additional terms You wish to apply to Your modifications:\n\n- Must not conflict with the terms of this License\n- Must be clearly stated as applying only to Your modifications\n- May not alter or restrict the terms of this License as they apply to the original Software",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::45",
"metadata": {
"title": "Naomi's Public License"
},
"title": "3.1.5. Compatibility with Original License",
"url": "https://docs.nhcarrigan.com/legal/license#315-compatibility-with-original-license"
},
{
"content": "3.1.6. Contributions and Sublicensing\n\nBy applying this License to modifications of Our Software:\n\n- You grant Us and all recipients of the modified Software the same rights and obligations as outlined in this License\n- You may not sublicense the modifications under any other terms",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::46",
"metadata": {
"title": "Naomi's Public License"
},
"title": "3.1.6. Contributions and Sublicensing",
"url": "https://docs.nhcarrigan.com/legal/license#316-contributions-and-sublicensing"
},
{
"content": "3.1.7. Notification of Significant Modifications\n\nFor significant modifications that substantially alter the functionality or purpose of Our Software, You are encouraged to:\n\n- Notify Us of the nature and extent of the modifications\n- Consider submitting the modifications as contributions to the original Software",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::47",
"metadata": {
"title": "Naomi's Public License"
},
"title": "3.1.7. Notification of Significant Modifications",
"url": "https://docs.nhcarrigan.com/legal/license#317-notification-of-significant-modifications"
},
{
"content": "3.1.8. Compliance and Enforcement\n\nWe reserve the right to:\n\n- Verify compliance with these licensing requirements\n- Request access to the source code of any modified versions of Our Software\n- Take appropriate action, including legal measures, to enforce these licensing terms",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::48",
"metadata": {
"title": "Naomi's Public License"
},
"title": "3.1.8. Compliance and Enforcement",
"url": "https://docs.nhcarrigan.com/legal/license#318-compliance-and-enforcement"
},
{
"content": "4. Incorporation of Software\n\nElements of Our Software, such as code snippets, may be incorporated into other Works under the following terms.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::49",
"metadata": {
"title": "Naomi's Public License"
},
"title": "4. Incorporation of Software",
"url": "https://docs.nhcarrigan.com/legal/license#4-incorporation-of-software"
},
{
"content": "4.1. Licensing\n\nThe specific elements of Our Software used in another Work must be made available under this License. The portions of the project that are not incorporated from Our Software may be licensed under any terms. This approach allows for flexibility in incorporating Our Software into larger projects while maintaining the integrity of Our licensing terms.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::50",
"metadata": {
"title": "Naomi's Public License"
},
"title": "4.1. Licensing",
"url": "https://docs.nhcarrigan.com/legal/license#41-licensing"
},
{
"content": "4.1.1. Definition of Incorporation\n\nFor the purposes of this License, \"incorporation\" refers to:\n\n- Direct inclusion of Our Software's code in another Work\n- Adaptation of Our Software's code for use in another Work",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::51",
"metadata": {
"title": "Naomi's Public License"
},
"title": "4.1.1. Definition of Incorporation",
"url": "https://docs.nhcarrigan.com/legal/license#411-definition-of-incorporation"
},
{
"content": "4.1.2. Scope of License Application\n\nThe terms of this License apply specifically to:\n\n- Any code, functions, or modules directly copied from Our Software\n- Any derivatives or modifications of Our Software's code\n- Any part of Our Software that is essential to the functioning of the incorporated elements",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::52",
"metadata": {
"title": "Naomi's Public License"
},
"title": "4.1.2. Scope of License Application",
"url": "https://docs.nhcarrigan.com/legal/license#412-scope-of-license-application"
},
{
"content": "4.1.3. Dual Licensing\n\nIn cases where Our Software is incorporated into a larger Work:\n\n- The incorporated elements must be clearly identified\n- These elements must be made available under the terms of this License\n- The remainder of the Work may be licensed under different terms, provided they do not conflict with this License",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::53",
"metadata": {
"title": "Naomi's Public License"
},
"title": "4.1.3. Dual Licensing",
"url": "https://docs.nhcarrigan.com/legal/license#413-dual-licensing"
},
{
"content": "4.1.4. License Compatibility\n\nWhen incorporating Our Software into a Work with a different license:\n\n- You must ensure that the terms of the other license do not restrict or interfere with the terms of this License as it applies to Our Software\n- If conflicts arise, the terms of this License take precedence for the incorporated elements",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::54",
"metadata": {
"title": "Naomi's Public License"
},
"title": "4.1.4. License Compatibility",
"url": "https://docs.nhcarrigan.com/legal/license#414-license-compatibility"
},
{
"content": "4.1.5. Notification of Incorporation\n\nWhen incorporating Our Software into another Work, You should:\n\n- Clearly indicate which parts of the Work are derived from or incorporate Our Software\n- Provide a copy of this License or a link to it\n- Explain how users can obtain the source code for the incorporated elements under the terms of this License",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::55",
"metadata": {
"title": "Naomi's Public License"
},
"title": "4.1.5. Notification of Incorporation",
"url": "https://docs.nhcarrigan.com/legal/license#415-notification-of-incorporation"
},
{
"content": "4.1.6. Distribution of Incorporated Elements\n\nWhen distributing a Work that incorporates Our Software:\n\n- You must make the source code of the incorporated elements available under this License\n- You may choose how to make the rest of the Work's source code available, if at all",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::56",
"metadata": {
"title": "Naomi's Public License"
},
"title": "4.1.6. Distribution of Incorporated Elements",
"url": "https://docs.nhcarrigan.com/legal/license#416-distribution-of-incorporated-elements"
},
{
"content": "4.1.7. Attribution for Incorporated Elements\n\nYou must provide proper attribution for the incorporated elements as outlined in section 7 of this License.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::57",
"metadata": {
"title": "Naomi's Public License"
},
"title": "4.1.7. Attribution for Incorporated Elements",
"url": "https://docs.nhcarrigan.com/legal/license#417-attribution-for-incorporated-elements"
},
{
"content": "4.1.8. Modifications to Incorporated Elements\n\nAny modifications to the elements incorporated from Our Software:\n\n- Must also be made available under this License\n- Should be clearly documented and distinguished from the original incorporated elements",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::58",
"metadata": {
"title": "Naomi's Public License"
},
"title": "4.1.8. Modifications to Incorporated Elements",
"url": "https://docs.nhcarrigan.com/legal/license#418-modifications-to-incorporated-elements"
},
{
"content": "4.1.9. Responsibility for License Compliance\n\nYou are responsible for ensuring that the incorporation of Our Software and the licensing of the resulting Work comply with all applicable license terms, including this License.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::59",
"metadata": {
"title": "Naomi's Public License"
},
"title": "4.1.9. Responsibility for License Compliance",
"url": "https://docs.nhcarrigan.com/legal/license#419-responsibility-for-license-compliance"
},
{
"content": "5. Use of Packages\n\nCertain Software may be packaged and distributed specifically for use in other Works. Software that We distribute in such a manner may be used in other Works under the following terms.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::60",
"metadata": {
"title": "Naomi's Public License"
},
"title": "5. Use of Packages",
"url": "https://docs.nhcarrigan.com/legal/license#5-use-of-packages"
},
{
"content": "5.1. Source Code\n\nWorks that solely use Our Packages, and do not incorporate any other elements of Our Software, are not required to provide a link to the Source Code of Our Software. This provision aims to simplify the use of Our Packages in other projects.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::61",
"metadata": {
"title": "Naomi's Public License"
},
"title": "5.1. Source Code",
"url": "https://docs.nhcarrigan.com/legal/license#51-source-code"
},
{
"content": "5.1.1. Definition of \"Solely Using Our Packages\"\n\nFor the purposes of this License, \"solely using Our Packages\" means:\n\n- Utilizing Our Packages as dependencies or modules in Your Work\n- Not modifying the internal code of Our Packages\n- Not incorporating any other parts of Our Software beyond the Packages",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::62",
"metadata": {
"title": "Naomi's Public License"
},
"title": "5.1.1. Definition of \"Solely Using Our Packages\"",
"url": "https://docs.nhcarrigan.com/legal/license#511-definition-of-\"solely-using-our-packages\""
},
{
"content": "5.1.2. Scope of Exemption\n\nThis exemption from providing a link to Our Source Code:\n\n- Applies only to Works that use Our Packages as-is\n- Does not extend to any modifications or derivatives of Our Packages",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::63",
"metadata": {
"title": "Naomi's Public License"
},
"title": "5.1.2. Scope of Exemption",
"url": "https://docs.nhcarrigan.com/legal/license#512-scope-of-exemption"
},
{
"content": "5.1.3. Recommended Practice\n\nWhile not required, We encourage You to:\n\n- Mention the use of Our Packages in Your documentation\n- Provide a link to Our Packages' documentation or repository for reference",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::64",
"metadata": {
"title": "Naomi's Public License"
},
"title": "5.1.3. Recommended Practice",
"url": "https://docs.nhcarrigan.com/legal/license#513-recommended-practice"
},
{
"content": "5.1.4. Responsibility for Updates\n\nYou are responsible for:\n\n- Keeping Our Packages updated in Your Work\n- Addressing any security issues that may arise from using Our Packages",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::65",
"metadata": {
"title": "Naomi's Public License"
},
"title": "5.1.4. Responsibility for Updates",
"url": "https://docs.nhcarrigan.com/legal/license#514-responsibility-for-updates"
},
{
"content": "5.1.5. No Implication of Endorsement\n\nThe use of Our Packages does not imply Our endorsement of Your Work. You must not claim or imply such endorsement without Our explicit permission.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::66",
"metadata": {
"title": "Naomi's Public License"
},
"title": "5.1.5. No Implication of Endorsement",
"url": "https://docs.nhcarrigan.com/legal/license#515-no-implication-of-endorsement"
},
{
"content": "6. Distribution\n\nOur Software, as well as any Works derived from Our Software, may be distributed under the following terms.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::67",
"metadata": {
"title": "Naomi's Public License"
},
"title": "6. Distribution",
"url": "https://docs.nhcarrigan.com/legal/license#6-distribution"
},
{
"content": "6.1. Source Code\n\nAny Works that are publicly hosted must link to:\n\n- The Source Code for the Work, if the Work falls under Section 2.\n- The Source Code for incorporations of or modifications to Our Software, if the Work falls under Sections 3 or 4.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::68",
"metadata": {
"title": "Naomi's Public License"
},
"title": "6.1. Source Code",
"url": "https://docs.nhcarrigan.com/legal/license#61-source-code"
},
{
"content": "6.1.1. Definition of \"Publicly Hosted\"\n\nFor the purposes of this License, \"publicly hosted\" means:\n\n- Available for use, download, or access by the general public\n- Distributed through any public platform, including but not limited to websites, app stores, or code repositories\n- Shared with any third parties outside of Your organization",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::69",
"metadata": {
"title": "Naomi's Public License"
},
"title": "6.1.1. Definition of \"Publicly Hosted\"",
"url": "https://docs.nhcarrigan.com/legal/license#611-definition-of-\"publicly-hosted\""
},
{
"content": "6.1.2. Source Code Availability Requirements\n\nThe Source Code must be:\n\n- Easily accessible through a prominent link\n- Available without requiring payment or registration\n- Complete and sufficient to build and run the Work\n- Provided in a format commonly used for software development",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::70",
"metadata": {
"title": "Naomi's Public License"
},
"title": "6.1.2. Source Code Availability Requirements",
"url": "https://docs.nhcarrigan.com/legal/license#612-source-code-availability-requirements"
},
{
"content": "6.1.3. Linking Requirements\n\nThe link to the Source Code must be:\n\n- Clearly visible and easily discoverable\n- Included in the Work's documentation, README file, or equivalent\n- Present on any website or platform where the Work is distributed\n- Functional and directly leading to the Source Code",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::71",
"metadata": {
"title": "Naomi's Public License"
},
"title": "6.1.3. Linking Requirements",
"url": "https://docs.nhcarrigan.com/legal/license#613-linking-requirements"
},
{
"content": "6.1.4. Version Correspondence\n\nThe linked Source Code must:\n\n- Correspond exactly to the distributed version of the Work\n- Be updated promptly with each new release or significant update",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::72",
"metadata": {
"title": "Naomi's Public License"
},
"title": "6.1.4. Version Correspondence",
"url": "https://docs.nhcarrigan.com/legal/license#614-version-correspondence"
},
{
"content": "6.1.5. Hosting and Maintenance\n\nYou are responsible for:\n\n- Ensuring the continuous availability of the linked Source Code\n- Maintaining the integrity and security of the hosting platform\n- Providing an alternative means of accessing the Source Code if the primary link becomes unavailable",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::73",
"metadata": {
"title": "Naomi's Public License"
},
"title": "6.1.5. Hosting and Maintenance",
"url": "https://docs.nhcarrigan.com/legal/license#615-hosting-and-maintenance"
},
{
"content": "6.1.6. License Inclusion\n\nThe Source Code repository must include:\n\n- A copy of this License\n- Clear instructions on how to obtain and use the Source Code",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::74",
"metadata": {
"title": "Naomi's Public License"
},
"title": "6.1.6. License Inclusion",
"url": "https://docs.nhcarrigan.com/legal/license#616-license-inclusion"
},
{
"content": "6.1.7. Modifications and Incorporations\n\nFor Works falling under Sections 3 or 4:\n\n- Clearly indicate which parts are derived from or incorporate Our Software\n- Provide separate links to the Source Code of Our original Software and Your modifications, if applicable",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::75",
"metadata": {
"title": "Naomi's Public License"
},
"title": "6.1.7. Modifications and Incorporations",
"url": "https://docs.nhcarrigan.com/legal/license#617-modifications-and-incorporations"
},
{
"content": "6.1.8. Exceptions\n\nExemptions from these Source Code linking requirements:\n\n- Must be explicitly granted by Us in writing\n- Will be considered on a case-by-case basis\n- Do not exempt You from other terms of this License",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::76",
"metadata": {
"title": "Naomi's Public License"
},
"title": "6.1.8. Exceptions",
"url": "https://docs.nhcarrigan.com/legal/license#618-exceptions"
},
{
"content": "6.1.9. Consequences of Non-Compliance\n\nFailure to comply with these Source Code linking requirements may result in:\n\n- Revocation of Your rights under this License\n- A requirement to immediately cease distribution of the Work\n- Legal action to enforce compliance",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::77",
"metadata": {
"title": "Naomi's Public License"
},
"title": "6.1.9. Consequences of Non-Compliance",
"url": "https://docs.nhcarrigan.com/legal/license#619-consequences-of-non-compliance"
},
{
"content": "7. Attribution\n\nAll modifications of Our Software must be attributed to the original author(s) of the Software. This requirement ensures proper recognition of the original creators and maintains transparency about the software's lineage.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::78",
"metadata": {
"title": "Naomi's Public License"
},
"title": "7. Attribution",
"url": "https://docs.nhcarrigan.com/legal/license#7-attribution"
},
{
"content": "7.1 Required Attribution Elements\n\nWhen distributing modifications of Our Software, You must include the following attribution elements:\n\n- The name(s) of the original author(s) or organization(s)\n- The title of the original Software\n- A link to the original Software's repository or website\n- The copyright notice associated with the original Software",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::79",
"metadata": {
"title": "Naomi's Public License"
},
"title": "7.1 Required Attribution Elements",
"url": "https://docs.nhcarrigan.com/legal/license#71-required-attribution-elements"
},
{
"content": "7.2. Placement of Attribution\n\nThe attribution must be prominently displayed in:\n\n- The source code of the modified Software\n- Any documentation accompanying the modified Software\n- The user interface, if applicable and reasonable",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::80",
"metadata": {
"title": "Naomi's Public License"
},
"title": "7.2. Placement of Attribution",
"url": "https://docs.nhcarrigan.com/legal/license#72-placement-of-attribution"
},
{
"content": "7.3. Format of Attribution\n\nThe attribution should be presented in a clear and readable format. For example:\n\n```md\nThis software is a modification of [Original Software Name] by Naomi Carrigan.\nOriginal software: [Link to original repository]\nCopyright (c) 2024 Naomi Carrigan\n```",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::81",
"metadata": {
"title": "Naomi's Public License"
},
"title": "7.3. Format of Attribution",
"url": "https://docs.nhcarrigan.com/legal/license#73-format-of-attribution"
},
{
"content": "7.4. Attribution in Derivative Works\n\nIf Your modifications result in a substantially different Work:\n\n- You must still provide attribution to the original Software\n- You may add Your own copyright notice alongside the original attribution\n- You should clearly indicate which parts are Your modifications",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::82",
"metadata": {
"title": "Naomi's Public License"
},
"title": "7.4. Attribution in Derivative Works",
"url": "https://docs.nhcarrigan.com/legal/license#74-attribution-in-derivative-works"
},
{
"content": "7.5. Prohibition on Misattribution\n\nYou must not:\n\n- Misrepresent the origin of the Software\n- Imply endorsement by the original authors without explicit permission\n- Remove or alter any existing attribution in the original Software",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::83",
"metadata": {
"title": "Naomi's Public License"
},
"title": "7.5. Prohibition on Misattribution",
"url": "https://docs.nhcarrigan.com/legal/license#75-prohibition-on-misattribution"
},
{
"content": "7.6. Attribution in Binary Distributions\n\nIf You distribute only binary versions of the modified Software:\n\n- The attribution must be included in accompanying documentation\n- You must provide a means for users to view the full attribution and license",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::84",
"metadata": {
"title": "Naomi's Public License"
},
"title": "7.6. Attribution in Binary Distributions",
"url": "https://docs.nhcarrigan.com/legal/license#76-attribution-in-binary-distributions"
},
{
"content": "7.7 Attribution in Larger Works\n\nIf You include the modified Software as part of a larger work:\n\n- The attribution for Our Software must be clearly distinguishable\n- You must not imply that the entire work is governed by this License",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::85",
"metadata": {
"title": "Naomi's Public License"
},
"title": "7.7 Attribution in Larger Works",
"url": "https://docs.nhcarrigan.com/legal/license#77-attribution-in-larger-works"
},
{
"content": "7.8. Updates to Attribution\n\nYou are responsible for keeping the attribution up-to-date if:\n\n- The original Software updates its attribution requirements\n- You incorporate additional third-party components that require attribution",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::86",
"metadata": {
"title": "Naomi's Public License"
},
"title": "7.8. Updates to Attribution",
"url": "https://docs.nhcarrigan.com/legal/license#78-updates-to-attribution"
},
{
"content": "7.9. Waiver of Attribution\n\nAny waiver of these attribution requirements must be explicitly granted by Us in writing.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::87",
"metadata": {
"title": "Naomi's Public License"
},
"title": "7.9. Waiver of Attribution",
"url": "https://docs.nhcarrigan.com/legal/license#79-waiver-of-attribution"
},
{
"content": "8. Downstream Behaviour\n\nWorks that use or modify our Software or Packages are still required to follow our Code of Conduct. This ensures that all projects associated with Our Software maintain ethical standards and foster a positive community.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::88",
"metadata": {
"title": "Naomi's Public License"
},
"title": "8. Downstream Behaviour",
"url": "https://docs.nhcarrigan.com/legal/license#8-downstream-behaviour"
},
{
"content": "8.1. Scope of Code of Conduct Application\n\nThe Code of Conduct applies to:\n\n- The development process of Works using Our Packages\n- Any community interactions related to the use of Our Packages\n- Support forums, issue trackers, or other platforms where Our Packages are discussed in relation to Your Work",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::89",
"metadata": {
"title": "Naomi's Public License"
},
"title": "8.1. Scope of Code of Conduct Application",
"url": "https://docs.nhcarrigan.com/legal/license#81-scope-of-code-of-conduct-application"
},
{
"content": "8.2. Responsibility for Enforcement\n\nYou are responsible for:\n\n- Ensuring that contributors to Your Work are aware of and adhere to Our Code of Conduct\n- Enforcing the Code of Conduct in Your project's community spaces\n- Addressing violations of the Code of Conduct promptly and appropriately",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::90",
"metadata": {
"title": "Naomi's Public License"
},
"title": "8.2. Responsibility for Enforcement",
"url": "https://docs.nhcarrigan.com/legal/license#82-responsibility-for-enforcement"
},
{
"content": "8.3. Reporting Violations\n\nIf You encounter violations of the Code of Conduct related to the use of Our Packages:\n\n- You should address them within Your project's scope if they occur in Your community spaces\n- You may report serious or persistent violations to Us for further action",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::91",
"metadata": {
"title": "Naomi's Public License"
},
"title": "8.3. Reporting Violations",
"url": "https://docs.nhcarrigan.com/legal/license#83-reporting-violations"
},
{
"content": "8.4. Consequences of Non-Compliance\n\nFailure to adhere to the Code of Conduct may result in:\n\n- Revocation of Your right to use Our Packages\n- Disassociation of Your Work from Our Software ecosystem\n- Public notice of non-compliance, if deemed necessary",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::92",
"metadata": {
"title": "Naomi's Public License"
},
"title": "8.4. Consequences of Non-Compliance",
"url": "https://docs.nhcarrigan.com/legal/license#84-consequences-of-non-compliance"
},
{
"content": "8.5. Modifications to the Code of Conduct\n\nWe reserve the right to update Our Code of Conduct. You are responsible for:\n\n- Staying informed about any changes to the Code of Conduct\n- Implementing updated versions of the Code of Conduct in a timely manner",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::93",
"metadata": {
"title": "Naomi's Public License"
},
"title": "8.5. Modifications to the Code of Conduct",
"url": "https://docs.nhcarrigan.com/legal/license#85-modifications-to-the-code-of-conduct"
},
{
"content": "8.6. Extending the Code of Conduct\n\nYou may extend or adapt the Code of Conduct for Your specific project needs, provided that:\n\n- Your modifications do not weaken or contradict Our original Code of Conduct\n- You clearly indicate which parts are Your extensions",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::94",
"metadata": {
"title": "Naomi's Public License"
},
"title": "8.6. Extending the Code of Conduct",
"url": "https://docs.nhcarrigan.com/legal/license#86-extending-the-code-of-conduct"
},
{
"content": "9. Assets\n\nAny non-Software Asset, unless specifically provided with the Source Code of Our Software, may not be used in any Modifications, Incorporations, or Distributions of Our Software.\n\nAssets specifically belong to Us, and the License does not grant any rights to reuse, modification, or distribution of Assets.\nPrior versions of Our Software may have included Assets which were removed in a later version. The removal of an Asset from Our Source Code constitutes a revocation of the rights to use said Asset.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::95",
"metadata": {
"title": "Naomi's Public License"
},
"title": "9. Assets",
"url": "https://docs.nhcarrigan.com/legal/license#9-assets"
},
{
"content": "9.1 Definition of Assets\n\nFor the purposes of this License, \"Assets\" include, but are not limited to:\n\n- Images, icons, and graphics\n- Audio files and sound effects\n- Video content\n- Fonts and typefaces\n- Logos and branding materials\n- Text content and documentation not integral to the Software's functionality\n- Data files and databases",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::96",
"metadata": {
"title": "Naomi's Public License"
},
"title": "9.1 Definition of Assets",
"url": "https://docs.nhcarrigan.com/legal/license#91-definition-of-assets"
},
{
"content": "9.2 Ownership and Rights\n\n- We retain full ownership and all rights to all Assets associated with Our Software.\n- The License granted for the Software does not extend to any Assets unless explicitly stated.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::97",
"metadata": {
"title": "Naomi's Public License"
},
"title": "9.2 Ownership and Rights",
"url": "https://docs.nhcarrigan.com/legal/license#92-ownership-and-rights"
},
{
"content": "9.3 Prohibited Uses\n\nYou may not:\n\n- Use Our Assets in any Modifications of Our Software\n- Incorporate Our Assets into other Works\n- Distribute Our Assets separately from or alongside Our Software\n- Alter, manipulate, or create derivative works of Our Assets",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::98",
"metadata": {
"title": "Naomi's Public License"
},
"title": "9.3 Prohibited Uses",
"url": "https://docs.nhcarrigan.com/legal/license#93-prohibited-uses"
},
{
"content": "9.4 Exceptions\n\n- Assets that are explicitly marked as freely usable or provided under a separate license within Our Source Code may be used according to the terms specified for those specific Assets.\n- Any exceptions must be granted by Us in writing and will be considered on a case-by-case basis.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::99",
"metadata": {
"title": "Naomi's Public License"
},
"title": "9.4 Exceptions",
"url": "https://docs.nhcarrigan.com/legal/license#94-exceptions"
},
{
"content": "9.5 Removal and Revocation\n\n- We reserve the right to remove any Asset from Our Software at any time.\n- The removal of an Asset from Our Source Code immediately revokes any previous rights or permissions to use that Asset, even if it was present in earlier versions of the Software.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::100",
"metadata": {
"title": "Naomi's Public License"
},
"title": "9.5 Removal and Revocation",
"url": "https://docs.nhcarrigan.com/legal/license#95-removal-and-revocation"
},
{
"content": "9.5.3 Upon removal of an Asset, You must:\n\n- Cease all use of the removed Asset\n- Remove the Asset from any Modifications or Distributions of Our Software\n- Ensure that the Asset is not used in any future versions or forks of Our Software under Your control",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::101",
"metadata": {
"title": "Naomi's Public License"
},
"title": "9.5.3 Upon removal of an Asset, You must:",
"url": "https://docs.nhcarrigan.com/legal/license#953-upon-removal-of-an-asset,-you-must:"
},
{
"content": "9.6 Responsibility\n\n- You are responsible for ensuring that You do not use, modify, or distribute Our Assets in violation of these terms.\n- You agree to indemnify and hold Us harmless from any claims arising from Your unauthorized use of Our Assets.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::102",
"metadata": {
"title": "Naomi's Public License"
},
"title": "9.6 Responsibility",
"url": "https://docs.nhcarrigan.com/legal/license#96-responsibility"
},
{
"content": "9.7 Reporting Violations\n\nIf You become aware of any unauthorized use of Our Assets, You are encouraged to report this to Us immediately.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::103",
"metadata": {
"title": "Naomi's Public License"
},
"title": "9.7 Reporting Violations",
"url": "https://docs.nhcarrigan.com/legal/license#97-reporting-violations"
},
{
"content": "9.8 No Implied Rights\n\nThe presence of an Asset in Our Software does not imply any right to use that Asset outside the scope of this License.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::104",
"metadata": {
"title": "Naomi's Public License"
},
"title": "9.8 No Implied Rights",
"url": "https://docs.nhcarrigan.com/legal/license#98-no-implied-rights"
},
{
"content": "9.9 Separate Agreements\n\nFor any use of Our Assets not covered by this License, a separate agreement must be negotiated and obtained from Us.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::105",
"metadata": {
"title": "Naomi's Public License"
},
"title": "9.9 Separate Agreements",
"url": "https://docs.nhcarrigan.com/legal/license#99-separate-agreements"
},
{
"content": "10. Contributions\n\nBy making contributions to the software, whether in the form of code, documentation, or any other material, You agree to the following:",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::106",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10. Contributions",
"url": "https://docs.nhcarrigan.com/legal/license#10-contributions"
},
{
"content": "10.1 Grant of Copyright\n\nYou hereby grant Us and Our successors a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license to use, reproduce, modify, distribute, sublicense, and otherwise exploit Your Contributions, including any intellectual property rights therein, in any manner and for any purpose, without any obligation to provide attribution or compensation.\n\nYou retain all copyright over Your individual Contributions, and may use Your Contributions in Works outside of this License. Contributing to Our Software does not grant any copyright over the Software, with or without your Contributions.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::107",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.1 Grant of Copyright",
"url": "https://docs.nhcarrigan.com/legal/license#101-grant-of-copyright"
},
{
"content": "10.1.1 Scope of License\n\nThis license grant covers:\n\n- All forms of Your Contributions, including but not limited to source code, documentation, designs, and ideas\n- Any patents You own or control that are necessarily infringed by Your Contributions",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::108",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.1.1 Scope of License",
"url": "https://docs.nhcarrigan.com/legal/license#1011-scope-of-license"
},
{
"content": "10.1.2 Our Rights\n\nWe may:\n\n- Incorporate Your Contributions into the Software at Our discretion\n- Modify or adapt Your Contributions as We see fit\n- Remove Your Contributions from the Software at any time",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::109",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.1.2 Our Rights",
"url": "https://docs.nhcarrigan.com/legal/license#1012-our-rights"
},
{
"content": "10.1.3 Your Retained Rights\n\nYou retain the right to:\n\n- Use Your Contributions in other projects\n- License Your Contributions to others under different terms",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::110",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.1.3 Your Retained Rights",
"url": "https://docs.nhcarrigan.com/legal/license#1013-your-retained-rights"
},
{
"content": "10.1.4 No Obligation for Inclusion\n\nWe are under no obligation to include Your Contributions in the Software.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::111",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.1.4 No Obligation for Inclusion",
"url": "https://docs.nhcarrigan.com/legal/license#1014-no-obligation-for-inclusion"
},
{
"content": "10.2 Licensing of Contributions\n\nAll contributions You make to the Software will be licensed under the same terms and conditions as the original Software, subject to the terms of this License. You understand and acknowledge that Your Contributions will become an integral part of the software and will be subject to the same rights and obligations as the original codebase.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::112",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.2 Licensing of Contributions",
"url": "https://docs.nhcarrigan.com/legal/license#102-licensing-of-contributions"
},
{
"content": "10.2.1 Integration with Existing License\n\nYour Contributions will be subject to:\n\n- All terms and conditions of this License\n- Any future modifications to the License that We may make",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::113",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.2.1 Integration with Existing License",
"url": "https://docs.nhcarrigan.com/legal/license#1021-integration-with-existing-license"
},
{
"content": "10.2.2 No Special Rights\n\nContributing does not grant You:\n\n- Any special rights or privileges within the project\n- The ability to dictate how Your Contributions are used or modified",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::114",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.2.2 No Special Rights",
"url": "https://docs.nhcarrigan.com/legal/license#1022-no-special-rights"
},
{
"content": "10.2.3 Future License Changes\n\nYou agree that We may:\n\n- Change the license of the entire Software, including Your Contributions, in the future\n- Dual-license the Software, including Your Contributions, under additional licenses",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::115",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.2.3 Future License Changes",
"url": "https://docs.nhcarrigan.com/legal/license#1023-future-license-changes"
},
{
"content": "10.3 Representation\n\nYou represent and warrant that You have the necessary rights to grant the above License and that Your Contributions do not infringe upon the intellectual property rights or other legal rights of any third party.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::116",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.3 Representation",
"url": "https://docs.nhcarrigan.com/legal/license#103-representation"
},
{
"content": "10.3.1 Originality\n\nYou confirm that Your Contributions are:\n\n- Your original work, or\n- Derived from sources that You have the right to use and contribute under these terms",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::117",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.3.1 Originality",
"url": "https://docs.nhcarrigan.com/legal/license#1031-originality"
},
{
"content": "10.3.2 Third-Party Content\n\nIf Your Contributions include or are based on third-party content, You warrant that:\n\n- You have obtained all necessary permissions to include such content\n- You have clearly identified any third-party content and its source",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::118",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.3.2 Third-Party Content",
"url": "https://docs.nhcarrigan.com/legal/license#1032-third-party-content"
},
{
"content": "10.3.3 Employment and Contractual Obligations\n\nYou warrant that:\n\n- Your Contributions do not violate any employment or contractual obligations You may have\n- You have obtained any necessary permissions from Your employer or clients to make these Contributions",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::119",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.3.3 Employment and Contractual Obligations",
"url": "https://docs.nhcarrigan.com/legal/license#1033-employment-and-contractual-obligations"
},
{
"content": "10.3.4 Intellectual Property Claims\n\nYou agree to:\n\n- Promptly notify Us of any third-party intellectual property claims related to Your Contributions\n- Cooperate with Us in addressing any such claims",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::120",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.3.4 Intellectual Property Claims",
"url": "https://docs.nhcarrigan.com/legal/license#1034-intellectual-property-claims"
},
{
"content": "10.3.5 Accuracy of Information\n\nYou confirm that any information You provide about Your Contributions is accurate and complete to the best of Your knowledge.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::121",
"metadata": {
"title": "Naomi's Public License"
},
"title": "10.3.5 Accuracy of Information",
"url": "https://docs.nhcarrigan.com/legal/license#1035-accuracy-of-information"
},
{
"content": "11. Warranty\n\nThe Software provided under this license is provided \"as is,\" without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement. The entire risk as to the quality and performance of the software is with You. Should the software prove defective, You assume the cost of all necessary servicing, repair, or correction.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::122",
"metadata": {
"title": "Naomi's Public License"
},
"title": "11. Warranty",
"url": "https://docs.nhcarrigan.com/legal/license#11-warranty"
},
{
"content": "11.1 Disclaimer of Warranties\n\nWe explicitly disclaim all warranties, whether express, implied, or statutory, including but not limited to:\n\n- Any warranty of merchantability\n- Fitness for a particular purpose\n- Non-infringement of third-party rights\n- Absence of latent or other defects\n- Accuracy or completeness of the Software\n\nWe make no warranties or representations regarding the use of the Software in terms of:\n\n- Correctness\n- Accuracy\n- Reliability\n- Current-ness\n- Or otherwise",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::123",
"metadata": {
"title": "Naomi's Public License"
},
"title": "11.1 Disclaimer of Warranties",
"url": "https://docs.nhcarrigan.com/legal/license#111-disclaimer-of-warranties"
},
{
"content": "11.2 \"As Is\" Basis\n\nYou expressly understand and agree that your use of the Software is at your sole risk and that the Software is provided \"as is\" and \"as available.\"\n\nAny material downloaded or otherwise obtained through the use of the Software is done at your own discretion and risk, and you will be solely responsible for any damage to your computer system or other device or loss of data that results from the download of any such material.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::124",
"metadata": {
"title": "Naomi's Public License"
},
"title": "11.2 \"As Is\" Basis",
"url": "https://docs.nhcarrigan.com/legal/license#112-\"as-is\"-basis"
},
{
"content": "11.3 No Guarantee of Performance or Results\n\nWe do not warrant that:\n\n- The Software will meet your requirements\n- The Software will be uninterrupted, timely, secure, or error-free\n- The results that may be obtained from the use of the Software will be accurate or reliable\n- Any errors in the Software will be corrected",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::125",
"metadata": {
"title": "Naomi's Public License"
},
"title": "11.3 No Guarantee of Performance or Results",
"url": "https://docs.nhcarrigan.com/legal/license#113-no-guarantee-of-performance-or-results"
},
{
"content": "11.4 Third-Party Content and Services\n\nWe make no warranties regarding any third-party content or services that may be accessible through the Software.\n\nYour interactions with such third-party content or services are solely between you and the third party.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::126",
"metadata": {
"title": "Naomi's Public License"
},
"title": "11.4 Third-Party Content and Services",
"url": "https://docs.nhcarrigan.com/legal/license#114-third-party-content-and-services"
},
{
"content": "11.5 Security\n\nWhile we strive to use commercially acceptable means to protect your information, we cannot guarantee its absolute security.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::127",
"metadata": {
"title": "Naomi's Public License"
},
"title": "11.5 Security",
"url": "https://docs.nhcarrigan.com/legal/license#115-security"
},
{
"content": "11.6 Modifications and Updates\n\nWe reserve the right to modify, suspend, or discontinue the Software at any time without notice.\n\nWe shall not be liable to you or to any third party for any modification, suspension, or discontinuance of the Software.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::128",
"metadata": {
"title": "Naomi's Public License"
},
"title": "11.6 Modifications and Updates",
"url": "https://docs.nhcarrigan.com/legal/license#116-modifications-and-updates"
},
{
"content": "11.7 Your Responsibility\n\nYou acknowledge that:\n\n- The software may contain errors, bugs, or inaccuracies\n- It may not function as intended or expected\n- You use it at your own risk and discretion\n\nYou are solely responsible for determining whether the software is suitable for your intended use.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::129",
"metadata": {
"title": "Naomi's Public License"
},
"title": "11.7 Your Responsibility",
"url": "https://docs.nhcarrigan.com/legal/license#117-your-responsibility"
},
{
"content": "11.8 Limitation of Remedies\n\nYour exclusive remedy and our entire liability for any breach of this warranty shall be, at our option:\n\n- Return of the price paid for the software (if any)\n- Repair or replacement of the software",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::130",
"metadata": {
"title": "Naomi's Public License"
},
"title": "11.8 Limitation of Remedies",
"url": "https://docs.nhcarrigan.com/legal/license#118-limitation-of-remedies"
},
{
"content": "12. Limitation of Liability\n\nIn no event unless required by applicable law or agreed to in writing will We or Our Contributors be liable to You for damages, including any general, special, incidental, or consequential damages arising out of the use or inability to use the software (including but not limited to loss of data or data being rendered inaccurate or losses sustained by You or third parties), even if We or Our Contributors have been advised of the possibility of such damages.\n\nAbsolutely no liability will be held for Modifications or Incorporations of the Software. You are solely responsible for any damages caused by Your Modifications or Incorporations.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::131",
"metadata": {
"title": "Naomi's Public License"
},
"title": "12. Limitation of Liability",
"url": "https://docs.nhcarrigan.com/legal/license#12-limitation-of-liability"
},
{
"content": "12.1 Scope of Limitation\n\nThis limitation of liability applies to:\n\n- Us (the software providers)\n- Our Contributors\n- Any affiliated entities, directors, officers, employees, or agents\n\nThis limitation covers all forms of legal action, whether in contract, tort (including negligence), strict liability, or otherwise.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::132",
"metadata": {
"title": "Naomi's Public License"
},
"title": "12.1 Scope of Limitation",
"url": "https://docs.nhcarrigan.com/legal/license#121-scope-of-limitation"
},
{
"content": "12.2 Types of Damages Excluded\n\nWe shall not be liable for any:\n\n- Direct damages\n- Indirect damages\n- Incidental damages\n- Special damages\n- Consequential damages\n- Punitive damages\n\nThis includes, but is not limited to, damages for:\n\n- Loss of profits\n- Loss of business\n- Business interruption\n- Loss of business opportunity\n- Loss of goodwill\n- Loss of use\n- Loss or corruption of data\n- Cost of procurement of substitute goods or services",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::133",
"metadata": {
"title": "Naomi's Public License"
},
"title": "12.2 Types of Damages Excluded",
"url": "https://docs.nhcarrigan.com/legal/license#122-types-of-damages-excluded"
},
{
"content": "12.3 Use of Software\n\nWe shall not be liable for any damages arising from:\n\n- The use of the software\n- The inability to use the software\n- Any defect in the software\n- Any error or omission in the software\n\nThis applies even if We or Our Contributors have been advised of the possibility of such damages.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::134",
"metadata": {
"title": "Naomi's Public License"
},
"title": "12.3 Use of Software",
"url": "https://docs.nhcarrigan.com/legal/license#123-use-of-software"
},
{
"content": "12.4 Modifications and Incorporations\n\nWe explicitly disclaim all liability for any Modifications or Incorporations of the Software.\n\nYou assume full responsibility and risk for:\n\n- Any modifications You make to the Software\n- Any incorporations of the Software into other works\n\nYou agree to indemnify and hold Us harmless from any claims arising from Your Modifications or Incorporations.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::135",
"metadata": {
"title": "Naomi's Public License"
},
"title": "12.4 Modifications and Incorporations",
"url": "https://docs.nhcarrigan.com/legal/license#124-modifications-and-incorporations"
},
{
"content": "12.5 Third-Party Claims\n\nWe shall not be liable for any claims or damages arising from third-party use of the Software, including use of any Modifications or Incorporations You create.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::136",
"metadata": {
"title": "Naomi's Public License"
},
"title": "12.5 Third-Party Claims",
"url": "https://docs.nhcarrigan.com/legal/license#125-third-party-claims"
},
{
"content": "12.6 Limitation Amount\n\nIn jurisdictions that do not allow the exclusion or limitation of liability for certain damages, Our liability shall be limited to the maximum extent permitted by law.\n\nIn no event shall Our total liability to You for all damages exceed the amount paid by You for the Software, if any.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::137",
"metadata": {
"title": "Naomi's Public License"
},
"title": "12.6 Limitation Amount",
"url": "https://docs.nhcarrigan.com/legal/license#126-limitation-amount"
},
{
"content": "12.7 Essential Purpose\n\nYou acknowledge that this limitation of liability is an essential part of the bargain between You and Us and shall apply even if any remedy fails of its essential purpose.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::138",
"metadata": {
"title": "Naomi's Public License"
},
"title": "12.7 Essential Purpose",
"url": "https://docs.nhcarrigan.com/legal/license#127-essential-purpose"
},
{
"content": "12.8 Severability\n\nIf any portion of this limitation of liability is found to be invalid or unenforceable, the remaining portions shall remain in full force and effect.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::139",
"metadata": {
"title": "Naomi's Public License"
},
"title": "12.8 Severability",
"url": "https://docs.nhcarrigan.com/legal/license#128-severability"
},
{
"content": "13. Your Responsibility\n\nYou acknowledge and agree that Your use of the Software is at Your sole risk and discretion, and You are solely responsible for any loss or damage to Your computer system or other device, or loss of data that results from such use. You are also responsible for ensuring that Your use of the Software complies with all applicable laws and regulations.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::140",
"metadata": {
"title": "Naomi's Public License"
},
"title": "13. Your Responsibility",
"url": "https://docs.nhcarrigan.com/legal/license#13-your-responsibility"
},
{
"content": "13.1 Assumption of Risk\n\nYou expressly understand and agree that:\n\n- Your use of the Software is at Your own risk\n- You are solely responsible for any consequences resulting from Your use of the Software\n\nThis assumption of risk includes, but is not limited to:\n\n- Any damage to Your computer systems or devices\n- Loss of data\n- Any other adverse effects resulting from the use or misuse of the Software",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::141",
"metadata": {
"title": "Naomi's Public License"
},
"title": "13.1 Assumption of Risk",
"url": "https://docs.nhcarrigan.com/legal/license#131-assumption-of-risk"
},
{
"content": "13.2 System Requirements and Compatibility\n\nYou are responsible for:\n\n- Ensuring Your systems meet the minimum requirements for running the Software\n- Verifying the compatibility of the Software with Your existing hardware and software\n\nWe do not guarantee that the Software will be compatible with all systems or configurations.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::142",
"metadata": {
"title": "Naomi's Public License"
},
"title": "13.2 System Requirements and Compatibility",
"url": "https://docs.nhcarrigan.com/legal/license#132-system-requirements-and-compatibility"
},
{
"content": "13.3 Data Management\n\nYou are solely responsible for:\n\n- Backing up Your data before using the Software\n- Implementing appropriate data management and protection measures\n\nWe are not responsible for any data loss or corruption that may occur as a result of using the Software.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::143",
"metadata": {
"title": "Naomi's Public License"
},
"title": "13.3 Data Management",
"url": "https://docs.nhcarrigan.com/legal/license#133-data-management"
},
{
"content": "13.4 Legal Compliance\n\nYou are responsible for ensuring that Your use of the Software complies with:\n\n- All applicable local, state, national, and international laws and regulations\n- Any specific regulations pertaining to Your industry or field of use\n\nThis includes, but is not limited to:\n\n- Data protection and privacy laws\n- Intellectual property laws\n- Export control regulations",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::144",
"metadata": {
"title": "Naomi's Public License"
},
"title": "13.4 Legal Compliance",
"url": "https://docs.nhcarrigan.com/legal/license#134-legal-compliance"
},
{
"content": "13.5 Ethical Use\n\nYou agree to use the Software in an ethical manner, including:\n\n- Respecting the rights and privacy of others\n- Not using the Software for any illegal or malicious purposes",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::145",
"metadata": {
"title": "Naomi's Public License"
},
"title": "13.5 Ethical Use",
"url": "https://docs.nhcarrigan.com/legal/license#135-ethical-use"
},
{
"content": "13.6 Security Measures\n\nYou are responsible for implementing appropriate security measures, including:\n\n- Protecting Your login credentials\n- Securing Your systems against unauthorized access\n- Promptly applying any security updates or patches we may provide",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::146",
"metadata": {
"title": "Naomi's Public License"
},
"title": "13.6 Security Measures",
"url": "https://docs.nhcarrigan.com/legal/license#136-security-measures"
},
{
"content": "13.7 Modifications and Integrations\n\nIf You modify the Software or integrate it with other systems:\n\n- You are solely responsible for any resulting issues or damages\n- You must ensure these modifications or integrations comply with this License",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::147",
"metadata": {
"title": "Naomi's Public License"
},
"title": "13.7 Modifications and Integrations",
"url": "https://docs.nhcarrigan.com/legal/license#137-modifications-and-integrations"
},
{
"content": "13.8 Reporting Issues\n\nYou agree to promptly report any bugs, security vulnerabilities, or other issues You discover in the Software.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::148",
"metadata": {
"title": "Naomi's Public License"
},
"title": "13.8 Reporting Issues",
"url": "https://docs.nhcarrigan.com/legal/license#138-reporting-issues"
},
{
"content": "13.9 Indemnification\n\nYou agree to indemnify and hold Us harmless from any claims, damages, or expenses arising from:\n\n- Your use of the Software\n- Your violation of this License or any applicable laws",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::149",
"metadata": {
"title": "Naomi's Public License"
},
"title": "13.9 Indemnification",
"url": "https://docs.nhcarrigan.com/legal/license#139-indemnification"
},
{
"content": "14. Enforcement\n\nEnforcement of this License will be done at Our discretion. A decision not to enforce a License violation will not preclude Us from enforcing that violation or any other violation of this License in the future.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::150",
"metadata": {
"title": "Naomi's Public License"
},
"title": "14. Enforcement",
"url": "https://docs.nhcarrigan.com/legal/license#14-enforcement"
},
{
"content": "14.1 Discretionary Enforcement\n\nWe reserve the right to enforce the terms of this License at Our sole discretion.\n\nOur enforcement actions may include, but are not limited to:\n\n- Issuing warnings\n- Requesting compliance within a specified timeframe\n- Terminating the License for the violating party\n- Taking legal action\n\nFactors We may consider in deciding whether to enforce include:\n\n- The severity of the violation\n- The impact on other users or the broader community\n- The violator's history of compliance or non-compliance\n- The violator's willingness to rectify the violation",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::151",
"metadata": {
"title": "Naomi's Public License"
},
"title": "14.1 Discretionary Enforcement",
"url": "https://docs.nhcarrigan.com/legal/license#141-discretionary-enforcement"
},
{
"content": "14.2 Non-Waiver\n\nOur decision not to enforce a particular violation:\n\n- Does not constitute a waiver of Our right to enforce that violation in the future\n- Does not prevent Us from enforcing other violations of the License\n- Does not imply approval or acceptance of the violating behavior\n\nEach instance of a violation will be considered separately, regardless of past enforcement decisions.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::152",
"metadata": {
"title": "Naomi's Public License"
},
"title": "14.2 Non-Waiver",
"url": "https://docs.nhcarrigan.com/legal/license#142-non-waiver"
},
{
"content": "14.3 Reporting Violations\n\nUsers are encouraged to report suspected License violations to Us.\n\nReports should include:\n\n- A description of the suspected violation\n- Any evidence supporting the claim\n- The reporter's contact information (optional)",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::153",
"metadata": {
"title": "Naomi's Public License"
},
"title": "14.3 Reporting Violations",
"url": "https://docs.nhcarrigan.com/legal/license#143-reporting-violations"
},
{
"content": "14.4 Investigation of Violations\n\nWe reserve the right to investigate any suspected violations of this License.\n\nDuring an investigation, We may:\n\n- Request additional information from involved parties\n- Examine any relevant code, documentation, or other materials\n- Temporarily suspend access to the Software for the party under investigation",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::154",
"metadata": {
"title": "Naomi's Public License"
},
"title": "14.4 Investigation of Violations",
"url": "https://docs.nhcarrigan.com/legal/license#144-investigation-of-violations"
},
{
"content": "14.5 Enforcement Actions\n\nIf We determine that a violation has occurred, We may take one or more of the following actions:\n\n- Issue a warning to the violating party\n- Require the violating party to remedy the violation within a specified timeframe\n- Revoke the violating party's rights under this License\n- Publicly disclose the violation and Our response to it\n- Pursue legal remedies",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::155",
"metadata": {
"title": "Naomi's Public License"
},
"title": "14.5 Enforcement Actions",
"url": "https://docs.nhcarrigan.com/legal/license#145-enforcement-actions"
},
{
"content": "14.6 Appeals Process\n\nA party subject to enforcement action may appeal Our decision.\n\nAppeals must be submitted in writing within 30 days of the enforcement action.\n\nWe will review appeals and make a final decision at Our discretion.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::156",
"metadata": {
"title": "Naomi's Public License"
},
"title": "14.6 Appeals Process",
"url": "https://docs.nhcarrigan.com/legal/license#146-appeals-process"
},
{
"content": "14.7 Cooperation with Authorities\n\nWe reserve the right to cooperate with any law enforcement or regulatory authority investigating potential violations of applicable laws related to the use of Our Software.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::157",
"metadata": {
"title": "Naomi's Public License"
},
"title": "14.7 Cooperation with Authorities",
"url": "https://docs.nhcarrigan.com/legal/license#147-cooperation-with-authorities"
},
{
"content": "14.8 Modifications to Enforcement Policy\n\nWe may modify Our enforcement policies at any time without notice.\n\nAny changes to enforcement policies will apply to all existing and future violations.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::158",
"metadata": {
"title": "Naomi's Public License"
},
"title": "14.8 Modifications to Enforcement Policy",
"url": "https://docs.nhcarrigan.com/legal/license#148-modifications-to-enforcement-policy"
},
{
"content": "15. Termination\n\nThis License is effective until terminated. We may, at Our sole discretion, terminate this License at any time, with or without cause, and with or without notice. Upon termination, You shall cease all use of the software and destroy all copies, full or partial, of the software in Your possession.\n\nTermination of this License shall not relieve You of any obligations or liabilities accrued prior to the termination date, including but not limited to any indemnification obligations and limitations of liability outlined in this License.\n\nBreach of any terms or conditions of this License shall result in the immediate termination of this License.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::159",
"metadata": {
"title": "Naomi's Public License"
},
"title": "15. Termination",
"url": "https://docs.nhcarrigan.com/legal/license#15-termination"
},
{
"content": "15.1 Termination by Us\n\nWe reserve the right to terminate this License:\n\n- At any time\n- For any reason or no reason\n- With or without prior notice\n\nReasons for termination may include, but are not limited to:\n\n- Violation of any terms of this License\n- Misuse of the Software\n- Legal or regulatory requirements\n- Discontinuation of the Software",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::160",
"metadata": {
"title": "Naomi's Public License"
},
"title": "15.1 Termination by Us",
"url": "https://docs.nhcarrigan.com/legal/license#151-termination-by-us"
},
{
"content": "15.2 Automatic Termination\n\nThis License terminates automatically if You:\n\n- Fail to comply with any term or condition of this License\n- Initiate any litigation against Us related to the Software",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::161",
"metadata": {
"title": "Naomi's Public License"
},
"title": "15.2 Automatic Termination",
"url": "https://docs.nhcarrigan.com/legal/license#152-automatic-termination"
},
{
"content": "15.3 Effect of Termination\n\nUpon termination of this License, You must:\n\n- Immediately cease all use of the Software\n- Destroy all copies, full or partial, of the Software in Your possession or control\n- Remove the Software from all systems under Your control\n- Cease distribution of any works derived from the Software\n\nYou must provide written confirmation of these actions upon Our request.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::162",
"metadata": {
"title": "Naomi's Public License"
},
"title": "15.3 Effect of Termination",
"url": "https://docs.nhcarrigan.com/legal/license#153-effect-of-termination"
},
{
"content": "15.4 Survival of Terms\n\nThe following sections of this License shall survive termination:\n\n- Any sections explicitly stated to survive termination\n- All provisions regarding ownership, disclaimer of warranties, limitations of liability, and indemnification\n- Any accrued rights or obligations",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::163",
"metadata": {
"title": "Naomi's Public License"
},
"title": "15.4 Survival of Terms",
"url": "https://docs.nhcarrigan.com/legal/license#154-survival-of-terms"
},
{
"content": "15.5 No Refunds\n\nTermination of this License does not entitle You to any refunds, credits, or other compensation.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::164",
"metadata": {
"title": "Naomi's Public License"
},
"title": "15.5 No Refunds",
"url": "https://docs.nhcarrigan.com/legal/license#155-no-refunds"
},
{
"content": "15.6 Reinstatement\n\nYour rights under this License may be reinstated only upon Our express written consent.\n\nAny reinstatement may be subject to additional terms and conditions.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::165",
"metadata": {
"title": "Naomi's Public License"
},
"title": "15.6 Reinstatement",
"url": "https://docs.nhcarrigan.com/legal/license#156-reinstatement"
},
{
"content": "15.7 Termination and Third Parties\n\nTermination of Your License does not affect the rights of any third parties who have received the Software or derivative works from You in compliance with this License prior to termination.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::166",
"metadata": {
"title": "Naomi's Public License"
},
"title": "15.7 Termination and Third Parties",
"url": "https://docs.nhcarrigan.com/legal/license#157-termination-and-third-parties"
},
{
"content": "15.8 Notification of Termination\n\nWhile We may terminate this License without notice, We may choose to provide notification through:\n\n- Email to Your last known address\n- Posting on Our website or in the Software repository\n- Any other means We deem appropriate",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::167",
"metadata": {
"title": "Naomi's Public License"
},
"title": "15.8 Notification of Termination",
"url": "https://docs.nhcarrigan.com/legal/license#158-notification-of-termination"
},
{
"content": "15.9 Appeal of Termination\n\nIf You believe the termination was in error, You may appeal the decision within 30 days of termination.\n\nAppeals must be submitted in writing and will be reviewed at Our discretion.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::168",
"metadata": {
"title": "Naomi's Public License"
},
"title": "15.9 Appeal of Termination",
"url": "https://docs.nhcarrigan.com/legal/license#159-appeal-of-termination"
},
{
"content": "16. License Versions\n\nVersioning of this license is managed through git. You may view the version history [in these commits](https://git.nhcarrigan.com/nhcarrigan/docs/commits/branch/main/LICENSE.md).",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::169",
"metadata": {
"title": "Naomi's Public License"
},
"title": "16. License Versions",
"url": "https://docs.nhcarrigan.com/legal/license#16-license-versions"
},
{
"content": "16.1 Future License Changes\n\nWe reserve the right to modify the terms of this License, including its licensing of Contributions, at its sole discretion. In the event that such changes are made, We will make reasonable efforts to notify You through Our chat channels.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::170",
"metadata": {
"title": "Naomi's Public License"
},
"title": "16.1 Future License Changes",
"url": "https://docs.nhcarrigan.com/legal/license#161-future-license-changes"
},
{
"content": "16.1.1 Notification Process\n\nNotifications of License changes may include:\n\n- Announcements in Our chat channels\n- Updates to the License file in the git repository\n- Notifications on Our website or blog\n- Email notifications to registered users, if applicable",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::171",
"metadata": {
"title": "Naomi's Public License"
},
"title": "16.1.1 Notification Process",
"url": "https://docs.nhcarrigan.com/legal/license#1611-notification-process"
},
{
"content": "16.1.2 Review Period\n\nWe may, at Our discretion, provide a review period for significant License changes.\n\nDuring this period, users may submit feedback or concerns about the proposed changes.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::172",
"metadata": {
"title": "Naomi's Public License"
},
"title": "16.1.2 Review Period",
"url": "https://docs.nhcarrigan.com/legal/license#1612-review-period"
},
{
"content": "16.1.3 Acceptance of Changes\n\nContinued use of the Software after a License change constitutes acceptance of the new terms.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::173",
"metadata": {
"title": "Naomi's Public License"
},
"title": "16.1.3 Acceptance of Changes",
"url": "https://docs.nhcarrigan.com/legal/license#1613-acceptance-of-changes"
},
{
"content": "16.2 Version Perpetuation\n\nAll Works derived from this Software must be licensed under the latest version of this License. This includes Works that are modifications or incorporations of the Software.\n\nChanges to this License retroactively apply to all Works derived from this Software, even those created before the date of the changes.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::174",
"metadata": {
"title": "Naomi's Public License"
},
"title": "16.2 Version Perpetuation",
"url": "https://docs.nhcarrigan.com/legal/license#162-version-perpetuation"
},
{
"content": "16.2.1 Scope of Retroactive Application\n\nRetroactive application includes:\n\n- All existing Works derived from the Software\n- Any ongoing use or distribution of such Works\n- Future modifications to existing derived Works",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::175",
"metadata": {
"title": "Naomi's Public License"
},
"title": "16.2.1 Scope of Retroactive Application",
"url": "https://docs.nhcarrigan.com/legal/license#1621-scope-of-retroactive-application"
},
{
"content": "16.2.2 Compliance Timeline\n\nUsers of derived Works must update to the latest License version within a reasonable timeframe after notification of changes.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::176",
"metadata": {
"title": "Naomi's Public License"
},
"title": "16.2.2 Compliance Timeline",
"url": "https://docs.nhcarrigan.com/legal/license#1622-compliance-timeline"
},
{
"content": "16.2.3 Conflicts with Existing Agreements\n\nIn case of conflicts between retroactive changes and existing agreements:\n\n- The terms of this License shall prevail\n- Users may need to renegotiate any conflicting agreements",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::177",
"metadata": {
"title": "Naomi's Public License"
},
"title": "16.2.3 Conflicts with Existing Agreements",
"url": "https://docs.nhcarrigan.com/legal/license#1623-conflicts-with-existing-agreements"
},
{
"content": "16.3 Last Updated\n\nThe terms of this License were last modified on 7 July 2024.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::178",
"metadata": {
"title": "Naomi's Public License"
},
"title": "16.3 Last Updated",
"url": "https://docs.nhcarrigan.com/legal/license#163-last-updated"
},
{
"content": "16.3.1 Version Identification\n\nEach version of the License will be identified by:\n\n- The last modification date",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::179",
"metadata": {
"title": "Naomi's Public License"
},
"title": "16.3.1 Version Identification",
"url": "https://docs.nhcarrigan.com/legal/license#1631-version-identification"
},
{
"content": "16.3.2 Version Comparison\n\nUsers can compare different versions of the License by:\n\n- Reviewing the commit history in the git repository\n- Checking the \"Last Updated\" date in each version",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::180",
"metadata": {
"title": "Naomi's Public License"
},
"title": "16.3.2 Version Comparison",
"url": "https://docs.nhcarrigan.com/legal/license#1632-version-comparison"
},
{
"content": "16.3.3 Archived Versions\n\nPrevious versions of the License will remain accessible in the commit history for reference purposes.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::181",
"metadata": {
"title": "Naomi's Public License"
},
"title": "16.3.3 Archived Versions",
"url": "https://docs.nhcarrigan.com/legal/license#1633-archived-versions"
},
{
"content": "17. Contact\n\nIf you have questions about this License, We may be reached in Our [forum](https://forum.nhcarrigan.com).",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::182",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17. Contact",
"url": "https://docs.nhcarrigan.com/legal/license#17-contact"
},
{
"content": "17.1 Communication Channels",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::183",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17.1 Communication Channels",
"url": "https://docs.nhcarrigan.com/legal/license#171-communication-channels"
},
{
"content": "17.1.1 Primary Contact Method\n\nOur chat server is the primary method for License-related inquiries.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::184",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17.1.1 Primary Contact Method",
"url": "https://docs.nhcarrigan.com/legal/license#1711-primary-contact-method"
},
{
"content": "17.1.2 Additional Contact Methods\n\n- Email: `license@nhcarrigan.com`\n- Issue Tracker: https://git.nhcarrigan.com/nhcarrigan/docs/issues",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::185",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17.1.2 Additional Contact Methods",
"url": "https://docs.nhcarrigan.com/legal/license#1712-additional-contact-methods"
},
{
"content": "17.2 Response Times\n\nWe strive to respond to inquiries within 5 business days.\n\nComplex issues may require additional time for a comprehensive response.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::186",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17.2 Response Times",
"url": "https://docs.nhcarrigan.com/legal/license#172-response-times"
},
{
"content": "17.3 Language Support\n\nPrimary communication is in English.\n\nWe will make reasonable efforts to accommodate other languages when possible.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::187",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17.3 Language Support",
"url": "https://docs.nhcarrigan.com/legal/license#173-language-support"
},
{
"content": "17.4 Confidentiality\n\nCommunications regarding the License are generally not confidential unless explicitly agreed upon.\n\nDo not share sensitive or personal information in public channels.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::188",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17.4 Confidentiality",
"url": "https://docs.nhcarrigan.com/legal/license#174-confidentiality"
},
{
"content": "17.5 Suggestions\n\nThis License is a living document. We are happy to hear suggestions about the terms of this License. Please reach out to Us in Our chat server.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::189",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17.5 Suggestions",
"url": "https://docs.nhcarrigan.com/legal/license#175-suggestions"
},
{
"content": "17.5.1 Suggestion Process\n\nTo submit a suggestion:\n\n- Join Our chat server\n- Locate the appropriate channel for License discussions\n- Clearly state your suggestion and provide a rationale",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::190",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17.5.1 Suggestion Process",
"url": "https://docs.nhcarrigan.com/legal/license#1751-suggestion-process"
},
{
"content": "17.5.2 Evaluation of Suggestions\n\nWe will review all suggestions in good faith.\n\nFactors considered in evaluating suggestions include:\n\n- Alignment with the License's overall purpose\n- Legal implications\n- Impact on existing users and projects\n- Practicality of implementation",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::191",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17.5.2 Evaluation of Suggestions",
"url": "https://docs.nhcarrigan.com/legal/license#1752-evaluation-of-suggestions"
},
{
"content": "17.5.3 Feedback on Suggestions\n\nWe will provide feedback on suggestions when possible.\n\nImplementation of suggestions is at Our sole discretion.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::192",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17.5.3 Feedback on Suggestions",
"url": "https://docs.nhcarrigan.com/legal/license#1753-feedback-on-suggestions"
},
{
"content": "17.6 Legal Inquiries\n\nFor formal legal inquiries, please contact `legal@nhcarrigan.com`.\n\nLegal inquiries should be made in writing and may require verification of identity and authority.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::193",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17.6 Legal Inquiries",
"url": "https://docs.nhcarrigan.com/legal/license#176-legal-inquiries"
},
{
"content": "17.7 Reporting Violations",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::194",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17.7 Reporting Violations",
"url": "https://docs.nhcarrigan.com/legal/license#177-reporting-violations"
},
{
"content": "17.7.1 To report potential License violations:\n\n- Provide a detailed description of the suspected violation\n- Include any supporting evidence\n- Use the designated reporting channel in Our chat server",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::195",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17.7.1 To report potential License violations:",
"url": "https://docs.nhcarrigan.com/legal/license#1771-to-report-potential-license-violations:"
},
{
"content": "17.8 Updates to Contact Information\n\nWe reserve the right to update Our contact information at any time.\n\nCurrent contact information will always be available in the latest version of this License.",
"file": "src/content/docs/legal/license.md",
"id": "src/content/docs/legal/license.md::196",
"metadata": {
"title": "Naomi's Public License"
},
"title": "17.8 Updates to Contact Information",
"url": "https://docs.nhcarrigan.com/legal/license#178-updates-to-contact-information"
},
{
"content": "",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::0",
"metadata": {
"title": "Privacy Policy"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/legal/privacy#"
},
{
"content": "1. Overview and Scope",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::1",
"metadata": {
"title": "Privacy Policy"
},
"title": "1. Overview and Scope",
"url": "https://docs.nhcarrigan.com/legal/privacy#1-overview-and-scope"
},
{
"content": "1.1. General Applicability\n\nThis privacy policy (\"General Policy\") governs the collection, use, storage, and protection of data across all our services, platforms, and applications (collectively referred to as \"Services\").",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::2",
"metadata": {
"title": "Privacy Policy"
},
"title": "1.1. General Applicability",
"url": "https://docs.nhcarrigan.com/legal/privacy#11-general-applicability"
},
{
"content": "1.2. Project-Specific Policies\n\nIndividual projects or Services may be subject to additional, project-specific privacy policies (\"Project Policies\"). These Project Policies apply concurrently with the General Policy. In the event of any conflict between the General Policy and a Project Policy, the stricter privacy protections shall prevail.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::3",
"metadata": {
"title": "Privacy Policy"
},
"title": "1.2. Project-Specific Policies",
"url": "https://docs.nhcarrigan.com/legal/privacy#12-project-specific-policies"
},
{
"content": "1.3. Policy Updates and Retroactivity\n\nWe reserve the right to modify, amend, or update this General Policy and any Project Policies at any time. All changes to these policies, including the General Policy and any Project Policies, are retroactive and apply to previously collected data as well as data collected after the changes take effect.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::4",
"metadata": {
"title": "Privacy Policy"
},
"title": "1.3. Policy Updates and Retroactivity",
"url": "https://docs.nhcarrigan.com/legal/privacy#13-policy-updates-and-retroactivity"
},
{
"content": "1.4. Notification of Changes\n\nWe will make reasonable efforts to notify users of significant changes to our privacy policies. However, it is the user's responsibility to regularly review the applicable privacy policies for any updates.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::5",
"metadata": {
"title": "Privacy Policy"
},
"title": "1.4. Notification of Changes",
"url": "https://docs.nhcarrigan.com/legal/privacy#14-notification-of-changes"
},
{
"content": "1.5. Acceptance of Terms\n\nBy accessing, using, or continuing to use our Services, you explicitly acknowledge and agree to be bound by the most current version of the General Policy and any applicable Project Policies. If you do not agree with the terms of these policies, you must immediately cease using our Services.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::6",
"metadata": {
"title": "Privacy Policy"
},
"title": "1.5. Acceptance of Terms",
"url": "https://docs.nhcarrigan.com/legal/privacy#15-acceptance-of-terms"
},
{
"content": "1.6. Effective Date\n\nThe effective date of the current version of this policy will be clearly stated at the beginning of the document. Each revision will be numbered or dated for easy reference.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::7",
"metadata": {
"title": "Privacy Policy"
},
"title": "1.6. Effective Date",
"url": "https://docs.nhcarrigan.com/legal/privacy#16-effective-date"
},
{
"content": "2. Data Collection, Documentation, and User Rights",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::8",
"metadata": {
"title": "Privacy Policy"
},
"title": "2. Data Collection, Documentation, and User Rights",
"url": "https://docs.nhcarrigan.com/legal/privacy#2-data-collection,-documentation,-and-user-rights"
},
{
"content": "2.1. Data Collection Practices\n\nWe strive to collect only the data necessary for the proper functioning and improvement of our Services. However, the scope of data collection may change as our Services evolve.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::9",
"metadata": {
"title": "Privacy Policy"
},
"title": "2.1. Data Collection Practices",
"url": "https://docs.nhcarrigan.com/legal/privacy#21-data-collection-practices"
},
{
"content": "2.2. Documentation Efforts\n\nWe make every effort to maintain accurate and up-to-date documentation regarding our data collection practices. This includes:\n\n- Regular reviews of our data collection processes\n- Timely updates to our privacy policy and related documentation\n- Clear communication about significant changes in data collection",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::10",
"metadata": {
"title": "Privacy Policy"
},
"title": "2.2. Documentation Efforts",
"url": "https://docs.nhcarrigan.com/legal/privacy#22-documentation-efforts"
},
{
"content": "2.3. Potential Undocumented Data Collection\n\nDespite our best efforts, it is possible that at any given time, an application or Service may collect data that is not explicitly documented. This may occur due to:\n\n- Recent updates or changes to our Services\n- Technical issues or bugs\n- Third-party integrations or dependencies",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::11",
"metadata": {
"title": "Privacy Policy"
},
"title": "2.3. Potential Undocumented Data Collection",
"url": "https://docs.nhcarrigan.com/legal/privacy#23-potential-undocumented-data-collection"
},
{
"content": "2.4. General Data Rights\n\nRegardless of whether specific data collection is documented, users have the following rights:",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::12",
"metadata": {
"title": "Privacy Policy"
},
"title": "2.4. General Data Rights",
"url": "https://docs.nhcarrigan.com/legal/privacy#24-general-data-rights"
},
{
"content": "2.4.1. Right to Access:\n\nAt any time, you may request a complete copy of your data stored by one of our applications. Requests must be done via `privacy@nhcarrigan.com` from the email address the data belongs to. This ensures that a user cannot impersonate you and request your data. We may request additional identifying information, depending on the structure of the data collected by the application.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::13",
"metadata": {
"title": "Privacy Policy"
},
"title": "2.4.1. Right to Access:",
"url": "https://docs.nhcarrigan.com/legal/privacy#241-right-to-access:"
},
{
"content": "3.4.2. Right to Rectification:\n\nYou may request corrections to any inaccurate data we hold about you.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::14",
"metadata": {
"title": "Privacy Policy"
},
"title": "3.4.2. Right to Rectification:",
"url": "https://docs.nhcarrigan.com/legal/privacy#342-right-to-rectification:"
},
{
"content": "3.4.3. Right to Erasure:\n\nAt any time, you may request complete removal of your stored data. Requests must be done via `privacy@nhcarrigan.com` from the email address the data belongs to. This ensures that a user cannot impersonate you and request your data. We may request additional identifying information, depending on the structure of the data collected by the application.\n\nThis will **not** opt you out of future data collection unless specifically requested. We reserve the right to refuse removal requests when the data are necessary for specific functionality of the app, in circumstances where removing your data would compromise the functionality for all users.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::15",
"metadata": {
"title": "Privacy Policy"
},
"title": "3.4.3. Right to Erasure:",
"url": "https://docs.nhcarrigan.com/legal/privacy#343-right-to-erasure:"
},
{
"content": "3.4.4. Right to Restrict Processing:\n\nAt any time, you may request to opt out of data collection for an application by requesting removal of your data and discontinuing interaction with the application. We may request additional identifying information, depending on the structure of the data collected by the application.\n\nWe reserve the right to refuse opt-out requests when the data are necessary for specific functionality of the app, in circumstances where opting-out would compromise the functionality for all users.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::16",
"metadata": {
"title": "Privacy Policy"
},
"title": "3.4.4. Right to Restrict Processing:",
"url": "https://docs.nhcarrigan.com/legal/privacy#344-right-to-restrict-processing:"
},
{
"content": "3.4.5. Right to Data Portability:\n\nYou may request a copy of your data in a structured, commonly used, and machine-readable format.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::17",
"metadata": {
"title": "Privacy Policy"
},
"title": "3.4.5. Right to Data Portability:",
"url": "https://docs.nhcarrigan.com/legal/privacy#345-right-to-data-portability:"
},
{
"content": "3.5. Exercising Your Rights\n\nTo exercise any of these rights or to inquire about data we may hold:\n\n- Contact us through `privacy@nhcarrigan.com`.\n- Be prepared to verify your identity to protect the security of your information",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::18",
"metadata": {
"title": "Privacy Policy"
},
"title": "3.5. Exercising Your Rights",
"url": "https://docs.nhcarrigan.com/legal/privacy#35-exercising-your-rights"
},
{
"content": "3.6. Opting Out of Data Collection\n\n- You may cease using our Services\n- For specific types of data collection, we may offer granular opt-out options\n- Note that opting out of essential data collection may limit or prevent your use of certain Services",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::19",
"metadata": {
"title": "Privacy Policy"
},
"title": "3.6. Opting Out of Data Collection",
"url": "https://docs.nhcarrigan.com/legal/privacy#36-opting-out-of-data-collection"
},
{
"content": "3.7. Response Time and Process\n\nWe will make reasonable efforts to respond to all data-related requests within 30 days. Complex requests may require additional time, in which case we will notify you.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::20",
"metadata": {
"title": "Privacy Policy"
},
"title": "3.7. Response Time and Process",
"url": "https://docs.nhcarrigan.com/legal/privacy#37-response-time-and-process"
},
{
"content": "3.8. Limitations\n\nWhile we strive to honour all legitimate requests, be aware that legal requirements may sometimes prevent us from fully complying with certain requests.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::21",
"metadata": {
"title": "Privacy Policy"
},
"title": "3.8. Limitations",
"url": "https://docs.nhcarrigan.com/legal/privacy#38-limitations"
},
{
"content": "3.9. Ongoing Commitment\n\nWe are committed to transparency and user privacy. We continuously work to improve our data practices and documentation to ensure the highest standards of data protection and user trust.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::22",
"metadata": {
"title": "Privacy Policy"
},
"title": "3.9. Ongoing Commitment",
"url": "https://docs.nhcarrigan.com/legal/privacy#39-ongoing-commitment"
},
{
"content": "4. Data Retention",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::23",
"metadata": {
"title": "Privacy Policy"
},
"title": "4. Data Retention",
"url": "https://docs.nhcarrigan.com/legal/privacy#4-data-retention"
},
{
"content": "4.1. Retention Principle\n\nWe adhere to the principle of data minimization, storing personal data for the shortest time necessary to fulfil the purposes for which it was collected and to ensure the proper functioning of our applications.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::24",
"metadata": {
"title": "Privacy Policy"
},
"title": "4.1. Retention Principle",
"url": "https://docs.nhcarrigan.com/legal/privacy#41-retention-principle"
},
{
"content": "4.2. Retention Periods\n\nSpecific retention periods may vary depending on the type of data and the purpose for which it is processed. Generally:\n\n- Active user data is retained for the duration of the user's account activity\n- Inactive user data may be retained for a period after the last user interaction, typically not exceeding 12 months\n- Aggregated and anonymized data may be retained indefinitely for analytical purposes",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::25",
"metadata": {
"title": "Privacy Policy"
},
"title": "4.2. Retention Periods",
"url": "https://docs.nhcarrigan.com/legal/privacy#42-retention-periods"
},
{
"content": "4.3. Automatic Deletion\n\nWhere technically feasible, we implement automated processes to delete or anonymize personal data that has exceeded its retention period.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::26",
"metadata": {
"title": "Privacy Policy"
},
"title": "4.3. Automatic Deletion",
"url": "https://docs.nhcarrigan.com/legal/privacy#43-automatic-deletion"
},
{
"content": "4.4. Legal and Regulatory Compliance\n\nCertain data may be retained for longer periods if required by applicable laws, regulations, or to comply with legal obligations.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::27",
"metadata": {
"title": "Privacy Policy"
},
"title": "4.4. Legal and Regulatory Compliance",
"url": "https://docs.nhcarrigan.com/legal/privacy#44-legal-and-regulatory-compliance"
},
{
"content": "4.5. Backup Retention\n\nFor data recovery purposes, backups may contain personal data for a period beyond the active retention period. These backups are secured and accessed only when necessary for system restoration.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::28",
"metadata": {
"title": "Privacy Policy"
},
"title": "4.5. Backup Retention",
"url": "https://docs.nhcarrigan.com/legal/privacy#45-backup-retention"
},
{
"content": "4.6. User-Initiated Deletion\n\nUsers may request the deletion of their data at any time, subject to our legitimate business needs and legal obligations.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::29",
"metadata": {
"title": "Privacy Policy"
},
"title": "4.6. User-Initiated Deletion",
"url": "https://docs.nhcarrigan.com/legal/privacy#46-user-initiated-deletion"
},
{
"content": "5. Availability of Data",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::30",
"metadata": {
"title": "Privacy Policy"
},
"title": "5. Availability of Data",
"url": "https://docs.nhcarrigan.com/legal/privacy#5-availability-of-data"
},
{
"content": "5.1. Access Control\n\nAccess to user data is strictly controlled and limited to authorized members of the nhcarrigan team on a need-to-know basis.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::31",
"metadata": {
"title": "Privacy Policy"
},
"title": "5.1. Access Control",
"url": "https://docs.nhcarrigan.com/legal/privacy#51-access-control"
},
{
"content": "5.2. Purpose Limitation\n\nData access by the nhcarrigan team is permitted only for the following purposes:\n\n- Debugging application issues\n- Improving application functionality and user experience\n- Contributing to the development and maintenance of the application\n- Responding to user support requests\n- Ensuring compliance with legal and regulatory requirements",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::32",
"metadata": {
"title": "Privacy Policy"
},
"title": "5.2. Purpose Limitation",
"url": "https://docs.nhcarrigan.com/legal/privacy#52-purpose-limitation"
},
{
"content": "5.3. Data Security Measures\n\nWe implement robust security measures to protect data from unauthorized access, including but not limited to:\n\n- Encryption of data in transit and at rest\n- Multi-factor authentication for developer accounts\n- Regular security audits and vulnerability assessments\n- Logging of data access and modifications",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::33",
"metadata": {
"title": "Privacy Policy"
},
"title": "5.3. Data Security Measures",
"url": "https://docs.nhcarrigan.com/legal/privacy#53-data-security-measures"
},
{
"content": "5.4. Developer Training and Accountability\n\nAll team members with data access are:\n\n- Required to undergo privacy and security training\n- Bound by confidentiality agreements\n- Subject to disciplinary action for unauthorized data access or misuse",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::34",
"metadata": {
"title": "Privacy Policy"
},
"title": "5.4. Developer Training and Accountability",
"url": "https://docs.nhcarrigan.com/legal/privacy#54-developer-training-and-accountability"
},
{
"content": "5.5. Third-Party Access\n\nWe do not sell user data. In cases where third-party service providers require access to perform specific functions:\n\n- Access is limited to the minimum necessary data\n- Providers are bound by strict contractual obligations to protect user data\n- We regularly review and audit third-party practices",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::35",
"metadata": {
"title": "Privacy Policy"
},
"title": "5.5. Third-Party Access",
"url": "https://docs.nhcarrigan.com/legal/privacy#55-third-party-access"
},
{
"content": "5.6. Transparency\n\nWe maintain logs of data access by our team and can provide this information upon justified request, subject to privacy and security considerations.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::36",
"metadata": {
"title": "Privacy Policy"
},
"title": "5.6. Transparency",
"url": "https://docs.nhcarrigan.com/legal/privacy#56-transparency"
},
{
"content": "5.7. User Data Requests\n\nUsers may request information about how their data has been accessed or used by contacting our designated data protection contact.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::37",
"metadata": {
"title": "Privacy Policy"
},
"title": "5.7. User Data Requests",
"url": "https://docs.nhcarrigan.com/legal/privacy#57-user-data-requests"
},
{
"content": "5.8. Continuous Improvement\n\nWe regularly review and update our data handling practices to ensure the highest standards of data protection and to minimize unnecessary access to personal information.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::38",
"metadata": {
"title": "Privacy Policy"
},
"title": "5.8. Continuous Improvement",
"url": "https://docs.nhcarrigan.com/legal/privacy#58-continuous-improvement"
},
{
"content": "6. Contact Information and Data Inquiries\n\nWe value transparency and are committed to addressing any questions or concerns you may have regarding our privacy practices. There are several ways to reach us:",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::39",
"metadata": {
"title": "Privacy Policy"
},
"title": "6. Contact Information and Data Inquiries",
"url": "https://docs.nhcarrigan.com/legal/privacy#6-contact-information-and-data-inquiries"
},
{
"content": "6.1. Forum\n\nFor immediate assistance and community support, join our forum: https://forum.nhcarrigan.com",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::40",
"metadata": {
"title": "Privacy Policy"
},
"title": "6.1. Forum",
"url": "https://docs.nhcarrigan.com/legal/privacy#61-forum"
},
{
"content": "6.2. Email Contact\n\nFor privacy-specific inquiries or formal requests, please email: `privacy@nhcarrigan.com`",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::41",
"metadata": {
"title": "Privacy Policy"
},
"title": "6.2. Email Contact",
"url": "https://docs.nhcarrigan.com/legal/privacy#62-email-contact"
},
{
"content": "6.3. Response Time\n\nWe strive to respond to all inquiries within 5 business days. Complex issues may require additional time.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::42",
"metadata": {
"title": "Privacy Policy"
},
"title": "6.3. Response Time",
"url": "https://docs.nhcarrigan.com/legal/privacy#63-response-time"
},
{
"content": "6.4. Types of Inquiries\n\nWe welcome contact regarding:\n\n- Questions about this privacy policy\n- Inquiries about our data collection and use practices\n- Requests to exercise your data rights (access, rectification, erasure, etc.)\n- Reporting of potential data breaches or security concerns\n- Suggestions for improving our privacy practices",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::43",
"metadata": {
"title": "Privacy Policy"
},
"title": "6.4. Types of Inquiries",
"url": "https://docs.nhcarrigan.com/legal/privacy#64-types-of-inquiries"
},
{
"content": "6.5. Information to Include\n\nTo help us address your inquiry efficiently, please include:\n\n- Your full name\n- The email address associated with your account (if applicable)\n- A detailed description of your question or concern\n- Any relevant dates, times, or specific instances related to your inquiry",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::44",
"metadata": {
"title": "Privacy Policy"
},
"title": "6.5. Information to Include",
"url": "https://docs.nhcarrigan.com/legal/privacy#65-information-to-include"
},
{
"content": "6.6. Verification Process\n\nFor security reasons, we may need to verify your identity before processing certain requests, especially those related to personal data.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::45",
"metadata": {
"title": "Privacy Policy"
},
"title": "6.6. Verification Process",
"url": "https://docs.nhcarrigan.com/legal/privacy#66-verification-process"
},
{
"content": "6.7. Alternative Contact Methods\n\nIf you are unable to use Discord or email, please visit our website for additional contact options: https://nhcarrigan.com",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::46",
"metadata": {
"title": "Privacy Policy"
},
"title": "6.7. Alternative Contact Methods",
"url": "https://docs.nhcarrigan.com/legal/privacy#67-alternative-contact-methods"
},
{
"content": "6.8. Updates and Notifications\n\nIf you wish to receive updates about changes to our privacy policy or data practices, please bookmark this page.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::47",
"metadata": {
"title": "Privacy Policy"
},
"title": "6.8. Updates and Notifications",
"url": "https://docs.nhcarrigan.com/legal/privacy#68-updates-and-notifications"
},
{
"content": "6.9. Legal Inquiries\n\nFor legal or formal inquiries, please use the email provided above and clearly mark your message as a legal inquiry.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::48",
"metadata": {
"title": "Privacy Policy"
},
"title": "6.9. Legal Inquiries",
"url": "https://docs.nhcarrigan.com/legal/privacy#69-legal-inquiries"
},
{
"content": "6.10. Accessibility\n\nIf you require this information in an alternative format for accessibility reasons, please let us know, and we will do our best to accommodate your needs.",
"file": "src/content/docs/legal/privacy.md",
"id": "src/content/docs/legal/privacy.md::49",
"metadata": {
"title": "Privacy Policy"
},
"title": "6.10. Accessibility",
"url": "https://docs.nhcarrigan.com/legal/privacy#610-accessibility"
},
{
"content": "",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::0",
"metadata": {
"title": "Security Policy"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/legal/security#"
},
{
"content": "1. Introduction\n\nThis Security Policy outlines the procedures for reporting security vulnerabilities in our applications and the terms under which we handle such reports. By participating in our security reporting process, you agree to comply with this policy.",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::1",
"metadata": {
"title": "Security Policy"
},
"title": "1. Introduction",
"url": "https://docs.nhcarrigan.com/legal/security#1-introduction"
},
{
"content": "2. Scope\n\nThis policy applies to all applications, services, and systems maintained by our organization, including but not limited to:\n\n- Our main websites and applications\n- All open-source projects hosted on our repositories\n- Any associated APIs or backend services",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::2",
"metadata": {
"title": "Security Policy"
},
"title": "2. Scope",
"url": "https://docs.nhcarrigan.com/legal/security#2-scope"
},
{
"content": "3. Reporting a Vulnerability",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::3",
"metadata": {
"title": "Security Policy"
},
"title": "3. Reporting a Vulnerability",
"url": "https://docs.nhcarrigan.com/legal/security#3-reporting-a-vulnerability"
},
{
"content": "3.1 Reporting Channels\n\nIf you discover a security vulnerability within any of our applications or systems, please report it through one of the following secure channels:\n\n1. Send an email to `security@nhcarrigan.com`",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::4",
"metadata": {
"title": "Security Policy"
},
"title": "3.1 Reporting Channels",
"url": "https://docs.nhcarrigan.com/legal/security#31-reporting-channels"
},
{
"content": "3.2 Public Disclosure Prohibition\n\nDo NOT disclose the vulnerability publicly or through any public channels, including but not limited to:\n\n- Public GitHub issues\n- Social media platforms\n- Public forums or chat rooms\n- Blog posts or articles",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::5",
"metadata": {
"title": "Security Policy"
},
"title": "3.2 Public Disclosure Prohibition",
"url": "https://docs.nhcarrigan.com/legal/security#32-public-disclosure-prohibition"
},
{
"content": "3.3 Required Information\n\nWhen reporting a vulnerability, please provide:\n\n- A detailed description of the vulnerability\n- Steps to reproduce the issue\n- Potential impact of the vulnerability\n- Any suggested mitigation or fix (if known)",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::6",
"metadata": {
"title": "Security Policy"
},
"title": "3.3 Required Information",
"url": "https://docs.nhcarrigan.com/legal/security#33-required-information"
},
{
"content": "4. Response Process",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::7",
"metadata": {
"title": "Security Policy"
},
"title": "4. Response Process",
"url": "https://docs.nhcarrigan.com/legal/security#4-response-process"
},
{
"content": "4.1 Acknowledgment\n\nWe will acknowledge receipt of your vulnerability report within 3 business days.",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::8",
"metadata": {
"title": "Security Policy"
},
"title": "4.1 Acknowledgment",
"url": "https://docs.nhcarrigan.com/legal/security#41-acknowledgment"
},
{
"content": "4.2 Assessment and Verification\n\nOur security team will assess the reported vulnerability and may contact you for additional information if needed.",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::9",
"metadata": {
"title": "Security Policy"
},
"title": "4.2 Assessment and Verification",
"url": "https://docs.nhcarrigan.com/legal/security#42-assessment-and-verification"
},
{
"content": "4.3 Resolution Timeline\n\nWe strive to resolve confirmed vulnerabilities within 90 days of the initial report, depending on the complexity and severity of the issue.",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::10",
"metadata": {
"title": "Security Policy"
},
"title": "4.3 Resolution Timeline",
"url": "https://docs.nhcarrigan.com/legal/security#43-resolution-timeline"
},
{
"content": "5. Disclosure Policy",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::11",
"metadata": {
"title": "Security Policy"
},
"title": "5. Disclosure Policy",
"url": "https://docs.nhcarrigan.com/legal/security#5-disclosure-policy"
},
{
"content": "5.1 Coordinated Disclosure\n\nWe practice coordinated disclosure. We will work with you to ensure that a fix is available before any public disclosure of the vulnerability.",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::12",
"metadata": {
"title": "Security Policy"
},
"title": "5.1 Coordinated Disclosure",
"url": "https://docs.nhcarrigan.com/legal/security#51-coordinated-disclosure"
},
{
"content": "5.2 Public Acknowledgment\n\nWith your permission, we may publicly acknowledge your contribution in discovering and reporting the vulnerability after it has been resolved.",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::13",
"metadata": {
"title": "Security Policy"
},
"title": "5.2 Public Acknowledgment",
"url": "https://docs.nhcarrigan.com/legal/security#52-public-acknowledgment"
},
{
"content": "6. Legal Safe Harbor",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::14",
"metadata": {
"title": "Security Policy"
},
"title": "6. Legal Safe Harbor",
"url": "https://docs.nhcarrigan.com/legal/security#6-legal-safe-harbor"
},
{
"content": "6.1 Authorization\n\nWe authorize security research and vulnerability disclosure activities, provided they are conducted in accordance with this policy and all applicable laws.",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::15",
"metadata": {
"title": "Security Policy"
},
"title": "6.1 Authorization",
"url": "https://docs.nhcarrigan.com/legal/security#61-authorization"
},
{
"content": "6.2 Scope of Protection\n\nWe will not initiate legal action for accidental, good faith violations of this policy. This safe harbor applies only to activities that:\n\n- Comply with all aspects of this Security Policy\n- Do not compromise or attempt to compromise the privacy or safety of our users, employees, or systems\n- Do not violate any applicable laws",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::16",
"metadata": {
"title": "Security Policy"
},
"title": "6.2 Scope of Protection",
"url": "https://docs.nhcarrigan.com/legal/security#62-scope-of-protection"
},
{
"content": "6.3 Limitations\n\nThis safe harbor does not apply to:\n\n- Vulnerabilities or information obtained through means other than security research\n- Research conducted on third-party applications or services that integrate with our systems",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::17",
"metadata": {
"title": "Security Policy"
},
"title": "6.3 Limitations",
"url": "https://docs.nhcarrigan.com/legal/security#63-limitations"
},
{
"content": "7. Bug Bounty Program\n\nWe do not currently offer monetary rewards or \"bug bounties\" for reporting security vulnerabilities. Your contributions to our security are greatly appreciated, but are on a voluntary basis.\n\nWe will gladly thank you in our [Hall of Fame](/community/hall-of-fame)",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::18",
"metadata": {
"title": "Security Policy"
},
"title": "7. Bug Bounty Program",
"url": "https://docs.nhcarrigan.com/legal/security#7-bug-bounty-program"
},
{
"content": "8. Data Protection and Privacy",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::19",
"metadata": {
"title": "Security Policy"
},
"title": "8. Data Protection and Privacy",
"url": "https://docs.nhcarrigan.com/legal/security#8-data-protection-and-privacy"
},
{
"content": "8.1 Handling of Submitted Information\n\nAny information you provide in your vulnerability report will be handled in accordance with our Privacy Policy and applicable data protection laws.",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::20",
"metadata": {
"title": "Security Policy"
},
"title": "8.1 Handling of Submitted Information",
"url": "https://docs.nhcarrigan.com/legal/security#81-handling-of-submitted-information"
},
{
"content": "8.2 Confidentiality\n\nWe will treat all vulnerability reports as confidential and will not share the information beyond what is necessary to address the reported issue.",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::21",
"metadata": {
"title": "Security Policy"
},
"title": "8.2 Confidentiality",
"url": "https://docs.nhcarrigan.com/legal/security#82-confidentiality"
},
{
"content": "9. Proactive Measures\n\nIn order to maintain the best possible effort to protect your data and the safety of our applications, we implement the following proactive security measures.",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::22",
"metadata": {
"title": "Security Policy"
},
"title": "9. Proactive Measures",
"url": "https://docs.nhcarrigan.com/legal/security#9-proactive-measures"
},
{
"content": "9.1. Code Scanning\n\nOur projects are scanned for potential security risks and vulnerabilities using SonarQube. You can view the latest scan reports [on our dashboard](https://quality.nhcarrigan.link).",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::23",
"metadata": {
"title": "Security Policy"
},
"title": "9.1. Code Scanning",
"url": "https://docs.nhcarrigan.com/legal/security#91-code-scanning"
},
{
"content": "9.2. Local Scanning\n\nWe also run a weekly scan on all of our projects using local tooling:\n\n- Gitleaks (to detect leaked secrets and credentials)\n- Grype (secondary detection for vulnerabilities in dependencies)\n- Snyk (in-depth scanning of code and dependencies)\n- Syft (to generate Software Bill of Materials for third-party auditors to use)\n- Trivy (to detect vulnerabilities in dependencies)\n\nThe results of these scans are found at https://security.nhcarrigan.com",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::24",
"metadata": {
"title": "Security Policy"
},
"title": "9.2. Local Scanning",
"url": "https://docs.nhcarrigan.com/legal/security#92-local-scanning"
},
{
"content": "10. Compliance with Laws and Regulations\n\nAll security research and vulnerability disclosure activities must comply with all applicable local, state, and federal laws, as well as any relevant international laws.",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::25",
"metadata": {
"title": "Security Policy"
},
"title": "10. Compliance with Laws and Regulations",
"url": "https://docs.nhcarrigan.com/legal/security#10-compliance-with-laws-and-regulations"
},
{
"content": "11. Policy Updates\n\nWe reserve the right to update or modify this Security Policy at any time. Any changes will be effective immediately upon posting the updated policy on our website or repository.",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::26",
"metadata": {
"title": "Security Policy"
},
"title": "11. Policy Updates",
"url": "https://docs.nhcarrigan.com/legal/security#11-policy-updates"
},
{
"content": "12. Contact Information\n\nFor any questions regarding this Security Policy, please contact us at `security@nhcarrigan.com`.\n\nBy reporting a security vulnerability to us, you acknowledge that you have read, understood, and agree to this Security Policy.",
"file": "src/content/docs/legal/security.md",
"id": "src/content/docs/legal/security.md::27",
"metadata": {
"title": "Security Policy"
},
"title": "12. Contact Information",
"url": "https://docs.nhcarrigan.com/legal/security#12-contact-information"
},
{
"content": "",
"file": "src/content/docs/legal/subprocessors.md",
"id": "src/content/docs/legal/subprocessors.md::0",
"metadata": {
"title": "Data Subprocessors"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/legal/subprocessors#"
},
{
"content": "1. Subprocessors\n\nThe following entities process your data on our behalf. Interacting with our applications is subject to the privacy policies and terms of these entities.",
"file": "src/content/docs/legal/subprocessors.md",
"id": "src/content/docs/legal/subprocessors.md::1",
"metadata": {
"title": "Data Subprocessors"
},
"title": "1. Subprocessors",
"url": "https://docs.nhcarrigan.com/legal/subprocessors#1-subprocessors"
},
{
"content": "1.1. Primary Subprocessors\n\nThese entities directly store, manage, or handle our application data.\n\n| Entity | Data Processed |\n| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |\n| DigitalOcean | Any data transmitted over the network to and from our applications. |\n| 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. |\n| MongoDB | Any data provided to our applications when you interact with them. |\n| ProtonMail | Any information transmitted to and from our `nhcarrigan.com` email addresses. |\n| Stripe | Information provided during the identity and age verification processes necessary to access certain applications and community channels, and payment information for invoices. |",
"file": "src/content/docs/legal/subprocessors.md",
"id": "src/content/docs/legal/subprocessors.md::2",
"metadata": {
"title": "Data Subprocessors"
},
"title": "1.1. Primary Subprocessors",
"url": "https://docs.nhcarrigan.com/legal/subprocessors#11-primary-subprocessors"
},
{
"content": "1.2. Secondary Subprocessors\n\nIn addition to our primary subprocessors, platforms and services you engage with in order to interface with our applications maintain their own privacy policies, and may store your data pursuant to those policies.\n\nSuch platforms include, but are not limited to:\n\n- Codeberg\n- Discord\n- GitHub",
"file": "src/content/docs/legal/subprocessors.md",
"id": "src/content/docs/legal/subprocessors.md::3",
"metadata": {
"title": "Data Subprocessors"
},
"title": "1.2. Secondary Subprocessors",
"url": "https://docs.nhcarrigan.com/legal/subprocessors#12-secondary-subprocessors"
},
{
"content": "",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::0",
"metadata": {
"title": "Terms of Service"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/legal/terms#"
},
{
"content": "1. OVERVIEW AND ACCEPTANCE OF TERMS",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::1",
"metadata": {
"title": "Terms of Service"
},
"title": "1. OVERVIEW AND ACCEPTANCE OF TERMS",
"url": "https://docs.nhcarrigan.com/legal/terms#1-overview-and-acceptance-of-terms"
},
{
"content": "1.1 Application Operator\n\nThis application (hereinafter referred to as the \"Application\") is owned and operated by nhcarrigan (\"we,\" \"us,\" or \"our\"). By accessing or using the Application, you agree to be bound by these Terms of Service (\"Terms\").",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::2",
"metadata": {
"title": "Terms of Service"
},
"title": "1.1 Application Operator",
"url": "https://docs.nhcarrigan.com/legal/terms#11-application-operator"
},
{
"content": "1.2 Acceptance of Terms\n\nBy using our Application, you engage in our \"Service\" and agree to be bound by these Terms, including any additional terms, conditions, and policies referenced herein or available via hyperlink. If you do not agree to all the terms and conditions of this agreement, you must not access or use the Application.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::3",
"metadata": {
"title": "Terms of Service"
},
"title": "1.2 Acceptance of Terms",
"url": "https://docs.nhcarrigan.com/legal/terms#12-acceptance-of-terms"
},
{
"content": "1.3 Scope of Application\n\nThese Terms apply to all users of the Application, including but not limited to browsers, vendors, customers, merchants, and contributors of content.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::4",
"metadata": {
"title": "Terms of Service"
},
"title": "1.3 Scope of Application",
"url": "https://docs.nhcarrigan.com/legal/terms#13-scope-of-application"
},
{
"content": "1.4 Modification of Terms\n\nWe reserve the right, at our sole discretion, to modify, amend, or replace any part of these Terms at any time. It is your responsibility to check these Terms periodically for changes. Your continued use of or access to the Application following the posting of any changes constitutes acceptance of those changes.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::5",
"metadata": {
"title": "Terms of Service"
},
"title": "1.4 Modification of Terms",
"url": "https://docs.nhcarrigan.com/legal/terms#14-modification-of-terms"
},
{
"content": "1.5 Current Version\n\nThe most current version of the Terms will always be available for review on this page. The version date will be clearly indicated at the top of the document.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::6",
"metadata": {
"title": "Terms of Service"
},
"title": "1.5 Current Version",
"url": "https://docs.nhcarrigan.com/legal/terms#15-current-version"
},
{
"content": "1.6 Additional Features and Tools\n\nAny new features or tools added to the current Application shall also be subject to these Terms.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::7",
"metadata": {
"title": "Terms of Service"
},
"title": "1.6 Additional Features and Tools",
"url": "https://docs.nhcarrigan.com/legal/terms#16-additional-features-and-tools"
},
{
"content": "1.7 Electronic Communications\n\nBy using this Application or communicating with us by electronic means, you consent to receive communications from us electronically. You agree that all agreements, notices, disclosures, and other communications that we provide to you electronically satisfy any legal requirement that such communications be in writing.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::8",
"metadata": {
"title": "Terms of Service"
},
"title": "1.7 Electronic Communications",
"url": "https://docs.nhcarrigan.com/legal/terms#17-electronic-communications"
},
{
"content": "1.8 User Accounts\n\nYou may be required to create an account to access certain features of the Application. You are responsible for maintaining the confidentiality of your account information and for all activities that occur under your account.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::9",
"metadata": {
"title": "Terms of Service"
},
"title": "1.8 User Accounts",
"url": "https://docs.nhcarrigan.com/legal/terms#18-user-accounts"
},
{
"content": "1.9 Intellectual Property\n\nAll content on this Application, including but not limited to text, graphics, logos, images, and software, is the property of nhcarrigan or its content suppliers and is protected by international copyright laws.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::10",
"metadata": {
"title": "Terms of Service"
},
"title": "1.9 Intellectual Property",
"url": "https://docs.nhcarrigan.com/legal/terms#19-intellectual-property"
},
{
"content": "1.10 Prohibited Uses\n\nYou agree not to use the Application for any unlawful purpose or in any way that could damage, disable, overburden, or impair the Application or interfere with any other party's use of the Application.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::11",
"metadata": {
"title": "Terms of Service"
},
"title": "1.10 Prohibited Uses",
"url": "https://docs.nhcarrigan.com/legal/terms#110-prohibited-uses"
},
{
"content": "1.11 Termination\n\nWe may terminate or suspend your access to the Application immediately, without prior notice or liability, for any reason whatsoever, including without limitation if you breach these Terms.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::12",
"metadata": {
"title": "Terms of Service"
},
"title": "1.11 Termination",
"url": "https://docs.nhcarrigan.com/legal/terms#111-termination"
},
{
"content": "1.12 Governing Law\n\nThese Terms shall be governed by and construed in accordance with the laws of [insert applicable jurisdiction], without regard to its conflict of law provisions.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::13",
"metadata": {
"title": "Terms of Service"
},
"title": "1.12 Governing Law",
"url": "https://docs.nhcarrigan.com/legal/terms#112-governing-law"
},
{
"content": "1.13 Severability\n\nIf any provision of these Terms is held to be unenforceable or invalid, such provision will be changed and interpreted to accomplish the objectives of such provision to the greatest extent possible under applicable law, and the remaining provisions will continue in full force and effect.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::14",
"metadata": {
"title": "Terms of Service"
},
"title": "1.13 Severability",
"url": "https://docs.nhcarrigan.com/legal/terms#113-severability"
},
{
"content": "1.14 Entire Agreement\n\nThese Terms, including any legal notices and disclaimers contained on this Application, constitute the entire agreement between nhcarrigan and you in relation to your use of this Application, and supersede all prior agreements and understandings with respect to the same.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::15",
"metadata": {
"title": "Terms of Service"
},
"title": "1.14 Entire Agreement",
"url": "https://docs.nhcarrigan.com/legal/terms#114-entire-agreement"
},
{
"content": "2. ONLINE STORE TERMS AND USER ELIGIBILITY",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::16",
"metadata": {
"title": "Terms of Service"
},
"title": "2. ONLINE STORE TERMS AND USER ELIGIBILITY",
"url": "https://docs.nhcarrigan.com/legal/terms#2-online-store-terms-and-user-eligibility"
},
{
"content": "2.1 Age Requirement\n\nBy agreeing to these Terms of Service, you represent and warrant that:\n\n- You are at least the age of majority in your state, province, or country of residence; or\n- If you are under the age of majority, you are using this Application with the consent of your parent or legal guardian, who agrees to be bound by these Terms of Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::17",
"metadata": {
"title": "Terms of Service"
},
"title": "2.1 Age Requirement",
"url": "https://docs.nhcarrigan.com/legal/terms#21-age-requirement"
},
{
"content": "2.2 Prohibited Uses\n\nYou agree that you will not use our products, services, or Application for any purposes that are unlawful, prohibited by these Terms, or contrary to public policy. Prohibited activities include, but are not limited to:\n\n- Any illegal or unauthorized purpose\n- Violating any applicable local, state, national, or international laws or regulations\n- Infringing upon or violating our intellectual property rights or the intellectual property rights of others\n- Harassing, abusing, insulting, harming, defaming, slandering, disparaging, intimidating, or discriminating based on gender, sexual orientation, religion, ethnicity, race, age, national origin, or disability\n- Submitting false or misleading information\n- Uploading or transmitting viruses, malware, or any other type of malicious code that will or may be used in any way that will affect the functionality or operation of the Application, our services, or any related website\n- Collecting or tracking the personal information of others\n- Spamming, phishing, pharming, pretexting, spidering, crawling, or scraping\n- Any obscene or immoral purpose\n- Interfering with or circumventing the security features of the Application, our services, or any related website",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::18",
"metadata": {
"title": "Terms of Service"
},
"title": "2.2 Prohibited Uses",
"url": "https://docs.nhcarrigan.com/legal/terms#22-prohibited-uses"
},
{
"content": "2.3 Intellectual Property Rights\n\nYou acknowledge and agree that all content and materials available on this Application are protected by copyrights, trademarks, service marks, patents, trade secrets, or other proprietary rights and laws. Except as expressly authorized by nhcarrigan, you agree not to sell, license, rent, modify, distribute, copy, reproduce, transmit, publicly display, publicly perform, publish, adapt, edit, or create derivative works from such materials or content.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::19",
"metadata": {
"title": "Terms of Service"
},
"title": "2.3 Intellectual Property Rights",
"url": "https://docs.nhcarrigan.com/legal/terms#23-intellectual-property-rights"
},
{
"content": "2.4 User-Generated Content\n\nIf you submit any information or content to the Application, you grant nhcarrigan a non-exclusive, royalty-free, perpetual, irrevocable, and fully sublicensable right to use, reproduce, modify, adapt, publish, translate, create derivative works from, distribute, and display such content throughout the world in any media.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::20",
"metadata": {
"title": "Terms of Service"
},
"title": "2.4 User-Generated Content",
"url": "https://docs.nhcarrigan.com/legal/terms#24-user-generated-content"
},
{
"content": "2.5 Account Termination\n\nWe reserve the right to terminate or suspend your account and bar access to the Application immediately, without prior notice or liability, for any reason whatsoever, including but not limited to a breach of these Terms.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::21",
"metadata": {
"title": "Terms of Service"
},
"title": "2.5 Account Termination",
"url": "https://docs.nhcarrigan.com/legal/terms#25-account-termination"
},
{
"content": "2.6 Service Modifications\n\nWe reserve the right to withdraw or amend our service, and any service or material we provide via the Application, in our sole discretion without notice. We will not be liable if, for any reason, all or any part of the Application is unavailable at any time or for any period.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::22",
"metadata": {
"title": "Terms of Service"
},
"title": "2.6 Service Modifications",
"url": "https://docs.nhcarrigan.com/legal/terms#26-service-modifications"
},
{
"content": "2.7 Security\n\nWhile we implement reasonable security measures, we cannot guarantee the security of your personal information transmitted to our Application. Any transmission of personal information is at your own risk.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::23",
"metadata": {
"title": "Terms of Service"
},
"title": "2.7 Security",
"url": "https://docs.nhcarrigan.com/legal/terms#27-security"
},
{
"content": "3. GENERAL CONDITIONS",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::24",
"metadata": {
"title": "Terms of Service"
},
"title": "3. GENERAL CONDITIONS",
"url": "https://docs.nhcarrigan.com/legal/terms#3-general-conditions"
},
{
"content": "3.1 Right to Refuse Service\n\nWe reserve the right to refuse service to anyone for any reason at any time, without prior notice or explanation. This includes the right to terminate accounts or access to any or all parts of the Application.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::25",
"metadata": {
"title": "Terms of Service"
},
"title": "3.1 Right to Refuse Service",
"url": "https://docs.nhcarrigan.com/legal/terms#31-right-to-refuse-service"
},
{
"content": "3.2 Content Transmission and Adaptation\n\nYou understand and acknowledge that:\n\n- Your content may be transferred unencrypted and involve transmissions over various networks.\n- Your content may be altered to conform and adapt to technical requirements of connecting networks or devices.\n- We are not responsible for any loss, alteration, or interception of data during such transmissions.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::26",
"metadata": {
"title": "Terms of Service"
},
"title": "3.2 Content Transmission and Adaptation",
"url": "https://docs.nhcarrigan.com/legal/terms#32-content-transmission-and-adaptation"
},
{
"content": "3.3 Intellectual Property and Use Restrictions\n\nYou agree not to, without express written permission from nhcarrigan:\n\n- Reproduce, duplicate, copy, sell, resell, or exploit any portion of the Service.\n- Use any portion of the Service for commercial purposes unless explicitly authorized.\n- Access or attempt to access the Service by any means other than through the interface provided by nhcarrigan.\n- Circumvent, disable, or otherwise interfere with security-related features of the Service.\n- Engage in unauthorized framing of or linking to the Application.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::27",
"metadata": {
"title": "Terms of Service"
},
"title": "3.3 Intellectual Property and Use Restrictions",
"url": "https://docs.nhcarrigan.com/legal/terms#33-intellectual-property-and-use-restrictions"
},
{
"content": "4. ACCURACY, COMPLETENESS AND TIMELINESS OF INFORMATION",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::28",
"metadata": {
"title": "Terms of Service"
},
"title": "4. ACCURACY, COMPLETENESS AND TIMELINESS OF INFORMATION",
"url": "https://docs.nhcarrigan.com/legal/terms#4-accuracy,-completeness-and-timeliness-of-information"
},
{
"content": "4.1 Disclaimer of Information Accuracy\n\nWe strive to provide accurate and up-to-date information on our Application. However, we cannot and do not guarantee that any information available on this Application is accurate, complete, current, or free from errors. The material on this Application is provided for general information purposes only and should not be relied upon as the sole basis for making decisions without consulting primary, more accurate, more complete, or more timely sources of information.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::29",
"metadata": {
"title": "Terms of Service"
},
"title": "4.1 Disclaimer of Information Accuracy",
"url": "https://docs.nhcarrigan.com/legal/terms#41-disclaimer-of-information-accuracy"
},
{
"content": "4.2 User Responsibility\n\nYou acknowledge and agree that:\n\n- Any reliance on the material on this Application is at your own risk.\n- It is your responsibility to evaluate the accuracy, completeness, and usefulness of any information, opinion, advice, or other content available through the Application.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::30",
"metadata": {
"title": "Terms of Service"
},
"title": "4.2 User Responsibility",
"url": "https://docs.nhcarrigan.com/legal/terms#42-user-responsibility"
},
{
"content": "4.3 Historical Information\n\nThis Application may contain certain historical information. Such historical information is, by its nature, not current and is provided for your reference only. We are under no obligation to update such historical information.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::31",
"metadata": {
"title": "Terms of Service"
},
"title": "4.3 Historical Information",
"url": "https://docs.nhcarrigan.com/legal/terms#43-historical-information"
},
{
"content": "4.4 Modifications to Application Content\n\nWe reserve the right to modify, update, or remove the contents of this Application at any time, without prior notice. However, we are under no obligation to update any information on our Application. You agree that it is your responsibility to monitor changes to our Application.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::32",
"metadata": {
"title": "Terms of Service"
},
"title": "4.4 Modifications to Application Content",
"url": "https://docs.nhcarrigan.com/legal/terms#44-modifications-to-application-content"
},
{
"content": "4.5 No Professional Advice\n\nThe information provided on this Application is for informational purposes only and does not constitute professional advice. You should not act or refrain from acting on the basis of any content included in this Application without seeking professional or specialist advice. We disclaim all liability and responsibility arising from any reliance placed on such materials by you or any other visitor to our Application, or by anyone who may be informed of any of its contents.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::33",
"metadata": {
"title": "Terms of Service"
},
"title": "4.5 No Professional Advice",
"url": "https://docs.nhcarrigan.com/legal/terms#45-no-professional-advice"
},
{
"content": "4.6 User-Generated Content\n\nWe may allow users to post, submit, publish, display, or transmit content on the Application. Any such user-generated content is not endorsed by us and does not necessarily represent our opinions or policies. We assume no responsibility or liability for any user-generated content or for any loss or damage resulting therefrom.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::34",
"metadata": {
"title": "Terms of Service"
},
"title": "4.6 User-Generated Content",
"url": "https://docs.nhcarrigan.com/legal/terms#46-user-generated-content"
},
{
"content": "4.7 Errors and Omissions\n\nWhile we make reasonable efforts to ensure the accuracy of the information on our Application, there may be occasions when information contains typographical errors, inaccuracies, or omissions. We reserve the right to correct any errors, inaccuracies, or omissions and to change or update information at any time without prior notice.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::35",
"metadata": {
"title": "Terms of Service"
},
"title": "4.7 Errors and Omissions",
"url": "https://docs.nhcarrigan.com/legal/terms#47-errors-and-omissions"
},
{
"content": "4.9 No Guarantee of Timeliness\n\nWe do not guarantee that the Application will be updated on a real-time basis, and information presented on the Application may be delayed or may not reflect the most current state of affairs.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::36",
"metadata": {
"title": "Terms of Service"
},
"title": "4.9 No Guarantee of Timeliness",
"url": "https://docs.nhcarrigan.com/legal/terms#49-no-guarantee-of-timeliness"
},
{
"content": "5. MODIFICATIONS TO THE SERVICE AND PRICES",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::37",
"metadata": {
"title": "Terms of Service"
},
"title": "5. MODIFICATIONS TO THE SERVICE AND PRICES",
"url": "https://docs.nhcarrigan.com/legal/terms#5-modifications-to-the-service-and-prices"
},
{
"content": "5.1 Right to Modify or Discontinue Service\n\nWe reserve the right, at our sole discretion, to modify, suspend, or discontinue the Service (or any part or content thereof) at any time without prior notice. This includes, but is not limited to:\n\n- Adding or removing features or functionality\n- Changing the user interface\n- Altering the technology stack or infrastructure\n- Modifying or discontinuing any content within the Service",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::38",
"metadata": {
"title": "Terms of Service"
},
"title": "5.1 Right to Modify or Discontinue Service",
"url": "https://docs.nhcarrigan.com/legal/terms#51-right-to-modify-or-discontinue-service"
},
{
"content": "5.2 Price Changes\n\nWe reserve the right to:\n\n- Change, modify, or adjust the pricing for our Service at any time.\n- Introduce new fees or charges for previously free aspects of the Service.\n- Change the billing methods or payment terms for the Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::39",
"metadata": {
"title": "Terms of Service"
},
"title": "5.2 Price Changes",
"url": "https://docs.nhcarrigan.com/legal/terms#52-price-changes"
},
{
"content": "5.3 Notice of Changes\n\nWhile we may attempt to notify you of significant changes to the Service or pricing, we are under no obligation to do so. It is your responsibility to check these Terms and any official communication channels we may establish for updates and changes.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::40",
"metadata": {
"title": "Terms of Service"
},
"title": "5.3 Notice of Changes",
"url": "https://docs.nhcarrigan.com/legal/terms#53-notice-of-changes"
},
{
"content": "5.4 Effect of Changes\n\nYour continued use of the Service after any modifications or price changes constitutes your acceptance of such changes. If you do not agree with any modifications or price changes, you must discontinue using the Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::41",
"metadata": {
"title": "Terms of Service"
},
"title": "5.4 Effect of Changes",
"url": "https://docs.nhcarrigan.com/legal/terms#54-effect-of-changes"
},
{
"content": "5.5 No Liability for Modifications or Discontinuation\n\nWe shall not be liable to you or to any third party for any:\n\n- Modification, change, suspension, or discontinuance of the Service\n- Price change, including increases or introduction of new fees\n- Loss of data or functionality resulting from modifications to the Service\n- Inconvenience or damages caused by any modification or discontinuation of the Service",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::42",
"metadata": {
"title": "Terms of Service"
},
"title": "5.5 No Liability for Modifications or Discontinuation",
"url": "https://docs.nhcarrigan.com/legal/terms#55-no-liability-for-modifications-or-discontinuation"
},
{
"content": "5.6 Refunds and Credits\n\nUnless explicitly stated otherwise, we are not obligated to provide refunds or credits for any prepaid services in the event of Service modification, price change, suspension, or discontinuation.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::43",
"metadata": {
"title": "Terms of Service"
},
"title": "5.6 Refunds and Credits",
"url": "https://docs.nhcarrigan.com/legal/terms#56-refunds-and-credits"
},
{
"content": "5.7 Service Level Agreements\n\nAny service level agreements (SLAs) or performance guarantees, if offered, may be modified or terminated at our discretion. Changes to SLAs will be communicated through our official channels.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::44",
"metadata": {
"title": "Terms of Service"
},
"title": "5.7 Service Level Agreements",
"url": "https://docs.nhcarrigan.com/legal/terms#57-service-level-agreements"
},
{
"content": "5.8 Third-Party Services and Integrations\n\nWe may change, suspend, or discontinue any third-party services or integrations that are part of our Service. We are not responsible for any modifications, price changes, suspension, or discontinuation of third-party services integrated with our Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::45",
"metadata": {
"title": "Terms of Service"
},
"title": "5.8 Third-Party Services and Integrations",
"url": "https://docs.nhcarrigan.com/legal/terms#58-third-party-services-and-integrations"
},
{
"content": "5.9 Data Retention and Export\n\nIn the event of Service discontinuation, we will make reasonable efforts to:\n\n- Provide notice of the impending discontinuation\n- Offer a method for you to export your data, if applicable\n- Retain your data for a reasonable period before permanent deletion",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::46",
"metadata": {
"title": "Terms of Service"
},
"title": "5.9 Data Retention and Export",
"url": "https://docs.nhcarrigan.com/legal/terms#59-data-retention-and-export"
},
{
"content": "5.10 Transition Assistance\n\nIn case of significant changes or discontinuation of the Service, we may, at our discretion, provide transition assistance or alternative solutions. However, we are under no obligation to do so.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::47",
"metadata": {
"title": "Terms of Service"
},
"title": "5.10 Transition Assistance",
"url": "https://docs.nhcarrigan.com/legal/terms#510-transition-assistance"
},
{
"content": "5.11 Survival of Terms\n\nCertain provisions of these Terms, by their nature, will continue to apply even after the modification or discontinuation of the Service, including but not limited to provisions relating to intellectual property, limitation of liability, and dispute resolution.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::48",
"metadata": {
"title": "Terms of Service"
},
"title": "5.11 Survival of Terms",
"url": "https://docs.nhcarrigan.com/legal/terms#511-survival-of-terms"
},
{
"content": "5.12 Communication of Changes\n\nWhile not obligated to do so, we may communicate significant changes to the Service or pricing through one or more of the following methods:\n\n- Email notifications to the address associated with your account\n- Notices posted on our Application or website\n- Announcements through our official social media channels\n- In-app notifications or messages",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::49",
"metadata": {
"title": "Terms of Service"
},
"title": "5.12 Communication of Changes",
"url": "https://docs.nhcarrigan.com/legal/terms#512-communication-of-changes"
},
{
"content": "6. OPTIONAL TOOLS AND THIRD-PARTY SERVICES",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::50",
"metadata": {
"title": "Terms of Service"
},
"title": "6. OPTIONAL TOOLS AND THIRD-PARTY SERVICES",
"url": "https://docs.nhcarrigan.com/legal/terms#6-optional-tools-and-third-party-services"
},
{
"content": "6.1 Provision of Third-Party Tools\n\nWe may provide you with access to third-party tools, applications, or services (\"Third-Party Tools\") over which we neither monitor nor have any control or input. These Third-Party Tools are provided for your convenience only.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::51",
"metadata": {
"title": "Terms of Service"
},
"title": "6.1 Provision of Third-Party Tools",
"url": "https://docs.nhcarrigan.com/legal/terms#61-provision-of-third-party-tools"
},
{
"content": "6.2 No Warranties for Third-Party Tools\n\nYou acknowledge and agree that we provide access to such Third-Party Tools \"as is\" and \"as available\" without any warranties, representations, or conditions of any kind and without any endorsement. We shall have no liability whatsoever arising from or relating to your use of these optional Third-Party Tools.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::52",
"metadata": {
"title": "Terms of Service"
},
"title": "6.2 No Warranties for Third-Party Tools",
"url": "https://docs.nhcarrigan.com/legal/terms#62-no-warranties-for-third-party-tools"
},
{
"content": "6.3 Use at Your Own Risk\n\nAny use by you of optional Third-Party Tools offered through the Application is entirely at your own risk and discretion. You should ensure that you are familiar with and approve of the terms on which tools are provided by the relevant third-party provider(s).",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::53",
"metadata": {
"title": "Terms of Service"
},
"title": "6.3 Use at Your Own Risk",
"url": "https://docs.nhcarrigan.com/legal/terms#63-use-at-your-own-risk"
},
{
"content": "6.4 Third-Party Terms and Policies\n\nYour use of Third-Party Tools may be subject to separate terms of service, privacy policies, and other agreements with the third-party providers. It is your responsibility to review and comply with such terms.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::54",
"metadata": {
"title": "Terms of Service"
},
"title": "6.4 Third-Party Terms and Policies",
"url": "https://docs.nhcarrigan.com/legal/terms#64-third-party-terms-and-policies"
},
{
"content": "6.5 No Support or Maintenance for Third-Party Tools\n\nWe do not provide any support or maintenance for Third-Party Tools. For assistance with these tools, you should contact the third-party provider directly.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::55",
"metadata": {
"title": "Terms of Service"
},
"title": "6.5 No Support or Maintenance for Third-Party Tools",
"url": "https://docs.nhcarrigan.com/legal/terms#65-no-support-or-maintenance-for-third-party-tools"
},
{
"content": "6.6 Integration and Compatibility\n\nWhile we may integrate Third-Party Tools into our Service, we do not guarantee their compatibility, accuracy, or continued availability within our Application.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::56",
"metadata": {
"title": "Terms of Service"
},
"title": "6.6 Integration and Compatibility",
"url": "https://docs.nhcarrigan.com/legal/terms#66-integration-and-compatibility"
},
{
"content": "6.7 Changes to Third-Party Tools\n\nThird-party providers may modify or discontinue their tools at any time. We are not responsible for any consequences resulting from changes to Third-Party Tools.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::57",
"metadata": {
"title": "Terms of Service"
},
"title": "6.7 Changes to Third-Party Tools",
"url": "https://docs.nhcarrigan.com/legal/terms#67-changes-to-third-party-tools"
},
{
"content": "6.8 Data Sharing with Third Parties\n\nBy using Third-Party Tools, you may be sharing your data with these third parties. We are not responsible for how these third parties collect, use, or protect your data. Please review the privacy policies of these third parties before using their tools.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::58",
"metadata": {
"title": "Terms of Service"
},
"title": "6.8 Data Sharing with Third Parties",
"url": "https://docs.nhcarrigan.com/legal/terms#68-data-sharing-with-third-parties"
},
{
"content": "6.9 Removal of Third-Party Tools\n\nWe reserve the right to disable access to any Third-Party Tool at any time, without notice, for any reason or no reason.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::59",
"metadata": {
"title": "Terms of Service"
},
"title": "6.9 Removal of Third-Party Tools",
"url": "https://docs.nhcarrigan.com/legal/terms#69-removal-of-third-party-tools"
},
{
"content": "6.10 Future Services and Features\n\nWe may, in the future, offer new services and/or features through the Application (including the release of new tools and resources). Such new features and/or services shall also be subject to these Terms of Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::60",
"metadata": {
"title": "Terms of Service"
},
"title": "6.10 Future Services and Features",
"url": "https://docs.nhcarrigan.com/legal/terms#610-future-services-and-features"
},
{
"content": "6.11 Beta Features\n\nWe may offer access to beta features or services. These are provided on an \"as is\" basis and may be modified or discontinued at any time without notice.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::61",
"metadata": {
"title": "Terms of Service"
},
"title": "6.11 Beta Features",
"url": "https://docs.nhcarrigan.com/legal/terms#611-beta-features"
},
{
"content": "6.12 Feedback on Third-Party Tools\n\nWhile we welcome your feedback on Third-Party Tools, we are under no obligation to act upon such feedback or to communicate it to the third-party providers.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::62",
"metadata": {
"title": "Terms of Service"
},
"title": "6.12 Feedback on Third-Party Tools",
"url": "https://docs.nhcarrigan.com/legal/terms#612-feedback-on-third-party-tools"
},
{
"content": "6.13 No Revenue Sharing\n\nUnless explicitly stated otherwise, we do not share any revenue or receive any compensation from third-party providers for making their tools available through our Application.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::63",
"metadata": {
"title": "Terms of Service"
},
"title": "6.13 No Revenue Sharing",
"url": "https://docs.nhcarrigan.com/legal/terms#613-no-revenue-sharing"
},
{
"content": "6.14 Indemnification for Third-Party Tool Usage\n\nYou agree to indemnify, defend, and hold harmless nhcarrigan and its affiliates from any claims, liabilities, damages, or expenses (including attorneys' fees) arising from your use of any Third-Party Tools.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::64",
"metadata": {
"title": "Terms of Service"
},
"title": "6.14 Indemnification for Third-Party Tool Usage",
"url": "https://docs.nhcarrigan.com/legal/terms#614-indemnification-for-third-party-tool-usage"
},
{
"content": "6.15 Security and Data Protection\n\nWhile we take reasonable measures to ensure the security of our Application, we cannot guarantee the security of Third-Party Tools or any data transmitted to or from these tools.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::65",
"metadata": {
"title": "Terms of Service"
},
"title": "6.15 Security and Data Protection",
"url": "https://docs.nhcarrigan.com/legal/terms#615-security-and-data-protection"
},
{
"content": "6.16 Compliance with Laws\n\nYou are responsible for ensuring that your use of Third-Party Tools complies with all applicable laws and regulations.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::66",
"metadata": {
"title": "Terms of Service"
},
"title": "6.16 Compliance with Laws",
"url": "https://docs.nhcarrigan.com/legal/terms#616-compliance-with-laws"
},
{
"content": "7. THIRD-PARTY LINKS AND CONTENT",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::67",
"metadata": {
"title": "Terms of Service"
},
"title": "7. THIRD-PARTY LINKS AND CONTENT",
"url": "https://docs.nhcarrigan.com/legal/terms#7-third-party-links-and-content"
},
{
"content": "7.1 Third-Party Materials\n\nCertain content, products, and services available via our Service may include materials from third parties. These may include, but are not limited to, text, graphics, images, videos, software, and other content.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::68",
"metadata": {
"title": "Terms of Service"
},
"title": "7.1 Third-Party Materials",
"url": "https://docs.nhcarrigan.com/legal/terms#71-third-party-materials"
},
{
"content": "7.2 Third-Party Links\n\nOur Application may contain links to third-party websites, applications, or services that are not owned, controlled, or operated by nhcarrigan. These links are provided for your convenience and reference only.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::69",
"metadata": {
"title": "Terms of Service"
},
"title": "7.2 Third-Party Links",
"url": "https://docs.nhcarrigan.com/legal/terms#72-third-party-links"
},
{
"content": "7.3 No Responsibility for Third-Party Content\n\nWe are not responsible for examining or evaluating the content, accuracy, completeness, timeliness, validity, copyright compliance, legality, decency, quality, or any other aspect of third-party materials, websites, products, or services. We do not warrant and will not have any liability or responsibility for any:\n\n- Third-party materials or websites\n- Other materials, products, or services of third parties\n- Content or accuracy of any third-party content presented on our Application",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::70",
"metadata": {
"title": "Terms of Service"
},
"title": "7.3 No Responsibility for Third-Party Content",
"url": "https://docs.nhcarrigan.com/legal/terms#73-no-responsibility-for-third-party-content"
},
{
"content": "7.4 Use of Third-Party Websites and Services\n\nYour use of any third-party websites or services is subject to the terms and conditions of use and privacy policies of those third parties. We strongly advise you to read the terms and conditions and privacy policies of any third-party website or service that you visit or use.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::71",
"metadata": {
"title": "Terms of Service"
},
"title": "7.4 Use of Third-Party Websites and Services",
"url": "https://docs.nhcarrigan.com/legal/terms#74-use-of-third-party-websites-and-services"
},
{
"content": "7.5 No Liability for Third-Party Transactions\n\nWe are not liable for any harm, damages, or losses related to the purchase or use of goods, services, resources, content, or any other transactions made in connection with any third-party websites or services. Any transactions you engage in with third parties are between you and the third party, and not with nhcarrigan.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::72",
"metadata": {
"title": "Terms of Service"
},
"title": "7.5 No Liability for Third-Party Transactions",
"url": "https://docs.nhcarrigan.com/legal/terms#75-no-liability-for-third-party-transactions"
},
{
"content": "7.6 Complaints and Claims\n\nAny complaints, claims, concerns, or questions regarding third-party products or services should be directed to the respective third party. We are not responsible for addressing such issues.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::73",
"metadata": {
"title": "Terms of Service"
},
"title": "7.6 Complaints and Claims",
"url": "https://docs.nhcarrigan.com/legal/terms#76-complaints-and-claims"
},
{
"content": "7.7 Disclaimer of Warranties\n\nWe make no warranties or representations about the accuracy or completeness of any third-party content accessible through our Application, and we assume no liability or responsibility for any:\n\n- Errors, mistakes, or inaccuracies of content\n- Personal injury or property damage resulting from your access to or use of third-party services\n- Any unauthorized access to or use of our secure servers and/or any personal information stored therein\n- Any interruption or cessation of transmission to or from third-party services\n- Any bugs, viruses, Trojan horses, or the like which may be transmitted to or through our Application by any third party\n- Any loss or damage of any kind incurred as a result of the use of any content posted, emailed, transmitted, or otherwise made available via third-party services",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::74",
"metadata": {
"title": "Terms of Service"
},
"title": "7.7 Disclaimer of Warranties",
"url": "https://docs.nhcarrigan.com/legal/terms#77-disclaimer-of-warranties"
},
{
"content": "7.8 Monitoring of Third-Party Links\n\nWhile we may periodically review third-party links on our Application, we are under no obligation to monitor or review such links or content. You agree that we have no liability for any loss or damage arising from your use of any third-party website, service, or content.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::75",
"metadata": {
"title": "Terms of Service"
},
"title": "7.8 Monitoring of Third-Party Links",
"url": "https://docs.nhcarrigan.com/legal/terms#78-monitoring-of-third-party-links"
},
{
"content": "7.9 Removal of Third-Party Links\n\nWe reserve the right to remove any third-party links from our Application at any time without notice.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::76",
"metadata": {
"title": "Terms of Service"
},
"title": "7.9 Removal of Third-Party Links",
"url": "https://docs.nhcarrigan.com/legal/terms#79-removal-of-third-party-links"
},
{
"content": "7.10 No Endorsement\n\nThe presence of third-party links on our Application does not imply endorsement, approval, or sponsorship by nhcarrigan of the linked websites, products, or services.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::77",
"metadata": {
"title": "Terms of Service"
},
"title": "7.10 No Endorsement",
"url": "https://docs.nhcarrigan.com/legal/terms#710-no-endorsement"
},
{
"content": "7.11 Framing and Deep Linking\n\nYou may not frame or deep link to any page or content on our Application without our express written permission.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::78",
"metadata": {
"title": "Terms of Service"
},
"title": "7.11 Framing and Deep Linking",
"url": "https://docs.nhcarrigan.com/legal/terms#711-framing-and-deep-linking"
},
{
"content": "7.12 Indemnification\n\nYou agree to indemnify, defend, and hold harmless nhcarrigan and its affiliates from any claims, liabilities, damages, or expenses (including attorneys' fees) arising from your use of any third-party websites, services, or content accessed through our Application.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::79",
"metadata": {
"title": "Terms of Service"
},
"title": "7.12 Indemnification",
"url": "https://docs.nhcarrigan.com/legal/terms#712-indemnification"
},
{
"content": "7.13 Security Warning\n\nBe aware that when you leave our Application by using a link, other sites may have different privacy policies and terms that are beyond our control. Please be sure to check the privacy policies of these sites as well as their \"Terms of Service\" before engaging in any business or uploading any information.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::80",
"metadata": {
"title": "Terms of Service"
},
"title": "7.13 Security Warning",
"url": "https://docs.nhcarrigan.com/legal/terms#713-security-warning"
},
{
"content": "8. USER COMMENTS, FEEDBACK, AND OTHER SUBMISSIONS",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::81",
"metadata": {
"title": "Terms of Service"
},
"title": "8. USER COMMENTS, FEEDBACK, AND OTHER SUBMISSIONS",
"url": "https://docs.nhcarrigan.com/legal/terms#8-user-comments,-feedback,-and-other-submissions"
},
{
"content": "8.1 User Submissions\n\nBy submitting comments, ideas, suggestions, proposals, plans, or other materials (\"User Submissions\"), whether solicited or unsolicited, you grant nhcarrigan a perpetual, irrevocable, worldwide, non-exclusive, royalty-free, sublicensable, and transferable license to use, reproduce, distribute, prepare derivative works of, display, perform, and otherwise exploit your User Submissions in connection with the Application and nhcarrigan's business.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::82",
"metadata": {
"title": "Terms of Service"
},
"title": "8.1 User Submissions",
"url": "https://docs.nhcarrigan.com/legal/terms#81-user-submissions"
},
{
"content": "8.2 Rights Granted\n\nYou agree that we may, at any time, without restriction or compensation, and without notice:\n\n- Edit, copy, publish, distribute, translate, and otherwise use in any medium any User Submissions\n- Use any ideas, concepts, know-how, or techniques contained in any User Submissions for any purpose whatsoever, including developing, manufacturing, and marketing products or services",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::83",
"metadata": {
"title": "Terms of Service"
},
"title": "8.2 Rights Granted",
"url": "https://docs.nhcarrigan.com/legal/terms#82-rights-granted"
},
{
"content": "8.3 No Obligation\n\nWe are under no obligation to:\n\n- Maintain any User Submissions in confidence\n- Pay compensation for any User Submissions\n- Respond to any User Submissions",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::84",
"metadata": {
"title": "Terms of Service"
},
"title": "8.3 No Obligation",
"url": "https://docs.nhcarrigan.com/legal/terms#83-no-obligation"
},
{
"content": "8.4 Content Moderation\n\nWe reserve the right, but have no obligation, to monitor, edit, or remove any User Submissions that we determine, in our sole discretion, to be:\n\n- Unlawful, offensive, threatening, libellous, defamatory, pornographic, or obscene\n- Violating any party's intellectual property rights\n- Violating these Terms of Service or our Code of Conduct\n- Otherwise objectionable",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::85",
"metadata": {
"title": "Terms of Service"
},
"title": "8.4 Content Moderation",
"url": "https://docs.nhcarrigan.com/legal/terms#84-content-moderation"
},
{
"content": "8.5 User Representations and Warranties\n\nYou represent and warrant that your User Submissions:\n\n- Do not violate any right of any third party, including copyright, trademark, privacy, personality, or other personal or proprietary rights\n- Do not contain libellous, unlawful, abusive, or obscene material\n- Do not contain any computer virus or other malware that could affect the operation of the Service or any related website\n- Do not violate any applicable local, state, national, or international law or regulation",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::86",
"metadata": {
"title": "Terms of Service"
},
"title": "8.5 User Representations and Warranties",
"url": "https://docs.nhcarrigan.com/legal/terms#85-user-representations-and-warranties"
},
{
"content": "8.6 Prohibited Content\n\nYou agree not to submit User Submissions that:\n\n- Impersonate any person or entity\n- Falsely state or otherwise misrepresent your affiliation with a person or entity\n- Contain false or misleading information\n- Infringe upon or violate our intellectual property rights or the intellectual property rights of others\n- Promote illegal activities or conduct that is abusive, threatening, obscene, defamatory, or libellous\n- Promote discrimination based on race, sex, religion, nationality, disability, sexual orientation, or age\n- Contain topics, names, material, or information that violate any applicable law or regulation",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::87",
"metadata": {
"title": "Terms of Service"
},
"title": "8.6 Prohibited Content",
"url": "https://docs.nhcarrigan.com/legal/terms#86-prohibited-content"
},
{
"content": "8.7 Responsibility for User Submissions\n\nYou are solely responsible for any User Submissions you make and their accuracy. We take no responsibility and assume no liability for any User Submissions posted by you or any third party.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::88",
"metadata": {
"title": "Terms of Service"
},
"title": "8.7 Responsibility for User Submissions",
"url": "https://docs.nhcarrigan.com/legal/terms#87-responsibility-for-user-submissions"
},
{
"content": "8.8 No Endorsement\n\nWe do not endorse any User Submissions or any opinion, recommendation, or advice expressed therein, and we expressly disclaim any and all liability in connection with User Submissions.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::89",
"metadata": {
"title": "Terms of Service"
},
"title": "8.8 No Endorsement",
"url": "https://docs.nhcarrigan.com/legal/terms#88-no-endorsement"
},
{
"content": "8.9 Right to Remove or Refuse\n\nWe reserve the right to remove any User Submissions from the Application at any time, for any reason, without notice. We also reserve the right to refuse to post any User Submissions, at our sole discretion.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::90",
"metadata": {
"title": "Terms of Service"
},
"title": "8.9 Right to Remove or Refuse",
"url": "https://docs.nhcarrigan.com/legal/terms#89-right-to-remove-or-refuse"
},
{
"content": "8.10 Feedback\n\nIf you provide us with any feedback or suggestions regarding the Application (\"Feedback\"), you hereby assign to us all rights in such Feedback and agree that we shall have the right to use and fully exploit such Feedback in any manner we deem appropriate.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::91",
"metadata": {
"title": "Terms of Service"
},
"title": "8.10 Feedback",
"url": "https://docs.nhcarrigan.com/legal/terms#810-feedback"
},
{
"content": "8.11 No Compensation\n\nYou agree that you will not be entitled to, and shall not receive, any compensation or reimbursement of any kind for your User Submissions or Feedback.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::92",
"metadata": {
"title": "Terms of Service"
},
"title": "8.11 No Compensation",
"url": "https://docs.nhcarrigan.com/legal/terms#811-no-compensation"
},
{
"content": "8.12 Indemnification\n\nYou agree to indemnify and hold nhcarrigan and its affiliates, officers, agents, employees, and partners harmless from any claim or demand, including reasonable attorneys' fees, made by any third party due to or arising out of your User Submissions.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::93",
"metadata": {
"title": "Terms of Service"
},
"title": "8.12 Indemnification",
"url": "https://docs.nhcarrigan.com/legal/terms#812-indemnification"
},
{
"content": "8.13 Survival\n\nThe provisions of this section shall survive the termination of these Terms of Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::94",
"metadata": {
"title": "Terms of Service"
},
"title": "8.13 Survival",
"url": "https://docs.nhcarrigan.com/legal/terms#813-survival"
},
{
"content": "9. PERSONAL INFORMATION AND PRIVACY",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::95",
"metadata": {
"title": "Terms of Service"
},
"title": "9. PERSONAL INFORMATION AND PRIVACY",
"url": "https://docs.nhcarrigan.com/legal/terms#9-personal-information-and-privacy"
},
{
"content": "9.1 Governing Policy\n\nYour submission of personal information through the Application is governed by our Privacy Policy. Our Privacy Policy is incorporated into these Terms of Service by reference.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::96",
"metadata": {
"title": "Terms of Service"
},
"title": "9.1 Governing Policy",
"url": "https://docs.nhcarrigan.com/legal/terms#91-governing-policy"
},
{
"content": "9.2 Location of Privacy Policy\n\nTo view our complete Privacy Policy, please visit: [Privacy Policy](./privacy.md)",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::97",
"metadata": {
"title": "Terms of Service"
},
"title": "9.2 Location of Privacy Policy",
"url": "https://docs.nhcarrigan.com/legal/terms#92-location-of-privacy-policy"
},
{
"content": "9.3 Consent to Privacy Policy\n\nBy using our Application and providing personal information, you consent to the collection, use, and disclosure of your information as described in our Privacy Policy.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::98",
"metadata": {
"title": "Terms of Service"
},
"title": "9.3 Consent to Privacy Policy",
"url": "https://docs.nhcarrigan.com/legal/terms#93-consent-to-privacy-policy"
},
{
"content": "9.4 Types of Information Collected\n\nWe may collect various types of personal information, including but not limited to:\n\n- Contact information (e.g., name, email address, phone number)\n- Account credentials\n- Usage data and analytics\n- Device information\n- Location data (if permitted by you)",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::99",
"metadata": {
"title": "Terms of Service"
},
"title": "9.4 Types of Information Collected",
"url": "https://docs.nhcarrigan.com/legal/terms#94-types-of-information-collected"
},
{
"content": "9.5 Use of Personal Information\n\nWe use your personal information to:\n\n- Provide and improve our services\n- Communicate with you about our services\n- Personalize your experience\n- Comply with legal obligations\n- Protect our rights and the rights of others",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::100",
"metadata": {
"title": "Terms of Service"
},
"title": "9.5 Use of Personal Information",
"url": "https://docs.nhcarrigan.com/legal/terms#95-use-of-personal-information"
},
{
"content": "9.6 Data Security\n\nWe implement reasonable security measures to protect your personal information. However, no method of transmission over the Internet or electronic storage is 100% secure, and we cannot guarantee absolute security.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::101",
"metadata": {
"title": "Terms of Service"
},
"title": "9.6 Data Security",
"url": "https://docs.nhcarrigan.com/legal/terms#96-data-security"
},
{
"content": "9.7 Third-Party Access\n\nWe may share your personal information with third-party service providers who assist us in operating our Application and providing services to you. These third parties are obligated to use your information only for the purposes for which we disclose it to them.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::102",
"metadata": {
"title": "Terms of Service"
},
"title": "9.7 Third-Party Access",
"url": "https://docs.nhcarrigan.com/legal/terms#97-third-party-access"
},
{
"content": "9.8 Data Retention\n\nWe retain your personal information for as long as necessary to fulfil the purposes outlined in our Privacy Policy, unless a longer retention period is required or permitted by law.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::103",
"metadata": {
"title": "Terms of Service"
},
"title": "9.8 Data Retention",
"url": "https://docs.nhcarrigan.com/legal/terms#98-data-retention"
},
{
"content": "9.9 Your Rights\n\nDepending on your jurisdiction, you may have certain rights regarding your personal information, such as the right to access, correct, or delete your data. Please refer to our Privacy Policy for more information on how to exercise these rights.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::104",
"metadata": {
"title": "Terms of Service"
},
"title": "9.9 Your Rights",
"url": "https://docs.nhcarrigan.com/legal/terms#99-your-rights"
},
{
"content": "9.10 Children's Privacy\n\nOur Application is not intended for use by children under the age of 13 (or the applicable age of digital consent in your jurisdiction). We do not knowingly collect personal information from children under this age.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::105",
"metadata": {
"title": "Terms of Service"
},
"title": "9.10 Children's Privacy",
"url": "https://docs.nhcarrigan.com/legal/terms#910-children's-privacy"
},
{
"content": "9.11 International Data Transfers\n\nYour information may be transferred to and processed in countries other than your own. By using our Application, you consent to these transfers in accordance with our Privacy Policy.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::106",
"metadata": {
"title": "Terms of Service"
},
"title": "9.11 International Data Transfers",
"url": "https://docs.nhcarrigan.com/legal/terms#911-international-data-transfers"
},
{
"content": "9.12 Cookies and Tracking Technologies\n\nWe may use cookies and similar tracking technologies to collect information about your use of our Application. You can manage your cookie preferences through your browser settings.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::107",
"metadata": {
"title": "Terms of Service"
},
"title": "9.12 Cookies and Tracking Technologies",
"url": "https://docs.nhcarrigan.com/legal/terms#912-cookies-and-tracking-technologies"
},
{
"content": "9.13 Changes to Privacy Policy\n\nWe may update our Privacy Policy from time to time. We will notify you of any changes by posting the new Privacy Policy on this page and updating the \"Last Updated\" date.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::108",
"metadata": {
"title": "Terms of Service"
},
"title": "9.13 Changes to Privacy Policy",
"url": "https://docs.nhcarrigan.com/legal/terms#913-changes-to-privacy-policy"
},
{
"content": "9.14 Contact Information\n\nIf you have any questions about our Privacy Policy or how we handle your personal information, please contact us using the information provided in the Privacy Policy.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::109",
"metadata": {
"title": "Terms of Service"
},
"title": "9.14 Contact Information",
"url": "https://docs.nhcarrigan.com/legal/terms#914-contact-information"
},
{
"content": "9.15 Governing Law\n\nThe collection and use of your personal information shall be governed by the laws specified in our Privacy Policy and these Terms of Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::110",
"metadata": {
"title": "Terms of Service"
},
"title": "9.15 Governing Law",
"url": "https://docs.nhcarrigan.com/legal/terms#915-governing-law"
},
{
"content": "10. ERRORS, INACCURACIES AND OMISSIONS",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::111",
"metadata": {
"title": "Terms of Service"
},
"title": "10. ERRORS, INACCURACIES AND OMISSIONS",
"url": "https://docs.nhcarrigan.com/legal/terms#10-errors,-inaccuracies-and-omissions"
},
{
"content": "10.1 Possibility of Errors\n\nWe strive to provide accurate and up-to-date information on our Application and in our Service. However, occasionally there may be information that contains typographical errors, inaccuracies, or omissions. We do not warrant that the content within the Service or on any related website is complete, accurate, or current.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::112",
"metadata": {
"title": "Terms of Service"
},
"title": "10.1 Possibility of Errors",
"url": "https://docs.nhcarrigan.com/legal/terms#101-possibility-of-errors"
},
{
"content": "10.2 Right to Correct Errors\n\nWe reserve the right to:\n\n- Correct any errors, inaccuracies, or omissions\n- Change or update information\n- Modify or discontinue all or part of the Service at any time without prior notice.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::113",
"metadata": {
"title": "Terms of Service"
},
"title": "10.2 Right to Correct Errors",
"url": "https://docs.nhcarrigan.com/legal/terms#102-right-to-correct-errors"
},
{
"content": "10.3 No Obligation to Update\n\nWe undertake no obligation to update, amend, or clarify information in the Service or on any related website, except as required by law. This includes, but is not limited to:\n\n- Product descriptions\n- Pricing information\n- Availability information\n- User-generated content",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::114",
"metadata": {
"title": "Terms of Service"
},
"title": "10.3 No Obligation to Update",
"url": "https://docs.nhcarrigan.com/legal/terms#103-no-obligation-to-update"
},
{
"content": "10.4 Interpretation of Update Dates\n\nNo specified update or refresh date applied in the Service or on any related website should be taken to indicate that all information has been modified or updated. The absence of a specific update date does not necessarily mean that the information is current or accurate.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::115",
"metadata": {
"title": "Terms of Service"
},
"title": "10.4 Interpretation of Update Dates",
"url": "https://docs.nhcarrigan.com/legal/terms#104-interpretation-of-update-dates"
},
{
"content": "10.5 Pricing Errors\n\nIn the event that a product or service is mistakenly listed at an incorrect price or with incorrect information, we reserve the right to refuse or cancel any orders placed for that product or service, whether or not the order has been confirmed and your payment method charged.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::116",
"metadata": {
"title": "Terms of Service"
},
"title": "10.5 Pricing Errors",
"url": "https://docs.nhcarrigan.com/legal/terms#105-pricing-errors"
},
{
"content": "10.6 Changes Without Notice\n\nWe reserve the right to change product or service descriptions, pricing, promotions, and availability at any time without notice and without incurring any obligation to you.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::117",
"metadata": {
"title": "Terms of Service"
},
"title": "10.6 Changes Without Notice",
"url": "https://docs.nhcarrigan.com/legal/terms#106-changes-without-notice"
},
{
"content": "10.7 User Responsibility\n\nYou agree that it is your responsibility to:\n\n- Monitor changes to the Service\n- Verify the accuracy of information before relying on it\n- Contact us if you find any errors or inaccuracies",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::118",
"metadata": {
"title": "Terms of Service"
},
"title": "10.7 User Responsibility",
"url": "https://docs.nhcarrigan.com/legal/terms#107-user-responsibility"
},
{
"content": "10.8 Limitation of Liability\n\nWe shall not be liable for any loss or damage caused by your reliance on information obtained through the Service. It is your responsibility to evaluate the accuracy, completeness, or usefulness of any information, opinion, advice, or other content available through the Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::119",
"metadata": {
"title": "Terms of Service"
},
"title": "10.8 Limitation of Liability",
"url": "https://docs.nhcarrigan.com/legal/terms#108-limitation-of-liability"
},
{
"content": "10.9 Third-Party Content\n\nWe are not responsible for any errors, inaccuracies, or omissions in content provided by third parties, including user-generated content and linked third-party websites.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::120",
"metadata": {
"title": "Terms of Service"
},
"title": "10.9 Third-Party Content",
"url": "https://docs.nhcarrigan.com/legal/terms#109-third-party-content"
},
{
"content": "10.10 Reporting Errors\n\nIf you believe you have found an error, inaccuracy, or omission in our Service, please contact us immediately with details so that we can investigate and, if necessary, correct the issue.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::121",
"metadata": {
"title": "Terms of Service"
},
"title": "10.10 Reporting Errors",
"url": "https://docs.nhcarrigan.com/legal/terms#1010-reporting-errors"
},
{
"content": "10.11 Accuracy of Information\n\nWhile we strive to provide accurate information, we do not warrant that product descriptions, pricing, or other content of this Application is accurate, complete, reliable, current, or error-free.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::122",
"metadata": {
"title": "Terms of Service"
},
"title": "10.11 Accuracy of Information",
"url": "https://docs.nhcarrigan.com/legal/terms#1011-accuracy-of-information"
},
{
"content": "11. PROHIBITED USES\n\nIn addition to other prohibitions set forth in these Terms of Service, you are strictly prohibited from using the Application or its content in the following ways:",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::123",
"metadata": {
"title": "Terms of Service"
},
"title": "11. PROHIBITED USES",
"url": "https://docs.nhcarrigan.com/legal/terms#11-prohibited-uses"
},
{
"content": "11.1 Unlawful Activities\n\n- For any unlawful purpose\n- To solicit others to perform or participate in any unlawful acts\n- To violate any international, federal, provincial, state, or local regulations, rules, laws, or ordinances",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::124",
"metadata": {
"title": "Terms of Service"
},
"title": "11.1 Unlawful Activities",
"url": "https://docs.nhcarrigan.com/legal/terms#111-unlawful-activities"
},
{
"content": "11.2 Intellectual Property Infringement\n\n- To infringe upon or violate our intellectual property rights or the intellectual property rights of others",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::125",
"metadata": {
"title": "Terms of Service"
},
"title": "11.2 Intellectual Property Infringement",
"url": "https://docs.nhcarrigan.com/legal/terms#112-intellectual-property-infringement"
},
{
"content": "11.3 Harassment and Discrimination\n\n- To harass, abuse, insult, harm, defame, slander, disparage, intimidate, or discriminate based on:\n - Gender or gender identity\n - Sexual orientation\n - Religion or religious beliefs\n - Ethnicity\n - Race\n - Age\n - National origin\n - Disability\n - Any other protected characteristic",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::126",
"metadata": {
"title": "Terms of Service"
},
"title": "11.3 Harassment and Discrimination",
"url": "https://docs.nhcarrigan.com/legal/terms#113-harassment-and-discrimination"
},
{
"content": "11.4 Misrepresentation\n\n- To submit false or misleading information",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::127",
"metadata": {
"title": "Terms of Service"
},
"title": "11.4 Misrepresentation",
"url": "https://docs.nhcarrigan.com/legal/terms#114-misrepresentation"
},
{
"content": "11.5 Malicious Activities\n\n- To upload or transmit viruses, malware, or any other type of malicious code that will or may be used in any way that will affect the functionality or operation of:\n\n- The Service\n- Any related website\n- Other websites\n- The Internet",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::128",
"metadata": {
"title": "Terms of Service"
},
"title": "11.5 Malicious Activities",
"url": "https://docs.nhcarrigan.com/legal/terms#115-malicious-activities"
},
{
"content": "11.6 Privacy Violations\n\n- To collect or track the personal information of others without their explicit consent",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::129",
"metadata": {
"title": "Terms of Service"
},
"title": "11.6 Privacy Violations",
"url": "https://docs.nhcarrigan.com/legal/terms#116-privacy-violations"
},
{
"content": "11.7 Automated Access\n\n- To engage in any automated use of the system, such as:\n - Spamming\n - Phishing\n - Pharming\n - Pretexting\n - Using scripts to collect information\n - Using bots or scrapers",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::130",
"metadata": {
"title": "Terms of Service"
},
"title": "11.7 Automated Access",
"url": "https://docs.nhcarrigan.com/legal/terms#117-automated-access"
},
{
"content": "11.8 Obscene or Immoral Purposes\n\n- For any obscene or immoral purpose",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::131",
"metadata": {
"title": "Terms of Service"
},
"title": "11.8 Obscene or Immoral Purposes",
"url": "https://docs.nhcarrigan.com/legal/terms#118-obscene-or-immoral-purposes"
},
{
"content": "11.9 Security Interference\n\n- To interfere with or circumvent the security features of:\n\n- The Service\n- Any related website\n- Other websites\n- The Internet",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::132",
"metadata": {
"title": "Terms of Service"
},
"title": "11.9 Security Interference",
"url": "https://docs.nhcarrigan.com/legal/terms#119-security-interference"
},
{
"content": "11.10 Additional Prohibited Activities\n\n- To impersonate or attempt to impersonate nhcarrigan, an nhcarrigan employee, another user, or any other person or entity\n- To engage in any activity that interferes with or disrupts the Service (or the servers and networks which are connected to the Service)\n- To attempt to gain unauthorized access to any portion of the Service, other accounts, computer systems, or networks connected to the Service\n- To probe, scan, or test the vulnerability of the Service or any network connected to the Service\n- To use any device, software, or routine to interfere with the proper working of the Service\n- To forge headers or otherwise manipulate identifiers to disguise the origin of any information transmitted through the Service\n- To \"frame\" or \"mirror\" any part of the Service without our prior written authorization\n- To use meta tags or any other \"hidden text\" utilizing our name or trademarks\n- To sell, resell, or make commercial use of the Service without our express written consent\n- OR any other activity that violates our Code of Conduct",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::133",
"metadata": {
"title": "Terms of Service"
},
"title": "11.10 Additional Prohibited Activities",
"url": "https://docs.nhcarrigan.com/legal/terms#1110-additional-prohibited-activities"
},
{
"content": "11.11 Enforcement\n\nWe reserve the right to:\n\n- Investigate and take appropriate legal action against anyone who, in our sole discretion, violates this section, including without limitation, reporting such user to law enforcement authorities\n- Terminate or suspend your access to all or part of the Service for violating any of the prohibited uses\n- Remove or refuse to post any user contributions for any or no reason at our sole discretion",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::134",
"metadata": {
"title": "Terms of Service"
},
"title": "11.11 Enforcement",
"url": "https://docs.nhcarrigan.com/legal/terms#1111-enforcement"
},
{
"content": "11.12 Cooperation with Authorities\n\nWe will fully cooperate with any law enforcement authorities or court order requesting or directing us to disclose the identity or other information of anyone posting any materials on or through the Service in violation of these prohibitions.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::135",
"metadata": {
"title": "Terms of Service"
},
"title": "11.12 Cooperation with Authorities",
"url": "https://docs.nhcarrigan.com/legal/terms#1112-cooperation-with-authorities"
},
{
"content": "11.13 Indemnification\n\nYou agree to indemnify, defend, and hold harmless nhcarrigan and its affiliates, licensors, and service providers from any claims resulting from any action taken by us as a result of your violation of these prohibited uses.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::136",
"metadata": {
"title": "Terms of Service"
},
"title": "11.13 Indemnification",
"url": "https://docs.nhcarrigan.com/legal/terms#1113-indemnification"
},
{
"content": "11.14 Modifications\n\nWe reserve the right to modify, add to, or remove any part of this list of prohibited uses at any time without prior notice.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::137",
"metadata": {
"title": "Terms of Service"
},
"title": "11.14 Modifications",
"url": "https://docs.nhcarrigan.com/legal/terms#1114-modifications"
},
{
"content": "12 DISCLAIMER OF WARRANTIES; LIMITATION OF LIABILITY",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::138",
"metadata": {
"title": "Terms of Service"
},
"title": "12 DISCLAIMER OF WARRANTIES; LIMITATION OF LIABILITY",
"url": "https://docs.nhcarrigan.com/legal/terms#12-disclaimer-of-warranties;-limitation-of-liability"
},
{
"content": "12.1 No Guarantee of Uninterrupted Service\n\nWe do not guarantee, represent, or warrant that your use of our Service will be uninterrupted, timely, secure, or error-free. You acknowledge that there may be interruptions, delays, inaccuracies, and other problems with the Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::139",
"metadata": {
"title": "Terms of Service"
},
"title": "12.1 No Guarantee of Uninterrupted Service",
"url": "https://docs.nhcarrigan.com/legal/terms#121-no-guarantee-of-uninterrupted-service"
},
{
"content": "12.2 No Warranty of Results\n\nWe do not warrant that the results that may be obtained from the use of the Service will be accurate or reliable. You acknowledge that any reliance on such results is at your own risk.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::140",
"metadata": {
"title": "Terms of Service"
},
"title": "12.2 No Warranty of Results",
"url": "https://docs.nhcarrigan.com/legal/terms#122-no-warranty-of-results"
},
{
"content": "12.3 Right to Modify or Cancel Service\n\nYou agree that we may, in our sole discretion and without prior notice:\n\n- Remove the Service for indefinite periods of time\n- Cancel the Service at any time\n- Modify, suspend, or discontinue any aspect of the Service",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::141",
"metadata": {
"title": "Terms of Service"
},
"title": "12.3 Right to Modify or Cancel Service",
"url": "https://docs.nhcarrigan.com/legal/terms#123-right-to-modify-or-cancel-service"
},
{
"content": "12.4 Use at Your Own Risk\n\nYou expressly agree that your use of, or inability to use, the Service is at your sole risk. You assume full responsibility and risk of loss resulting from your use of the Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::142",
"metadata": {
"title": "Terms of Service"
},
"title": "12.4 Use at Your Own Risk",
"url": "https://docs.nhcarrigan.com/legal/terms#124-use-at-your-own-risk"
},
{
"content": "12.5 'As Is' and 'As Available' Basis\n\nThe Service and all products and services delivered to you through the Service are provided on an 'as is' and 'as available' basis, without any representation, warranties, or conditions of any kind, either express or implied, including all implied warranties or conditions of:\n\n- Merchantability\n- Merchantable quality\n- Fitness for a particular purpose\n- Durability\n- Title\n- Non-infringement",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::143",
"metadata": {
"title": "Terms of Service"
},
"title": "12.5 'As Is' and 'As Available' Basis",
"url": "https://docs.nhcarrigan.com/legal/terms#125-'as-is'-and-'as-available'-basis"
},
{
"content": "12.6 Disclaimer of Warranties\n\nTO THE FULLEST EXTENT PERMISSIBLE PURSUANT TO APPLICABLE LAW, NHCARRIGAN DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::144",
"metadata": {
"title": "Terms of Service"
},
"title": "12.6 Disclaimer of Warranties",
"url": "https://docs.nhcarrigan.com/legal/terms#126-disclaimer-of-warranties"
},
{
"content": "12.7 Limitation of Liability\n\nIn no case shall nhcarrigan, our directors, officers, employees, affiliates, agents, contractors, interns, suppliers, service providers, or licensors be liable for any injury, loss, claim, or any direct, indirect, incidental, punitive, special, or consequential damages of any kind, including, without limitation:\n\n- Lost profits\n- Lost revenue\n- Lost savings\n- Loss of data\n- Replacement costs\n- Any similar damages\n\nWhether based in contract, tort (including negligence), strict liability, or otherwise, arising from:\n\n- Your use of any of the Service\n- Any products procured using the Service\n- Any other claim related in any way to your use of the Service or any product\n\nThis limitation applies to any errors or omissions in any content, or any loss or damage of any kind incurred as a result of the use of the Service or any content (or product) posted, transmitted, or otherwise made available via the Service, even if advised of their possibility.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::145",
"metadata": {
"title": "Terms of Service"
},
"title": "12.7 Limitation of Liability",
"url": "https://docs.nhcarrigan.com/legal/terms#127-limitation-of-liability"
},
{
"content": "12.8 Jurisdictional Limitations\n\nBecause some states or jurisdictions do not allow the exclusion or the limitation of liability for consequential or incidental damages, in such states or jurisdictions, our liability shall be limited to the maximum extent permitted by law.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::146",
"metadata": {
"title": "Terms of Service"
},
"title": "12.8 Jurisdictional Limitations",
"url": "https://docs.nhcarrigan.com/legal/terms#128-jurisdictional-limitations"
},
{
"content": "12.9 Essential Purpose\n\nYou acknowledge and agree that the foregoing disclaimers and limitations of liability are essential elements of the basis of the bargain between you and nhcarrigan, and will apply even if found to have failed their essential purpose.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::147",
"metadata": {
"title": "Terms of Service"
},
"title": "12.9 Essential Purpose",
"url": "https://docs.nhcarrigan.com/legal/terms#129-essential-purpose"
},
{
"content": "12.10 Force Majeure\n\nWe will not be liable for any failure or delay in performing our obligations where such failure or delay results from any cause beyond our reasonable control, including, without limitation, acts of God, natural disasters, pandemic, labour disputes, war, riot, embargoes, acts of civil or military authorities, fire, floods, accidents, strikes, or shortages of transportation facilities, fuel, energy, labour, or materials.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::148",
"metadata": {
"title": "Terms of Service"
},
"title": "12.10 Force Majeure",
"url": "https://docs.nhcarrigan.com/legal/terms#1210-force-majeure"
},
{
"content": "12.11 Time Limitation\n\nYou agree that any claim or cause of action arising out of or related to use of the Service or these Terms of Service must be filed within one (1) year after such claim or cause of action arose or be forever barred.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::149",
"metadata": {
"title": "Terms of Service"
},
"title": "12.11 Time Limitation",
"url": "https://docs.nhcarrigan.com/legal/terms#1211-time-limitation"
},
{
"content": "13. INDEMNIFICATION",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::150",
"metadata": {
"title": "Terms of Service"
},
"title": "13. INDEMNIFICATION",
"url": "https://docs.nhcarrigan.com/legal/terms#13-indemnification"
},
{
"content": "13.1 Scope of Indemnification\n\nYou agree to indemnify, defend, and hold harmless nhcarrigan and our:\n\n- Parent companies\n- Subsidiaries\n- Affiliates\n- Partners\n- Officers\n- Directors\n- Agents\n- Contractors\n- Licensors\n- Service providers\n- Subcontractors\n- Suppliers\n- Interns\n- Employees\n\nfrom any claim or demand, including reasonable attorneys' fees and costs, made by any third party due to or arising out of:\n\n- Your breach of these Terms of Service\n- Your breach of any documents incorporated by reference into these Terms\n- Your violation of any law or regulation\n- Your violation of the rights of any third party\n- Your use or misuse of the Service\n- Any content you submit, post, or transmit through the Service\n- Your interaction with any other user of the Service\n- Any transaction you enter into through the Service",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::151",
"metadata": {
"title": "Terms of Service"
},
"title": "13.1 Scope of Indemnification",
"url": "https://docs.nhcarrigan.com/legal/terms#131-scope-of-indemnification"
},
{
"content": "13.2 Duty to Defend\n\nYou agree to cooperate as fully as reasonably required in the defence of any claim. nhcarrigan reserves the right to assume the exclusive defence and control of any matter subject to indemnification by you.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::152",
"metadata": {
"title": "Terms of Service"
},
"title": "13.2 Duty to Defend",
"url": "https://docs.nhcarrigan.com/legal/terms#132-duty-to-defend"
},
{
"content": "13.3 No Admission of Liability\n\nYour agreement to indemnify nhcarrigan does not constitute an admission of liability on your part.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::153",
"metadata": {
"title": "Terms of Service"
},
"title": "13.3 No Admission of Liability",
"url": "https://docs.nhcarrigan.com/legal/terms#133-no-admission-of-liability"
},
{
"content": "13.4 Notification of Claims\n\nYou agree to promptly notify nhcarrigan in writing of any third-party claim subject to indemnification.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::154",
"metadata": {
"title": "Terms of Service"
},
"title": "13.4 Notification of Claims",
"url": "https://docs.nhcarrigan.com/legal/terms#134-notification-of-claims"
},
{
"content": "13.5 Settlement of Claims\n\nYou agree not to settle any claim without the prior written consent of nhcarrigan.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::155",
"metadata": {
"title": "Terms of Service"
},
"title": "13.5 Settlement of Claims",
"url": "https://docs.nhcarrigan.com/legal/terms#135-settlement-of-claims"
},
{
"content": "13.6 Expenses\n\nYou agree to reimburse nhcarrigan for any and all reasonable expenses incurred in defending against any indemnified claim, including but not limited to attorneys' fees, court costs, and expert witness fees.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::156",
"metadata": {
"title": "Terms of Service"
},
"title": "13.6 Expenses",
"url": "https://docs.nhcarrigan.com/legal/terms#136-expenses"
},
{
"content": "13.7 Survival of Indemnification\n\nThis indemnification obligation will survive the termination of these Terms of Service and your use of the Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::157",
"metadata": {
"title": "Terms of Service"
},
"title": "13.7 Survival of Indemnification",
"url": "https://docs.nhcarrigan.com/legal/terms#137-survival-of-indemnification"
},
{
"content": "13.8 Limitation on Indemnification\n\nYour indemnification obligation shall be limited to the extent permitted by applicable law.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::158",
"metadata": {
"title": "Terms of Service"
},
"title": "13.8 Limitation on Indemnification",
"url": "https://docs.nhcarrigan.com/legal/terms#138-limitation-on-indemnification"
},
{
"content": "13.9 Right to Assume Defence\n\nnhcarrigan reserves the right, at your expense, to assume the exclusive defence and control of any matter for which you are required to indemnify us, and you agree to cooperate with our defence of these claims.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::159",
"metadata": {
"title": "Terms of Service"
},
"title": "13.9 Right to Assume Defence",
"url": "https://docs.nhcarrigan.com/legal/terms#139-right-to-assume-defence"
},
{
"content": "13.10 Mitigation of Damages\n\nBoth parties agree to use reasonable efforts to mitigate any potential damages subject to indemnification.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::160",
"metadata": {
"title": "Terms of Service"
},
"title": "13.10 Mitigation of Damages",
"url": "https://docs.nhcarrigan.com/legal/terms#1310-mitigation-of-damages"
},
{
"content": "13.11 No Waiver of Other Rights\n\nNothing in this section shall be construed as a waiver of any other rights or remedies nhcarrigan may have under law or equity.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::161",
"metadata": {
"title": "Terms of Service"
},
"title": "13.11 No Waiver of Other Rights",
"url": "https://docs.nhcarrigan.com/legal/terms#1311-no-waiver-of-other-rights"
},
{
"content": "13.12 Severability\n\nIf any portion of this indemnification provision is found to be unenforceable or invalid, that portion shall be limited or eliminated to the minimum extent necessary so that this indemnification provision shall otherwise remain in full force and effect and enforceable.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::162",
"metadata": {
"title": "Terms of Service"
},
"title": "13.12 Severability",
"url": "https://docs.nhcarrigan.com/legal/terms#1312-severability"
},
{
"content": "13.13 Modification\n\nnhcarrigan reserves the right to modify this indemnification provision at any time, effective upon posting of an updated version on this Application. You are responsible for regularly reviewing these Terms of Service to stay informed of updates.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::163",
"metadata": {
"title": "Terms of Service"
},
"title": "13.13 Modification",
"url": "https://docs.nhcarrigan.com/legal/terms#1313-modification"
},
{
"content": "14. SEVERABILITY",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::164",
"metadata": {
"title": "Terms of Service"
},
"title": "14. SEVERABILITY",
"url": "https://docs.nhcarrigan.com/legal/terms#14-severability"
},
{
"content": "14.1 Severability Principle\n\nIn the event that any provision of these Terms of Service is determined to be unlawful, void, or unenforceable, such provision shall:\n\n- Be deemed severed from these Terms of Service\n- Not affect the validity and enforceability of any other remaining provisions\n- Nonetheless be enforceable to the fullest extent permitted by applicable law",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::165",
"metadata": {
"title": "Terms of Service"
},
"title": "14.1 Severability Principle",
"url": "https://docs.nhcarrigan.com/legal/terms#141-severability-principle"
},
{
"content": "14.2 Interpretation of Severed Provisions\n\nIf any provision is severed from these Terms:\n\n- The remaining provisions shall be interpreted in a manner that best reflects the original intent of the parties\n- The severed provision shall be replaced with a valid and enforceable provision that most closely matches the intent of the original provision",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::166",
"metadata": {
"title": "Terms of Service"
},
"title": "14.2 Interpretation of Severed Provisions",
"url": "https://docs.nhcarrigan.com/legal/terms#142-interpretation-of-severed-provisions"
},
{
"content": "14.3 Partial Enforcement\n\nIf any provision of these Terms is found to be partially unlawful, void, or unenforceable:\n\n- The provision shall be enforced to the maximum extent permissible under applicable law\n- The unenforceable portion shall be deemed to be severed from these Terms",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::167",
"metadata": {
"title": "Terms of Service"
},
"title": "14.3 Partial Enforcement",
"url": "https://docs.nhcarrigan.com/legal/terms#143-partial-enforcement"
},
{
"content": "14.4 Reformation\n\nIn lieu of severing any provision, a court or arbitrator may reform the provision to the extent necessary to make it enforceable while preserving its intent.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::168",
"metadata": {
"title": "Terms of Service"
},
"title": "14.4 Reformation",
"url": "https://docs.nhcarrigan.com/legal/terms#144-reformation"
},
{
"content": "14.5 Severability in Different Jurisdictions\n\nThe severability of provisions may be assessed differently in various jurisdictions. These Terms shall be interpreted and enforced as if the unenforceable provision had never been included, in any jurisdiction where the provision is deemed unenforceable.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::169",
"metadata": {
"title": "Terms of Service"
},
"title": "14.5 Severability in Different Jurisdictions",
"url": "https://docs.nhcarrigan.com/legal/terms#145-severability-in-different-jurisdictions"
},
{
"content": "14.6 Effect on Entire Agreement\n\nThe un-enforceability or invalidity of any provision shall not affect the enforceability or validity of the entire agreement. These Terms shall continue in full force and effect as if such invalid or unenforceable provision had never been contained herein.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::170",
"metadata": {
"title": "Terms of Service"
},
"title": "14.6 Effect on Entire Agreement",
"url": "https://docs.nhcarrigan.com/legal/terms#146-effect-on-entire-agreement"
},
{
"content": "14.7 Negotiation in Good Faith\n\nIf any provision is determined to be unenforceable, the parties agree to negotiate in good faith to modify these Terms so as to effect the original intent of the parties as closely as possible.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::171",
"metadata": {
"title": "Terms of Service"
},
"title": "14.7 Negotiation in Good Faith",
"url": "https://docs.nhcarrigan.com/legal/terms#147-negotiation-in-good-faith"
},
{
"content": "14.8 Severability of Headings\n\nThe headings used in these Terms are for convenience only and shall not affect the interpretation or enforceability of any provision.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::172",
"metadata": {
"title": "Terms of Service"
},
"title": "14.8 Severability of Headings",
"url": "https://docs.nhcarrigan.com/legal/terms#148-severability-of-headings"
},
{
"content": "14.9 No Waiver\n\nThe failure to enforce any part of these Terms shall not constitute a waiver of the right to later enforce that or any other part of these Terms.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::173",
"metadata": {
"title": "Terms of Service"
},
"title": "14.9 No Waiver",
"url": "https://docs.nhcarrigan.com/legal/terms#149-no-waiver"
},
{
"content": "14.10 Survival of Essential Provisions\n\nProvisions that are essential to the purpose of these Terms, including but not limited to indemnification, limitation of liability, and dispute resolution provisions, shall survive the termination or expiration of these Terms.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::174",
"metadata": {
"title": "Terms of Service"
},
"title": "14.10 Survival of Essential Provisions",
"url": "https://docs.nhcarrigan.com/legal/terms#1410-survival-of-essential-provisions"
},
{
"content": "14.11 Interpretation in Favour of Validity\n\nThese Terms shall be interpreted, to the extent possible, in a manner that makes them valid and enforceable under applicable law.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::175",
"metadata": {
"title": "Terms of Service"
},
"title": "14.11 Interpretation in Favour of Validity",
"url": "https://docs.nhcarrigan.com/legal/terms#1411-interpretation-in-favour-of-validity"
},
{
"content": "14.12 Notification of Un-enforceability\n\nIf you believe any provision of these Terms to be unenforceable, please notify us in writing with a detailed explanation.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::176",
"metadata": {
"title": "Terms of Service"
},
"title": "14.12 Notification of Un-enforceability",
"url": "https://docs.nhcarrigan.com/legal/terms#1412-notification-of-un-enforceability"
},
{
"content": "15. TERMINATION",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::177",
"metadata": {
"title": "Terms of Service"
},
"title": "15. TERMINATION",
"url": "https://docs.nhcarrigan.com/legal/terms#15-termination"
},
{
"content": "15.1 Survival of Obligations\n\nThe obligations and liabilities of the parties incurred prior to the termination date shall survive the termination of this agreement for all purposes. This includes, but is not limited to:\n\n- Payment obligations\n- Indemnification obligations\n- Confidentiality obligations\n- Intellectual property rights",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::178",
"metadata": {
"title": "Terms of Service"
},
"title": "15.1 Survival of Obligations",
"url": "https://docs.nhcarrigan.com/legal/terms#151-survival-of-obligations"
},
{
"content": "15.2 Effective Period\n\nThese Terms of Service are effective unless and until terminated by either you or nhcarrigan.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::179",
"metadata": {
"title": "Terms of Service"
},
"title": "15.2 Effective Period",
"url": "https://docs.nhcarrigan.com/legal/terms#152-effective-period"
},
{
"content": "15.3 User-Initiated Termination\n\nYou may terminate these Terms of Service at any time by:\n\n- Notifying us in writing that you no longer wish to use our Services\n- Ceasing to use our Application\n- Closing your account, if applicable",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::180",
"metadata": {
"title": "Terms of Service"
},
"title": "15.3 User-Initiated Termination",
"url": "https://docs.nhcarrigan.com/legal/terms#153-user-initiated-termination"
},
{
"content": "15.4 nhcarrigan-Initiated Termination\n\nWe reserve the right to terminate this agreement at any time, without notice, if in our sole judgment:\n\n- You fail to comply with any term or provision of these Terms of Service\n- We suspect that you have failed to comply with these Terms\n- You violate any applicable laws or regulations\n- You engage in conduct that is harmful to other users, third parties, or our business interests",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::181",
"metadata": {
"title": "Terms of Service"
},
"title": "15.4 nhcarrigan-Initiated Termination",
"url": "https://docs.nhcarrigan.com/legal/terms#154-nhcarrigan-initiated-termination"
},
{
"content": "15.5 Consequences of Termination\n\nUpon termination of these Terms of Service:\n\n- Your right to use the Service will immediately cease\n- You will remain liable for all amounts due up to and including the date of termination\n- We may deny you access to our Services (or any part thereof)\n- We may delete or deactivate your account and all related information and files in your account",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::182",
"metadata": {
"title": "Terms of Service"
},
"title": "15.5 Consequences of Termination",
"url": "https://docs.nhcarrigan.com/legal/terms#155-consequences-of-termination"
},
{
"content": "15.6 Data Retention and Deletion\n\nAfter termination, we:\n\n- May retain your data for a period of time for backup, archival, or audit purposes\n- Are not obligated to maintain or provide you with any of your data\n- May delete your data in accordance with our data retention policies and applicable laws",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::183",
"metadata": {
"title": "Terms of Service"
},
"title": "15.6 Data Retention and Deletion",
"url": "https://docs.nhcarrigan.com/legal/terms#156-data-retention-and-deletion"
},
{
"content": "15.7 Reinstatement\n\nTerminated accounts may not be reactivated without our express permission.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::184",
"metadata": {
"title": "Terms of Service"
},
"title": "15.7 Reinstatement",
"url": "https://docs.nhcarrigan.com/legal/terms#157-reinstatement"
},
{
"content": "15.8 Refunds\n\nUnless otherwise specified, termination does not entitle you to any refunds for fees paid.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::185",
"metadata": {
"title": "Terms of Service"
},
"title": "15.8 Refunds",
"url": "https://docs.nhcarrigan.com/legal/terms#158-refunds"
},
{
"content": "15.9 Suspension\n\nIn addition to termination, we reserve the right to suspend your access to the Service temporarily or permanently, without notice, for conduct that we believe violates these Terms or is harmful to other users, third parties, or our business interests.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::186",
"metadata": {
"title": "Terms of Service"
},
"title": "15.9 Suspension",
"url": "https://docs.nhcarrigan.com/legal/terms#159-suspension"
},
{
"content": "15.10 Notice of Termination\n\nWhile we may provide notice of termination in some cases, we reserve the right to terminate without notice.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::187",
"metadata": {
"title": "Terms of Service"
},
"title": "15.10 Notice of Termination",
"url": "https://docs.nhcarrigan.com/legal/terms#1510-notice-of-termination"
},
{
"content": "15.11 Ongoing Obligations\n\nCertain provisions of these Terms shall continue to be effective after termination, including:\n\n- Ownership provisions\n- Warranty disclaimers\n- Indemnity obligations\n- Limitation of liability",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::188",
"metadata": {
"title": "Terms of Service"
},
"title": "15.11 Ongoing Obligations",
"url": "https://docs.nhcarrigan.com/legal/terms#1511-ongoing-obligations"
},
{
"content": "15.12 Cumulative Remedies\n\nThe rights of termination provided in this section are in addition to any other rights and remedies available to nhcarrigan under these Terms or by law.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::189",
"metadata": {
"title": "Terms of Service"
},
"title": "15.12 Cumulative Remedies",
"url": "https://docs.nhcarrigan.com/legal/terms#1512-cumulative-remedies"
},
{
"content": "15.13 Appeal Process\n\nIf you believe your account has been terminated in error, you may appeal the termination by contacting us with a detailed explanation.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::190",
"metadata": {
"title": "Terms of Service"
},
"title": "15.13 Appeal Process",
"url": "https://docs.nhcarrigan.com/legal/terms#1513-appeal-process"
},
{
"content": "16. ENTIRE AGREEMENT",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::191",
"metadata": {
"title": "Terms of Service"
},
"title": "16. ENTIRE AGREEMENT",
"url": "https://docs.nhcarrigan.com/legal/terms#16-entire-agreement"
},
{
"content": "16.1 No Waiver\n\nThe failure of nhcarrigan to exercise or enforce any right or provision of these Terms of Service shall not constitute a waiver of such right or provision. Our failure to act with respect to a breach by you or others does not waive our right to act with respect to subsequent or similar breaches.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::192",
"metadata": {
"title": "Terms of Service"
},
"title": "16.1 No Waiver",
"url": "https://docs.nhcarrigan.com/legal/terms#161-no-waiver"
},
{
"content": "16.2 Comprehensive Agreement\n\nThese Terms of Service, together with any policies or operating rules posted by us on this Application or in respect to The Service, constitute the entire agreement and understanding between you and nhcarrigan and govern your use of the Service. This agreement supersedes any prior or contemporaneous agreements, communications, and proposals, whether oral or written, between you and us (including, but not limited to, any prior versions of the Terms of Service).",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::193",
"metadata": {
"title": "Terms of Service"
},
"title": "16.2 Comprehensive Agreement",
"url": "https://docs.nhcarrigan.com/legal/terms#162-comprehensive-agreement"
},
{
"content": "16.3 Policies and Operating Rules\n\nAny policies or operating rules posted by us on this Application are hereby incorporated by reference into these Terms of Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::194",
"metadata": {
"title": "Terms of Service"
},
"title": "16.3 Policies and Operating Rules",
"url": "https://docs.nhcarrigan.com/legal/terms#163-policies-and-operating-rules"
},
{
"content": "16.4 No Reliance on External Representations\n\nYou agree that you have not relied on any statement, promise, or representation made or given by or on behalf of nhcarrigan which is not set out in these Terms of Service or any document expressly referred to in them.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::195",
"metadata": {
"title": "Terms of Service"
},
"title": "16.4 No Reliance on External Representations",
"url": "https://docs.nhcarrigan.com/legal/terms#164-no-reliance-on-external-representations"
},
{
"content": "16.5 Modification of Terms\n\nNo modification of these Terms of Service shall be effective unless it is in writing and signed by an authorized representative of nhcarrigan.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::196",
"metadata": {
"title": "Terms of Service"
},
"title": "16.5 Modification of Terms",
"url": "https://docs.nhcarrigan.com/legal/terms#165-modification-of-terms"
},
{
"content": "16.6 Interpretation\n\nAny ambiguities in the interpretation of these Terms of Service shall not be construed against the drafting party. The language in these Terms shall be interpreted as to its fair meaning and not strictly for or against any party.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::197",
"metadata": {
"title": "Terms of Service"
},
"title": "16.6 Interpretation",
"url": "https://docs.nhcarrigan.com/legal/terms#166-interpretation"
},
{
"content": "16.7 Severability\n\nIf any provision of these Terms is held to be unenforceable or invalid, such provision will be changed and interpreted to accomplish the objectives of such provision to the greatest extent possible under applicable law, and the remaining provisions will continue in full force and effect.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::198",
"metadata": {
"title": "Terms of Service"
},
"title": "16.7 Severability",
"url": "https://docs.nhcarrigan.com/legal/terms#167-severability"
},
{
"content": "16.8 Assignment\n\nThese Terms, and any rights and licenses granted hereunder, may not be transferred or assigned by you but may be assigned by nhcarrigan without restriction.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::199",
"metadata": {
"title": "Terms of Service"
},
"title": "16.8 Assignment",
"url": "https://docs.nhcarrigan.com/legal/terms#168-assignment"
},
{
"content": "16.9 No Agency\n\nNo agency, partnership, joint venture, employee-employer, or franchiser-franchisee relationship is intended or created by these Terms of Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::200",
"metadata": {
"title": "Terms of Service"
},
"title": "16.9 No Agency",
"url": "https://docs.nhcarrigan.com/legal/terms#169-no-agency"
},
{
"content": "16.10 Headings\n\nThe section titles in these Terms of Service are for convenience only and have no legal or contractual effect.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::201",
"metadata": {
"title": "Terms of Service"
},
"title": "16.10 Headings",
"url": "https://docs.nhcarrigan.com/legal/terms#1610-headings"
},
{
"content": "16.11 Survival\n\nAll provisions of these Terms which by their nature should survive termination shall survive termination, including, without limitation, ownership provisions, warranty disclaimers, indemnity, and limitations of liability.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::202",
"metadata": {
"title": "Terms of Service"
},
"title": "16.11 Survival",
"url": "https://docs.nhcarrigan.com/legal/terms#1611-survival"
},
{
"content": "16.12 Electronic Communications\n\nFor contractual purposes, you (a) consent to receive communications from nhcarrigan in an electronic form; and (b) agree that all terms and conditions, agreements, notices, disclosures, and other communications that nhcarrigan provides to you electronically satisfy any legal requirement that such communications would satisfy if it were in writing.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::203",
"metadata": {
"title": "Terms of Service"
},
"title": "16.12 Electronic Communications",
"url": "https://docs.nhcarrigan.com/legal/terms#1612-electronic-communications"
},
{
"content": "16.13 Conflicting Terms\n\nIf there is a conflict between these Terms of Service and any other agreement or policy, these Terms of Service will prevail in relation to the subject matter of these Terms.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::204",
"metadata": {
"title": "Terms of Service"
},
"title": "16.13 Conflicting Terms",
"url": "https://docs.nhcarrigan.com/legal/terms#1613-conflicting-terms"
},
{
"content": "16.14 Language\n\nWhere nhcarrigan has provided you with a translation of the English language version of these Terms, you agree that the translation is provided for your convenience only and that the English language version of these Terms will govern your relationship with nhcarrigan.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::205",
"metadata": {
"title": "Terms of Service"
},
"title": "16.14 Language",
"url": "https://docs.nhcarrigan.com/legal/terms#1614-language"
},
{
"content": "17. GOVERNING LAW AND DISPUTE RESOLUTION",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::206",
"metadata": {
"title": "Terms of Service"
},
"title": "17. GOVERNING LAW AND DISPUTE RESOLUTION",
"url": "https://docs.nhcarrigan.com/legal/terms#17-governing-law-and-dispute-resolution"
},
{
"content": "17.1 Governing Law\n\nThese Terms of Service and any separate agreements whereby we provide you Services shall be governed by and construed in accordance with the laws of the State of Washington, United States, without regard to its conflict of law principles.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::207",
"metadata": {
"title": "Terms of Service"
},
"title": "17.1 Governing Law",
"url": "https://docs.nhcarrigan.com/legal/terms#171-governing-law"
},
{
"content": "17.2 Jurisdiction\n\nYou agree that any legal action or proceeding between you and nhcarrigan shall be brought exclusively in a federal or state court of competent jurisdiction sitting in Washington, United States.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::208",
"metadata": {
"title": "Terms of Service"
},
"title": "17.2 Jurisdiction",
"url": "https://docs.nhcarrigan.com/legal/terms#172-jurisdiction"
},
{
"content": "17.3 Binding Arbitration\n\nAny dispute, controversy, or claim arising out of or relating to these Terms of Service, including the formation, interpretation, breach, or termination thereof, including whether the claims asserted can be arbitrated, shall be referred to and finally determined by binding arbitration in accordance with the JAMS International Arbitration Rules.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::209",
"metadata": {
"title": "Terms of Service"
},
"title": "17.3 Binding Arbitration",
"url": "https://docs.nhcarrigan.com/legal/terms#173-binding-arbitration"
},
{
"content": "17.4 Arbitration Process\n\nThe arbitration shall be conducted as follows:\n\n- The arbitration tribunal shall consist of one arbitrator.\n- The place of arbitration shall be Seattle, Washington, United States.\n- The language to be used in the arbitral proceedings shall be English.\n- The arbitration award shall be final and binding on both parties.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::210",
"metadata": {
"title": "Terms of Service"
},
"title": "17.4 Arbitration Process",
"url": "https://docs.nhcarrigan.com/legal/terms#174-arbitration-process"
},
{
"content": "17.5 Class Action Waiver\n\nTo the fullest extent permitted by applicable law, no arbitration under these Terms of Service shall be joined to an arbitration involving any other party subject to these Terms of Service, whether through class arbitration proceedings or otherwise.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::211",
"metadata": {
"title": "Terms of Service"
},
"title": "17.5 Class Action Waiver",
"url": "https://docs.nhcarrigan.com/legal/terms#175-class-action-waiver"
},
{
"content": "17.6 Exception to Arbitration\n\nNotwithstanding the foregoing, we reserve the right to bring an action in any court of competent jurisdiction to seek injunctive or other equitable relief in the event of a breach or threatened breach by you of these Terms of Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::212",
"metadata": {
"title": "Terms of Service"
},
"title": "17.6 Exception to Arbitration",
"url": "https://docs.nhcarrigan.com/legal/terms#176-exception-to-arbitration"
},
{
"content": "17.7 Time Limitation\n\nYou agree that regardless of any statute or law to the contrary, any claim or cause of action arising out of or related to use of the Service or these Terms of Service must be filed within one (1) year after such claim or cause of action arose or be forever barred.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::213",
"metadata": {
"title": "Terms of Service"
},
"title": "17.7 Time Limitation",
"url": "https://docs.nhcarrigan.com/legal/terms#177-time-limitation"
},
{
"content": "17.8 Severability\n\nIf any provision of this Section 17 is held to be unenforceable, such provision shall be struck and the remainder of this section shall be enforced.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::214",
"metadata": {
"title": "Terms of Service"
},
"title": "17.8 Severability",
"url": "https://docs.nhcarrigan.com/legal/terms#178-severability"
},
{
"content": "17.9 Modifications to this Section\n\nnhcarrigan reserves the right to modify this Section 17 at any time. If we do make changes, we will provide notice of such changes by posting the revised Terms of Service on our Application and updating the \"Last Updated\" date at the top of this Section 17. Your continued use of the Service following the posting of changes to this section constitutes your acceptance of those changes.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::215",
"metadata": {
"title": "Terms of Service"
},
"title": "17.9 Modifications to this Section",
"url": "https://docs.nhcarrigan.com/legal/terms#179-modifications-to-this-section"
},
{
"content": "17.10 Costs of Arbitration\n\nThe costs of arbitration shall be borne by You unless the arbitrator determines otherwise.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::216",
"metadata": {
"title": "Terms of Service"
},
"title": "17.10 Costs of Arbitration",
"url": "https://docs.nhcarrigan.com/legal/terms#1710-costs-of-arbitration"
},
{
"content": "17.11 Confidentiality\n\nThe parties agree to keep confidential all awards in their arbitration, together with all materials in the proceedings created for the purpose of the arbitration and all other documents produced by another party in the proceedings not otherwise in the public domain, save and to the extent that disclosure may be required of a party by legal duty, to protect or pursue a legal right, or to enforce or challenge an award in legal proceedings before a court or other judicial authority.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::217",
"metadata": {
"title": "Terms of Service"
},
"title": "17.11 Confidentiality",
"url": "https://docs.nhcarrigan.com/legal/terms#1711-confidentiality"
},
{
"content": "18. CHANGES TO TERMS OF SERVICE",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::218",
"metadata": {
"title": "Terms of Service"
},
"title": "18. CHANGES TO TERMS OF SERVICE",
"url": "https://docs.nhcarrigan.com/legal/terms#18-changes-to-terms-of-service"
},
{
"content": "18.1 Current Version\n\nYou can review the most current version of the Terms of Service at any time on this page: https://docs.nhcarrigan.com/#/terms",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::219",
"metadata": {
"title": "Terms of Service"
},
"title": "18.1 Current Version",
"url": "https://docs.nhcarrigan.com/legal/terms#181-current-version"
},
{
"content": "18.2 Right to Modify\n\nWe reserve the right, at our sole discretion, to update, change, or replace any part of these Terms of Service by posting updates and changes to our website. This includes the right to modify, discontinue, or add to any portion of these Terms at any time.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::220",
"metadata": {
"title": "Terms of Service"
},
"title": "18.2 Right to Modify",
"url": "https://docs.nhcarrigan.com/legal/terms#182-right-to-modify"
},
{
"content": "18.3 Notification of Changes\n\nWhile we may attempt to notify you when major changes are made to these Terms of Service, you should periodically review the most up-to-date version. We may, but are not obligated to, provide additional notice of significant changes.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::221",
"metadata": {
"title": "Terms of Service"
},
"title": "18.3 Notification of Changes",
"url": "https://docs.nhcarrigan.com/legal/terms#183-notification-of-changes"
},
{
"content": "18.4 User Responsibility\n\nIt is your responsibility to check our website periodically for changes to these Terms of Service. We recommend reviewing these Terms at least once every 30 days.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::222",
"metadata": {
"title": "Terms of Service"
},
"title": "18.4 User Responsibility",
"url": "https://docs.nhcarrigan.com/legal/terms#184-user-responsibility"
},
{
"content": "18.5 Acceptance of Changes\n\nYour continued use of or access to our website or the Service following the posting of any changes to these Terms of Service constitutes acceptance of those changes. If you do not agree to the modified terms, you should discontinue your use of the Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::223",
"metadata": {
"title": "Terms of Service"
},
"title": "18.5 Acceptance of Changes",
"url": "https://docs.nhcarrigan.com/legal/terms#185-acceptance-of-changes"
},
{
"content": "18.6 Effective Date of Changes\n\nAny changes to these Terms will be effective immediately upon posting unless otherwise stated. The \"Last Updated\" date at the top of this Terms of Service will be updated to reflect the date of the most recent changes.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::224",
"metadata": {
"title": "Terms of Service"
},
"title": "18.6 Effective Date of Changes",
"url": "https://docs.nhcarrigan.com/legal/terms#186-effective-date-of-changes"
},
{
"content": "18.7 Material Changes\n\nIf we make material changes to these Terms, we will provide a more prominent notice or, in some cases, email notification of the changes.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::225",
"metadata": {
"title": "Terms of Service"
},
"title": "18.7 Material Changes",
"url": "https://docs.nhcarrigan.com/legal/terms#187-material-changes"
},
{
"content": "18.8 Prior Versions\n\nWe may, at our discretion, provide access to prior versions of these Terms. However, please note that your use of the Service is governed by the current version of the Terms at the time of your use.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::226",
"metadata": {
"title": "Terms of Service"
},
"title": "18.8 Prior Versions",
"url": "https://docs.nhcarrigan.com/legal/terms#188-prior-versions"
},
{
"content": "18.9 Continuation of Service\n\nIf you do not agree with the changes to these Terms, you must stop using the Service. Continued use of the Service will indicate your acceptance of the new Terms.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::227",
"metadata": {
"title": "Terms of Service"
},
"title": "18.9 Continuation of Service",
"url": "https://docs.nhcarrigan.com/legal/terms#189-continuation-of-service"
},
{
"content": "18.10 Severability of Changes\n\nIf any change to these Terms is found to be invalid, void, or for any reason unenforceable, that change is severable and does not affect the validity and enforceability of any remaining changes or the Terms as a whole.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::228",
"metadata": {
"title": "Terms of Service"
},
"title": "18.10 Severability of Changes",
"url": "https://docs.nhcarrigan.com/legal/terms#1810-severability-of-changes"
},
{
"content": "18.11 Governing Law of Changes\n\nAny changes to these Terms will be governed by the law specified in the \"Governing Law\" section of these Terms.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::229",
"metadata": {
"title": "Terms of Service"
},
"title": "18.11 Governing Law of Changes",
"url": "https://docs.nhcarrigan.com/legal/terms#1811-governing-law-of-changes"
},
{
"content": "18.12 Questions About Changes\n\nIf you have any questions or concerns about changes to these Terms, please contact us at terms@nhcarrigan.com.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::230",
"metadata": {
"title": "Terms of Service"
},
"title": "18.12 Questions About Changes",
"url": "https://docs.nhcarrigan.com/legal/terms#1812-questions-about-changes"
},
{
"content": "18.13 Language of Changes\n\nAny changes to these Terms will be made in the same language(s) in which these Terms are provided. In the event of any discrepancy between versions in different languages, the English version shall prevail.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::231",
"metadata": {
"title": "Terms of Service"
},
"title": "18.13 Language of Changes",
"url": "https://docs.nhcarrigan.com/legal/terms#1813-language-of-changes"
},
{
"content": "19. CONTACT INFORMATION",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::232",
"metadata": {
"title": "Terms of Service"
},
"title": "19. CONTACT INFORMATION",
"url": "https://docs.nhcarrigan.com/legal/terms#19-contact-information"
},
{
"content": "19.1 Primary Contact Method\n\nQuestions about the Terms of Service should be sent to us at:\n\nEmail: terms@nhcarrigan.com",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::233",
"metadata": {
"title": "Terms of Service"
},
"title": "19.1 Primary Contact Method",
"url": "https://docs.nhcarrigan.com/legal/terms#191-primary-contact-method"
},
{
"content": "19.2 Additional Contact Information\n\nFor other inquiries or concerns, you may also reach us through the following channels:\n\nEmail: contact@nhcarrigan.com\nForum: https://forum.nhcarrigan.com",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::234",
"metadata": {
"title": "Terms of Service"
},
"title": "19.2 Additional Contact Information",
"url": "https://docs.nhcarrigan.com/legal/terms#192-additional-contact-information"
},
{
"content": "19.3 Business Hours\n\nOur team is available to respond to inquiries during the following hours:\n\nM-F 9a-5p PST",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::235",
"metadata": {
"title": "Terms of Service"
},
"title": "19.3 Business Hours",
"url": "https://docs.nhcarrigan.com/legal/terms#193-business-hours"
},
{
"content": "19.4 Response Time\n\nWe strive to respond to all inquiries within 48 business hours. However, complex issues may require additional time for a comprehensive response.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::236",
"metadata": {
"title": "Terms of Service"
},
"title": "19.4 Response Time",
"url": "https://docs.nhcarrigan.com/legal/terms#194-response-time"
},
{
"content": "19.5 Reporting Violations\n\nIf you believe any user has violated these Terms of Service, please report it immediately to the email address above.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::237",
"metadata": {
"title": "Terms of Service"
},
"title": "19.5 Reporting Violations",
"url": "https://docs.nhcarrigan.com/legal/terms#195-reporting-violations"
},
{
"content": "19.6 Technical Support\n\nFor technical issues or support related to the Service, please contact: support@nhcarrigan.com",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::238",
"metadata": {
"title": "Terms of Service"
},
"title": "19.6 Technical Support",
"url": "https://docs.nhcarrigan.com/legal/terms#196-technical-support"
},
{
"content": "19.7 Legal Notices\n\nAny legal notices should be sent to: legal@nhcarrigan.com",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::239",
"metadata": {
"title": "Terms of Service"
},
"title": "19.7 Legal Notices",
"url": "https://docs.nhcarrigan.com/legal/terms#197-legal-notices"
},
{
"content": "19.8 Press Inquiries\n\nFor press or media inquiries, please contact: press@nhcarrigan.com",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::240",
"metadata": {
"title": "Terms of Service"
},
"title": "19.8 Press Inquiries",
"url": "https://docs.nhcarrigan.com/legal/terms#198-press-inquiries"
},
{
"content": "19.9 Updates to Contact Information\n\nWe may update our contact information from time to time. The most current contact information will always be available in these Terms of Service.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::241",
"metadata": {
"title": "Terms of Service"
},
"title": "19.9 Updates to Contact Information",
"url": "https://docs.nhcarrigan.com/legal/terms#199-updates-to-contact-information"
},
{
"content": "19.10 Privacy Concerns\n\nFor privacy-related questions or to exercise your data rights, please contact our Data Protection Officer at: privacy@nhcarrigan.com",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::242",
"metadata": {
"title": "Terms of Service"
},
"title": "19.10 Privacy Concerns",
"url": "https://docs.nhcarrigan.com/legal/terms#1910-privacy-concerns"
},
{
"content": "19.11 Accessibility\n\nIf you have any accessibility concerns or require these Terms in an alternative format, please contact us at the email address provided above.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::243",
"metadata": {
"title": "Terms of Service"
},
"title": "19.11 Accessibility",
"url": "https://docs.nhcarrigan.com/legal/terms#1911-accessibility"
},
{
"content": "19.12 Language Support\n\nWe currently offer support in the following languages:\n\n- English\n\nFor support in these languages, please use the appropriate contact method listed on our website.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::244",
"metadata": {
"title": "Terms of Service"
},
"title": "19.12 Language Support",
"url": "https://docs.nhcarrigan.com/legal/terms#1912-language-support"
},
{
"content": "19.13 Social Media\n\nWhile we maintain social media accounts, please note that these are not official channels for legal notices or time-sensitive communications. For urgent matters, please use the email address provided above.",
"file": "src/content/docs/legal/terms.md",
"id": "src/content/docs/legal/terms.md::245",
"metadata": {
"title": "Terms of Service"
},
"title": "19.13 Social Media",
"url": "https://docs.nhcarrigan.com/legal/terms#1913-social-media"
},
{
"content": "This serves as our documentation for how we manage our local music libraries on Linux.",
"file": "src/content/docs/misc/music.md",
"id": "src/content/docs/misc/music.md::0",
"metadata": {
"title": "Downloading and Editing Music"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/misc/music#"
},
{
"content": "Acquiring Music\n\nYou are welcome to use any method you wish to *LEGALLY* acquire music. We would never encourage the criminal act of piracy. But maybe you're an artist and you want to archive or back up your own music - in that case, here you go:\n\n```bash\nyt-dlp -x --audio-format mp3 <url> --cookies-from-browser firefox\n```\n\nOmit the `--cookies-from-browser firefox` if you do not need authentication (auth is required for age-restricted content, for example).",
"file": "src/content/docs/misc/music.md",
"id": "src/content/docs/misc/music.md::1",
"metadata": {
"title": "Downloading and Editing Music"
},
"title": "Acquiring Music",
"url": "https://docs.nhcarrigan.com/misc/music#acquiring-music"
},
{
"content": "Editing Metadata\n\nThe specific meta tags you may need to set will vary depending on the music software you use. We have confirmed that `TIT2` is read as the title and `TPE1` is read as the artist when using Amberol on Linux and Musicolet on Android. Using `-t` and `-a` might work.\n\n```bash\nid3v2 \"/path/to/song\" --TIT2 \"Song Title\" --TPE1 \"Song Artist\" \n```",
"file": "src/content/docs/misc/music.md",
"id": "src/content/docs/misc/music.md::2",
"metadata": {
"title": "Downloading and Editing Music"
},
"title": "Editing Metadata",
"url": "https://docs.nhcarrigan.com/misc/music#editing-metadata"
},
{
"content": "Adding Cover Image\n\nDownload the image (we have confirmed JPEGs work) that you want to apply to the song, then run:\n\n```bash\neyeD3 --add-image=\"/path/to/img\":FRONT_COVER \"/path/to/mp3\"\n```",
"file": "src/content/docs/misc/music.md",
"id": "src/content/docs/misc/music.md::3",
"metadata": {
"title": "Downloading and Editing Music"
},
"title": "Adding Cover Image",
"url": "https://docs.nhcarrigan.com/misc/music#adding-cover-image"
},
{
"content": "Copying to Android Locally\n\nYou'll need to replace your paths and your device ID to match your local setup, but:\n\n```bash\nadb -s 192.168.12.105:5555 push music/* /storage/self/primary/Music\n```",
"file": "src/content/docs/misc/music.md",
"id": "src/content/docs/misc/music.md::4",
"metadata": {
"title": "Downloading and Editing Music"
},
"title": "Copying to Android Locally",
"url": "https://docs.nhcarrigan.com/misc/music#copying-to-android-locally"
},
{
"content": "<app name> (hereinafter the \"Application\") is <description>",
"file": "src/content/docs/projects/_template.md",
"id": "src/content/docs/projects/_template.md::0",
"metadata": {
"title": "<app name>"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/_template#"
},
{
"content": "1. User Documentation\n\n:::note\nThis section is coming soon!\n:::\n\nThis section is for those interacting with a live instance of the Application.",
"file": "src/content/docs/projects/_template.md",
"id": "src/content/docs/projects/_template.md::1",
"metadata": {
"title": "<app name>"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/_template#1-user-documentation"
},
{
"content": "2. Technical Documentation\n\n:::note\nThis section is coming soon!\n:::\n\nThis section is for those interested in running their own instance of the Application.",
"file": "src/content/docs/projects/_template.md",
"id": "src/content/docs/projects/_template.md::2",
"metadata": {
"title": "<app name>"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/_template#2-technical-documentation"
},
{
"content": "3. Legal Documentation\n\n:::note\nThis section is coming soon!\n:::\n\nThis section is for expansions to our legal policies specific to the Application.",
"file": "src/content/docs/projects/_template.md",
"id": "src/content/docs/projects/_template.md::3",
"metadata": {
"title": "<app name>"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/_template#3-legal-documentation"
},
{
"content": "4. Contributing Documentation\n\n:::note\nThis section is coming soon!\n:::\n\nThis section is for documentation related to contributing to the Application's codebase.",
"file": "src/content/docs/projects/_template.md",
"id": "src/content/docs/projects/_template.md::4",
"metadata": {
"title": "<app name>"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/_template#4-contributing-documentation"
},
{
"content": "Aria Iuvo (hereinafter the \"Application\") is a Discord bot designed to provide seamless message translation capabilities using LibreTranslate. The bot allows users to translate Discord messages to their preferred language through an intuitive right-click context menu interface. Developed by NHCarrigan, Aria Iuvo supports over 25 languages and offers both free and premium functionality through Discord's subscription system.",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::0",
"metadata": {
"title": "Aria Iuvo"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#"
},
{
"content": "1. User Documentation\n\nThis section is for those interacting with a live instance of the Application.",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::1",
"metadata": {
"title": "Aria Iuvo"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#1-user-documentation"
},
{
"content": "Getting Started\n\nTo use Aria Iuvo, [add the bot to your Discord account](https://discord.com/oauth2/authorize?client_id=1338596130207957035) using the provided authorization link. The bot operates as a user-installable application, meaning it can be used across any Discord server or direct message where you have access.",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::2",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Getting Started",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#getting-started"
},
{
"content": "Core Features",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::3",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Core Features",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#core-features"
},
{
"content": "Message Translation\n- **Context Menu Access**: Right-click on any message, select \"Apps\", then choose \"Translate Message\"\n- **Automatic Language Detection**: The bot automatically detects the source language of the message\n- **User Locale Targeting**: Messages are translated to your Discord interface language\n- **Confidence Reporting**: Translation results include the detection confidence percentage",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::4",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Message Translation",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#message-translation"
},
{
"content": "About Command\n- Use the `/about` slash command to view bot information\n- Displays current version, commit hash, and helpful links\n- Available in 25+ languages matching your Discord locale",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::5",
"metadata": {
"title": "Aria Iuvo"
},
"title": "About Command",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#about-command"
},
{
"content": "Premium Features\n- **Subscription Required**: Message translation requires an active premium subscription\n- **Subscription Management**: Use the premium button in bot responses to manage subscriptions",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::6",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Premium Features",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#premium-features"
},
{
"content": "Supported Languages\n\nAria Iuvo supports translation between the following languages:\n- English (en)\n- Spanish (es)\n- French (Français)\n- German (Deutsch)\n- Italian (Italiano)\n- Portuguese (pt)\n- Russian (Русский)\n- Chinese Simplified (zh)\n- Chinese Traditional (zt)\n- Japanese (日本語)\n- Korean (한국어)\n- Dutch (Nederlands)\n- Polish (Polski)\n- Czech (Čeština)\n- Danish (Dansk)\n- Swedish (Svenska)\n- Finnish (Suomi)\n- Greek (Ελληνικά)\n- Bulgarian (Български)\n- Romanian (Română)\n- Hungarian (Magyar)\n- Lithuanian (Lietuvių)\n- Ukrainian (Українська)\n- Turkish (Türkçe)\n- Thai (ไทย)\n- Hindi (हिन्दी)\n- Indonesian (Bahasa Indonesia)",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::7",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Supported Languages",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#supported-languages"
},
{
"content": "Error Handling\n\n- **No Message Content**: The bot will notify you if the selected message contains no translatable text\n- **Unsupported Language**: If your locale isn't supported, you'll receive a notification\n- **Network Issues**: Connection problems are logged and users receive error notifications\n- **Rate Limiting**: The bot handles API rate limits gracefully",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::8",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Error Handling",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#error-handling"
},
{
"content": "2. Technical Documentation\n\nThis section is for those interested in running their own instance of the Application.",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::9",
"metadata": {
"title": "Aria Iuvo"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#2-technical-documentation"
},
{
"content": "System Architecture\n\nAria Iuvo is built using modern TypeScript and Node.js technologies with the following key components:",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::10",
"metadata": {
"title": "Aria Iuvo"
},
"title": "System Architecture",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#system-architecture"
},
{
"content": "Core Technologies\n- **Runtime**: Node.js with ES modules\n- **Language**: TypeScript with strict configuration\n- **Discord Library**: discord.js v14+\n- **Translation Service**: LibreTranslate API\n- **Web Framework**: Fastify (for health monitoring)\n- **Package Manager**: pnpm",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::11",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Core Technologies",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#core-technologies"
},
{
"content": "Project Structure\n```\nsrc/\n├── index.ts # Main entry point and Discord client setup\n├── commands/ # Slash command definitions\n│ ├── about.ts # About command configuration\n│ └── translate.ts # Context menu command configuration\n├── modules/ # Core functionality implementations\n│ ├── about.ts # About command logic\n│ ├── translate.ts # Translation processing logic\n│ └── getLocale.ts # Locale resolution utilities\n├── config/ # Configuration files\n│ └── locales.ts # Supported locales and mappings\n├── i18n/ # Internationalization\n│ └── responses.ts # Localized response strings\n├── server/ # Web server components\n│ └── serve.ts # Health monitoring server\n└── utils/ # Utility functions\n ├── i18n.ts # Translation utilities\n ├── logger.ts # Logging functionality\n └── replyToError.ts # Error response handling\n```",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::12",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Project Structure",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#project-structure"
},
{
"content": "Environment Setup",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::13",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Environment Setup",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#environment-setup"
},
{
"content": "Required Environment Variables\n```bash\nDISCORD_TOKEN=your_discord_bot_token\nTRANSLATE_TOKEN=your_libretranslate_api_key\n```",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::14",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Required Environment Variables",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#required-environment-variables"
},
{
"content": "Installation Steps\n1. Clone the repository\n2. Install dependencies: `pnpm install`\n3. Configure environment variables\n4. Build the project: `pnpm run build`\n5. Start the application: `pnpm run start`",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::15",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Installation Steps",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#installation-steps"
},
{
"content": "Development Workflow\n- **Linting**: `pnpm run lint` (ESLint with @nhcarrigan/eslint-config)\n- **Testing**: `pnpm run test` (Vitest with coverage)\n- **Building**: `pnpm run build` (TypeScript compilation)",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::16",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Development Workflow",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#development-workflow"
},
{
"content": "API Integration",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::17",
"metadata": {
"title": "Aria Iuvo"
},
"title": "API Integration",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#api-integration"
},
{
"content": "LibreTranslate Service\n- **Detection Endpoint**: `https://trans.nhcarrigan.com/detect`\n- **Translation Endpoint**: `https://trans.nhcarrigan.com/translate`\n- **Authentication**: API key-based authentication\n- **Request Format**: URL-encoded form data",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::18",
"metadata": {
"title": "Aria Iuvo"
},
"title": "LibreTranslate Service",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#libretranslate-service"
},
{
"content": "Discord Integration\n- **Application Type**: User-installable bot\n- **Interaction Types**: Message context menus, slash commands\n- **Permission Model**: Minimal intents required (no message content access)\n- **Premium Integration**: Discord's SKU-based subscription system",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::19",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Discord Integration",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#discord-integration"
},
{
"content": "Monitoring and Health Checks",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::20",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Monitoring and Health Checks",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#monitoring-and-health-checks"
},
{
"content": "Web Server\n- **Port**: 5001\n- **Endpoint**: `/` (serves HTML status page)\n- **Framework**: Fastify with logging disabled\n- **Purpose**: Health monitoring and basic bot information",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::21",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Web Server",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#web-server"
},
{
"content": "Logging System\n- **Error Handling**: Comprehensive error logging with structured data\n- **Process Monitoring**: Unhandled rejection and exception tracking\n- **Subscription Events**: User subscription/unsubscription logging",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::22",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Logging System",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#logging-system"
},
{
"content": "Deployment Considerations",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::23",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Deployment Considerations",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#deployment-considerations"
},
{
"content": "Production Requirements\n- Node.js 22+ runtime environment\n- Access to LibreTranslate API service\n- Discord bot token with appropriate permissions\n- Environment variable management (1Password integration shown)",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::24",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Production Requirements",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#production-requirements"
},
{
"content": "Scaling Considerations\n- Stateless design enables horizontal scaling\n- Rate limiting handled at API level\n- Minimal memory footprint due to no message caching",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::25",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Scaling Considerations",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#scaling-considerations"
},
{
"content": "3. Legal Documentation\n\nThis section is for expansions to our legal policies specific to the Application.",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::26",
"metadata": {
"title": "Aria Iuvo"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#3-legal-documentation"
},
{
"content": "Licensing\n\nAria Iuvo is licensed under Naomi's Public License, as referenced in the global software license documentation available at [docs.nhcarrigan.com](https://docs.nhcarrigan.com/#/license).",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::27",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Licensing",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#licensing"
},
{
"content": "Data Handling",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::28",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Data Handling",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#data-handling"
},
{
"content": "Message Processing\n- **Temporary Processing**: Messages are sent to LibreTranslate for translation only\n- **No Storage**: The bot does not store or cache message content\n- **Ephemeral Responses**: All bot responses are ephemeral (only visible to the requesting user)",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::29",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Message Processing",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#message-processing"
},
{
"content": "User Data\n- **Minimal Collection**: Only Discord user IDs and locale preferences are processed\n- **Subscription Data**: Premium subscription status is managed through Discord's system\n- **No Personal Information**: No additional personal data is collected or stored",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::30",
"metadata": {
"title": "Aria Iuvo"
},
"title": "User Data",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#user-data"
},
{
"content": "Third-Party Services\n- **LibreTranslate**: Message content is temporarily sent to LibreTranslate for processing\n- **Discord**: All interactions are governed by Discord's Terms of Service and Privacy Policy",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::31",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Third-Party Services",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#third-party-services"
},
{
"content": "Copyright and Attribution\n\n- **Copyright Holder**: Naomi Carrigan (nhcarrigan)\n- **Source Code**: Available at [git.nhcarrigan.com/nhcarrigan/aria-iuvo](https://git.nhcarrigan.com/nhcarrigan/aria-iuvo)\n- **Attribution**: Uses LibreTranslate for translation services",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::32",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Copyright and Attribution",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#copyright-and-attribution"
},
{
"content": "4. Contributing Documentation\n\nThis section is for documentation related to contributing to the Application's codebase.",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::33",
"metadata": {
"title": "Aria Iuvo"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#4-contributing-documentation"
},
{
"content": "Development Environment",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::34",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Development Environment",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#development-environment"
},
{
"content": "Prerequisites\n- Node.js 22 or higher\n- pnpm package manager\n- Git version control\n- TypeScript knowledge\n- Discord.js familiarity",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::35",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Prerequisites",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#prerequisites"
},
{
"content": "Code Standards\n- **Linting**: ESLint with @nhcarrigan/eslint-config\n- **Type Safety**: Strict TypeScript configuration\n- **Testing**: Vitest with coverage requirements\n- **Documentation**: JSDoc comments for all public functions",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::36",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Code Standards",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#code-standards"
},
{
"content": "Contribution Workflow",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::37",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Contribution Workflow",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#contribution-workflow"
},
{
"content": "Getting Started\n1. Fork the repository\n2. Create a feature branch from main\n3. Set up development environment\n4. Make your changes following code standards\n5. Run tests and linting\n6. Submit a pull request",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::38",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Getting Started",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#getting-started"
},
{
"content": "Code Style Guidelines\n- **Naming Conventions**: camelCase for variables, PascalCase for types\n- **File Organization**: Logical separation by functionality\n- **Import Style**: ES modules with explicit extensions\n- **Error Handling**: Comprehensive try-catch blocks with logging",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::39",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Code Style Guidelines",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#code-style-guidelines"
},
{
"content": "Internationalization (i18n)",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::40",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Internationalization (i18n)",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#internationalization-(i18n)"
},
{
"content": "Adding New Languages\n1. Add locale to `supportedLocales` array in `config/locales.ts`\n2. Add mapping if needed in `mappedLocales` object\n3. Add translations to `responses` object in `i18n/responses.ts`\n4. Update command localizations in `commands/` files",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::41",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Adding New Languages",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#adding-new-languages"
},
{
"content": "Translation Structure\n```typescript\n[Locale.NewLanguage]: {\n \"button\": {\n code: \"Source Code Translation\",\n support: \"Help Translation\",\n },\n \"command-error\": \"Error message translation\",\n \"embed\": {\n commit: \"Commit translation\",\n description: \"Bot description translation\",\n title: \"About title translation\",\n version: \"Version translation\",\n },\n \"no-message-content\": \"No content message translation\",\n \"subscription-required\": \"Subscription required translation\",\n \"translation\": \"Translation format string\",\n \"unsupported-locale\": \"Unsupported locale translation\",\n}\n```",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::42",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Translation Structure",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#translation-structure"
},
{
"content": "Testing Guidelines",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::43",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Testing Guidelines",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#testing-guidelines"
},
{
"content": "Test Structure\n- **Unit Tests**: Located in `test/` directory\n- **Coverage Requirements**: Maintained through Vitest\n- **Locale Testing**: Verify i18n functionality\n- **Integration Testing**: Test Discord interaction flows",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::44",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Test Structure",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#test-structure"
},
{
"content": "Running Tests\n```bash",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::45",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Running Tests",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#running-tests"
},
{
"content": "Run all tests with coverage\npnpm run test",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::46",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Run all tests with coverage",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#run-all-tests-with-coverage"
},
{
"content": "Run tests in watch mode (development)\nnpx vitest --watch",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::47",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Run tests in watch mode (development)",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#run-tests-in-watch-mode-(development)"
},
{
"content": "Check test coverage\nnpx vitest run --coverage\n```",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::48",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Check test coverage",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#check-test-coverage"
},
{
"content": "Bug Reports and Feature Requests",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::49",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Bug Reports and Feature Requests",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#bug-reports-and-feature-requests"
},
{
"content": "Issue Templates\n- **Bug Reports**: Include steps to reproduce, expected vs actual behavior\n- **Feature Requests**: Describe use case, proposed implementation\n- **Translation Issues**: Specify locale and incorrect translation",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::50",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Issue Templates",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#issue-templates"
},
{
"content": "Communication Channels\n- **Issues**: GitHub/Git repository issue tracker\n- **Support**: [chat.nhcarrigan.com](https://chat.nhcarrigan.com)\n- **Email**: contact@nhcarrigan.com",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::51",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Communication Channels",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#communication-channels"
},
{
"content": "Release Process",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::52",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Release Process",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#release-process"
},
{
"content": "Version Management\n- **Semantic Versioning**: Following semver conventions\n- **Changelog**: Maintained for all releases\n- **Git Tags**: Version tags for release tracking",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::53",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Version Management",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#version-management"
},
{
"content": "Deployment Pipeline\n- **Build Verification**: All tests must pass\n- **Linting Check**: No linting errors allowed\n- **Type Checking**: TypeScript compilation must succeed\n- **Manual Testing**: Discord integration verification",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::54",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Deployment Pipeline",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#deployment-pipeline"
},
{
"content": "Documentation Standards",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::55",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Documentation Standards",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#documentation-standards"
},
{
"content": "Code Documentation\n- **JSDoc**: All public functions and complex logic\n- **README**: Project overview and quick start guide\n- **CONTRIBUTING**: Detailed contribution guidelines\n- **This Document**: Comprehensive application documentation",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::56",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Code Documentation",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#code-documentation"
},
{
"content": "Maintenance\n- **Regular Updates**: Documentation updated with code changes\n- **Accuracy**: All examples and instructions verified\n- **Accessibility**: Clear language and structured formatting",
"file": "src/content/docs/projects/aria-iuvo.md",
"id": "src/content/docs/projects/aria-iuvo.md::57",
"metadata": {
"title": "Aria Iuvo"
},
"title": "Maintenance",
"url": "https://docs.nhcarrigan.com/projects/aria-iuvo#maintenance"
},
{
"content": "Becca Lyria (hereinafter the \"Application\") is an AI-powered Discord bot that provides an interactive text-based role-playing game experience through direct messages. The bot utilizes Anthropic's Claude AI to create dynamic, personalized RPG adventures for users.",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::0",
"metadata": {
"title": "Becca Lyria"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#"
},
{
"content": "1. User Documentation\n\nThis section is for those interacting with a live instance of the Application.",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::1",
"metadata": {
"title": "Becca Lyria"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#1-user-documentation"
},
{
"content": "Overview\n\nBecca Lyria is a user-installable Discord bot that transforms your DMs into an immersive text-based RPG experience. Acting as a wise mage named Becca with a cold and calculating personality, the bot serves as your personal dungeon master, weaving interactive stories that adapt to your choices and actions.",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::2",
"metadata": {
"title": "Becca Lyria"
},
"title": "Overview",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#overview"
},
{
"content": "Getting Started\n\n1. **Installation**: [Add Becca Lyria to your Discord account](https://discord.com/oauth2/authorize?client_id=1343341112437248041)\n2. **Subscription**: The bot requires an active subscription to use its features\n3. **Start Playing**: Use the `/start` command to begin your adventure",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::3",
"metadata": {
"title": "Becca Lyria"
},
"title": "Getting Started",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#getting-started"
},
{
"content": "Available Commands\n\n- **`/start`** - Start a new RPG scenario. Becca will create a fresh adventure and send it to your DMs\n- **`/about`** - Learn more about the bot, including version information and useful links\n- **`/clear`** - Clear your current adventure history to start fresh",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::4",
"metadata": {
"title": "Becca Lyria"
},
"title": "Available Commands",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#available-commands"
},
{
"content": "How to Play\n\n1. Send Becca a `/start` command to begin a new adventure\n2. Once the story begins in your DMs, simply respond naturally to continue the narrative\n3. The bot maintains conversation history (up to 20 messages) to provide context-aware responses\n4. Use `/clear` to reset your adventure history when you want to start over\n5. The bot supports free-form text adventures - you can attempt any action you can imagine",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::5",
"metadata": {
"title": "Becca Lyria"
},
"title": "How to Play",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#how-to-play"
},
{
"content": "Features\n\n- **AI-Powered Storytelling**: Powered by Claude 3.5 Sonnet for rich, dynamic narratives\n- **Conversation Memory**: Maintains context from recent messages for coherent storytelling\n- **Free-Form Gameplay**: No restrictive multiple choice options - express your actions naturally\n- **Personalized Experience**: The bot adapts to your playstyle and incorporates your Discord display name\n- **Privacy-Focused**: All gameplay happens in private DMs",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::6",
"metadata": {
"title": "Becca Lyria"
},
"title": "Features",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#features"
},
{
"content": "Subscription Model\n\nBecca Lyria operates on a premium subscription model through Discord's monetization system. Users must have an active subscription to access the bot's RPG features.",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::7",
"metadata": {
"title": "Becca Lyria"
},
"title": "Subscription Model",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#subscription-model"
},
{
"content": "2. Technical Documentation\n\nThis section is for those interested in running their own instance of the Application.",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::8",
"metadata": {
"title": "Becca Lyria"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#2-technical-documentation"
},
{
"content": "Architecture Overview\n\nBecca Lyria is built as a modern Discord bot using TypeScript and several key technologies:\n\n**Core Technologies:**\n- **Node.js/TypeScript**: Main runtime and development language\n- **Discord.js**: Discord API interaction library\n- **Anthropic SDK**: Integration with Claude AI models\n- **Fastify**: Web server for health monitoring\n- **PNPM**: Package management\n\n**AI Integration:**\n- **Provider**: Anthropic Claude (claude-3-5-sonnet-latest for conversations, claude-sonnet-4-20250514 for story starts)\n- **Context Management**: Maintains up to 20 messages of conversation history\n- **Personality System**: Configurable personality traits for consistent character behavior",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::9",
"metadata": {
"title": "Becca Lyria"
},
"title": "Architecture Overview",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#architecture-overview"
},
{
"content": "Project Structure\n\n```\nsrc/\n├── index.ts # Main entry point and Discord client setup\n├── commands/ # Slash command definitions\n│ ├── about.ts\n│ ├── clear.ts\n│ └── start.ts\n├── config/\n│ └── personality.ts # AI personality configuration\n├── events/\n│ └── message.ts # Direct message event handling\n├── modules/ # Command implementation logic\n│ ├── about.ts\n│ ├── clear.ts\n│ └── start.ts\n├── server/\n│ └── serve.ts # Health monitoring web server\n└── utils/ # Utility functions\n ├── ai.ts # Anthropic client configuration\n ├── calculateCost.ts # Usage cost tracking\n ├── isSubscribed.ts # Subscription verification\n ├── logger.ts # Logging utility\n └── replyToError.ts # Error handling\n```",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::10",
"metadata": {
"title": "Becca Lyria"
},
"title": "Project Structure",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#project-structure"
},
{
"content": "Environment Variables\n\nThe application requires several environment variables:\n\n- `DISCORD_TOKEN`: Discord bot token\n- `AI_TOKEN`: Anthropic API key\n- `LOG_TOKEN`: Logging service token (optional)",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::11",
"metadata": {
"title": "Becca Lyria"
},
"title": "Environment Variables",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#environment-variables"
},
{
"content": "Key Features Implementation\n\n**Subscription System:**\n- Integrates with Discord's premium features\n- SKU ID: `1343347225698500744`\n- Entitlement checking for both interactions and messages\n- Special bypass for bot owner (ID: `465650873650118659`)\n\n**Conversation Management:**\n- Fetches last 20 messages from DM channel\n- Supports history clearing with special `<Clear History>` marker\n- Converts message history to Anthropic's message format\n- Maintains role context (user vs assistant)\n\n**Error Handling:**\n- Comprehensive error logging with custom logger\n- Graceful error responses to users\n- Unhandled rejection and exception catching\n\n**Cost Tracking:**\n- Monitors AI usage with token counting\n- Calculates costs based on Anthropic pricing (input: $3/1M tokens, output: $15/1M tokens)\n- Logs usage statistics per user",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::12",
"metadata": {
"title": "Becca Lyria"
},
"title": "Key Features Implementation",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#key-features-implementation"
},
{
"content": "Development Setup\n\n1. **Prerequisites**: Node.js, PNPM\n2. **Installation**: `pnpm install`\n3. **Build**: `pnpm run build`\n4. **Development**: Configure environment variables in `dev.env`\n5. **Production**: Configure environment variables in `prod.env`\n6. **Start**: `pnpm start` (requires 1Password CLI for env injection)",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::13",
"metadata": {
"title": "Becca Lyria"
},
"title": "Development Setup",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#development-setup"
},
{
"content": "Deployment Considerations\n\n- Web server runs on port 5010 for health checks\n- Requires Discord bot permissions for DMs and message content\n- Needs stable Anthropic API access\n- Logging integration with nhcarrigan logging service",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::14",
"metadata": {
"title": "Becca Lyria"
},
"title": "Deployment Considerations",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#deployment-considerations"
},
{
"content": "3. Legal Documentation\n\nThis section is for expansions to our legal policies specific to the Application.",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::15",
"metadata": {
"title": "Becca Lyria"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#3-legal-documentation"
},
{
"content": "Data Processing\n\nYour conversation history is transmitted to Anthropic AI for processing and response generation. The content of your messages may be retained by them for model improvement.",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::16",
"metadata": {
"title": "Becca Lyria"
},
"title": "Data Processing",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#data-processing"
},
{
"content": "Subscription Model\nBecca operates as a paid service with a $5/month subscription fee per Discord server. This subscription model ensures:\n- Sustainable development and maintenance\n- Priority support for subscribers\n- Regular feature updates and improvements\n- Infrastructure costs coverage",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::17",
"metadata": {
"title": "Becca Lyria"
},
"title": "Subscription Model",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#subscription-model"
},
{
"content": "Service Availability\n- Best-effort uptime with monitoring systems\n- Planned maintenance notifications\n- Support through designated Discord server\n- Community-driven feedback and feature requests",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::18",
"metadata": {
"title": "Becca Lyria"
},
"title": "Service Availability",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#service-availability"
},
{
"content": "4. Contributing Documentation\n\nThis section is for documentation related to contributing to the Application's codebase.",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::19",
"metadata": {
"title": "Becca Lyria"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#4-contributing-documentation"
},
{
"content": "Development Standards\n\n**Code Quality:**\n- TypeScript with strict configuration\n- ESLint with @nhcarrigan/eslint-config\n- Maximum function length limits enforced\n- Comprehensive JSDoc documentation required\n\n**Testing:**\n- Vitest framework configured\n- Istanbul coverage reporting\n- Currently no tests implemented (placeholder exists)\n\n**Licensing:**\n- Licensed under Naomi's Public License\n- Copyright held by Naomi Carrigan\n- See LICENSE.md for full terms",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::20",
"metadata": {
"title": "Becca Lyria"
},
"title": "Development Standards",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#development-standards"
},
{
"content": "Contribution Process\n\n1. **Issues**: Report bugs and request features through GitHub issues\n2. **Pull Requests**: Fork, develop, and submit PRs for review\n3. **Code Review**: All changes require review before merging\n4. **Guidelines**: Follow established [contributing guidelines](CONTRIBUTING.md)\n5. **Conduct**: Adhere to [Code of Conduct](CODE_OF_CONDUCT.md)",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::21",
"metadata": {
"title": "Becca Lyria"
},
"title": "Contribution Process",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#contribution-process"
},
{
"content": "Development Workflow\n\n**Commands:**\n- `pnpm run build`: Compile TypeScript to production JavaScript\n- `pnpm run lint`: Run ESLint with zero warnings tolerance\n- `pnpm run test`: Run test suite (currently placeholder)\n- `pnpm start`: Start production build with environment injection\n\n**Architecture Patterns:**\n- Event-driven Discord bot architecture\n- Modular command system with separate definition and implementation\n- Utility-first approach for common functionality\n- Separation of concerns between commands, events, and business logic",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::22",
"metadata": {
"title": "Becca Lyria"
},
"title": "Development Workflow",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#development-workflow"
},
{
"content": "Contact Information\n\n- **Chat Server**: [http://chat.nhcarrigan.com](http://chat.nhcarrigan.com)\n- **Email**: contact@nhcarrigan.com\n- **Source Code**: [https://git.nhcarrigan.com/nhcarrigan/becca-lyria](https://git.nhcarrigan.com/nhcarrigan/becca-lyria)\n- **Documentation**: [https://docs.nhcarrigan.com/](https://docs.nhcarrigan.com/)",
"file": "src/content/docs/projects/becca-lyria.md",
"id": "src/content/docs/projects/becca-lyria.md::23",
"metadata": {
"title": "Becca Lyria"
},
"title": "Contact Information",
"url": "https://docs.nhcarrigan.com/projects/becca-lyria#contact-information"
},
{
"content": "Naomi's Blog (hereinafter the \"Application\") is a personal blog platform built with Next.js that showcases the personal musings of a transfem software engineer. The Application serves markdown-based blog posts with a clean, accessible interface and focuses on storytelling and technical experiences.",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::0",
"metadata": {
"title": "Naomi's Blog"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/blog#"
},
{
"content": "1. User Documentation",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::1",
"metadata": {
"title": "Naomi's Blog"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/blog#1-user-documentation"
},
{
"content": "Overview\nNaomi's Blog is a personal blog featuring posts about software engineering, technology, and personal experiences. The blog is accessible at https://blog.nhcarrigan.com and provides a clean, minimalist interface for reading articles.",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::2",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Overview",
"url": "https://docs.nhcarrigan.com/projects/blog#overview"
},
{
"content": "Navigation\n- **Home Page**: Displays a chronological list of all blog posts with titles, publication dates, and summaries\n- **Individual Posts**: Click on any post title to read the full article\n- **Return Navigation**: Each post page includes a \"← Back to home\" link to return to the main listing",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::3",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Navigation",
"url": "https://docs.nhcarrigan.com/projects/blog#navigation"
},
{
"content": "Post Structure\nEach blog post includes:\n- **Title**: The main heading of the article\n- **Publication Date**: Displayed in British format (e.g., \"Wednesday, 21 May 2025\")\n- **Summary**: A brief excerpt visible on the home page\n- **Content**: Full markdown-rendered content with support for:\n - Headers and text formatting\n - Links and images\n - Code blocks and syntax highlighting\n - HTML elements when needed",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::4",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Post Structure",
"url": "https://docs.nhcarrigan.com/projects/blog#post-structure"
},
{
"content": "Accessibility Features\n- Semantic HTML structure with proper heading hierarchy\n- Underlined links for clear navigation\n- Clean typography using Inter font\n- Responsive design that works across devices",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::5",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Accessibility Features",
"url": "https://docs.nhcarrigan.com/projects/blog#accessibility-features"
},
{
"content": "2. Technical Documentation",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::6",
"metadata": {
"title": "Naomi's Blog"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/blog#2-technical-documentation"
},
{
"content": "Architecture\nNaomi's Blog is built using:\n- **Framework**: Next.js 15.1.6 with App Router\n- **Language**: TypeScript 5.x\n- **Styling**: Tailwind CSS with custom CSS variables\n- **Content**: Markdown files with frontmatter parsing via gray-matter\n- **Markdown Rendering**: react-markdown with rehype-raw and remark-gfm plugins",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::7",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Architecture",
"url": "https://docs.nhcarrigan.com/projects/blog#architecture"
},
{
"content": "Project Structure\n```\nsrc/\n├── app/\n│ ├── layout.tsx # Root layout with metadata and styling\n│ ├── page.tsx # Home page listing all posts\n│ ├── globals.css # Global styles and CSS variables\n│ └── post/[slug]/\n│ └── page.tsx # Dynamic post pages\n├── components/\n│ └── rule.tsx # Custom horizontal rule component\n└── lib/\n └── posts.ts # Post data fetching utilities\n\nposts/ # Markdown blog posts\n```",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::8",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Project Structure",
"url": "https://docs.nhcarrigan.com/projects/blog#project-structure"
},
{
"content": "Installation & Setup\n1. **Prerequisites**: Node.js and pnpm package manager\n2. **Install dependencies**: `pnpm install`\n3. **Development server**: `pnpm dev` (runs on port 3003)\n4. **Build for production**: `pnpm build`\n5. **Start production server**: `pnpm start`",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::9",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Installation & Setup",
"url": "https://docs.nhcarrigan.com/projects/blog#installation-&-setup"
},
{
"content": "Content Management\n- **Adding Posts**: Create `.md` files in the `posts/` directory\n- **Frontmatter Format**:\n ```yaml\n ---\n title: \"Your Post Title\"\n date: \"YYYY-MM-DD\"\n summary: \"Brief description of the post\"\n ---\n ```\n- **Content**: Write in Markdown with GitHub Flavoured Markdown support\n- **Automatic Processing**: Posts are automatically sorted by date (newest first)",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::10",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Content Management",
"url": "https://docs.nhcarrigan.com/projects/blog#content-management"
},
{
"content": "Key Features\n- **Static Generation**: Posts are processed at build time for optimal performance\n- **SEO Optimized**: Proper metadata, Open Graph, and Twitter Card support\n- **TypeScript**: Full type safety throughout the application\n- **Responsive Design**: Mobile-friendly layout\n- **Custom Styling**: Branded colors and typography",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::11",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Key Features",
"url": "https://docs.nhcarrigan.com/projects/blog#key-features"
},
{
"content": "3. Legal Documentation",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::12",
"metadata": {
"title": "Naomi's Blog"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/blog#3-legal-documentation"
},
{
"content": "License\nThe Application is distributed under **Naomi's Public License** as indicated in the source code headers.",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::13",
"metadata": {
"title": "Naomi's Blog"
},
"title": "License",
"url": "https://docs.nhcarrigan.com/projects/blog#license"
},
{
"content": "Copyright\nAll source code is copyright © nhcarrigan (Naomi Carrigan).",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::14",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Copyright",
"url": "https://docs.nhcarrigan.com/projects/blog#copyright"
},
{
"content": "Third-Party Dependencies\nThe Application uses the following open-source libraries:\n- **Next.js**: MIT License\n- **React**: MIT License \n- **TypeScript**: Apache License 2.0\n- **Tailwind CSS**: MIT License\n- **gray-matter**: MIT License\n- **react-markdown**: MIT License\n- **rehype-raw**: MIT License\n- **remark-gfm**: MIT License",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::15",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Third-Party Dependencies",
"url": "https://docs.nhcarrigan.com/projects/blog#third-party-dependencies"
},
{
"content": "Content Policy\nBlog post content represents the personal opinions and experiences of the author. Content guidelines and policies specific to this Application may be added here as needed.",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::16",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Content Policy",
"url": "https://docs.nhcarrigan.com/projects/blog#content-policy"
},
{
"content": "4. Contributing Documentation",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::17",
"metadata": {
"title": "Naomi's Blog"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/blog#4-contributing-documentation"
},
{
"content": "Development Guidelines\n- **Code Style**: ESLint configuration (`@nhcarrigan/eslint-config`) enforces consistent formatting\n- **Type Safety**: All code must pass TypeScript checks with no warnings\n- **Testing**: Run `pnpm lint` to verify code standards (note: test suite is pending implementation)",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::18",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Development Guidelines",
"url": "https://docs.nhcarrigan.com/projects/blog#development-guidelines"
},
{
"content": "Code Organization\n- **Components**: React components go in `src/components/`\n- **Utilities**: Helper functions belong in `src/lib/`\n- **Pages**: Follow Next.js App Router conventions in `src/app/`\n- **Styles**: Global styles in `src/app/globals.css`, component styles via Tailwind classes",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::19",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Code Organization",
"url": "https://docs.nhcarrigan.com/projects/blog#code-organization"
},
{
"content": "Pull Request Process\n1. **Fork & Branch**: Create feature branches from main\n2. **Code Quality**: Ensure ESLint passes with zero warnings\n3. **Type Safety**: All TypeScript must compile without errors\n4. **Documentation**: Update relevant documentation for significant changes\n5. **Testing**: Verify the application builds and runs correctly",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::20",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Pull Request Process",
"url": "https://docs.nhcarrigan.com/projects/blog#pull-request-process"
},
{
"content": "File Header Requirements\nAll source files must include the standard copyright header:\n```typescript\n/**\n * @copyright nhcarrigan\n * @license Naomi's Public License\n * @author Naomi Carrigan\n */\n```",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::21",
"metadata": {
"title": "Naomi's Blog"
},
"title": "File Header Requirements",
"url": "https://docs.nhcarrigan.com/projects/blog#file-header-requirements"
},
{
"content": "Dependency Management\n- Use `pnpm` for package management\n- Keep dependencies up to date and security-focused\n- Prefer established, well-maintained packages\n- Document any new dependencies and their purpose",
"file": "src/content/docs/projects/blog.md",
"id": "src/content/docs/projects/blog.md::22",
"metadata": {
"title": "Naomi's Blog"
},
"title": "Dependency Management",
"url": "https://docs.nhcarrigan.com/projects/blog#dependency-management"
},
{
"content": "Celestine (hereinafter the \"Application\") is a comprehensive paid moderation bot for Discord servers, built with TypeScript and Discord.js. The Application provides advanced moderation tools, automated security features, leveling systems, birthday celebrations, and comprehensive logging capabilities. It includes a web server for health monitoring and metrics, integrates with MongoDB for data persistence, and features a subscription-based access model.",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::0",
"metadata": {
"title": "Celestine"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/celestine#"
},
{
"content": "1. User Documentation",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::1",
"metadata": {
"title": "Celestine"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/celestine#1-user-documentation"
},
{
"content": "Core Features",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::2",
"metadata": {
"title": "Celestine"
},
"title": "Core Features",
"url": "https://docs.nhcarrigan.com/projects/celestine#core-features"
},
{
"content": "Moderation Commands\n- **`/ban`** - Ban users from the server with optional message pruning and evidence links\n- **`/unban`** - Remove bans from users with logging and notification systems\n- **`/kick`** - Remove users from the server temporarily\n- **`/mute`** - Temporarily restrict user communication with duration controls (minutes, hours, days, weeks)\n- **`/unmute`** - Remove communication restrictions from users\n- **`/warn`** - Issue warnings to users with evidence tracking\n- **`/note`** - Add private moderation notes about users\n- **`/softban`** - Ban and immediately unban to clean up user messages\n- **`/massban`** - Ban multiple users at once using a list of user IDs",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::3",
"metadata": {
"title": "Celestine"
},
"title": "Moderation Commands",
"url": "https://docs.nhcarrigan.com/projects/celestine#moderation-commands"
},
{
"content": "Server Management\n- **`/lockdown`** - Lock text channels to prevent message sending\n- **`/unlock`** - Remove lockdown restrictions from channels\n- **`/prune`** - Bulk delete messages from channels\n- **`/secure`** - Toggle server-wide DM and invite restrictions for new members",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::4",
"metadata": {
"title": "Celestine"
},
"title": "Server Management",
"url": "https://docs.nhcarrigan.com/projects/celestine#server-management"
},
{
"content": "Configuration System\n- **`/config list`** - View current server configuration\n- **`/config logging`** - Set up moderation and event log channels\n- **`/config invite-link`** - Configure invite links sent to kicked users\n- **`/config appeal-link`** - Set ban appeal links for banned users\n- **`/config roles`** - Toggle roles as self-assignable\n- **`/config join-role`** - Set automatic role assignment for new members\n- **`/config birthday-channel`** - Configure birthday celebration channel",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::5",
"metadata": {
"title": "Celestine"
},
"title": "Configuration System",
"url": "https://docs.nhcarrigan.com/projects/celestine#configuration-system"
},
{
"content": "User Experience Features\n- **`/rank`** - View personal level and XP in the server\n- **`/leaderboard`** - Browse server level rankings with pagination\n- **`/profile`** - Customize profile appearance (avatar, colors, background)\n- **`/role`** - Self-assign permitted roles\n- **`/birthday`** - Set birthday for automatic celebrations\n- **`/level-role`** - Configure roles automatically assigned at specific levels",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::6",
"metadata": {
"title": "Celestine"
},
"title": "User Experience Features",
"url": "https://docs.nhcarrigan.com/projects/celestine#user-experience-features"
},
{
"content": "Administrative Tools\n- **`/cases`** - View specific moderation case details\n- **`/history`** - View comprehensive user moderation history\n- **`/help`** - Get bot information, version details, and support links\n- **`/ping`** - Check bot latency and database connectivity",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::7",
"metadata": {
"title": "Celestine"
},
"title": "Administrative Tools",
"url": "https://docs.nhcarrigan.com/projects/celestine#administrative-tools"
},
{
"content": "Context Menu Actions\n- **Report Message** - Right-click context menu to report problematic messages",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::8",
"metadata": {
"title": "Celestine"
},
"title": "Context Menu Actions",
"url": "https://docs.nhcarrigan.com/projects/celestine#context-menu-actions"
},
{
"content": "Automated Features",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::9",
"metadata": {
"title": "Celestine"
},
"title": "Automated Features",
"url": "https://docs.nhcarrigan.com/projects/celestine#automated-features"
},
{
"content": "Leveling System\n- Automatic XP gain from message activity with anti-spam cooldowns\n- Customizable level roles that auto-assign at specified levels\n- Visual profile cards with customizable backgrounds and colors\n- Server leaderboards with pagination",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::10",
"metadata": {
"title": "Celestine"
},
"title": "Leveling System",
"url": "https://docs.nhcarrigan.com/projects/celestine#leveling-system"
},
{
"content": "Security & Moderation\n- Automatic detection and removal of known spam domains\n- Automatic muting of compromised accounts posting malicious links\n- Comprehensive audit logging for all moderation actions\n- Member join/leave tracking with configurable logging",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::11",
"metadata": {
"title": "Celestine"
},
"title": "Security & Moderation",
"url": "https://docs.nhcarrigan.com/projects/celestine#security-&-moderation"
},
{
"content": "Event Logging\n- Message edit/delete tracking with content preservation\n- Voice channel activity monitoring\n- Member update tracking (nickname, role changes)\n- Moderation action logging with evidence and case numbers",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::12",
"metadata": {
"title": "Celestine"
},
"title": "Event Logging",
"url": "https://docs.nhcarrigan.com/projects/celestine#event-logging"
},
{
"content": "Birthday System\n- Automatic birthday wishes in designated channels\n- Scheduled daily birthday checks\n- User-configurable birthday dates with validation",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::13",
"metadata": {
"title": "Celestine"
},
"title": "Birthday System",
"url": "https://docs.nhcarrigan.com/projects/celestine#birthday-system"
},
{
"content": "Access Control\n- Subscription-based access model ($5/month)\n- Permission-based command restrictions\n- Moderator role validation for administrative commands\n- Granular configuration permissions\n\nThis section is for those interacting with a live instance of the Application.",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::14",
"metadata": {
"title": "Celestine"
},
"title": "Access Control",
"url": "https://docs.nhcarrigan.com/projects/celestine#access-control"
},
{
"content": "2. Technical Documentation",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::15",
"metadata": {
"title": "Celestine"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/celestine#2-technical-documentation"
},
{
"content": "Architecture Overview\n\nCelestine is built as a modern Discord bot using:\n- **Runtime**: Node.js with TypeScript\n- **Discord Library**: Discord.js v14\n- **Database**: MongoDB with Prisma ORM\n- **Web Server**: Express.js for health endpoints\n- **Monitoring**: Prometheus metrics integration\n- **Scheduling**: Node-schedule for automated tasks",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::16",
"metadata": {
"title": "Celestine"
},
"title": "Architecture Overview",
"url": "https://docs.nhcarrigan.com/projects/celestine#architecture-overview"
},
{
"content": "Project Structure\n\n```\nsrc/\n├── commands/ # Slash command implementations\n├── contexts/ # Context menu command handlers\n├── events/ # Discord event handlers\n│ ├── client/ # Bot lifecycle events\n│ ├── guild/ # Server-related events\n│ ├── interaction/ # Command interaction handling\n│ ├── member/ # Member join/leave/update events\n│ ├── message/ # Message create/edit/delete events\n│ ├── thread/ # Thread-related events\n│ └── voice/ # Voice state change events\n├── interfaces/ # TypeScript type definitions\n├── modules/ # Reusable business logic\n│ ├── commands/ # Command-specific modules\n│ ├── data/ # Database interaction modules\n│ ├── events/ # Event processing modules\n│ ├── interactions/ # Interaction handling modules\n│ ├── modals/ # Modal form handlers\n│ └── subcommands/ # Subcommand implementations\n├── server/ # Web server and health endpoints\n├── utils/ # Utility functions and helpers\n├── config/ # Configuration constants\n└── database/ # Database connection setup\n```",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::17",
"metadata": {
"title": "Celestine"
},
"title": "Project Structure",
"url": "https://docs.nhcarrigan.com/projects/celestine#project-structure"
},
{
"content": "Database Schema\n\nThe application uses MongoDB with the following key models:",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::18",
"metadata": {
"title": "Celestine"
},
"title": "Database Schema",
"url": "https://docs.nhcarrigan.com/projects/celestine#database-schema"
},
{
"content": "Core Data Models\n- **`cases`** - Moderation case tracking with evidence and timestamps\n- **`configs`** - Per-server configuration settings\n- **`levels`** - User XP and level progression data\n- **`levelRoles`** - Automatic role assignments by level\n- **`roles`** - Self-assignable role permissions\n- **`birthdays`** - User birthday tracking\n- **`entitlements`** - Server subscription management\n- **`security`** - Server security settings (DM/invite restrictions)",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::19",
"metadata": {
"title": "Celestine"
},
"title": "Core Data Models",
"url": "https://docs.nhcarrigan.com/projects/celestine#core-data-models"
},
{
"content": "Key Features of Data Layer\n- Unique constraints for data integrity\n- Indexed queries for performance\n- Automatic relationship management\n- Soft deletion support for case history",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::20",
"metadata": {
"title": "Celestine"
},
"title": "Key Features of Data Layer",
"url": "https://docs.nhcarrigan.com/projects/celestine#key-features-of-data-layer"
},
{
"content": "Development Setup",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::21",
"metadata": {
"title": "Celestine"
},
"title": "Development Setup",
"url": "https://docs.nhcarrigan.com/projects/celestine#development-setup"
},
{
"content": "Prerequisites\n- Node.js 18+\n- MongoDB instance\n- Discord Bot Token\n- TypeScript compiler",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::22",
"metadata": {
"title": "Celestine"
},
"title": "Prerequisites",
"url": "https://docs.nhcarrigan.com/projects/celestine#prerequisites"
},
{
"content": "Environment Variables\n```bash\nTOKEN=<discord_bot_token>\nMONGO_URI=<mongodb_connection_string>\nDEBUG_HOOK=<discord_webhook_url>\nDEV_MODE=<boolean>\n```",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::23",
"metadata": {
"title": "Celestine"
},
"title": "Environment Variables",
"url": "https://docs.nhcarrigan.com/projects/celestine#environment-variables"
},
{
"content": "Build Process\n```bash\nnpm install # Install dependencies\nnpm run prebuild # Clean build directory and generate Prisma client\nnpm run build # Compile TypeScript to JavaScript\nnpm start # Run the bot\n```",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::24",
"metadata": {
"title": "Celestine"
},
"title": "Build Process",
"url": "https://docs.nhcarrigan.com/projects/celestine#build-process"
},
{
"content": "Development Scripts\n- `npm run lint` - ESLint and Prettier validation\n- `npm run audit` - Dependency and code analysis with Knip\n- `npm run scan` - SonarCloud quality analysis",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::25",
"metadata": {
"title": "Celestine"
},
"title": "Development Scripts",
"url": "https://docs.nhcarrigan.com/projects/celestine#development-scripts"
},
{
"content": "Web Server Endpoints\n\nThe bot includes an Express.js server providing:",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::26",
"metadata": {
"title": "Celestine"
},
"title": "Web Server Endpoints",
"url": "https://docs.nhcarrigan.com/projects/celestine#web-server-endpoints"
},
{
"content": "Health & Status\n- **`GET /`** - HTML landing page with bot information and invite links\n- **`GET /metrics`** - Prometheus metrics endpoint for monitoring",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::27",
"metadata": {
"title": "Celestine"
},
"title": "Health & Status",
"url": "https://docs.nhcarrigan.com/projects/celestine#health-&-status"
},
{
"content": "Integration Points",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::28",
"metadata": {
"title": "Celestine"
},
"title": "Integration Points",
"url": "https://docs.nhcarrigan.com/projects/celestine#integration-points"
},
{
"content": "Discord API\n- Slash commands and context menus\n- Webhook integrations for logging\n- Permission validation\n- Message content scanning",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::29",
"metadata": {
"title": "Celestine"
},
"title": "Discord API",
"url": "https://docs.nhcarrigan.com/projects/celestine#discord-api"
},
{
"content": "External Services\n- GitHub integration for version tracking\n- Prometheus metrics collection\n- MongoDB Atlas for cloud database\n- 1Password for secrets management",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::30",
"metadata": {
"title": "Celestine"
},
"title": "External Services",
"url": "https://docs.nhcarrigan.com/projects/celestine#external-services"
},
{
"content": "Monitoring & Observability",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::31",
"metadata": {
"title": "Celestine"
},
"title": "Monitoring & Observability",
"url": "https://docs.nhcarrigan.com/projects/celestine#monitoring-&-observability"
},
{
"content": "Logging\n- Winston-based structured logging\n- Error tracking with unique identifiers\n- Debug message routing to Discord webhooks\n- Comprehensive audit trails",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::32",
"metadata": {
"title": "Celestine"
},
"title": "Logging",
"url": "https://docs.nhcarrigan.com/projects/celestine#logging"
},
{
"content": "Metrics\n- Prometheus integration for performance monitoring\n- Database latency tracking\n- Command usage statistics\n- Server count and member tracking",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::33",
"metadata": {
"title": "Celestine"
},
"title": "Metrics",
"url": "https://docs.nhcarrigan.com/projects/celestine#metrics"
},
{
"content": "Security Considerations",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::34",
"metadata": {
"title": "Celestine"
},
"title": "Security Considerations",
"url": "https://docs.nhcarrigan.com/projects/celestine#security-considerations"
},
{
"content": "Access Control\n- Subscription validation for server access\n- Permission-based command restrictions\n- Rate limiting through Discord.js built-ins\n- Input validation and sanitization",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::35",
"metadata": {
"title": "Celestine"
},
"title": "Access Control",
"url": "https://docs.nhcarrigan.com/projects/celestine#access-control"
},
{
"content": "Data Protection\n- Encrypted database connections\n- Secure environment variable handling\n- Minimal data retention policies\n- Privacy-conscious logging practices\n\nThis section is for those interested in running their own instance of the Application.",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::36",
"metadata": {
"title": "Celestine"
},
"title": "Data Protection",
"url": "https://docs.nhcarrigan.com/projects/celestine#data-protection"
},
{
"content": "3. Legal Documentation",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::37",
"metadata": {
"title": "Celestine"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/celestine#3-legal-documentation"
},
{
"content": "Subscription Model\nCelestine operates as a paid service with a $5/month subscription fee per Discord server. This subscription model ensures:\n- Sustainable development and maintenance\n- Priority support for subscribers\n- Regular feature updates and improvements\n- Infrastructure costs coverage",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::38",
"metadata": {
"title": "Celestine"
},
"title": "Subscription Model",
"url": "https://docs.nhcarrigan.com/projects/celestine#subscription-model"
},
{
"content": "Data Handling\nThe Application processes and stores:\n- Discord user IDs and server IDs\n- Message content for moderation purposes (temporary)\n- User-configured profile information\n- Moderation case history and evidence links\n- Server configuration preferences",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::39",
"metadata": {
"title": "Celestine"
},
"title": "Data Handling",
"url": "https://docs.nhcarrigan.com/projects/celestine#data-handling"
},
{
"content": "Service Availability\n- Best-effort uptime with monitoring systems\n- Planned maintenance notifications\n- Support through designated Discord server\n- Community-driven feedback and feature requests",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::40",
"metadata": {
"title": "Celestine"
},
"title": "Service Availability",
"url": "https://docs.nhcarrigan.com/projects/celestine#service-availability"
},
{
"content": "4. Contributing Documentation",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::41",
"metadata": {
"title": "Celestine"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/celestine#4-contributing-documentation"
},
{
"content": "Development Workflow",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::42",
"metadata": {
"title": "Celestine"
},
"title": "Development Workflow",
"url": "https://docs.nhcarrigan.com/projects/celestine#development-workflow"
},
{
"content": "Code Standards\n- TypeScript for type safety\n- ESLint and Prettier for code formatting\n- Comprehensive error handling with unique error IDs\n- JSDoc documentation for public interfaces",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::43",
"metadata": {
"title": "Celestine"
},
"title": "Code Standards",
"url": "https://docs.nhcarrigan.com/projects/celestine#code-standards"
},
{
"content": "Testing Strategy\n- Integration testing with Discord API\n- Database transaction testing\n- Command validation testing\n- Performance benchmarking",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::44",
"metadata": {
"title": "Celestine"
},
"title": "Testing Strategy",
"url": "https://docs.nhcarrigan.com/projects/celestine#testing-strategy"
},
{
"content": "Pull Request Process\n1. Fork the repository\n2. Create feature branch from main\n3. Implement changes with tests\n4. Ensure linting and build passes\n5. Submit PR with detailed description\n6. Address review feedback\n7. Merge after approval",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::45",
"metadata": {
"title": "Celestine"
},
"title": "Pull Request Process",
"url": "https://docs.nhcarrigan.com/projects/celestine#pull-request-process"
},
{
"content": "Architecture Decisions\n- Modular command structure for maintainability\n- Event-driven architecture for real-time responses\n- Database abstraction through Prisma ORM\n- Configuration-driven behavior customization",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::46",
"metadata": {
"title": "Celestine"
},
"title": "Architecture Decisions",
"url": "https://docs.nhcarrigan.com/projects/celestine#architecture-decisions"
},
{
"content": "Extension Points",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::47",
"metadata": {
"title": "Celestine"
},
"title": "Extension Points",
"url": "https://docs.nhcarrigan.com/projects/celestine#extension-points"
},
{
"content": "Adding New Commands\n1. Create command file in `src/commands/`\n2. Implement Command interface\n3. Add to command loader\n4. Update permissions if needed\n5. Add documentation",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::48",
"metadata": {
"title": "Celestine"
},
"title": "Adding New Commands",
"url": "https://docs.nhcarrigan.com/projects/celestine#adding-new-commands"
},
{
"content": "Custom Event Handlers\n1. Create handler in appropriate `src/events/` subdirectory\n2. Implement error handling\n3. Add to event registration system\n4. Test with Discord API",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::49",
"metadata": {
"title": "Celestine"
},
"title": "Custom Event Handlers",
"url": "https://docs.nhcarrigan.com/projects/celestine#custom-event-handlers"
},
{
"content": "Database Schema Changes\n1. Update Prisma schema\n2. Generate migration\n3. Test migration on development database\n4. Update TypeScript interfaces\n5. Implement backward compatibility",
"file": "src/content/docs/projects/celestine.md",
"id": "src/content/docs/projects/celestine.md::50",
"metadata": {
"title": "Celestine"
},
"title": "Database Schema Changes",
"url": "https://docs.nhcarrigan.com/projects/celestine#database-schema-changes"
},
{
"content": "Cordelia Taryne (hereinafter the \"Application\") is an AI-powered multi-purpose assistant Discord bot that leverages Anthropic's Claude AI to provide various text processing, analysis, and assistance features. The bot features a distinctive vampire personality named Cordelia with haughty and self-inflated characteristics, providing users with intelligent assistance while maintaining a unique character persona.",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::0",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#"
},
{
"content": "1. User Documentation\n\nThis section is for those interacting with a live instance of the Application.",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::1",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#1-user-documentation"
},
{
"content": "Getting Started\n\nTo use Cordelia Taryne, [add her to your Discord account](https://discord.com/oauth2/authorize?client_id=1338664192714211459).",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::2",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Getting Started",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#getting-started"
},
{
"content": "Available Commands\n\nCordelia Taryne offers the following slash commands:",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::3",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Available Commands",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#available-commands"
},
{
"content": "`/about`\n- **Description**: Learn more about the bot\n- **Usage**: Simply run `/about` to get information about the bot, including version and commit details\n- **Access**: Available to all users",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::4",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "`/about`",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#`/about`"
},
{
"content": "`/query`\n- **Description**: Ask Cordelia a general question\n- **Parameters**: `prompt` (required, max 2000 characters) - The question you would like to ask\n- **Usage**: `/query prompt: What is the capital of France?`\n- **Access**: Requires active subscription",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::5",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "`/query`",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#`/query`"
},
{
"content": "`/alt-text`\n- **Description**: Generate descriptive and accessible alt-text for images\n- **Parameters**: `image` (required) - The image file to generate alt-text for\n- **Supported formats**: JPG, JPEG, PNG, GIF, WEBP\n- **Limitations**: Maximum 5MB file size, maximum 8000px dimensions\n- **Usage**: Upload an image and run `/alt-text image: [your-image]`\n- **Access**: Requires active subscription",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::6",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "`/alt-text`",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#`/alt-text`"
},
{
"content": "`/eval`\n- **Description**: Have Cordelia evaluate and run code snippets\n- **Parameters**: `code` (required, max 2000 characters) - The code to evaluate\n- **Usage**: `/eval code: 2 + 2 * 3`\n- **Access**: Requires active subscription",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::7",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "`/eval`",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#`/eval`"
},
{
"content": "`/mood`\n- **Description**: Analyze the sentiment and mood of text passages\n- **Parameters**: `text` (required, max 2000 characters) - The text to analyze\n- **Usage**: `/mood text: I had an amazing day at the beach!`\n- **Access**: Requires active subscription",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::8",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "`/mood`",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#`/mood`"
},
{
"content": "`/proofread`\n- **Description**: Have Cordelia proofread text for grammar and style\n- **Parameters**: `text` (required, max 2000 characters) - The text to proofread\n- **Usage**: `/proofread text: This are my essay about science.`\n- **Access**: Requires active subscription",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::9",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "`/proofread`",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#`/proofread`"
},
{
"content": "`/summarise`\n- **Description**: Generate concise summaries of longer text passages\n- **Parameters**: `text` (required, max 2000 characters) - The text to summarize\n- **Usage**: `/summarise text: [long article or document text]`\n- **Access**: Requires active subscription",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::10",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "`/summarise`",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#`/summarise`"
},
{
"content": "Subscription Model\n\nMost features require an active subscription. The bot uses Discord's premium subscription system:\n- Free users can access the `/about` command\n- Subscribers gain access to all AI-powered features\n- Bot owner (developer) has unlimited access for testing and maintenance",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::11",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Subscription Model",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#subscription-model"
},
{
"content": "Personality\n\nCordelia has a distinctive personality:\n- **Character**: A vampire assistant with a haughty and self-inflated demeanour\n- **Appearance**: Blonde hair in twin buns, pink-red cat-like eyes, pale skin, gold dress\n- **Behavior**: Subtly condescending but never directly rude or insulting\n- **Communication**: Professional assistance without role-playing text",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::12",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Personality",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#personality"
},
{
"content": "Support and Feedback\n\n- **Bug Reports**: Open a GitHub issue\n- **Feature Requests**: Create a GitHub issue with the enhancement label\n- **General Support**: Visit the [chat server](http://chat.nhcarrigan.com)\n- **Contact**: Email `contact@nhcarrigan.com`",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::13",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Support and Feedback",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#support-and-feedback"
},
{
"content": "2. Technical Documentation\n\nThis section is for those interested in running their own instance of the Application.",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::14",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#2-technical-documentation"
},
{
"content": "Architecture Overview\n\nCordelia Taryne is built with:\n- **Runtime**: Node.js with TypeScript\n- **Discord Library**: discord.js v14\n- **AI Provider**: Anthropic Claude API (Claude Sonnet 4)\n- **Web Server**: Fastify (for status page)\n- **Package Manager**: pnpm\n- **Build System**: TypeScript compiler",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::15",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Architecture Overview",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#architecture-overview"
},
{
"content": "System Requirements\n\n- Node.js 22+ \n- pnpm package manager\n- Git for version control\n- Environment variable management (1Password recommended)",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::16",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "System Requirements",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#system-requirements"
},
{
"content": "Environment Variables\n\nRequired environment variables:\n- `DISCORD_TOKEN`: Discord bot token\n- `AI_TOKEN`: Anthropic API key\n- `npm_package_version`: Application version (auto-set by npm/pnpm)",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::17",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Environment Variables",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#environment-variables"
},
{
"content": "Installation and Setup\n\n1. **Clone the repository**:\n ```bash\n git clone https://github.com/nhcarrigan/cordelia-taryne.git\n cd cordelia-taryne\n ```\n\n2. **Install dependencies**:\n ```bash\n pnpm install\n ```\n\n3. **Set up environment variables**:\n - Create a `prod.env` file with required variables\n - Configure 1Password CLI for secure environment management\n\n4. **Build the application**:\n ```bash\n pnpm run build\n ```\n\n5. **Deploy slash commands**:\n ```bash\n node prod/commands/[command-name].js\n ```\n\n6. **Start the application**:\n ```bash\n pnpm start\n ```",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::18",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Installation and Setup",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#installation-and-setup"
},
{
"content": "Project Structure\n\n```\nsrc/\n├── index.ts # Main application entry point\n├── commands/ # Slash command definitions\n├── modules/ # Command implementation logic\n├── config/\n│ └── personality.ts # Bot personality configuration\n├── server/\n│ └── serve.ts # Web server for status page\n└── utils/ # Utility functions\n ├── ai.ts # Anthropic AI client\n ├── calculateCost.ts # Usage cost calculation\n ├── isSubscribed.ts # Subscription validation\n ├── logger.ts # Logging utilities\n └── replyToError.ts # Error handling\n```",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::19",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Project Structure",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#project-structure"
},
{
"content": "Development Workflow\n\n1. **Linting**: `pnpm run lint`\n2. **Building**: `pnpm run build`\n3. **Development**: Make changes in `src/`, build, and test\n4. **Deployment**: Use the build artifacts in `prod/`",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::20",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Development Workflow",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#development-workflow"
},
{
"content": "API Integration\n\nThe bot integrates with:\n- **Discord API**: For bot functionality and user interactions\n- **Anthropic API**: For AI-powered text processing\n- **Discord Premium**: For subscription management",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::21",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "API Integration",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#api-integration"
},
{
"content": "Monitoring and Logging\n\n- Uses `@nhcarrigan/logger` for structured logging\n- Tracks API usage and costs for each command\n- Monitors subscription events (create/delete)\n- Error handling with automatic logging",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::22",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Monitoring and Logging",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#monitoring-and-logging"
},
{
"content": "Security Considerations\n\n- All AI interactions are ephemeral (private responses)\n- Subscription validation before AI API calls\n- Input validation and sanitization\n- Secure environment variable management\n- Rate limiting through Discord's built-in mechanisms",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::23",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Security Considerations",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#security-considerations"
},
{
"content": "3. Legal Documentation\n\nThis section is for expansions to our legal policies specific to the Application.",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::24",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#3-legal-documentation"
},
{
"content": "Data Processing\n\n- **User Data**: Discord user IDs are logged for usage tracking\n- **Content Processing**: Text and images are sent to Anthropic for processing\n- **Retention**: Logs are retained according to standard practices\n- **Privacy**: All interactions are ephemeral and not stored permanently",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::25",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Data Processing",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#data-processing"
},
{
"content": "Third-Party Services\n\nThe Application integrates with:\n- **Discord**: User authentication and interaction handling\n- **Anthropic**: AI text and image processing\n- **1Password**: Secure environment variable management",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::26",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Third-Party Services",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#third-party-services"
},
{
"content": "Subscription Terms\n\n- Subscriptions are managed through Discord's premium system\n- Features are gated behind active subscription status\n- Bot owner maintains unlimited access for maintenance\n- Usage is tracked and logged for billing transparency",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::27",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Subscription Terms",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#subscription-terms"
},
{
"content": "Intellectual Property\n\n- Bot personality and character design are original creations\n- Source code is licensed under Naomi's Public License\n- Avatar and visual assets are proprietary\n- AI model responses are generated by Anthropic's Claude",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::28",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Intellectual Property",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#intellectual-property"
},
{
"content": "Usage Limits\n\n- Text input limited to 2000 characters per command\n- Image uploads limited to 5MB and 8000px dimensions\n- API usage tracked and billed to service operator\n- Fair use policies apply to prevent abuse",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::29",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Usage Limits",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#usage-limits"
},
{
"content": "4. Contributing Documentation\n\nThis section is for documentation related to contributing to the Application's codebase.",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::30",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#4-contributing-documentation"
},
{
"content": "Getting Started\n\n1. **Read the Guidelines**: Review `CONTRIBUTING.md` and `CODE_OF_CONDUCT.md`\n2. **Fork the Repository**: Create your own fork on GitHub\n3. **Set Up Development Environment**: Follow technical documentation setup\n4. **Create Feature Branch**: Use descriptive branch names",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::31",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Getting Started",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#getting-started"
},
{
"content": "Development Standards",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::32",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Development Standards",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#development-standards"
},
{
"content": "Code Quality\n- **TypeScript**: Strict typing required\n- **ESLint**: Must pass linting with zero warnings (`pnpm run lint`)\n- **Formatting**: Follow established code style\n- **Comments**: JSDoc comments for all public functions",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::33",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Code Quality",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#code-quality"
},
{
"content": "Architecture Patterns\n- **Command Pattern**: Separate command definitions from implementations\n- **Module Separation**: Clear separation between Discord logic and AI logic\n- **Error Handling**: Comprehensive error handling with logging\n- **Type Safety**: Proper TypeScript types throughout",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::34",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Architecture Patterns",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#architecture-patterns"
},
{
"content": "File Structure Conventions\n```\nsrc/\n├── commands/[name].ts # Discord command definitions\n├── modules/[name].ts # Command implementation logic\n├── utils/[name].ts # Shared utilities\n└── config/[name].ts # Configuration files\n```",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::35",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "File Structure Conventions",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#file-structure-conventions"
},
{
"content": "Contribution Process\n\n1. **Issue Creation**: Create detailed GitHub issues for bugs/features\n2. **Discussion**: Discuss approach before starting work\n3. **Implementation**: Follow coding standards and patterns\n4. **Testing**: Test thoroughly in development environment\n5. **Pull Request**: Create detailed PR with description and testing notes\n6. **Review**: Address feedback from maintainers\n7. **Merge**: Maintainers will merge approved changes",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::36",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Contribution Process",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#contribution-process"
},
{
"content": "Testing Guidelines\n\n- **Manual Testing**: Test all command paths and error cases\n- **Integration Testing**: Verify Discord and Anthropic integrations\n- **Subscription Testing**: Test both subscribed and unsubscribed flows\n- **Error Scenarios**: Test network failures, API errors, and edge cases",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::37",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Testing Guidelines",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#testing-guidelines"
},
{
"content": "Feature Development",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::38",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Feature Development",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#feature-development"
},
{
"content": "Adding New Commands\n1. Create command definition in `src/commands/[name].ts`\n2. Implement logic in `src/modules/[name].ts`\n3. Add command to main handler in `src/index.ts`\n4. Test subscription gating and error handling\n5. Update documentation",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::39",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Adding New Commands",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#adding-new-commands"
},
{
"content": "Modifying AI Behavior\n1. Update personality configuration if needed\n2. Modify system prompts in relevant modules\n3. Test with various inputs and edge cases\n4. Consider cost implications of changes",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::40",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Modifying AI Behavior",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#modifying-ai-behavior"
},
{
"content": "Code Review Standards\n\n- **Functionality**: Does the code work as intended?\n- **Style**: Does it follow established patterns?\n- **Security**: Are there any security concerns?\n- **Performance**: Are there efficiency improvements?\n- **Documentation**: Are changes properly documented?",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::41",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Code Review Standards",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#code-review-standards"
},
{
"content": "Release Process\n\n1. **Version Bump**: Update version in `package.json`\n2. **Build**: Ensure clean build with `pnpm run build`\n3. **Testing**: Comprehensive testing of new features\n4. **Documentation**: Update relevant documentation\n5. **Deployment**: Deploy to production environment\n6. **Monitoring**: Monitor for issues post-deployment",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::42",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Release Process",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#release-process"
},
{
"content": "Community Guidelines\n\n- **Respectful Communication**: Follow Code of Conduct\n- **Constructive Feedback**: Provide helpful, actionable feedback\n- **Collaboration**: Work together to improve the project\n- **Learning**: Help others learn and grow\n- **Recognition**: Credit contributors appropriately\n\nFor more detailed contributing information, see the `CONTRIBUTING.md` file in the repository.",
"file": "src/content/docs/projects/cordelia-taryne.md",
"id": "src/content/docs/projects/cordelia-taryne.md::43",
"metadata": {
"title": "Cordelia Taryne"
},
"title": "Community Guidelines",
"url": "https://docs.nhcarrigan.com/projects/cordelia-taryne#community-guidelines"
},
{
"content": "NHCarrigan Documentation Site (hereinafter the \"Application\") is a comprehensive documentation website built with Astro and Starlight that serves as the central hub for all documentation related to NHCarrigan's projects, policies, and services. The site provides organized access to technical documentation, legal policies, community guidelines, and project-specific information across multiple categories including Discord bots, web applications, libraries, and development tools. The Application features a custom-themed interface with accessibility considerations, analytics integration, and environmental sustainability features.",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::0",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/docs#"
},
{
"content": "1. User Documentation",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::1",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/docs#1-user-documentation"
},
{
"content": "Site Structure and Navigation\n\nThe Application is organized into several main sections accessible via the sidebar navigation:\n\n- **About Us**: Mission statement, sustainability information, hiring, donations, contact, and mentorship\n- **Legal Information**: Terms of service, privacy policy, software license, security policy, DMCA information, subprocessors list, and government actions\n- **Community Policies**: Code of conduct, community guidelines, and appeal process\n- **Development Documentation**: Contributing guide, contributor covenant, style guide, issue/PR labels, development environment, server setup, and VTubing setup\n- **Project Documentation**: Comprehensive documentation for all NHCarrigan projects including Discord bots, web applications, libraries, and tools\n- **Staff Guidelines**: Staff handbook and team application information\n- **Miscellaneous Documents**: Additional resources like music management guides",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::2",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Site Structure and Navigation",
"url": "https://docs.nhcarrigan.com/projects/docs#site-structure-and-navigation"
},
{
"content": "Key Features",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::3",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Key Features",
"url": "https://docs.nhcarrigan.com/projects/docs#key-features"
},
{
"content": "Custom Theming\n- Light and dark mode support with automatic detection\n- Custom \"Sakura Dreams\" color scheme with pink/purple tones\n- Accessibility features including OpenDyslexic font support\n- Responsive design that works across all devices",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::4",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Custom Theming",
"url": "https://docs.nhcarrigan.com/projects/docs#custom-theming"
},
{
"content": "Enhanced Footer\n- TreeNation carbon offset widget integration for environmental sustainability\n- Direct donation link for supporting the organization\n- Standard Starlight navigation elements (edit links, last updated, pagination)",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::5",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Enhanced Footer",
"url": "https://docs.nhcarrigan.com/projects/docs#enhanced-footer"
},
{
"content": "Analytics and Tracking\n- Privacy-focused Plausible Analytics integration\n- Page view and event tracking for user behavior insights\n- Google AdSense integration for monetization",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::6",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Analytics and Tracking",
"url": "https://docs.nhcarrigan.com/projects/docs#analytics-and-tracking"
},
{
"content": "Content Features\n- Project status badges indicating version and development status\n- Comprehensive search functionality\n- Table of contents for easy navigation within pages\n- Social media links and contact information",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::7",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Content Features",
"url": "https://docs.nhcarrigan.com/projects/docs#content-features"
},
{
"content": "Accessibility\n\nThe Application includes several accessibility features:\n- Semantic HTML structure with proper heading hierarchy\n- OpenDyslexic font support for users with dyslexia\n- High contrast color schemes\n- Keyboard navigation support\n- Screen reader compatible markup",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::8",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Accessibility",
"url": "https://docs.nhcarrigan.com/projects/docs#accessibility"
},
{
"content": "2. Technical Documentation",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::9",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/docs#2-technical-documentation"
},
{
"content": "Architecture Overview\n\nThe Application is built using modern web technologies:\n\n- **Framework**: Astro 5.3.0 - Static site generator for optimal performance\n- **Theme**: Starlight 0.32.0 - Documentation-focused Astro integration\n- **Language**: TypeScript 5.7.3 - Type-safe development\n- **Build Tool**: Native Astro build system with minification and optimization\n- **Package Manager**: PNPM (evidenced by pnpm-lock.yaml)\n- **Hosting**: Static deployment to https://docs.nhcarrigan.com",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::10",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Architecture Overview",
"url": "https://docs.nhcarrigan.com/projects/docs#architecture-overview"
},
{
"content": "Project Structure\n\n```\nsrc/\n├── components/ # Custom Astro components\n│ ├── Footer.astro # Enhanced footer with TreeNation widget and donations\n│ ├── ThemeProvider.astro # Custom theme system with analytics integration\n│ └── navigation.ts # Sidebar navigation configuration\n├── content/ # Documentation content\n│ ├── config.ts # Content collection configuration\n│ └── docs/ # Markdown/MDX documentation files\n│ ├── intro.mdx # Homepage with hero section\n│ ├── about/ # Organization information\n│ ├── community/ # Community policies and guidelines\n│ ├── dev/ # Development documentation\n│ ├── legal/ # Legal policies and terms\n│ ├── misc/ # Miscellaneous resources\n│ ├── projects/ # Project-specific documentation\n│ └── staff/ # Staff guidelines\n├── fonts/ # Custom font files and CSS\n├── pages/ # Astro pages\n│ └── index.astro # Root page with legacy redirect handling\n└── styles/ # Custom styling and themes\n ├── style.css # Global styles and CSS variables\n ├── theme.json # Light theme configuration for code highlighting\n └── theme-dark.json # Dark theme configuration for code highlighting\n\npublic/ # Static assets\n├── favicon.svg # Site favicon\n├── logo.png # NHCarrigan logo\n└── images/ # Project screenshots and documentation images\n```",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::11",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Project Structure",
"url": "https://docs.nhcarrigan.com/projects/docs#project-structure"
},
{
"content": "Configuration Files",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::12",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Configuration Files",
"url": "https://docs.nhcarrigan.com/projects/docs#configuration-files"
},
{
"content": "Astro Configuration (`astro.config.mjs`)\n- Site URL configuration: https://docs.nhcarrigan.com\n- Starlight integration with custom components\n- Custom expressive code themes (Sakura Dreams light/dark)\n- Analytics and tracking script injection\n- TreeNation environmental widget integration\n- Social media links and site metadata\n- Custom CSS and font loading",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::13",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Astro Configuration (`astro.config.mjs`)",
"url": "https://docs.nhcarrigan.com/projects/docs#astro-configuration-(`astroconfigmjs`)"
},
{
"content": "Content Configuration (`src/content/config.ts`)\n- Defines the `docs` collection using Starlight's schema\n- Enables frontmatter validation and type safety",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::14",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Content Configuration (`src/content/config.ts`)",
"url": "https://docs.nhcarrigan.com/projects/docs#content-configuration-(`src/content/configts`)"
},
{
"content": "Navigation Configuration (`src/components/navigation.ts`)\n- Hierarchical sidebar navigation structure\n- Project status badges with version information\n- External links to community resources\n- Organized categorization of all documentation",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::15",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Navigation Configuration (`src/components/navigation.ts`)",
"url": "https://docs.nhcarrigan.com/projects/docs#navigation-configuration-(`src/components/navigationts`)"
},
{
"content": "Custom Components",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::16",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Custom Components",
"url": "https://docs.nhcarrigan.com/projects/docs#custom-components"
},
{
"content": "Footer Component (`src/components/Footer.astro`)\n- Extends Starlight's default footer\n- Integrates TreeNation carbon offset widget\n- Adds donation link with visual call-to-action\n- Maintains standard Starlight footer functionality (edit links, pagination, last updated)",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::17",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Footer Component (`src/components/Footer.astro`)",
"url": "https://docs.nhcarrigan.com/projects/docs#footer-component-(`src/components/footerastro`)"
},
{
"content": "Theme Provider (`src/components/ThemeProvider.astro`)\n- Custom theme switching logic\n- Analytics event tracking integration\n- Theme persistence using localStorage\n- Support for light, dark, and auto modes",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::18",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Theme Provider (`src/components/ThemeProvider.astro`)",
"url": "https://docs.nhcarrigan.com/projects/docs#theme-provider-(`src/components/themeproviderastro`)"
},
{
"content": "Styling System",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::19",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Styling System",
"url": "https://docs.nhcarrigan.com/projects/docs#styling-system"
},
{
"content": "CSS Variables and Theming\n- Custom color scheme using CSS variables\n- Pink/purple \"Sakura Dreams\" theme\n- Dark mode with inverted color palette\n- Background image integration for visual appeal",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::20",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "CSS Variables and Theming",
"url": "https://docs.nhcarrigan.com/projects/docs#css-variables-and-theming"
},
{
"content": "Typography\n- OpenDyslexic font for accessibility\n- Custom font loading via CSS @font-face\n- Consistent typography hierarchy",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::21",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Typography",
"url": "https://docs.nhcarrigan.com/projects/docs#typography"
},
{
"content": "Development Workflow",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::22",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Development Workflow",
"url": "https://docs.nhcarrigan.com/projects/docs#development-workflow"
},
{
"content": "Available Scripts\n- `pnpm dev` / `pnpm start`: Development server on localhost:4321\n- `pnpm build`: Production build to ./dist/\n- `pnpm preview`: Preview production build locally\n- `pnpm lint`: Spell checking with cspell\n- `pnpm scan`: SonarCloud analysis for code quality",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::23",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Available Scripts",
"url": "https://docs.nhcarrigan.com/projects/docs#available-scripts"
},
{
"content": "Code Quality\n- TypeScript strict mode configuration\n- ESLint integration (referenced in project documentation)\n- SonarCloud integration for static analysis\n- Spell checking for documentation content",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::24",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Code Quality",
"url": "https://docs.nhcarrigan.com/projects/docs#code-quality"
},
{
"content": "External Integrations",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::25",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "External Integrations",
"url": "https://docs.nhcarrigan.com/projects/docs#external-integrations"
},
{
"content": "Analytics\n- Plausible Analytics for privacy-focused tracking\n- Custom event tracking for page views and interactions\n- Google AdSense for monetization",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::26",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Analytics",
"url": "https://docs.nhcarrigan.com/projects/docs#analytics"
},
{
"content": "Environmental Sustainability\n- TreeNation carbon offset widget\n- Environmental impact tracking and offsetting",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::27",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Environmental Sustainability",
"url": "https://docs.nhcarrigan.com/projects/docs#environmental-sustainability"
},
{
"content": "Social and Community\n- Links to self-hosted Git instance (git.nhcarrigan.com)\n- Forum integration (forum.nhcarrigan.com)",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::28",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Social and Community",
"url": "https://docs.nhcarrigan.com/projects/docs#social-and-community"
},
{
"content": "Performance and SEO",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::29",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Performance and SEO",
"url": "https://docs.nhcarrigan.com/projects/docs#performance-and-seo"
},
{
"content": "Static Site Generation\n- Pre-built static pages for optimal loading speed\n- Optimized asset delivery\n- Compressed HTML output",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::30",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Static Site Generation",
"url": "https://docs.nhcarrigan.com/projects/docs#static-site-generation"
},
{
"content": "SEO Features\n- Open Graph meta tags for social media sharing\n- Structured navigation for search engine crawling\n- Sitemap generation (external: sitemap.nhcarrigan.com)\n- Proper heading hierarchy and semantic markup",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::31",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "SEO Features",
"url": "https://docs.nhcarrigan.com/projects/docs#seo-features"
},
{
"content": "3. Legal Documentation\n\nThe Application serves as the central repository for all legal documentation related to NHCarrigan's operations and services. This includes:",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::32",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/docs#3-legal-documentation"
},
{
"content": "Comprehensive Legal Coverage\n- **Terms of Service**: User agreements for all NHCarrigan services\n- **Privacy Policy**: Data collection, processing, and user rights\n- **Software License**: Open source licensing for projects\n- **Security Policy**: Vulnerability reporting and security practices\n- **DMCA and Copyright**: Intellectual property policies\n- **Subprocessors List**: Third-party service providers and data processing\n- **Government Actions**: Transparency reporting for legal requests",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::33",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Comprehensive Legal Coverage",
"url": "https://docs.nhcarrigan.com/projects/docs#comprehensive-legal-coverage"
},
{
"content": "Policy Management\n- Centralized location for all legal documents\n- Version control through Git for policy changes\n- Public accessibility for transparency\n- Regular updates reflecting current legal requirements",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::34",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Policy Management",
"url": "https://docs.nhcarrigan.com/projects/docs#policy-management"
},
{
"content": "4. Contributing Documentation",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::35",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/docs#4-contributing-documentation"
},
{
"content": "Development Environment Setup",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::36",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Development Environment Setup",
"url": "https://docs.nhcarrigan.com/projects/docs#development-environment-setup"
},
{
"content": "Prerequisites\n- Node.js (latest LTS version)\n- PNPM package manager\n- Git access to NHCarrigan's self-hosted instance",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::37",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Prerequisites",
"url": "https://docs.nhcarrigan.com/projects/docs#prerequisites"
},
{
"content": "Local Development\n1. Clone the repository from git.nhcarrigan.com\n2. Install dependencies: `pnpm install`\n3. Start development server: `pnpm dev`\n4. Access local site at http://localhost:4321",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::38",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Local Development",
"url": "https://docs.nhcarrigan.com/projects/docs#local-development"
},
{
"content": "Content Contribution Guidelines",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::39",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Content Contribution Guidelines",
"url": "https://docs.nhcarrigan.com/projects/docs#content-contribution-guidelines"
},
{
"content": "Documentation Standards\n- Use Markdown (.md) or MDX (.mdx) for content files\n- Follow established frontmatter schema for consistency\n- Include appropriate metadata (title, description, etc.)\n- Maintain consistent heading hierarchy (h2-h4 in table of contents)",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::40",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Documentation Standards",
"url": "https://docs.nhcarrigan.com/projects/docs#documentation-standards"
},
{
"content": "File Organization\n- Place content in appropriate `/src/content/docs/` subdirectories\n- Use descriptive filenames following kebab-case convention\n- Include project status badges for project documentation\n- Update navigation configuration when adding new sections",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::41",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "File Organization",
"url": "https://docs.nhcarrigan.com/projects/docs#file-organization"
},
{
"content": "Style Guidelines\n- Follow existing documentation patterns\n- Use clear, concise language\n- Include code examples where appropriate\n- Maintain accessibility standards\n- Add project screenshots to `/public/images/` when relevant",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::42",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Style Guidelines",
"url": "https://docs.nhcarrigan.com/projects/docs#style-guidelines"
},
{
"content": "Code Contribution Process",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::43",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Code Contribution Process",
"url": "https://docs.nhcarrigan.com/projects/docs#code-contribution-process"
},
{
"content": "Development Standards\n- TypeScript strict mode compliance\n- Pass spell checking with cspell\n- Follow Astro and Starlight best practices\n- Maintain existing component interfaces",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::44",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Development Standards",
"url": "https://docs.nhcarrigan.com/projects/docs#development-standards"
},
{
"content": "Submission Process\n1. Create feature branch from main\n2. Make changes following style guidelines\n3. Test locally with `pnpm dev`\n4. Run quality checks: `pnpm lint`\n5. Submit pull request to self-hosted Git instance\n6. Await review and approval",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::45",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Submission Process",
"url": "https://docs.nhcarrigan.com/projects/docs#submission-process"
},
{
"content": "Review Criteria\n- Code quality and TypeScript compliance\n- Documentation accuracy and completeness\n- Accessibility compliance\n- Performance impact assessment\n- Security considerations",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::46",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Review Criteria",
"url": "https://docs.nhcarrigan.com/projects/docs#review-criteria"
},
{
"content": "Maintenance and Updates",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::47",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Maintenance and Updates",
"url": "https://docs.nhcarrigan.com/projects/docs#maintenance-and-updates"
},
{
"content": "Regular Maintenance Tasks\n- Update project version badges\n- Refresh project screenshots\n- Review and update legal documents\n- Monitor analytics for user behavior insights\n- Update dependencies and security patches",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::48",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Regular Maintenance Tasks",
"url": "https://docs.nhcarrigan.com/projects/docs#regular-maintenance-tasks"
},
{
"content": "Community Involvement\n- Enable edit links for community contributions\n- Maintain responsive support through various communication channels\n- Encourage feedback through multiple contact methods\n- Regular review of community guidelines and policies",
"file": "src/content/docs/projects/docs.md",
"id": "src/content/docs/projects/docs.md::49",
"metadata": {
"title": "NHCarrigan Documentation Site"
},
"title": "Community Involvement",
"url": "https://docs.nhcarrigan.com/projects/docs#community-involvement"
},
{
"content": "Gwen Abalise (hereinafter the \"Application\") is a Discord bot that provides a private thread-based ticketing system for Discord communities. The bot enables users to create support tickets through a simple button interface, with tickets managed as private threads that include designated support staff roles.",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::0",
"metadata": {
"title": "Gwen Abalise"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#"
},
{
"content": "1. User Documentation\n\nThis section is for those interacting with a live instance of the Application.",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::1",
"metadata": {
"title": "Gwen Abalise"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#1-user-documentation"
},
{
"content": "Getting Started\n\nTo use Gwen Abalise, [add her to your Discord server](https://discord.com/oauth2/authorize?client_id=1343413943447584819).",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::2",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Getting Started",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#getting-started"
},
{
"content": "Commands\n\nThe bot provides three slash commands:\n\n- `/about` - Learn more about the bot, including version information and helpful links\n- `/start <channel>` - Set up the ticket system in a specified text channel (requires MANAGE_GUILD permission)\n- `/role <role>` - Configure which role should be pinged and added to new tickets (requires MANAGE_GUILD permission)",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::3",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Commands",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#commands"
},
{
"content": "Ticket System\n\nThe ticketing system works through a simple button interface:\n1. Administrators use `/start` to place a \"Create Ticket\" button in a channel\n2. Users click the button to open a private thread ticket\n3. The designated support role is automatically added to the thread\n4. Support staff can close tickets using the \"Close Ticket\" button within threads",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::4",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Ticket System",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#ticket-system"
},
{
"content": "Subscription Model\n\nThe bot operates on a subscription model with Discord's premium features:\n- Servers require an active subscription to use the ticketing functionality\n- Entitled guilds (configured in the codebase) have access without subscription\n- Non-subscribed servers receive prompts to subscribe with premium buttons",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::5",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Subscription Model",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#subscription-model"
},
{
"content": "2. Technical Documentation\n\nThis section is for those interested in running their own instance of the Application.",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::6",
"metadata": {
"title": "Gwen Abalise"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#2-technical-documentation"
},
{
"content": "Architecture\n\nThe application is built with:\n- **Runtime**: Node.js with TypeScript\n- **Discord Library**: discord.js v14\n- **Database**: MongoDB with Prisma ORM\n- **Web Server**: Fastify (for health monitoring and landing page)\n- **Logging**: Custom logger utility",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::7",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Architecture",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#architecture"
},
{
"content": "Core Components",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::8",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Core Components",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#core-components"
},
{
"content": "Commands (`src/commands/`)\nCommand definitions for Discord slash commands:\n- `about.ts` - Bot information command\n- `role.ts` - Support role configuration command \n- `start.ts` - Ticket system initialization command",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::9",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Commands (`src/commands/`)",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#commands-(`src/commands/`)"
},
{
"content": "Modules (`src/modules/`)\nBusiness logic implementations:\n- `about.ts` - Displays bot information with action buttons\n- `close.ts` - Handles ticket closure and thread management\n- `open.ts` - Creates new ticket threads and database records\n- `role.ts` - Manages support role configuration\n- `start.ts` - Sets up ticket creation interface in channels",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::10",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Modules (`src/modules/`)",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#modules-(`src/modules/`)"
},
{
"content": "Utilities (`src/utils/`)\n- `isSubscribed.ts` - Validates server subscription status\n- `logger.ts` - Logging functionality\n- `replyToError.ts` - Error handling for interactions",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::11",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Utilities (`src/utils/`)",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#utilities-(`src/utils/`)"
},
{
"content": "Database Schema\nTwo main models:\n- `Tickets` - Tracks ticket state (open/closed), thread IDs, and user associations\n- `Roles` - Maps server IDs to their designated support role IDs",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::12",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Database Schema",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#database-schema"
},
{
"content": "Web Server (`src/server/`)\nProvides health monitoring endpoint and informational landing page at port 5012.",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::13",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Web Server (`src/server/`)",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#web-server-(`src/server/`)"
},
{
"content": "Environment Requirements\n\n- `DISCORD_TOKEN` - Bot token from Discord Developer Portal\n- `MONGO_URI` - MongoDB connection string\n- `npm_package_version` - Automatically set by npm for version display",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::14",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Environment Requirements",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#environment-requirements"
},
{
"content": "Permissions\n\nThe bot requires these Discord permissions:\n- Send Messages\n- Create Private Threads \n- Manage Threads\n- Use Slash Commands",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::15",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Permissions",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#permissions"
},
{
"content": "3. Legal Documentation\n\nThis section is for expansions to our legal policies specific to the Application.",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::16",
"metadata": {
"title": "Gwen Abalise"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#3-legal-documentation"
},
{
"content": "4. Contributing Documentation\n\nThis section is for documentation related to contributing to the Application's codebase.",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::17",
"metadata": {
"title": "Gwen Abalise"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#4-contributing-documentation"
},
{
"content": "Development Setup\n\nThe project uses:\n- TypeScript with strict configuration\n- ESLint with @nhcarrigan/eslint-config\n- Prisma for database management\n- Vitest for testing (tests not yet implemented)\n- pnpm for package management",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::18",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Development Setup",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#development-setup"
},
{
"content": "Build Process\n\n```bash\npnpm build # Compiles TypeScript to prod/ directory\npnpm lint # Runs ESLint with zero warnings policy\npnpm start # Runs the compiled application with 1Password secrets\n```",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::19",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Build Process",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#build-process"
},
{
"content": "Code Structure\n\nThe codebase follows a modular architecture with clear separation between:\n- Command definitions (registration data)\n- Command implementations (business logic)\n- Utility functions (shared functionality)\n- Database models (data persistence)\n- Web server (health monitoring)",
"file": "src/content/docs/projects/gwen-abalise.md",
"id": "src/content/docs/projects/gwen-abalise.md::20",
"metadata": {
"title": "Gwen Abalise"
},
"title": "Code Structure",
"url": "https://docs.nhcarrigan.com/projects/gwen-abalise#code-structure"
},
{
"content": "Hikari (hereinafter the \"Application\") is a centralized platform for managing NHCarrigan's products and services. It consists of three main components: a Discord bot with AI capabilities, an Angular web client for dashboard management, and a Fastify server backend. The platform enables users to manage their accounts, subscriptions, licenses, product configurations, and provides an AI-powered support agent for assistance with NHCarrigan's ecosystem of products.",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::0",
"metadata": {
"title": "Hikari"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/hikari#"
},
{
"content": "1. User Documentation",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::1",
"metadata": {
"title": "Hikari"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/hikari#1-user-documentation"
},
{
"content": "Discord Bot Features\n\nThe Hikari Discord bot provides the following functionality:\n\n- **AI Support Agent**: Chat with Hikari through direct messages to get help with NHCarrigan's products\n- **Product Information**: Ask questions about any of the available products and services\n- **Command Interface**: Use slash commands for quick actions\n - `/about` - Get information about Hikari and available features\n - `/dm` - Trigger a DM response to easily find your direct message channel",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::2",
"metadata": {
"title": "Hikari"
},
"title": "Discord Bot Features",
"url": "https://docs.nhcarrigan.com/projects/hikari#discord-bot-features"
},
{
"content": "Web Dashboard Features\n\nThe web dashboard provides a user-friendly interface for:\n\n- **Product Browsing**: View all available products categorized by type (Community Tools, Websites/APIs, Apps/Games)\n- **Announcements**: Stay updated with the latest product updates and community news\n- **Account Management**: Manage your subscriptions, licenses, and configurations\n- **Product Filtering**: Filter products by category or view all products at once",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::3",
"metadata": {
"title": "Hikari"
},
"title": "Web Dashboard Features",
"url": "https://docs.nhcarrigan.com/projects/hikari#web-dashboard-features"
},
{
"content": "Product Categories\n\n1. **Community Tooling and Integrations**: Discord bots, translation services, and community management tools\n2. **Websites and APIs**: Web applications, documentation sites, and API services\n3. **Apps and Games**: Desktop applications, games, and interactive experiences",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::4",
"metadata": {
"title": "Hikari"
},
"title": "Product Categories",
"url": "https://docs.nhcarrigan.com/projects/hikari#product-categories"
},
{
"content": "Getting Started\n\n1. **Discord Bot**: Install Hikari from the Discord app directory or invite to your server\n2. **Web Dashboard**: Visit [hikari.nhcarrigan.com](https://hikari.nhcarrigan.com) to access the dashboard\n3. **Support**: Join the [Discord community](https://chat.nhcarrigan.com) or visit the [forum](https://forum.nhcarrigan.com) for additional help",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::5",
"metadata": {
"title": "Hikari"
},
"title": "Getting Started",
"url": "https://docs.nhcarrigan.com/projects/hikari#getting-started"
},
{
"content": "2. Technical Documentation",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::6",
"metadata": {
"title": "Hikari"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/hikari#2-technical-documentation"
},
{
"content": "Architecture Overview\n\nHikari follows a microservices architecture with three main components:",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::7",
"metadata": {
"title": "Hikari"
},
"title": "Architecture Overview",
"url": "https://docs.nhcarrigan.com/projects/hikari#architecture-overview"
},
{
"content": "Bot Service (`/bot`)\n- **Framework**: Discord.js v14.21.0\n- **AI Integration**: Anthropic Claude API for intelligent responses\n- **Language**: TypeScript with Node.js\n- **Key Features**:\n - Slash command handling\n - Direct message AI conversations\n - Web search integration\n - Error handling and logging",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::8",
"metadata": {
"title": "Hikari"
},
"title": "Bot Service (`/bot`)",
"url": "https://docs.nhcarrigan.com/projects/hikari#bot-service-(`/bot`)"
},
{
"content": "Client Service (`/client`)\n- **Framework**: Angular v20.0.4\n- **Language**: TypeScript\n- **Key Features**:\n - Responsive web interface\n - Product catalog with filtering\n - Announcements system\n - Routing and navigation",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::9",
"metadata": {
"title": "Hikari"
},
"title": "Client Service (`/client`)",
"url": "https://docs.nhcarrigan.com/projects/hikari#client-service-(`/client`)"
},
{
"content": "Server Service (`/server`)\n- **Framework**: Fastify v5.4.0\n- **Database**: MongoDB with Prisma ORM\n- **Key Features**:\n - RESTful API endpoints\n - Announcement management\n - Database operations\n - Discord and forum integration",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::10",
"metadata": {
"title": "Hikari"
},
"title": "Server Service (`/server`)",
"url": "https://docs.nhcarrigan.com/projects/hikari#server-service-(`/server`)"
},
{
"content": "Development Setup",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::11",
"metadata": {
"title": "Hikari"
},
"title": "Development Setup",
"url": "https://docs.nhcarrigan.com/projects/hikari#development-setup"
},
{
"content": "Prerequisites\n- Node.js (latest LTS)\n- pnpm package manager\n- MongoDB instance\n- Discord bot token\n- Anthropic API key",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::12",
"metadata": {
"title": "Hikari"
},
"title": "Prerequisites",
"url": "https://docs.nhcarrigan.com/projects/hikari#prerequisites"
},
{
"content": "Installation\n```bash",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::13",
"metadata": {
"title": "Hikari"
},
"title": "Installation",
"url": "https://docs.nhcarrigan.com/projects/hikari#installation"
},
{
"content": "Clone the repository\ngit clone https://git.nhcarrigan.com/nhcarrigan/hikari",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::14",
"metadata": {
"title": "Hikari"
},
"title": "Clone the repository",
"url": "https://docs.nhcarrigan.com/projects/hikari#clone-the-repository"
},
{
"content": "Install dependencies\npnpm install",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::15",
"metadata": {
"title": "Hikari"
},
"title": "Install dependencies",
"url": "https://docs.nhcarrigan.com/projects/hikari#install-dependencies"
},
{
"content": "Build all services\npnpm build\n```",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::16",
"metadata": {
"title": "Hikari"
},
"title": "Build all services",
"url": "https://docs.nhcarrigan.com/projects/hikari#build-all-services"
},
{
"content": "Environment Configuration\n\n**Bot Service** (`bot/prod.env`):\n```ini\nDISCORD_TOKEN=your_discord_token\nANTHROPIC_API_KEY=your_anthropic_key\n```\n\n**Server Service**:\n```ini\nMONGO_URI=your_mongodb_connection_string\n```",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::17",
"metadata": {
"title": "Hikari"
},
"title": "Environment Configuration",
"url": "https://docs.nhcarrigan.com/projects/hikari#environment-configuration"
},
{
"content": "Running Services\n\n```bash",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::18",
"metadata": {
"title": "Hikari"
},
"title": "Running Services",
"url": "https://docs.nhcarrigan.com/projects/hikari#running-services"
},
{
"content": "Start bot service\ncd bot && pnpm start",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::19",
"metadata": {
"title": "Hikari"
},
"title": "Start bot service",
"url": "https://docs.nhcarrigan.com/projects/hikari#start-bot-service"
},
{
"content": "Start client development server\ncd client && ng serve",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::20",
"metadata": {
"title": "Hikari"
},
"title": "Start client development server",
"url": "https://docs.nhcarrigan.com/projects/hikari#start-client-development-server"
},
{
"content": "Start server service\ncd server && pnpm start\n```",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::21",
"metadata": {
"title": "Hikari"
},
"title": "Start server service",
"url": "https://docs.nhcarrigan.com/projects/hikari#start-server-service"
},
{
"content": "Database Schema\n\nThe application uses MongoDB with the following models:\n\n```prisma\nmodel Announcements {\n id String @id @default(auto()) @map(\"_id\") @db.ObjectId\n title String\n content String\n type String // \"products\" or \"community\"\n createdAt DateTime @default(now()) @unique\n}\n```",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::22",
"metadata": {
"title": "Hikari"
},
"title": "Database Schema",
"url": "https://docs.nhcarrigan.com/projects/hikari#database-schema"
},
{
"content": "API Endpoints\n\n- `POST /announcement` - Create new announcements\n- `GET /announcements` - Retrieve announcements\n- Health check and monitoring endpoints",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::23",
"metadata": {
"title": "Hikari"
},
"title": "API Endpoints",
"url": "https://docs.nhcarrigan.com/projects/hikari#api-endpoints"
},
{
"content": "Key Configuration Files\n\n- [`client/src/app/config/products.ts`](client/src/app/config/products.ts) - Product catalog configuration\n- [`bot/src/config/prompt.ts`](bot/src/config/prompt.ts) - AI agent personality and instructions\n- [`client/src/app/app.routes.ts`](client/src/app/app.routes.ts) - Client-side routing\n- [`bot/commandJson.js`](bot/commandJson.js) - Discord slash command definitions",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::24",
"metadata": {
"title": "Hikari"
},
"title": "Key Configuration Files",
"url": "https://docs.nhcarrigan.com/projects/hikari#key-configuration-files"
},
{
"content": "Build and Deployment\n\nThe project uses Turbo for monorepo management:\n\n```bash",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::25",
"metadata": {
"title": "Hikari"
},
"title": "Build and Deployment",
"url": "https://docs.nhcarrigan.com/projects/hikari#build-and-deployment"
},
{
"content": "Build all projects\nturbo build",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::26",
"metadata": {
"title": "Hikari"
},
"title": "Build all projects",
"url": "https://docs.nhcarrigan.com/projects/hikari#build-all-projects"
},
{
"content": "Run linting\nturbo lint",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::27",
"metadata": {
"title": "Hikari"
},
"title": "Run linting",
"url": "https://docs.nhcarrigan.com/projects/hikari#run-linting"
},
{
"content": "Run tests\nturbo test\n```",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::28",
"metadata": {
"title": "Hikari"
},
"title": "Run tests",
"url": "https://docs.nhcarrigan.com/projects/hikari#run-tests"
},
{
"content": "3. Legal Documentation",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::29",
"metadata": {
"title": "Hikari"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/hikari#3-legal-documentation"
},
{
"content": "License\nThis software is licensed under [Naomi's Public License](https://docs.nhcarrigan.com/#/license).",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::30",
"metadata": {
"title": "Hikari"
},
"title": "License",
"url": "https://docs.nhcarrigan.com/projects/hikari#license"
},
{
"content": "Privacy Policy\nUser data handling is governed by the [NHCarrigan Privacy Policy](https://docs.nhcarrigan.com/#/privacy).",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::31",
"metadata": {
"title": "Hikari"
},
"title": "Privacy Policy",
"url": "https://docs.nhcarrigan.com/projects/hikari#privacy-policy"
},
{
"content": "Terms of Service\nUsage of Hikari is subject to the [NHCarrigan Terms of Service](https://docs.nhcarrigan.com/#/terms).",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::32",
"metadata": {
"title": "Hikari"
},
"title": "Terms of Service",
"url": "https://docs.nhcarrigan.com/projects/hikari#terms-of-service"
},
{
"content": "Security Policy\nSecurity vulnerabilities should be reported according to the [NHCarrigan Security Policy](https://docs.nhcarrigan.com/#/security).",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::33",
"metadata": {
"title": "Hikari"
},
"title": "Security Policy",
"url": "https://docs.nhcarrigan.com/projects/hikari#security-policy"
},
{
"content": "Data Collection\n- Discord user IDs for bot functionality\n- Message content for AI processing (not stored permanently)\n- Usage analytics for service improvement\n- Subscription and account information",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::34",
"metadata": {
"title": "Hikari"
},
"title": "Data Collection",
"url": "https://docs.nhcarrigan.com/projects/hikari#data-collection"
},
{
"content": "Third-Party Services\n- **Discord**: Bot hosting and user interaction\n- **Anthropic Claude**: AI conversation processing\n- **MongoDB**: Data storage\n- **Gitea**: Source code hosting",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::35",
"metadata": {
"title": "Hikari"
},
"title": "Third-Party Services",
"url": "https://docs.nhcarrigan.com/projects/hikari#third-party-services"
},
{
"content": "4. Contributing Documentation",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::36",
"metadata": {
"title": "Hikari"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/hikari#4-contributing-documentation"
},
{
"content": "Code of Conduct\nAll contributors must follow the [NHCarrigan Code of Conduct](https://docs.nhcarrigan.com/community/coc/).",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::37",
"metadata": {
"title": "Hikari"
},
"title": "Code of Conduct",
"url": "https://docs.nhcarrigan.com/projects/hikari#code-of-conduct"
},
{
"content": "Contributing Guidelines\nPlease review the [Contributing Guidelines](https://docs.nhcarrigan.com/community/guide/) before submitting contributions.",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::38",
"metadata": {
"title": "Hikari"
},
"title": "Contributing Guidelines",
"url": "https://docs.nhcarrigan.com/projects/hikari#contributing-guidelines"
},
{
"content": "Development Workflow\n\n1. **Issue Creation**: Use the provided templates in [`.gitea/issue_template/`](.gitea/issue_template/)\n2. **Pull Requests**: Follow the template in [`.gitea/pull_request_template.yml`](.gitea/pull_request_template.yml)\n3. **Code Standards**: \n - ESLint configuration enforced\n - TypeScript strict mode\n - Comprehensive error handling\n - Logging for debugging",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::39",
"metadata": {
"title": "Hikari"
},
"title": "Development Workflow",
"url": "https://docs.nhcarrigan.com/projects/hikari#development-workflow"
},
{
"content": "Project Structure\n\n```\nhikari/\n├── bot/ # Discord bot service\n│ ├── src/ # TypeScript source\n│ └── prod/ # Compiled JavaScript\n├── client/ # Angular web application\n│ └── src/ # Angular source files\n├── server/ # Fastify API server\n│ ├── src/ # Server source\n│ └── prisma/ # Database schema\n└── docs/ # Documentation\n```",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::40",
"metadata": {
"title": "Hikari"
},
"title": "Project Structure",
"url": "https://docs.nhcarrigan.com/projects/hikari#project-structure"
},
{
"content": "Testing Requirements\n- Unit tests for new functionality\n- Integration tests for API endpoints\n- End-to-end tests for critical user flows\n- Code coverage maintenance above threshold",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::41",
"metadata": {
"title": "Hikari"
},
"title": "Testing Requirements",
"url": "https://docs.nhcarrigan.com/projects/hikari#testing-requirements"
},
{
"content": "Style Guidelines\n- Use TypeScript for all new code\n- Follow existing naming conventions\n- Include JSDoc comments for public methods\n- Maintain consistent indentation (2 spaces)\n- Use meaningful variable and function names",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::42",
"metadata": {
"title": "Hikari"
},
"title": "Style Guidelines",
"url": "https://docs.nhcarrigan.com/projects/hikari#style-guidelines"
},
{
"content": "Submission Checklist\n- [ ] Code follows project style guidelines\n- [ ] Tests added for new functionality\n- [ ] Documentation updated as needed\n- [ ] No breaking changes without discussion\n- [ ] All checks pass in CI/CD pipeline",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::43",
"metadata": {
"title": "Hikari"
},
"title": "Submission Checklist",
"url": "https://docs.nhcarrigan.com/projects/hikari#submission-checklist"
},
{
"content": "Getting Help\n- **Discord Community**: [chat.nhcarrigan.com](https://chat.nhcarrigan.com)\n- **Forum**: [forum.nhcarrigan.com](https://forum.nhcarrigan.com)\n- **Email**: contact@nhcarrigan.com",
"file": "src/content/docs/projects/hikari.md",
"id": "src/content/docs/projects/hikari.md::44",
"metadata": {
"title": "Hikari"
},
"title": "Getting Help",
"url": "https://docs.nhcarrigan.com/projects/hikari#getting-help"
},
{
"content": "@nhcarrigan/logger (hereinafter the \"Application\") is a custom logging utility that provides a wrapper around a custom alert monitoring server, enabling applications to pipe errors and log messages to a centralized alerting system.",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::0",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/logger#"
},
{
"content": "1. User Documentation\n\nThis section is for those interacting with a live instance of the Application.",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::1",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/logger#1-user-documentation"
},
{
"content": "Installation\n\nInstall the package using your preferred package manager:\n\n```bash\nnpm install @nhcarrigan/logger\n```\n\n```bash\npnpm add @nhcarrigan/logger\n```\n\n```bash\nyarn add @nhcarrigan/logger\n```",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::2",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Installation",
"url": "https://docs.nhcarrigan.com/projects/logger#installation"
},
{
"content": "Quick Start\n\n```typescript\nimport { Logger } from \"@nhcarrigan/logger\";\n\n// Initialize the logger\nconst logger = new Logger(\"my-app\", \"your-api-token\");\n\n// Send log messages\nawait logger.log(\"info\", \"Application started successfully\");\nawait logger.log(\"warn\", \"This is a warning message\");\nawait logger.log(\"debug\", \"Debug information\");\n\n// Send error reports\ntry {\n // Your code here\n} catch (error) {\n await logger.error(\"functionName\", error);\n}\n```",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::3",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Quick Start",
"url": "https://docs.nhcarrigan.com/projects/logger#quick-start"
},
{
"content": "API Reference",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::4",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "API Reference",
"url": "https://docs.nhcarrigan.com/projects/logger#api-reference"
},
{
"content": "Constructor\n\n```typescript\nnew Logger(application: string, token: string, url?: string)\n```\n\n**Parameters:**\n- `application` (string): The name of your application (will appear in logs)\n- `token` (string): Your API token for the monitoring service\n- `url` (optional string): Custom URL for your own alerting instance (defaults to \"https://alerts.nhcarrigan.com\")",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::5",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Constructor",
"url": "https://docs.nhcarrigan.com/projects/logger#constructor"
},
{
"content": "Methods",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::6",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Methods",
"url": "https://docs.nhcarrigan.com/projects/logger#methods"
},
{
"content": "`log(level: Level, message: string): Promise<void>`\n\nSends a log message to the alerting service.\n\n**Parameters:**\n- `level` (Level): The log level - one of \"debug\", \"info\", or \"warn\"\n- `message` (string): The message to send",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::7",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "`log(level: Level, message: string): Promise<void>`",
"url": "https://docs.nhcarrigan.com/projects/logger#`log(level:-level,-message:-string):-promise<void>`"
},
{
"content": "`error(context: string, error: Error): Promise<void>`\n\nSends an error to the alerting service with stack trace information.\n\n**Parameters:**\n- `context` (string): A brief description of where the error occurred (e.g., function name)\n- `error` (Error): The Node.js error object",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::8",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "`error(context: string, error: Error): Promise<void>`",
"url": "https://docs.nhcarrigan.com/projects/logger#`error(context:-string,-error:-error):-promise<void>`"
},
{
"content": "Log Levels\n\nThe Application supports three log levels:\n- `\"debug\"`: Debug information for development purposes\n- `\"info\"`: General informational messages\n- `\"warn\"`: Warning messages that don't halt execution",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::9",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Log Levels",
"url": "https://docs.nhcarrigan.com/projects/logger#log-levels"
},
{
"content": "Custom Alerting Server\n\nBy default, the logger sends data to `https://alerts.nhcarrigan.com`. You can configure it to use your own alerting instance by providing a custom URL in the constructor.",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::10",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Custom Alerting Server",
"url": "https://docs.nhcarrigan.com/projects/logger#custom-alerting-server"
},
{
"content": "2. Technical Documentation\n\nThis section is for those interested in running their own instance of the Application.",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::11",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/logger#2-technical-documentation"
},
{
"content": "Architecture\n\nThe Application is built as a TypeScript class that wraps HTTP requests to an alerting server. It provides two main endpoints:\n\n1. `/log` - For general log messages\n2. `/error` - For error reporting with stack traces",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::12",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Architecture",
"url": "https://docs.nhcarrigan.com/projects/logger#architecture"
},
{
"content": "API Endpoints",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::13",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "API Endpoints",
"url": "https://docs.nhcarrigan.com/projects/logger#api-endpoints"
},
{
"content": "POST /log\n\nSends structured log data:\n\n```json\n{\n \"application\": \"your-app-name\",\n \"level\": \"info\",\n \"message\": \"Your log message\"\n}\n```",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::14",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "POST /log",
"url": "https://docs.nhcarrigan.com/projects/logger#post-/log"
},
{
"content": "POST /error\n\nSends structured error data:\n\n```json\n{\n \"application\": \"your-app-name\",\n \"context\": \"function-name\",\n \"message\": \"Error message\",\n \"stack\": \"Stack trace information\"\n}\n```",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::15",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "POST /error",
"url": "https://docs.nhcarrigan.com/projects/logger#post-/error"
},
{
"content": "Authentication\n\nAll requests require an `Authorization` header with your API token.",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::16",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Authentication",
"url": "https://docs.nhcarrigan.com/projects/logger#authentication"
},
{
"content": "Development Setup\n\n1. Clone the repository:\n ```bash\n git clone https://git.nhcarrigan.com/nhcarrigan/logger.git\n ```\n\n2. Install dependencies:\n ```bash\n pnpm install\n ```\n\n3. Build the project:\n ```bash\n pnpm run build\n ```\n\n4. Run linting:\n ```bash\n pnpm run lint\n ```",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::17",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Development Setup",
"url": "https://docs.nhcarrigan.com/projects/logger#development-setup"
},
{
"content": "Project Structure\n\n```\nsrc/\n├── index.ts # Main Logger class\n└── types/\n └── level.ts # Log level type definitions\n```",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::18",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Project Structure",
"url": "https://docs.nhcarrigan.com/projects/logger#project-structure"
},
{
"content": "TypeScript Configuration\n\nThe project uses:\n- `@nhcarrigan/typescript-config` for TypeScript configuration\n- `@nhcarrigan/eslint-config` for ESLint rules\n- ES modules (`\"type\": \"module\"`)",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::19",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "TypeScript Configuration",
"url": "https://docs.nhcarrigan.com/projects/logger#typescript-configuration"
},
{
"content": "3. Legal Documentation\n\nThis section is for expansions to our legal policies specific to the Application.",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::20",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/logger#3-legal-documentation"
},
{
"content": "License\n\nThis software is licensed under Naomi's Public License. See the [LICENSE.md](LICENSE.md) file for complete terms.",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::21",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "License",
"url": "https://docs.nhcarrigan.com/projects/logger#license"
},
{
"content": "Copyright\n\nCopyright held by Naomi Carrigan.",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::22",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Copyright",
"url": "https://docs.nhcarrigan.com/projects/logger#copyright"
},
{
"content": "Privacy\n\nSee [PRIVACY.md](PRIVACY.md) for privacy policy information.",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::23",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Privacy",
"url": "https://docs.nhcarrigan.com/projects/logger#privacy"
},
{
"content": "Terms of Service\n\nSee [TERMS.md](TERMS.md) for terms of service.",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::24",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Terms of Service",
"url": "https://docs.nhcarrigan.com/projects/logger#terms-of-service"
},
{
"content": "Security\n\nSee [SECURITY.md](SECURITY.md) for security policy and vulnerability reporting procedures.",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::25",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Security",
"url": "https://docs.nhcarrigan.com/projects/logger#security"
},
{
"content": "4. Contributing Documentation\n\nThis section is for documentation related to contributing to the Application's codebase.",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::26",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/logger#4-contributing-documentation"
},
{
"content": "Getting Started\n\n1. Read our [Code of Conduct](CODE_OF_CONDUCT.md)\n2. Review our [Contributing Guidelines](CONTRIBUTING.md)\n3. Fork the repository\n4. Create a feature branch\n5. Make your changes\n6. Submit a Pull Request",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::27",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Getting Started",
"url": "https://docs.nhcarrigan.com/projects/logger#getting-started"
},
{
"content": "Development Guidelines\n\n- Follow the existing code style enforced by ESLint\n- Ensure TypeScript compilation passes without errors\n- Add appropriate JSDoc comments for new public methods\n- Test your changes thoroughly",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::28",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Development Guidelines",
"url": "https://docs.nhcarrigan.com/projects/logger#development-guidelines"
},
{
"content": "Issue Reporting\n\nIf you encounter bugs or have feature requests:\n\n1. Check existing issues first\n2. Create a new issue with detailed information\n3. Include reproduction steps for bugs\n4. Tag issues appropriately",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::29",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Issue Reporting",
"url": "https://docs.nhcarrigan.com/projects/logger#issue-reporting"
},
{
"content": "Contact\n\n- Chat Server: [http://chat.nhcarrigan.com](http://chat.nhcarrigan.com)\n- Email: contact@nhcarrigan.com\n- Repository: [https://git.nhcarrigan.com/nhcarrigan/logger](https://git.nhcarrigan.com/nhcarrigan/logger)\n- Issues: [https://git.nhcarrigan.com/nhcarrigan/logger/issues](https://git.nhcarrigan.com/nhcarrigan/logger/issues)",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::30",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Contact",
"url": "https://docs.nhcarrigan.com/projects/logger#contact"
},
{
"content": "Package Information\n\n- **Package Name**: @nhcarrigan/logger\n- **Version**: 1.0.0\n- **NPM**: [https://www.npmjs.com/package/@nhcarrigan/logger](https://www.npmjs.com/package/@nhcarrigan/logger)\n- **Repository**: Git-based repository hosted at git.nhcarrigan.com",
"file": "src/content/docs/projects/logger.md",
"id": "src/content/docs/projects/logger.md::31",
"metadata": {
"title": "@nhcarrigan/logger"
},
"title": "Package Information",
"url": "https://docs.nhcarrigan.com/projects/logger#package-information"
},
{
"content": "Maylin Taryne (hereinafter the \"Application\") is an AI-powered Discord bot that offers companionship and comfort during your darkest moments. Built with TypeScript and powered by Anthropic's Claude AI, Maylin provides a safe space for users to share their feelings and experiences through direct message conversations.",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::0",
"metadata": {
"title": "Maylin Taryne"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#"
},
{
"content": "1. User Documentation\n\nThis section is for those interacting with a live instance of the Application.",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::1",
"metadata": {
"title": "Maylin Taryne"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#1-user-documentation"
},
{
"content": "Quick Start\n\n1. [Add Maylin to your Discord account](https://discord.com/oauth2/authorize?client_id=1343370633916059668)\n2. Use the `/dm` command to start a private conversation\n3. Send messages directly to Maylin in DMs for AI-powered companionship",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::2",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Quick Start",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#quick-start"
},
{
"content": "Available Commands\n\n- `/about` - Learn more about Maylin and view bot information\n- `/dm` - Opens a direct message conversation with Maylin\n- `/clear` - Clears your conversation history to start fresh",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::3",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Available Commands",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#available-commands"
},
{
"content": "Subscription Features\n\nMaylin operates on a subscription model. Some features require an active subscription:\n- AI-powered conversations in direct messages\n- Conversation history management\n- Premium support access",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::4",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Subscription Features",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#subscription-features"
},
{
"content": "Important Notes\n\n- Maylin is **NOT** a therapist and does **NOT** provide legal, medical, or financial advice\n- She serves as a supportive, encouraging friend during tough times\n- All conversations happen in private direct messages\n- Conversation history can be cleared using the `/clear` command",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::5",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Important Notes",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#important-notes"
},
{
"content": "2. Technical Documentation\n\nThis section is for those interested in running their own instance of the Application.",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::6",
"metadata": {
"title": "Maylin Taryne"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#2-technical-documentation"
},
{
"content": "Architecture Overview\n\nMaylin Taryne is built as a user-installable Discord bot with the following key components:",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::7",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Architecture Overview",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#architecture-overview"
},
{
"content": "Core Technologies\n- **Runtime**: Node.js with TypeScript\n- **Discord API**: discord.js v14\n- **AI Integration**: Anthropic Claude (claude-sonnet-4-20250514)\n- **Web Server**: Fastify for health monitoring\n- **Logging**: @nhcarrigan/logger for centralized logging\n- **Build System**: TypeScript compiler with ES modules",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::8",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Core Technologies",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#core-technologies"
},
{
"content": "Bot Architecture\n- **Event-Driven**: Responds to Discord events (messages, interactions, entitlements)\n- **Command System**: Slash commands for user interactions\n- **Subscription Model**: Discord entitlement system for premium features\n- **Direct Message Focus**: Primarily operates in DM channels",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::9",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Bot Architecture",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#bot-architecture"
},
{
"content": "Key Modules",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::10",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Key Modules",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#key-modules"
},
{
"content": "Commands (`src/commands/`)\n- Command definitions for Discord slash commands\n- Exported as JSON for Discord API registration",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::11",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Commands (`src/commands/`)",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#commands-(`src/commands/`)"
},
{
"content": "Modules (`src/modules/`)\n- **About Module**: Displays bot information and version details\n- **Clear Module**: Manages conversation history clearing",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::12",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Modules (`src/modules/`)",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#modules-(`src/modules/`)"
},
{
"content": "Events (`src/events/`)\n- **Message Handler**: Processes incoming DM messages and generates AI responses\n- Manages conversation context and history\n- Implements subscription validation",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::13",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Events (`src/events/`)",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#events-(`src/events/`)"
},
{
"content": "Utilities (`src/utils/`)\n- **AI Integration**: Anthropic Claude API wrapper\n- **Subscription Validation**: Discord entitlement checking\n- **Cost Calculation**: Usage tracking and cost monitoring\n- **Error Handling**: Standardized error responses\n- **Logging**: Centralized logging infrastructure",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::14",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Utilities (`src/utils/`)",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#utilities-(`src/utils/`)"
},
{
"content": "Server (`src/server/`)\n- Health monitoring web server on port 5011\n- Serves basic landing page with bot information",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::15",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Server (`src/server/`)",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#server-(`src/server/`)"
},
{
"content": "Configuration\n- **Personality**: Defined in `src/config/personality.ts`\n- **Environment Variables**: \n - `DISCORD_TOKEN`: Bot authentication\n - `AI_TOKEN`: Anthropic API key\n - `LOG_TOKEN`: Logging service token",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::16",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Configuration",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#configuration"
},
{
"content": "Deployment\n- Built to `prod/` directory using TypeScript compiler\n- Runs with 1Password CLI for environment variable management\n- Uses `op run` for secure environment injection",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::17",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Deployment",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#deployment"
},
{
"content": "Development Setup\n\n```bash",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::18",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Development Setup",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#development-setup"
},
{
"content": "Install dependencies\npnpm install",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::19",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Install dependencies",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#install-dependencies"
},
{
"content": "Build the project\npnpm run build",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::20",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Build the project",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#build-the-project"
},
{
"content": "Run linting\npnpm run lint",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::21",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Run linting",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#run-linting"
},
{
"content": "Start the bot (requires environment setup)\npnpm start\n```",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::22",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Start the bot (requires environment setup)",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#start-the-bot-(requires-environment-setup)"
},
{
"content": "Environment Requirements\n- Node.js (ES modules support)\n- Discord Bot Token\n- Anthropic API Key\n- 1Password CLI (for production deployment)",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::23",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Environment Requirements",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#environment-requirements"
},
{
"content": "3. Legal Documentation\n\nThis section is for expansions to our legal policies specific to the Application.",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::24",
"metadata": {
"title": "Maylin Taryne"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#3-legal-documentation"
},
{
"content": "Licensing\n- Licensed under Naomi's Public License\n- Copyright held by Naomi Carrigan\n- See [global software license](https://docs.nhcarrigan.com/#/license) for details",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::25",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Licensing",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#licensing"
},
{
"content": "Privacy Considerations\n- All conversations occur in Discord direct messages\n- Message history is temporarily stored for context (up to 20 messages)\n- Conversation history can be cleared by users via `/clear` command\n- Usage metrics and costs are logged for operational purposes",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::26",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Privacy Considerations",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#privacy-considerations"
},
{
"content": "Service Limitations\n- Maylin is not a licensed therapist or counsellor\n- No legal, medical, or financial advice is provided\n- Service availability depends on Discord and Anthropic API uptime\n- Subscription required for full feature access\n- NHCarrigan are not liable for any decisions you make based on Maylin's responses.",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::27",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Service Limitations",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#service-limitations"
},
{
"content": "4. Contributing Documentation\n\nThis section is for documentation related to contributing to the Application's codebase.",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::28",
"metadata": {
"title": "Maylin Taryne"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#4-contributing-documentation"
},
{
"content": "Development Standards\n- TypeScript with strict type checking\n- ESLint configuration (@nhcarrigan/eslint-config)\n- ES modules throughout\n- Comprehensive error handling and logging",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::29",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Development Standards",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#development-standards"
},
{
"content": "Code Structure\n- Modular architecture with clear separation of concerns\n- Event-driven design following Discord.js patterns\n- Utility-first approach for shared functionality\n- Configuration-driven personality and behavior",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::30",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Code Structure",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#code-structure"
},
{
"content": "Testing\n- Vitest for testing framework (configuration present)\n- Coverage reporting with Istanbul\n- Currently no test files (\"No tests yet!\" placeholder)",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::31",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Testing",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#testing"
},
{
"content": "Build Process\n- TypeScript compilation to `prod/` directory\n- Clean build process (removes existing `prod/` before compilation)\n- Source maps and proper module resolution",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::32",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Build Process",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#build-process"
},
{
"content": "Contributing Guidelines\n- Review [CONTRIBUTING.md](CONTRIBUTING.md) before submitting changes\n- Follow the established [Code of Conduct](CODE_OF_CONDUCT.md)\n- Create Pull Requests for proposed changes\n- All contributions subject to review process",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::33",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Contributing Guidelines",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#contributing-guidelines"
},
{
"content": "Support and Contact\n- [Chat Server](http://chat.nhcarrigan.com) for community support\n- Email: contact@nhcarrigan.com\n- [Source Code Repository](https://git.nhcarrigan.com/nhcarrigan/maylin-taryne)",
"file": "src/content/docs/projects/maylin-taryne.md",
"id": "src/content/docs/projects/maylin-taryne.md::34",
"metadata": {
"title": "Maylin Taryne"
},
"title": "Support and Contact",
"url": "https://docs.nhcarrigan.com/projects/maylin-taryne#support-and-contact"
},
{
"content": "Melody Iuvo (hereinafter the \"Application\") is a powerful task management bot for Discord that enables users to create, organize, and track their tasks, deadlines, and goals directly within Discord. The bot provides a comprehensive set of slash commands for task management with support for categories, priorities, status tracking, and due dates.",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::0",
"metadata": {
"title": "Melody Iuvo"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#"
},
{
"content": "1. User Documentation\n\nThis section is for those interacting with a live instance of the Application.",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::1",
"metadata": {
"title": "Melody Iuvo"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#1-user-documentation"
},
{
"content": "Getting Started\n\nTo use Melody Iuvo, you'll need to [add the bot to your Discord account](https://discord.com/oauth2/authorize?client_id=1338753576583041074) and subscribe to access the premium features.",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::2",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Getting Started",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#getting-started"
},
{
"content": "Available Commands\n\nThe bot provides the following slash commands for task management:",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::3",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Available Commands",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#available-commands"
},
{
"content": "Core Commands\n\n- **`/create`** - Create a new task\n - **title**: The title for your task (required, max 256 characters)\n - **description**: The description for your task (required, max 2048 characters) \n - **status**: Task status - TODO, In Progress, In Review, or Complete (required)\n - **priority**: Task priority - None, Low, Medium, High, or Critical (required)\n - **category**: The category for your task (required, max 1024 characters)\n - **due-date**: Due date in YYYY/MM/DD format (optional)\n\n- **`/list`** - View your currently active tasks (excludes completed tasks)\n - Shows up to 10 tasks sorted by due date\n - Displays tasks in rich embed format with all details\n\n- **`/view`** - View details of a specific task\n - **number**: The task number you wish to view (required)",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::4",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Core Commands",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#core-commands"
},
{
"content": "Task Modification Commands\n\n- **`/retitle`** - Update the title of an existing task\n - **number**: The task number to update (required)\n - **title**: New title for the task (required, max 256 characters)\n\n- **`/redescribe`** - Update the description of an existing task\n - **number**: The task number to update (required)\n - **description**: New description for the task (required, max 2048 characters)\n\n- **`/restate`** - Update the status of an existing task\n - **number**: The task number to update (required)\n - **status**: New status (TODO, In Progress, In Review, Complete) (required)\n\n- **`/reprioritise`** - Update the priority of an existing task\n - **number**: The task number to update (required)\n - **priority**: New priority (None, Low, Medium, High, Critical) (required)\n\n- **`/recategorise`** - Update the category of an existing task\n - **number**: The task number to update (required)\n - **category**: New category (required, max 1024 characters)\n\n- **`/retarget`** - Update the due date of an existing task\n - **number**: The task number to update (required)\n - **due-date**: New due date in YYYY/MM/DD format (optional)",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::5",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Task Modification Commands",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#task-modification-commands"
},
{
"content": "Information Commands\n\n- **`/about`** - Learn more about the bot\n - Shows version information, commit details, and useful links\n - Provides buttons for support, source code, and subscription",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::6",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Information Commands",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#information-commands"
},
{
"content": "Task Features",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::7",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Task Features",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#task-features"
},
{
"content": "Status Types\n- **TODO**: Task is planned but not started\n- **In Progress**: Task is currently being worked on\n- **In Review**: Task is completed and awaiting review\n- **Complete**: Task is fully finished",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::8",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Status Types",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#status-types"
},
{
"content": "Priority Levels\n- **None**: No specific priority\n- **Low**: Low priority task\n- **Medium**: Medium priority task\n- **High**: High priority task\n- **Critical**: Urgent, critical priority task",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::9",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Priority Levels",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#priority-levels"
},
{
"content": "Task Numbering\nEach user has their own task numbering system starting from 1. Task numbers are unique per user and automatically assigned when creating new tasks.",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::10",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Task Numbering",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#task-numbering"
},
{
"content": "Task Embeds\nTasks are displayed in rich Discord embeds showing:\n- Title and description\n- Category, status, and priority\n- Due date, creation date, and last updated date\n- Color-coded by status (red for TODO, orange for in-progress, yellow for in-review, green for complete)",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::11",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Task Embeds",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#task-embeds"
},
{
"content": "Subscription Model\n\nMelody Iuvo operates on a premium subscription model. Users must subscribe to access the task management features. The subscription is managed through Discord's built-in premium subscription system.",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::12",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Subscription Model",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#subscription-model"
},
{
"content": "2. Technical Documentation\n\nThis section is for those interested in running their own instance of the Application.",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::13",
"metadata": {
"title": "Melody Iuvo"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#2-technical-documentation"
},
{
"content": "Architecture Overview\n\nMelody Iuvo is built as a Node.js Discord bot using the following technology stack:\n\n- **Runtime**: Node.js with TypeScript\n- **Discord Library**: Discord.js v14.18.0\n- **Database**: MongoDB with Prisma ORM\n- **Web Server**: Fastify (for health monitoring)\n- **Logging**: Custom logger (@nhcarrigan/logger)",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::14",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Architecture Overview",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#architecture-overview"
},
{
"content": "Project Structure\n\n```\nsrc/\n├── commands/ # Slash command definitions\n├── modules/ # Command implementation logic\n├── config/ # Configuration files (choices, names)\n├── interfaces/ # TypeScript type definitions\n├── db/ # Database connection\n├── server/ # Web server for health monitoring\n└── utils/ # Utility functions\n```",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::15",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Project Structure",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#project-structure"
},
{
"content": "Key Components",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::16",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Key Components",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#key-components"
},
{
"content": "Command System\nThe bot uses a modular command system where:\n- `/src/commands/` contains Discord slash command definitions\n- `/src/modules/` contains the actual command implementation logic\n- Commands are registered in the main index file",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::17",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Command System",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#command-system"
},
{
"content": "Database Schema\nThe application uses a single `Tasks` model with the following fields:\n- `id`: MongoDB ObjectId (primary key)\n- `userId`: Discord user ID\n- `number`: User-specific task number\n- `title`: Task title\n- `description`: Task description \n- `category`: User-defined category\n- `status`: Task status (enum)\n- `priority`: Task priority (enum)\n- `dueAt`: Due date\n- `createdAt`: Creation timestamp\n- `updatedAt`: Last update timestamp",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::18",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Database Schema",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#database-schema"
},
{
"content": "Subscription System\nThe bot integrates with Discord's premium subscription system (Discord Store) to manage user access. All commands (except `/about`) require an active subscription.",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::19",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Subscription System",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#subscription-system"
},
{
"content": "Web Interface\nA simple web server runs on port 5443 providing:\n- Health monitoring endpoint\n- Basic information page with links\n- Discord bot invite link",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::20",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Web Interface",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#web-interface"
},
{
"content": "API Integration\n\nThe bot integrates with:\n- Discord API (via Discord.js)\n- Discord Store API (for subscriptions)\n- MongoDB (via Prisma)",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::21",
"metadata": {
"title": "Melody Iuvo"
},
"title": "API Integration",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#api-integration"
},
{
"content": "3. Legal Documentation\n\nThis section covers the legal policies and requirements specific to the Application.",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::22",
"metadata": {
"title": "Melody Iuvo"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#3-legal-documentation"
},
{
"content": "4. Contributing Documentation\n\nThis section is for documentation related to contributing to the Application's codebase.",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::23",
"metadata": {
"title": "Melody Iuvo"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#4-contributing-documentation"
},
{
"content": "Environment Variables\n\nRequired environment variables:\n- `DISCORD_TOKEN`: Discord bot token\n- `MONGO_URL`: MongoDB connection string",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::24",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Environment Variables",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#environment-variables"
},
{
"content": "Installation & Setup\n\n1. Clone the repository\n2. Install dependencies: `npm install`\n3. Set up MongoDB database\n4. Configure environment variables\n5. Run database migrations: `npx prisma generate`\n6. Build the project: `npm run build`\n7. Start the bot: `npm start`",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::25",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Installation & Setup",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#installation-&-setup"
},
{
"content": "Development\n\n- **Build**: `npm run build` - Compiles TypeScript to JavaScript\n- **Lint**: `npm run lint` - Runs ESLint with zero warnings policy\n- **Start**: `npm start` - Runs the production build",
"file": "src/content/docs/projects/melody-iuvo.md",
"id": "src/content/docs/projects/melody-iuvo.md::26",
"metadata": {
"title": "Melody Iuvo"
},
"title": "Development",
"url": "https://docs.nhcarrigan.com/projects/melody-iuvo#development"
},
{
"content": "Mommy Bot (hereinafter the \"Application\") is a multi-platform bot application that provides encouraging and supportive messages across Discord, Slack, and Bluesky platforms. The bot delivers personalized \"mommy\" messages to users, creating a comforting and nurturing interaction experience.",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::0",
"metadata": {
"title": "Mommy Bot"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#"
},
{
"content": "1. User Documentation",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::1",
"metadata": {
"title": "Mommy Bot"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#1-user-documentation"
},
{
"content": "Discord Usage\n- [Install the app](https://discord.com/oauth2/authorize?client_id=1347642447643017289)\n- Use the `/mommy` slash command\n- Optionally provide a name parameter: `/mommy name:YourName`\n- The bot will respond with an encouraging message personalized to your name",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::2",
"metadata": {
"title": "Mommy Bot"
},
"title": "Discord Usage",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#discord-usage"
},
{
"content": "Slack Usage\n- [Install the app](https://slack.com/oauth/v2/authorize?client_id=8569765106322.8554301974567&scope=commands&user_scope=)\n- Use the `/mommy` command in any channel where the bot is installed\n- Optionally provide a name: `/mommy YourName`\n- The bot will respond with an encouraging message",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::3",
"metadata": {
"title": "Mommy Bot"
},
"title": "Slack Usage",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#slack-usage"
},
{
"content": "Bluesky Integration\n- The bot automatically posts daily encouraging messages at 9:00 AM\n- Follow [@mommy.naomi.party](https://bsky.app/profile/mommy.naomi.party) on Bluesky to see these posts",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::4",
"metadata": {
"title": "Mommy Bot"
},
"title": "Bluesky Integration",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#bluesky-integration"
},
{
"content": "Installation Links\nVisit the bot's homepage to install:\n- **Discord**: Add to your server via the Discord OAuth link\n- **Slack**: Install via the Slack App Directory integration\n- **Bluesky**: Follow the automated account for daily posts",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::5",
"metadata": {
"title": "Mommy Bot"
},
"title": "Installation Links",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#installation-links"
},
{
"content": "2. Technical Documentation",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::6",
"metadata": {
"title": "Mommy Bot"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#2-technical-documentation"
},
{
"content": "Architecture Overview\nThe Application is built using TypeScript and Node.js with the following key components:",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::7",
"metadata": {
"title": "Mommy Bot"
},
"title": "Architecture Overview",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#architecture-overview"
},
{
"content": "Core Platforms\n- **Discord**: Uses discord.js library for slash command integration\n- **Slack**: Uses @slack/bolt framework for command handling\n- **Bluesky**: Uses @atproto/api for automated posting",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::8",
"metadata": {
"title": "Mommy Bot"
},
"title": "Core Platforms",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#core-platforms"
},
{
"content": "Main Components\n\n**Application Entry Point (`src/index.ts`)**\n- Initializes connections to all three platforms\n- Sets up command handlers for Discord and Slack\n- Configures scheduled posting for Bluesky (daily at 9:00 AM)\n- Manages bot lifecycle and error handling\n\n**Web Server (`src/server/serve.ts`)**\n- Fastify-based HTTP server running on port 8009\n- Serves a landing page with installation links\n- Provides health monitoring endpoint\n- Displays branding and social media links\n\n**Message Generation (`src/utils/getMommy.ts`)**\n- Fetches encouraging messages from external API\n- Implements profanity filtering using no-profanity library\n- Supports personalized name insertion\n- Defaults to \"dear\" for filtered or empty names\n\n**Logging (`src/utils/logger.ts`)**\n- Uses @nhcarrigan/logger for structured logging\n- Configured with application name \"Mommy\"\n- Supports remote log token for centralized logging",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::9",
"metadata": {
"title": "Mommy Bot"
},
"title": "Main Components",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#main-components"
},
{
"content": "Deployment\n- Built using TypeScript compiler (`npm run build`)\n- Production start script uses 1Password for environment management\n- Runs as a persistent Node.js application\n- Requires network access to Discord, Slack, and Bluesky APIs",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::10",
"metadata": {
"title": "Mommy Bot"
},
"title": "Deployment",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#deployment"
},
{
"content": "Dependencies\nKey production dependencies:\n- `@atproto/api`: Bluesky/AT Protocol client\n- `@slack/bolt`: Slack app framework\n- `discord.js`: Discord API wrapper\n- `fastify`: Web server framework\n- `node-schedule`: Cron-like job scheduler\n- `no-profanity`: Content filtering",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::11",
"metadata": {
"title": "Mommy Bot"
},
"title": "Dependencies",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#dependencies"
},
{
"content": "3. Legal Documentation",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::12",
"metadata": {
"title": "Mommy Bot"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#3-legal-documentation"
},
{
"content": "License\nThe Application is licensed under \"Naomi's Public License\" as specified in the source code headers.",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::13",
"metadata": {
"title": "Mommy Bot"
},
"title": "License",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#license"
},
{
"content": "Copyright\nAll code is copyright © nhcarrigan (Naomi Carrigan).",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::14",
"metadata": {
"title": "Mommy Bot"
},
"title": "Copyright",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#copyright"
},
{
"content": "Third-Party Services\nThe Application integrates with:\n- Discord API (subject to Discord's Terms of Service)\n- Slack API (subject to Slack's API Terms)\n- Bluesky/AT Protocol (subject to Bluesky's Terms)\n- External message API (mommy.nhcarrigan.com)",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::15",
"metadata": {
"title": "Mommy Bot"
},
"title": "Third-Party Services",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#third-party-services"
},
{
"content": "Data Handling\n- User names are processed for profanity filtering\n- No persistent user data storage\n- Interaction data follows platform-specific retention policies\n- Logs may contain interaction metadata",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::16",
"metadata": {
"title": "Mommy Bot"
},
"title": "Data Handling",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#data-handling"
},
{
"content": "4. Contributing Documentation",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::17",
"metadata": {
"title": "Mommy Bot"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#4-contributing-documentation"
},
{
"content": "Environment Variables\nRequired environment variables:\n- `DISCORD_TOKEN`: Discord bot token\n- `SLACK_CLIENT_ID`: Slack app client ID\n- `SLACK_CLIENT_SECRET`: Slack app client secret\n- `SLACK_SIGNING_SECRET`: Slack app signing secret\n- `SLACK_STATE_SECRET`: Slack app state secret\n- `BSKY_PASSWORD`: Bluesky account password\n- `LOG_TOKEN`: Remote logging token (optional)",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::18",
"metadata": {
"title": "Mommy Bot"
},
"title": "Environment Variables",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#environment-variables"
},
{
"content": "Development Setup\n1. Clone the repository\n2. Install dependencies: `pnpm install`\n3. Configure environment variables\n4. Run in development mode: `npm run dev`",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::19",
"metadata": {
"title": "Mommy Bot"
},
"title": "Development Setup",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#development-setup"
},
{
"content": "Code Standards\n- TypeScript with strict type checking\n- ESLint configuration: @nhcarrigan/eslint-config\n- Code must pass linting: `npm run lint`\n- Follow existing code style and documentation patterns",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::20",
"metadata": {
"title": "Mommy Bot"
},
"title": "Code Standards",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#code-standards"
},
{
"content": "File Structure\n```\nsrc/\n├── index.ts # Main application entry point\n├── server/\n│ └── serve.ts # Web server implementation\n└── utils/\n ├── getMommy.ts # Core message functionality\n └── logger.ts # Logging configuration\n```",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::21",
"metadata": {
"title": "Mommy Bot"
},
"title": "File Structure",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#file-structure"
},
{
"content": "Testing\n- Currently no automated tests (test script returns success)\n- Manual testing required for platform integrations\n- Verify commands work on all supported platforms",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::22",
"metadata": {
"title": "Mommy Bot"
},
"title": "Testing",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#testing"
},
{
"content": "Deployment Process\n1. Build production assets: `npm run build`\n2. Ensure environment variables are configured\n3. Start application: `npm start`\n4. Monitor logs for successful platform connections",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::23",
"metadata": {
"title": "Mommy Bot"
},
"title": "Deployment Process",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#deployment-process"
},
{
"content": "Platform-Specific Considerations\n- **Discord**: Requires bot permissions and slash command registration\n- **Slack**: Needs app approval and workspace installation\n- **Bluesky**: Requires valid account credentials and posting permissions",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::24",
"metadata": {
"title": "Mommy Bot"
},
"title": "Platform-Specific Considerations",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#platform-specific-considerations"
},
{
"content": "Issue Reporting\nReport bugs and feature requests through the project's issue tracker, including:\n- Platform affected (Discord/Slack/Bluesky)\n- Steps to reproduce\n- Expected vs. actual behavior\n- Environment details",
"file": "src/content/docs/projects/mommy-bot.md",
"id": "src/content/docs/projects/mommy-bot.md::25",
"metadata": {
"title": "Mommy Bot"
},
"title": "Issue Reporting",
"url": "https://docs.nhcarrigan.com/projects/mommy-bot#issue-reporting"
},
{
"content": "Mommy (hereinafter the \"Application\") is a web-based application that provides users with supportive and loving messages, optionally personalized with their name. The Application uses a Fastify-based backend server that serves both a landing page and an API endpoint, delivering encouraging phrases with configurable \"mommy\" personas. It is designed for ease of use, accessibility, and providing emotional support through positive reinforcement.",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::0",
"metadata": {
"title": "Mommy"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/mommy#"
},
{
"content": "1. User Documentation",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::1",
"metadata": {
"title": "Mommy"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/mommy#1-user-documentation"
},
{
"content": "How to Use Mommy\n\nThe Mommy application provides a simple web interface for receiving encouraging messages:\n\n1. **Visit the Application**: Navigate to the [Mommy web application](https://mommy.nhcarrigan.com) in your browser\n2. **Optional Name Entry**: Enter your name in the text field if you'd like personalized messages\n3. **Request Love**: Click the \"I need some love...\" button to receive an encouraging message\n4. **Receive Your Message**: A supportive phrase will appear, personalized with your name if provided",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::2",
"metadata": {
"title": "Mommy"
},
"title": "How to Use Mommy",
"url": "https://docs.nhcarrigan.com/projects/mommy#how-to-use-mommy"
},
{
"content": "Features\n\n- **Personalized Messages**: Over 100 unique encouraging phrases that can be personalized with your name\n- **Accessibility-Focused Design**: Uses OpenDyslexic font and high-contrast styling for better readability\n- **Mobile-Friendly**: Responsive design that works on all device sizes\n- **No Registration Required**: Instant access without any account creation",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::3",
"metadata": {
"title": "Mommy"
},
"title": "Features",
"url": "https://docs.nhcarrigan.com/projects/mommy#features"
},
{
"content": "API Endpoint\n\nThe application also provides a simple API:\n- **Endpoint**: `/api`\n- **Method**: GET\n- **Optional Parameter**: `name` (string) - Your name for personalization\n- **Response**: Plain text encouraging message\n\nExample: `GET /api?name=Alex` returns a personalized encouraging message.",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::4",
"metadata": {
"title": "Mommy"
},
"title": "API Endpoint",
"url": "https://docs.nhcarrigan.com/projects/mommy#api-endpoint"
},
{
"content": "2. Technical Documentation",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::5",
"metadata": {
"title": "Mommy"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/mommy#2-technical-documentation"
},
{
"content": "Architecture Overview\n\nMommy is built using:\n- **Backend**: Fastify web framework (Node.js/TypeScript)\n- **Frontend**: Vanilla HTML/CSS/JavaScript (no frameworks)\n- **Configuration**: Modular phrase and persona configuration files",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::6",
"metadata": {
"title": "Mommy"
},
"title": "Architecture Overview",
"url": "https://docs.nhcarrigan.com/projects/mommy#architecture-overview"
},
{
"content": "Project Structure\n\n```\nsrc/\n├── index.ts # Main server entry point\n├── config/\n│ ├── html.ts # HTML template for landing page\n│ ├── mommy.ts # Mommy persona names (\"your mommy\", \"mama\", etc.)\n│ └── phrases.ts # 100+ encouraging phrase templates\n```",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::7",
"metadata": {
"title": "Mommy"
},
"title": "Project Structure",
"url": "https://docs.nhcarrigan.com/projects/mommy#project-structure"
},
{
"content": "Server Implementation\n\nThe application uses Fastify to serve:\n1. **Landing Page** (`/`): Returns the complete HTML interface\n2. **API Endpoint** (`/api`): Returns personalized encouraging messages",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::8",
"metadata": {
"title": "Mommy"
},
"title": "Server Implementation",
"url": "https://docs.nhcarrigan.com/projects/mommy#server-implementation"
},
{
"content": "Message Generation\n\nMessages are generated by:\n1. Randomly selecting a phrase template from `phrases.ts`\n2. Randomly selecting a \"mommy\" persona from `mommy.ts`\n3. Interpolating `{{ name }}` and `{{ mommy }}` variables in the template\n4. Converting to lowercase and returning as plain text",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::9",
"metadata": {
"title": "Mommy"
},
"title": "Message Generation",
"url": "https://docs.nhcarrigan.com/projects/mommy#message-generation"
},
{
"content": "Installation and Setup",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::10",
"metadata": {
"title": "Mommy"
},
"title": "Installation and Setup",
"url": "https://docs.nhcarrigan.com/projects/mommy#installation-and-setup"
},
{
"content": "Prerequisites\n- Node.js (18+ recommended)\n- pnpm package manager",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::11",
"metadata": {
"title": "Mommy"
},
"title": "Prerequisites",
"url": "https://docs.nhcarrigan.com/projects/mommy#prerequisites"
},
{
"content": "Development Setup\n```bash",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::12",
"metadata": {
"title": "Mommy"
},
"title": "Development Setup",
"url": "https://docs.nhcarrigan.com/projects/mommy#development-setup"
},
{
"content": "Install dependencies\npnpm install",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::13",
"metadata": {
"title": "Mommy"
},
"title": "Install dependencies",
"url": "https://docs.nhcarrigan.com/projects/mommy#install-dependencies"
},
{
"content": "Run in development mode with auto-reload\npnpm dev",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::14",
"metadata": {
"title": "Mommy"
},
"title": "Run in development mode with auto-reload",
"url": "https://docs.nhcarrigan.com/projects/mommy#run-in-development-mode-with-auto-reload"
},
{
"content": "Build for production\npnpm build",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::15",
"metadata": {
"title": "Mommy"
},
"title": "Build for production",
"url": "https://docs.nhcarrigan.com/projects/mommy#build-for-production"
},
{
"content": "Run production server\npnpm start",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::16",
"metadata": {
"title": "Mommy"
},
"title": "Run production server",
"url": "https://docs.nhcarrigan.com/projects/mommy#run-production-server"
},
{
"content": "Run tests\npnpm test",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::17",
"metadata": {
"title": "Mommy"
},
"title": "Run tests",
"url": "https://docs.nhcarrigan.com/projects/mommy#run-tests"
},
{
"content": "Lint code\npnpm lint\n```",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::18",
"metadata": {
"title": "Mommy"
},
"title": "Lint code",
"url": "https://docs.nhcarrigan.com/projects/mommy#lint-code"
},
{
"content": "Production Deployment\nThe server listens on port 8008 by default. For production deployment:\n1. Build the project: `pnpm build`\n2. Start the server: `pnpm start`\n3. Configure reverse proxy (nginx/Apache) if needed",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::19",
"metadata": {
"title": "Mommy"
},
"title": "Production Deployment",
"url": "https://docs.nhcarrigan.com/projects/mommy#production-deployment"
},
{
"content": "Configuration",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::20",
"metadata": {
"title": "Mommy"
},
"title": "Configuration",
"url": "https://docs.nhcarrigan.com/projects/mommy#configuration"
},
{
"content": "Adding New Phrases\nEdit `src/config/phrases.ts` to add new encouraging messages. Use:\n- `{{ name }}` for user's name interpolation\n- `{{ mommy }}` for mommy persona interpolation",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::21",
"metadata": {
"title": "Mommy"
},
"title": "Adding New Phrases",
"url": "https://docs.nhcarrigan.com/projects/mommy#adding-new-phrases"
},
{
"content": "Adding New Mommy Personas\nEdit `src/config/mommy.ts` to add new ways mommy refers to herself.",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::22",
"metadata": {
"title": "Mommy"
},
"title": "Adding New Mommy Personas",
"url": "https://docs.nhcarrigan.com/projects/mommy#adding-new-mommy-personas"
},
{
"content": "Testing\n\nThe project includes comprehensive tests using Vitest:\n- Server endpoint testing\n- Configuration validation\n- Phrase uniqueness verification\n- HTML response validation",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::23",
"metadata": {
"title": "Mommy"
},
"title": "Testing",
"url": "https://docs.nhcarrigan.com/projects/mommy#testing"
},
{
"content": "3. Legal Documentation",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::24",
"metadata": {
"title": "Mommy"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/mommy#3-legal-documentation"
},
{
"content": "License\n\nThis software is licensed under Naomi's Public License. Copyright held by Naomi Carrigan.",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::25",
"metadata": {
"title": "Mommy"
},
"title": "License",
"url": "https://docs.nhcarrigan.com/projects/mommy#license"
},
{
"content": "Privacy\n\nThe application:\n- Does not store user data persistently\n- Does not use cookies or tracking\n- Processes names only for message personalization\n- Does not log personal information",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::26",
"metadata": {
"title": "Mommy"
},
"title": "Privacy",
"url": "https://docs.nhcarrigan.com/projects/mommy#privacy"
},
{
"content": "Content Policy\n\nAll phrases are designed to be:\n- Supportive and encouraging\n- Appropriate for all ages\n- Non-discriminatory\n- Focused on positive reinforcement",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::27",
"metadata": {
"title": "Mommy"
},
"title": "Content Policy",
"url": "https://docs.nhcarrigan.com/projects/mommy#content-policy"
},
{
"content": "4. Contributing Documentation",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::28",
"metadata": {
"title": "Mommy"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/mommy#4-contributing-documentation"
},
{
"content": "Development Workflow\n\n1. **Fork and Clone**: Fork the repository and clone your fork\n2. **Install Dependencies**: Run `pnpm install`\n3. **Create Feature Branch**: `git checkout -b feature/your-feature`\n4. **Make Changes**: Implement your changes with tests\n5. **Test**: Run `pnpm test` and `pnpm lint`\n6. **Commit**: Use conventional commit messages\n7. **Pull Request**: Submit PR with clear description",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::29",
"metadata": {
"title": "Mommy"
},
"title": "Development Workflow",
"url": "https://docs.nhcarrigan.com/projects/mommy#development-workflow"
},
{
"content": "Code Standards\n\n- **TypeScript**: Strict typing enabled\n- **ESLint**: Uses @nhcarrigan/eslint-config\n- **Testing**: Vitest with coverage requirements\n- **Documentation**: JSDoc comments for all functions",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::30",
"metadata": {
"title": "Mommy"
},
"title": "Code Standards",
"url": "https://docs.nhcarrigan.com/projects/mommy#code-standards"
},
{
"content": "Adding Content",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::31",
"metadata": {
"title": "Mommy"
},
"title": "Adding Content",
"url": "https://docs.nhcarrigan.com/projects/mommy#adding-content"
},
{
"content": "New Encouraging Phrases\nTo add new phrases to `src/config/phrases.ts`:\n1. Follow the existing template format\n2. Use `{{ name }}` and `{{ mommy }}` placeholders\n3. Keep messages positive and supportive\n4. Ensure phrases are appropriate for all audiences\n5. Add tests to verify uniqueness",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::32",
"metadata": {
"title": "Mommy"
},
"title": "New Encouraging Phrases",
"url": "https://docs.nhcarrigan.com/projects/mommy#new-encouraging-phrases"
},
{
"content": "New Mommy Personas\nTo add new personas to `src/config/mommy.ts`:\n1. Add family-friendly terms\n2. Ensure they work grammatically in all phrase templates\n3. Test with existing phrases",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::33",
"metadata": {
"title": "Mommy"
},
"title": "New Mommy Personas",
"url": "https://docs.nhcarrigan.com/projects/mommy#new-mommy-personas"
},
{
"content": "Testing Guidelines\n\n- All new features must include tests\n- Maintain 100% test coverage\n- Test both success and error cases\n- Verify phrase interpolation works correctly",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::34",
"metadata": {
"title": "Mommy"
},
"title": "Testing Guidelines",
"url": "https://docs.nhcarrigan.com/projects/mommy#testing-guidelines"
},
{
"content": "Submission Guidelines\n\n- Follow existing code style\n- Include tests for new functionality\n- Update documentation as needed\n- Ensure all checks pass before submitting",
"file": "src/content/docs/projects/mommy.md",
"id": "src/content/docs/projects/mommy.md::35",
"metadata": {
"title": "Mommy"
},
"title": "Submission Guidelines",
"url": "https://docs.nhcarrigan.com/projects/mommy#submission-guidelines"
},
{
"content": "NHCarrigan Portfolio (hereinafter the \"Application\") is a static HTML landing page that serves as the primary web presence for NHCarrigan, a software engineering and community management consulting firm. The Application provides information about the organization's services, contact methods, past clients, and founder, while serving as a gateway to the broader NHCarrigan ecosystem of tools and communities.",
"file": "src/content/docs/projects/portfolio.md",
"id": "src/content/docs/projects/portfolio.md::0",
"metadata": {
"title": "NHCarrigan Portfolio"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/portfolio#"
},
{
"content": "1. User Documentation\n\n:::note\nThis section is coming soon!\n:::\n\nThis section is for those interacting with a live instance of the Application.",
"file": "src/content/docs/projects/portfolio.md",
"id": "src/content/docs/projects/portfolio.md::1",
"metadata": {
"title": "NHCarrigan Portfolio"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/portfolio#1-user-documentation"
},
{
"content": "Current Live Instance\n\nThe Application is currently deployed and accessible at [nhcarrigan.com](https://nhcarrigan.com).",
"file": "src/content/docs/projects/portfolio.md",
"id": "src/content/docs/projects/portfolio.md::2",
"metadata": {
"title": "NHCarrigan Portfolio"
},
"title": "Current Live Instance",
"url": "https://docs.nhcarrigan.com/projects/portfolio#current-live-instance"
},
{
"content": "Available Features\n\n- **Company Information**: Overview of NHCarrigan's consulting services specializing in community management and software engineering\n- **Service Offerings**: Details about tools and infrastructure development for online community management\n- **Contact Options**: Multiple ways to reach the organization including:\n - Public Discord community\n - Forum for long-form discussions\n - Commission inquiry form\n - General contact form\n - Paid meeting scheduling\n- **Past Work**: Links to founder's resume, client testimonials, sitemap, and open source code\n- **Founder Information**: Background about Naomi Carrigan and the organization's mission\n- **Resource Links**: Access to documentation, policies, and educational content",
"file": "src/content/docs/projects/portfolio.md",
"id": "src/content/docs/projects/portfolio.md::3",
"metadata": {
"title": "NHCarrigan Portfolio"
},
"title": "Available Features",
"url": "https://docs.nhcarrigan.com/projects/portfolio#available-features"
},
{
"content": "2. Technical Documentation\n\n:::note\nThis section is coming soon!\n:::\n\nThis section is for those interested in running their own instance of the Application.",
"file": "src/content/docs/projects/portfolio.md",
"id": "src/content/docs/projects/portfolio.md::4",
"metadata": {
"title": "NHCarrigan Portfolio"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/portfolio#2-technical-documentation"
},
{
"content": "Architecture\n\nThe Application is built as a simple static HTML website consisting of:\n- Single `index.html` file located in the `site/` directory\n- External CSS and JavaScript resources loaded from `cdn.nhcarrigan.com`\n- No build process or dependencies required",
"file": "src/content/docs/projects/portfolio.md",
"id": "src/content/docs/projects/portfolio.md::5",
"metadata": {
"title": "NHCarrigan Portfolio"
},
"title": "Architecture",
"url": "https://docs.nhcarrigan.com/projects/portfolio#architecture"
},
{
"content": "Deployment Requirements\n\n- Static web hosting capable of serving HTML files\n- No server-side processing required\n- No database or runtime dependencies",
"file": "src/content/docs/projects/portfolio.md",
"id": "src/content/docs/projects/portfolio.md::6",
"metadata": {
"title": "NHCarrigan Portfolio"
},
"title": "Deployment Requirements",
"url": "https://docs.nhcarrigan.com/projects/portfolio#deployment-requirements"
},
{
"content": "External Dependencies\n\n- CSS styling loaded from `https://cdn.nhcarrigan.com/headers/index.js`\n- Logo image served from `https://cdn.nhcarrigan.com/logo.png`",
"file": "src/content/docs/projects/portfolio.md",
"id": "src/content/docs/projects/portfolio.md::7",
"metadata": {
"title": "NHCarrigan Portfolio"
},
"title": "External Dependencies",
"url": "https://docs.nhcarrigan.com/projects/portfolio#external-dependencies"
},
{
"content": "3. Legal Documentation\n\n:::note\nThis section is coming soon!\n:::\n\nThis section is for expansions to our legal policies specific to the Application.",
"file": "src/content/docs/projects/portfolio.md",
"id": "src/content/docs/projects/portfolio.md::8",
"metadata": {
"title": "NHCarrigan Portfolio"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/portfolio#3-legal-documentation"
},
{
"content": "Current Legal Framework\n\nThe Application operates under NHCarrigan's standard legal documentation:\n- **License**: Global software license (available at docs.nhcarrigan.com)\n- **Copyright**: Held by Naomi Carrigan\n- **Code of Conduct**: Available in repository and at docs.nhcarrigan.com\n- **Privacy Policy**: Referenced on the website\n- **Terms of Service**: Referenced on the website",
"file": "src/content/docs/projects/portfolio.md",
"id": "src/content/docs/projects/portfolio.md::9",
"metadata": {
"title": "NHCarrigan Portfolio"
},
"title": "Current Legal Framework",
"url": "https://docs.nhcarrigan.com/projects/portfolio#current-legal-framework"
},
{
"content": "4. Contributing Documentation\n\n:::note\nThis section is coming soon!\n:::\n\nThis section is for documentation related to contributing to the Application's codebase.",
"file": "src/content/docs/projects/portfolio.md",
"id": "src/content/docs/projects/portfolio.md::10",
"metadata": {
"title": "NHCarrigan Portfolio"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/portfolio#4-contributing-documentation"
},
{
"content": "Current Contributing Guidelines\n\n- Contributing guidelines available at: https://docs.nhcarrigan.com/#/contributing\n- Code of Conduct must be followed (see CODE_OF_CONDUCT.md)\n- Pull requests welcome for proposed changes\n- Issues can be reported through the repository's issue tracker\n- Community support available through Discord at chat.nhcarrigan.com",
"file": "src/content/docs/projects/portfolio.md",
"id": "src/content/docs/projects/portfolio.md::11",
"metadata": {
"title": "NHCarrigan Portfolio"
},
"title": "Current Contributing Guidelines",
"url": "https://docs.nhcarrigan.com/projects/portfolio#current-contributing-guidelines"
},
{
"content": "Repository Structure\n\n```\n/\n├── CODE_OF_CONDUCT.md # Community guidelines\n├── CONTRIBUTING.md # Link to contributing guidelines\n├── LICENSE.md # License information\n├── PRIVACY.md # Privacy policy\n├── README.md # Project overview\n├── SECURITY.md # Security policies\n├── TERMS.md # Terms of service\n├── site/\n│ └── index.html # Main website file\n└── .gitea/ # Issue and PR templates\n```",
"file": "src/content/docs/projects/portfolio.md",
"id": "src/content/docs/projects/portfolio.md::12",
"metadata": {
"title": "NHCarrigan Portfolio"
},
"title": "Repository Structure",
"url": "https://docs.nhcarrigan.com/projects/portfolio#repository-structure"
},
{
"content": "Contact Information\n\n- **Email**: contact@nhcarrigan.com\n- **Discord**: https://chat.nhcarrigan.com\n- **Website**: https://nhcarrigan.com",
"file": "src/content/docs/projects/portfolio.md",
"id": "src/content/docs/projects/portfolio.md::13",
"metadata": {
"title": "NHCarrigan Portfolio"
},
"title": "Contact Information",
"url": "https://docs.nhcarrigan.com/projects/portfolio#contact-information"
},
{
"content": "Naomi's Resume (hereinafter the \"Application\") is a static site generator that transforms a YAML or JSON resume source into a styled HTML resume website, along with downloadable formats. It is designed for easy customization and deployment, using TypeScript for parsing and rendering, and outputs a ready-to-host static site.",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::0",
"metadata": {
"title": "Naomi's Resume"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/resume#"
},
{
"content": "1. User Documentation\n\nThe Application generates a professional, accessible resume website from structured data. The live website displays:",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::1",
"metadata": {
"title": "Naomi's Resume"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/resume#1-user-documentation"
},
{
"content": "Features\n- **Responsive Design**: Mobile-friendly layout that works on all devices\n- **Print-Optimized**: Print or save as PDF with optimized styling\n- **Multiple Formats**: Download resume data in YAML or JSON format\n- **Professional Sections**: Employment, volunteer work, education, certifications, projects, and publications\n- **Navigation Links**: Quick jump links to different resume sections\n- **Contact Integration**: Direct links to testimonials and contact forms",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::2",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Features",
"url": "https://docs.nhcarrigan.com/projects/resume#features"
},
{
"content": "Using the Resume Website\n1. **Browse Sections**: Use the navigation links to jump to specific sections (Employment, Education, etc.)\n2. **Download Data**: Click \"YAML\" or \"JSON\" links to download the resume in structured formats\n3. **Print/Save PDF**: Click the \"print\" link to open browser print dialog for PDF saving\n4. **Contact**: Use the \"submit your own request\" link to contact for opportunities",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::3",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Using the Resume Website",
"url": "https://docs.nhcarrigan.com/projects/resume#using-the-resume-website"
},
{
"content": "Resume Sections\n- **Employment**: Current and past positions with company details, dates, and descriptions\n- **Volunteer Work**: Community involvement and volunteer positions\n- **Education**: Academic background and certifications\n- **Certifications**: Professional certifications and credentials\n- **Projects**: Notable projects and achievements\n- **Publications**: Articles, papers, and published works",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::4",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Resume Sections",
"url": "https://docs.nhcarrigan.com/projects/resume#resume-sections"
},
{
"content": "2. Technical Documentation\n\nThe Resume Builder is a Node.js-based static site generator that transforms YAML resume data into a complete website.",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::5",
"metadata": {
"title": "Naomi's Resume"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/resume#2-technical-documentation"
},
{
"content": "Architecture\n- **TypeScript Parser**: `src/parse.ts` - Main build script that processes YAML data\n- **Data Schema**: `src/interfaces/resume.ts` - TypeScript interfaces defining resume structure\n- **Source Data**: `src/source.yaml` - YAML file containing all resume information\n- **Static Assets**: `src/static/` - CSS styles and JavaScript for the generated site\n- **Output**: `site/` - Generated HTML, CSS, JS, YAML, and JSON files",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::6",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Architecture",
"url": "https://docs.nhcarrigan.com/projects/resume#architecture"
},
{
"content": "Requirements\n- Node.js (latest LTS recommended)\n- pnpm package manager\n- TypeScript support via tsx",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::7",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Requirements",
"url": "https://docs.nhcarrigan.com/projects/resume#requirements"
},
{
"content": "Installation & Setup\n```bash",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::8",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Installation & Setup",
"url": "https://docs.nhcarrigan.com/projects/resume#installation-&-setup"
},
{
"content": "Clone the repository\ngit clone <repository-url>\ncd resume",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::9",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Clone the repository",
"url": "https://docs.nhcarrigan.com/projects/resume#clone-the-repository"
},
{
"content": "Install dependencies\npnpm install",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::10",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Install dependencies",
"url": "https://docs.nhcarrigan.com/projects/resume#install-dependencies"
},
{
"content": "Build the site\npnpm run build\n```",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::11",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Build the site",
"url": "https://docs.nhcarrigan.com/projects/resume#build-the-site"
},
{
"content": "Available Scripts\n- `pnpm run build` - Generate the static site from YAML data\n- `pnpm run lint` - Run ESLint for code quality\n- `pnpm run spelling` - Check spelling in source.yaml\n- `pnpm run test` - Run validation tests",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::12",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Available Scripts",
"url": "https://docs.nhcarrigan.com/projects/resume#available-scripts"
},
{
"content": "Data Structure\nThe resume data follows this schema:\n- `name`: Full name\n- `contact`: Contact information\n- `summary`: Professional summary\n- `employment[]`: Array of employment positions\n- `volunteer[]`: Array of volunteer positions \n- `education[]`: Array of educational background\n- `certifications[]`: Array of certifications\n- `projects[]`: Array of notable projects\n- `publications[]`: Array of publications",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::13",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Data Structure",
"url": "https://docs.nhcarrigan.com/projects/resume#data-structure"
},
{
"content": "Customization\n1. **Content**: Edit `src/source.yaml` with your resume data\n2. **Styling**: Modify `src/static/style.css` for visual customization\n3. **Structure**: Update `src/parse.ts` to change HTML generation\n4. **Types**: Extend `src/interfaces/resume.ts` for new data fields",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::14",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Customization",
"url": "https://docs.nhcarrigan.com/projects/resume#customization"
},
{
"content": "Deployment\nThe `site/` directory contains all files needed for static hosting:\n- `index.html` - Main resume webpage\n- `style.css` - Styling\n- `dates.js` - JavaScript for date handling\n- `resume.yaml` - YAML format download\n- `resume.json` - JSON format download\n\nDeploy to any static hosting service (Netlify, Vercel, GitHub Pages, etc.)",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::15",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Deployment",
"url": "https://docs.nhcarrigan.com/projects/resume#deployment"
},
{
"content": "3. Legal Documentation",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::16",
"metadata": {
"title": "Naomi's Resume"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/resume#3-legal-documentation"
},
{
"content": "License\nThis software is licensed under Naomi's Public License. Copyright held by Naomi Carrigan.\n\nFor complete legal terms, refer to:\n- [Global Software License](https://docs.nhcarrigan.com/#/license)\n- [LICENSE.md](LICENSE.md) in the repository\n- [PRIVACY.md](PRIVACY.md) for privacy policy\n- [TERMS.md](TERMS.md) for terms of service\n- [SECURITY.md](SECURITY.md) for security policies",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::17",
"metadata": {
"title": "Naomi's Resume"
},
"title": "License",
"url": "https://docs.nhcarrigan.com/projects/resume#license"
},
{
"content": "Data Privacy\nThe resume website is a static site that:\n- Does not collect user data\n- Does not use cookies or tracking\n- Does not store personal information\n- Contains only publicly available professional information",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::18",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Data Privacy",
"url": "https://docs.nhcarrigan.com/projects/resume#data-privacy"
},
{
"content": "Third-Party Services\nThe generated website may include links to external services:\n- Testimonials platform (testimonials.nhcarrigan.com)\n- Contact forms (forms.nhcarrigan.com)\n- External headers/scripts (cdn.nhcarrigan.com)\n\nUsers should review the privacy policies of any external services they choose to interact with.",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::19",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Third-Party Services",
"url": "https://docs.nhcarrigan.com/projects/resume#third-party-services"
},
{
"content": "4. Contributing Documentation",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::20",
"metadata": {
"title": "Naomi's Resume"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/resume#4-contributing-documentation"
},
{
"content": "Getting Started\n1. Fork the repository\n2. Clone your fork locally\n3. Install dependencies: `pnpm install`\n4. Make your changes\n5. Test your changes: `pnpm run build && pnpm run test && pnpm run lint && pnpm run spelling`\n6. Submit a pull request",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::21",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Getting Started",
"url": "https://docs.nhcarrigan.com/projects/resume#getting-started"
},
{
"content": "Contribution Guidelines\n- Read the [Code of Conduct](CODE_OF_CONDUCT.md) before participating\n- Follow the existing code style and conventions\n- Only modify `src/source.yaml` for content changes\n- Do not commit files in the `site/` directory (auto-generated)\n- Ensure all tests pass before submitting\n- Provide clear commit messages and PR descriptions",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::22",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Contribution Guidelines",
"url": "https://docs.nhcarrigan.com/projects/resume#contribution-guidelines"
},
{
"content": "Development Workflow\n1. **Content Updates**: Edit `src/source.yaml` with new resume information\n2. **Code Changes**: Modify TypeScript files in `src/` directory\n3. **Styling**: Update CSS in `src/static/style.css`\n4. **Testing**: Add tests in `test/` directory using Vitest\n5. **Build**: Run `pnpm run build` to generate the site",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::23",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Development Workflow",
"url": "https://docs.nhcarrigan.com/projects/resume#development-workflow"
},
{
"content": "Quality Checks\nAll contributions must pass:\n- **ESLint**: Code quality and style checking\n- **Spelling**: cspell validation of YAML content \n- **Tests**: Vitest validation of data structure\n- **Build**: Successful site generation",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::24",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Quality Checks",
"url": "https://docs.nhcarrigan.com/projects/resume#quality-checks"
},
{
"content": "Reporting Issues\n- Use GitHub Issues for bugs and feature requests\n- Provide detailed reproduction steps for bugs\n- Include relevant error messages and logs\n- Tag issues appropriately (bug, enhancement, documentation)",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::25",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Reporting Issues",
"url": "https://docs.nhcarrigan.com/projects/resume#reporting-issues"
},
{
"content": "Contact\n- [Chat Server](http://chat.nhcarrigan.com) for real-time discussion\n- Email: contact@nhcarrigan.com for direct communication\n- GitHub Issues for project-specific discussions",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::26",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Contact",
"url": "https://docs.nhcarrigan.com/projects/resume#contact"
},
{
"content": "Project Structure\n```\nsrc/\n├── parse.ts # Main build script\n├── source.yaml # Resume data (edit this)\n├── interfaces/\n│ └── resume.ts # TypeScript type definitions\n└── static/\n ├── style.css # Website styling\n └── dates.js # Date handling JavaScript\n\ntest/\n└── validate.spec.ts # Validation tests\n\nsite/ # Generated output (do not edit)\n├── index.html\n├── style.css\n├── dates.js\n├── resume.yaml\n└── resume.json\n```",
"file": "src/content/docs/projects/resume.md",
"id": "src/content/docs/projects/resume.md::27",
"metadata": {
"title": "Naomi's Resume"
},
"title": "Project Structure",
"url": "https://docs.nhcarrigan.com/projects/resume#project-structure"
},
{
"content": "Rosalia Nightsong (hereinafter the \"Application\") is a centralized alert server that receives and forwards application logs, errors, uptime notifications, Discord entitlements, and Stripe payment events to both email and Discord channels for real-time monitoring and notification purposes.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::0",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#"
},
{
"content": "1. User Documentation\n\nThis section is for those interacting with a live instance of the Application.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::1",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#1-user-documentation"
},
{
"content": "Overview\n\nRosalia Nightsong serves as a webhook endpoint and notification hub for various services. The application accepts HTTP POST requests containing structured data and forwards them as formatted notifications to configured email addresses and Discord channels.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::2",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Overview",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#overview"
},
{
"content": "API Endpoints\n\nThe Application provides several webhook endpoints:\n\n- **GET /** - Returns the application's homepage with basic information\n- **POST /log** - Accepts application log messages \n- **POST /error** - Accepts error reports with stack traces\n- **POST /uptime** - Accepts uptime/health check notifications\n- **POST /entitlement** - Handles Discord entitlement purchase notifications\n- **POST /stripe** - Processes Stripe payment webhook events",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::3",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "API Endpoints",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#api-endpoints"
},
{
"content": "Authentication\n\nAll POST endpoints (except Stripe webhooks) require authentication via the `Authorization` header containing a valid API token. Discord entitlements use Ed25519 signature verification for security.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::4",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Authentication",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#authentication"
},
{
"content": "Supported Applications\n\nThe server maintains a registry of supported Discord applications with their respective verification keys for entitlement webhook validation.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::5",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Supported Applications",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#supported-applications"
},
{
"content": "2. Technical Documentation\n\nThis section is for those interested in running their own instance of the Application.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::6",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#2-technical-documentation"
},
{
"content": "Architecture\n\nRosalia Nightsong is built using:\n\n- **Runtime**: Node.js with TypeScript\n- **Web Framework**: Fastify for high-performance HTTP handling\n- **Email**: Nodemailer with SMTP transport\n- **Discord Integration**: Discord API v10 for channel messaging\n- **Payment Processing**: Stripe SDK for webhook handling\n- **Webhook Verification**: discord-verify for Ed25519 signature validation",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::7",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Architecture",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#architecture"
},
{
"content": "Environment Configuration\n\nThe application requires the following environment variables:\n\n```env\nMATRIX_ACCESS_TOKEN=\"matrix_access_token\"\nMATRIX_ROOM_ID=\"matrix_room_id\"\nAPI_AUTH=\"api_authentication_token\"\nEMAIL_PASSWORD=\"smtp_password\"\nDISCORD_WEBHOOK_URL=\"discord_webhook_url\"\nSTRIPE_SECRET_KEY=\"stripe_secret_key\"\nSTRIPE_WEBHOOK_SECRET=\"stripe_webhook_secret\"\nDISCORD_TOKEN=\"discord_bot_token\"\n```",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::8",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Environment Configuration",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#environment-configuration"
},
{
"content": "Installation and Setup\n\n1. **Prerequisites**\n - Node.js 22+ with pnpm package manager\n - TypeScript compiler\n - Access to SMTP server for email notifications\n - Discord bot token and channel access\n - Stripe account with webhook configuration (if using payment features)\n\n2. **Installation**\n ```bash\n pnpm install\n ```\n\n3. **Build**\n ```bash\n pnpm run build\n ```\n\n4. **Start**\n ```bash\n pnpm start\n ```\n\nThe server will listen on port 5003 by default.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::9",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Installation and Setup",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#installation-and-setup"
},
{
"content": "API Schema Validation\n\nThe application uses JSON schema validation for incoming requests:",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::10",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "API Schema Validation",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#api-schema-validation"
},
{
"content": "Log Endpoint (`/log`)\n```typescript\n{\n application: string;\n level: string;\n message: string;\n}\n```",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::11",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Log Endpoint (`/log`)",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#log-endpoint-(`/log`)"
},
{
"content": "Error Endpoint (`/error`)\n```typescript\n{\n application: string;\n context: string;\n message: string;\n stack: string;\n}\n```",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::12",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Error Endpoint (`/error`)",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#error-endpoint-(`/error`)"
},
{
"content": "Uptime Endpoint (`/uptime`)\n```typescript\n{\n application: string;\n message: string;\n}\n```",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::13",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Uptime Endpoint (`/uptime`)",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#uptime-endpoint-(`/uptime`)"
},
{
"content": "Notification Formats\n\n**Email Notifications**: Plain text format sent to configured SMTP recipient\n**Discord Notifications**: Rich embed format with structured components and markdown support",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::14",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Notification Formats",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#notification-formats"
},
{
"content": "Security Features\n\n- API token authentication for log/error/uptime endpoints\n- Ed25519 signature verification for Discord entitlements\n- Stripe webhook signature validation\n- Request body validation against JSON schemas\n- Error handling with notification forwarding",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::15",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Security Features",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#security-features"
},
{
"content": "Monitoring and Logging\n\nThe application includes comprehensive error handling that forwards internal errors to the configured notification channels, ensuring operational visibility and quick incident response.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::16",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Monitoring and Logging",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#monitoring-and-logging"
},
{
"content": "3. Legal Documentation\n\nThis section is for expansions to our legal policies specific to the Application.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::17",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#3-legal-documentation"
},
{
"content": "License\n\nThis software is licensed under Naomi's Public License. Copyright held by Naomi Carrigan.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::18",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "License",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#license"
},
{
"content": "Data Handling\n\nThe Application processes and forwards notification data but does not persistently store user data. All webhook payloads are processed in memory and forwarded to configured notification channels.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::19",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Data Handling",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#data-handling"
},
{
"content": "Third-Party Services\n\nThe Application integrates with:\n- Discord API for message delivery\n- Stripe API for payment webhook processing\n- SMTP servers for email delivery\n\nUsers should review the privacy policies and terms of service for these third-party services.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::20",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Third-Party Services",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#third-party-services"
},
{
"content": "4. Contributing Documentation\n\nThis section is for documentation related to contributing to the Application's codebase.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::21",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#4-contributing-documentation"
},
{
"content": "Development Setup\n\n1. **Clone the repository**\n2. **Install dependencies**: `pnpm install`\n3. **Configure environment variables** in `prod.env`\n4. **Run linting**: `pnpm run lint`\n5. **Build the project**: `pnpm run build`\n6. **Start development server**: `pnpm start`",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::22",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Development Setup",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#development-setup"
},
{
"content": "Code Structure\n\n```\nsrc/\n├── config/ # Application configuration and data\n├── interfaces/ # TypeScript interface definitions\n├── modules/ # Core functionality modules\n├── schemas/ # JSON schema validation definitions\n├── server/ # Fastify server setup and routing\n└── utils/ # Utility functions\n```",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::23",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Code Structure",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#code-structure"
},
{
"content": "Development Guidelines\n\n- Follow the existing ESLint configuration (`@nhcarrigan/eslint-config`)\n- Use TypeScript strict mode\n- Include comprehensive error handling\n- Add appropriate JSDoc comments for public functions\n- Maintain the existing code style and structure",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::24",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Development Guidelines",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#development-guidelines"
},
{
"content": "Testing\n\nCurrently, no automated tests are configured. Contributors are encouraged to manually test all endpoints and error scenarios.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::25",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Testing",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#testing"
},
{
"content": "Pull Request Process\n\n1. Review the [contributing guidelines](CONTRIBUTING.md)\n2. Follow the [Code of Conduct](CODE_OF_CONDUCT.md)\n3. Create a feature branch from main\n4. Make your changes with appropriate commit messages\n5. Ensure linting passes\n6. Submit a pull request with a clear description",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::26",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Pull Request Process",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#pull-request-process"
},
{
"content": "Contact\n\nFor questions or support, contact through the [Chat Server](http://chat.nhcarrigan.com) or email `contact@nhcarrigan.com`.",
"file": "src/content/docs/projects/rosalia-nightsong.md",
"id": "src/content/docs/projects/rosalia-nightsong.md::27",
"metadata": {
"title": "Rosalia Nightsong"
},
"title": "Contact",
"url": "https://docs.nhcarrigan.com/projects/rosalia-nightsong#contact"
},
{
"content": "Static Pages (hereinafter the \"Application\") is a collection of static HTML pages and related data/scripts for various small web utilities and content sections. The application provides interactive explorers for books and music libraries, product directories, games, chat services, testimonials, and other utility pages. It is designed to be easily synchronized to a production server using shell scripts and requires no backend or dynamic server-side logic.",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::0",
"metadata": {
"title": "Static Pages"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/static-pages#"
},
{
"content": "1. User Documentation\n\nThe Application provides several interactive web utilities:",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::1",
"metadata": {
"title": "Static Pages"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/static-pages#1-user-documentation"
},
{
"content": "Book Library\n\nVisit at https://books.nhcarrigan.com\n\nAn interactive explorer for Naomi's book collection. Users can browse and search through the library of books with filtering capabilities by author. The interface displays book titles and authors extracted from digital book files.",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::2",
"metadata": {
"title": "Static Pages"
},
"title": "Book Library",
"url": "https://docs.nhcarrigan.com/projects/static-pages#book-library"
},
{
"content": "Music Library\n\nVisit at https://music.nhcarrigan.com\n\nAn interactive explorer for Naomi's music collection. Similar to the book library, users can browse and search through songs with filtering by artist. The interface displays song titles and artists extracted from audio file metadata.",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::3",
"metadata": {
"title": "Static Pages"
},
"title": "Music Library",
"url": "https://docs.nhcarrigan.com/projects/static-pages#music-library"
},
{
"content": "Games\n\nVisit at https://games.nhcarrigan.com\n\nA landing page showcasing various games developed by NHCarrigan, including links to the Beccalia Series and other game projects.",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::4",
"metadata": {
"title": "Static Pages"
},
"title": "Games",
"url": "https://docs.nhcarrigan.com/projects/static-pages#games"
},
{
"content": "BlueSky Handle Generator\n\nVisit at https://naomi.party\n\nA service page for provisioning custom Bluesky handles under the naomi.party domain. Currently requires manual processing through the Discord support server.",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::5",
"metadata": {
"title": "Static Pages"
},
"title": "BlueSky Handle Generator",
"url": "https://docs.nhcarrigan.com/projects/static-pages#bluesky-handle-generator"
},
{
"content": "Testimonials\n\nVisit at https://testimonials.nhcarrigan.com\n\nA showcase page displaying testimonials from past clients about NHCarrigan's work and services.",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::6",
"metadata": {
"title": "Static Pages"
},
"title": "Testimonials",
"url": "https://docs.nhcarrigan.com/projects/static-pages#testimonials"
},
{
"content": "Link Redirector\n\nVisit at https://nhcarrigan.link\n\nA utility page that serves as a fallback for improperly configured subdomain redirects, providing users with support contact information.\n\nThis section is for those interacting with a live instance of the Application.",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::7",
"metadata": {
"title": "Static Pages"
},
"title": "Link Redirector",
"url": "https://docs.nhcarrigan.com/projects/static-pages#link-redirector"
},
{
"content": "User Manual\n\nVisit at https://manual.nhcarrigan.com\n\nA brief description of what it is like to work with Naomi, and how to cultivate an environment where she can thrive.",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::8",
"metadata": {
"title": "Static Pages"
},
"title": "User Manual",
"url": "https://docs.nhcarrigan.com/projects/static-pages#user-manual"
},
{
"content": "2. Technical Documentation",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::9",
"metadata": {
"title": "Static Pages"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/static-pages#2-technical-documentation"
},
{
"content": "System Requirements\n- Unix-like operating system (Linux/macOS)\n- Bash shell\n- `rsync` for deployment\n- `exiftool` for extracting book metadata\n- `mid3v2` for extracting music metadata \n- `jq` for JSON processing\n- Access to Gitea API (for products functionality)\n- Web server capable of serving static files",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::10",
"metadata": {
"title": "Static Pages"
},
"title": "System Requirements",
"url": "https://docs.nhcarrigan.com/projects/static-pages#system-requirements"
},
{
"content": "Project Structure\n```\n├── books/ # Book library interface\n│ ├── index.html # Main book explorer page\n│ └── books.json # Generated book data\n├── music/ # Music library interface \n│ ├── index.html # Main music explorer page\n│ └── songs.json # Generated music data\n├── products/ # Product directory\n│ ├── index.html # Product listing page\n│ └── data.json # Generated product data\n├── games/ # Games showcase\n├── bsky/ # BlueSky handle service\n├── testimonials/ # Client testimonials\n├── link-redirector/ # Redirect fallback\n├── mail/ # Mail service (manual sync)\n├── manual/ # Manual/documentation\n├── sitemap/ # Site navigation\n├── books.sh # Book data generator script\n├── songs.sh # Music data generator script \n├── products.sh # Product data generator script\n└── sync.sh # Deployment script\n```",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::11",
"metadata": {
"title": "Static Pages"
},
"title": "Project Structure",
"url": "https://docs.nhcarrigan.com/projects/static-pages#project-structure"
},
{
"content": "Data Generation Scripts\n\n**Book Library (`books.sh`)**\n- Scans `/home/naomi/cloud/Books` directory for book files\n- Extracts title and author metadata using `exiftool`\n- Generates `books/books.json` with book data\n- Handles files without metadata by using filenames\n\n**Music Library (`songs.sh`)** \n- Scans `/home/naomi/music` directory for audio files\n- Extracts title and artist metadata using `mid3v2`\n- Generates `music/songs.json` with song data\n- Falls back to filename parsing for missing metadata\n\n**Product Directory (`products.sh`)**\n- Fetches repository data from Gitea API\n- Organizes projects by category (public, games, private, archived)\n- Generates `products/data.json` with project information\n- Requires `GITEA_TOKEN` environment variable",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::12",
"metadata": {
"title": "Static Pages"
},
"title": "Data Generation Scripts",
"url": "https://docs.nhcarrigan.com/projects/static-pages#data-generation-scripts"
},
{
"content": "Deployment\n\nThe deployment process uses `sync.sh` which:\n1. Syncs all directories to production server using `rsync`\n2. Targets `prod:/home/nhcarrigan` for most content\n3. Requires manual sync for `mail/index.html` to `mail:/home/user-data/www/default`\n\n**Deployment Command:**\n```bash\n./sync.sh\n```",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::13",
"metadata": {
"title": "Static Pages"
},
"title": "Deployment",
"url": "https://docs.nhcarrigan.com/projects/static-pages#deployment"
},
{
"content": "Running Your Own Instance\n\n1. **Clone the repository**\n2. **Install dependencies:**\n ```bash\n # Ubuntu/Debian\n sudo apt install exiftool python3-mutagen jq rsync\n \n # macOS\n brew install exiftool jq rsync\n pip3 install mutagen\n ```\n\n3. **Configure data sources:**\n - Update paths in `books.sh` for your book collection\n - Update paths in `songs.sh` for your music collection \n - Set `GITEA_TOKEN` environment variable for products functionality\n - Modify `products.sh` with your Gitea instance URL and organizations\n\n4. **Generate data:**\n ```bash\n ./books.sh # Generate book library data\n ./songs.sh # Generate music library data\n ./products.sh # Generate product directory data\n ```\n\n5. **Serve static files:**\n ```bash\n # Simple Python server for testing\n python3 -m http.server 8000\n ```\n\n6. **Deploy to production:**\n - Modify `sync.sh` with your server details\n - Ensure SSH key authentication is configured\n - Run `./sync.sh`\n\nThis section is for those interested in running their own instance of the Application.",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::14",
"metadata": {
"title": "Static Pages"
},
"title": "Running Your Own Instance",
"url": "https://docs.nhcarrigan.com/projects/static-pages#running-your-own-instance"
},
{
"content": "3. Legal Documentation\n\nThe Application operates under NHCarrigan's standard legal framework:",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::15",
"metadata": {
"title": "Static Pages"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/static-pages#3-legal-documentation"
},
{
"content": "License\nThis software is licensed under the [global software license](https://docs.nhcarrigan.com/#/license). Copyright is held by Naomi Carrigan.",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::16",
"metadata": {
"title": "Static Pages"
},
"title": "License",
"url": "https://docs.nhcarrigan.com/projects/static-pages#license"
},
{
"content": "Privacy Policy\nPrivacy considerations for the Application are covered under the [global privacy policy](PRIVACY.md).",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::17",
"metadata": {
"title": "Static Pages"
},
"title": "Privacy Policy",
"url": "https://docs.nhcarrigan.com/projects/static-pages#privacy-policy"
},
{
"content": "Terms of Service \nTerms of service for the Application are outlined in [TERMS.md](TERMS.md).",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::18",
"metadata": {
"title": "Static Pages"
},
"title": "Terms of Service",
"url": "https://docs.nhcarrigan.com/projects/static-pages#terms-of-service"
},
{
"content": "Code of Conduct\nAll interactions with the Application's community and codebase are governed by the [Code of Conduct](https://docs.nhcarrigan.com/#/coc), referenced in [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md).",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::19",
"metadata": {
"title": "Static Pages"
},
"title": "Code of Conduct",
"url": "https://docs.nhcarrigan.com/projects/static-pages#code-of-conduct"
},
{
"content": "Security Policy\nSecurity reporting and handling procedures are documented in [SECURITY.md](SECURITY.md).",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::20",
"metadata": {
"title": "Static Pages"
},
"title": "Security Policy",
"url": "https://docs.nhcarrigan.com/projects/static-pages#security-policy"
},
{
"content": "Data Handling\n- **Book Library**: Processes local book file metadata only\n- **Music Library**: Processes local music file metadata only \n- **Product Directory**: Fetches public repository information from Gitea API\n- **BlueSky Service**: Collects handle requests through Discord (manual process)\n- **No personal data**: The Application does not collect or store personal user data directly\n\nThis section is for expansions to our legal policies specific to the Application.",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::21",
"metadata": {
"title": "Static Pages"
},
"title": "Data Handling",
"url": "https://docs.nhcarrigan.com/projects/static-pages#data-handling"
},
{
"content": "4. Contributing Documentation",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::22",
"metadata": {
"title": "Static Pages"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/static-pages#4-contributing-documentation"
},
{
"content": "Getting Started\nContributors should review the [global contributing guidelines](https://docs.nhcarrigan.com/#/contributing) referenced in [CONTRIBUTING.md](CONTRIBUTING.md).",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::23",
"metadata": {
"title": "Static Pages"
},
"title": "Getting Started",
"url": "https://docs.nhcarrigan.com/projects/static-pages#getting-started"
},
{
"content": "Development Workflow\n\n1. **Fork and Clone**\n ```bash\n git clone https://github.com/your-username/Static Pages.git\n cd Static Pages\n ```\n\n2. **Set Up Development Environment**\n - Install required dependencies (see Technical Documentation)\n - Configure data source paths for testing\n - Set up environment variables if working with products functionality\n\n3. **Making Changes**\n - **HTML Pages**: Edit individual `index.html` files in respective directories\n - **Data Scripts**: Modify `*.sh` scripts for data generation logic\n - **Deployment**: Update `sync.sh` for deployment configuration changes\n\n4. **Testing Changes**\n ```bash\n # Test data generation\n ./books.sh\n ./songs.sh \n ./products.sh\n \n # Test locally\n python3 -m http.server 8000\n ```\n\n5. **Submitting Changes**\n - Create feature branch: `git checkout -b feature/your-feature`\n - Commit changes with descriptive messages\n - Push to your fork and create a Pull Request\n - Ensure all data generation scripts work correctly",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::24",
"metadata": {
"title": "Static Pages"
},
"title": "Development Workflow",
"url": "https://docs.nhcarrigan.com/projects/static-pages#development-workflow"
},
{
"content": "Code Style Guidelines\n- **HTML**: Use semantic HTML5 elements, include proper meta tags\n- **Shell Scripts**: Follow bash best practices, include error handling\n- **JSON Data**: Ensure proper formatting and validation\n- **Documentation**: Update relevant documentation for new features",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::25",
"metadata": {
"title": "Static Pages"
},
"title": "Code Style Guidelines",
"url": "https://docs.nhcarrigan.com/projects/static-pages#code-style-guidelines"
},
{
"content": "Areas for Contribution\n- **UI/UX Improvements**: Enhance styling and user experience of static pages\n- **Data Processing**: Improve metadata extraction and data generation scripts \n- **New Features**: Add new utility pages or improve existing functionality\n- **Documentation**: Expand user guides and technical documentation\n- **Testing**: Add validation and testing for data generation processes\n- **Accessibility**: Improve accessibility compliance across all pages",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::26",
"metadata": {
"title": "Static Pages"
},
"title": "Areas for Contribution",
"url": "https://docs.nhcarrigan.com/projects/static-pages#areas-for-contribution"
},
{
"content": "Communication\n- **Issues**: Report bugs and request features through GitHub Issues\n- **Support**: Join the [chat server](https://chat.nhcarrigan.com) for discussion\n- **Contact**: Reach out via email at `contact@nhcarrigan.com`",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::27",
"metadata": {
"title": "Static Pages"
},
"title": "Communication",
"url": "https://docs.nhcarrigan.com/projects/static-pages#communication"
},
{
"content": "Review Process\nAll Pull Requests are reviewed for:\n- Code quality and adherence to project standards\n- Functionality and testing\n- Documentation updates\n- Security considerations\n- Compatibility with existing deployment process",
"file": "src/content/docs/projects/static-pages.md",
"id": "src/content/docs/projects/static-pages.md::28",
"metadata": {
"title": "Static Pages"
},
"title": "Review Process",
"url": "https://docs.nhcarrigan.com/projects/static-pages#review-process"
},
{
"content": "Website Headers (hereinafter the \"Application\") is a JavaScript/TypeScript library that injects standardized metadata, styles, and UI components (such as footers and modals) into web pages. It is designed to provide consistent branding, accessibility, and legal compliance for Naomi Carrigan's web properties. The Application dynamically adds Open Graph and Twitter meta tags, favicons, global styles, a themed footer, analytics scripts, and a community call-to-action modal. It also supports theme toggling and audio playback for enhanced user experience.",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::0",
"metadata": {
"title": "Website Headers"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/projects/website-headers#"
},
{
"content": "1. User Documentation",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::1",
"metadata": {
"title": "Website Headers"
},
"title": "1. User Documentation",
"url": "https://docs.nhcarrigan.com/projects/website-headers#1-user-documentation"
},
{
"content": "What does this library do?\n\nThe Website Headers library automatically enhances any webpage by injecting:\n\n- **SEO metadata**: Open Graph and Twitter Card meta tags for better social media sharing\n- **Favicons**: Complete set of favicon files for various devices and platforms\n- **Global styling**: Consistent branding with OpenDyslexic font, custom cursor, and themed UI\n- **Footer component**: Standardized footer with copyright, social links, theme toggle, and donation button\n- **Analytics**: Plausible Analytics integration with event tracking\n- **Community features**: Periodic modal popup encouraging users to join the community\n- **Theme support**: Light/dark theme toggle with localStorage persistence\n- **Audio controls**: Optional theme music playback\n- **TreeNation integration**: Carbon offset widget display",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::2",
"metadata": {
"title": "Website Headers"
},
"title": "What does this library do?",
"url": "https://docs.nhcarrigan.com/projects/website-headers#what-does-this-library-do?"
},
{
"content": "Features\n\n- **Accessibility-focused**: Uses OpenDyslexic font for improved readability\n- **Responsive design**: Mobile-friendly layout with adaptive footer\n- **Theme persistence**: Remembers user's theme preference across sessions\n- **Privacy-respecting**: Uses privacy-focused Plausible Analytics\n- **Performance optimized**: Minified production build with deferred script loading\n- **Cross-platform**: Works on all modern browsers and devices",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::3",
"metadata": {
"title": "Website Headers"
},
"title": "Features",
"url": "https://docs.nhcarrigan.com/projects/website-headers#features"
},
{
"content": "Integration\n\nSimply include the library script in your HTML:\n\n```html\n<script src=\"https://cdn.nhcarrigan.com/website-headers.js\"></script>\n```\n\nThe library will automatically enhance your page with all the features listed above.",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::4",
"metadata": {
"title": "Website Headers"
},
"title": "Integration",
"url": "https://docs.nhcarrigan.com/projects/website-headers#integration"
},
{
"content": "2. Technical Documentation",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::5",
"metadata": {
"title": "Website Headers"
},
"title": "2. Technical Documentation",
"url": "https://docs.nhcarrigan.com/projects/website-headers#2-technical-documentation"
},
{
"content": "Prerequisites\n\n- Node.js (latest LTS version recommended)\n- pnpm package manager\n- TypeScript knowledge for development",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::6",
"metadata": {
"title": "Website Headers"
},
"title": "Prerequisites",
"url": "https://docs.nhcarrigan.com/projects/website-headers#prerequisites"
},
{
"content": "Installation\n\n1. Clone the repository:\n ```bash\n git clone <repository-url>\n cd website-headers\n ```\n\n2. Install dependencies:\n ```bash\n pnpm install\n ```",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::7",
"metadata": {
"title": "Website Headers"
},
"title": "Installation",
"url": "https://docs.nhcarrigan.com/projects/website-headers#installation"
},
{
"content": "Development",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::8",
"metadata": {
"title": "Website Headers"
},
"title": "Development",
"url": "https://docs.nhcarrigan.com/projects/website-headers#development"
},
{
"content": "Local Development Server\n\nTo work on the library locally with hot reloading:\n\n```bash\npnpm dev\n```\n\nThis command:\n- Compiles TypeScript to JavaScript in watch mode\n- Starts a development server on port 8080\n- Serves a test HTML page at `http://localhost:8080`\n- Automatically updates when you make changes",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::9",
"metadata": {
"title": "Website Headers"
},
"title": "Local Development Server",
"url": "https://docs.nhcarrigan.com/projects/website-headers#local-development-server"
},
{
"content": "Building for Production\n\n```bash\npnpm build\n```\n\nThis command:\n- Runs ESLint for code quality checks\n- Compiles TypeScript to JavaScript\n- Minifies the output using Terser\n- Injects the current version number\n- Outputs the final file to `prod/index.js`",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::10",
"metadata": {
"title": "Website Headers"
},
"title": "Building for Production",
"url": "https://docs.nhcarrigan.com/projects/website-headers#building-for-production"
},
{
"content": "Code Quality\n\n```bash\npnpm lint\n```\n\nRuns ESLint with strict configuration to ensure code quality.",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::11",
"metadata": {
"title": "Website Headers"
},
"title": "Code Quality",
"url": "https://docs.nhcarrigan.com/projects/website-headers#code-quality"
},
{
"content": "Project Structure\n\n```\nsrc/\n├── index.ts # Main library code\n└── develop.ts # Development server\n\nprod/\n├── index.js # Production build output\n└── develop.js # Development server build\n\nbuild.ts # Build script with minification\nindex.html # Test page for development\npackage.json # Project configuration\ntsconfig.json # TypeScript configuration\neslint.config.js # ESLint configuration\n```",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::12",
"metadata": {
"title": "Website Headers"
},
"title": "Project Structure",
"url": "https://docs.nhcarrigan.com/projects/website-headers#project-structure"
},
{
"content": "Architecture\n\nThe library is structured as a single TypeScript file that:\n\n1. **Metadata Injection**: Dynamically creates and injects meta tags for SEO and social sharing\n2. **Asset Loading**: Loads external resources (fonts, scripts, stylesheets)\n3. **Component Creation**: Builds UI components (footer, modal) and injects them into the DOM\n4. **Event Handling**: Sets up interactive features (theme toggle, audio player, modal)\n5. **State Management**: Manages theme preferences and modal display timing using localStorage",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::13",
"metadata": {
"title": "Website Headers"
},
"title": "Architecture",
"url": "https://docs.nhcarrigan.com/projects/website-headers#architecture"
},
{
"content": "Key Components\n\n- **Meta Tags**: Open Graph and Twitter Card metadata\n- **Favicon Management**: Complete favicon set for all platforms\n- **Global Styles**: CSS-in-JS for consistent theming\n- **Footer Component**: Branded footer with interactive elements\n- **Modal System**: Community CTA with timing-based display logic\n- **Theme System**: Light/dark mode with system preference detection\n- **Analytics Integration**: Privacy-focused event tracking",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::14",
"metadata": {
"title": "Website Headers"
},
"title": "Key Components",
"url": "https://docs.nhcarrigan.com/projects/website-headers#key-components"
},
{
"content": "External Dependencies\n\nThe library loads several external resources:\n- OpenDyslexic font for accessibility\n- Font Awesome icons for UI elements\n- Plausible Analytics for privacy-respecting tracking\n- TreeNation widget for carbon offset display\n- Google AdSense for monetization",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::15",
"metadata": {
"title": "Website Headers"
},
"title": "External Dependencies",
"url": "https://docs.nhcarrigan.com/projects/website-headers#external-dependencies"
},
{
"content": "Environment Variables\n\n- `npm_package_version`: Automatically injected during build process",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::16",
"metadata": {
"title": "Website Headers"
},
"title": "Environment Variables",
"url": "https://docs.nhcarrigan.com/projects/website-headers#environment-variables"
},
{
"content": "3. Legal Documentation",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::17",
"metadata": {
"title": "Website Headers"
},
"title": "3. Legal Documentation",
"url": "https://docs.nhcarrigan.com/projects/website-headers#3-legal-documentation"
},
{
"content": "Licensing\n\nThis software is licensed under [Naomi's Public License](https://docs.nhcarrigan.com/legal/license).\n\n**Copyright Notice**: Copyright held by Naomi Carrigan.",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::18",
"metadata": {
"title": "Website Headers"
},
"title": "Licensing",
"url": "https://docs.nhcarrigan.com/projects/website-headers#licensing"
},
{
"content": "Third-Party Services\n\nThe Application integrates with several third-party services that have their own terms of service and privacy policies:",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::19",
"metadata": {
"title": "Website Headers"
},
"title": "Third-Party Services",
"url": "https://docs.nhcarrigan.com/projects/website-headers#third-party-services"
},
{
"content": "Analytics and Tracking\n- **Plausible Analytics**: Privacy-focused web analytics\n - Domain: `analytics.nhcarrigan.com`\n - Data collected: Page views, events, referrers (no personal data)\n - Privacy policy: [Plausible Privacy Policy](https://plausible.io/privacy)",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::20",
"metadata": {
"title": "Website Headers"
},
"title": "Analytics and Tracking",
"url": "https://docs.nhcarrigan.com/projects/website-headers#analytics-and-tracking"
},
{
"content": "Advertising\n- **Google AdSense**: Contextual advertising platform\n - Client ID: `ca-pub-3569924701890974`\n - May collect user data for ad personalization\n - Privacy policy: [Google Privacy Policy](https://policies.google.com/privacy)",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::21",
"metadata": {
"title": "Website Headers"
},
"title": "Advertising",
"url": "https://docs.nhcarrigan.com/projects/website-headers#advertising"
},
{
"content": "Environmental Impact\n- **TreeNation**: Carbon offset and environmental impact tracking\n - Widget code: `a17464e0cd351220`\n - Purpose: Display environmental impact metrics\n - Privacy policy: [TreeNation Privacy Policy](https://tree-nation.com/privacy)",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::22",
"metadata": {
"title": "Website Headers"
},
"title": "Environmental Impact",
"url": "https://docs.nhcarrigan.com/projects/website-headers#environmental-impact"
},
{
"content": "Content Delivery\n- **NHCarrigan CDN**: Custom content delivery network\n - Domain: `cdn.nhcarrigan.com`\n - Hosts: fonts, images, audio files, cursors\n - Subject to NHCarrigan privacy policies",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::23",
"metadata": {
"title": "Website Headers"
},
"title": "Content Delivery",
"url": "https://docs.nhcarrigan.com/projects/website-headers#content-delivery"
},
{
"content": "Data Collection and Privacy",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::24",
"metadata": {
"title": "Website Headers"
},
"title": "Data Collection and Privacy",
"url": "https://docs.nhcarrigan.com/projects/website-headers#data-collection-and-privacy"
},
{
"content": "Local Storage Usage\nThe Application stores the following data in the user's browser:\n- `theme`: User's preferred color scheme (light/dark)\n- `naomi-community-cta`: Timestamp of last community modal display",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::25",
"metadata": {
"title": "Website Headers"
},
"title": "Local Storage Usage",
"url": "https://docs.nhcarrigan.com/projects/website-headers#local-storage-usage"
},
{
"content": "External Resource Loading\nThe Application loads resources from external domains:\n- Font files from `cdn.nhcarrigan.com`\n- Analytics scripts from `analytics.nhcarrigan.com`\n- Advertising scripts from `googlesyndication.com`\n- Icons from Font Awesome CDN",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::26",
"metadata": {
"title": "Website Headers"
},
"title": "External Resource Loading",
"url": "https://docs.nhcarrigan.com/projects/website-headers#external-resource-loading"
},
{
"content": "Compliance Considerations\n\nOrganizations using this library should be aware that it:\n- Loads third-party tracking scripts\n- May be subject to GDPR, CCPA, and other privacy regulations\n- Includes advertising components that may require disclosure\n- Collects analytics data that may need privacy policy updates",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::27",
"metadata": {
"title": "Website Headers"
},
"title": "Compliance Considerations",
"url": "https://docs.nhcarrigan.com/projects/website-headers#compliance-considerations"
},
{
"content": "Contact Information\n\nFor legal inquiries regarding this Application:\n- Email: `contact@nhcarrigan.com`\n- Community: [Chat Server](http://chat.nhcarrigan.com)",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::28",
"metadata": {
"title": "Website Headers"
},
"title": "Contact Information",
"url": "https://docs.nhcarrigan.com/projects/website-headers#contact-information"
},
{
"content": "4. Contributing Documentation",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::29",
"metadata": {
"title": "Website Headers"
},
"title": "4. Contributing Documentation",
"url": "https://docs.nhcarrigan.com/projects/website-headers#4-contributing-documentation"
},
{
"content": "Getting Started\n\nWe welcome contributions to the website-headers project! Please review our [contributing guidelines](CONTRIBUTING.md) and [Code of Conduct](CODE_OF_CONDUCT.md) before getting started.",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::30",
"metadata": {
"title": "Website Headers"
},
"title": "Getting Started",
"url": "https://docs.nhcarrigan.com/projects/website-headers#getting-started"
},
{
"content": "Development Workflow\n\n1. **Fork the repository** and clone your fork locally\n2. **Create a new branch** for your feature or bug fix:\n ```bash\n git checkout -b feature/your-feature-name\n ```\n3. **Install dependencies**:\n ```bash\n pnpm install\n ```\n4. **Start the development server**:\n ```bash\n pnpm dev\n ```\n5. **Make your changes** and test them at `http://localhost:8080`\n6. **Run linting** to ensure code quality:\n ```bash\n pnpm lint\n ```\n7. **Build for production** to verify everything works:\n ```bash\n pnpm build\n ```\n8. **Commit your changes** and push to your fork\n9. **Create a Pull Request** with a clear description of your changes",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::31",
"metadata": {
"title": "Website Headers"
},
"title": "Development Workflow",
"url": "https://docs.nhcarrigan.com/projects/website-headers#development-workflow"
},
{
"content": "Code Style and Standards\n\n- **TypeScript**: All code must be written in TypeScript\n- **ESLint**: Code must pass all linting rules (`@nhcarrigan/eslint-config`)\n- **No warnings**: Build process fails if ESLint warnings are present\n- **Comments**: Use JSDoc comments for functions and complex logic\n- **Accessibility**: Maintain accessibility features (fonts, colors, ARIA labels)",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::32",
"metadata": {
"title": "Website Headers"
},
"title": "Code Style and Standards",
"url": "https://docs.nhcarrigan.com/projects/website-headers#code-style-and-standards"
},
{
"content": "Testing\n\n- **Manual Testing**: Use the development server to test changes\n- **Cross-browser**: Test in multiple browsers when possible\n- **Mobile Responsive**: Verify changes work on mobile devices\n- **Theme Testing**: Test both light and dark themes",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::33",
"metadata": {
"title": "Website Headers"
},
"title": "Testing",
"url": "https://docs.nhcarrigan.com/projects/website-headers#testing"
},
{
"content": "Areas for Contribution",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::34",
"metadata": {
"title": "Website Headers"
},
"title": "Areas for Contribution",
"url": "https://docs.nhcarrigan.com/projects/website-headers#areas-for-contribution"
},
{
"content": "High Priority\n- **Performance optimization**: Reduce bundle size, optimize loading\n- **Accessibility improvements**: Enhanced ARIA support, keyboard navigation\n- **Mobile experience**: Better responsive design, touch interactions\n- **Browser compatibility**: Support for older browsers",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::35",
"metadata": {
"title": "Website Headers"
},
"title": "High Priority",
"url": "https://docs.nhcarrigan.com/projects/website-headers#high-priority"
},
{
"content": "Medium Priority\n- **Documentation**: Improve inline code documentation\n- **Error handling**: Add graceful fallbacks for external resource failures\n- **Testing framework**: Implement automated testing\n- **Configuration options**: Make the library more customizable",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::36",
"metadata": {
"title": "Website Headers"
},
"title": "Medium Priority",
"url": "https://docs.nhcarrigan.com/projects/website-headers#medium-priority"
},
{
"content": "Low Priority\n- **Additional themes**: More color scheme options\n- **Animation effects**: Subtle transitions and animations\n- **Internationalization**: Multi-language support\n- **Advanced analytics**: More detailed event tracking",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::37",
"metadata": {
"title": "Website Headers"
},
"title": "Low Priority",
"url": "https://docs.nhcarrigan.com/projects/website-headers#low-priority"
},
{
"content": "Pull Request Guidelines\n\n- **Clear title**: Descriptive title explaining the change\n- **Detailed description**: Explain what changes were made and why\n- **Screenshots**: Include before/after screenshots for UI changes\n- **Testing notes**: Describe how you tested the changes\n- **Breaking changes**: Clearly mark any breaking changes\n- **Version impact**: Indicate if this should be a major, minor, or patch release",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::38",
"metadata": {
"title": "Website Headers"
},
"title": "Pull Request Guidelines",
"url": "https://docs.nhcarrigan.com/projects/website-headers#pull-request-guidelines"
},
{
"content": "Code Review Process\n\n1. **Automated checks**: ESLint and build checks must pass\n2. **Manual review**: Code will be reviewed for quality and functionality\n3. **Testing**: Changes will be tested in various environments\n4. **Feedback**: You may be asked to make additional changes\n5. **Merge**: Once approved, changes will be merged to main branch",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::39",
"metadata": {
"title": "Website Headers"
},
"title": "Code Review Process",
"url": "https://docs.nhcarrigan.com/projects/website-headers#code-review-process"
},
{
"content": "Release Process\n\n- **Semantic versioning**: We follow semver (major.minor.patch)\n- **Automated builds**: Successful merges trigger automated builds\n- **CDN deployment**: Production builds are deployed to CDN\n- **Documentation updates**: Documentation is updated with releases",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::40",
"metadata": {
"title": "Website Headers"
},
"title": "Release Process",
"url": "https://docs.nhcarrigan.com/projects/website-headers#release-process"
},
{
"content": "Getting Help\n\n- **Issues**: Open a GitHub issue for bugs or feature requests\n- **Discussions**: Use GitHub Discussions for questions and ideas\n- **Community**: Join our [chat server](http://chat.nhcarrigan.com) for real-time help\n- **Email**: Contact us at `contact@nhcarrigan.com` for private inquiries",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::41",
"metadata": {
"title": "Website Headers"
},
"title": "Getting Help",
"url": "https://docs.nhcarrigan.com/projects/website-headers#getting-help"
},
{
"content": "Recognition\n\nContributors will be recognized in:\n- Git commit history\n- Release notes\n- Project documentation\n- Community acknowledgments",
"file": "src/content/docs/projects/website-headers.md",
"id": "src/content/docs/projects/website-headers.md::42",
"metadata": {
"title": "Website Headers"
},
"title": "Recognition",
"url": "https://docs.nhcarrigan.com/projects/website-headers#recognition"
},
{
"content": "",
"file": "src/content/docs/staff/apply.md",
"id": "src/content/docs/staff/apply.md::0",
"metadata": {
"title": "Join Our Staff Team"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/staff/apply#"
},
{
"content": "1. Volunteer Positions\n\nUnless explicitly stated otherwise in a separate written agreement, all positions within our organization are on a voluntary basis. No compensation, monetary or otherwise, should be expected for these roles.",
"file": "src/content/docs/staff/apply.md",
"id": "src/content/docs/staff/apply.md::1",
"metadata": {
"title": "Join Our Staff Team"
},
"title": "1. Volunteer Positions",
"url": "https://docs.nhcarrigan.com/staff/apply#1-volunteer-positions"
},
{
"content": "2. Application Process\n\nIf you feel ready to apply to join our team, please complete the [application form](https://forms.nhcarrigan.com/form/PEpB3gA79gxP8wmfEf4zou96opkpUTjssTcaeYjhoi8).",
"file": "src/content/docs/staff/apply.md",
"id": "src/content/docs/staff/apply.md::2",
"metadata": {
"title": "Join Our Staff Team"
},
"title": "2. Application Process",
"url": "https://docs.nhcarrigan.com/staff/apply#2-application-process"
},
{
"content": "3. Legal Disclaimer\n\nThis document does not constitute an offer of employment or a binding contract. Our organization reserves the right to modify, suspend, or terminate any volunteer position or the mentorship programme at any time, without prior notice.\n\nBy engaging in any volunteer activities you acknowledge that you have read, understood, and agree to these terms.\n\nFor any questions or clarifications regarding these policies, please contact us on Discord.",
"file": "src/content/docs/staff/apply.md",
"id": "src/content/docs/staff/apply.md::3",
"metadata": {
"title": "Join Our Staff Team"
},
"title": "3. Legal Disclaimer",
"url": "https://docs.nhcarrigan.com/staff/apply#3-legal-disclaimer"
},
{
"content": "Welcome to our organization. This Staff Handbook serves as a comprehensive guide to our policies, procedures, and expectations. It is designed to help you understand your role in our community and how you can contribute to our collective success.\n\nWe rely on every staff member, regardless of position, to help keep our community running smoothly and efficiently. Your dedication, skills, and adherence to our standards are crucial in achieving our organizational goals.\n\nBy familiarizing yourself with this handbook and adhering to its guidelines, you play a vital role in maintaining the integrity and effectiveness of our organization. Your commitment to these principles helps ensure a positive, productive, and harmonious work environment for all.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::0",
"metadata": {
"title": "Staff Handbook"
},
"title": "(intro)",
"url": "https://docs.nhcarrigan.com/staff/handbook#"
},
{
"content": "1. Activity Requirements",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::1",
"metadata": {
"title": "Staff Handbook"
},
"title": "1. Activity Requirements",
"url": "https://docs.nhcarrigan.com/staff/handbook#1-activity-requirements"
},
{
"content": "1.1 Flexible Engagement\n\nWe recognize and deeply appreciate that our staff members are volunteers dedicating their time and effort to support our community. As such, we do not impose rigid activity quotas or specific engagement levels.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::2",
"metadata": {
"title": "Staff Handbook"
},
"title": "1.1 Flexible Engagement",
"url": "https://docs.nhcarrigan.com/staff/handbook#11-flexible-engagement"
},
{
"content": "1.2 Communication of Extended Absences\n\nWhile we maintain a flexible approach to activity, we kindly request that you inform us of any anticipated absences:\n\n- For absences exceeding one week, please notify the team via the `#staff-chat` channel on Discord.\n- This communication helps us manage workload distribution and ensures continued smooth operation of our community.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::3",
"metadata": {
"title": "Staff Handbook"
},
"title": "1.2 Communication of Extended Absences",
"url": "https://docs.nhcarrigan.com/staff/handbook#12-communication-of-extended-absences"
},
{
"content": "1.3 Extended Inactivity\n\nIn cases of prolonged inactivity:\n\n- If you are inactive for more than one month without prior communication, we may remove you from the active staff team.\n- This policy helps maintain an engaged and responsive staff roster.\n- Please note that removal due to inactivity is not punitive and does not reflect negatively on your contributions.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::4",
"metadata": {
"title": "Staff Handbook"
},
"title": "1.3 Extended Inactivity",
"url": "https://docs.nhcarrigan.com/staff/handbook#13-extended-inactivity"
},
{
"content": "1.4 Returning to the Team\n\nWe value your contributions and understand that life circumstances can change:\n\n- If you've been removed due to inactivity, you are always welcome to rejoin the staff team when your schedule permits.\n- To rejoin, please contact an admin.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::5",
"metadata": {
"title": "Staff Handbook"
},
"title": "1.4 Returning to the Team",
"url": "https://docs.nhcarrigan.com/staff/handbook#14-returning-to-the-team"
},
{
"content": "1.5 Balancing Commitments\n\nWe encourage you to balance your volunteer work with your personal life and other commitments:\n\n- Your well-being is important to us. Never feel pressured to overextend yourself.\n- If you find your role becoming stressful or overly time-consuming, please discuss this with an admin.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::6",
"metadata": {
"title": "Staff Handbook"
},
"title": "1.5 Balancing Commitments",
"url": "https://docs.nhcarrigan.com/staff/handbook#15-balancing-commitments"
},
{
"content": "1.6 Recognition of Contributions\n\nWhile we don't set specific activity requirements, we do recognize and appreciate consistent engagement and contributions:\n\n- Regular participation helps build a strong, cohesive community.\n- Outstanding contributions may be acknowledged through our staff recognition program.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::7",
"metadata": {
"title": "Staff Handbook"
},
"title": "1.6 Recognition of Contributions",
"url": "https://docs.nhcarrigan.com/staff/handbook#16-recognition-of-contributions"
},
{
"content": "2. Moderator Guidelines",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::8",
"metadata": {
"title": "Staff Handbook"
},
"title": "2. Moderator Guidelines",
"url": "https://docs.nhcarrigan.com/staff/handbook#2-moderator-guidelines"
},
{
"content": "2.1 Role Definition\n\nAs a moderator, you occupy a position of trust within our community. This role comes with additional responsibilities and tools to ensure the safety and well-being of our community members. However, it's crucial to understand that:\n\n- Being a moderator does not elevate you above other community members.\n- Your role is one of service and support, not authority or superiority.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::9",
"metadata": {
"title": "Staff Handbook"
},
"title": "2.1 Role Definition",
"url": "https://docs.nhcarrigan.com/staff/handbook#21-role-definition"
},
{
"content": "2.2 General Expectations",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::10",
"metadata": {
"title": "Staff Handbook"
},
"title": "2.2 General Expectations",
"url": "https://docs.nhcarrigan.com/staff/handbook#22-general-expectations"
},
{
"content": "2.2.1 Leading by Example\n\nAs moderators, you are expected to exemplify the ideal community member:\n\n- Be active and engaged within the community.\n- Strictly adhere to all community rules and guidelines.\n- Demonstrate a welcoming and inclusive attitude towards all members, especially newcomers.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::11",
"metadata": {
"title": "Staff Handbook"
},
"title": "2.2.1 Leading by Example",
"url": "https://docs.nhcarrigan.com/staff/handbook#221-leading-by-example"
},
{
"content": "2.2.2 Balancing Roles\n\nRemember that you are both a moderator and a community member:\n\n- Not every interaction requires a moderation action.\n- Engage in regular social interactions with fellow community members.\n- Maintain a balance between your moderator duties and personal enjoyment within the community.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::12",
"metadata": {
"title": "Staff Handbook"
},
"title": "2.2.2 Balancing Roles",
"url": "https://docs.nhcarrigan.com/staff/handbook#222-balancing-roles"
},
{
"content": "2.2.3 Platform Familiarity\n\nOur community spans multiple platforms:\n\n- You are entrusted with maintaining all our platforms, but you're not expected to be an expert on all of them.\n- Focus on moderating platforms you're comfortable with.\n- Seek assistance or guidance from fellow moderators when dealing with unfamiliar platforms.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::13",
"metadata": {
"title": "Staff Handbook"
},
"title": "2.2.3 Platform Familiarity",
"url": "https://docs.nhcarrigan.com/staff/handbook#223-platform-familiarity"
},
{
"content": "2.3 Conduct Guidelines",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::14",
"metadata": {
"title": "Staff Handbook"
},
"title": "2.3 Conduct Guidelines",
"url": "https://docs.nhcarrigan.com/staff/handbook#23-conduct-guidelines"
},
{
"content": "2.3.1 Professionalism\n\nMaintain a professional demeanour in all interactions:\n\n- Remain calm and objective, especially in challenging situations.\n- Avoid engaging in or escalating conflicts.\n- Use appropriate language and tone at all times.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::15",
"metadata": {
"title": "Staff Handbook"
},
"title": "2.3.1 Professionalism",
"url": "https://docs.nhcarrigan.com/staff/handbook#231-professionalism"
},
{
"content": "2.3.2 Fairness and Consistency\n\nApply rules and take actions consistently:\n\n- Treat all community members equally, regardless of their status or your personal feelings.\n- Make decisions based on community guidelines, not personal preferences.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::16",
"metadata": {
"title": "Staff Handbook"
},
"title": "2.3.2 Fairness and Consistency",
"url": "https://docs.nhcarrigan.com/staff/handbook#232-fairness-and-consistency"
},
{
"content": "2.3.3 Transparency\n\nBe open about your actions as a moderator:\n\n- Clearly explain the reasons for any moderation decisions when appropriate.\n- Be willing to discuss your actions with other moderators or admins if questions arise.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::17",
"metadata": {
"title": "Staff Handbook"
},
"title": "2.3.3 Transparency",
"url": "https://docs.nhcarrigan.com/staff/handbook#233-transparency"
},
{
"content": "2.4 Collaboration and Support",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::18",
"metadata": {
"title": "Staff Handbook"
},
"title": "2.4 Collaboration and Support",
"url": "https://docs.nhcarrigan.com/staff/handbook#24-collaboration-and-support"
},
{
"content": "2.4.1 Team Communication\n\nMaintain open lines of communication with your fellow moderators:\n\n- Use designated channels (e.g., `#staff-chat`) to discuss moderation issues.\n- Share experiences and seek advice when facing challenging situations.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::19",
"metadata": {
"title": "Staff Handbook"
},
"title": "2.4.1 Team Communication",
"url": "https://docs.nhcarrigan.com/staff/handbook#241-team-communication"
},
{
"content": "2.4.2 Continuous Learning\n\nStay informed and improve your moderation skills:\n\n- Keep up-to-date with any changes to community guidelines or moderation policies.\n- Participate in any provided training or skill-sharing sessions.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::20",
"metadata": {
"title": "Staff Handbook"
},
"title": "2.4.2 Continuous Learning",
"url": "https://docs.nhcarrigan.com/staff/handbook#242-continuous-learning"
},
{
"content": "2.4.3 Escalation Protocol\n\nKnow when and how to escalate issues:\n\n- Identify situations that require input from administrators.\n- Follow established procedures for escalating complex or sensitive matters.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::21",
"metadata": {
"title": "Staff Handbook"
},
"title": "2.4.3 Escalation Protocol",
"url": "https://docs.nhcarrigan.com/staff/handbook#243-escalation-protocol"
},
{
"content": "2.5 Sanction Logging\n\nAll moderation actions you take must be logged via our [web form](https://moderation.nhcarrigan.com/log).\n\nIf you have not been granted a token, please notify Naomi and she will generate one for you.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::22",
"metadata": {
"title": "Staff Handbook"
},
"title": "2.5 Sanction Logging",
"url": "https://docs.nhcarrigan.com/staff/handbook#25-sanction-logging"
},
{
"content": "3. Working With Fellow Moderators",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::23",
"metadata": {
"title": "Staff Handbook"
},
"title": "3. Working With Fellow Moderators",
"url": "https://docs.nhcarrigan.com/staff/handbook#3-working-with-fellow-moderators"
},
{
"content": "3.1 Communication Channels",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::24",
"metadata": {
"title": "Staff Handbook"
},
"title": "3.1 Communication Channels",
"url": "https://docs.nhcarrigan.com/staff/handbook#31-communication-channels"
},
{
"content": "3.1.1 Primary Communication Platform\n- Our forum as our primary communication hub for the moderation team.\n- A private `staff` category is available for internal discussions.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::25",
"metadata": {
"title": "Staff Handbook"
},
"title": "3.1.1 Primary Communication Platform",
"url": "https://docs.nhcarrigan.com/staff/handbook#311-primary-communication-platform"
},
{
"content": "3.1.2 Use of Staff Chat\n- Utilize the `staff` channel for:\n - Discussing concerns\n - Seeking advice on handling situations\n - Requesting assistance with ongoing issues\n - Sharing relevant information with the team",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::26",
"metadata": {
"title": "Staff Handbook"
},
"title": "3.1.2 Use of Staff Chat",
"url": "https://docs.nhcarrigan.com/staff/handbook#312-use-of-staff-chat"
},
{
"content": "3.2 Collaborative Problem-Solving\n\n- Approach fellow moderators for help and insights when needed.\n- Be open to offering assistance when others request it.\n- Engage in constructive discussions to find optimal solutions.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::27",
"metadata": {
"title": "Staff Handbook"
},
"title": "3.2 Collaborative Problem-Solving",
"url": "https://docs.nhcarrigan.com/staff/handbook#32-collaborative-problem-solving"
},
{
"content": "3.3 Team Unity and Public Image\n\n- Maintain a united front in public spaces.\n- Avoid disagreeing with or criticizing fellow moderators in public forums.\n- If you have concerns about a moderation action or a colleague's behavior:\n - Address the issue privately in the staff chat or through direct messages.\n - Seek resolution through open and respectful dialogue.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::28",
"metadata": {
"title": "Staff Handbook"
},
"title": "3.3 Team Unity and Public Image",
"url": "https://docs.nhcarrigan.com/staff/handbook#33-team-unity-and-public-image"
},
{
"content": "3.4 Conflict Resolution\n\n- If unable to resolve disagreements among yourselves:\n - Escalate the matter to Naomi for guidance.\n - Present the situation objectively, providing necessary context.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::29",
"metadata": {
"title": "Staff Handbook"
},
"title": "3.4 Conflict Resolution",
"url": "https://docs.nhcarrigan.com/staff/handbook#34-conflict-resolution"
},
{
"content": "3.5 Supporting Each Other\n\n- Recognize that moderation can be challenging.\n- Offer emotional support and encouragement to fellow moderators.\n- Share experiences and coping strategies for dealing with difficult situations.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::30",
"metadata": {
"title": "Staff Handbook"
},
"title": "3.5 Supporting Each Other",
"url": "https://docs.nhcarrigan.com/staff/handbook#35-supporting-each-other"
},
{
"content": "3.6 Knowledge Sharing\n\n- Use the staff chat to share useful resources, tools, or techniques.\n- Discuss emerging trends or patterns in user behavior that may require attention.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::31",
"metadata": {
"title": "Staff Handbook"
},
"title": "3.6 Knowledge Sharing",
"url": "https://docs.nhcarrigan.com/staff/handbook#36-knowledge-sharing"
},
{
"content": "3.7 Consistency in Moderation\n\n- Regularly discuss and align on interpretation and enforcement of community rules.\n- Share examples of how you've handled specific situations to ensure consistency.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::32",
"metadata": {
"title": "Staff Handbook"
},
"title": "3.7 Consistency in Moderation",
"url": "https://docs.nhcarrigan.com/staff/handbook#37-consistency-in-moderation"
},
{
"content": "3.8 Respecting Privacy\n\n- Keep all discussions in staff channels confidential.\n- Do not share private moderator conversations with community members.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::33",
"metadata": {
"title": "Staff Handbook"
},
"title": "3.8 Respecting Privacy",
"url": "https://docs.nhcarrigan.com/staff/handbook#38-respecting-privacy"
},
{
"content": "3.9 Active Participation\n\n- Regularly check and engage in staff communications.\n- Contribute to team discussions and decision-making processes.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::34",
"metadata": {
"title": "Staff Handbook"
},
"title": "3.9 Active Participation",
"url": "https://docs.nhcarrigan.com/staff/handbook#39-active-participation"
},
{
"content": "3.10 Continuous Improvement\n\n- Be open to feedback from fellow moderators.\n- Suggest improvements to moderation processes or team communication.\n- Participate in any team training or development activities.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::35",
"metadata": {
"title": "Staff Handbook"
},
"title": "3.10 Continuous Improvement",
"url": "https://docs.nhcarrigan.com/staff/handbook#310-continuous-improvement"
},
{
"content": "4. User Support",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::36",
"metadata": {
"title": "Staff Handbook"
},
"title": "4. User Support",
"url": "https://docs.nhcarrigan.com/staff/handbook#4-user-support"
},
{
"content": "4.1 Role in User Experience\n\nAs 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.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::37",
"metadata": {
"title": "Staff Handbook"
},
"title": "4.1 Role in User Experience",
"url": "https://docs.nhcarrigan.com/staff/handbook#41-role-in-user-experience"
},
{
"content": "4.2 Knowledge Base\n\n- Familiarize yourself with most of our projects to answer a wide range of questions.\n- Stay updated on recent changes or updates to our projects.\n- Utilize available resources (documentation, FAQs, wikis) to assist users effectively.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::38",
"metadata": {
"title": "Staff Handbook"
},
"title": "4.2 Knowledge Base",
"url": "https://docs.nhcarrigan.com/staff/handbook#42-knowledge-base"
},
{
"content": "4.3 Handling User Inquiries",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::39",
"metadata": {
"title": "Staff Handbook"
},
"title": "4.3 Handling User Inquiries",
"url": "https://docs.nhcarrigan.com/staff/handbook#43-handling-user-inquiries"
},
{
"content": "4.3.1 Immediate Assistance\n- Respond promptly to users seeking help on any of our platforms.\n- Provide clear, concise answers to questions you're confident about.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::40",
"metadata": {
"title": "Staff Handbook"
},
"title": "4.3.1 Immediate Assistance",
"url": "https://docs.nhcarrigan.com/staff/handbook#431-immediate-assistance"
},
{
"content": "4.3.2 Complex Inquiries\n- For questions you're unsure about, don't hesitate to seek help.\n- Inform the user that you're looking into their issue to manage expectations.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::41",
"metadata": {
"title": "Staff Handbook"
},
"title": "4.3.2 Complex Inquiries",
"url": "https://docs.nhcarrigan.com/staff/handbook#432-complex-inquiries"
},
{
"content": "4.4 Collaborative Problem-Solving\n\n- Utilize the staff chat in Discord for discussing complex user questions.\n- Engage with fellow staff members to collaboratively find solutions.\n- Share knowledge and insights to improve the team's overall support capabilities.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::42",
"metadata": {
"title": "Staff Handbook"
},
"title": "4.4 Collaborative Problem-Solving",
"url": "https://docs.nhcarrigan.com/staff/handbook#44-collaborative-problem-solving"
},
{
"content": "4.5 Follow-up\n\n- After providing a solution, check if the user's issue has been fully resolved.\n- Encourage users to reach out again if they need further assistance.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::43",
"metadata": {
"title": "Staff Handbook"
},
"title": "4.5 Follow-up",
"url": "https://docs.nhcarrigan.com/staff/handbook#45-follow-up"
},
{
"content": "4.6 Continuous Improvement\n\n- Keep track of common user issues and suggest improvements to our documentation or user interfaces.\n- Share insights gained from user interactions with the rest of the team to enhance our overall support quality.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::44",
"metadata": {
"title": "Staff Handbook"
},
"title": "4.6 Continuous Improvement",
"url": "https://docs.nhcarrigan.com/staff/handbook#46-continuous-improvement"
},
{
"content": "5. Contributor Support",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::45",
"metadata": {
"title": "Staff Handbook"
},
"title": "5. Contributor Support",
"url": "https://docs.nhcarrigan.com/staff/handbook#5-contributor-support"
},
{
"content": "5.1 Welcoming New Contributors\n\n- Greet new contributors warmly when they show interest in our projects.\n- Provide guidance on where to find our contribution guidelines and code of conduct.\n- Offer assistance in identifying suitable first issues or tasks for newcomers.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::46",
"metadata": {
"title": "Staff Handbook"
},
"title": "5.1 Welcoming New Contributors",
"url": "https://docs.nhcarrigan.com/staff/handbook#51-welcoming-new-contributors"
},
{
"content": "5.2 Technical Assistance\n\n- Help contributors set up their development environments.\n- Provide explanations or resources for understanding our project structure and coding standards.\n- Assist with version control (e.g. git) usage if needed.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::47",
"metadata": {
"title": "Staff Handbook"
},
"title": "5.2 Technical Assistance",
"url": "https://docs.nhcarrigan.com/staff/handbook#52-technical-assistance"
},
{
"content": "5.3 Code Review Support\n\n- Offer constructive feedback on pull requests or proposed changes.\n- Explain the reasoning behind any requested modifications.\n- Guide contributors through the process of updating their submissions.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::48",
"metadata": {
"title": "Staff Handbook"
},
"title": "5.3 Code Review Support",
"url": "https://docs.nhcarrigan.com/staff/handbook#53-code-review-support"
},
{
"content": "5.4 Documentation Support\n\n- Assist contributors in locating or updating project documentation.\n- Encourage and guide contributors who wish to improve our documentation.\n- Provide feedback on proposed documentation changes.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::49",
"metadata": {
"title": "Staff Handbook"
},
"title": "5.4 Documentation Support",
"url": "https://docs.nhcarrigan.com/staff/handbook#54-documentation-support"
},
{
"content": "5.5 Issue Clarification\n\n- Help contributors understand the scope and requirements of open issues.\n- Provide additional context or clarification on feature requests or bug reports.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::50",
"metadata": {
"title": "Staff Handbook"
},
"title": "5.5 Issue Clarification",
"url": "https://docs.nhcarrigan.com/staff/handbook#55-issue-clarification"
},
{
"content": "5.6 Communication Channels\n\n- Direct contributors to appropriate communication channels (e.g., mailing lists, chat rooms, forums) for project-specific discussions.\n- Monitor these channels to provide timely responses to contributor queries.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::51",
"metadata": {
"title": "Staff Handbook"
},
"title": "5.6 Communication Channels",
"url": "https://docs.nhcarrigan.com/staff/handbook#56-communication-channels"
},
{
"content": "5.7 Mentoring\n\n- Offer mentorship to promising contributors who show consistent interest.\n- Provide guidance on best practices, advanced topics, and project goals.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::52",
"metadata": {
"title": "Staff Handbook"
},
"title": "5.7 Mentoring",
"url": "https://docs.nhcarrigan.com/staff/handbook#57-mentoring"
},
{
"content": "5.8 Recognition and Encouragement\n\n- Acknowledge and thank contributors for their efforts, regardless of the outcome.\n- Highlight significant contributions in project updates or community announcements.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::53",
"metadata": {
"title": "Staff Handbook"
},
"title": "5.8 Recognition and Encouragement",
"url": "https://docs.nhcarrigan.com/staff/handbook#58-recognition-and-encouragement"
},
{
"content": "5.9 Conflict Resolution\n\n- Mediate any disagreements between contributors professionally and impartially.\n- Ensure discussions remain constructive and aligned with our code of conduct.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::54",
"metadata": {
"title": "Staff Handbook"
},
"title": "5.9 Conflict Resolution",
"url": "https://docs.nhcarrigan.com/staff/handbook#59-conflict-resolution"
},
{
"content": "5.10 Continuous Improvement\n\n- Regularly review and update our contribution processes based on feedback.\n- Seek input from contributors on how to improve their experience.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::55",
"metadata": {
"title": "Staff Handbook"
},
"title": "5.10 Continuous Improvement",
"url": "https://docs.nhcarrigan.com/staff/handbook#510-continuous-improvement"
},
{
"content": "6. Cross-Platform Access",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::56",
"metadata": {
"title": "Staff Handbook"
},
"title": "6. Cross-Platform Access",
"url": "https://docs.nhcarrigan.com/staff/handbook#6-cross-platform-access"
},
{
"content": "6.1 Eligibility for Cross-Platform Roles\n\n- Once you have been selected for a staff position on any of our platforms, you become eligible to request staff access on additional platforms.\n- This opportunity is open to all current staff members in good standing.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::57",
"metadata": {
"title": "Staff Handbook"
},
"title": "6.1 Eligibility for Cross-Platform Roles",
"url": "https://docs.nhcarrigan.com/staff/handbook#61-eligibility-for-cross-platform-roles"
},
{
"content": "6.2 Requesting Additional Platform Access\n\n- If you wish to expand your staff role to other platforms:\n - Express your interest to an admin or through the designated channel for such requests.\n - Specify which additional platform(s) you'd like to moderate.\n - Briefly explain why you're interested in moderating these additional platforms.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::58",
"metadata": {
"title": "Staff Handbook"
},
"title": "6.2 Requesting Additional Platform Access",
"url": "https://docs.nhcarrigan.com/staff/handbook#62-requesting-additional-platform-access"
},
{
"content": "6.3 Approval Process\n\n- Requests for additional platform access will be reviewed by the admin team.\n- Factors considered in the approval process may include:\n - Your performance in your current role\n - Your familiarity with the requested platform\n - The current staffing needs on that platform",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::59",
"metadata": {
"title": "Staff Handbook"
},
"title": "6.3 Approval Process",
"url": "https://docs.nhcarrigan.com/staff/handbook#63-approval-process"
},
{
"content": "6.4 Training and Onboarding\n\n- If approved for a cross-platform role, you may be required to undergo platform-specific training.\n- Familiarize yourself with any unique rules or moderation tools for the new platform.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::60",
"metadata": {
"title": "Staff Handbook"
},
"title": "6.4 Training and Onboarding",
"url": "https://docs.nhcarrigan.com/staff/handbook#64-training-and-onboarding"
},
{
"content": "6.5 Responsibilities of Cross-Platform Staff\n\n- Maintain consistency in rule enforcement across all platforms you moderate.\n- Be aware of platform-specific nuances and adjust your approach accordingly.\n- Help bridge communication between different platform teams.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::61",
"metadata": {
"title": "Staff Handbook"
},
"title": "6.5 Responsibilities of Cross-Platform Staff",
"url": "https://docs.nhcarrigan.com/staff/handbook#65-responsibilities-of-cross-platform-staff"
},
{
"content": "6.6 Benefits of Cross-Platform Moderation\n\n- Provides a more cohesive user experience across our community's various platforms.\n- Allows for more efficient sharing of information and moderation strategies.\n- Enhances your skills and versatility as a moderator.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::62",
"metadata": {
"title": "Staff Handbook"
},
"title": "6.6 Benefits of Cross-Platform Moderation",
"url": "https://docs.nhcarrigan.com/staff/handbook#66-benefits-of-cross-platform-moderation"
},
{
"content": "6.7 Balancing Responsibilities\n\n- Ensure that taking on additional platforms does not negatively impact your performance on your original platform.\n- Communicate with the moderation team if you feel overwhelmed or need to scale back your responsibilities.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::63",
"metadata": {
"title": "Staff Handbook"
},
"title": "6.7 Balancing Responsibilities",
"url": "https://docs.nhcarrigan.com/staff/handbook#67-balancing-responsibilities"
},
{
"content": "6.8 Periodic Review\n\n- Your cross-platform roles will be periodically reviewed to ensure effective moderation across all assigned platforms.\n- Feedback and additional training may be provided as needed.",
"file": "src/content/docs/staff/handbook.md",
"id": "src/content/docs/staff/handbook.md::64",
"metadata": {
"title": "Staff Handbook"
},
"title": "6.8 Periodic Review",
"url": "https://docs.nhcarrigan.com/staff/handbook#68-periodic-review"
}
]
};