yaas-reactions

Processes emoji-triggered Slack actions for replies, drafts, saves, and quest adoption.

4|1|Updated Jul 22, 2026
One-click install
npx skills add https://github.com/circlefin/sidequestor --skill yaas-reactions-circlefin
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: yaas-reactions
Source: https://github.com/circlefin/sidequestor/tree/main/src/sidequestor/runtime/yaas-triage/skills/yaas-reactions
Command: npx skills add https://github.com/circlefin/sidequestor --skill yaas-reactions-circlefin

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Slack users flag messages with emoji reactions expecting follow-up work, but those signals are easy to miss or handle inconsistently. This Skill turns pending emoji reactions into deterministic actions — replies, drafts, silent context saves, or quest adoption — with a visible lifecycle so nothing is lost or double-processed. ## Core Features & Use Cases - Reaction role resolution: Reads the configured emoji mapping (process, draft, save, adopt, loading, done) from reaction_config.py so custom .env mappings are always respected. - Three-state lifecycle: Advances each actioned message from trigger to loading to done via react-lifecycle.py advance, guaranteeing only one lifecycle emoji is ever visible. - Four action behaviors: process replies in-thread, draft creates a compose-box draft, save silently archives context into state/context-memory/, and adopt attaches the thread to its owning quest's watch list. - Ledger-based acknowledgment: Every (emoji, msg_ts) pair is acked as handled, nothing_to_do, or blocked so unacked items resurface on the next triage tick. - Use Case: A teammate reacts with the process emoji on a customer question thread; the Skill reads the thread, researches an answer, posts the reply through the sanctioned send surface, swaps the emoji to done, and records the timestamp so it is never re-processed. ## Quick Start When dispatched with the reactions target, read state/triage/pending_reactions.json and handle each pending emoji reaction according to its configured role.

Frequently Asked Questions about yaas-reactions

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I process Slack emoji reactions automatically?▼

Read state/triage/pending_reactions.json for pending (emoji, msg_ts) pairs, resolve each emoji's role via reaction_config.py, then act: reply, draft, save, or adopt. Ack every pair in the ledger so triage clears the file.

How does the Slack reaction lifecycle work?▼

Each actioned message moves through three states: the user's trigger emoji, a loading emoji when work starts, and a done emoji on completion. Always use react-lifecycle.py advance, which swaps emojis atomically and logs each transition.

Can I customize which emoji triggers each action?▼

Yes. Run reaction_config.py to get the resolved JSON mapping of process, draft, save, adopt, loading, and done roles. The .env file can override every role, so never assume hardcoded defaults.

What happens if a Slack reply fails in an externally shared channel?▼

If sending fails with mcp_externally_shared_channel_restricted, retry as a draft in the target thread, then DM the user only the draft permalink. If both fail, leave the message at the loading emoji and ack it blocked.

When should a reaction spawn a new quest?▼

Only when the thread needs ongoing tracking beyond one reply, such as a promised follow-up or multi-step review cycle. One-shot answers and save actions should never create quests.