Documentation Index
Fetch the complete documentation index at: https://na-36-docs-v2.mintlify.app/llms.txt
Use this file to discover all available pages before exploring further.
Overview
The documentation repository uses multiple automation systems to keep content up-to-date, validate quality, and streamline workflows:- GitHub Actions - CI/CD workflows for testing, validation, and automated updates
- n8n Workflows - External automation platform for data fetching and content updates
- Scripts - Command-line tools for content generation, data fetching, and maintenance
- Pre-commit Hooks - Local validation to enforce style guide compliance
GitHub Actions Workflows
GitHub Actions workflows are located in.github/workflows/ and run automatically on pushes, pull requests, or scheduled intervals.
Active Workflows
Broken Links Check
File:.github/workflows/broken-links.yml
Purpose: Validates that all links in the documentation are working
Triggers:
- Pull requests to
mainbranch
- Installs Mintlify CLI
- Runs
mintlify broken-linksto check all links - Posts advisory output in workflow summary (currently non-blocking)
continue-on-error: true)
Docs CI - Content Quality Suite
File:.github/workflows/test-suite.yml
Purpose: Runs the primary PR-blocking content quality checks
Triggers:
- Push to
main - Pull requests to
mainordocs-v2
- Computes changed files against PR base branch
- Runs changed-file scoped blocking checks:
- Style guide
- MDX validation
- Spelling
- Quality
- Links/imports
- Script docs enforcement on changed scripts
- Strict V2 link audit on changed docs pages
- Runs browser tests for route/runtime coverage
- Writes results to GitHub Step Summary
docs-v2 -> main, changed-file static failures are treated as advisory; browser failures still block.
SDK Generation
File:.github/workflows/sdk_generation.yaml
Purpose: Automatically generates SDKs from OpenAPI specifications using Speakeasy
Triggers:
- Daily at midnight UTC (scheduled)
- Manual dispatch from GitHub Actions UI
- Uses Speakeasy SDK generation action
- Generates SDKs for all configured APIs
- Creates pull requests with generated code
- Go to Actions → SDK Generation
- Click “Run workflow”
- Optionally set
force: trueto regenerate even if no changes
SPEAKEASY_API_KEY- Speakeasy API key for SDK generation
Docs CI - V2 Browser Sweep
File:.github/workflows/test-v2-pages.yml
Purpose: Tests all v2 documentation pages for console errors and rendering issues
Triggers:
- Push to
main - Pull requests to
mainordocs-v2
- Starts Mintlify dev server
- Runs Puppeteer tests on all pages
- Posts results as PR comments
- Uploads detailed test report as artifact
- PR comments with test results
- Artifact:
v2-page-test-report.json
Update Livepeer Release Version
File:.github/workflows/update-livepeer-release.yml
Purpose: Automatically updates the latest Livepeer release version in the canonical release data module
Triggers:
- Every 30 minutes (scheduled)
- Manual dispatch from GitHub Actions UI
- Fetches latest release from
livepeer/go-livepeerGitHub repository - Runs
.github/scripts/update-livepeer-release.jsto resolve and write the canonical release data - Commits the canonical data file if a new version is available
- Commits and pushes changes
- Go to Actions → Update Livepeer Release Version
- Click “Run workflow”
GITHUB_TOKEN)
Script entrypoint: .github/scripts/update-livepeer-release.js
Output file: snippets/data/globals/latestRelease.jsx
Audit note: The March 9, 2026 freshness audit found version drift and a path mismatch inside this workflow. snippets/data/globals/latestRelease.jsx is now the canonical automation output; legacy globals wrappers must remain thin re-exports instead of second sources of truth.
Pipeline Freshness Monitor
File:.github/workflows/freshness-monitor.yml
Purpose: Reports stale or missing derived automation outputs without modifying repository data
Triggers:
- Daily at 08:00 UTC (scheduled)
- Manual dispatch
- Checks git history timestamps for the seven canonical pipeline output files
- Writes a markdown summary table to the GitHub Actions job summary
- Emits a warning annotation when any file is missing or older than 72 hours
Discord Issue Intake (Phase 1)
File:.github/workflows/discord-issue-intake.yml
Purpose: Creates GitHub issues from Discord intake payloads delivered via repository_dispatch
Triggers:
repository_dispatchwith typediscord-issue-intake
- Validates dispatch payload schema and required fields for template
docs_page_issue - Rejects placeholder-only or security-sensitive content
- Enforces idempotency using
correlation_idmarker in issue body - Creates issue with template-aligned headings and base labels
- Leaves dynamic label mapping (
area:*,classification:*,priority:*,kind:*) toissue-auto-label.yml
- Supports
schema_version1.0.0and1.1.0 1.1.0adds requiredfields.classificationfordocs_page_issue1.0.0payloads remain valid for backward compatibility and will produce issues without aClassificationsection (the indexer will surface these as unclassified until triaged)- If you change field names or section headings in the issue forms, update both:
.github/workflows/discord-issue-intake.yml(payload validation + generated body headings).github/workflows/issue-auto-label.yml(section parsing / label mapping)
- Keep issue body headings exact (for example
### Classification,### Priority) because auto-label parsing is heading-based
- Add support for the new schema version in
.github/workflows/discord-issue-intake.yml - Keep the previous schema version accepted until all dispatch senders are upgraded
- Update
snippets/assets/data/n8n/Discord-Issue-Intake.jsonto emit the new version and fields - Verify a test dispatch creates the expected headings and labels
- None (uses repository-dispatch caller token and GitHub Actions
GITHUB_TOKEN)
snippets/assets/data/n8n/Discord-Issue-Intake.jsonsnippets/_workspace/archive/assets-scripts/README-discord-issue-intake-workflow.md.github/workflows/issue-auto-label.yml
Issue Auto Label
File:.github/workflows/issue-auto-label.yml
Purpose: Parses issue form bodies and applies/removes managed labels for docs triage.
Managed label families:
area:*classification:*(severity/impact)priority:*(maintainer scheduling)kind:*(docs page issue subtype)scope:*
- Parsing is based on exact markdown headings in issue bodies (for example
### Area,### Classification,### Priority) - If a heading is renamed in any issue template, update
getSection(...)usage and required-section lists in this workflow - Legacy issue compatibility is intentional:
Classificationis only treated as required when the issue body already contains a### Classificationsection- This prevents older issues from being auto-labeled
status: needs-infoduring re-triage edits
- The workflow skips the docs-v2 top-level issue index by checking for the hidden marker:
[//]: # (docs-v2-issue-indexer)- Do not remove or rename this marker without updating both this workflow and the indexer workflow
- Open a test issue from each affected template (or edit an existing test issue body)
- Confirm
classification:*andpriority:*labels are both applied - Change classification in the issue body and confirm the old
classification:*label is removed - Confirm the docs-v2 index issue is not auto-labeled with
status: needs-triage
Docs v2 Issue Indexer
File:.github/workflows/docs-v2-issue-indexer.yml
Purpose: Maintains one rolling top-level GitHub issue indexing docs-v2 issues (open + recently closed).
Triggers:
issuesevents: open/edit/label/unlabel/reopen/close- scheduled every 6 hours
- manual dispatch
- Finds the index issue by hidden marker in the issue body (
[//]: # (docs-v2-issue-indexer)) - Creates the index issue if it does not exist
- Queries all open
docs-v2issues and recently closeddocs-v2issues (default 30-day window) - Generates summary counts + breakdown tables + issue tables
- Updates the same issue body in place only if content changed
- The hidden marker is the source of truth for locating the index issue. Keep it stable unless you update both:
.github/workflows/docs-v2-issue-indexer.yml.github/workflows/issue-auto-label.yml
- The recently closed window is controlled by
RECENTLY_CLOSED_DAYSin the workflow script - The workflow intentionally excludes the index issue itself from counts/tables even if it has the
docs-v2label - The workflow skips self-trigger loops by exiting early if the triggering issue body already contains the index marker
- If the generated issue body seems stale, use Actions → Docs v2 Issue Indexer → Run workflow
- Duplicate index issues:
- Ensure only one issue contains the marker
[//]: # (docs-v2-issue-indexer) - Remove the marker from duplicates, then run the workflow manually
- Ensure only one issue contains the marker
- Missing labels in breakdowns:
- Check
.github/workflows/issue-auto-label.ymlmanaged prefixes and label parsing - Verify issue body headings still match the parser expectations
- Check
- Unexpected “unclassified” open issues:
- These are usually legacy issues (pre-classification) or issues created from older Discord intake schema
1.0.0
- These are usually legacy issues (pre-classification) or issues created from older Discord intake schema
Data Fetching Workflows (GitHub Actions Canonical)
The GitHub Actions implementation is the canonical in-repo path for Ghost, Forum, and YouTube data refresh. Older n8n definitions for those feeds now have tracked archive copies undertasks/staging/deprecated-n8n/ so they are recoverable while the original files await human-approved cleanup.
Update Forum Data
File:.github/workflows/update-forum-data.yml
Status: Canonical GitHub Actions workflow
Purpose: Fetches latest forum topics from Livepeer forum
Triggers:
- Daily at midnight UTC (scheduled)
- Manual dispatch
- Runs
.github/scripts/fetch-forum-data.js - Updates
snippets/data/social-feeds/forumData.jsx - Commits and pushes if changes detected
DOCS_V2- GitHub token for docs repository accessGHOST_CONTENT_API_KEY- Ghost Content API key used by.github/scripts/fetch-ghost-blog-data.js
tasks/staging/deprecated-n8n/Forum-To-Mintlify-Latest-Topics.json
Update Ghost Blog Data
File:.github/workflows/update-ghost-blog-data.yml
Status: Canonical GitHub Actions workflow
Purpose: Fetches latest blog posts from Ghost CMS
Triggers:
- Daily at midnight UTC (scheduled)
- Manual dispatch
- Runs
.github/scripts/fetch-ghost-blog-data.js - Updates
snippets/data/social-feeds/ghostBlogData.jsx - Commits and pushes if changes detected
DOCS_V2- GitHub token for docs repository access
tasks/staging/deprecated-n8n/Ghost-to-Mintlify.json
Update YouTube Data
File:.github/workflows/update-youtube-data.yml
Status: Canonical GitHub Actions workflow
Purpose: Fetches latest YouTube videos from Livepeer channel
Triggers:
- Weekly on Sunday at midnight UTC (scheduled)
- Manual dispatch
- Runs
.github/scripts/fetch-youtube-data.js - Filters out Shorts (≤60 seconds)
- Updates
snippets/data/social-feeds/youtubeData.jsx - Commits and pushes if changes detected
YOUTUBE_API_KEY- YouTube Data API v3 key
tasks/staging/deprecated-n8n/YouTube-To-Mintlify.json
n8n Automation Workflows
n8n workflows are JSON files located insnippets/assets/data/n8n/. These workflows run on an external n8n instance and can be imported/configured there. Superseded repo-tracked definitions now also have tracked archive copies under tasks/staging/deprecated-n8n/.
Repo-tracked n8n workflows still in scope
| Workflow | Repo status | Ownership |
|---|---|---|
Discord_Announce_to_Mintlify.json | Retained in repo asset directory | Only repo-tracked Discord announcements pipeline; external trigger and hosting still need maintainer confirmation. |
Luma-To-Mintlify.json | Retained in repo asset directory | Only repo-tracked Luma events pipeline; marked active in JSON but external runtime ownership is undocumented. |
Discord-Issue-Intake.json | Retained in repo asset directory | Paired with .github/workflows/discord-issue-intake.yml; n8n handles Discord interaction intake and GitHub Actions creates the issue. |
Project Showcase Application Workflow.json | Retained in repo asset directory | Overlaps with project-showcase-sync.yml; repo evidence suggests live usage, so retirement requires human review. |
Showcase_Project_Pipeline.json | Retained in repo asset directory | Overlaps with project-showcase-sync.yml; repo evidence suggests live usage, so retirement requires human review. |
Active n8n Workflows
Discord Announcements to Mintlify
File:snippets/assets/data/n8n/Discord_Announce_to_Mintlify.json
Status: Repo-tracked n8n-only feed
Purpose: Generates snippets/data/social-feeds/discordAnnouncementsData.jsx
Trigger: Schedule trigger in n8n
What we know from the repo:
- No GitHub Actions workflow currently writes the Discord announcements data file
- The JSON workflow targets
docs-v2and the canonical Discord data output path - The JSON defaults to inactive in the repo, so external activation and hosting must be confirmed outside the repository
snippets/data/social-feeds/discordAnnouncementsData.jsx
Luma Events to Mintlify
File:snippets/assets/data/n8n/Luma-To-Mintlify.json
Status: Repo-tracked n8n-only feed
Purpose: Fetches Luma calendar events and updates documentation
Schedule: Weekly
What it does:
- Fetches iCal data from Luma API
- Parses events (upcoming and past)
- Generates JSX data file
- Commits to GitHub on
docs-v2branch
snippets/data/social-feeds/lumaEventsData.jsx
How to use:
- Import JSON file into n8n instance
- Configure GitHub credentials
- Set Luma calendar ID
- Activate workflow
- GitHub API token with write access
- Luma calendar ID:
cal-X93qV3PuUH0wq0f
Showcase Overlap (Needs Human Review)
The repository currently contains both.github/workflows/project-showcase-sync.yml and active showcase-focused n8n JSON assets:
snippets/assets/data/n8n/project-showcase-application-workflow.jsonsnippets/assets/data/n8n/Showcase_Project_Pipeline.json
Showcase_To_Mintlify_Pipeline.json) remains in the repo and appears to be an older prototype with placeholder paths, but it was intentionally left unchanged in this commit.
Discord Issue Intake (Phase 1)
File:snippets/assets/data/n8n/Discord-Issue-Intake.json
Status: ✅ Ready to import (defaults to inactive)
Purpose: Handles Discord slash-command intake (/docs-issue) and relays normalised issue payloads to GitHub Actions.
Trigger: Discord interactions webhook (POST)
What it does:
- Verifies Discord request signatures
- Enforces channel allowlist and per-user rate limit
- Collects long-form fields via modal
- Shows preview with inferred labels + confirm/cancel buttons
- Sends
repository_dispatchto GitHub (discord-issue-intake) - Polls for created issue and sends follow-up message with issue URL
snippets/assets/scripts/n8n/README-discord-issue-intake-workflow.md
DISCORD_PUBLIC_KEYALLOWED_CHANNEL_IDSGITHUB_DISPATCH_TOKENGITHUB_OWNERGITHUB_REPOGITHUB_DISPATCH_EVENT_TYPESECURITY_REPORT_URLRATE_LIMIT_WINDOW_SECRATE_LIMIT_MAXDISCORD_ISSUE_SCHEMA_VERSIONGITHUB_POLL_ATTEMPTSGITHUB_POLL_DELAY_MS
Archived Superseded n8n Workflows
The following repo-tracked n8n definitions now have copies intasks/staging/deprecated-n8n/ because GitHub Actions is the canonical in-repo owner or the JSON no longer reflects the live contract:
- Ghost-to-Mintlify.json - archived in favour of
update-ghost-blog-data.yml - Forum-To-Mintlify-Latest-Topics.json - archived in favour of
update-forum-data.yml - YouTube-To-Mintlify.json - archived in favour of
update-youtube-data.yml
Utility Workflows
MP4 to GIF Converter
File:snippets/assets/data/n8n/mp4-to-gif.json
Purpose: Converts MP4 videos to GIF format via webhook
Trigger: Webhook (POST request)
What it does:
- Accepts video URL or local path
- Downloads video (if URL provided)
- Converts to GIF using FFmpeg
- Returns GIF file or file path
- Import JSON file into n8n instance
- Configure webhook URL
- Send POST request with video URL or local path
- Receive GIF in response
video_url(optional) - URL to video filelocal_path(optional) - Local file pathfps(default: 10) - Frames per secondwidth(default: 480) - Output widthstart_time(default: “0”) - Start time in videoduration(optional) - Duration to convertoptimize(default: true) - Use palette optimisationoutput_path(optional) - Output file path
Scripts
Scripts are organised into multiple directories based on their purpose. All scripts use git-based repo root detection with fallback topaths.config.json.
Content Generation Scripts
Generate SEO Metadata
File:operations/scripts/snippets/generate-seo.js
Purpose: Automatically generates and updates SEO metadata for MDX documentation pages
Usage:
- Generates the canonical site-level OG image PNG set and manifest
- Scans authored MDX files in
v2/,docs/,docs-guide/,contribute/, andsnippets/pages/ - Generates
keywordsanddescriptiononly when missing - Writes canonical OG metadata:
og:imageog:image:altog:image:typeog:image:widthog:image:height
- Uses top-level tab assets for docs.json-routable pages and the fallback asset for non-routable authored pages
- After creating new documentation pages
- After changing OG branding or localized tab labels
- Before deploying to re-normalise canonical OG metadata
Generate API Documentation
File:operations/scripts/snippets/generate-api-docs.sh
Purpose: Generates Mintlify API documentation from an OpenAPI specification file
Usage:
- Reads an OpenAPI spec (YAML or JSON)
- Creates a landing page with CardGroups linking to each endpoint (grouped by tags)
- Creates individual MDX pages for each endpoint with
openapi: METHOD /pathfrontmatter - Outputs a docs.json navigation snippet ready to copy-paste
docs.json navigation.
Update Component Library
File:operations/scripts/generate-component-docs.js
Purpose: Generates the published component-library pages from governed component metadata
Usage:
- Reads
docs-guide/config/component-registry.json - Generates the English component-library pages in
v2/resources/documentation-guide/component-library/ - Generates locale scaffold pages for
es,fr, andcn - Archives the legacy shell entrypoint and removes retired generated pages when required
v2/resources/documentation-guide/component-library/*.mdx
When to run:
- After component metadata, usage-map output, or registry output changes
- After adding, moving, or removing governed components
- When localized component-library scaffolds need refreshing
Data Fetching Scripts
Fetch OpenAPI Specs
File:operations/scripts/snippets/fetch-openapi-specs.sh
Purpose: Fetches OpenAPI specification files from the livepeer/ai-runner repository
Usage:
- Downloads OpenAPI specs from external repositories
- Saves to
ai/worker/api/
ai/worker/api/:
openapi.yaml- AI Runner API specgateway.openapi.yaml- AI Gateway API spec
Fetch External Documentation
File:operations/scripts/integrators/content/data/fetching/fetch-external-docs.sh
Purpose: Fetches external documentation files from other Livepeer repositories and sanitizes them for MDX compatibility
Usage:
- Downloads documentation from external repositories
- Sanitizes content for MDX compatibility
- Saves to
snippets/composables/pages/shared/
snippets/composables/pages/shared/:
wiki-readme.mdx- livepeer/wiki READMEawesome-livepeer-readme.mdx- livepeer/awesome-livepeer READMEwhitepaper.mdx- Livepeer Whitepapergwid-readme.mdx- videoDAC/livepeer-gateway READMEbox-additional-config.mdx- go-livepeer box configuration
- Escaping curly braces for MDX
- Removing HTML comments
- Converting HTML tags to Markdown equivalents
Fetch LPT Exchanges
File:operations/scripts/snippets/fetch-lpt-exchanges.sh
Purpose: Fetches LPT exchange listings from CoinGecko API and updates the exchanges page
Usage:
- Fetches live data from CoinGecko API for Livepeer token
- Generates a styled table of CEX exchanges with volume and trust scores
- Appends DEX information and contract addresses
- Updates
v2/delegators/resources/compendium/exchanges.mdx
- Periodically to update exchange listings
- Before major releases to ensure current data
Testing Scripts
V2 Browser Sweep Script (test:v2-pages)
File: operations/scripts/test-v2-pages.js
Purpose: Tests all v2 pages for console errors and rendering issues
Usage:
- Extracts all v2 pages from
docs.json - Starts Mintlify dev server (if not running)
- Tests each page with Puppeteer
- Reports console errors, page errors, and request failures
- Generates detailed JSON report
npx mintlify devmust be running (or setMINT_BASE_URLenvironment variable)- Puppeteer installed (
npm install)
- Console output with pass/fail status
v2-page-test-report.json- Detailed test results
MINT_BASE_URL- Base URL for Mintlify dev server (default:http://localhost:3000)
GitHub Scripts (Used by Workflows)
These scripts are used by GitHub Actions workflows and typically shouldn’t be run manually:.github/scripts/fetch-forum-data.js- Fetches forum data (used byupdate-forum-data.yml).github/scripts/fetch-ghost-blog-data.js- Fetches Ghost blog data (used byupdate-ghost-blog-data.yml).github/scripts/fetch-youtube-data.js- Fetches YouTube data (used byupdate-youtube-data.yml)
Pre-commit Hooks
Pre-commit hooks automatically run when you attempt to commit code. They enforce style guide compliance and validate code quality.Installation
MANDATORY: You must install the hooks before making any commits:What Gets Checked
Style Guide Compliance
The pre-commit hook checks for:- ❌ ThemeData usage - Blocks deprecated
ThemeDataimports fromthemeStyles.jsx - ❌ Hardcoded colours - Warns about hex colours that should use CSS Custom Properties
- ⚠️ Relative imports - Warns about relative paths (should use absolute paths from root)
- ⚠️ @mintlify/components imports - Warns about unnecessary imports (components are global)
- ⚠️ React hook imports - Warns about unnecessary React imports (hooks are global)
Verification Scripts
The hook also runs.githooks/verify.sh which checks:
- ✅ MDX syntax - Validates frontmatter and basic MDX structure
- ✅ JSON syntax - Validates JSON files are parseable
- ✅ Shell script syntax - Validates shell scripts with
bash -n - ✅ JavaScript syntax - Validates JS files with
node --check - ✅ Mintlify config - Validates
docs.json/mint.jsonsyntax - ✅ Import paths - Ensures snippets imports use absolute paths
- ✅ Browser validation - Tests MDX files in headless browser (if
npx mintlify devis running)
What Happens on Violation
If you attempt to commit code that violates the style guide:- The commit is blocked
- You receive a detailed error message listing all violations
- You must fix the violations before committing again
Browser Validation
The hooks include headless browser validation that tests MDX files actually render in the browser. This catches:- Runtime errors in components
- Failed imports
- Console errors
- Render failures
npx mintlify dev to be running. If it’s not running, the check is skipped (doesn’t block commit).
Bypassing Hooks (Not Recommended)
⚠️ WARNING: Only bypass hooks if you have a legitimate reason and understand the consequences. For intentional.allowlist edits by a human, use:
- Violates style guide compliance
- May introduce errors that break the build
- Makes code review harder
- Can cause issues for other developers
Running Automations
Manual Execution
GitHub Actions
- Go to Actions tab in GitHub repository
- Select the workflow you want to run
- Click “Run workflow” button
- Select branch and any required inputs
- Click “Run workflow” to start
Scripts
Most scripts can be run directly from the command line:n8n Workflows
- Import JSON file into n8n instance
- Configure credentials and settings
- Activate workflow
- Monitor executions in n8n dashboard
Scheduled Execution
- GitHub Actions - Use
scheduletrigger with cron syntax - n8n Workflows - Use Schedule Trigger node with interval or cron
Monitoring
- GitHub Actions - Check Actions tab for workflow runs and logs
- n8n - Check n8n dashboard for execution history
- Scripts - Check console output and generated files
Troubleshooting
GitHub Actions Not Running
Issue: Workflow doesn’t trigger on push/PR Solutions:- Check workflow file syntax (YAML must be valid)
- Verify trigger conditions match your branch/event
- Check Actions tab for error messages
- Ensure workflow file is in
.github/workflows/directory
Scripts Failing
Issue: Script errors or doesn’t produce expected output Solutions:- Check script has execute permissions:
chmod +x script.sh - Verify Node.js version matches script requirements
- Check for missing dependencies:
npm install - Review script documentation for prerequisites
- Run with verbose output if available
Pre-commit Hook Not Running
Issue: Hook doesn’t execute on commit Solutions:- Verify hook is installed:
ls -la .git/hooks/pre-commit - Check hook is executable:
chmod +x .git/hooks/pre-commit - Reinstall:
./.githooks/install.sh - Check for
.git/hooks/pre-commitfile exists
n8n Workflow Issues
Issue: Workflow fails or doesn’t update files Solutions:- Check workflow is active in n8n dashboard
- Verify credentials are configured correctly
- Check execution logs in n8n
- Verify GitHub token has write permissions
- Check branch name matches workflow configuration
Missing Secrets/Keys
Issue: Workflow fails with authentication errors Solutions:- Go to repository Settings → Secrets and variables → Actions
- Add required secrets (e.g.,
YOUTUBE_API_KEY,SPEAKEASY_API_KEY) - Verify secret names match workflow file exactly
- For n8n, configure credentials in n8n dashboard
Best Practices
When to Use What
GitHub Actions - Use for:- ✅ Simple data fetching (API calls, file updates)
- ✅ Repository-native operations (commits, PRs, checks)
- ✅ CI/CD workflows (testing, validation)
- ✅ Scheduled tasks that only need GitHub access
- ✅ When you want everything in the repository
- ✅ Complex multi-step workflows
- ✅ External service integrations (Discord, Google Sheets, Google Forms)
- ✅ Approval workflows with notifications
- ✅ Workflows requiring user interaction
- ✅ When you need more visual workflow management
- ✅ One-off tasks and content generation
- ✅ Local development and testing
- ✅ Manual data updates
- ✅ Enforcing code quality and style guide compliance
- ✅ Catching errors before commit
Keeping Automations Updated
- Review workflow inventories - Check the workflow and script sections in this guide for current automation status
- Test before deploying - Run scripts locally before committing
- Monitor workflow runs - Check GitHub Actions and n8n dashboards regularly
- Update documentation - Keep this guide current as automations change
Security Considerations
- Never commit secrets - Use GitHub Secrets or n8n credentials
- Review auto-commits - Be cautious with scripts that automatically commit
- Limit token permissions - Use least-privilege access for API tokens
- Audit regularly - Review automation access and permissions periodically
Related Documentation
- Style Guide - Styling conventions and Mintlify gotchas
- Component Library - Available components and usage
- Git Hooks Documentation - Complete pre-commit hook documentation
- Scripts README - Detailed scripts documentation
Getting Help
If you encounter issues with automations:- Check this guide for troubleshooting steps
- Review the workflow and script sections here for known issues
- Check workflow/script documentation
- Review execution logs (GitHub Actions or n8n)
- Ask in the repository or community channels