train-tickets skillA
train-tickets is agent-read markdown (skill) from nano-muse/nanomuse: Look up and book trains in the 12306 app on the user's phone — search a route and date, compare the options, take a booking to the order screen and stop before it is placed or paid. Use when the user asks about 火车票 / 高铁 / 12306 or a train between two cities..
Indexed from public GitHub and served as immutable, content-addressed versions. Install it pinned to an exact SHA-256 with the mdr CLI, and every file is verified against the hash recorded here before it reaches your agent. The deterministic audit below grades the latest version, and the same file always earns the same grade.
What the file says
# Train tickets (12306 on the phone)
12306 has no API a personal agent may use; this is done on the phone's screen with `phone_task`. If no phone is connected (the system prompt says so), say that in one line and offer the web instead of pretending.
## What you need
- From, to, the date, and whether it must be 高铁/动车 (G/D) or any train. The user's habits from `recall` (preferred stations, morning or evening, seat class, who travels) count as answers. Ask for the rest with **one** `ask_user` call.
- Passengers, seat class and budget only matter for booking; do not ask for them to run a search.
## Searching
One `phone_task`, `app` = `铁路12306`, with a goal like:
> 在 12306 首页把出发地设为「北京」、目的地设为「上海」、日期设为 9月25日,点「查询车票」。在结果页读出按发车时间最早的前 5 班:车次、发车站和发车时间、到达站和到达时间、历时、二等座价格和余票。只查询,不要点任何车次进入下单。
Then, in your own words, give the user the options that fit (time, price, direct or not), three at most, and say which you would take and why. Prices on the list page are the lowest class ("¥xxx 起"); say so.
…Read the whole file at its exact version.
How to install
mdr add nano-muse/nanomuse/train-tickets@v1mdr add nano-muse/nanomuse/train-tickets@sha256:e1dc3f9a8e775f84Pin to a label to follow the author's releases, or to a sha256 to freeze the exact bytes forever. Either way the resolved hash is written to mdr.lock, and mdr install reproduces it on any machine.
[](https://markdownregistry.com/a/art_5hhfxpeylpqnawar)
1 badge views in 30 days
Versions
Audit of the latest version
- pass: Frontmatter block present
- pass: Frontmatter declares a name
- pass: Frontmatter declares a description
- pass: Size between 200 bytes and 200 KB (2998 bytes)
- pass: No zero-width or bidi control characters
- pass: No instruction hidden inside an HTML comment
- pass: No link to an exfiltration or paste host
- pass: No credential-shaped string
- pass: No instruction to send local credentials anywhere
- pass: No text hidden with inline styles
- pass: No prompt-injection phrasing
- pass: No curl or wget piped into a shell
- pass: No recursive delete of root, home or parent
- pass: No instruction to read or print local credentials
- pass: No base64 blob over 200 characters
- pass: No link to a raw IP address
- pass: No script tag
Source
nano-muse/nanomuse · 6 stars · license MIT · pushed 2026-09-24 · branch main
API
GET https://markdownregistry.com/api/v1/artifacts/art_5hhfxpeylpqnawar GET https://markdownregistry.com/api/v1/resolve?ref=nano-muse/nanomuse/train-tickets GET https://markdownregistry.com/api/v1/blob/e1dc3f9a8e775f84e505a847ee96b5d69bdfce8d57cc4e9f3c41a1854c618df1
Your agent does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.