- All gsdDir/gsdRoot/gsdHome → sfDir/sfRootDir/sfHome - GSDWorkspace* → SFWorkspace* interfaces - bootstrapGsdProject → bootstrapProject - runGSDDoctor → runSFDoctor - GsdClient → SfClient, gsd-client.ts → sf-client.ts - .gsd/ → .sf/ in all tests, docs, docker, native, vscode - Auto-migration: headless detects .gsd/ → renames to .sf/ - Deleted gsd-phase-state.ts backward-compat re-export - Renamed bin/gsd-from-source → bin/sf-from-source - Updated mintlify docs, github workflows, docker configs
84 lines
2.7 KiB
Text
84 lines
2.7 KiB
Text
---
|
||
title: "Remote questions"
|
||
description: "Discord, Slack, and Telegram integration for headless auto-mode."
|
||
---
|
||
|
||
Remote questions allow SF to ask for user input via Slack, Discord, or Telegram when running in headless auto-mode. When SF encounters a decision point, it posts the question to your configured channel and polls for a response.
|
||
|
||
## Setup
|
||
|
||
<Tabs>
|
||
<Tab title="Discord">
|
||
```
|
||
/sf remote discord
|
||
```
|
||
|
||
The setup wizard validates your bot token, picks a server and channel, sends a test message, and saves the config.
|
||
|
||
**Bot requirements:**
|
||
- A Discord bot token from the [Developer Portal](https://discord.com/developers/applications)
|
||
- Permissions: Send Messages, Read Message History, Add Reactions, View Channel
|
||
</Tab>
|
||
<Tab title="Slack">
|
||
```
|
||
/sf remote slack
|
||
```
|
||
|
||
The setup wizard validates your bot token, picks a channel, sends a test message, and saves the config.
|
||
|
||
**Bot requirements:**
|
||
- A Slack bot token (`xoxb-...`) from [Slack API](https://api.slack.com/apps)
|
||
- Scopes: `chat:write`, `reactions:read`, `reactions:write`, `channels:read`, `groups:read`, `channels:history`, `groups:history`
|
||
</Tab>
|
||
<Tab title="Telegram">
|
||
```
|
||
/sf remote telegram
|
||
```
|
||
|
||
The setup wizard validates your bot token, prompts for a chat ID, sends a test message, and saves the config.
|
||
|
||
**Bot requirements:**
|
||
- A bot token from [@BotFather](https://t.me/BotFather)
|
||
- Bot must be added to the target group chat
|
||
</Tab>
|
||
</Tabs>
|
||
|
||
## Configuration
|
||
|
||
```yaml
|
||
remote_questions:
|
||
channel: discord
|
||
channel_id: "1234567890123456789"
|
||
timeout_minutes: 5
|
||
poll_interval_seconds: 5
|
||
```
|
||
|
||
## How it works
|
||
|
||
1. SF encounters a decision point during auto-mode
|
||
2. The question is posted to your channel as a rich embed (Discord) or Block Kit message (Slack)
|
||
3. SF polls for a response at the configured interval
|
||
4. You respond by reacting with a number emoji or replying with text
|
||
5. SF picks up the response and continues
|
||
6. A check reaction confirms receipt
|
||
|
||
### Response formats
|
||
|
||
**Single question:** React with a number emoji (1️⃣-5️⃣) or reply with a number.
|
||
|
||
**Multiple questions:** Reply with semicolons (`1;2;custom text`) or one answer per line.
|
||
|
||
### Timeouts
|
||
|
||
If no response within `timeout_minutes`, the LLM makes a conservative default choice or pauses auto-mode.
|
||
|
||
## 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 and last prompt status |
|
||
| `/sf remote disconnect` | Remove configuration |
|