Fix overly long SEO descriptions#19
Open
mintlify[bot] wants to merge 97 commits into
Open
Conversation
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
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
…hashrate endpoint
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
Generated-By: mintlify-agent
Contributor
Author
|
Preview deployment for your docs. Learn more about Mintlify Previews.
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
descriptionfrontmatter onplatform/colocation.mdx(464 → 142 chars) andplatform/self-trade-prevention.mdx(209 → 127 chars) to stay within the recommended 50–160 character range for SEO.Audited all 179 MDX files; these were the only two with descriptions exceeding the 160-character limit.