[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6D9B0RWW10W69AW0RF7AV8V":3,"skill-same:01M6D9B0RWW10W69AW0RF7AV8V":66},{"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":47,"ownerHtmlUrl":48,"ownerBlogUrl":49,"ownerDescription":50,"updatedAt":51,"install":52,"resources":65},"01M6D9B0RWW10W69AW0RF7AV8V","inbox-watch-quickstart",null,"Poll GitHub, IMAP and Resend inbound for genuinely new items and alert only when a human actually replied. Use when setting up reply monitoring, wiring a cron\u002Ftimer to an inbox, or debugging why an expected alert never fired.","javimosch\u002Fsupercli","javimosch","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F12900508?v=4","01M6D3F2AS6PV75ET9PZ1QGP8J","Javier Leandro Arancibia","01M6D3F2EBNWNJ358Q90P5YQR1",57,"MIT","https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fplugins\u002Finbox-watch\u002Fskills\u002Fquickstart\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"inbox watch quickstart","inbox","quickstart","watch","only","human","resend","reply","timer","up","alert","github","never","use","why","cron","monitoring","debugging","2026-11-10 10:12:30",false,"---\nname: inbox-watch-quickstart\ndescription: Poll GitHub, IMAP and Resend inbound for genuinely new items and alert only when a human actually replied. Use when setting up reply monitoring, wiring a cron\u002Ftimer to an inbox, or debugging why an expected alert never fired.\n---\n\n# inbox-watch\n\n**Tells you only when a human actually replied.** Polls GitHub notifications, IMAP\nand Resend inbound; prints what is new since the last run; **exits 10** if there\nwas anything — so a cron alerts only when something real arrived.\n\n## Commands\n- `inbox-watch \u003Cresource> \u003Caction>` — Execute inbox-watch commands\n- `inbox-watch inbox check` — Poll every configured channel and print items new since the last run. Exit 10 if any. CONSUMES the cursor — use inbox_peek to diagnose.\n- `inbox-watch inbox peek` — Same report WITHOUT marking items seen. Use this for any diagnostic run: a normal run consumes the alert your cron would have sent.\n- `inbox-watch inbox seed` — Mark everything currently pending as seen, reporting nothing. Run once when adding a new consumer, or it alerts on the whole backlog.\n- `inbox-watch self guide` — Embedded operator manual: the model, the loop, and the gotchas\n- `inbox-watch self help-json` — Machine-readable command catalog (cli-output-spec)\n- `inbox-watch _ _` — Passthrough to the inbox-watch CLI\n\n## The one idea\n\nInbound is mostly machine noise. On a domain with DMARC reporting on, aggregate\nreports outnumber real mail several to one. A notifier that pings for all of it\ngets muted — **and then the reply that mattered is muted with it.** So every item\nis classified and only one kind is a person:\n\n| kind | alert? |\n|---|---|\n| `dmarc` | no — counted, never pinged alone |\n| `autoreply` | yes, but **labelled** so it doesn't read as a reply |\n| `reply` | **yes** — this is the product |\n\n## Use\n\n```sh\ninbox-watch                       # JSON on stdout, exit 10 if new\ninbox-watch --human               # readable lines\ninbox-watch guide                 # embedded operator manual\ninbox-watch help-json             # command catalog\ninbox-watch setup                 # what each channel needs\n```\n\nOutput follows [cli-output-spec](https:\u002F\u002Fcli-specs.intrane.fr\u002F): stdout is\nversioned data, stderr is context and typed errors, exit code is the signal.\n\n```json\n{ \"ok\": true, \"version\": \"1.0.0\", \"count\": 1,\n  \"new\": [ { \"channel\": \"mailbox\", \"kind\": \"reply\", \"from\": \"…\", \"title\": \"…\" } ],\n  \"disabled\": [ { \"channel\": \"resend\", \"reason\": \"set RESEND_API_KEY …\", \"recoverable\": true } ] }\n```\n\n| exit | meaning |\n|---:|---|\n| 0 | nothing new |\n| **10** | **new items — the cron signal** |\n| 80 \u002F 90 \u002F 100 \u002F 110 | input \u002F precondition \u002F external \u002F internal |\n\n## Two traps — read these before debugging\n\nBoth were found in production, and both make a *working* system look broken (or\na broken one look fine).\n\n**1. The cursor is consumed on read.** Any normal run marks items seen. So\nrunning `inbox-watch` by hand to \"check if it works\" **eats the alert the cron\nwould have sent** — and the cron then reports nothing, which looks like success.\n\n> Use `--peek` for anything diagnostic. It reports identically without\n> committing state.\n\n**2. Two watchers on one host steal from each other.** Same cause: they share a\ncursor, so whichever polls first wins and the other's alert never fires.\n\n> Give each its own: `--consumer NAME`. Run `--seed` once for a new consumer, or\n> its first run alerts on the entire backlog.\n\n```sh\ninbox-watch --peek --human            # safe diagnosis\ninbox-watch --consumer laptop --seed  # add a second watcher, no backlog flood\ninbox-watch --consumer laptop\n```\n\n## Configure\n\n`~\u002F.inbox-watch\u002Fconfig.json` holds **what to watch**; env vars hold **every\nsecret**. Start from `config.example.json`. Unconfigured channels report why\nthey are disabled rather than failing, so a fresh install runs and tells you\nwhat it needs.\n\n| channel | secret | note |\n|---|---|---|\n| `mailbox` | `INBOX_TOKEN` + `mailbox.url` | token-gated `GET \u002Fapi\u002Finbound`. **Prefer this over `resend`** — a read-only token cannot send mail as you |\n| `resend` | `RESEND_API_KEY` | note this key *can also send* |\n| `imap` | `ZOHO_IMAP_PASS` + `imap.user` | any IMAP host, app-specific password |\n| `github` | authenticated `gh` | mentions\u002Freview-requests, plus specific issue\u002FPR threads you name |\n\n## Wire it up\n\n```\n*\u002F15 * * * *  inbox-watch --human | grep . && \u003Cnotify>\n```\n\n`run.sh.template` in the repo is a worked example (Telegram). It **logs the\ndelivery result** — a send that fails silently is the same failure mode this\ntool exists to prevent, so don't discard it.\n","# inbox-watch\n\n**Tells you only when a human actually replied.** Polls GitHub notifications, IMAP\nand Resend inbound; prints what is new since the last run; **exits 10** if there\nwas anything — so a cron alerts only when something real arrived.\n\n## Commands\n- `inbox-watch \u003Cresource> \u003Caction>` — Execute inbox-watch commands\n- `inbox-watch inbox check` — Poll every configured channel and print items new since the last run. Exit 10 if any. CONSUMES the cursor — use inbox_peek to diagnose.\n- `inbox-watch inbox peek` — Same report WITHOUT marking items seen. Use this for any diagnostic run: a normal run consumes the alert your cron would have sent.\n- `inbox-watch inbox seed` — Mark everything currently pending as seen, reporting nothing. Run once when adding a new consumer, or it alerts on the whole backlog.\n- `inbox-watch self guide` — Embedded operator manual: the model, the loop, and the gotchas\n- `inbox-watch self help-json` — Machine-readable command catalog (cli-output-spec)\n- `inbox-watch _ _` — Passthrough to the inbox-watch CLI\n\n## The one idea\n\nInbound is mostly machine noise. On a domain with DMARC reporting on, aggregate\nreports outnumber real mail several to one. A notifier that pings for all of it\ngets muted — **and then the reply that mattered is muted with it.** So every item\nis classified and only one kind is a person:\n\n| kind | alert? |\n|---|---|\n| `dmarc` | no — counted, never pinged alone |\n| `autoreply` | yes, but **labelled** so it doesn't read as a reply |\n| `reply` | **yes** — this is the product |\n\n## Use\n\n```sh\ninbox-watch                       # JSON on stdout, exit 10 if new\ninbox-watch --human               # readable lines\ninbox-watch guide                 # embedded operator manual\ninbox-watch help-json             # command catalog\ninbox-watch setup                 # what each channel needs\n```\n\nOutput follows [cli-output-spec](https:\u002F\u002Fcli-specs.intrane.fr\u002F): stdout is\nversioned data, stderr is context and typed errors, exit code is the signal.\n\n```json\n{ \"ok\": true, \"version\": \"1.0.0\", \"count\": 1,\n  \"new\": [ { \"channel\": \"mailbox\", \"kind\": \"reply\", \"from\": \"…\", \"title\": \"…\" } ],\n  \"disabled\": [ { \"channel\": \"resend\", \"reason\": \"set RESEND_API_KEY …\", \"recoverable\": true } ] }\n```\n\n| exit | meaning |\n|---:|---|\n| 0 | nothing new |\n| **10** | **new items — the cron signal** |\n| 80 \u002F 90 \u002F 100 \u002F 110 | input \u002F precondition \u002F external \u002F internal |\n\n## Two traps — read these before debugging\n\nBoth were found in production, and both make a *working* system look broken (or\na broken one look fine).\n\n**1. The cursor is consumed on read.** Any normal run marks items seen. So\nrunning `inbox-watch` by hand to \"check if it works\" **eats the alert the cron\nwould have sent** — and the cron then reports nothing, which looks like success.\n\n> Use `--peek` for anything diagnostic. It reports identically without\n> committing state.\n\n**2. Two watchers on one host steal from each other.** Same cause: they share a\ncursor, so whichever polls first wins and the other's alert never fires.\n\n> Give each its own: `--consumer NAME`. Run `--seed` once for a new consumer, or\n> its first run alerts on the entire backlog.\n\n```sh\ninbox-watch --peek --human            # safe diagnosis\ninbox-watch --consumer laptop --seed  # add a second watcher, no backlog flood\ninbox-watch --consumer laptop\n```\n\n## Configure\n\n`~\u002F.inbox-watch\u002Fconfig.json` holds **what to watch**; env vars hold **every\nsecret**. Start from `config.example.json`. Unconfigured channels report why\nthey are disabled rather than failing, so a fresh install runs and tells you\nwhat it needs.\n\n| channel | secret | note |\n|---|---|---|\n| `mailbox` | `INBOX_TOKEN` + `mailbox.url` | token-gated `GET \u002Fapi\u002Finbound`. **Prefer this over `resend`** — a read-only token cannot send mail as you |\n| `resend` | `RESEND_API_KEY` | note this key *can also send* |\n| `imap` | `ZOHO_IMAP_PASS` + `imap.user` | any IMAP host, app-specific password |\n| `github` | authenticated `gh` | mentions\u002Freview-requests, plus specific issue\u002FPR threads you name |\n\n## Wire it up\n\n```\n*\u002F15 * * * *  inbox-watch --human | grep . && \u003Cnotify>\n```\n\n`run.sh.template` in the repo is a worked example (Telegram). It **logs the\ndelivery result** — a send that fails silently is the same failure mode this\ntool exists to prevent, so don't discard it.\n",{"name":5,"description":7},"master","d362369a98edfcc6356f3bb152db470c34f08a46","plugins\u002Finbox-watch\u002Fskills\u002Fquickstart",5,"https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli","https:\u002F\u002Fjavimosch.github.io\u002Fsupercli\u002F","https:\u002F\u002Fgithub.com\u002Fjavimosch","intrane.fr","Building robust, open-source infrastructure for the commons. AI-leveraged, self-hosted, built to last.","2026-11-02 18:24:17",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add javimosch\u002Fsupercli --skill inbox-watch-quickstart",{"tool":58,"command":59},"bunx","bunx skills add javimosch\u002Fsupercli --skill inbox-watch-quickstart",{"tool":61,"command":62},"pnpm","pnpm dlx skills add javimosch\u002Fsupercli --skill inbox-watch-quickstart","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fplugins\u002Finbox-watch\u002Fskills\u002Fquickstart\u002FSKILL.md",true,[],[67,80,99,111,124,132],{"skillNo":68,"name":69,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":77,"publishedAt":37},"01M6G7YFZVHRYAY51J0YG9SDNJ","sc-machin-mcp","https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fsupercli-machin-cli\u002Fskills\u002Fsc-machin-mcp\u002FSKILL.md",[72],{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[78,79],"sc machin mcp","MCP",{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":87,"publishedAt":37},"01M6G7YB179MQMSHZBJDC8TZA8","supercli.quickstart","SuperCLI capability router — discover and execute CLI commands through namespace.resource.action interface","https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fskills\u002Fsupercli\u002FSKILL.md",[86],{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},[88,21,89,90,91,92,93,94,95,96,97,98],"supercli quickstart","cli","capability router","plugin","discovery","execute","router","discover","commands","interface","supercli,cli,plugin,capability,discovery,agent",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":37},"01M6G7Y734QS3793YMS5PR146J","zzdoc","Use this skill to compile scdoc manpages with a fast Zig-based compiler.","https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fplugins\u002Fzzdoc\u002Fskills\u002Fquickstart\u002FSKILL.md",[],[101,106,32,107,108,109,110],"with","zig","fast","compiler","compile",{"skillNo":112,"name":113,"nameZh":6,"description":114,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":37},"01M6G7Y2WX56K2QJQ9RV2ZKEV7","zx","Use this skill when the user wants to a tool for writing better scripts using node.js.","https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fplugins\u002Fzx\u002Fskills\u002Fquickstart\u002FSKILL.md",[],[113,118,32,119,120,121,122,123],"scripts","user","node","tool","js","writing",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":37},"01M6G7Y0M792DGW31HN4TEQT10","zvm","Use this skill when the user wants to manage multiple Zig compiler versions.","https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fplugins\u002Fzvm\u002Fskills\u002Fquickstart\u002FSKILL.md",[],[126,107,131,32,119,109],"manage",{"skillNo":133,"name":21,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":136,"publishedAt":37},"01M6G7XX51W5HJW09DYXBK92TJ","https:\u002F\u002Fgithub.com\u002Fjavimosch\u002Fsupercli\u002Fblob\u002Fmaster\u002Fplugins\u002Fzstdmt\u002Fskills\u002Fquickstart\u002FSKILL.md",[],[21]]