Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
33 changes: 33 additions & 0 deletions .github/workflows/agent-context-ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: Validate agent context

on:
pull_request:
paths:
- agent-context/**
- .github/workflows/agent-context-ci.yml
- .github/workflows/sync-agent-context.yml
push:
branches: [main]
paths:
- agent-context/**
- .github/workflows/agent-context-ci.yml
- .github/workflows/sync-agent-context.yml

permissions:
contents: read

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 24
package-manager-cache: false
- run: npm test
working-directory: agent-context
- run: npm run check
working-directory: agent-context
- run: npm run build
working-directory: agent-context
4 changes: 2 additions & 2 deletions .github/workflows/check-links.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ jobs:
name: Check links
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5
- name: Set up Node
uses: actions/setup-node@v4
uses: actions/setup-node@v5
with:
node-version: "22.x"
- name: Install Mintlify CLI
Expand Down
132 changes: 132 additions & 0 deletions .github/workflows/sync-agent-context.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
name: Sync plugin context

on:
workflow_dispatch:
push:
branches: [main]
paths:
- agent-context/context/**
- agent-context/targets/**
- agent-context/scripts/**
- agent-context/test/**
- agent-context/package.json
- .github/workflows/sync-agent-context.yml

permissions:
contents: read

concurrency:
group: sync-plugin-context
cancel-in-progress: false

jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: 24
package-manager-cache: false
- run: npm test
working-directory: agent-context
- run: npm run check
working-directory: agent-context

sync:
needs: validate
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
include:
- target: codex
repository: mintlify/codex-plugin
repository_name: codex-plugin
mcp_file: .mcp.json
- target: cursor
repository: mintlify/cursor-plugin
repository_name: cursor-plugin
mcp_file: mcp.json
- target: claude
repository: mintlify/mintlify-claude-plugin
repository_name: mintlify-claude-plugin
mcp_file: .mcp.json

steps:
- name: Check out context source
uses: actions/checkout@v6
with:
path: source

- uses: actions/setup-node@v6
with:
node-version: 24
package-manager-cache: false

- name: Create target repository token
id: app-token
uses: actions/create-github-app-token@v3
with:
client-id: ${{ vars.CONTEXT_SYNC_APP_CLIENT_ID }}
private-key: ${{ secrets.CONTEXT_SYNC_APP_PRIVATE_KEY }}
owner: mintlify
repositories: ${{ matrix.repository_name }}
permission-contents: write
permission-pull-requests: write

- name: Check out target repository
uses: actions/checkout@v6
with:
repository: ${{ matrix.repository }}
token: ${{ steps.app-token.outputs.token }}
path: target

- name: Generate target context
run: node source/agent-context/scripts/sync-target.mjs "${{ matrix.target }}" target

- name: Detect changes
id: changes
working-directory: target
run: |
if [[ -n "$(git status --porcelain)" ]]; then
echo "changed=true" >> "$GITHUB_OUTPUT"
else
echo "changed=false" >> "$GITHUB_OUTPUT"
fi

- name: Commit and push sync branch
if: steps.changes.outputs.changed == 'true'
working-directory: target
env:
APP_SLUG: ${{ steps.app-token.outputs.app-slug }}
BRANCH: automation/sync-agent-context
run: |
git config user.name "${APP_SLUG}[bot]"
git config user.email "${APP_SLUG}[bot]@users.noreply.github.com"
git checkout -B "$BRANCH"
git add skills/mintlify .mintlify-agent-context.json "${{ matrix.mcp_file }}"
git commit -m "Sync Mintlify agent context"
git fetch origin "$BRANCH:refs/remotes/origin/$BRANCH" || true
git push --force-with-lease origin "HEAD:$BRANCH"

- name: Open sync pull request
if: steps.changes.outputs.changed == 'true'
working-directory: target
env:
GH_TOKEN: ${{ steps.app-token.outputs.token }}
GH_REPO: ${{ matrix.repository }}
BRANCH: automation/sync-agent-context
SOURCE_SHA: ${{ github.sha }}
run: |
BODY="Generated from mintlify/docs at ${SOURCE_SHA} using agent-context. Do not edit generated skill files in this repository."
EXISTING_PR="$(gh pr list --head "$BRANCH" --state open --json number --jq '.[0].number')"
if [[ -z "$EXISTING_PR" ]]; then
gh pr create \
--head "$BRANCH" \
--base main \
--title "Sync Mintlify agent context" \
--body "$BODY"
else
gh pr edit "$EXISTING_PR" --body "$BODY"
fi
2 changes: 2 additions & 0 deletions .mintignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Internal tooling that compiles context for external agent plugins.
agent-context/
18 changes: 18 additions & 0 deletions .mintlify/assistant/skills/custom-domain-rate-limit/skill.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
name: "custom-domain-rate-limit"
description: "Use this skill when a user is setting up a custom domain and the _acme-challenge TXT record value never appears in the Mintlify dashboard — the dashboard shows a loading spinner, a blank field, or the value keeps changing on each attempt. This is caused by a Let's Encrypt certificate issuance rate limit from repeated failed validation attempts."

Check warning on line 3 in .mintlify/assistant/skills/custom-domain-rate-limit/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/custom-domain-rate-limit/skill.mdx#L3

Don't put a space before or after a dash.

Check warning on line 3 in .mintlify/assistant/skills/custom-domain-rate-limit/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/custom-domain-rate-limit/skill.mdx#L3

In general, use active voice instead of passive voice ('is caused').
---

# Custom domain _acme-challenge value not appearing

When the `_acme-challenge` TXT record value never loads in the dashboard, the cause is almost always a Let's Encrypt rate limit. Let's Encrypt limits how many certificate requests can be made for the same domain in a short window. Deleting and re-adding the domain, or retrying a failed validation, counts as a new attempt. After several failed attempts, Let's Encrypt imposes a cooldown before a new challenge token can be generated.

Check warning on line 8 in .mintlify/assistant/skills/custom-domain-rate-limit/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/custom-domain-rate-limit/skill.mdx#L8

In general, use active voice instead of passive voice ('be made').

Check warning on line 8 in .mintlify/assistant/skills/custom-domain-rate-limit/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/custom-domain-rate-limit/skill.mdx#L8

In general, use active voice instead of passive voice ('be generated').

Tell the user to:

1. Wait 24-72 hours before retrying. The rate limit clears on its own.
2. Leave the domain entry as-is in the dashboard. Deleting and re-adding the domain triggers new certificate requests and can extend the wait.
3. Avoid refreshing or clicking retry. Additional attempts may extend the cooldown further.

Once the cooldown clears, the `_acme-challenge` TXT value appears automatically. The user can then add it to their DNS and complete validation as normal.

If the user has already been retrying repeatedly, the cooldown can extend up to 7 days. The best path forward is still to leave the domain entry in place and wait. If the value hasn't appeared after a week, direct the user to contact support.
19 changes: 19 additions & 0 deletions .mintlify/assistant/skills/editor-reset/skill.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
---
name: "editor-reset"
description: "Use this skill when a user reports that the Mintlify web editor is broken, not loading properly, showing outdated or stale content, or is stuck after a GitHub sync. Also applies when the file tree fails to load or the editor appears frozen or unresponsive."

Check warning on line 3 in .mintlify/assistant/skills/editor-reset/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/editor-reset/skill.mdx#L3

In general, use active voice instead of passive voice ('is broken').

Check warning on line 3 in .mintlify/assistant/skills/editor-reset/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/editor-reset/skill.mdx#L3

In general, use active voice instead of passive voice ('is stuck').
---

# Reset the editor

A force reset usually fixes a web editor that is broken, showing stale content, or failing to load the file tree — especially after a Git sync. Resetting clears local editor state without affecting published docs or Git history.

Check warning on line 8 in .mintlify/assistant/skills/editor-reset/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/editor-reset/skill.mdx#L8

In general, use active voice instead of passive voice ('is broken').

Check warning on line 8 in .mintlify/assistant/skills/editor-reset/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/editor-reset/skill.mdx#L8

Don't put a space before or after a dash.

Walk the user through these steps:

1. Open the web editor at [app.mintlify.com](https://app.mintlify.com).
2. Click the settings button in the editor toolbar. It has a gear icon and no text label.
3. Scroll down to the **Reset Editor** section.
4. Click **Reset Editor**.

The editor reloads and re-syncs from the Git repository.

If the issue persists after resetting, it may indicate a deeper sync conflict — escalate to the support team.

Check warning on line 19 in .mintlify/assistant/skills/editor-reset/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/editor-reset/skill.mdx#L19

Don't put a space before or after a dash.
22 changes: 22 additions & 0 deletions .mintlify/assistant/skills/git-revalidation/skill.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
---
name: "git-revalidation"

Check warning on line 2 in .mintlify/assistant/skills/git-revalidation/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/git-revalidation/skill.mdx#L2

Use 'Git' instead of 'git'.
description: "Use this skill when a user reports that GitHub-dependent features have stopped working after they changed their repository from private to public or vice versa — Suggest Edits isn't showing on their docs, PR previews aren't generating, or branch options appear stale. Also applies when the Git connection appears stale or broken."

Check warning on line 3 in .mintlify/assistant/skills/git-revalidation/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/git-revalidation/skill.mdx#L3

Don't put a space before or after a dash.
---

# Revalidate the Git connection

Check warning on line 6 in .mintlify/assistant/skills/git-revalidation/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/git-revalidation/skill.mdx#L6

Use 'revalidat(e|es|ed|ing|ion)?' instead of 'Revalidate'.

When a repository's visibility changes (private to public or public to private), Mintlify's cached understanding of the repo's permissions becomes outdated. Features that depend on the GitHub connection — Suggest Edits, PR previews, branch syncing — can appear broken until the cache catches up to the new visibility state.

Check warning on line 8 in .mintlify/assistant/skills/git-revalidation/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/git-revalidation/skill.mdx#L8

Don't put a space before or after a dash.

Before recommending revalidation, check which direction the visibility changed:

- **Private to public**: revalidation restores affected features, including Suggest Edits.
- **Public to private**: Suggest Edits is only available for public GitHub repositories, so it is expected to disappear and revalidation will not restore it. Revalidation still fixes other stale-connection symptoms like PR previews or branch options.

Check warning on line 13 in .mintlify/assistant/skills/git-revalidation/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/git-revalidation/skill.mdx#L13

In general, use active voice instead of passive voice ('is expected').

Check warning on line 13 in .mintlify/assistant/skills/git-revalidation/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/git-revalidation/skill.mdx#L13

Avoid using 'will'.

Check warning on line 13 in .mintlify/assistant/skills/git-revalidation/skill.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

.mintlify/assistant/skills/git-revalidation/skill.mdx#L13

Use 'revalidat(e|es|ed|ing|ion)?' instead of 'Revalidation'.

Walk the user through these steps:

1. Go to the [Git Settings page](https://app.mintlify.com/settings/deployment/git-settings).
2. Press `Cmd + Shift + Enter` (Mac) or `Ctrl + Shift + Enter` (Windows).

This keyboard shortcut revalidates the Git connection. Mintlify re-checks the repository's visibility and permissions, which restores affected features.

After revalidating, the user should allow a minute for changes to propagate, then refresh their docs site.
Loading