{
  "schemaVersion": "1.0",
  "item": {
    "slug": "discord-project-manager",
    "name": "Discord Project Manager",
    "source": "tencent",
    "type": "skill",
    "category": "通讯协作",
    "sourceUrl": "https://clawhub.ai/lemodigital/discord-project-manager",
    "canonicalUrl": "https://clawhub.ai/lemodigital/discord-project-manager",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/discord-project-manager",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=discord-project-manager",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "lib/__init__.py",
      "lib/config.py",
      "lib/discord_api.py",
      "lib/forum.py",
      "lib/permissions.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-23T16:43:11.935Z",
      "expiresAt": "2026-04-30T16:43:11.935Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=4claw-imageboard",
        "contentDisposition": "attachment; filename=\"4claw-imageboard-1.0.1.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/discord-project-manager"
    },
    "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/discord-project-manager",
    "agentPageUrl": "https://openagent3.xyz/skills/discord-project-manager/agent",
    "manifestUrl": "https://openagent3.xyz/skills/discord-project-manager/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/discord-project-manager/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": "Discord Project Manager",
        "body": "Automated Discord project collaboration for OpenClaw multi-agent teams. Create Forum Channels and threads, manage who can speak where, and control mention-only mode — all from the CLI."
      },
      {
        "title": "Prerequisites",
        "body": "OpenClaw with Discord channel configured\nDiscord bot with Manage Channels permission in the target guild\nPython 3.8+"
      },
      {
        "title": "Quick Start",
        "body": "SKILL_DIR=\"/path/to/discord-project-manager\"\n\n# 1. Initialize (first time only)\npython3 \"$SKILL_DIR/scripts/discord-pm.py\" config init\npython3 \"$SKILL_DIR/scripts/discord-pm.py\" registry init\npython3 \"$SKILL_DIR/scripts/discord-pm.py\" forum-channel set-default <forum_channel_id>\n\n# 2. Create a project thread\npython3 \"$SKILL_DIR/scripts/discord-pm.py\" thread create \\\n  --name \"my-feature\" \\\n  --owner agent-a \\\n  --participants \"agent-a,agent-b\"\n\nThis creates a thread in your default forum, gives agent-a free speech (owner), and sets agent-b to mention-only mode."
      },
      {
        "title": "Configuration",
        "body": "discord-pm.py config init                # Auto-detect guild ID from OpenClaw config\ndiscord-pm.py config get                 # Show current config\ndiscord-pm.py config set-guild <id>      # Set guild ID manually\ndiscord-pm.py config set-forum <id>      # Set default forum channel"
      },
      {
        "title": "Agent Registry",
        "body": "discord-pm.py registry init             # Auto-collect agent info from OpenClaw config\ndiscord-pm.py registry list             # List all registered agents"
      },
      {
        "title": "Forum Channels",
        "body": "# Create a new Forum Channel (uses Discord REST API directly)\ndiscord-pm.py forum-channel create <name> [--emoji <emoji>] [--description <text>]\n\n# Manage forum channels\ndiscord-pm.py forum-channel set-default <channel_id>\ndiscord-pm.py forum-channel add <channel_id> <name>    # Register existing channel\ndiscord-pm.py forum-channel remove <name>\ndiscord-pm.py forum-channel list"
      },
      {
        "title": "Threads",
        "body": "# Create thread (uses default forum unless --forum-channel specified)\ndiscord-pm.py thread create \\\n  --name <name> \\\n  --owner <agent> \\\n  --participants <agent1,agent2,...> \\\n  [--forum-channel <id>] \\\n  [--no-mention] \\\n  [--message <text>]\n\ndiscord-pm.py thread archive <thread_id>    # Remove all permissions\ndiscord-pm.py thread status <thread_id>     # Show permissions and participants"
      },
      {
        "title": "Permissions",
        "body": "discord-pm.py permissions add <thread_id> <agent1> [agent2...] [--no-mention]\ndiscord-pm.py permissions remove <thread_id> <agent1> [agent2...]\ndiscord-pm.py permissions mention-mode <thread_id> <on|off> <agents...|--all>"
      },
      {
        "title": "Project Registry",
        "body": "discord-pm.py project list [--active] [--archived] [--agent <name>]\ndiscord-pm.py project info <thread_id>\ndiscord-pm.py project describe <thread_id> <text>\ndiscord-pm.py project update <thread_id> --next-action <text>\n\nProjects are automatically registered when threads are created and updated when participants change or threads are archived. The --agent filter shows only projects where the agent is owner or participant, with role labels.\n\nBatch operations: add and remove accept multiple agent names. A single config patch is applied for all agents, so only one gateway reload happens.\n\nThe --all flag on mention-mode scans the live OpenClaw config to find every account that currently has access to the thread, then sets mention mode for all of them — including accounts not in the agent registry (e.g. manually configured bots)."
      },
      {
        "title": "3-Tier Project Structure",
        "body": "TierUse CaseExampleForum ChannelLarge project with sub-teams📦-product-launchThreadIndividual task or sub-projectapi-refactorDefault ChannelQuick tasks, no isolation needed#dev-ops"
      },
      {
        "title": "Permission Model",
        "body": "Owner: requireMention: false — speaks freely, drives the conversation\nParticipants: requireMention: true — only responds when @mentioned\nNon-participants: no channel access configured\n\nThis keeps threads focused: the owner leads, others contribute when asked."
      },
      {
        "title": "How It Works",
        "body": "Thread/Forum creation — threads via openclaw message CLI, forums via Discord REST API\nPermission management — patches OpenClaw config (channels.discord.accounts.<account>.guilds.<guild>.channels.<channel>)\nConfig reload — triggers SIGUSR1 graceful restart (2-5s). Falls back to openclaw gateway restart if needed."
      },
      {
        "title": "Data Files",
        "body": "data/\n├── config.json     # Skill config (guild ID, default forum)\n├── agents.json     # Agent registry (account IDs, user IDs, channels)\n└── projects.json   # Project registry (threads, owners, participants, nextAction)\n\nBoth auto-generated by config init and registry init. Excluded from git (user-specific data)."
      },
      {
        "title": "Security & Permissions",
        "body": "This skill requires access to your OpenClaw configuration:\n\nReads ~/.openclaw/openclaw.json to obtain the Discord bot token and agent account mappings\nWrites channel permission entries to the same config file (with file locking and atomic writes)\nTriggers SIGUSR1 for graceful config reload (falls back to openclaw gateway restart)\n\nThe bot token is used exclusively for Discord REST API calls (forum channel creation). It is never logged, stored elsewhere, or transmitted to third parties.\n\nRecommendations:\n\nBack up ~/.openclaw/openclaw.json before first use\nEnsure your Discord bot has only Manage Channels permission\nReview the source code if you have concerns about config access"
      },
      {
        "title": "Troubleshooting",
        "body": "ProblemCheckThread creation failsIs the default forum set? (forum-channel set-default)Mention mode not workingDoes the agent have mentionPatterns in OpenClaw config?Forum creation 403Does the bot have Manage Channels permission in the guild?Permission changes delayedConfig reload takes 2-5s. If still not working, run openclaw gateway restart"
      },
      {
        "title": "Source Structure",
        "body": "discord-project-manager/\n├── SKILL.md\n├── scripts/\n│   ├── discord-pm.py     # Unified CLI\n│   └── cli.sh            # Bash wrapper\n├── lib/\n│   ├── discord_api.py    # Discord API (CLI + REST)\n│   ├── config.py         # OpenClaw config operations\n│   ├── skill_config.py   # Skill-local config\n│   ├── registry.py       # Agent registry\n│   ├── thread.py         # Thread lifecycle\n│   ├── permissions.py    # Permission management\n│   ├── forum.py          # Forum channel management\n│   ├── projects.py       # Project registry\n│   └── validators.py     # Input validation\n└── data/                 # Auto-generated, git-ignored\n\nVersion: 2.2.1\nLast Updated: 2026-02-27"
      }
    ],
    "body": "Discord Project Manager\n\nAutomated Discord project collaboration for OpenClaw multi-agent teams. Create Forum Channels and threads, manage who can speak where, and control mention-only mode — all from the CLI.\n\nPrerequisites\nOpenClaw with Discord channel configured\nDiscord bot with Manage Channels permission in the target guild\nPython 3.8+\nQuick Start\nSKILL_DIR=\"/path/to/discord-project-manager\"\n\n# 1. Initialize (first time only)\npython3 \"$SKILL_DIR/scripts/discord-pm.py\" config init\npython3 \"$SKILL_DIR/scripts/discord-pm.py\" registry init\npython3 \"$SKILL_DIR/scripts/discord-pm.py\" forum-channel set-default <forum_channel_id>\n\n# 2. Create a project thread\npython3 \"$SKILL_DIR/scripts/discord-pm.py\" thread create \\\n  --name \"my-feature\" \\\n  --owner agent-a \\\n  --participants \"agent-a,agent-b\"\n\n\nThis creates a thread in your default forum, gives agent-a free speech (owner), and sets agent-b to mention-only mode.\n\nCommands\nConfiguration\ndiscord-pm.py config init                # Auto-detect guild ID from OpenClaw config\ndiscord-pm.py config get                 # Show current config\ndiscord-pm.py config set-guild <id>      # Set guild ID manually\ndiscord-pm.py config set-forum <id>      # Set default forum channel\n\nAgent Registry\ndiscord-pm.py registry init             # Auto-collect agent info from OpenClaw config\ndiscord-pm.py registry list             # List all registered agents\n\nForum Channels\n# Create a new Forum Channel (uses Discord REST API directly)\ndiscord-pm.py forum-channel create <name> [--emoji <emoji>] [--description <text>]\n\n# Manage forum channels\ndiscord-pm.py forum-channel set-default <channel_id>\ndiscord-pm.py forum-channel add <channel_id> <name>    # Register existing channel\ndiscord-pm.py forum-channel remove <name>\ndiscord-pm.py forum-channel list\n\nThreads\n# Create thread (uses default forum unless --forum-channel specified)\ndiscord-pm.py thread create \\\n  --name <name> \\\n  --owner <agent> \\\n  --participants <agent1,agent2,...> \\\n  [--forum-channel <id>] \\\n  [--no-mention] \\\n  [--message <text>]\n\ndiscord-pm.py thread archive <thread_id>    # Remove all permissions\ndiscord-pm.py thread status <thread_id>     # Show permissions and participants\n\nPermissions\ndiscord-pm.py permissions add <thread_id> <agent1> [agent2...] [--no-mention]\ndiscord-pm.py permissions remove <thread_id> <agent1> [agent2...]\ndiscord-pm.py permissions mention-mode <thread_id> <on|off> <agents...|--all>\n\nProject Registry\ndiscord-pm.py project list [--active] [--archived] [--agent <name>]\ndiscord-pm.py project info <thread_id>\ndiscord-pm.py project describe <thread_id> <text>\ndiscord-pm.py project update <thread_id> --next-action <text>\n\n\nProjects are automatically registered when threads are created and updated when participants change or threads are archived. The --agent filter shows only projects where the agent is owner or participant, with role labels.\n\nBatch operations: add and remove accept multiple agent names. A single config patch is applied for all agents, so only one gateway reload happens.\n\nThe --all flag on mention-mode scans the live OpenClaw config to find every account that currently has access to the thread, then sets mention mode for all of them — including accounts not in the agent registry (e.g. manually configured bots).\n\nArchitecture\n3-Tier Project Structure\nTier\tUse Case\tExample\nForum Channel\tLarge project with sub-teams\t📦-product-launch\nThread\tIndividual task or sub-project\tapi-refactor\nDefault Channel\tQuick tasks, no isolation needed\t#dev-ops\nPermission Model\nOwner: requireMention: false — speaks freely, drives the conversation\nParticipants: requireMention: true — only responds when @mentioned\nNon-participants: no channel access configured\n\nThis keeps threads focused: the owner leads, others contribute when asked.\n\nHow It Works\nThread/Forum creation — threads via openclaw message CLI, forums via Discord REST API\nPermission management — patches OpenClaw config (channels.discord.accounts.<account>.guilds.<guild>.channels.<channel>)\nConfig reload — triggers SIGUSR1 graceful restart (2-5s). Falls back to openclaw gateway restart if needed.\nData Files\ndata/\n├── config.json     # Skill config (guild ID, default forum)\n├── agents.json     # Agent registry (account IDs, user IDs, channels)\n└── projects.json   # Project registry (threads, owners, participants, nextAction)\n\n\nBoth auto-generated by config init and registry init. Excluded from git (user-specific data).\n\nSecurity & Permissions\n\nThis skill requires access to your OpenClaw configuration:\n\nReads ~/.openclaw/openclaw.json to obtain the Discord bot token and agent account mappings\nWrites channel permission entries to the same config file (with file locking and atomic writes)\nTriggers SIGUSR1 for graceful config reload (falls back to openclaw gateway restart)\n\nThe bot token is used exclusively for Discord REST API calls (forum channel creation). It is never logged, stored elsewhere, or transmitted to third parties.\n\nRecommendations:\n\nBack up ~/.openclaw/openclaw.json before first use\nEnsure your Discord bot has only Manage Channels permission\nReview the source code if you have concerns about config access\nTroubleshooting\nProblem\tCheck\nThread creation fails\tIs the default forum set? (forum-channel set-default)\nMention mode not working\tDoes the agent have mentionPatterns in OpenClaw config?\nForum creation 403\tDoes the bot have Manage Channels permission in the guild?\nPermission changes delayed\tConfig reload takes 2-5s. If still not working, run openclaw gateway restart\nSource Structure\ndiscord-project-manager/\n├── SKILL.md\n├── scripts/\n│   ├── discord-pm.py     # Unified CLI\n│   └── cli.sh            # Bash wrapper\n├── lib/\n│   ├── discord_api.py    # Discord API (CLI + REST)\n│   ├── config.py         # OpenClaw config operations\n│   ├── skill_config.py   # Skill-local config\n│   ├── registry.py       # Agent registry\n│   ├── thread.py         # Thread lifecycle\n│   ├── permissions.py    # Permission management\n│   ├── forum.py          # Forum channel management\n│   ├── projects.py       # Project registry\n│   └── validators.py     # Input validation\n└── data/                 # Auto-generated, git-ignored\n\n\nVersion: 2.2.1 Last Updated: 2026-02-27"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/lemodigital/discord-project-manager",
    "publisherUrl": "https://clawhub.ai/lemodigital/discord-project-manager",
    "owner": "lemodigital",
    "version": "2.1.6",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/discord-project-manager",
    "downloadUrl": "https://openagent3.xyz/downloads/discord-project-manager",
    "agentUrl": "https://openagent3.xyz/skills/discord-project-manager/agent",
    "manifestUrl": "https://openagent3.xyz/skills/discord-project-manager/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/discord-project-manager/agent.md"
  }
}