Skip to content

Fix overly long SEO descriptions#19

Open
mintlify[bot] wants to merge 97 commits into
mainfrom
mintlify/seo-descriptions-1776039202
Open

Fix overly long SEO descriptions#19
mintlify[bot] wants to merge 97 commits into
mainfrom
mintlify/seo-descriptions-1776039202

Conversation

@mintlify

@mintlify mintlify Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Shortened description frontmatter on platform/colocation.mdx (464 → 142 chars) and platform/self-trade-prevention.mdx (209 → 127 chars) to stay within the recommended 50–160 character range for SEO.
  • No content changes — only frontmatter metadata was updated.

Audited all 179 MDX files; these were the only two with descriptions exceeding the 160-character limit.

  Implements the AI System Improvement initiative (Phases A–D):

  Phase A — Governance:
  - Add ai/RULES.md: all binding rules (AI behavior, pipeline gates, commit
    protocol, validation, content rules, self-improvement policy)
  - Add ai/LESSONS.md: pattern-triggered accumulated lessons (empty scaffold)
  - Slim CLAUDE.md to 53 lines (was 23 rules inline); all rules migrated to
    ai/RULES.md; add Commands section, Skills table, Key Files table
  - Add AGENTS.md: agent-agnostic entry point for Kiro, Cursor, and others

  Phase B — Skills system:
  - Add ai/skills/ with 9 skill files (dev-ticket-pipeline, doc-review-pipeline,
    task-self-review, self-improvement, promote-learnings, generate-docs-from-spec,
    write-commit-message, create-initiative-spec, cleanup-after-pipeline)
  - Update ai/agent.md: section 3 adds ai/skills/, ai/specs/, governance files;
    section 5 replaces step-by-step pipelines with one-line skill references

  Phase C — Claude Code Skills (official format):
  - Add .claude/skills/ with 9 SKILL.md directories (official format, not
    legacy .claude/commands/); all use disable-model-invocation: true;
    write-commit-message uses dynamic git diff injection

  Phase D — Initiative spec:
  - Add ai/specs/ai-system-improvement/ and ai/specs/claude-skills-research/
    (spec-driven pipeline used throughout; all phases complete)
chore(ai): add skills layer, governance files, and Claude Code skills
fix(api): add missing mining pool rewards fields
fix(api): typo
api(docs): change payoutDestination example in mining rewards response
added missing-schemas or validation
…ages, add nav links

- Add GET /api/v1/public/kline (Market Data) — new MDX page and nav entry
- Fix collateral open positions endpoint path: /positions → /positions/open
  in openapi/private/http-trade-v4.yaml and open-positions.mdx
- Remove cancel-oco-order and cancel-oto-order pages, nav entries, and
  legacy redirects — endpoints no longer documented
- Add \"We are hiring\" and GitHub (type: github) links to navbar
- Add github social to footer socials
docs(api): add kline, fix positions endpoint, remove cancel OCO/OTO pages, add nav links
- Add guides/mcp-server.mdx — full setup guide for the whitebit-mcp
  trading server (115 tools); covers Claude Code, Cursor, Claude Desktop,
  Codex, and OpenClaw client configuration
- Add guides/cli.mdx — CLI reference with commands, authentication,
  examples, and coming-soon install notice (source only for now)
- Add guides/ai-faq.mdx — FAQ covering API key safety, supported clients,
  trading vs docs MCP disambiguation, automation, and safe account practices
- Revamp guides/use-with-ai.mdx — full hub page with 4-card grid,
  feature breakdown by category, and supported AI clients table
- Rename guides/ai-ide-setup.mdx → "Docs search via MCP"; add icon
- Rename guides/ai-context-menu.mdx → "Docs page AI menu"; add icon
- Update docs.json — rename group to "AI Hub", add 3 new pages to nav
docs(ai-hub): add AI Hub section with MCP server, CLI, and FAQ pages
…text

- Rename "WhiteBIT MCP server" to "WhiteBIT documentation MCP server" in
  the IDE quick connect table to distinguish from the trading MCP server
- Update frontmatter description to list actual supported tools (ChatGPT,
  Claude, Perplexity, Grok, Cursor, VS Code, Claude Desktop) instead of
  implying docs integrations exist for Claude Code / Codex / OpenClaw
- Remove duplicate "via MCP via MCP" link text in two places
fix(ai-context-menu): clarify MCP server name and fix duplicate link text
Stage to main
whitebit-robot and others added 27 commits April 2, 2026 14:00
Partner escalation revealed two issues with the crypto lending
plans endpoints:

- "retrieves all active plans" was ambiguous — could be read as
  the user's personal running investments rather than platform-
  offered plan configurations; also omitted filter context
  (region, public/private visibility, API access gating)
- The id → planId workflow (get-plans → invest) was undocumented,
  leaving integrators without guidance on how to use the response

Fixes both endpoints (fixed and flex) in the OpenAPI spec and
adds workflow notes to the corresponding MDX pages.

docs(api): add sub-account unconfirmed withdrawals endpoint

- Add POST /api/v4/sub-account/withdraw/unconfirmed-list to
  main_api_v4.yaml with full request/response schema and
  401/404/422 error responses
- Create spec-driven MDX page
- Add Withdrawals nav group to docs.json and overview card
feat(docs): add workers info to miner info, add reject rate to miner
Documentation actualization
custom component fix
Stage to main
…uite

Replace AsyncAPI renderer with fully custom React components on all
remaining WebSocket channel pages. Every page now uses WsChannelOverview,
WsSchemaTable, WsMessageExample, and WsSubscribeSteps with explicit .jsx
import paths, tag: "WSS" frontmatter, and no native Steps/fenced-code blocks.

Includes:
- 4 new snippet components (WsChannelOverview, WsSchemaTable,
  WsMessageExample, WsSubscribeSteps) as .jsx with all helpers inside
  component function bodies (required by Mintlify RSC bundler)
- 18 auto-generated ws-data files from AsyncAPI YAML schemas
- generate-ws-data.mjs script to regenerate ws-data from spec
- validate.mjs extended with --ws-data and --consistency checks
- .mintlifyignore to exclude ai/ and scripts/ from Mintlify scanner
- Tabular content in JSX props converted to flex-div layout (no <table>)
- Mintlify built-in components confined to MDX top-level scope only

All validations pass: --mdx, --nav, --consistency, --ws-data.
New skills: ai-changelog, ai-improvement-tracker, create-change-request,
docker-local-rebuild, session-retrospective

Consolidation (41 → 9 lessons): promoted 6 rules to RULES.md covering
Mintlify HTML diagnostic, TCR multi-phase gate, commit scope authority,
SME behavioral pass, shared-schema filter inference, and $ref check.
Style guides updated: api-endpoints.md (passive voice, ambiguous qualifier,
SME subject, glossary linking, pronoun sweep) and websocket.md (React global
prohibition, arrow-function requirement). skill-creator extended with porting
checklist, convention drift audit, and skill-reviewer gate before registration.
…example

The import hint comment hardcoded `exOrdersPendingRequest` for every
generated file, regardless of what that file actually exports. Replace
with names extracted from the real generated exports — first schema
export and first example export — so the comment is accurate per file.
feat(websocket): migrate all 17 WS channel pages to custom component s…
template fixes
Stage to main
…r proper JSX export

Compare old WS docs against migrated pages and fix content gaps:
- market.mdx: correct subscribeNote (params are market names, not period)
- trades.mdx: add missing "subscribe to all markets" example
- depth.mdx: add available limit values (1,5,10,20,30,50,100) and
  price_interval values to query and subscribe param descriptions

Refactor AsyncAPI YAML schemas to use top-level named $ref entries
(PositionRecord, BorrowRecord) so generate-ws-data.mjs exports actual
record fields instead of wrapper-only schemas. Regenerate all affected
JSX snippets. Update MDX pages to use new schema imports.
fix(websocket): close migration gaps and refactor AsyncAPI schemas for proper JSX export
Stage to main
…om AsyncAPI

Eliminate ~530 lines of hardcoded inline data across 17 WebSocket MDX
pages by extending generate-ws-data.mjs to extract two new data types
from AsyncAPI specs:

1. channelOperations — derives WsChannelOverview operations arrays from
   AsyncAPI operations + message summaries using convention-based
   grouping (Query/Subscribe/Unsubscribe patterns)

2. tupleFields — extracts positional array field documentation from
   schemas with x-field-name annotations (Candle, BookTickerUpdateData,
   DealsUpdate.params, plus 3 enum-style schemas)

Changes:
- Extend generate-ws-data.mjs with tuple extraction, channel operations
  derivation, and allOf schema resolution
- Create WsTupleTable.jsx component for rendering positional field tables
  with support for example values and enum label mappings
- Add x-field-name, x-example, x-enum-labels to 6 AsyncAPI schemas
- Align 18 AsyncAPI message summaries with MDX editorial text so
  generated output matches existing documentation
- Update all 17 channel MDX pages to import generated data
… WS data

Update AI infrastructure to reflect the new channelOperations and
tupleFields auto-generation pattern:

- websocket.md WS.1.5: document WsTupleTable, channelOperations import,
  four export types table, and "never hardcode operations" rule
- websocket-mdx-template.md: rewrite to use imported channelOperations,
  WsSubscribeSteps with generated examples, and WsTupleTable
- 06-adding-websocket-endpoints.md: update Step 2.5 and Step 3 imports
  and MDX example to match current codebase pattern
- ai-changelog.md: record both the generation changes and docs updates
docs(ai): update style guide, template, and how-to for auto-generated WS data
- Add default: false to rpi/postOnly/ioc params where inferable
- Add pagination <Note> blocks to 8 paginated endpoints
- Fix trade_timestamp described as milliseconds (actually seconds)
- Standardize timestamp descriptions to "Unix timestamp in seconds (UTC)"
- Rewrite passive voice in collateral postOnly description
…des sections

Create WsErrorCodes.jsx to render error codes via channelMeta instead of
hardcoded text. Extend the generator to export errorCodes in channelMeta
(defaults to "standard", supports x-error-codes arrays from AsyncAPI).
Update all 18 WS channel MDX pages to use the component. Update style
guide (WS.1.5, WS.9) and MDX template accordingly.
fix(api): add defaults, pagination notes, and timestamp fixes to specs
feat(websocket): add WsErrorCodes component and componentize error codes sections
…ow OpenAPI content

Introduces a client-side React component that relocates the related
resources section to the bottom of the page, after the auto-generated
OpenAPI endpoint details. Applied to all 52 OpenAPI endpoint pages
across spot-trading, collateral-trading, and market-data.
Stage to main
@mintlify

mintlify Bot commented Apr 13, 2026

Copy link
Copy Markdown
Contributor Author

Preview deployment for your docs. Learn more about Mintlify Previews.

Project Status Preview Updated (UTC)
whitebit 🟢 Ready View Preview Apr 13, 2026, 12:15 AM

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant