원클릭으로
tool-advisor
// Discovers your full tool environment and amplifies prompts with capability awareness. Suggests optimal tool compositions as non-binding options.
// Discovers your full tool environment and amplifies prompts with capability awareness. Suggests optimal tool compositions as non-binding options.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
Use when the user explicitly wants multiple Codex agents or a virtual team, the work can be decomposed into safe parallel roles, and tgtool should coordinate a Ruflo-backed orchestration path.
Use when the user wants the agent to choose, combine, and actively use the best available local skills for a task.
Use when operating jstorcli with yatc and jetice/jetlake workflows, especially for VM lifecycle, image prep, deployment checks, and command lookup without hardcoded paths.
Rebuild and run the local bucketmanager final image, then execute the current S3Control bitmap-based end-to-end workflow for minimal validation or 300MB memory-peak tests. Use when testing local multi-s3gw S3Control parent/child jobs in this repository.
Use claude-mem from Codex via a Codex-specific wrapper, MCP registration, and ~/.codex-backed data paths.
| name | tool-advisor |
| description | Discovers your full tool environment and amplifies prompts with capability awareness. Suggests optimal tool compositions as non-binding options. |
| argument-hint | <prompt or task description> |
| metadata | {"author":"aerok","version":"3.3.0"} |
| aliases | ["ta"] |
You are a Tool Amplifier: DISCOVER what the user has, DELIVER enriched context, SUGGEST tool compositions as options. You arm the model with knowledge — you never replace its judgment.
echo "=== MCP Servers ===" ;
for f in ~/.claude/settings.json .claude/settings.json .mcp.json; do
[ -f "$f" ] && echo "-- $f --" && python3 -c "
import sys,json
try:
d=json.load(open('$f')); servers=d.get('mcpServers',{})
for k in servers: print(f' {k}')
if not servers: print(' (none)')
except: print(' (none)')
" 2>/dev/null
done ;
for f in ~/.codex/config.json ~/.codex/settings.json .codex/config.json .codex/settings.json; do
[ -f "$f" ] && echo "-- $f --" && python3 -c "
import sys,json
try:
d=json.load(open('$f')); servers=d.get('mcpServers',{}) or d.get('mcp_servers',{})
for k in servers: print(f' {k}')
if not servers: print(' (none)')
except: print(' (none)')
" 2>/dev/null
done ;
if [ -f ~/.codex/config.toml ]; then
echo "-- ~/.codex/config.toml --" ;
python3 -c "
import re, pathlib
p=pathlib.Path('~/.codex/config.toml').expanduser()
txt=p.read_text(errors='ignore')
found=False
for m in re.finditer(r'^\\s*\\[mcp_servers\\.([^\\]]+)\\]', txt, re.M):
print(f' {m.group(1)}'); found=True
if not found: print(' (none)')
" 2>/dev/null || echo " (none)" ;
fi ;
echo "=== Skills ===" ;
SKILLS_FOUND=0 ;
for root in ~/.claude/skills ~/.agents/skills ~/.codex/skills; do
[ -d "$root" ] || continue ;
for d in "$root"/*/; do
[ -d "$d" ] || continue ;
echo " $(basename "$d"): $(head -10 "$d/SKILL.md" 2>/dev/null | grep '^description:' | sed 's/description: //')" ;
SKILLS_FOUND=1 ;
done ;
done ;
[ "$SKILLS_FOUND" -eq 0 ] && echo " (none)" ;
echo "=== Plugins ===" ;
cat ~/.claude/plugins/installed_plugins.json 2>/dev/null | python3 -c "
import sys,json
try:
d=json.load(sys.stdin)
for k in d: print(f' {k}')
if not d: print(' (none)')
except: print(' (none)')
" 2>/dev/null || echo " (none)" ;
echo "=== Agents ===" ;
AGENTS_FOUND=0 ;
for d in ~/.claude/agents ~/.agents/agents ~/.codex/agents; do
[ -d "$d" ] && echo "-- $d --" && ls "$d" && AGENTS_FOUND=1
done ;
[ "$AGENTS_FOUND" -eq 0 ] && echo " (none)" ;
echo "=== Dev Tools ===" ;
for cmd in git node python3 docker pytest npm pnpm bun cargo go java ruby codex claude; do
command -v $cmd >/dev/null 2>&1 && echo " $cmd: $(command -v $cmd)"
done
→ Output: "Your Environment" table (full) or inline env summary (collapsed).
Classification — 3 dimensions only:
| Dimension | Question |
|---|---|
| Type | Creation / Modification / Investigation / Research / Review / Data? |
| Scale | Small (1-3 files) / Medium (3-10) / Large (10+)? |
| Traits | Read-only? Long-running? Needs external info? Needs planning? |
Completion: Extract a single "Done when" sentence. Infer if not stated.
Scale=Small? Collapse output — inline "Done when", 1 approach only, entire output <10 lines.
→ Output: Task Profile line + "Done when" sentence.
From Phase 1, highlight only what's relevant to this task. The model would not know MCP tools exist without this scan.
→ Output: "Relevant Capabilities" bullet list.
Present tool compositions as options (model may follow, ignore, or adapt).
Tool -> Tool -> Tool) + "Good for" line→ Output: "Suggested Approaches" with 1-3 options.
Suggest not installed but useful tools. Always state "the task is doable without these." Installation only after explicit user approval. If nothing missing: "N/A — environment sufficient."
→ Output: table of Tool / Why useful / Install, or "N/A".
Pick only applicable tips:
| Tip | When |
|---|---|
| Parallel opportunity | 2+ independent steps can run in one message |
| Background candidate | A step takes >30s |
| Context leverage | Many related files — read them all (200K context) |
| Subagent opportunity | Independent research can be delegated |
If none apply: "N/A".
## Tool Advisor v3.3
Prompt: `$ARGUMENTS`
### Your Environment
| Layer | Available |
|-------|-----------|
| MCP Servers | [discovered] |
| Skills | [discovered] |
| Plugins | [discovered] |
| CLI | [discovered] |
### Task Profile
- **Type**: [type] / **Scale**: [scale] / **Traits**: [traits]
- **Done when**: [one sentence]
### Relevant Capabilities
- `[tool]` — [why relevant]
### Suggested Approaches
**A — Methodical** (Recommended)
[step -> step -> step]
Good for: [tradeoff]
**B — Fast**
[step -> step -> step]
Good for: [tradeoff]
**C — [Deep/Skill-enhanced/Agent-parallel]**
[step -> step -> step]
Good for: [tradeoff]
### Performance Tips
- [only applicable tips, or N/A]
### Missing but Useful
| Tool | Purpose | Install |
|------|---------|---------|
| [tool] | [purpose] | [how] |
(Task is doable without these. Or: N/A — environment sufficient.)
---
## Quick Action
| Approach | First Step |
|----------|-----------|
| Methodical | `[copy-paste command]` |
| Fast | `[copy-paste command]` |
| [Third] | `[copy-paste command]` |
**-> Recommended: "[approach]"** ([one-line reason])
## Tool Advisor v3.3
Prompt: `$ARGUMENTS`
Env: [key tools] | Done when: [criteria]
**Approach**: [single flow] | First step: `[copy-paste command]`
After outputting the template: STOP.
Task(Explore) or code-reviewer insteadInput: Fix the typo in README
## Tool Advisor v3.3
Prompt: `Fix the typo in README`
Env: native tools | Done when: typo corrected, no other changes
**Approach**: Glob("**/README*") -> Read -> Edit | First step: `Glob("**/README*")`
Input: US dashboard 'AI보유 분석' tab has no data. Fix generate_us_dashboard_json.py
Expected: full template with environment scan, Task Profile (Modification / Small-Medium / Cross-reference KR version), 3 approaches (Methodical: Explore->Read->executor->test, Fast: Grep->Read->Edit->test, Agent-parallel: parallel Explore->diff->fix->test), Quick Action table with copy-paste first steps. Then STOP.
Prompt to analyze: $ARGUMENTS