init-feedback
Set up interactive feedback channels for LimaCharlie ext-feedback. Subscribes to the extension, configures channels (Web, Slack, Telegram, Microsoft Teams, Email), creates required Tailored Outputs and secrets, and optionally creates a sample D&R rule that requests human approval before containment. Usage - /init-feedback <org_name>
What this skill does
# Initialize Feedback Channels
Set up interactive feedback channels for human-in-the-loop workflows in LimaCharlie. This skill subscribes to the ext-feedback extension, configures one or more channels, and optionally creates a sample D&R rule demonstrating approval-gated containment.
---
## LimaCharlie Integration
> **Prerequisites**: Run `/init-lc` to initialize LimaCharlie context.
### LimaCharlie CLI Access
All LimaCharlie operations use the `limacharlie` CLI directly:
```bash
limacharlie <noun> <verb> --oid <oid> --output yaml [flags]
```
For command help and discovery: `limacharlie <command> --ai-help`
### Critical Rules
| Rule | Wrong | Right |
|------|-------|-------|
| **CLI Access** | Call MCP tools or spawn api-executor | Use `Bash("limacharlie ...")` directly |
| **Output Format** | `--output json` | `--output yaml` (more token-efficient) |
| **Filter Output** | Pipe to jq/yq | Use `--filter JMESPATH` to select fields |
| **OID** | Use org name | Use UUID (call `limacharlie org list` if needed) |
---
## What Gets Created
| Component | Type | Purpose |
|-----------|------|---------|
| ext-feedback subscription | Extension | Enables feedback requests for the org |
| Channel(s) | Extension config | One or more feedback channels (web, slack, telegram, ms_teams, email) |
| Tailored Output(s) | Output | Credentials for non-web channels (Slack token, Telegram bot, etc.) |
| Sample D&R rule (optional) | dr-general | Demonstrates approval-gated containment |
## Channel Types
| Type | Requirements | In-Chat Buttons |
|------|-------------|:---------------:|
| `web` | None (built-in UI, returns a shareable URL) | N/A |
| `slack` | Slack App with Interactivity enabled, Bot User OAuth Token, channel ID | Yes |
| `telegram` | Telegram bot (via @BotFather), bot token, chat ID | Yes |
| `ms_teams` | Power Automate Workflow webhook URL | No (links to web UI) |
| `email` | SMTP server, credentials, recipient address | No (links to web UI) |
## Procedure
### Step 1: Resolve the Organization
Parse the org name from the skill argument. Resolve it to an OID:
```bash
limacharlie org list --output yaml
```
Find the org matching the name provided by the user and extract its `oid` UUID. If not found, ask the user which org to use.
### Step 2: Subscribe to ext-feedback
Check if ext-feedback is already subscribed:
```bash
limacharlie extension list --oid <oid> --output yaml
```
Look for `ext-feedback` in the output. If missing, subscribe:
```bash
limacharlie extension subscribe --name ext-feedback --oid <oid>
```
On subscription, the extension automatically creates a webhook adapter and a D&R rule for routing feedback responses. No manual setup is needed for these.
### Step 3: Check Existing Channels
List any channels already configured:
```bash
limacharlie feedback channel list --oid <oid> --output yaml
```
Show the user what already exists (if anything) before adding new channels.
### Step 4: Ask Which Channels to Configure
Ask the user which channel types they want to set up. Present the options:
1. **Web** (simplest — built-in UI, no credentials needed, returns shareable URLs)
2. **Slack** (interactive buttons in Slack)
3. **Telegram** (interactive buttons in Telegram)
4. **Microsoft Teams** (Adaptive Card with link to web UI)
5. **Email** (HTML email with link to web UI)
The user can choose one or more. Always recommend starting with **web** since it requires no external setup.
### Step 5: Configure Each Channel
For each selected channel type, follow the appropriate setup below.
#### Web Channel
No credentials needed. Just add the channel:
```bash
limacharlie feedback channel add --name web --type web --oid <oid> --output yaml
```
#### Slack Channel
Ask the user for:
1. **Slack Bot User OAuth Token** — starts with `xoxb-`. The bot must:
- Have a Slack App with **Interactivity & Shortcuts** enabled
- The Request URL must be set to: `https://feedback-system.limacharlie.io/callback/slack`
- Have the `chat:write` scope
- Be invited to the target channel
2. **Slack Channel** — the channel name or ID (e.g., `#security-ops` or `C0123456789`)
3. **Channel name** — a short name for this channel in LimaCharlie (e.g., `slack-ops`)
4. **Output name** — name for the Tailored Output (e.g., `feedback-slack`). If the user already has a suitable Slack Tailored Output, they can reuse it.
Create a YAML config file and create the Tailored Output:
```bash
cat > /tmp/feedback-slack-output.yaml << 'EOF'
slack_api_token: "<SLACK_BOT_TOKEN>"
slack_channel: "<SLACK_CHANNEL>"
EOF
limacharlie output create \
--name <output_name> \
--module slack \
--type tailored \
--input-file /tmp/feedback-slack-output.yaml \
--oid <oid> --output yaml
```
Add the channel:
```bash
limacharlie feedback channel add --name <channel_name> --type slack --output-name <output_name> --oid <oid> --output yaml
```
#### Telegram Channel
Ask the user for:
1. **Telegram Bot Token** — from @BotFather (e.g., `123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11`). The bot must be added to the target group/channel.
2. **Chat ID** — the group or channel ID (typically a negative number like `-1001234567890`). The user can find this by sending a message to the group after adding the bot, then checking `https://api.telegram.org/bot<TOKEN>/getUpdates` for the `chat.id` field.
3. **Channel name** — a short name (e.g., `telegram-ops`)
4. **Output name** — name for the Tailored Output (e.g., `feedback-telegram`)
Create a YAML config file and create the Tailored Output:
```bash
cat > /tmp/feedback-telegram-output.yaml << 'EOF'
bot_token: "<BOT_TOKEN>"
chat_id: "<CHAT_ID>"
EOF
limacharlie output create \
--name <output_name> \
--module telegram \
--type tailored \
--input-file /tmp/feedback-telegram-output.yaml \
--oid <oid> --output yaml
```
Add the channel:
```bash
limacharlie feedback channel add --name <channel_name> --type telegram --output-name <output_name> --oid <oid> --output yaml
```
**Note**: The extension automatically registers a Telegram webhook with the bot. If the bot is used for other webhook integrations, this will override the existing webhook. Recommend a dedicated bot for ext-feedback.
#### Microsoft Teams Channel
Ask the user for:
1. **Webhook URL** — from a Power Automate Workflow. To create one:
- In Teams, navigate to the target channel
- Click **...** > **Workflows**
- Select the **Send webhook alerts to a channel** template
- Name the workflow, authenticate, and copy the webhook URL
2. **Channel name** — a short name (e.g., `teams-ops`)
3. **Output name** — name for the Tailored Output (e.g., `feedback-teams`)
Create a YAML config file and create the Tailored Output:
```bash
cat > /tmp/feedback-teams-output.yaml << 'EOF'
webhook_url: "<WEBHOOK_URL>"
EOF
limacharlie output create \
--name <output_name> \
--module ms_teams \
--type tailored \
--input-file /tmp/feedback-teams-output.yaml \
--oid <oid> --output yaml
```
Add the channel:
```bash
limacharlie feedback channel add --name <channel_name> --type ms_teams --output-name <output_name> --oid <oid> --output yaml
```
#### Email Channel
Ask the user for:
1. **SMTP Host** — server address, optionally with port (e.g., `smtp.example.com:587`). Defaults to port 587.
2. **Recipient Email** — where feedback emails are sent (e.g., `[email protected]`)
3. **From Email** — sender address (e.g., `[email protected]`)
4. **Username** (optional) — SMTP authentication username (`username` field)
5. **Password** (optional) — SMTP authentication password
6. **Channel name** — a short name (e.g., `email-ops`)
7. **Output name** — name for the Tailored Output (e.g., `feedback-email`)
Create a YAML config file and create the Tailored Output (adjust fields based on whether auth is needed):
```bash
cat > /tmp/feedback-email-output.yaml << 'EOF'
dest_host: "<SMTP_HOST>"
dest_email: "<RECIPIENT_EMAIL>"
from_email: "<FROM_EMAIL>"
username: "<USERNAME>"
password: "<Related in Productivity
gitea-workflow
IncludedOrchestrate agile development workflows for Gitea repositories using the tea CLI. Use when working with Gitea-hosted repos and asking to 'run the workflow', 'continue working', 'what's next', 'complete the task cycle', 'start my day', 'end the sprint', 'implement the next task', or wanting guided step-by-step development assistance. Keywords: workflow, orchestrate, agile, task cycle, sprint, daily, implement, review, PR, standup, retrospective, gitea, tea.
microsoft-graph-gateway
IncludedRoute Microsoft Graph work in this workspace. Use when users want to read or write Outlook mail, calendar events, contacts, OneDrive or SharePoint files, Teams, Planner, To Do, users, groups, directory data, or arbitrary Microsoft Graph endpoints from VS Code. Prefer WorkIQ for common read scenarios. Use Microsoft Graph for write actions and gap-read scenarios that need exact Graph properties, filters, permissions, or endpoints.
copilotkit
IncludedUse when building with CopilotKit — setup, development, integrations, debugging, upgrading, or contributing. Routes to the appropriate specialized skill based on the task.
wordly-wisdom
IncludedProvides calibrated decision analysis using Charlie Munger-style multiple mental models, inversion, incentive mapping, circle-of-competence checks, misjudgment audits, second-order effects, and forecast updates. Use when the user asks for an oracle take, a hard call, a decision memo, a premortem, an outside view, a red-team, a sanity-check, what am I missing, think this through, or wants a strategy, hire, investment, plan, product, partnership, or major life choice analysed. Avoid for simple factual lookups or time-sensitive legal, medical, or market questions without fresh evidence.
swain-session
IncludedSession management and project status dashboard. Owns the full session lifecycle (start/work/close/resume), focus lane, bookmarks, worktree detection, and tab naming. Also serves as the project status dashboard — shows active epics, progress, actionable next steps, blocked items, tasks, GitHub issues, and recommendations. Worktree creation is deferred to swain-do task dispatch (SPEC-195). Triggers on: 'session', 'status', 'what's next', 'dashboard', 'overview', 'where are we', 'what should I work on', 'show me priorities', 'bookmark', 'focus on', 'session info'.
gandi
IncludedComprehensive Gandi domain registrar integration for domain and DNS management. Register and manage domains, create/update/delete DNS records (A, AAAA, CNAME, MX, TXT, SRV, and more), configure email forwarding and aliases, check SSL certificate status, create DNS snapshots for safe rollback, bulk update zone files, and monitor domain expiration. Supports multi-domain management, zone file import/export, and automated DNS backups. Includes both read-only and destructive operations with safety controls.