Final rebrand: rename remaining Rust source file to complete the gsd → forge transition. All parser references already use forge_parser after earlier commits. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2.8 KiB
2.8 KiB
Remote Questions
Remote questions let SF ask for your input via Slack, Discord, or Telegram when running in headless auto mode. When SF needs a decision, it posts the question to your configured channel and polls for a response.
Setup
Discord
/sf remote discord
The wizard prompts for your bot token, validates it, lets you pick a server and channel, sends a test message, and saves the config.
Bot requirements:
- A bot application with a token from the Discord Developer Portal
- Bot invited to the server with: Send Messages, Read Message History, Add Reactions, View Channel
DISCORD_BOT_TOKENenvironment variable set
Slack
/sf remote slack
Bot requirements:
- A Slack app with a bot token (
xoxb-...) from Slack API - Bot invited to the target channel
- Scopes:
chat:write,reactions:read,reactions:write,channels:read,groups:read,channels:history,groups:history
Telegram
/sf remote telegram
Bot requirements:
- A bot token from @BotFather
- Bot added to the target group chat
TELEGRAM_BOT_TOKENenvironment variable set
Configuration
remote_questions:
channel: discord # or slack or telegram
channel_id: "1234567890123456789"
timeout_minutes: 5 # 1-30, default 5
poll_interval_seconds: 5 # 2-30, default 5
How It Works
- SF encounters a decision point during auto mode
- The question is posted to your channel as a rich message
- SF polls for a response at the configured interval
- You respond by:
- Reacting with a number emoji (1️⃣, 2️⃣, etc.) for single-question prompts
- Replying with a number, comma-separated numbers, or free text
- SF picks up the response and continues
- A ✅ reaction confirms receipt
Response Formats
Single question: React with a number emoji, reply with a number, or reply with free text.
Multiple questions: Reply with semicolons (1;2;custom text) or newlines (one answer per line).
Timeouts
If no response arrives within timeout_minutes, SF continues with a timeout result — typically making a conservative default choice.
Commands
| Command | Description |
|---|---|
/sf remote |
Show menu and current status |
/sf remote slack |
Set up Slack |
/sf remote discord |
Set up Discord |
/sf remote telegram |
Set up Telegram |
/sf remote status |
Show current config |
/sf remote disconnect |
Remove configuration |
Troubleshooting
| Problem | Fix |
|---|---|
| "Remote auth failed" | Verify bot token is correct and not expired |
| "Could not send to channel" | Check bot has Send Messages permission; invite bot to channel |
| No response detected | Make sure you're replying to the prompt message, not posting a new one |