← lihiCONTENT HISTORY
WHAT CHANGED
Update to lihi
Snapshot Oct 29, 2026 · 12:07 UTC · version 0.3.2
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save lihi and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Switch the active lihi MCP work group. Use when the user asks to switch, change, select, or move to another lihi work group, including「切換 lihi 工作群組」、「切換工作群組」or「換到另一個群組」in a lihi context, and when another lihi workflow hands off a confirmed group-unavailable error. Always fetch `group_options`, submit only an exact returned ID to `account_switch_group`, and display its AccountStatus result without a follow-up lookup.",
"included_files": [
{
"relative_path": "agents/openai.yaml",
"size_in_bytes": 383
},
{
"relative_path": "references/error-recovery.md",
"size_in_bytes": 3208
},
{
"relative_path": "references/oauth-recovery.md",
"size_in_bytes": 2343
}
],
"name": "lihi-switch-group",
"skill_md_contents": "---\nname: lihi-switch-group\ndescription: Switch the active lihi MCP work group. Use when the user asks to switch, change, select, or move to another lihi work group, including「切換 lihi 工作群組」、「切換工作群組」or「換到另一個群組」in a lihi context, and when another lihi workflow hands off a confirmed group-unavailable error. Always fetch `group_options`, submit only an exact returned ID to `account_switch_group`, and display its AccountStatus result without a follow-up lookup.\n---\n\n# Switch the lihi work group\n\nAlways render the brand name exactly as `lihi` in lowercase in every user-facing message and generated copy.\n\n## Flow\n\n1. Call `group_options` with `{}` and validate the complete fresh snapshot.\n2. Stop without mutation when only one group exists or when the requested target is already current.\n3. Resolve an explicitly named target against the fresh snapshot. Otherwise show the current group and numbered alternatives, then wait for one valid selection or cancellation.\n4. Call `account_switch_group` once with the selected entry's exact `id` as `group_id`.\n5. On success, validate and display the returned AccountStatus directly, then complete the group-switch operation without a follow-up MCP call. For a standalone request, stop; when domain-switch error recovery invoked this skill, return control to that caller after display.\n6. If discovery or mutation fails, successful output does not validate, or dispatch is uncertain, leave the normal flow and read [the switch error recovery rules](references/error-recovery.md) completely before taking another action.\n\n## Fetch and validate current choices\n\nCall `group_options` with `{}` before every selection. Never switch from a remembered list.\n\nPrefer `structuredContent`; otherwise parse the JSON object in the first text block. Require a non-empty `groups` array and exactly one current entry. Every entry must contain:\n\n- `id`: `null` or an integer from `1` through `4294967295`.\n- `name`: a string or `null`.\n- `is_current`: a boolean.\n\nTreat `id` as identity. Preserve every non-null `name` byte-for-byte. Render only null names as `{id:null}` → `我的群組` or `{id:<integer>}` → `未命名工作群組(ID:<id>)`. Keep duplicate names as distinct entries.\n\nIf there is exactly one entry, report `目前只有一個工作群組:<label>` and stop without mutation.\n\n## Resolve the target\n\nFor multiple entries, exclude the current entry from the selectable list and preserve returned order. Resolve a user-supplied target only by exact ID, an exact unique non-null name, or `我的群組` matching the personal entry. If it is current, report that state and stop. Otherwise display current group plus a contiguous numbered list and ask for one number or `取消`; ask even when only one alternative exists.\n\nBind numbers only to this exact `group_options` snapshot. Invalid or ambiguous input re-displays the same list. Any refresh or new discovery invalidates every old number. A fresh target must resolve by ID, never by old number or display label.\n\n## Switch and validate\n\nCall `account_switch_group` once with `{group_id:<exact returned id>}`, preserving `null`. Never send a display number.\n\nValidate a successful response as AccountStatus:\n\n- `email`: a non-empty string.\n- `group_name` and `domain`: string or `null`.\n- `short_urls.used`: non-negative integer; `short_urls.quota`: non-negative integer or `null`.\n- `plan.name`: string; `plan.expires_on` and `plan.next_renewal_on`: `YYYY-MM-DD` string or `null`.\n\nA valid result commits the selector. Do not call `group_options`, `account_status`, or another MCP tool to verify it, and never infer an ID from `group_name`.\n\nDisplay the full returned status in this order:\n\n1. `帳號 Email:<email>`.\n2. `短網址用量:<used> / <quota>`; render `quota:null` as `短網址用量:<used> / 無上限`.\n3. `目前方案:<plan>(到期日:<expires_on>)`; render `expires_on:null` as `目前方案:<plan>(無到期日)`.\n4. `續訂日期:<next_renewal_on>`; render null as `續訂日期:-`.\n5. `目前工作群組:<group_name>`; render null as `目前工作群組:我的群組`.\n6. `目前短網址網域:<domain>`; render null as `目前短網址網域:未回傳可用網域`.\n\nPreserve `email` and every non-null display value exactly.\n"
}SHA-256 of public snapshot: fd099f771893ab97bab99108cf5efe4474edb5f2e1c944533d2730d095d0833b