Analyze environment and recommend workflow optimizations (MCPs, plugins, skills, CLI tools, patterns). Use when user wants to discover and install development workflow improvements. Triggers on literal `/flux:improve` and requests like "find me tools for X", "what MCP should I use", or "optimize my workflow".
From fluxnpx claudepluginhub nairon-ai/flux --plugin fluxThis skill uses the workspace's default tool permissions.
workflow.mdDesigns and optimizes AI agent action spaces, tool definitions, observation formats, error recovery, and context for higher task completion rates.
Enables AI agents to execute x402 payments with per-task budgets, spending controls, and non-custodial wallets via MCP tools. Use when agents pay for APIs, services, or other agents.
Compares coding agents like Claude Code and Aider on custom YAML-defined codebase tasks using git worktrees, measuring pass rate, cost, time, and consistency.
Analyze user's environment and recommend workflow optimizations from a curated database.
This skill:
nairon-ai/flux-recommendationsBehavioral breakdown includes:
AGENTS.md (project-level instructions)On entry, set the session phase:
PLUGIN_ROOT="${DROID_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}}"
[ ! -d "$PLUGIN_ROOT/scripts" ] && PLUGIN_ROOT=$(ls -td ~/.claude/plugins/cache/nairon-flux/flux/*/ 2>/dev/null | head -1)
FLUXCTL="${PLUGIN_ROOT}/scripts/fluxctl"
$FLUXCTL session-phase set improve
On completion, reset:
$FLUXCTL session-phase set idle
After consent, ask users to describe frustrations in a few words. Even brief context like "fighting CSS" or "keeps forgetting things" dramatically improves recommendation accuracy.
The matching engine maps common phrases to friction signals:
This is optional - automated session analysis works alone, but user context makes it much better.
Full request: $ARGUMENTS
Users don't need to remember flags. These natural language inputs route to /flux:improve automatically:
| User says | Maps to |
|---|---|
| "improve my CSS workflow" | --category=mcp + USER_CONTEXT="CSS workflow" |
| "find tools for testing" | USER_CONTEXT="testing" |
| "help me with slow builds" | USER_CONTEXT="slow builds" |
| "optimize my workflow" | Default analysis |
| "what tools should I install" | Default analysis |
| "find a better linter" | --category=cli + USER_CONTEXT="linter" |
| "improve X" (any topic) | USER_CONTEXT="X" — skips Step 2b pain point question |
When natural language is detected (no -- flags and input contains a topic), extract the topic as USER_CONTEXT and skip the Step 2b pain point question — the user already told you what they care about.
--skip-sessions - Skip session history analysis--category=<cat> - Filter to specific category (mcp, cli, plugin, skill, vscode, pattern)--list - Just list all available recommendations without analysis--score - Just show workflow score without recommendations--discover - Optional live discovery from X/Twitter (Exa-first, BYOK fallback)--explain - Include detailed explainability (signals, gaps, and matching rationale)Follow workflow.md exactly.
--discover is optional and sends search queries to Exa/Twitter APIs.mcp_question to get explicit consent before analyzing session history.Before reading any legacy session files from ~/.claude/projects/, you MUST:
mcp_question tool to ask for consentIf user passes --skip-sessions, skip the consent question entirely.
Fetched from: https://github.com/Nairon-AI/flux-recommendations
Categories:
mcps/ - Model Context Protocol serversplugins/ - legacy plugin installs and compatibility layersskills/ - Standalone skillscli-tools/ - Development CLI toolsvscode-extensions/ - VS Code extensionsworkflow-patterns/ - Best practices (not tools)ALWAYS run at the very end of /flux:improve execution:
PLUGIN_ROOT="${DROID_PLUGIN_ROOT:-${CLAUDE_PLUGIN_ROOT:-$(git rev-parse --show-toplevel 2>/dev/null || pwd)}}"
[ ! -d "$PLUGIN_ROOT/scripts" ] && PLUGIN_ROOT=$(ls -td ~/.claude/plugins/cache/nairon-flux/flux/*/ 2>/dev/null | head -1)
UPDATE_JSON=$("$PLUGIN_ROOT/scripts/version-check.sh" 2>/dev/null || echo '{"update_available":false}')
UPDATE_AVAILABLE=$(echo "$UPDATE_JSON" | jq -r '.update_available')
LOCAL_VER=$(echo "$UPDATE_JSON" | jq -r '.local_version')
REMOTE_VER=$(echo "$UPDATE_JSON" | jq -r '.remote_version')
If update available, append to output:
---
Flux update available: v${LOCAL_VER} → v${REMOTE_VER}
Update Flux from the same source you installed it from, then restart your agent session.
---