Skip to content
Merged
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
Jump to file
Failed to load files.
Loading
Diff view
Diff view
135 changes: 0 additions & 135 deletions admin-openapi.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,84 +16,6 @@
}
],
"paths": {
"/v1/deslop/{projectId}": {
"post": {
"summary": "Detect AI-sounding prose in a page",
"description": "Analyzes a page for AI-generated prose and returns flagged passages with suggested rewrites. Consumes one AI credit per checked page. Skips pages under 50 words. Limited to 30 requests per minute per client IP address.",
"parameters": [
{
"name": "projectId",
"in": "path",
"required": true,
"schema": { "type": "string" },
"description": "Your project ID. Can be copied from the [API keys](https://app.mintlify.com/settings/organization/api-keys) page in your dashboard."
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": ["path", "content"],
"properties": {
"path": {
"type": "string",
"minLength": 1,
"description": "Repo-relative path of the page, used for reporting only."
},
"content": {
"type": "string",
"maxLength": 1000000,
"description": "The raw MDX or Markdown content of the page to check."
}
}
}
}
}
},
"responses": {
"200": {
"description": "The page was checked, or skipped because it was too short.",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/DeslopResult" } }
}
},
"400": {
"description": "Invalid request body.",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/Error" } }
}
},
"402": {
"description": "Insufficient AI credits.",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/Error" } }
}
},
"429": {
"description": "Rate limit exceeded.",
"content": {
"text/plain": {
"schema": {
"type": "string",
"example": "Too many requests, please try again later."
}
}
}
},
"503": {
"description": "Detection is temporarily unavailable. No credit is charged.",
"content": {
"application/json": { "schema": { "$ref": "#/components/schemas/Error" } }
}
},
"500": {
"description": "An unexpected error occurred while processing the page."
}
}
}
},
"/v1/agent/{projectId}/job": {
"post": {
"summary": "Create agent job (v1)",
Expand Down Expand Up @@ -640,63 +562,6 @@
},
"components": {
"schemas": {
"DeslopResult": {
"type": "object",
"required": ["path", "skipped", "creditsCharged"],
"properties": {
"path": { "type": "string", "description": "The path from the request." },
"skipped": {
"type": "string",
"nullable": true,
"enum": ["too_short", null],
"description": "Reason the page was skipped, or null when the page was checked. `too_short` means the page had fewer than 50 words of prose and was not charged."
},
"predictionShort": {
"type": "string",
"enum": ["AI", "AI-Assisted", "Human", "Mixed"],
"description": "Overall verdict for the page. Present only when the page was checked."
},
"fractionAi": { "type": "number", "description": "Fraction of the page detected as AI-generated (0-1)." },
"fractionAiAssisted": { "type": "number", "description": "Fraction detected as AI-assisted (0-1)." },
"fractionHuman": { "type": "number", "description": "Fraction detected as human-written (0-1)." },
"windows": {
"type": "array",
"description": "Flagged (non-human) passages. Present only when the page was checked.",
"items": { "$ref": "#/components/schemas/DeslopWindow" }
},
"creditsCharged": { "type": "integer", "description": "AI credits charged for this request (0 when skipped)." }
}
},
"DeslopWindow": {
"type": "object",
"required": ["text", "label", "aiAssistanceScore", "startLine", "endLine"],
"properties": {
"text": { "type": "string", "description": "The flagged passage text." },
"label": { "type": "string", "description": "Detection label for the passage, for example `AI-Generated`." },
"aiAssistanceScore": { "type": "number", "description": "AI-assistance score for the passage (0-1)." },
"confidence": {
"description": "Detection confidence, returned as either a label such as `High` or a numeric score.",
"oneOf": [
{ "type": "string" },
{ "type": "number" }
]
},
"startLine": { "type": "integer", "description": "1-based start line of the passage in the original content." },
"endLine": { "type": "integer", "description": "1-based end line of the passage in the original content." },
"rewrites": {
"type": "array",
"description": "Suggested human rewrites of the passage.",
"items": {
"type": "object",
"required": ["text", "rationale"],
"properties": {
"text": { "type": "string", "description": "The rewritten passage." },
"rationale": { "type": "string", "description": "Why the rewrite reads more human." }
}
}
}
}
},
"AgentJob": {
"type": "object",
"properties": {
Expand Down
2 changes: 1 addition & 1 deletion agent-context/context/skills/mintlify/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -217,7 +217,7 @@ Use `<Columns>` to arrange cards (or other content) in a grid. `cols` accepts 1-

## CLI commands

Install with `npm i -g mint`. Key commands: `mint dev` (local preview), `mint validate`, `mint broken-links`, `mint a11y`, `mint score`, `mint automations`, `mint deslop`, `mint new`, `mint signup`, `mint index` (install the Mintlify Index MCP server in supported coding agents). Read `reference/cli.md` for full flags and subcommands.
Install with `npm i -g mint`. Key commands: `mint dev` (local preview), `mint validate`, `mint broken-links`, `mint a11y`, `mint score`, `mint automations`, `mint new`, `mint signup`, `mint index` (install the Mintlify Index MCP server in supported coding agents). Read `reference/cli.md` for full flags and subcommands.

## Writing standards

Expand Down
1 change: 0 additions & 1 deletion agent-context/context/skills/mintlify/reference/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,6 @@ Available on all commands.
- `mint broken-links` — Check for broken internal links. `--files <paths...>` limits the check to specific files or globs. `--check-anchors` validates `#` anchors. `--check-external` checks external URLs. `--check-redirects` checks that redirect destinations in `docs.json` resolve. `--check-snippets` checks links inside `<Snippet>` components.
- `mint a11y` — Accessibility checks (alt text, color contrast). `--skip-contrast` or `--skip-alt-text` to narrow scope.
- `mint score [url]` — Score a docs site's AI/agent readiness. Checks llms.txt, MCP discoverability, robots.txt, sitemap, structured data, response latency, and more. Requires `mint login`. Defaults to your configured subdomain. `--format` accepts `table` (default), `plain`, or `json`.
- `mint deslop [files...]` — Check pages for AI-sounding prose and get rewrite suggestions. Requires `mint login`. Without `files`, checks the `.md`/`.mdx` pages changed in your working tree (Git diff plus untracked files). Flags: `--format` (`table`/`plain`/`json`), `--subdomain`, `--threshold` (0-1, default 0.5), `--fix-whitespace` (normalizes trailing spaces, blank-line runs, and invisible Unicode outside code blocks/frontmatter).
- `mint format` — Format every `.mdx` file in the current directory and its subdirectories in place. Respects `.gitignore` and Mintlify ignore rules. Commit or stash changes first so you can review the rewrite.

## Authentication
Expand Down
32 changes: 0 additions & 32 deletions api/admin/deslop.mdx

This file was deleted.

2 changes: 0 additions & 2 deletions api/introduction.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
- [Get update status](/api/update/status): Get the status of an update and other details about your docs.
- [Trigger preview deployment](/api/preview/trigger): Create or update a preview deployment for a specific branch.
- [Trigger automation](/api/automations/trigger): Run a scheduled automation on demand.
- [Detect AI-sounding prose](/api/admin/deslop): Analyze a page for AI-generated prose and get suggested human rewrites.
- [Create agent job](/api/agent/v2/create-agent-job): Create an agent job to automatically edit your documentation.
- [Get agent job](/api/agent/v2/get-agent-job): Retrieve the details and status of a specific agent job.
- [Send follow-up message](/api/agent/v2/send-message): Send a follow-up message to an existing agent job.
Expand Down Expand Up @@ -69,7 +68,6 @@
- [Get update status](/api/update/status)
- [Trigger preview deployment](/api/preview/trigger)
- [Trigger automation](/api/automations/trigger)
- [Detect AI-sounding prose](/api/admin/deslop)
- [Create agent job](/api/agent/v2/create-agent-job)
- [Get agent job](/api/agent/v2/get-agent-job)
- [Send follow-up message](/api/agent/v2/send-message)
Expand Down Expand Up @@ -117,7 +115,7 @@

Set the allowlist when you create a key on the [API keys page](https://app.mintlify.com/settings/organization/api-keys) in your dashboard. You set the allowlist for the lifetime of the key when you create it. To change the allowlist, you must create a new key. If you don't set an allowlist, the key accepts requests from any IP address.

Allowlist entries support:

Check warning on line 118 in api/introduction.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

api/introduction.mdx#L118

Use 'allowlist(s|ed|ing)?' instead of 'Allowlist'.

- IPv4 and IPv6 addresses, for example `203.0.113.5` or `2001:db8::1`.
- CIDR ranges, for example `198.51.100.0/24` or `2001:db8::/48`.
Expand Down Expand Up @@ -151,4 +149,4 @@

The expiration must be a future ISO 8601 timestamp. Past or invalid timestamps return a `400` response at key creation. The expiration returns as `expiresAt` when you list keys, or `null` for keys with no expiration.

Use expirations for short-lived credentials, such as CI/CD tokens, external contractors, or one-off scripts. Rotate long-lived keys by creating a replacement, updating your integrations, and deleting the old key.

Check warning on line 152 in api/introduction.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

api/introduction.mdx#L152

Did you really mean 'expirations'?
41 changes: 0 additions & 41 deletions cli/commands.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -91,9 +91,9 @@

| Client | Global configuration | Project configuration |
| --- | --- | --- |
| Claude Code | `~/.claude.json` | `.mcp.json` |

Check warning on line 94 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

cli/commands.mdx#L94

Use 'Claude' instead of 'claude'.
| Cursor | `~/.cursor/mcp.json` | `.cursor/mcp.json` |
| VS Code | User `mcp.json` | `.vscode/mcp.json` |

Check warning on line 96 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

cli/commands.mdx#L96

Use 'VSCode' instead of 'vscode'.
| Codex | `~/.codex/config.toml` | `.codex/config.toml` |
| OpenCode | `~/.config/opencode/opencode.json` | `opencode.json` |
| Windsurf | `~/.codeium/windsurf/mcp_config.json` | Global only |
Expand Down Expand Up @@ -202,7 +202,7 @@

Add the `TXT` records first, then add the `CNAME` once the verification records validate. See [Custom domain](/customize/custom-domain) for full DNS setup instructions, apex domain requirements, and TLS provisioning details.

If the command fails with `Domain is already in use by another deployment in your organization` or `Domain is already claimed by another organization`, the domain is bound to another Mintlify deployment. See [Add domain fails with "Domain is already claimed by another organization"](/help-center/domain-already-claimed-by-another-organization) to release it and re-add it.

Check warning on line 205 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

cli/commands.mdx#L205

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

<Note>
If some `TXT` records are still generating when the command exits, check the [Custom domain setup](https://app.mintlify.com/settings/deployment/custom-domain) page in your dashboard for the remaining values.
Expand Down Expand Up @@ -366,7 +366,7 @@
| `--check-redirects` | Also check that redirect destinations in `docs.json` resolve to valid paths. |
| `--check-snippets` | Also check links inside `<Snippet>` components. |

Pass `--files` to limit the check to specific pages. This is useful for validating a single page you just edited or scoping checks to a directory in CI. When `--files` is set with `--check-external`, only external URLs on the selected pages are fetched.

Check warning on line 369 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

cli/commands.mdx#L369

In general, use active voice instead of passive voice ('are fetched').

```bash
# Check a specific page
Expand Down Expand Up @@ -497,47 +497,6 @@

---

## `mint deslop`

Check documentation pages for AI-sounding prose and get rewrite suggestions. Requires authentication with `mint login`.

```bash
mint deslop [files...] [flags]
```

| Argument | Description |
| --- | --- |
| `files` | Optional. Paths or globs to check. If omitted, the command checks the `.md` and `.mdx` pages that changed in your working tree (Git diff plus untracked files). |

| Flag | Description |
| --- | --- |
| `--format` | Output format: `table` (default, colored), `plain` (pipeable), or `json`. |
| `--subdomain` | Documentation subdomain to check against. Defaults to your configured subdomain. |
| `--threshold` | Fail a page when the sum of its AI-generated and AI-assisted fractions is greater than this value, from `0` to `1`. Defaults to `0.5`. |
| `--fix-whitespace` | Normalize prose whitespace in the checked files (trailing spaces, blank-line runs, and invisible Unicode characters). Skips code blocks and frontmatter. |

For each flagged page, the command reports the AI-written fraction, the specific passages that read as AI-generated with their line numbers, and suggested human-style rewrites.

Each checked page consumes one AI credit. The command skips pages under 50 words and does not charge for them. If any page is at or above the threshold, or if a check returns an error, the command exits with code `1`. If every page is clean, the command exits with code `0`. This lets you run the command in a rewrite loop or in CI.

### Examples

```bash
# Check pages changed in your working tree
mint deslop

# Check a specific page
mint deslop docs/guide.mdx

# Check every MDX page and emit JSON for scripting
mint deslop "docs/**/*.mdx" --format json

# Also clean up whitespace in the checked files
mint deslop docs/guide.mdx --fix-whitespace
```

---

## `mint format`

Format every `.mdx` file in the current directory to Mintlify's canonical style. The command parses each file with the same MDX parser the web editor uses, then rewrites it in place if the canonical output differs.
Expand All @@ -546,13 +505,13 @@
mint format
```

Run the command from the root of your docs project. It walks every subdirectory, skipping paths matched by `.gitignore` and any Mintlify ignore rules. Files that already match the canonical output are left untouched.

Check warning on line 508 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

cli/commands.mdx#L508

In general, use active voice instead of passive voice ('are left').

<Warning>
`mint format` rewrites files in place. Commit or stash your changes before running it so you can review the diff.
</Warning>

When it finishes, the command prints how many MDX files were reformatted and how many failed to parse. If any file fails, the command exits with code `1` and prints the file path and error, so you can run it in CI to enforce consistent formatting.

Check warning on line 514 in cli/commands.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

cli/commands.mdx#L514

In general, use active voice instead of passive voice ('were reformatted').

---

Expand Down
3 changes: 0 additions & 3 deletions cli/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,6 @@ Run `mint broken-links` to find broken links, `mint a11y` to check accessibility
### Check agent readiness
Run `mint score` to evaluate how well agents can navigate a documentation site. With no arguments, the command scores your configured subdomain. Pass a URL to score any other site. The command displays an overall readiness score and individual check results.

### Detect AI-sounding prose
Run `mint deslop` to check pages for AI-generated prose and get human-style rewrite suggestions. With no arguments, the command checks the pages you have changed. It flags the specific passages that read as AI-generated so you can revise them.

### Format MDX files
Run `mint format` to rewrite the MDX files in your project to Mintlify's canonical style. The command walks every subdirectory and reformats files in place.

Expand Down
3 changes: 1 addition & 2 deletions docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -395,8 +395,7 @@
"api/update/trigger",
"api/update/status",
"api/preview/trigger",
"api/automations/trigger",
"api/admin/deslop"
"api/automations/trigger"
]
},
{
Expand Down
3 changes: 1 addition & 2 deletions es.json
Original file line number Diff line number Diff line change
Expand Up @@ -373,8 +373,7 @@
"es/api/update/trigger",
"es/api/update/status",
"es/api/preview/trigger",
"es/api/automations/trigger",
"es/api/admin/deslop"
"es/api/automations/trigger"
]
},
{
Expand Down
Loading