agentleFS
Upload-PostUpload-Post/upload-post-plugin/skills/manage-comments/SKILL.md

manage-comments

Skill1 starsChanged 41 days agoMITView on GitHub

Read, reply to and moderate comments on published posts across Instagram, Facebook, YouTube, LinkedIn, TikTok, X, Threads and Bluesky, and reply to Google Business reviews. Use when the user asks about comments, replies, engagement in the comment section, moderating or deleting a comment, or answering a Google Business review.

The file

We split this skill into the rules it gives an agent

2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈1

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 1

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    If the user does not have the id, get_media lists recent posts pulled from the connected account, and get_history lists what was published …

    line 18
  2. Distinctive:

    Do not paste the raw list back.

    line 24

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Work the comment section

Replying is where reach turns into relationships. This skill covers the read → triage → reply loop on published content. For automated keyword-triggered DMs, use /upload-post:autodm-setup instead.

1. Find the post

Comment tools identify a post by either postId or postUrl. Platform quirks:

  • YouTube: postId is the videoId.
  • LinkedIn: postId is the post urn.
  • TikTok: postId is the video id and is always required — postUrl is not accepted. TikTok comment tools also need the comments capability on the profile's TikTok account (check the capabilities array in list_users). It is granted at connection time, so an account connected before that has to reconnect TikTok first; say so plainly rather than retrying.

If the user does not have the id, get_media lists recent posts pulled from the connected account, and get_history lists what was published through Upload-Post.

2. Read

get_post_comments with user, platform (instagram / facebook / youtube / linkedin / tiktok / x / threads / bluesky; defaults to instagram), and the post identifier. limit caps at 50 — Meta's and TikTok's ceiling, not ours — and after pages through the rest. Add commentId to read the replies under one comment instead of the top-level comments.

Do not paste the raw list back. Triage it:

  • Questions — deserve an answer, highest priority.
  • Buying signals — "how much", "link?", "where do I get this". These are leads; consider a private reply.
  • Praise — a short human reply, or nothing.
  • Spam / abuse — candidates for deletion.

3. Reply

Three different tools, and picking the wrong one is the main failure mode here:

IntentToolNotes
Public reply under an existing commentpublic_reply_to_commentuser, commentId, message. Instagram only.
Private DM to the person who commentedreply_to_commentuser, commentId, message. Instagram only, and only within Instagram's 7-day reply window — after that the API rejects it.
Top-level comment, or any reply on Facebook / YouTube / LinkedIn / TikTok / X / Threads / Blueskycreate_commentProvide exactly ONE of commentId (reply), postId, or postUrl (top-level). Instagram accepts replies only, so an Instagram call must pass commentId. TikTok always needs postId (the video id), plus commentId on top of it to reply inside a thread.

Draft replies in the user's own voice — match the tone of their existing captions rather than defaulting to brand-manager English. Show the drafts and get approval before sending a batch; these are public and irreversible.

4. Moderate

Reversible first: comment_action takes user, platform, action, and usually commentId (+ postId where noted). Every action has an inverse, so prefer it over deleting:

  • TikTok: hide/unhide, pin/unpin (with postId), like/unlike (no postId).
  • Facebook: hide/unhide, like/unlike, edit (with message).
  • Instagram: hide/unhide a comment, or enable_comments/disable_comments on a post (postId, no commentId).
  • YouTube: hide/unhide/hold (with postId; banAuthor only with hide).
  • Threads: hide/unhide, approve/ignore.

Permanent: delete_comment takes user, platform (instagram / facebook / youtube / linkedin / tiktok / x / bluesky — Threads cannot delete comments), commentId, and on LinkedIn also postId (the post urn). It is destructive and cannot be undone — always confirm the specific comment text with the user first, never delete on a general instruction like "clean up the spam" without listing what you are about to remove.

Google Business reviews

Separate surface, same loop:

  • get_google_business_locations → pick the location id.
  • get_google_business_reviews → read them. Keep the review_name from each result (the full accounts/.../locations/.../reviews/{id} path) — you need it to reply.
  • reply_to_google_business_review → user, comment, and either that review_name or review_id + location_id. It creates or overwrites the existing owner reply, so check whether one is already there before sending.

Review replies are public and heavily weighted by local search. For anything below 3 stars, draft a reply that acknowledges the specific complaint, states what changes, and moves the conversation off-platform — then have the user approve it before sending.

Handing off

  • Recurring keyword → DM automation instead of manual replies → /upload-post:autodm-setup.
  • Comment volume worth measuring → /upload-post:analyze-performance.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.