agentleFS
uplikauplika/uplika-plugin/skills/automations/SKILL.md

automations

Skill3 starsChanged 34 days agoMITView on GitHub

Set up comment-to-DM, keyword DM, follow gate and public-reply automations from templates; validate, confirm, then enable.

4 other projects use a version of this.

Adopted by

Most recently taken up by

The file

We split this skill into the rules it gives an agent

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

  • 0

    Common

    Most of the 4 edited versions we read keep these.

  • 0

    Distinctive

    This author's own choices. Worth a look.

  • 2

    Very specific

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

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

    If a call answers workspace_required, the account has more than one workspace: show the names it lists, ask which one, and pass that …

    line 16
  2. Very specific:

    Call list_automation_templates and pick with the person.

    line 19

“Common” is measured: kept by at least 6 in 10 of the 4 edited versions of this file we could read. “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

Automations

Comment-to-DM, keyword DMs, follow gates, file or link delivery, public comment replies, story replies, Naver neighbor comments. Automations act on real people without anyone watching, so the person approves before one goes live.

How the platforms work (say this when it matters)

A business account cannot start a DM. On Instagram and Facebook the only automatic door is a private reply to a comment, one per comment (faq:private-reply-once); once the person answers, the messaging window opens (faq:dm-24h-window). Threads has no DMs at all (faq:threads-no-dm), so Threads automations reply in public. Ask get_help for the details instead of explaining from memory.

Procedure

If a call answers workspace_required, the account has more than one workspace: show the names it lists, ask which one, and pass that workspaceId on every later call in this session.

  1. Find the account with list_accounts (only accounts that hold the messaging permission can run DM automations).
  2. Call list_automation_templates and pick with the person. Common ones: template:comment_to_dm (comment, then a private reply with a button, then the link or file), template:keyword_dm, template:comment_public_reply (public replies, fixed or AI-written), template:default_reply, template:story_reply_dm, template:neighbor_post_comment (Naver Blog; see the naver-engage skill).
  3. Which post: an existing post (id or link), any, or next (the next post on that account). A post that is only scheduled is not live yet: create the automation after it goes out, with the published post id. Attaching through the publish call's automation argument only works for posts that go out now.
  4. Create a draft: create_comment_to_dm for the common case, create_automation with the template's params for the rest. Both create drafts; nothing goes out yet. Write the messages in the person's voice (~/.uplika/<workspace-slug>/voice.md if it exists; if not, offer to create it with voice-profile). A file to deliver (a guide, a PDF) goes as one link button in deliver.links: its public https link, or the publicUrl of an upload. Attach the file itself (deliver.fileUrl or deliver.mediaId) only when the person asks for it to arrive as a file in the chat, and then do not also link the same file.
  5. For a flow document you edited yourself, run validate_automation and fix every problem it lists.
  6. Show the person the trigger, every message, buttons, links and the follow rule. Turn it on with enable_automation only after they approve: this is the moment messages start going to real people.
  7. Later: list_automations to see what is live, update_automation to change messages (read the version first), list_automation_runs to see what happened to each comment.

When it refuses or does not fire

  • reconsent_required, feature_in_review: hand over to the troubleshoot skill.
  • next_post_taken, automation_catch_all_taken: only one automation per account may wait for the next post, and only one catch-all; the error names the live one. Ask which to keep.
  • Nothing happened after a comment: read list_automation_runs (statuses like blocked_window, blocked_opt_out, failed_channel) and faq:automation-not-firing.

Tools

  • list_accounts: the account to run on
  • list_automation_templates: templates and their params
  • create_comment_to_dm: draft the common comment-to-DM flow
  • create_automation: draft any other template
  • validate_automation: check a flow document before saving
  • enable_automation: go live, only after approval
  • update_automation: edit messages or turn on and off
  • list_automations: what exists and what is live
  • list_automation_runs: what happened on each run
  • get_help: platform rules and error answers

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.