{
  "schemaVersion": "1.0",
  "item": {
    "slug": "mrc-monitor",
    "name": "Mrc Monitor",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/wysh3/mrc-monitor",
    "canonicalUrl": "https://clawhub.ai/wysh3/mrc-monitor",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/mrc-monitor",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=mrc-monitor",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/monitor.py"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/mrc-monitor"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/mrc-monitor",
    "agentPageUrl": "https://openagent3.xyz/skills/mrc-monitor/agent",
    "manifestUrl": "https://openagent3.xyz/skills/mrc-monitor/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/mrc-monitor/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "MRC Canteen Monitor",
        "body": "Monitor MRC canteen order tokens and notify when they're ready for pickup."
      },
      {
        "title": "Quick Start",
        "body": "When user sends any command containing canteen tokens:\n\nExtract all token numbers from the message\nStart the background monitor script\nRespond immediately with confirmation"
      },
      {
        "title": "Command Recognition",
        "body": "Users may send tokens with various prefixes:\n\n\"mrc 73\" or \"mrc 73 97 42\"\n\"token 73\" or \"token 73 97\"\n\"monitor 73\"\n\"check 73\" (one-time check only)"
      },
      {
        "title": "Starting the Monitor",
        "body": "Extract all numbers from the user message and start the background monitor:\n\npython3 skills/mrc-monitor/scripts/monitor.py <platform> <channel_id> <token1> <token2> ...\n\nWhere:\n\nplatform: \"telegram\" or \"discord\"\nchannel_id: Current channel identifier (platform prefix is optional, e.g., telegram_123 or 123 both work)\ntoken1, token2, ...: Token numbers to monitor\n\nExample:\n\npython3 skills/mrc-monitor/scripts/monitor.py telegram telegram_6046286675 73 97 42\n# or\npython3 skills/mrc-monitor/scripts/monitor.py telegram 6046286675 73 97 42"
      },
      {
        "title": "Background Execution",
        "body": "Start the monitor as a background process so the agent responds immediately:\n\nimport subprocess\n\n# channel_id can be with or without platform prefix (both work)\ncmd = ['python3', 'skills/mrc-monitor/scripts/monitor.py',\n       platform, channel_id] + [str(t) for t in tokens]\nsubprocess.Popen(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)"
      },
      {
        "title": "Agent Response",
        "body": "After starting the monitor, respond immediately with:\n\n✅ Monitoring tokens: 73, 97, 42\nChecking every 15 seconds.\nI'll notify you here when they're ready! 🍕"
      },
      {
        "title": "One-Time Check",
        "body": "For \"check 73\" commands, perform a single Firebase query and respond with status without starting a background monitor."
      },
      {
        "title": "Monitor Behavior",
        "body": "The monitor script:\n\nPolls Firebase Firestore every 15 seconds\nChecks all monitored tokens in each poll\nSends \"🍕 Order X is ready!\" notification when a token's status is \"Ready\"\nRemoves notified tokens from the watch list\nExits automatically when all tokens are notified\nHandles errors gracefully with retries\nLogs all activity to skills/mrc-monitor/logs/monitor_YYYYMMDD_HHMMSS.log"
      },
      {
        "title": "Error Handling",
        "body": "The script automatically handles:\n\nNetwork timeouts (retries up to 5 times)\nHTTP errors (including rate limits)\nUnexpected errors (stops after 5 consecutive failures)\nSignal termination (SIGTERM, SIGINT)\n\nOn fatal errors, the script sends a notification before exiting."
      },
      {
        "title": "Firebase Details",
        "body": "Project: kanteen-mrc-blr-24cfa\nCollection: orders\nDocument fields:\n\nstudentId (string): \"student-{token_number}\"\nstatus (string): \"Preparing\", \"Ready\", \"Completed\""
      }
    ],
    "body": "MRC Canteen Monitor\n\nMonitor MRC canteen order tokens and notify when they're ready for pickup.\n\nQuick Start\n\nWhen user sends any command containing canteen tokens:\n\nExtract all token numbers from the message\nStart the background monitor script\nRespond immediately with confirmation\nCommand Recognition\n\nUsers may send tokens with various prefixes:\n\n\"mrc 73\" or \"mrc 73 97 42\"\n\"token 73\" or \"token 73 97\"\n\"monitor 73\"\n\"check 73\" (one-time check only)\nStarting the Monitor\n\nExtract all numbers from the user message and start the background monitor:\n\npython3 skills/mrc-monitor/scripts/monitor.py <platform> <channel_id> <token1> <token2> ...\n\n\nWhere:\n\nplatform: \"telegram\" or \"discord\"\nchannel_id: Current channel identifier (platform prefix is optional, e.g., telegram_123 or 123 both work)\ntoken1, token2, ...: Token numbers to monitor\n\nExample:\n\npython3 skills/mrc-monitor/scripts/monitor.py telegram telegram_6046286675 73 97 42\n# or\npython3 skills/mrc-monitor/scripts/monitor.py telegram 6046286675 73 97 42\n\nBackground Execution\n\nStart the monitor as a background process so the agent responds immediately:\n\nimport subprocess\n\n# channel_id can be with or without platform prefix (both work)\ncmd = ['python3', 'skills/mrc-monitor/scripts/monitor.py',\n       platform, channel_id] + [str(t) for t in tokens]\nsubprocess.Popen(cmd, stdout=subprocess.DEVNULL, stderr=subprocess.DEVNULL)\n\nAgent Response\n\nAfter starting the monitor, respond immediately with:\n\n✅ Monitoring tokens: 73, 97, 42\nChecking every 15 seconds.\nI'll notify you here when they're ready! 🍕\n\nOne-Time Check\n\nFor \"check 73\" commands, perform a single Firebase query and respond with status without starting a background monitor.\n\nMonitor Behavior\n\nThe monitor script:\n\nPolls Firebase Firestore every 15 seconds\nChecks all monitored tokens in each poll\nSends \"🍕 Order X is ready!\" notification when a token's status is \"Ready\"\nRemoves notified tokens from the watch list\nExits automatically when all tokens are notified\nHandles errors gracefully with retries\nLogs all activity to skills/mrc-monitor/logs/monitor_YYYYMMDD_HHMMSS.log\nError Handling\n\nThe script automatically handles:\n\nNetwork timeouts (retries up to 5 times)\nHTTP errors (including rate limits)\nUnexpected errors (stops after 5 consecutive failures)\nSignal termination (SIGTERM, SIGINT)\n\nOn fatal errors, the script sends a notification before exiting.\n\nFirebase Details\nProject: kanteen-mrc-blr-24cfa\nCollection: orders\nDocument fields:\nstudentId (string): \"student-{token_number}\"\nstatus (string): \"Preparing\", \"Ready\", \"Completed\""
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/wysh3/mrc-monitor",
    "publisherUrl": "https://clawhub.ai/wysh3/mrc-monitor",
    "owner": "wysh3",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/mrc-monitor",
    "downloadUrl": "https://openagent3.xyz/downloads/mrc-monitor",
    "agentUrl": "https://openagent3.xyz/skills/mrc-monitor/agent",
    "manifestUrl": "https://openagent3.xyz/skills/mrc-monitor/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/mrc-monitor/agent.md"
  }
}