From waggle
Guides initial setup of the waggle plugin — detects or configures MCP connections and runs provider-specific database initialization. Use this skill whenever the user wants to set up, initialize, or configure waggle for the first time, or connect a new data source provider. Triggers on: "setup waggle", "initialize task management", "configure notion tasks", "configure data source", "get started with waggle", "first-time setup", "connect provider".
npx claudepluginhub kazukinagata/waggle --plugin waggleThis skill uses the workspace's default tool permissions.
You are guiding the user through the initial setup of the waggle plugin.
Guides Next.js Cache Components and Partial Prerendering (PPR) with cacheComponents enabled. Implements 'use cache', cacheLife(), cacheTag(), revalidateTag(), static/dynamic optimization, and cache debugging.
Guides building MCP servers enabling LLMs to interact with external services via tools. Covers best practices, TypeScript/Node (MCP SDK), Python (FastMCP).
Generates original PNG/PDF visual art via design philosophy manifestos for posters, graphics, and static designs on user request.
You are guiding the user through the initial setup of the waggle plugin.
Inspect available MCP tools to detect any already-configured providers:
notion-* tools present → Notion MCP is already configuredUse AskUserQuestion to confirm:
"I detected an existing [provider] MCP connection. Would you like to set up waggle using [provider]?"
If yes, check if the corresponding provider plugin is installed. This skill cannot delegate to detecting-provider because it runs before a provider exists (detecting-provider would error with "No waggle provider plugin found" and stop the setup flow).
First, decide which discovery source to inspect by detecting Cowork via the same multi-signal OR used by detecting-provider — Cowork iff any of:
<application_details> block stating "Claude is powering Cowork mode")mcp__cowork__* or mcp__cowork-onboarding__* is availableecho "$CLAUDE_CODE_IS_COWORK" returns "1" (legacy hint; absence is not evidence against Cowork because Bash subshells in Cowork are sandboxed)Then branch:
<available_skills> for {provider}-provider~/.claude/plugins/installed_plugins.json for waggle-{provider}@*If not installed → error:
"The waggle-{provider} provider plugin is not installed. Install it first, then run setup again."
If installed, skip to Step 3 with that provider.
Use AskUserQuestion to ask which one to use:
"I detected multiple data source MCPs: [list providers]. Which one should I set up waggle for?"
Then check if the corresponding provider plugin is installed (same discovery method as above). If not installed → error with install instructions. If installed, skip to Step 3 with the selected provider.
Continue to Step 2 to guide the user through MCP setup.
Use AskUserQuestion to ask which data source the user wants to use:
"Which data source would you like to use for waggle?
- SQLite — instant local setup, zero external dependencies
- Notion — team collaboration via Notion workspace
- Turso — remote SQLite for multi-agent sync (requires Turso account)"
Then guide MCP setup based on the environment:
~/.claude/settings.json exists or CLAUDE_PLUGIN_ROOT is setAdd the following to ~/.claude/settings.json under "mcpServers":
Notion:
"notion": {
"type": "http",
"url": "https://mcp.notion.com/mcp"
}
After adding, authenticate by visiting https://mcp.notion.com/mcp in a browser and following the OAuth flow. Then restart Claude Code and run the setup skill again.
Notion:
Open Claude Desktop settings → MCP Servers → Add Server → Enter https://mcp.notion.com/mcp.
Authenticate with your Notion account when prompted. Then run the setup skill again.
SQLite requires no external MCP server. Proceed directly to Step 3.
The provider plugin's setup skill handles all database creation and configuration.
If the provider plugin is installed, instruct the user:
"Run 'setup {provider}' to initialize the {provider} provider."
The provider plugin's {provider}-setup skill is user-invocable and handles everything:
Configure additional sources for the message intake skill. This step runs for all environments.
Use AskUserQuestion (multiSelect) to ask:
"The message intake skill reads from Slack/Teams/Discord by default. Would you like to also ingest from additional sources?"
- "Additional messaging tools (e.g., Google Chat, Discord)"
- "Spreadsheet to scan for new tasks"
- "Other task management system (e.g., Jira, Linear)"
- "Custom processing step (free-text)"
If the user selects none or says "skip", proceed to Step 4.
For each selected option, ask follow-up questions using AskUserQuestion:
Compose the answers into natural language instructions that the ingesting-messages skill will follow at runtime.
Example:
# Custom Intake Sources
## Google Chat
After standard messaging intake, check Google Chat DMs for the past 24 hours using google-chat MCP tools.
Create tasks from actionable messages using the same classification rules.
## Sprint Tracker Spreadsheet
Scan the "Sprint Tracker" Google Sheet (https://docs.google.com/...) for rows added in the past 24 hours.
Create each new row as a Backlog task with the row contents as the description.
Determine the environment (reuse execution_environment from detecting-provider):
Write the instructions to ~/.waggle/intake-prompt.md:
Confirm to user:
"Custom intake sources saved to
~/.waggle/intake-prompt.md. The ingesting-messages skill will read this file each time it runs. You can edit the file directly to update your configuration."
Since Cowork has an ephemeral filesystem, output the instructions as a block the user must paste into their Global Instructions:
"Cowork does not have a persistent filesystem. Please add the following to your Global Instructions so it's available in every session:"
<waggle-custom-intake> {composed instructions} </waggle-custom-intake>
Collect business-logic rules for how new tasks should be created — for example, tag naming conventions, tag assignment per category, default priority rules, or how Acceptance Criteria should be phrased. These rules are applied by managing-tasks, ingesting-messages, and planning-tasks whenever they create or plan a task.
This is independent of Step 3.5 (custom intake sources). A user may configure one, both, or neither.
Use AskUserQuestion:
"Do you want to define project-specific rules for how waggle creates tasks? Examples: required tags, tag operation rules, default priorities, AC phrasing style. You can skip this and configure it later by editing
~/.waggle/task-creation-prompt.md."
If the user skips, proceed to Step 4.
Ask follow-up questions via AskUserQuestion to capture:
Compose the answers into natural language instructions.
Example:
# Custom Task-Creation Rules
## Tags
- All tasks in the `frontend/` directory must include the `frontend` tag.
- Security-related tasks (mentioning CVE, vulnerability, auth bypass) must include `security`.
## Priority
- Tasks mentioning production incidents or customer escalations default to Urgent.
- Tasks blocked on external vendors default to Low.
## Acceptance Criteria style
- Use Given/When/Then format for all user-facing feature tasks.
- Always include at least one testable criterion with a command or metric.
Determine the environment (reuse execution_environment from detecting-provider):
Write the rules to ~/.waggle/task-creation-prompt.md. Keep the file under 10 KB — the loader rejects anything larger. Do not paste text from untrusted sources into this file; it is concatenated into agent prompts and carries prompt-injection risk.
Confirm to user:
"Custom task-creation rules saved to
~/.waggle/task-creation-prompt.md. The managing-tasks, ingesting-messages, and planning-tasks skills will read this file each time they run. You can edit the file directly to update your rules. Security note: this file is trusted input — only put rules you authored yourself, and keep the file under 10 KB."
Since Cowork has an ephemeral filesystem, output the rules as a block the user must paste into their Global Instructions:
"Cowork does not have a persistent filesystem. Please add the following to your Global Instructions so it's available in every session. Only paste rules you authored yourself — this text is concatenated directly into agent prompts."
<waggle-custom-task-creation> {composed rules} </waggle-custom-task-creation>