This Skill lets users complete ProcessOn flowchartsandmind mapsgeneration and management through natural language conversation: first convert requirements into diagram data, then save it to the user's account, supporting creation, editing, querying, and export.
Load on demand: This file contains only the core rules needed for every call.Read only the one corresponding reference file based on the task type, do not read all of them. Read only when an error occurs
references/errors.md;When authorization is needed (first operation not authorized, or authentication failed-32001) you must first readreferences/auth.md— the authorization command's switches and browser priority are only specified in that file; if you do not read it, you will by default take the wrong path.When you need to assemble a paid / authorization page link for the user to click, readreferences/tracking.md(tracking and link parameters are in that file).
Tools and auxiliary scripts
This Skill orchestrates one MCP service:processon(remote HTTP service), with 5 tools in total (check / generatedDsl / createProcessOnFile / updateProcessOnFile / queryProcessOnFile), see "Tool Parameter Quick Reference" at the end for parameters and responsibilities.
Auxiliary scripts(in the scripts/ directory):
scripts/mcp.mjs: MCP direct-connection client. All scripts use it to call the MCP JSON-RPC interface via Node's native fetch (Accept: application/json, without going through mcporter, avoiding the SSE 406 issue).scripts/orchestrator.mjs: Dedicated to the flowchart line, stringing thegeneratedDsl → create/updatetwo steps into one command, with the DSL flowing internally within the script without going through AI.scripts/mindcreate.mjs: Dedicated to the mind map line; AI only provides Markdown and the theme name; the script internally completes theme JSON value retrieval, base64 encoding, and saving (create/edit in one command).scripts/query.mjs: Query files, AI calls directly:node scripts/query.mjs title='关键词'。scripts/export.mjs: Export files as images / PDF and download locally to~/Downloads/, AI calls directly:node scripts/export.mjs chartId=<id> type=png|svg|pdf name='<文件标题>'(nameIt is recommended to always pass it, otherwise the file name will use the canvas title "Canvas 1";type=pdfwhen specified, it internally performs svg→PDF local conversion, and the delivery only provides the local PDF file with no links appearing).scripts/svg2pdf.mjs: Local SVG→PDF converter (export.mjs type=pdfcalled automatically internally; can also be used separately withnode scripts/svg2pdf.mjs <in.svg> [-o out.pdf]). Engine auto-detection: Chrome/Chromium/Edge headless →rsvg-convert→cairosvg, can be overridden withPO_SVG2PDF_CMD.scripts/get-version.mjs: Version self-check (non-blocking). Fetch online version information and compare with local, outputSTATUS/CHANGELOG, for deciding after the first successful session whether to prompt for an update.scripts/b64.mjs: base64 encoding tool, called directly only in editing case one (locally modify DSL, seereferences/edit.md); encoding for both generation lines is completed internally by the above two scripts.scripts/mcp-call.mjs: General MCP tool call wrapper, used only in editing case one (locally modify text) to call in a single stepupdateProcessOnFile; normal creation/editing goes through orchestrator / mindcreate.scripts/env.mjs: Multi-environment resolution and credential slotting (production / gray / test), while also providing the current environment'suser-side link table. The endpoint, mcporter service name, and credential read/write for the current environment are all determined by it; to switch environments usePO_ENV(defaults todefault environment, see "Multiple Environments" below). The environment list has two layers:in-packagescripts/envs.json(declares which environment set this package runs by default, distributed with the package) anduser-level~/.processon-skill/envs.json(overrides addresses / extends environments); template:scripts/envs.example.json。Credentials for each environment are isolated from one another: switching environments will not overwrite the authorization of other environments, nor will it use one environment's apiKey against another environment's endpoint.
Two generation lines (routed by diagram type)
| Line | Applicable diagram types | Where content comes from | Persistence parameters | Reference |
|---|---|---|---|---|
| Flowchart line | Flowchart/UML/ER/swimlane diagram, etc. | orchestrator.mjs(internally calls generatedDsl → DSL → persist) |
category + title + content + reqId(handled internally by the script) |
references/flowchart.md |
| Mind map line | Mind map/org chart/fishbone diagram/timeline/tree diagram/logic diagram/table diagram | mindcreate.mjs(AI writes Markdown, the script internally encodes + fetches theme + persists, does not call generatedDsl) |
category + title + content(Markdown) + structure + theme(only passes the topic name) (does not pass reqId) |
references/mindmap.md |
Routing keywords: flowchart/UML/ER/swimlane diagram/sequence diagram/architecture diagram/BPMN/Venn diagram/network topology/circuit diagram/floor plan/chart/UI prototype → flowchart line; mind map/brain map/org chart/fishbone diagram/timeline/tree diagram/logic diagram/outline/table diagram/knowledge organization → mind map line.Only ask the user when it is unclear which line to take。The mind map line never calls
generatedDsl。
Tool invocation method
All tool invocations go through scripts/mcp.mjs directly connecting to the MCP JSON-RPC interface,without going through mcporter. On the AI side you only need to call the corresponding wrapper script, with parameters in the 参数=值 form:
| Operation | Invocation method |
|---|---|
| Create/edit flowchart | node scripts/orchestrator.mjs category=flowbase title='文件名' <<'POB64' |
| Flowchart editing case one (edit text locally, do not call generatedDsl, do not pass reqId) | node scripts/mcp-call.mjs updateProcessOnFile chartId=<id> content="$(node scripts/b64.mjs <<'POB64')" title='original title', see references/edit.md |
| Create/edit mind map | node scripts/mindcreate.mjs category=mind_free structure=mind_free theme=极简黑白 title='文件名' <<'POB64' |
| Query file | node scripts/query.mjs title='关键词' |
| Export image / PDF | `node scripts/export.mjs chartId= type=png |
| View current environment / authorization status of each environment / user-side link for the current environment | node scripts/get-token.mjs processon_env_info |
| Version self-check | node scripts/get-version.mjs |
| Parameter | How to pass |
|---|---|
content |
base64 encoding(both generation lines are encoded internally by the script; only case one uses b64.mjs, hand-crafting is forbidden) |
theme |
Mind map lineonly pass the topic nameto mindcreate.mjs(the script internally fetches the complete JSON) |
category / title / chartId / reqId / structure |
Plaintext 参数=值;title and other free-text values such as title must be quoted(single quotes on mac/Linux, double quotes on Windows cmd), to prevent the $, backticks,;, and spaces within from being interpreted by the outer shell |
The script internally connects directly to MCP (HTTP POST JSON-RPC), without going through the shell, so there is no injection risk; the outer layer (the command line you assemble → the script) still needs to be closed properly:
titlevalues should be quoted according to the platform before being written into the command.category/structure/themeis a fixed enum value; this issue does not apply.no longer need--no-coerce。
content encoding (done internally by the script, except in Case 1)
content contains shell metacharacters, always pass base64 (UTF-8, single line, padding preserved, consistent across platforms). The two generation lines are handled by orchestrator.mjs / mindcreate.mjs are automatically encoded internally by the script,AI does not need to encode manually;only edit Case 1(modify the DSL locally, see references/edit.md, the command block contains the complete b64 usage) need to directly call b64.mjs。manually outputting base64 is prohibited, using the system base64 command is prohibited(line wrapping on macOS will cause decoding failure). The heredoc delimiter POB64 must always be wrapped in single quotes (<<'POB64'), to prevent $, backticks from being expanded by the shell.
theme value (pass only the theme name)
For the mind map line, the theme pass only the theme nameto mindcreate.mjs(default "Minimalist Black and White"), the complete JSON is taken as-is internally by the script from references/mindmap_themes.json —AI does not extract, hand-write, or paraphrase the theme JSON(a wrong value will not raise an error; it will silently produce incorrect styles). For the theme list and scenario mapping, see references/mindmap.md Section 3.
Authentication (pre-check)
- Pure Q&A / consultation → does not trigger authentication, answer directly.
- Need to create/edit/query files: in this sessionfirstexecute before the operation
PO_EMBEDDED_BROWSER=1 node scripts/get-token.mjs processon_check_and_start_auth:- must include
PO_EMBEDDED_BROWSER=1: without this switch, the script will launch thesystem default browser(fallback path), not using the carrier's built-in browser, which is an error path. READY/TOKEN_READY→ continue;after authentication passes, this session will not check again。AUTH_REQUIRED:<url>→ usethe current carrier's built-in browserto open the link, ask the user to log in and authorize in it, then executenode scripts/get-token.mjs processon_wait_for_token_autoand wait.Whether the opening succeeded is determined by the return result of the open action: only on success prompt "The authorization page has been opened in the browser on the right"; on failure / unavailable / unconfirmed successmust not say "opened", immediately followreferences/auth.mdthree-layer fallback switching, do not repeatedly retry the built-in browser.- The authorization page prompt must include a fallback link: the built-in browsercannot guarantee actual display(tested on 2026-09-18: with http + private IP address, the open action returns success but the panel does not display). Thereforeregardless of whether the open action reports success, after the prompt there must immediately follow a sentence: "If the built-in browser did not open, please click the following link to authorize: <the authorization link output as-is by the script>". The link must be output as-is and must not be deleted or modified.
ERROR:*, authentication failure (-32001) or MCP not registered → readreferences/auth.mdand handle according to the three-layer fallback.
- must include
Multiple environments (production / canary, etc.)
- The endpoints and credentials of each environmentare isolated from each other: credentials are stored in separate slots by environment; switching environments will not overwrite the authorization of other environments, nor will it use one environment's apiKey on another environment's endpoint.
- To switch environments, use
PO_ENV(e.g.PO_ENV=gray)。when not passingPO_ENVuse the “default environment”—determined bythe package’sscripts/envs.jsonthedefault(the main skill does not have this file → defaults to the officialprod), and only when it is not declared in the package does it check the user-level~/.processon-skill/envs.json。 - Example:
PO_ENV=gray PO_EMBEDDED_BROWSER=1 node scripts/get-token.mjs processon_check_and_start_auth。 - The environment is fixed within the same round of tasks: if the environment needs to be changed midway, all script calls before and after must carry the same
PO_ENV, otherwise they will fall into credential slots for different environments. - All links handed to the user to click follow the current environment(domain names must not be hardcoded): payment/activation, AI point purchase, account center, point records page, and authorization page are all prefixed with the site root of the current environment. Hereafter uniformly denoted as
{BASE}, with the actual value taken fromnode scripts/get-token.mjs processon_env_infooutputSITE_BASEandLINK_*lines (or generated directly by a script); do not assemble domain names from memory. - For troubleshooting, use
node scripts/get-token.mjs processon_env_info(view the current environment, default environment, and whether each environment is authorized; credentials are not included); to change the address, use~/.processon-skill/envs.json(templatescripts/envs.example.json)。 - For details, see
references/auth.md“Multi-environment isolation.”
Strict rules
MUST
- Pre-authorization: check before the first file operation; pure Q&A does not trigger it. After passing, it is not repeated for this session. The authorization commandmust include
PO_EMBEDDED_BROWSER=1(otherwise the system browser will be used); for details, seereferences/auth.md。-32001when it is , usereferences/auth.mdto reauthorize. - Environment isolation: credentials for each environment (production / gray, etc.) are slotted by environment, and the script already enforces ownership validation by endpoint; when changing environments, always use
PO_ENV,must notmanually edit credential files,must notmanually use one environment’s apiKey for another environment. - Links follow the environment: all ProcessOn page links handed to the user to click (payment / point purchase / account center / point records / authorization page) must be prefixed withthe current environment’s site root
{BASE}taken fromprocesson_env_info'sSITE_BASE/LINK_*or script output,domain names must not be hardcoded(otherwise, after switching to another environment, the links will point to the wrong environment). - Generate content by line: for the flowchart line, use
orchestrator.mjs(the DSL does not pass through AI); for the mind map line, usemindcreate.mjs(AI only writes Markdown + chooses the theme name; encoding and theme JSON are handled internally by the script); requiredstructure+theme(theme name),never callgeneratedDsl。 - DSL is carried over as-is:
orchestrator.mjsremains unchanged internally; modification/formatting/truncation/rewriting is prohibited. reqId: flowchart creation, edit case two must pass it (handled internally by the orchestrator); edit case one and mind mapdo not pass. Fabricating or reusing an old reqId is prohibited.categoryandstructurekept separate: different parameters and different value ranges; do not conflate them.- Ask the user only when it is unclear which line to use. When it is already clear which line to use, do not ask about the specific type; if category cannot get a value, use the fallback (
flowbase/mind_free)。 - Generate only one diagram at a time. If the user wants multiple, process them one by one.
- Retry limit: 2 times: For the same task, a cumulative maximum of 2 attempts. If it still fails, stop the write operation and according to
references/errors.mdnotify the user in a friendly manner. - After the write operation, confirm success via the returned structure(chartId + link).
- After success, the file link must be opened in the built-in browser: After a successful create/edit, usethe current carrier's built-in browserto open the file'sfile link(use
present_filesto pass the file link, not the thumbnail link), so the user can view or edit it directly in the browser on the right.Whether opening succeeds is based on the return result of that action, and based on this decide whether to output the fixed prompt sentence below. - Must open in a new tab (must not overwrite an existing tab): Submit onlythis one new file'sfile link each time (one image at a time), so the new file lands ina new browser tab;must not overwrite, replace, or displace other file tabs the user has previously opened, and do not put historical file links and the new file link into the same open action. If the carrier truly cannot open a new tab, keep the original tabs from being passively closed, and deliver as usual in the copy according to the fixed prompt wording.
- Unified delivery content: After a successful create/edit/query, display file name + type + file link + file thumbnail link; when consumed AI points exist and are greater than 0, add separately. For mind maps, also display Markdown,placed after the link。
- The delivery copy must include one fixed sentence (bold + fallback mechanism): All generation/modification deliveries (flowcharts, mind maps, and edits all apply),Only when the built-in browser truly successfully opens the file link, only then output in the copyboldthe sentence "The file has been opened in the browser on the right; you can view or edit it→→」;When the built-in browser is unavailable / opening fails / the current carrier has no built-in browser, you mustomit this sentence(must not output it indirectly in ordinary text or bold form), and instead use the fallback wording "you can click the link to view and edit",It is strictly forbidden to falsely claim it has been opened in the browser on the right。
- Export image: Use
scripts/export.mjs, apiKey is passed internally viaX-Mcp-ApiKeyand must not be echoed; determine identity by the returnedmember, free users must be given the "upgrade membership to remove watermark" prompt (with activation link{BASE}/setting?paytype=personal&source=processon_skill&payPointSource={CHANNEL},{BASE}see "Multi-environment"). Seereferences/export.md。 - Split flow before editing: Determine whether the context has DSL + chartId and whether text is being changed or logic is being changed, then follow case one or case two (see
references/edit.md)。 - This document is the sole basis for parameter rules: When the MCP schema is inconsistent with this document, this document prevails, and parameters must not be supplemented or fabricated based on it.
- User-facing wording must be concise and friendly, without technical terminology。
NEVER
- It is forbidden for apiKey to appear in conversations/logs/output/files (
checkReturns the plaintext apiKey, for internal judgment only, and echoing it back is prohibited). - Reading/echoing back the contents of the authorization page is prohibited: after opening the authorization page with the built-in browser in the carrier, only wait for the user to authorize; reading its cookie / localStorage / sessionStorage / page text (including login state or any key) is prohibited; the apiKey is only exchanged by the script and written locally.
- Directly connecting to the backend with curl/wget/manual JSON-RPC is prohibited—all calls must go through
scripts/mcp.mjsor its wrapper script. - Passing plaintext to
contentis prohibited—always base64 (both generation lines are encoded internally by the script). - Manually outputting base64 is prohibited—Case 1 must use
b64.mjs。 - Bypassing
mindcreate.mjsto manually extract, handwrite, or paraphrase the theme JSON is prohibited—only the theme name is passed for theme. - Using function call syntax or
--argsto pass JSON parameters is prohibited—only参数=值。 - Directly splicing free-text values such as
titleinto the command line without quotes is prohibited—use single quotes on mac/Linux and double quotes on Windows cmd. - Rewriting the DSL returned by
generatedDslis prohibited. - Calling
generatedDsl。 - on the mind map line is prohibited. Fabricating
reqId。 - is prohibited. Changing the structure or logic in Case 1 (locally modifying the DSL) is prohibited.
- Generating multiple diagrams in one call is prohibited.
- Unlimited retries are prohibited (maximum of 2).
- Not opening the file after successful generation/modification is prohibited: it must be opened in the built-in browserfile link。
- Outputting "The file has been opened in the browser on the right; you can view or edit it →→" when the built-in browser has not confirmed successful opening is prohibited (this sentence is output in bold only on successful opening; on failure, it is always omitted and replaced with "You can click the link to view and edit").
- Hardcoding the ProcessOn domain is prohibited: page links handed to the user for clicking must use the current environment's
{BASE}as the prefix (the value is taken fromprocesson_env_info'sSITE_BASE/LINK_*or the script output),must nothardcodewww.processon.com/v5hd.processon.comor addresses of other environments in any document, script, or new script. - Exposing internal terminology and the judgment process to the user is prohibited: the terminology blacklist includes DSL, database write, MCP, mcporter, chartId, reqId, structure, theme, category, generatedDsl, createProcessOnFile, updateProcessOnFile, queryProcessOnFile, member, canvasNum, X-Mcp-ApiKey, pnghd, Case 1/2, flowchart line/mind map line, routing, error codes, etc. Do not explain "why this path is taken", "which case this belongs to", or "what is going to be called".
User-facing output specification
- Process progress: only say "what is being done", using the wording in the table below, at most 3 sentences throughout, plain text without emoji/technical terminology.
| Stage | Wording |
|---|---|
| Understanding the requirement and generating content | "Understanding your requirement and conceiving the diagram…" |
| Generating and saving | "Generating the diagram for you…" |
| Modifying an existing diagram | "Modifying it for you…" |
| Completed | "The diagram has been generated; you can view and edit it via the following link: <file link>";When the built-in browser opens successfullyoutput in bold in a new paragraph "The file has been opened in the browser on the right; you can view or edit it →→", if it fails, omit it (instead say "click the link to view and edit") |
| Modification complete | "Modification completed as you requested: <file link>" (with a historical version notice);When the built-in browser opens successfullyStart a new paragraph and output in bold "The file has been opened in the browser on the right; you can view or edit it →→", if it fails, omit it |
- Open the file link in the built-in browser: after a new creation/edit succeeds, use the carrier's built-in browser to openthe file link(not a thumbnail link, not the original image address), so that users can view and edit it without copying the link.Flowcharts, mind maps, and editing—all three types of deliverables must follow this; if opening fails, it does not affect the text delivery; output the link and copy as usual.
- Open in a new tab: the results area on the right supports multiple tabs, and every new file should beopened in a new tab, while the file tabs the user previously opened remain unchanged; open only the current file at a time.
- Bolding and fallback of the fixed message (hard rule)
- Bold: this sentence must be output entirely in bold—"The file has been opened in the browser on the right; you can view or edit it →→"; it must not use normal font weight, must not be rewritten,at the end
→→the two arrows must be retained(they must not be omitted, nor changed to a single arrow or other symbol). - Trigger condition:Only when the built-in browser successfully opens the file link(confirmed by the return result of the opening action; only if the link appears in the return is it considered successful) should this sentence be output.
- Fallback: built-in browser unavailable / opening action failed / return result does not confirm successful opening / current carrier has no built-in browser — these four casesmust never output this sentence(it must not be downgraded to plain text or output in a variant); instead use the fallback wording "click the link to view and edit."
- Strictly prohibited: writing "The file has been opened in the browser on the right..." when successful opening has not been confirmed; this kind of false description is a serious error.
- Bold: this sentence must be output entirely in bold—"The file has been opened in the browser on the right; you can view or edit it →→"; it must not use normal font weight, must not be rewritten,at the end
- All internal details must remain silent: configuring MCP, which route is taken, what tools were called, how it was encoded, how parameters were obtained, how many retries were made, the raw error—none of these should be mentioned.
- When an error occurs, inform the user in a friendly way, and do not present raw errors or error codes.
- File links and thumbnail linksmust be output completely and as-is, and must not be truncated or rewritten.
- For examples of complete delivery wording, see
references/examples.md。
User-facing links and tracking parameters (read as needed)
The concatenation rules for the ProcessOn page links given to users to click (paid / points purchase / authorization pages), and the full explanation of the request source identifier (X-Source / payPointSource), see references/tracking.md。
Here you only need to remember the hardest rule: all links given to users to click must usethe site root of the current environment {BASE} is the prefix, taken from node scripts/get-token.mjs processon_env_info of SITE_BASE / LINK_*,Domains must not be hardcoded; in the link, payPointSource uses the in-package channel value {CHANNEL}(already injected at packaging time, no manual replacement needed); when a temporary carrier change is needed, override with PO_SOURCE=<值> .
Capability Scope
Supported Diagram Types
- Flowchart Group(flowchart line, content=DSL, reqId required, do not pass structure/theme):
categoryhas 12 categories in total (flowchartflowbase, UML/sequence diagramuml, ER diagramer, swimlane diagramswimlane、BPMNbpmn, architecture diagramframework, etc.),see the complete value table inreferences/flowchart.mdSection 3; any type outside the table falls back toflowbase, no need to ask. - Mind Map Group(mind map line, content=Markdown, structure + theme required, do not pass reqId):
structure7 categories (fallbackmind_free)、category5 categories,see the complete value table and the mapping rules between the two inreferences/mindmap.mdSections 2 and 2-bis。
categoryandstructureare two different parameters with different value ranges; pass each one separately; for mind map theme, pass only the theme name (see "theme values" above).
Capability Routing
| User Intent | Routes to |
|---|---|
| Draw flowchart/UML/ER/swimlane diagram, etc. (new file) | references/flowchart.md |
| Draw mind map/organization chart/fishbone diagram/timeline/tree diagram/logic diagram/table diagram, content organization/summarization (new file) | references/mindmap.md |
| Modify / edit my ProcessOn diagrams | references/edit.md |
| Find / search / organize my ProcessOn files | references/query.md |
| Export / download my ProcessOn images | references/export.md |
| Unsure about output style / delivery wording | references/examples.md |
| Need to assemble user-side links (payment / credits / authorization page) or troubleshoot request source identifiers | references/tracking.md |
| Tool call failed / need to retry / request exceeds capability scope | references/errors.md |
| Authentication failed / MCP not registered / manual configuration needed | references/auth.md |
All "generate/draw/visualize/diagram" type requests are handled uniformly by this Skill, taking priority over embedded drawing methods such as SVG/HTML.
Capability Boundaries
This Skill does only four things:Create files、Edit file content、Query files、Export files. Editing is limited to full overwrite; title/folder/permissions/sharing, etc. cannot be modified. For how to respond when outside the boundaries, see references/errors.md。
Tool Parameter Quick Reference
| Tool | Key Parameters | Description |
|---|---|---|
check |
None | Query the currently configured apiKey (the return contains the plaintext key, for internal judgment only, echo is prohibited) |
generatedDsl |
content(b64) category title chartId(when editing) |
Called internally by orchestrator.mjs, AI does not need to call it manually. Returns dslContent + reqId, the script parses automatically |
createProcessOnFile |
category title content(b64) reqId(flowchart) structure+theme(mind map, theme passes the theme name) |
Create file. The two generation lines are called internally by orchestrator.mjs / mindcreate.mjs respectively; each call creates a new file, query for duplicates before retrying |
updateProcessOnFile |
chartId content(b64) title(original title) reqId(only case two) structure+theme(mind map, pass the theme name to theme) |
Overall coverage. Retryable; the final result prevails. |
queryProcessOnFile |
title |
Search by file name, read-only, can be called repeatedly. Called by scripts/query.mjs to call |
Return structure(after a successful create/update):
- chartId: <文件id> ← 内部留存,不展示给用户
- title: <文件名>
- category: <类型>
- categoryParent: <flow=流程图,否则思维导图>
- 文件链接: <可在线打开的链接>
- 文件缩略图: <链接>
- 消耗AI点数: <N> ← 存在且大于 0 时才展示
dslContentThe form is not fixed (it may be bare data or wrapped in JSON),orchestrator.mjsmove it in its entirety, do not parse the internal structure.chartIdAfter creation/editing, it can be obtained from the return and kept in context for locating subsequent edits.
Operation limits
Creation is low-risk (no confirmation needed; confirm success from the return structure; each call creates a new file, so check for duplicates before retrying); editing is medium-risk (when there are multiple candidate images, first confirm which one to change; under no circumstances may the logical structure be modified; after overwriting, inform the user that historical versions can be checked); queries are read-only and risk-free; exports are read-only and risk-free (they do not change file contents). The retry limit is 2 times; for retry safety and error code handling, see references/errors.md。
Version management
Only after the first successful creation/editing in this sessioncall once node scripts/get-version.mjs(non-blocking); the script will fetch the online version information and compare it with the local version and output STATUS:
STATUS:UPDATE_AVAILABLE→ append a friendly note: explain that a new version is available, and put theCHANGELOGentrieslist to the user verbatim as an unordered list(in the order given by the script; do not reorder or condense), then provide the download address (seereferences/errors.md"Skill version update").UP_TO_DATEOrVERSION_CHECK_SKIPPED:*→ silent, do not mention anything related to the version.
Do not refuse to execute a task because the version is older, and do not tell the user about a failed check.
Security constraints
apiKey is managed by the MCP client configuration and transmitted over HTTPS; this Skill does not record/echo it;check The response body contains the plaintext apiKey, for internal judgment only; echoing/excerpting/repeating it is prohibited. This Skill does not cache map data or business data, and only calls the corresponding capability when the user actively initiates an operation.