> ## Documentation Index
> Fetch the complete documentation index at: https://docs.livepeer.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Automations

> This document tracks automation systems and where they write data.

# Automations & Data Integrations

{/* NEEDS WORK */}

## Automation Surfaces

* GitHub Actions workflows in `.github/workflows/`
* Workflow helper scripts in `.github/scripts/`
* n8n pipeline assets in `snippets/assets/data/n8n/`
* Maintenance scripts in `operations/scripts/`

See generated workflow inventory: [workflows-catalog.mdx](../catalog/workflows-catalog.mdx).

## Data Integrations

<AccordionGroup>
  <Accordion title="API Specifications">
    ## API Specifications

    Canonical API/spec files in `api/`:

    * `api/openapi.yaml`
    * `api/openapi.json`
    * `api/studio.yaml`
    * `api/gateway.openapi.yaml`
    * `api/ai-worker.yaml`
    * `api/cli-http.yaml`

    Related generation helpers:

    * `operations/scripts/snippets/fetch-openapi-specs.sh`
    * `operations/scripts/snippets/generate-api-docs.sh`
  </Accordion>

  <Accordion title="Automated External Data Feeds">
    ## Automated External Data Feeds

    Core external feed outputs:

    * Forum -> `snippets/data/social-feeds/forumData.jsx`
    * Ghost blog -> `snippets/data/social-feeds/ghostBlogData.jsx`
    * YouTube -> `snippets/data/social-feeds/youtubeData.jsx`
    * Release/global state -> `snippets/data/globals/latestRelease.jsx`
    * Showcase -> `snippets/data/showcase-feed/showcaseData.jsx`

    Pipeline definitions:

    * GitHub workflows under `.github/workflows/update-*.yml`
    * n8n assets under `snippets/assets/data/n8n/`
  </Accordion>

  <Accordion title="Internal Data Layers">
    ## Internal Data Layers

    * Route/link maps: `snippets/data/*/hrefs.jsx`
    * Domain data modules: `snippets/data/**/*.jsx`
    * Variables/meta docs snippets: `snippets/data/variables*.mdx`
    * AI sitemap: `sitemap-ai.xml` (generated by `operations/scripts/generators/content/seo/generate-ai-sitemap.js`, refreshed via `.github/workflows/generate-ai-sitemap.yml`)
  </Accordion>

  <Accordion title="Integrations Mentioned in Product Docs">
    ## Integrations Mentioned in Product Docs

    The repository includes integration-oriented docs for:

    * LPT and related exchange/reference data surfaces
    * Explorer and protocol/resource integrations
    * GitHub and ecosystem summaries via automation outputs

    Use public docs pages for user-facing detail and this file for maintainer location mapping.
  </Accordion>
</AccordionGroup>

### Operational Notes

* Treat generated data artifacts as derived state.
* Update pipeline scripts/workflows, then regenerate artifacts and indexes.
* Prefer deterministic outputs and stable write paths for CI predictability.

### Related

* Workflow inventory: [workflows-catalog.mdx](../catalog/workflows-catalog.mdx)
* Script inventory: [scripts-catalog.mdx](../catalog/scripts-catalog.mdx)
* Pipeline map: [automations.md](./automations.mdx)

<CustomDivider />

## Core Pipelines

1. Quality + CI
2. Data Refresh
3. Governance + Intake

<AccordionGroup>
  <Accordion title="1. Quality + CI">
    ### 1) Quality + CI

    * `test-suite.yml` - changed-file checks + browser test
    * `test-v2-pages.yml` - v2 browser sweep + artifacts/comments
    * `broken-links.yml` - advisory link checker
    * `openapi-reference-validation.yml` - blocking OpenAPI endpoint-reference integrity checks for `v2` + locales with conservative autofix on non-PR runs

    OpenAPI workflow behavior:

    * Triggers: PR (`main`, `docs-v2`), push (`main`, `docs-v2`), daily schedule (`04:35 UTC`), manual dispatch
    * Validator: `operations/tests/integration/openapi-reference-audit.js`
    * Autofix scope: method case, `METHOD /path` spacing, leading slash only
    * Failure handling: unresolved findings update a single rolling marker issue (`[//]: # (openapi-reference-audit)`); clean runs close it with a resolution comment
    * Labels ensured idempotently before issue sync: `docs-v2`, `help wanted`, `status: needs-routing`, `type: bug`, `area: ci-cd`
    * Local reproduction:
      * `node operations/tests/integration/openapi-reference-audit.js --full --strict --report /tmp/openapi-audit.md --report-json /tmp/openapi-audit.json`
      * `node operations/tests/integration/openapi-reference-audit.js --full --fix --write --report /tmp/openapi-audit-fix.md --report-json /tmp/openapi-audit-fix.json`

    Triage for `endpoint-not-found-in-spec`:

    1. identify mapped spec from report
    2. verify endpoint exists in mapped spec
    3. update frontmatter + component reference together
    4. retire removed endpoints from docs routes/locales when needed
  </Accordion>

  <Accordion title="2. Data Refresh Pipelines">
    ### 2) Data Refresh Pipelines

    * `freshness-monitor.yml` - advisory daily freshness report for derived automation outputs
    * `update-livepeer-release.yml` -> updates globals release data
    * `update-forum-data.yml` -> updates forum data snippets
    * `update-ghost-blog-data.yml` -> updates ghost blog data snippets
    * `update-youtube-data.yml` -> updates YouTube data snippets
    * `integrator-copy-update-showcase-submissions.yml` -> updates showcase pipeline data
  </Accordion>

  <Accordion title="3. Governance + Intake Pipelines">
    ### 3) Governance + Intake Pipelines

    * `discord-issue-intake.yml` + `issue-auto-label.yml`
    * review automation workflows (`build-review-assets.yml`, `generate-review-table.yml`, `update-review-template.yml`)
  </Accordion>
</AccordionGroup>

<CustomDivider />

## Showcase + Trending Topics Pipeline Notes

### Showcase

Primary artifacts:

* `snippets/data/showcase-feed/showcaseData.jsx`
* `.github/workflows/integrator-copy-update-showcase-submissions.yml`
* `snippets/assets/data/n8n/project-showcase-application-workflow.json`
* `snippets/assets/data/n8n/Showcase_Project_Pipeline.json`

Operational intent:

* searchable/sortable ecosystem entries
* pipeline reusable for additional curation sources
* active GitHub Action plus active n8n overlap is still unresolved and needs human review before either side is retired

### Trending Topics / Aggregation

Primary artifacts:

* `snippets/data/social-feeds/forumData.jsx`
* `snippets/data/social-feeds/ghostBlogData.jsx`
* `snippets/data/social-feeds/youtubeData.jsx`

Operational intent:

* aggregate recent community signal across forum/blog/YouTube
* feed “latest” sections and maintain freshness automatically
* superseded n8n definitions now have tracked archive copies under `tasks/staging/deprecated-n8n/`

### n8n-only Feeds

* `snippets/assets/data/n8n/Discord_Announce_to_Mintlify.json` remains the only repo-tracked Discord announcements pipeline; external hosting and activation still need owner confirmation.
* `snippets/assets/data/n8n/Luma-To-Mintlify.json` remains the repo-tracked Luma events pipeline; the workflow is active in JSON but external runtime ownership is still undocumented.

## Operational Controls

* Generated catalogs for scripts/workflows/templates prevent blind spots.
* CI and pre-commit checks reduce drift between pipeline outputs and docs expectations.
* `freshness-monitor.yml` adds a read-only daily staleness check without mutating any data files.
* Superseded n8n definitions are mirrored into `tasks/staging/deprecated-n8n/` for deprecation tracking while the source files await human-approved cleanup.
* Active GitHub Action and n8n overlap is tolerated only where repo evidence still suggests live usage and the owner has not confirmed retirement.

## Related

* Public workflow guide: `v2/resources/documentation-guide/automations-workflows.mdx`
* Internal quality map: [quality-gates.md](../policies/quality-gates.mdx)
* Script inventory: [scripts-catalog.mdx](../catalog/scripts-catalog.mdx)
