[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DHHE2TDASEVMSC0VJFJ3YW":3,"skill-same:01M6DHHE2TDASEVMSC0VJFJ3YW":94},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":48,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M6DHHE2TDASEVMSC0VJFJ3YW","menu-proposal",null,"Review and recommend the shared native Telegram command menu in interactive sessions. Samples telemetry, inspects capabilities, converts hyphenated skill names to valid snake_case Telegram commands, presents an interactive proposal matrix, and codifies approved updates. Strictly excludes headless worker commands (\u002Fpull, \u002Fdump) per headless-workers.md. Use when an operator requests a menu review or update. Exclude for headless workers or non-Telegram commands.","nicsuzor\u002FacademicOps","nicsuzor","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F4496978?v=4","01M6DGWCFNDYP03M4DQAHA6DN1","Nicolas Suzor","01M6DGWCPXG37BMXRZZKXR0A1Z",5,"MIT","https:\u002F\u002Fgithub.com\u002Fnicsuzor\u002FacademicOps\u002Fblob\u002Fmain\u002Fida-telegram-openclaw\u002Fskills\u002Fmenu-proposal\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"menu proposal","interactive","dump","worker","commands","shared","workers","telegram","use","review","command","operator","pull","capabilities","update","telemetry","sessions","valid","2026-11-10 10:12:30",false,"---\nname: menu-proposal\ndescription: Review and recommend the shared native Telegram command menu in interactive sessions. Samples telemetry, inspects capabilities, converts hyphenated skill names to valid snake_case Telegram commands, presents an interactive proposal matrix, and codifies approved updates. Strictly excludes headless worker commands (\u002Fpull, \u002Fdump) per headless-workers.md. Use when an operator requests a menu review or update. Exclude for headless workers or non-Telegram commands.\n---\n\n# Menu Proposal Workflow\n\nReview, customize, and allocate the native Telegram command menu for Ida.\n\n## Procedure\n\n### 1. Sample Telemetry and Discover Capabilities\n\n1. **Sample recent invocations:** Query execution telemetry spans (or inspect recent session logs) for skill runs and menu taps across interactive sessions and subagents to gather empirical invocation frequencies.\n2. **Discover candidate skills and workflows:**\n   - Enumerate installed skills across plugins (`plugins\u002F*\u002Fskills\u002F`) and common workflow templates.\n   - Include operator-facing coordination skills (`reify`, `dispatch`, `mine`, `reconcile`, `daily`).\n   - Strictly exclude reserved platform commands (`start`, `help`, `status`) and headless worker lifecycle commands (`pull`, `dump`).\n3. **Separate interactive menus from headless workers (`headless-workers.md`):**\n   - Telegram command menus exclusively serve interactive operator sessions. Headless worker lifecycle commands (`pull`, `dump`) must never appear on conversational menus or in candidate pools.\n   - Autonomous workers operate non-interactively and cannot pause for human input; the menu proposal workflow is designed exclusively for interactive operator dialogue and must never be dispatched to a headless worker.\n4. **Inspect current allocations:** Read the active `TELEGRAM_BOT_COMMANDS` list in the channel's `$STATE_DIR\u002F.env`.\n\n### 2. Synthesize Considered Recommendations\n\nApply qualitative judgment to evaluate candidate commands for the shared menu:\n\n- **Shared Menu Allocation:** Prioritize high-frequency operational triage, quick capture, decision walk-throughs, task queueing, disambiguation, daily briefings, and worker dispatch (e.g. `\u002Fdecide`, `\u002Fq`, `\u002Fmine`, `\u002Freconcile`, `\u002Fhydrate`, `\u002Fup`, `\u002Freify`, `\u002Fdispatch`, `\u002Fdaily`).\n- **Composite commands:** Propose single-tap composite commands where recurring multi-step patterns or common briefings are identified (such as `\u002Fdaily`).\n- **Command identifier normalization & platform constraints:**\n  - Convert kebab-case skill and workflow names to valid Telegram command identifiers (`snake_case`) by replacing hyphens with underscores (e.g. `strategic-review` $\\rightarrow$ `\u002Fstrategic_review`, `argument-map` $\\rightarrow$ `\u002Fargument_map`, `menu-proposal` $\\rightarrow$ `\u002Fmenu_proposal`, `session-trace` $\\rightarrow$ `\u002Fsession_trace`).\n  - Ensure all command identifiers strictly match `\u002F^[a-z0-9_]{1,32}$\u002F` (no hyphens, lowercase alphanumeric and underscores only, length 1–32).\n  - Descriptions must be 1–256 characters, and total registered commands must not exceed 100.\n\n### 3. Present Proposal Matrix\n\nPresent a scannable proposal table to the user (in interactive operator sessions only; headless workers cannot pause for human input):\n\n- **Candidate pool summary:** Total candidates inspected and current allocations in the shared menu.\n- **Recommendation table:**\n  - `Command`: Normalized identifier matching `\u002F^[a-z0-9_]{1,32}$\u002F` with hyphens converted to underscores (e.g. `\u002Freify`, `\u002Fstrategic_review`).\n  - `Type`: `skill`, `workflow`, or `composite`.\n  - `Usage`: Empirical invocation count from recent telemetry.\n  - `Proposed Inclusion`: `[Include]`, `[Exclude]`, or `[Optional]`.\n  - `Description`: Clear functional summary.\n  - `Rationale`: Why this command fits the shared menu.\n- **Interactive options:** Present checkbox proposals or structured options allowing the user to approve recommendations or adjust allocations in free text.\n\n### 4. Codify Approved Allocations\n\n1. The menu is exactly the JSON list in `TELEGRAM_BOT_COMMANDS`; the plugin builds none of its own. Codify the approved command list as JSON into `TELEGRAM_BOT_COMMANDS` in the channel's environment configuration (`$STATE_DIR\u002F.env`); it is registered at the next poller start.\n2. Run test verification (`cd plugins\u002Fida-telegram && bun test test\u002Fcommands.test.ts`) to ensure command registration passes cleanly.\n3. Confirm updated menu to the user.\n","# Menu Proposal Workflow\n\nReview, customize, and allocate the native Telegram command menu for Ida.\n\n## Procedure\n\n### 1. Sample Telemetry and Discover Capabilities\n\n1. **Sample recent invocations:** Query execution telemetry spans (or inspect recent session logs) for skill runs and menu taps across interactive sessions and subagents to gather empirical invocation frequencies.\n2. **Discover candidate skills and workflows:**\n   - Enumerate installed skills across plugins (`plugins\u002F*\u002Fskills\u002F`) and common workflow templates.\n   - Include operator-facing coordination skills (`reify`, `dispatch`, `mine`, `reconcile`, `daily`).\n   - Strictly exclude reserved platform commands (`start`, `help`, `status`) and headless worker lifecycle commands (`pull`, `dump`).\n3. **Separate interactive menus from headless workers (`headless-workers.md`):**\n   - Telegram command menus exclusively serve interactive operator sessions. Headless worker lifecycle commands (`pull`, `dump`) must never appear on conversational menus or in candidate pools.\n   - Autonomous workers operate non-interactively and cannot pause for human input; the menu proposal workflow is designed exclusively for interactive operator dialogue and must never be dispatched to a headless worker.\n4. **Inspect current allocations:** Read the active `TELEGRAM_BOT_COMMANDS` list in the channel's `$STATE_DIR\u002F.env`.\n\n### 2. Synthesize Considered Recommendations\n\nApply qualitative judgment to evaluate candidate commands for the shared menu:\n\n- **Shared Menu Allocation:** Prioritize high-frequency operational triage, quick capture, decision walk-throughs, task queueing, disambiguation, daily briefings, and worker dispatch (e.g. `\u002Fdecide`, `\u002Fq`, `\u002Fmine`, `\u002Freconcile`, `\u002Fhydrate`, `\u002Fup`, `\u002Freify`, `\u002Fdispatch`, `\u002Fdaily`).\n- **Composite commands:** Propose single-tap composite commands where recurring multi-step patterns or common briefings are identified (such as `\u002Fdaily`).\n- **Command identifier normalization & platform constraints:**\n  - Convert kebab-case skill and workflow names to valid Telegram command identifiers (`snake_case`) by replacing hyphens with underscores (e.g. `strategic-review` $\\rightarrow$ `\u002Fstrategic_review`, `argument-map` $\\rightarrow$ `\u002Fargument_map`, `menu-proposal` $\\rightarrow$ `\u002Fmenu_proposal`, `session-trace` $\\rightarrow$ `\u002Fsession_trace`).\n  - Ensure all command identifiers strictly match `\u002F^[a-z0-9_]{1,32}$\u002F` (no hyphens, lowercase alphanumeric and underscores only, length 1–32).\n  - Descriptions must be 1–256 characters, and total registered commands must not exceed 100.\n\n### 3. Present Proposal Matrix\n\nPresent a scannable proposal table to the user (in interactive operator sessions only; headless workers cannot pause for human input):\n\n- **Candidate pool summary:** Total candidates inspected and current allocations in the shared menu.\n- **Recommendation table:**\n  - `Command`: Normalized identifier matching `\u002F^[a-z0-9_]{1,32}$\u002F` with hyphens converted to underscores (e.g. `\u002Freify`, `\u002Fstrategic_review`).\n  - `Type`: `skill`, `workflow`, or `composite`.\n  - `Usage`: Empirical invocation count from recent telemetry.\n  - `Proposed Inclusion`: `[Include]`, `[Exclude]`, or `[Optional]`.\n  - `Description`: Clear functional summary.\n  - `Rationale`: Why this command fits the shared menu.\n- **Interactive options:** Present checkbox proposals or structured options allowing the user to approve recommendations or adjust allocations in free text.\n\n### 4. Codify Approved Allocations\n\n1. The menu is exactly the JSON list in `TELEGRAM_BOT_COMMANDS`; the plugin builds none of its own. Codify the approved command list as JSON into `TELEGRAM_BOT_COMMANDS` in the channel's environment configuration (`$STATE_DIR\u002F.env`); it is registered at the next poller start.\n2. Run test verification (`cd plugins\u002Fida-telegram && bun test test\u002Fcommands.test.ts`) to ensure command registration passes cleanly.\n3. Confirm updated menu to the user.\n",{"name":5,"description":7},"main","22a4e466ac352d09f636273685845a312ee07a15","ida-telegram-openclaw\u002Fskills\u002Fmenu-proposal",3,"https:\u002F\u002Fgithub.com\u002Fnicsuzor\u002FacademicOps","https:\u002F\u002Fgithub.com\u002Fnicsuzor","https:\u002F\u002Fnic.suzor.net\u002F","2026-11-11 20:31:05",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add nicsuzor\u002FacademicOps --skill menu-proposal",{"tool":56,"command":57},"bunx","bunx skills add nicsuzor\u002FacademicOps --skill menu-proposal",{"tool":59,"command":60},"pnpm","pnpm dlx skills add nicsuzor\u002FacademicOps --skill menu-proposal","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fnicsuzor\u002FacademicOps\u002Fblob\u002Fmain\u002Fida-telegram-openclaw\u002Fskills\u002Fmenu-proposal\u002FSKILL.md",true,[64,70,76,82,86,90],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},".gitattributes","OTHER","其他",34,"https:\u002F\u002Fgithub.com\u002Fstanley50z\u002Fsz-skills\u002Fblob\u002Fmain\u002Fskills\u002Fsetup-git-repo\u002F.gitattributes",{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"references\u002Fpost-commit.md","REFERENCE","参考文档",7094,"https:\u002F\u002Fgithub.com\u002Fstanley50z\u002Fsz-skills\u002Fblob\u002Fmain\u002Fskills\u002Fsetup-git-repo\u002Freferences\u002Fpost-commit.md",{"path":77,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":80,"sourceHtmlUrl":81},"scripts\u002Fopenwiki_post_commit.py","SCRIPT","脚本",22813,"https:\u002F\u002Fgithub.com\u002Fstanley50z\u002Fsz-skills\u002Fblob\u002Fmain\u002Fskills\u002Fsetup-git-repo\u002Fscripts\u002Fopenwiki_post_commit.py",{"path":83,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":84,"sourceHtmlUrl":85},"scripts\u002Fopenwiki-sync",627,"https:\u002F\u002Fgithub.com\u002Fstanley50z\u002Fsz-skills\u002Fblob\u002Fmain\u002Fskills\u002Fsetup-git-repo\u002Fscripts\u002Fopenwiki-sync",{"path":87,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":88,"sourceHtmlUrl":89},"tests\u002Ftest_openwiki_hook.py",27824,"https:\u002F\u002Fgithub.com\u002Fstanley50z\u002Fsz-skills\u002Fblob\u002Fmain\u002Fskills\u002Fsetup-git-repo\u002Ftests\u002Ftest_openwiki_hook.py",{"path":91,"resourceType":78,"resourceTypeDesc":79,"sizeBytes":92,"sourceHtmlUrl":93},"tests\u002Ftest_openwiki_windows.py",1483,"https:\u002F\u002Fgithub.com\u002Fstanley50z\u002Fsz-skills\u002Fblob\u002Fmain\u002Fskills\u002Fsetup-git-repo\u002Ftests\u002Ftest_openwiki_windows.py",[95,120,125,130,135,158],{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":101,"publishedAt":37},"01M6M6JR6VXPDA3MDPVS36DSSP","refresh-questions","Sweep and refresh open questions in the Telegram Mini App by closing questions that are answered elsewhere, superseded, or asking for completed actions, and ensuring active open questions carry recommendations and context. Use when asked to refresh questions, sweep stale questions, or keep the Mini App decision queue current. Exclude for asking new questions or routine chat replies.","https:\u002F\u002Fgithub.com\u002Fnicsuzor\u002FacademicOps\u002Fblob\u002Fmain\u002Fopenclaw\u002Fida-telegram\u002Fskills\u002Frefresh-questions\u002FSKILL.md",[],[102,103,104,105,106,107,108,109,27,110,26,111,112,113,114,115,116,117,118,119],"refresh","refresh questions","questions","actions","telegram mini app","open","decision","context","queue","stale","chat","active","recommendations","app","keep","replies","closing","for",{"skillNo":121,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":37},"01M6M6JGW7Q0SC5B28TQ7PKE8E","https:\u002F\u002Fgithub.com\u002Fnicsuzor\u002FacademicOps\u002Fblob\u002Fmain\u002Fida-telegram-openclaw\u002Fskills\u002Frefresh-questions\u002FSKILL.md",[],[102,103,104,105,106,107,108,109,27,110,26,111,112,113,114,115,116,117,118,119],{"skillNo":126,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":37},"01M6M6J7D0ZTQ4VSS5ADRSA12E","https:\u002F\u002Fgithub.com\u002Fnicsuzor\u002FacademicOps\u002Fblob\u002Fmain\u002Fida-telegram-claude\u002Fskills\u002Frefresh-questions\u002FSKILL.md",[],[102,103,104,105,106,107,108,109,27,110,26,111,112,113,114,115,116,117,118,119],{"skillNo":131,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":37},"01M6M6EP6BK1DDN2212S7Y95G0","https:\u002F\u002Fgithub.com\u002Fnicsuzor\u002FacademicOps\u002Fblob\u002Fmain\u002Fcowork\u002Fida-telegram\u002Fskills\u002Frefresh-questions\u002FSKILL.md",[],[102,103,104,105,106,107,108,109,27,110,26,111,112,113,114,115,116,117,118,119],{"skillNo":136,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":139,"categories":140,"keywords":141,"publishedAt":37},"01M6G9Q8538NENA2TE2V4HPRSF","dispatch-queue","Show the user the tasks ready to dispatch, ranked with a recommendation on each, and start workers on the ones the user approves -- redirects to universal workflow template wf-dispatch-queue. Use for \"what's ready\", \"what should we dispatch\", or \"dispatch the queue\". Exclude for starting workers on named tasks without the user's choice (use dispatch) or graph truth maintenance (use reconcile).","https:\u002F\u002Fgithub.com\u002Fnicsuzor\u002FacademicOps\u002Fblob\u002Fmain\u002Fopenclaw\u002Fida\u002Fskills\u002Fdispatch-queue\u002FSKILL.md",[],[142,110,143,144,145,146,147,148,149,150,27,151,152,153,25,154,155,156,157],"dispatch","dispatch queue","workflow","tasks","graph","start","template","choice","user","reconcile","ready","maintenance","show","wf","recommendation","with",{"skillNo":159,"name":137,"nameZh":6,"description":138,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":37},"01M6G9P9M3PQXPX3647RA5E4D0","https:\u002F\u002Fgithub.com\u002Fnicsuzor\u002FacademicOps\u002Fblob\u002Fmain\u002Fida-openclaw\u002Fskills\u002Fdispatch-queue\u002FSKILL.md",[],[142,110,143,144,145,146,147,148,149,150,27,151,152,153,25,154,155,156,157]]