12 Commits

Author SHA1 Message Date
hikari e18eb9dec6 fix(style): fix illegible active sidebar item in dark mode 2026-03-03 17:41:12 -08:00
hikari 897b19b60c fix(style): fix illegible search shortcut badge 2026-03-03 17:40:58 -08:00
hikari f6c79d0bd3 fix(content): replace invalid env language in code blocks
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-03 17:39:30 -08:00
hikari 99cd803e58 fix(content): replace invalid aside icon in contact page
Replaces the unsupported 'message' icon with the valid 'star' icon across all Preferred Method asides.
2026-03-03 17:34:59 -08:00
hikari be87acfe7d style: update code themes to witchy palette
Replaces the old sakura pink theme with a witch-palette theme for both light and dark modes, using the same colour variables as the site's CSS for consistency.
2026-03-03 17:33:54 -08:00
hikari ff8b695118 fix(style): give header a solid background to hide scrolling content
Sets an opaque theme-appropriate background on the header so page content no longer shows through it when scrolling.
2026-03-03 17:19:26 -08:00
hikari c729fa8a60 fix(style): fix dark mode sidebar gap by using page-level background
Applies the dark translucent background to the .page element itself rather than individual sidebar/panel elements, ensuring full-height coverage with no gaps when scrolling.
2026-03-03 17:13:59 -08:00
hikari 3fcbc5d7b4 fix(style): fix illegible theme select dropdown in light mode
Targets the select and option elements within starlight-theme-select to apply the primary colour and background, preventing white-on-white text in the dropdown.
2026-03-03 17:05:28 -08:00
hikari 99aadc3987 fix(style): improve search dialog contrast
Overrides Pagefind UI CSS variables and targets the result excerpt directly to ensure readable text contrast in both light and dark modes.
2026-03-03 17:03:56 -08:00
hikari 1224d47218 fix(style): improve search placeholder contrast
Targets the Starlight search button and dialog input placeholder to use the primary colour variable for readable contrast in both light and dark modes.
2026-03-03 17:01:37 -08:00
hikari 1396212d2e fix(style): improve hero tagline contrast
Targets the Starlight hero tagline element to use the primary colour variable, ensuring readable contrast in both light and dark modes.
2026-03-03 16:58:13 -08:00
hikari 1748b26b7b style: update fonts to match style guide
Replaces the custom Vampyr font with the standard Google Fonts from the NHCarrigan style guide. Assigns Griffy to headings, Kalam to body, Creepster to .witchy-accent, and Henny Penny to .mystical-text.
2026-03-03 16:56:34 -08:00
49 changed files with 2635 additions and 3168 deletions
-10
View File
@@ -54,7 +54,6 @@
"Callista",
"CCPA",
"Celestine",
"Chronara",
"Čeština",
"CFAA",
"Chibika",
@@ -64,10 +63,8 @@
"Eclaire",
"Eirene",
"Elaria",
"Ephemere",
"Elowyn",
"Elunara",
"Enneagram",
"equivalencies",
"escalatory",
"excludable",
@@ -97,9 +94,7 @@
"Meridia",
"MERN",
"MEVN",
"MBTI",
"minimis",
"Minori",
"Mommy",
"NAMI",
"NCMEC",
@@ -120,7 +115,6 @@
"recuse",
"Reddiquette",
"Română",
"Rondelle",
"Rosalia",
"Saisoku",
"Sakura",
@@ -130,8 +124,6 @@
"Svenska",
"Sylvara",
"Taryne",
"Tauri",
"Tatsumi",
"Tessara",
"Thalassa",
"Thessalia",
@@ -139,13 +131,11 @@
"Umbrelle",
"Veluna",
"Verena",
"Valerium",
"Vitalia",
"Vivicrea",
"Vivienne",
"vtubing",
"WCAG",
"Yubi",
"Zephra",
"zirs",
"Ελληνικά",
+5 -5
View File
@@ -12,16 +12,16 @@
"test": "vitest --run"
},
"dependencies": {
"@astrojs/check": "0.9.9",
"@astrojs/starlight": "0.40.0",
"astro": "6.4.8",
"astro-mermaid": "2.0.4",
"@astrojs/check": "0.9.6",
"@astrojs/starlight": "0.37.1",
"astro": "5.16.5",
"astro-mermaid": "1.2.0",
"mermaid": "11.12.2",
"typescript": "5.9.3"
},
"devDependencies": {
"cspell": "9.4.0",
"gray-matter": "4.0.3",
"vitest": "4.1.9"
"vitest": "4.0.15"
}
}
+2514 -1993
View File
File diff suppressed because it is too large Load Diff
-10
View File
@@ -14,18 +14,8 @@ trustPolicyIgnoreAfter: 525960
strictPeerDependencies: true
# Prevent transitive dependencies from using exotic sources (git repos, direct tarball URLs)
blockExoticSubdeps: true
overrides:
nanoid: 3.3.11
packageExtensions:
langium@*:
dependencies:
vscode-jsonrpc: 8.2.1
# Lockfile
# Allow the lockfile to be updated during install (set to true in CI for stricter reproducibility)
preferFrozenLockfile: false
allowBuilds:
esbuild: false
sharp: false
+8 -68
View File
@@ -293,7 +293,7 @@ export const navigation = [
{
label: "ESLint Config",
link: "/projects/eslint-config",
badge: { text: "v5.2.0", variant: "tip" },
badge: { text: "v5.1.0", variant: "tip" },
},
{
label: "Aria Iuvo",
@@ -358,7 +358,7 @@ export const navigation = [
{
label: "Logger",
link: "/projects/logger",
badge: { text: "v1.1.1", variant: "tip" },
badge: { text: "v1.0.0", variant: "tip" },
},
{
label: "Resume",
@@ -378,7 +378,7 @@ export const navigation = [
{
label: "Website Headers",
link: "/projects/website-headers",
badge: { text: "v4.1.0", variant: "tip" },
badge: { text: "v2.1.0", variant: "tip" },
},
{
label: "Altaria",
@@ -448,7 +448,7 @@ export const navigation = [
{
label: "Vitalia",
link: "/projects/vitalia",
badge: { text: "v0.0.0", variant: "caution" },
badge: { text: "unreleased", variant: "danger" },
},
{
label: "Octavia",
@@ -458,7 +458,7 @@ export const navigation = [
{
label: "Maribelle",
link: "/projects/maribelle",
badge: { text: "v0.0.0", variant: "caution" },
badge: { text: "unreleased", variant: "danger" },
},
{
label: "Verena",
@@ -573,7 +573,7 @@ export const navigation = [
{
label: "Elysium",
link: "/projects/elysium",
badge: { text: "v0.5.0", variant: "caution" },
badge: { text: "unreleased", variant: "danger" },
},
{
label: "Elaria",
@@ -608,7 +608,7 @@ export const navigation = [
{
label: "Lucinda",
link: "/projects/lucinda",
badge: { text: "v0.0.0", variant: "caution" },
badge: { text: "unreleased", variant: "danger" },
},
{
label: "Liora",
@@ -673,7 +673,7 @@ export const navigation = [
{
label: "Eclaire",
link: "/projects/eclaire",
badge: { text: "v1.1.0", variant: "tip" },
badge: { text: "v1.0.0", variant: "tip" },
},
{
label: "freeCodeCamp Review Generator",
@@ -720,66 +720,6 @@ export const navigation = [
link: "/projects/vivicrea",
badge: { text: "v1.0.0", variant: "tip" },
},
{
label: "Ephemere",
link: "/projects/ephemere",
badge: { text: "unversioned", variant: "success" },
},
{
label: "Valerium",
link: "/projects/valerium",
badge: { text: "v1.0.1", variant: "tip" },
},
{
label: "Lore",
link: "/projects/lore",
badge: { text: "v0.0.0", variant: "caution" },
},
{
label: "Hikari Desktop",
link: "/projects/hikari-desktop",
badge: { text: "v1.15.0", variant: "tip" },
},
{
label: "Rondelle",
link: "/projects/rondelle",
badge: { text: "unversioned", variant: "success" },
},
{
label: "Chronara",
link: "/projects/chronara",
badge: { text: "unversioned", variant: "success" },
},
{
label: "Silly Sites",
link: "/projects/silly-sites",
badge: { text: "unversioned", variant: "success" },
},
{
label: "Library",
link: "/projects/library",
badge: { text: "v1.1.1", variant: "tip" },
},
{
label: "Minori",
link: "/projects/minori",
badge: { text: "unreleased", variant: "danger" },
},
{
label: "Tatsumi",
link: "/projects/tatsumi",
badge: { text: "v1.2.0", variant: "tip" },
},
{
label: "Personality",
link: "/projects/personality",
badge: { text: "v1.0.0", variant: "tip" },
},
{
label: "QR Generator",
link: "/projects/qr-generator",
badge: { text: "v1.0.0", variant: "tip" },
},
].sort((a, b) => a.label.localeCompare(b.label)),
},
// #endregion
-10
View File
@@ -1,10 +0,0 @@
import { defineCollection } from "astro:content";
import { glob } from "astro/loaders";
import { docsSchema } from "@astrojs/starlight/schema";
export const collections = {
docs: defineCollection({
loader: glob({ pattern: "**/*.{md,mdx}", base: "./src/content/docs" }),
schema: docsSchema(),
}),
};
+6
View File
@@ -0,0 +1,6 @@
import { defineCollection } from 'astro:content';
import { docsSchema } from '@astrojs/starlight/schema';
export const collections = {
docs: defineCollection({ schema: docsSchema() }),
};
-8
View File
@@ -2,14 +2,6 @@
title: 00. Frequently Asked Questions
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**PROVIDING ANSWERS TO FREQUENTLY ASKED QUESTIONS REGARDING THE MENTORSHIP PROGRAMME**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,14 +2,6 @@
title: 01. Onboarding
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING ONBOARDING PROCEDURES AND REQUIREMENTS FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,14 +2,6 @@
title: 02. Goal Setting
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING GOAL-SETTING PROCEDURES AND REQUIREMENTS FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,14 +2,6 @@
title: 03. Project Planning
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING PROJECT PLANNING PROCEDURES AND REQUIREMENTS FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,14 +2,6 @@
title: 04. User Stories
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING USER STORY DEVELOPMENT PROCEDURES AND REQUIREMENTS FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,14 +2,6 @@
title: 05. Technical Breakdown
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING TECHNICAL BREAKDOWN PROCEDURES AND REQUIREMENTS FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,14 +2,6 @@
title: 06. Priority and Effort
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING PRIORITY AND EFFORT ASSIGNMENT PROCEDURES FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,14 +2,6 @@
title: 07. Writing Code
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING CODE DEVELOPMENT PROCEDURES AND REQUIREMENTS FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,14 +2,6 @@
title: 08. Final Polish
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING FINAL POLISH AND DEPLOYMENT PROCEDURES FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,14 +2,6 @@
title: 09. Career Prep
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING CAREER PREPARATION PROCEDURES AND REQUIREMENTS FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,14 +2,6 @@
title: 10. Graduation
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ESTABLISHING GRADUATION CRITERIA AND ALUMNI PROGRAMME PROCEDURES FOR MENTORSHIP PROGRAMME PARTICIPANTS**
## 1. INTRODUCTION AND LEGAL FRAMEWORK
@@ -2,14 +2,6 @@
title: Career Preparation Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**RESUME TEMPLATES, LINKEDIN GUIDES, APPLICATION GUIDES, INTERVIEW RESOURCES, AND JOB SEARCH STRATEGIES**
## Resume Templates
@@ -2,14 +2,6 @@
title: Code Development Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**CODE REVIEW CHECKLIST, SELF-REVIEW GUIDELINES, AND BEST PRACTICES**
## Code Review Checklist
@@ -2,14 +2,6 @@
title: Code Review Checklist
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**SELF-REVIEW CHECKLIST FOR CODE QUALITY**
Use this checklist to review your own code before merging pull requests or when preparing for optional code reviews.
@@ -2,14 +2,6 @@
title: Final Polish Checklist
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**COMPREHENSIVE CHECKLIST FOR PROJECT FINAL POLISH**
Use this checklist to ensure your flagship project is ready for professional presentation.
@@ -2,14 +2,6 @@
title: Final Polish Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**FINAL POLISH CHECKLIST, CODE CLEANUP GUIDELINES, DOCUMENTATION TEMPLATES, AND DEPLOYMENT GUIDES**
## Final Polish Checklist
@@ -2,14 +2,6 @@
title: Goal Setting Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**ROADMAP TEMPLATES AND GOAL-SETTING RESOURCES**
## Roadmap Templates
@@ -2,14 +2,6 @@
title: Priority and Effort Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**PRIORITY ASSIGNMENT AND EFFORT ESTIMATION GUIDES**
## Priority Assignment Guide
@@ -2,14 +2,6 @@
title: Project Planning Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**PROJECT PLAN EXAMPLES AND BRAINSTORMING GUIDES**
## Project Plan Example
@@ -2,14 +2,6 @@
title: Technical Breakdown Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**TECHNICAL BREAKDOWN TEMPLATE AND EXAMPLES**
## Technical Breakdown Template
@@ -2,14 +2,6 @@
title: User Story Resources
---
:::caution[Programme Sunset]
The open Mentorship Programme has been sunset and is no longer accepting new participants. These pages remain available as reference material.
I'm now running a private, personalised professional development programme on an invite-only basis - hand-selecting a small number of participants so the shape of each journey can be built around them. There is no application process; participation is by direct invitation only.
Being active in my [Discord community](https://chat.nhcarrigan.com/) increases your chances of being invited.
:::
**USER STORY TEMPLATES, EXAMPLES, AND WRITING GUIDES**
## User Story Format
-40
View File
@@ -1,40 +0,0 @@
---
title: Chronara
---
Chronara (hereinafter the "Application") is an initialized project repository that is currently in scaffold state.
## 1. User Documentation
There is no published live application endpoint documented in the repository at this time.
The current repository content indicates project setup and governance files without user-facing runtime features.
## 2. Technical Documentation
Chronara currently reflects a baseline template repository state.
At present:
1. No runtime source code directories are defined.
2. No build or package manifest files are published.
3. No deployment or execution workflow is documented.
Technical documentation should be expanded once implementation code is introduced.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: https://docs.nhcarrigan.com/#/license
2. Terms: https://docs.nhcarrigan.com/#/terms
3. Privacy: https://docs.nhcarrigan.com/#/privacy
4. Security: https://docs.nhcarrigan.com/#/security
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests under the repository contributing guidelines and Code of Conduct.
Feedback and bug reports are handled via https://support.nhcarrigan.com.
+18 -16
View File
@@ -10,13 +10,13 @@ This section is for those interacting with a live instance of the Application.
### Getting Started
1. **Initial Setup**: Open the configuration screen and provide your API credentials and language preferences.
1. **Initial Setup**: Navigate to the Configuration page to set up your API credentials and language preferences.
2. **Configuration Options**:
- **Deepgram API Key**: Required for speech-to-text transcription.
- **Translation Service API Key**: Required for text translation. The application includes a built-in demonstration key in source comments with a 10 requests/minute limit.
- **Source Language**: Selected from the source-language allow-list defined in the configuration component.
- **Target Language**: Selected from the language-code mapping list used by the configuration component.
- **Deepgram API Key**: Required for speech-to-text transcription. You must provide your own API key from [Deepgram](https://deepgram.com).
- **Translation Service API Key**: Required for text translation. A demo key is available with a 10 requests/minute rate limit, or you can provide your own key.
- **Source Language**: Select from 12 supported languages (English, German, Dutch, Swedish, Danish, Spanish, French, Portuguese, Italian, Turkish, Norwegian, Indonesian).
- **Target Language**: Select from 60+ supported languages for translation.
3. **Using the Translation Interface**:
- Navigate to the Agent page to begin translation.
@@ -43,9 +43,10 @@ The application automatically enables:
### Limitations
- Requires a modern browser with microphone access.
- Requires a WebSocket connection for real-time transcription.
- Translation demo key usage is rate limited.
- Source language is limited to 12 languages supported by Deepgram
- Translation service demo key has a rate limit of 10 requests/minute
- Requires modern browser with microphone access
- WebSocket connection required for real-time functionality
## 2. Technical Documentation
@@ -69,17 +70,17 @@ This section is for those interested in running their own instance of the Applic
2. Install dependencies:
```bash
pnpm install
npm install
```
3. Start the development server:
```bash
pnpm run dev
npm run dev
```
4. Build for production:
```bash
pnpm run build
npm run build
```
### Technology Stack
@@ -87,7 +88,7 @@ This section is for those interested in running their own instance of the Applic
**Frontend Framework:**
- Angular 19.1.4 with standalone components
- TypeScript 5.7.3
- RxJS 7.8.2 for reactive programming
- RxJS 7.8.1 for reactive programming
- Angular Reactive Forms for configuration management
**External APIs:**
@@ -143,7 +144,8 @@ This section is for those interested in running their own instance of the Applic
#### Routing
- `/` - Home page
- `/` - Redirects to home
- `/home` - Landing page
- `/config` - Configuration page
- `/agent` - Translation interface
@@ -190,9 +192,9 @@ POST request body:
#### Available Scripts
- `pnpm run dev` - Start development server
- `pnpm run lint` - Run ESLint with zero warnings policy
- `pnpm run build` - Build for production
- `npm run dev` - Start development server
- `npm run lint` - Run ESLint with zero warnings policy
- `npm run build` - Build for production
#### Code Quality
+16 -49
View File
@@ -6,66 +6,33 @@ Elysium (hereinafter the "Application") is an idle RPG in the browser.
## 1. User Documentation
The Application provides an incremental/idler gameplay loop with progression systems including:
:::note
This section is coming soon!
:::
1. Adventurer hiring and resource scaling.
2. Zone exploration and boss encounters.
3. Questing and crafting systems.
4. Prestige, transcendence, and apotheosis reset layers.
5. Character profile, titles, and leaderboard visibility.
The API source includes routes for game state, combat, exploration, crafting, progression resets, leaderboards, and profiles (`apps/api/src/index.ts`).
This project is currently marked as work in progress in the public project feed.
This section is for those interacting with a live instance of the Application.
## 2. Technical Documentation
Elysium is a pnpm monorepo with two primary applications and a shared package.
:::note
This section is coming soon!
:::
Workspace layout:
1. `apps/web`: React + Vite frontend (`@elysium/web`).
2. `apps/api`: Hono-based API service (`@elysium/api`).
3. `packages/types`: shared type definitions (`@elysium/types`).
Current versions in repository manifests:
1. Root package: `0.5.0`.
2. API package: `0.5.0`.
3. Web package: `0.5.0`.
Root commands:
1. `pnpm install`
2. `pnpm dev`
3. `pnpm build`
4. `pnpm test`
API runtime notes:
1. Uses `op run --env-file=./prod.env` for secret injection.
2. Exposes a health endpoint at `GET /health`.
3. Uses Prisma client/database tooling and Hono route modules.
This section is for those interested in running their own instance of the Application.
## 3. Legal Documentation
The Application inherits nhcarrigan's global legal documents:
:::note
This section is coming soon!
:::
1. Privacy Policy: https://docs.nhcarrigan.com/#/privacy
2. Terms of Service: https://docs.nhcarrigan.com/#/terms
3. License: https://docs.nhcarrigan.com/#/license
Repository references:
1. `PRIVACY.md`
2. `TERMS.md`
3. `LICENSE.md`
This section is for expansions to our legal policies specific to the Application.
## 4. Contributing Documentation
Contribution guidance points to the shared docs portal:
:::note
This section is coming soon!
:::
1. https://docs.nhcarrigan.com/#/contributing
The repository also includes a manual verification checklist in `verify.md` for gameplay flows that are not fully covered by automated tests.
This section is for documentation related to contributing to the Application's codebase.
-67
View File
@@ -1,67 +0,0 @@
---
title: Ephemere
---
Ephemere (hereinafter the "Application") is a multi-language utility repository containing operational scripts for TypeScript, Python, and Bash workflows.
## 1. User Documentation
Ephemere is a script collection rather than a hosted end-user application.
It is used to run task-focused automation across multiple domains, including:
1. Crowdin translation workflows.
2. Discord and Discourse operations.
3. Gitea and GitHub maintenance tasks.
4. Music metadata and security reporting utilities.
5. Cohort programme operations in Python and Bash.
Scripts are typically executed through the interactive runner to choose language, category, and script at runtime.
## 2. Technical Documentation
Ephemere is organized by language and purpose:
1. `typescript/src/*` for API and platform scripting utilities.
2. `python/cohort/*` for cohort and Discord operations.
3. `bash/*` for cohort team automation and YubiKey administration.
Environment and dependency setup:
1. Node.js `v24+`, `pnpm`, and Python `3.10+` are required.
2. `uv` is used for Python dependency management.
3. `op` (1Password CLI) is used for secret injection from `prod.env`.
Common commands:
1. `make install` installs TypeScript and Python dependencies.
2. `make run` launches the interactive script runner.
3. `make lint` runs TypeScript and Python linting.
4. `make build` performs TypeScript type checking.
5. `make test` runs available test suites.
When running scripts manually, both TypeScript and Python command examples in the repository rely on `op run --env-file=prod.env` for secure secret resolution.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests in accordance with the repository contribution policy and Code of Conduct.
Before opening a pull request:
1. Run `make install`.
2. Run `make lint`.
3. Run `make build`.
4. Run `make test`.
Feedback and bug reports are handled through `https://support.nhcarrigan.com`.
@@ -1,65 +0,0 @@
---
title: Hikari Desktop
---
Hikari Desktop (hereinafter the "Application") is a desktop companion application featuring Hikari, distributed as installable desktop releases.
## 1. User Documentation
Release builds are published at `https://git.nhcarrigan.com/nhcarrigan/hikari-desktop/releases`.
The application provides an interactive desktop experience with conversation, tooling, and workspace support features through a local app interface.
Common user-facing areas include:
1. Conversation and message workflows.
2. Workspace and project context panels.
3. Notification, quick action, and session management panels.
4. Desktop integrations enabled through the bundled runtime.
## 2. Technical Documentation
Hikari Desktop is implemented with a Svelte frontend and a Rust-backed `Tauri` desktop runtime.
Local development commands:
1. Install dependencies with `pnpm install`.
2. Start frontend dev server with `pnpm dev`.
3. Build frontend assets with `pnpm build`.
4. Launch Tauri workflow with `pnpm tauri`.
Quality and release tooling:
1. `pnpm test`, `pnpm test:backend`, and `pnpm test:all` for frontend/backend validation.
2. `pnpm lint` and `pnpm format:check` for static quality checks.
3. `pnpm build:linux`, `pnpm build:windows`, and `pnpm build:all` for desktop packaging.
Implementation notes:
1. Frontend code is under `src/` with Svelte components, stores, and utility modules.
2. Backend/native integration is under `src-tauri/src/`.
3. Desktop capabilities are defined by `src-tauri` configuration and plugins.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests according to the repository contributing guidelines and Code of Conduct.
Before opening a pull request:
1. Run `pnpm install`.
2. Run `pnpm lint`.
3. Run `pnpm test:all`.
4. Run `pnpm build`.
Feedback and bug reports are handled through `https://support.nhcarrigan.com`.
-58
View File
@@ -1,58 +0,0 @@
---
title: Library
---
Library (hereinafter the "Application") is Naomi's personal library tracking application for cataloguing and engaging with media collections.
## 1. User Documentation
The live instance is available at `https://library.nhcarrigan.com`.
The application is presented as Naomi's curated collection of media and includes books, games, music, shows, manga, and art.
Core user-facing capabilities include:
1. Browsing library entries by media type.
2. Engaging with content through comments and likes.
3. Submitting suggestions for new additions.
4. Viewing activity and leaderboard-style participation features.
## 2. Technical Documentation
The project is an `Nx` monorepo with a frontend app and a Fastify API.
Runtime and build scripts are managed from the repository root:
1. `pnpm dev` builds and runs the production-style API process with development environment values.
2. `pnpm build` generates Prisma client artifacts and builds all projects.
3. `pnpm test` runs configured test targets across the workspace.
4. `pnpm lint` runs lint targets across the workspace.
Architecture notes:
1. API routes are mounted under `/api` via autoloaded Fastify route modules.
2. The API includes dedicated modules for `books`, `games`, `music`, `shows`, `manga`, `art`, `suggestions`, `comments`, `likes`, `leaderboard`, `activity`, and `users`.
3. Security middleware and plugins include CSRF protection, rate limiting, CORS, helmet, and auth-related plugins.
4. Database access is managed with Prisma.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests according to the repository's contributing guidelines and code of conduct.
Before opening a pull request:
1. Install dependencies with `pnpm install`.
2. Run `pnpm lint`.
3. Run `pnpm test`.
4. Run `pnpm build`.
+1 -1
View File
@@ -230,6 +230,6 @@ If you encounter bugs or have feature requests:
### Package Information
- **Package Name**: @nhcarrigan/logger
- **Version**: 1.1.1
- **Version**: 1.0.0
- **NPM**: [https://www.npmjs.com/package/@nhcarrigan/logger](https://www.npmjs.com/package/@nhcarrigan/logger)
- **Repository**: Git-based repository hosted at git.nhcarrigan.com
-63
View File
@@ -1,63 +0,0 @@
---
title: Lore
---
Lore (hereinafter the "Application") is a web application that publishes lore and reference material for Naomi's fictional persona and characters.
## 1. User Documentation
The live site is available at `https://lore.nhcarrigan.com`.
Visitors can browse structured lore content through dedicated pages including:
1. Home
2. Handbook
3. About
4. FAQ
5. Reviews
6. Staff
Site copy and supporting data are maintained in the application source and loaded through Angular components and config files.
## 2. Technical Documentation
Lore is built with Angular and uses a standard Angular CLI workflow.
Local development:
1. Install dependencies with `pnpm install`.
2. Run local dev server with `pnpm start`.
3. Build production bundle with `pnpm build`.
4. Run tests with `pnpm test`.
5. Run lint checks with `pnpm lint`.
Implementation notes:
1. Route definitions are in `src/app/app.routes.ts`.
2. Main feature areas are component-based under `src/app/*`.
3. Shared content/config values are maintained in `src/app/config/*`.
4. Styling includes project CSS and Tailwind/PostCSS tooling.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests under the repository's contribution policy and Code of Conduct.
Before opening a pull request:
1. Run `pnpm install`.
2. Run `pnpm lint`.
3. Run `pnpm test`.
4. Run `pnpm build`.
Feedback and bug reports are handled via `https://support.nhcarrigan.com`.
+16 -39
View File
@@ -6,56 +6,33 @@ Lucinda (hereinafter the "Application") is a kanban-style task management site.
## 1. User Documentation
The Application is intended as a full-featured cloud-backed task management platform with a Kanban-style workflow.
:::note
This section is coming soon!
:::
Current public deployment listed by the project repository:
1. https://lucinda.nhcarrigan.com
The frontend currently routes users to a landing experience (`/landing`) and serves as the basis for expanded board/task flows.
This section is for those interacting with a live instance of the Application.
## 2. Technical Documentation
Lucinda is a pnpm workspace monorepo with separate client and server applications.
:::note
This section is coming soon!
:::
Project structure:
1. `client`: Angular 19 frontend.
2. `server`: Fastify API service.
Workspace tooling:
1. Root scripts use Turbo (`turbo run dev|build|lint|test`).
2. Server development command: `tsx src/index.ts --watch`.
3. Server start command: `op run --env-file=./prod.env -- node prod/index.js`.
Current repository version values:
1. Root: `0.0.0`
2. Client: `0.0.0`
3. Server: `0.0.0`
Current server implementation exposes a root health endpoint on port `12346` returning `{"message":"Hello, world!"}`.
This section is for those interested in running their own instance of the Application.
## 3. Legal Documentation
The Application uses the shared nhcarrigan legal documents:
:::note
This section is coming soon!
:::
1. Privacy Policy: https://docs.nhcarrigan.com/#/privacy
2. Terms of Service: https://docs.nhcarrigan.com/#/terms
3. License: https://docs.nhcarrigan.com/#/license
Repository references:
1. `PRIVACY.md`
2. `TERMS.md`
3. `LICENSE.md`
This section is for expansions to our legal policies specific to the Application.
## 4. Contributing Documentation
Contributing guidance points to the shared docs portal:
:::note
This section is coming soon!
:::
1. https://docs.nhcarrigan.com/#/contributing
Feature delivery is in progress, and the public project feed currently marks Lucinda as work in progress.
This section is for documentation related to contributing to the Application's codebase.
+16 -44
View File
@@ -6,61 +6,33 @@ Maribelle (hereinafter the "Application") is a Discord bot that allows you to co
## 1. User Documentation
The Application posts weekday stand-up prompts in configured Discord text channels and tracks which members posted progress updates in the previous cycle.
:::note
This section is coming soon!
:::
Current reminder schedule in the source is `0 9 * * 1-5` (09:00, Monday through Friday).
During operation, the Application:
1. Sends a stand-up reminder message in each configured channel.
2. Starts a thread named `Daily Progress Update - <date>`.
3. Monitors messages in those threads and records participant IDs.
4. Sends a summary of recorded IDs to the maintainer account before the next cycle.
Channel and role mappings are configured in `src/config/channels.ts`.
This section is for those interacting with a live instance of the Application.
## 2. Technical Documentation
The Application is a Node.js + TypeScript Discord bot using `discord.js` and `node-schedule`.
:::note
This section is coming soon!
:::
Runtime and build commands from `package.json`:
1. `pnpm install`
2. `pnpm build`
3. `pnpm start`
The startup command runs with `op run --env-file=prod.env`, so local operation expects a `prod.env` file and 1Password CLI access.
Minimum environment variables for runtime include:
1. `DISCORD_TOKEN` for bot authentication.
2. `LOG_WEBHOOK_URL` for logger transport.
Key implementation files:
1. `src/index.ts` bootstraps the Discord client, schedules reminders, and listens for thread messages.
2. `src/modules/standup.ts` sends reminders, opens threads, and reports participant IDs.
3. `src/config/channels.ts` defines target channel/role pairs.
This section is for those interested in running their own instance of the Application.
## 3. Legal Documentation
The Application inherits the nhcarrigan global legal documents:
:::note
This section is coming soon!
:::
1. Privacy Policy: https://docs.nhcarrigan.com/#/privacy
2. Terms of Service: https://docs.nhcarrigan.com/#/terms
3. License: https://docs.nhcarrigan.com/#/license
Repository references:
1. `PRIVACY.md`
2. `TERMS.md`
3. `LICENSE.md`
This section is for expansions to our legal policies specific to the Application.
## 4. Contributing Documentation
Contribution guidance for the Application points to the shared documentation:
:::note
This section is coming soon!
:::
1. https://docs.nhcarrigan.com/#/contributing
Project metadata currently reports version `0.0.0` in `package.json`, which aligns with an unreleased/early state.
This section is for documentation related to contributing to the Application's codebase.
-37
View File
@@ -1,37 +0,0 @@
---
title: Minori
---
Minori (hereinafter the "Application") is
## 1. User Documentation
:::note
This section is coming soon!
:::
This section is for those interacting with a live instance of the Application.
## 2. Technical Documentation
:::note
This section is coming soon!
:::
This section is for those interested in running their own instance of the Application.
## 3. Legal Documentation
:::note
This section is coming soon!
:::
This section is for expansions to our legal policies specific to the Application.
## 4. Contributing Documentation
:::note
This section is coming soon!
:::
This section is for documentation related to contributing to the Application's codebase.
-74
View File
@@ -1,74 +0,0 @@
---
title: Personality
---
Personality (hereinafter the "Application") is a personal values and self-reflection hub built as an Astro site.
## 1. User Documentation
The Application currently presents multiple self-exploration sections from a shared home dashboard:
1. Values (`/values`)
2. Personality test results (`/personality`)
3. Natal chart (`/astrology`)
4. DBT exercise progress (`/dbt`)
5. Playroom/social templates (`/playroom`)
The home page also links to an external user manual at `https://manual.nhcarrigan.com`.
Current content behavior in the app:
1. Personality tests are rendered from structured test data (for example MBTI, Big Five, Enneagram, attachment style, and VIA strengths).
2. Astrology content is grouped into personal, social, generational, and points/angles categories.
3. DBT modules display progress counters based on completed exercises.
## 2. Technical Documentation
The active implementation currently lives on the `origin/feat/init` branch of the Personality repository.
Project stack and structure:
1. Astro `6.1.8`
2. TypeScript `6.0.3`
3. Flat content pages in `src/pages`
4. Static data modules in `src/data`
Key routes in source:
1. `src/pages/index.astro`
2. `src/pages/values.astro`
3. `src/pages/personality.astro`
4. `src/pages/astrology.astro`
5. `src/pages/dbt.astro`
6. `src/pages/playroom.astro`
Primary commands from `package.json`:
1. `pnpm install`
2. `pnpm run dev`
3. `pnpm run build`
4. `pnpm run lint`
Current repository version is `1.0.0`.
## 3. Legal Documentation
The Application uses the shared nhcarrigan legal policies:
1. Privacy Policy: https://docs.nhcarrigan.com/#/privacy
2. Terms of Service: https://docs.nhcarrigan.com/#/terms
3. License: https://docs.nhcarrigan.com/#/license
Repository references:
1. `PRIVACY.md`
2. `TERMS.md`
3. `LICENSE.md`
## 4. Contributing Documentation
Contribution guidance points to the shared docs portal:
1. https://docs.nhcarrigan.com/#/contributing
The repository also includes the standard community files (`CODE_OF_CONDUCT.md`, `SECURITY.md`) for project participation and disclosure expectations.
-82
View File
@@ -1,82 +0,0 @@
---
title: QR Generator
---
QR Generator (hereinafter the "Application") is a web tool for generating Naomi-branded QR code images from a URL.
## 1. User Documentation
The live instance is available at `https://qr.nhcarrigan.com`.
To generate a QR image:
1. Open the page.
2. Enter a URL in the form input.
3. Select Generate.
4. Download the generated PNG using the Download PNG button.
Generated images include:
1. Naomi colour branding.
2. Naomi avatar centred in the QR matrix.
3. A branding strip with `chat.naomi.lgbt`.
If URL input is missing, generation fails with a validation error.
## 2. Technical Documentation
This project is a TypeScript Fastify service with both web UI and CLI generation paths.
Local setup:
1. Install dependencies with `pnpm install`.
2. Start the web server with `pnpm start`.
3. Build TypeScript with `pnpm build`.
4. Lint source files with `pnpm lint`.
Default server binding:
1. Host: `0.0.0.0`
2. Port: `15555`
HTTP endpoints:
1. `GET /` returns the web UI.
2. `GET /generate?url=<value>` returns a PNG attachment.
3. Missing `url` query returns `HTTP 400`.
4. Generation failures return `HTTP 500`.
CLI batch generation:
1. Use `pnpm generate -- <url> [<url> ...]`.
2. Output files are written to the `output` directory.
3. File names are URL-derived, lowercased, hyphenated, and limited to 60 characters.
Core generation pipeline:
1. Generate QR data using `qr-code-styling`.
2. Overlay Naomi avatar within a circular mask.
3. Composite final image with bottom branding strip.
## 3. Legal Documentation
Project-specific legal references:
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted via pull requests.
Before contributing:
1. Review the repository contributing guidelines.
2. Follow the Code of Conduct.
3. Run lint and build locally before opening a pull request.
Issue reports and feedback are handled via `https://support.nhcarrigan.com`.
-40
View File
@@ -1,40 +0,0 @@
---
title: Rondelle
---
Rondelle (hereinafter the "Application") is an initialized repository currently in scaffold state, created from the standard project template.
## 1. User Documentation
There is no published live application instance documented in the repository at this time.
Current repository status indicates foundational setup only, with end-user functionality still to be implemented.
## 2. Technical Documentation
The repository currently contains baseline governance and policy files from the project template.
At present:
1. No implementation source directories are defined.
2. No runtime package manifest or build pipeline is configured.
3. No environment variables or deployment instructions are published.
Technical documentation should be expanded once project runtime architecture is added.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: https://docs.nhcarrigan.com/#/license
2. Terms: https://docs.nhcarrigan.com/#/terms
3. Privacy: https://docs.nhcarrigan.com/#/privacy
4. Security: https://docs.nhcarrigan.com/#/security
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests under the repository contributing guidelines and Code of Conduct.
Feedback and bug reports are handled via https://support.nhcarrigan.com.
-40
View File
@@ -1,40 +0,0 @@
---
title: Silly Sites
---
Silly Sites (hereinafter the "Application") is a collection of small, fun static pages, including pages built for community programming events.
## 1. User Documentation
The live site is available at https://silly.nhcarrigan.com.
Users can browse and interact with standalone static experiences hosted under this project.
## 2. Technical Documentation
Silly Sites is a static-site repository containing multiple page projects.
Current structure includes:
1. `index.html` for the root entry point.
2. `hairy-button/` static page content.
3. `travel-agency/` static page content.
The repository currently focuses on static web assets rather than an application runtime with package-based build tooling.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: https://docs.nhcarrigan.com/#/license
2. Terms: https://docs.nhcarrigan.com/#/terms
3. Privacy: https://docs.nhcarrigan.com/#/privacy
4. Security: https://docs.nhcarrigan.com/#/security
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests under the repository contributing guidelines and Code of Conduct.
Feedback and bug reports are handled via https://support.nhcarrigan.com.
-64
View File
@@ -1,64 +0,0 @@
---
title: Tatsumi
---
Tatsumi (hereinafter the "Application") is a desktop application for generating AI character art using Google's Gemini image model.
## 1. User Documentation
Tatsumi is distributed as a desktop app and requires a Google Gemini API key.
Supported generation modes:
1. `Avatar`: portrait/avatar generation with `1:1` aspect ratio.
2. `Art`: widescreen generation with `16:9` aspect ratio.
3. `Replace`: upload an image and regenerate based on an edit prompt.
Threading and output features:
1. Conversations are stored as local threads between sessions.
2. You can send follow-up prompts, retry results, and edit previous prompts.
3. Each response exposes model reasoning and token cost details.
4. Generated images can be downloaded from the conversation view.
## 2. Technical Documentation
Tatsumi uses a `Tauri` desktop runtime with a `React` + `Vite` frontend and Rust backend commands.
Local development:
1. Install dependencies with `pnpm install`.
2. Start development with `pnpm tauri dev`.
3. Build frontend/web assets with `pnpm build`.
4. Build desktop bundles with `pnpm tauri build`.
5. Windows-targeted build uses `pnpm build:windows`.
Implementation notes:
1. Frontend UI lives under `src/` with modular components for thread views, input, settings, and message rendering.
2. Tauri backend code lives under `src-tauri/src/`, including Gemini integration and local storage handling.
3. App configuration is defined in `src-tauri/tauri.conf.json`.
## 3. Legal Documentation
Project policy files reference global documentation:
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests per the repository contributing guidelines and code of conduct.
Before opening a pull request:
1. Run `pnpm install`.
2. Run `pnpm lint`.
3. Run `pnpm build`.
4. Verify desktop app behavior with `pnpm tauri dev`.
Feedback and bug reports are handled via `https://support.nhcarrigan.com`.
-60
View File
@@ -1,60 +0,0 @@
---
title: Valerium
---
Valerium (hereinafter the "Application") is the Discord Boost Monitor bot that removes configured booster-only roles when members stop boosting a server.
## 1. User Documentation
Valerium is a Discord bot service and does not currently publish a public hosted web app for end users.
Operational behavior:
1. On startup, the bot connects to Discord with `Guilds` and `GuildMembers` intents.
2. On `guildMemberUpdate`, it checks member eligibility roles.
3. If a member is no longer qualified, configured colour/perk roles are removed.
4. A small Fastify health/info page is served on port `3443`.
## 2. Technical Documentation
Valerium is a TypeScript `discord.js` service with a lightweight `fastify` process for health visibility.
Local setup:
1. Install dependencies with `pnpm install`.
2. Build with `pnpm build`.
3. Start with `pnpm start`.
4. Lint source with `pnpm lint`.
Key source modules:
1. `src/modules/manageRoles.ts`: booster-role enforcement logic.
2. `src/config/roles.ts`: qualified roles and removable colour roles.
3. `src/server/serve.ts`: health/info endpoint on `/`.
4. `src/index.ts`: bot startup, event wiring, and server initialization.
Environment configuration is loaded via `dotenv` at runtime, including Discord token and webhook settings.
## 3. Legal Documentation
Project policy files reference the following documentation:
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/discord-boost-monitor/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
## 4. Contributing Documentation
Contributions are accepted through pull requests under the repository contributing guidelines and code of conduct.
Before opening a pull request:
1. Run `pnpm install`.
2. Run `pnpm lint`.
3. Run `pnpm build`.
4. Verify bot behavior in a test Discord server.
Feedback and bug reports are handled via `https://support.nhcarrigan.com`.
+16 -44
View File
@@ -6,61 +6,33 @@ Vitalia (hereinafter the "Application") is a full-featured nutrition tracker wit
## 1. User Documentation
The live site is available at `https://vitalia.nhcarrigan.com`.
:::note
This section is coming soon!
:::
Vitalia is currently in early-stage development with a landing-route frontend and foundational backend API service.
Current user-facing flow:
1. The frontend redirects root navigation to `/landing`.
2. The initial Angular landing component is the primary exposed route.
This section is for those interacting with a live instance of the Application.
## 2. Technical Documentation
Vitalia is a `pnpm` workspace with two applications:
:::note
This section is coming soon!
:::
1. `client/`: Angular frontend (`v0.0.0`).
2. `server/`: Fastify/TypeScript backend (`v0.0.0`).
Workspace-level commands:
1. `pnpm dev` runs package `dev` tasks through Turbo.
2. `pnpm build` runs package build tasks through Turbo.
3. `pnpm lint` runs package lint tasks through Turbo.
4. `pnpm test` runs package test tasks through Turbo.
Backend details:
1. Fastify server listens on port `12345`.
2. CORS is enabled with `origin: "*"`.
3. A root `GET /` route returns a simple JSON message.
Frontend details:
1. Angular router redirects `/` to `/landing`.
2. Landing page is served by `LandingComponent`.
This section is for those interested in running their own instance of the Application.
## 3. Legal Documentation
Project policy files reference global documentation:
:::note
This section is coming soon!
:::
1. License: `https://docs.nhcarrigan.com/#/license`
2. Terms: `https://docs.nhcarrigan.com/#/terms`
3. Privacy: `https://docs.nhcarrigan.com/#/privacy`
4. Security: `https://docs.nhcarrigan.com/#/security`
Copyright is held by Naomi Carrigan.
This section is for expansions to our legal policies specific to the Application.
## 4. Contributing Documentation
Contributions are accepted through pull requests under the repository contributing guidelines and Code of Conduct.
:::note
This section is coming soon!
:::
Before opening a pull request:
1. Run `pnpm install`.
2. Run `pnpm lint`.
3. Run `pnpm build`.
4. Run `pnpm test`.
Feedback and bug reports are handled via `https://support.nhcarrigan.com`.
This section is for documentation related to contributing to the Application's codebase.
+12 -9
View File
@@ -2,7 +2,7 @@
title: Website Headers
---
Website Headers (hereinafter the "Application") is a JavaScript/TypeScript library that injects standardised metadata, styles, and UI components (such as footers and modals) into web pages. It is designed to provide consistent branding and legal/compliance links 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 with persisted preference.
Website Headers (hereinafter the "Application") is a JavaScript/TypeScript library that injects standardised 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.
## 1. User Documentation
@@ -12,16 +12,17 @@ The Website Headers library automatically enhances any webpage by injecting:
- **SEO metadata**: Open Graph and Twitter Card meta tags for better social media sharing
- **Favicons**: Complete set of favicon files for various devices and platforms
- **Global styling**: Consistent branding with custom fonts, cursor, and themed UI
- **Global styling**: Consistent branding with OpenDyslexic font, custom cursor, and themed UI
- **Footer component**: Standardized footer with copyright, social links, theme toggle, and donation button
- **Analytics**: Plausible Analytics integration with event tracking
- **Community features**: Periodic modal popup encouraging users to join the community
- **Theme support**: Light/dark theme toggle with localStorage persistence
- **Audio controls**: Optional theme music playback
- **TreeNation integration**: Carbon offset widget display
### Features
- **Accessibility-focused**: High-contrast theming and semantic metadata support
- **Accessibility-focused**: Uses OpenDyslexic font for improved readability
- **Responsive design**: Mobile-friendly layout with adaptive footer
- **Theme persistence**: Remembers user's theme preference across sessions
- **Privacy-respecting**: Uses privacy-focused Plausible Analytics
@@ -103,6 +104,10 @@ src/
├── index.ts # Main library code
└── develop.ts # Development server
prod/
├── index.js # Production build output
└── develop.js # Development server build
build.ts # Build script with minification
index.html # Test page for development
package.json # Project configuration
@@ -110,8 +115,6 @@ tsconfig.json # TypeScript configuration
eslint.config.js # ESLint configuration
```
The `prod/` directory is generated during build output and is not a permanent source directory.
### Architecture
The library is structured as a single TypeScript file that:
@@ -119,7 +122,7 @@ The library is structured as a single TypeScript file that:
1. **Metadata Injection**: Dynamically creates and injects meta tags for SEO and social sharing
2. **Asset Loading**: Loads external resources (fonts, scripts, stylesheets)
3. **Component Creation**: Builds UI components (footer, modal) and injects them into the DOM
4. **Event Handling**: Sets up interactive features (theme toggle, social panel, modal)
4. **Event Handling**: Sets up interactive features (theme toggle, audio player, modal)
5. **State Management**: Manages theme preferences and modal display timing using localStorage
### Key Components
@@ -135,7 +138,7 @@ The library is structured as a single TypeScript file that:
### External Dependencies
The library loads several external resources:
- Google-hosted font assets used by the injected stylesheet
- OpenDyslexic font for accessibility
- Font Awesome icons for UI elements
- Plausible Analytics for privacy-respecting tracking
- TreeNation widget for carbon offset display
@@ -149,7 +152,7 @@ The library loads several external resources:
### Licensing
This software is licensed under [Naomi's Public Licence](https://docs.nhcarrigan.com/#/license).
This software is licensed under [Naomi's Public Licence](https://docs.nhcarrigan.com/legal/license).
**Copyright Notice**: Copyright held by Naomi Carrigan.
@@ -178,7 +181,7 @@ The Application integrates with several third-party services that have their own
#### Content Delivery
- **NHCarrigan CDN**: Custom content delivery network
- Domain: `cdn.nhcarrigan.com`
- Hosts: fonts, images, scripts, and cursors
- Hosts: fonts, images, audio files, cursors
- Subject to NHCarrigan privacy policies
### Data Collection and Privacy
+5 -5
View File
@@ -36,7 +36,7 @@ We recognise and deeply appreciate that our Team members are volunteers dedicati
While we maintain a flexible approach to activity, we kindly request that you inform us of any anticipated absences:
- For absences exceeding one week, please notify the team via the `#sentinel-watch` channel on Discord.
- For absences exceeding one week, please notify the team via the `#staff-chat` channel on Discord.
- This communication helps us manage workload distribution and ensures continued smooth operation of our community.
### 1.3. Extended Inactivity
@@ -187,7 +187,7 @@ Maintain transparency and accountability to the community:
Maintain open lines of communication with your fellow Team members:
- Use designated channels (e.g., `#sentinel-watch`) to discuss community issues and seek guidance
- Use designated channels (e.g., `#staff-chat`) to discuss community issues and seek guidance
- Share experiences and seek advice when facing challenging situations
- Communicate openly about workload, availability, and support needs
@@ -223,7 +223,7 @@ All Team members must know when and how to escalate issues appropriately. Escala
**How to Escalate:**
**(a)** **Use Appropriate Channels**: Escalate through designated staff channels (e.g., `#sentinel-watch` on Discord) or direct contact with relevant coordinators or senior staff.
**(a)** **Use Appropriate Channels**: Escalate through designated staff channels (e.g., `#staff-chat` on Discord) or direct contact with relevant coordinators or senior staff.
**(b)** **Provide Complete Context**: When escalating, include:
- Clear description of the situation
@@ -281,8 +281,8 @@ For detailed escalation procedures specific to different situations, refer to th
#### 3.1.1. Primary Communication Platforms
- Our Discord community serves as a primary communication hub for the staff team
- A private `The Inner Circle` category is available for internal discussions
- Discord `#sentinel-watch` channel for real-time communication and coordination
- A private `staff` category is available for internal discussions
- Discord `#staff-chat` channel for real-time communication and coordination
#### 3.1.2. Use of Staff Communication Channels
- Utilise staff channels for:
+2 -7
View File
@@ -1,7 +1,7 @@
:root {
/* Witch color palette */
--witch-purple: #2b1b3d;
--witch-purple-translucent: hsla(267, 40%, 17%, 0.85);
--witch-purple-translucent: hsla(267, 40%, 17%, 0.597);
--witch-plum: #44275a;
--witch-rose: #a8577e;
--witch-mauve: #d4a5c7;
@@ -25,7 +25,7 @@
--sl-color-gray-6: var(--witch-purple);
/* Translucent background */
--content-bg: rgba(181, 185, 187, 0.85);
--content-bg: rgba(181, 185, 187, 0.543);
--content-blur: 8px;
}
@@ -150,11 +150,6 @@ starlight-theme-select select option {
background-color: var(--background-color);
}
html[data-theme="dark"] starlight-theme-select select option {
color: var(--witch-purple) !important;
background-color: var(--witch-lavender) !important;
}
.social-icons::after {
display: none;
}