Ace Up docs — publishing
This repo is the source of record and the live git source for the Ace Up docs site. Written 2026-09-11.Live
https://aceup.mintlify.site · projectapp.mintlify.com/xhuntr/aceup ·
account nextrongear@gmail.com (GitHub nxsdevv) · plan hobby
41 pages across two tabs — Players (30) and Venue owners (11).
How to update it
Push tomain. That is the whole workflow. The deployment’s git source is
nxsdevv/aceup-docs, so a push rebuilds the site.
One wrinkle: studio’s git cannot reach GitHub. git push and even
git ls-remote hang indefinitely from this box — not fail, hang, and
GIT_TERMINAL_PROMPT=0 does not make them fail fast. Plain HTTPS is fine
(api.github.com answers in 0.2 s; info/refs correctly returns 401), so it is
git’s transport specifically, not the network and not credentials. xhuntr’s git
works normally. So:
nxsdevv), which does work here.
Every repo on these machines is private, permanently. nxsdevv/aceup-docs is
private — do not change that.
The git source
Repointed 2026-09-11 from Mintlify’s auto-createdmintlify-community/docs-xhuntr-4ad3ccd2
to nxsdevv/aceup-docs using deployment.updateGitSourceItem through the admin
MCP. The Mintlify GitHub App already had access to nxsdevv — proven before
trusting it, by checkout returning this repo’s own HEAD sha as its base.
Rollback, if ever needed:
The admin MCP (for config and nav, which are not in this repo’s control path)
https://mcp.mintlify.com, JSON-RPC over HTTP, OAuth token in xhuntr’s
~/.claude/.credentials.json (scopes include docs:write, nav:write,
config:write, deployment:write). The token is not tied to that box — it
works over plain HTTP from anywhere. Helper scripts on xhuntr: /tmp/mcli.py
(generic caller), /tmp/publish.py, /tmp/republish.py.
Three gotchas that cost real time:
- Cloudflare 1010-blocks a bare Python user-agent. Send
User-Agent: node. checkoutis required before any editor tool, and a session goes stale oncesavemerges it — the nextupdate_configthen fails withno_editor_metadata. Pass a freshbranchtocheckouton every run.create_nodeon a path that already exists silently attaches to the existing file instead of seeding your content. This is what left the homepage as an emptyindex.mdxserving a/→/redirect loop while every status check said 200. Usewrite_pageafter creating, and verify.
docs.json is not writable via write_page. Site config goes through
update_config; navigation only through create_node / update_node.
Do not confuse this with app.mintlify.com/xhuntr/aceup/products/mcp — that is
an MCP server Mintlify auto-generates from the published docs for readers’ AI
tools. It needs no setup and publishes nothing.
Images
images/screens/ holds 30 WebP screenshots of the real built Mini App,
captured by the Gate F Playwright walk — not design mockups. Downscaled to 780px
and converted from PNG (7.8 MB → 1.4 MB). Brand assets in images/brand/.
All references are repo-relative (/images/...). An earlier pass hotlinked
them from aceup.xhuntr.com because the admin MCP has zero asset operations
(verified by searching the SDK); that was undone once the repo was connected,
since hotlinking produced CORS console noise and tied the docs to the casino
server being up. Leftover unused copies at rhbot/miniapp/public/docs and
rhbot/miniapp/dist/docs can be deleted whenever convenient.
Content rules baked into these pages
Do not undo these in an edit pass:- Mainnet framing. Every money page reads as if mainnet is live — the user’s
explicit choice. It was not live when written (Gate H blocked on bankroll
funding, cold addresses, token rotation), which is why a pre-launch banner is
set in
docs.json. Remove the banner when mainnet goes live. - “Robinhood Chain” / “ETH on Robinhood Chain”. Never “Robinhood ETH” or
“Robinhood Ethereum”. The not-affiliated disclaimer is on
money/chains.mdx,help/security.mdxandhelp/faq.mdx. - The edges are printed — 0.380% main, 6.0% Perfect Pairs, 4.8% 21+3.
- No loss-chasing copy. No deposit prompt after a loss, no “approaching your limit” nudges, nothing that encourages another hand.
- Owners and managers cannot play at their own venue — in the owner section, the tables page and the FAQ.
- Nothing from
.env, no wallet addresses in copy, key handling described only as “encrypted at rest”.
Where the facts came from
Every number was read out of the running code, not the design artifacts —rhbot/docs/ARTIFACT-GAPS.md exists because the build and the artifacts disagree
on nearly every screen, and it says the build wins.
The published numbers are the live numbers.
config.ts parses money policy
as int(NAME, fallback, …), so a .env override would diverge silently from the
code default — exactly how the XHuntr docs shipped wrong prices. Checked by
counting keys in rhbot’s .env without opening it: MIN_DEPOSIT_LAMPORTS,
MIN_DEPOSIT_GWEI, AUTO_WITHDRAW_DAILY_LAMPORTS, AUTO_WITHDRAW_DAILY_GWEI,
WITHDRAW_HOLD_MIN, DAILY_ROUND_CAP, OWNER_SHARE_DEFAULT_PCT,
PAYOUT_MIN_LAMPORTS, TABLE_BET_SECONDS are all absent, so the fallbacks
are what the service runs. Re-check after any .env change.
Three claims verified against the build rather than the design prose:
- Group card is edited in place —
src/telegram/groupcard.ts:106. - No game audio exists (ARTIFACT-GAPS G1 is
OPEN). No page mentions sounds. - The public verify page is a four-field verifier form, not a whole-table round viewer. An earlier draft said otherwise and was corrected.
Open at handover
- Remove the pre-launch banner when mainnet is live (
bannerindocs.json). - Recapture
12-wallet-deposit.webpon mainnet — it shows “Solana devnet” from the pilot and carries an honest<Info>caption onmoney/deposit.mdxthat should go with it. - Custom domain: the user chose to stay on
aceup.mintlify.sitefor now. The pattern, when wanted, isvercel dns add xhuntr.com docs.aceup CNAME cname.mintlify.buildersplus the two TXT records Mintlify issues for the cert.
