ccw-cli-tools
CLI Tools - Unified Execution Framework
Purpose: Structured CLI tool usage with configuration-driven tool selection, unified prompt templates, and quality-gated execution.
Configuration: ~/.claude/cli-tools.json (Global, always read at initialization)
Initialization (Required First Step)
Before any tool selection or recommendation:
-
Check if configuration exists in memory:
- If configuration is already in conversation memory → Use it directly
- If NOT in memory → Read the configuration file:
Read(file_path="~/.claude/cli-tools.json")
-
Parse the JSON to understand:
- Available tools and their
enabledstatus - Each tool's
primaryModelandsecondaryModel - Tags defined for tag-based routing
- Tool types (builtin, cli-wrapper, api-endpoint)
- Available tools and their
-
Use configuration throughout the selection process
Why: Tools, models, and tags may change. Configuration file is the single source of truth. Optimization: Reuse in-memory configuration to avoid redundant file reads.
Process Flow
┌─ USER REQUEST
│
├─ STEP 1: Load Configuration
│ ├─ Check if configuration exists in conversation memory
│ └─ If NOT in memory → Read(file_path="~/.claude/cli-tools.json")
│
├─ STEP 2: Understand User Intent
│ ├─ Parse task type (analysis, implementation, security, etc.)
│ ├─ Extract required capabilities (tags)
│ └─ Identify scope (files, modules)
│
├─ STEP 3: Select Tool (based on config)
│ ├─ Explicit --tool specified?
│ │ YES → Validate in config → Use it
│ │ NO → Match tags with enabled tools → Select best match
│ │ → No match → Use first enabled tool (default)
│ └─ Get primaryModel from config
│
├─ STEP 4: Build Prompt
│ └─ Use 6-field template: PURPOSE, TASK, MODE, CONTEXT, EXPECTED, CONSTRAINTS
│
├─ STEP 5: Select Rule Template
│ ├─ Determine rule from task type
│ └─ Pass via --rule parameter
│
├─ STEP 6: Execute CLI Command
│ └─ ccw cli -p "<PROMPT>" --tool <tool> --mode <mode> --rule <rule>
│
└─ STEP 7: Handle Results
├─ On success → Deliver output to user
└─ On failure → Check secondaryModel or fallback tool
Configuration Reference
Configuration File Location
Path: ~/.claude/cli-tools.json (Global configuration)
IMPORTANT: Check conversation memory first. Only read file if configuration is not in memory.
Reading Configuration
Priority: Check conversation memory first
Loading Options:
- Option 1 (Preferred): Use in-memory configuration if already loaded in conversation
- Option 2 (Fallback): Read from file when not in memory
# Read configuration file
cat ~/.claude/cli-tools.json
The configuration defines all available tools with their enabled status, models, and tags.
Configuration Structure
The JSON file contains a tools object where each tool has these fields:
| Field | Type | Description | Example |
|---|---|---|---|
enabled |
boolean | Tool availability status | true or false |
primaryModel |
string | Default model for execution | "gemini-2.5-pro" |
secondaryModel |
string | Fallback model on primary failure | "gemini-2.5-flash" |
tags |
array | Capability tags for routing | ["分析", "Debug"] |
type |
string | Tool type | "builtin", "cli-wrapper", "api-endpoint" |
Expected Tools (Reference Only)
Typical tools found in configuration (actual availability determined by reading the file):
| Tool | Typical Type | Common Use |
|---|---|---|
gemini |
builtin | Analysis, Debug (分析, Debug tags) |
qwen |
builtin | General coding |
codex |
builtin | Code review, implementation |
claude |
builtin | General tasks |
opencode |
builtin | Open-source model fallback |
Note: Tool availability, models, and tags may differ. Use in-memory configuration or read ~/.claude/cli-tools.json if not cached.
Configuration Fields
enabled: Tool availability (boolean)primaryModel: Default model for executionsecondaryModel: Fallback model on primary failuretags: Capability tags for routing (分析, Debug, implementation, etc.)type: Tool type (builtin, cli-wrapper, api-endpoint)
Universal Prompt Template
Structure: Every CLI command follows this 6-field template
ccw cli -p "PURPOSE: [goal] + [why] + [success criteria] + [scope]
TASK: • [step 1: specific action] • [step 2: specific action] • [step 3: specific action]
MODE: [analysis|write|review]
CONTEXT: @[file patterns] | Memory: [session/tech/module context]
EXPECTED: [deliverable format] + [quality criteria] + [structure requirements]
CONSTRAINTS: [domain constraints]" --tool <tool-id> --mode <mode> --rule <template>
Field Specifications
PURPOSE (Goal Definition)
What: Clear objective + motivation + success criteria + scope boundary
Components:
- What: Specific task goal
- Why: Business/technical motivation
- Success: Measurable success criteria
- Scope: Bounded context/files
Example - Good:
PURPOSE: Identify OWASP Top 10 vulnerabilities in auth module to pass security audit;
success = all critical/high issues documented with remediation;
scope = src/auth/** only
Example - Bad:
PURPOSE: Analyze code
TASK (Action Steps)
What: Specific, actionable steps with clear verbs and targets
Format: Bullet list with concrete actions
Example - Good:
TASK:
• Scan for SQL injection in query builders
• Check XSS in template rendering
• Verify CSRF token validation
Example - Bad:
TASK: Review code and find issues
MODE (Permission Level)
Options:
analysis- Read-only, safe for auto-executionwrite- Create/Modify/Delete files, full operationsreview- Git-aware code review (codex only)
Rules:
- Always specify explicitly
- Default to
analysisfor read-only tasks - Require explicit
--mode writefor file modifications - Use
--mode reviewwith--tool codexfor git-aware review
CONTEXT (File Scope + Memory)
Format: CONTEXT: @[file patterns] | Memory: [memory context]
File Patterns:
@**/*- All files (default)@src/**/*.ts- Specific pattern@../shared/**/*- Parent/sibling (requires--includeDirs)
Memory Context (when building on previous work):
Memory: Building on auth refactoring (commit abc123), using JWT for sessions
Memory: Integration with auth module, shared error patterns from @shared/utils/errors.ts
EXPECTED (Output Specification)
What: Output format + quality criteria + structure requirements
Example - Good:
EXPECTED: Markdown report with:
severity levels (Critical/High/Medium/Low),
file:line references,
remediation code snippets,
priority ranking
Example - Bad:
EXPECTED: Report
CONSTRAINTS (Domain Boundaries)
What: Scope limits, special requirements, focus areas
Example - Good:
CONSTRAINTS: Focus on authentication | Ignore test files | No breaking changes
Example - Bad:
CONSTRAINTS: (missing or too vague)
CLI Execution Modes
MODE: analysis
- Permission: Read-only
- Use For: Code review, architecture analysis, pattern discovery, exploration
- Safe: Yes - can auto-execute
- Default: When not specified
MODE: write
- Permission: Create/Modify/Delete files
- Use For: Feature implementation, bug fixes, documentation, code creation
- Safe: No - requires explicit
--mode write - Requirements: Must be explicitly requested by user
MODE: review
- Permission: Read-only (git-aware review output)
- Use For: Code review of uncommitted changes, branch diffs, specific commits
- Tool Support:
codexonly (others treat as analysis) - Constraint: Target flags (
--uncommitted,--base,--commit) and prompt are mutually exclusive
Command Structure
Basic Command
ccw cli -p "<PROMPT>" --tool <tool-id> --mode <analysis|write|review>
Command Options
| Option | Description | Example |
|---|---|---|
--tool <tool> |
Tool from config | --tool gemini |
--mode <mode> |
REQUIRED: analysis/write/review | --mode analysis |
--model <model> |
Model override | --model gemini-2.5-flash |
--cd <path> |
Working directory | --cd src/auth |
--includeDirs <dirs> |
Additional directories | --includeDirs ../shared,../types |
--rule <template> |
Auto-load template | --rule analysis-review-architecture |
--resume [id] |
Resume session | --resume or --resume <id> |
Advanced Directory Configuration
Working Directory (--cd)
When using --cd:
@**/*= Files within working directory tree only- Cannot reference parent/sibling without
--includeDirs - Reduces token usage by scoping context
Include Directories (--includeDirs)
Two-step requirement for external files:
- Add
--includeDirsparameter - Reference in CONTEXT with @ patterns
# Single directory
ccw cli -p "CONTEXT: @**/* @../shared/**/*" \
--tool gemini --mode analysis \
--cd src/auth --includeDirs ../shared
# Multiple directories
ccw cli -p "..." \
--tool gemini --mode analysis \
--cd src/auth --includeDirs ../shared,../types,../utils
Session Resume
When to Use:
- Multi-round planning (analysis → planning → implementation)
- Multi-model collaboration (tool A → tool B on same topic)
- Topic continuity (building on previous findings)
Usage:
ccw cli -p "Continue analyzing" --tool <tool-id> --mode analysis --resume # Resume last
ccw cli -p "Fix issues found" --tool <tool-id> --mode write --resume <id> # Resume specific
ccw cli -p "Merge findings" --tool <tool-id> --mode analysis --resume <id1>,<id2> # Merge sessions
Available Rule Templates
Template System
Use --rule <template-name> to auto-load protocol + template appended to prompt
Universal Templates
universal-rigorous-style- Precise tasks (default)universal-creative-style- Exploratory tasks
Analysis Templates
analysis-trace-code-execution- Execution tracinganalysis-diagnose-bug-root-cause- Bug diagnosisanalysis-analyze-code-patterns- Code patternsanalysis-analyze-technical-document- Document analysisanalysis-review-architecture- Architecture reviewanalysis-review-code-quality- Code reviewanalysis-analyze-performance- Performance analysisanalysis-assess-security-risks- Security assessment
Planning Templates
planning-plan-architecture-design- Architecture designplanning-breakdown-task-steps- Task breakdownplanning-design-component-spec- Component designplanning-plan-migration-strategy- Migration strategy
Development Templates
development-implement-feature- Feature implementationdevelopment-refactor-codebase- Code refactoringdevelopment-generate-tests- Test generationdevelopment-implement-component-ui- UI componentdevelopment-debug-runtime-issues- Runtime debugging
Task-Type Specific Examples
Example 1: Security Analysis (Read-Only)
ccw cli -p "PURPOSE: Identify OWASP Top 10 vulnerabilities in authentication module to pass security audit; success = all critical/high issues documented with remediation
TASK: • Scan for injection flaws (SQL, command, LDAP) • Check authentication bypass vectors • Evaluate session management • Assess sensitive data exposure
MODE: analysis
CONTEXT: @src/auth/**/* @src/middleware/auth.ts | Memory: Using bcrypt for passwords, JWT for sessions
EXPECTED: Security report with: severity matrix, file:line references, CVE mappings where applicable, remediation code snippets prioritized by risk
CONSTRAINTS: Focus on authentication | Ignore test files
" --tool gemini --mode analysis --rule analysis-assess-security-risks --cd src/auth
Example 2: Feature Implementation (Write Mode)
ccw cli -p "PURPOSE: Implement rate limiting for API endpoints to prevent abuse; must be configurable per-endpoint; backward compatible with existing clients
TASK: • Create rate limiter middleware with sliding window • Implement per-route configuration • Add Redis backend for distributed state • Include bypass for internal services
MODE: write
CONTEXT: @src/middleware/**/* @src/config/**/* | Memory: Using Express.js, Redis already configured, existing middleware pattern in auth.ts
EXPECTED: Production-ready code with: TypeScript types, unit tests, integration test, configuration example, migration guide
CONSTRAINTS: Follow existing middleware patterns | No breaking changes
" --tool gemini --mode write --rule development-implement-feature
Example 3: Bug Root Cause Analysis
ccw cli -p "PURPOSE: Fix memory leak in WebSocket connection handler causing server OOM after 24h; root cause must be identified before any fix
TASK: • Trace connection lifecycle from open to close • Identify event listener accumulation • Check cleanup on disconnect • Verify garbage collection eligibility
MODE: analysis
CONTEXT: @src/websocket/**/* @src/services/connection-manager.ts | Memory: Using ws library, ~5000 concurrent connections in production
EXPECTED: Root cause analysis with: memory profile, leak source (file:line), fix recommendation with code, verification steps
CONSTRAINTS: Focus on resource cleanup
" --tool gemini --mode analysis --rule analysis-diagnose-bug-root-cause --cd src
Example 4: Code Review (Codex Review Mode)
# Option 1: Custom focus (reviews uncommitted by default)
ccw cli -p "Focus on security vulnerabilities and error handling" --tool codex --mode review
# Option 2: Target flag only (no prompt with target flags)
ccw cli --tool codex --mode review --uncommitted
ccw cli --tool codex --mode review --base main
ccw cli --tool codex --mode review --commit abc123
Tool Selection Strategy
Selection Algorithm
STEP 0 (REQUIRED): Load configuration (memory-first strategy)
# Check if configuration exists in conversation memory
# If YES → Use in-memory configuration
# If NO → Read(file_path="~/.claude/cli-tools.json")
Then proceed with selection:
- Parse task intent → Extract required capabilities
- Load configuration → Parse enabled tools with tags from JSON
- Match tags → Filter tools supporting required capabilities
- Select tool → Choose by priority (explicit > tag-match > default)
- Select model → Use primaryModel, fallback to secondaryModel
Selection Decision Tree
0. LOAD CONFIGURATION (memory-first)
├─ In memory? → Use it
└─ Not in memory? → Read ~/.claude/cli-tools.json
↓
1. Explicit --tool specified?
YES → Validate tool is enabled in config → Use it
NO → Proceed to tag-based selection
├─ Extract task tags (security, analysis, implementation, etc.)
│ ├─ Find tools with matching tags
│ │ ├─ Multiple matches? Use first enabled
│ │ └─ Single match? Use it
│ └─ No tag match? Use default tool
│
└─ Default: Use first enabled tool in config
Common Tag Routing
Note: Match task type to tags defined in ~/.claude/cli-tools.json
| Task Type | Common Tags to Match |
|---|---|
| Security audit | 分析, analysis, security |
| Bug diagnosis | Debug, 分析, analysis |
| Implementation | implementation, (any enabled tool) |
| Testing | testing, (any enabled tool) |
| Refactoring | refactoring, (any enabled tool) |
| Documentation | documentation, (any enabled tool) |
Selection Logic: Find tools where tags array contains matching keywords, otherwise use first enabled tool.
Fallback Chain
When primary tool fails (based on ~/.claude/cli-tools.json configuration):
- Check
secondaryModelfor same tool (usesecondaryModelfrom config) - Try next enabled tool with matching tags (scan config for enabled tools)
- Fall back to default enabled tool (first enabled tool in config)
Example Fallback:
Tool1: primaryModel fails
↓
Try Tool1: secondaryModel
↓ (if fails)
Try Tool2: primaryModel (next enabled with matching tags)
↓ (if fails)
Try default: first enabled tool
Permission Framework
Single-Use Authorization: Each execution requires explicit user instruction. Previous authorization does NOT carry over.
Mode Hierarchy:
analysis: Read-only, safe for auto-executionwrite: Create/Modify/Delete files - requires explicit--mode writereview: Git-aware code review (codex only) - requires explicit--mode review- Exception: User provides clear instructions like "modify", "create", "implement"
Auto-Invoke Triggers
Proactive CLI invocation - Auto-invoke ccw cli when encountering these scenarios:
| Trigger | Suggested Rule | When |
|---|---|---|
| Self-repair fails | analysis-diagnose-bug-root-cause |
After 1+ failed fix attempts |
| Ambiguous requirements | planning-breakdown-task-steps |
Task description lacks clarity |
| Architecture decisions | planning-plan-architecture-design |
Complex feature needs design |
| Pattern uncertainty | analysis-analyze-code-patterns |
Unsure of existing conventions |
| Critical code paths | analysis-assess-security-risks |
Security/performance sensitive |
Execution Principles for Auto-Invoke
- Default mode:
--mode analysis(read-only, safe) - No confirmation needed: Invoke proactively when triggers match
- Wait for results: Complete analysis before next action
- Tool selection: Use context-appropriate tool or fallback chain
- Rule flexibility: Suggested rules are guidelines, adapt as needed
Best Practices
Core Principles
- Configuration-driven - All tool selection from
cli-tools.json - Tag-based routing - Match task requirements to tool capabilities
- Use tools early and often - Tools are faster and more thorough than manual analysis
- Unified CLI - Always use
ccw cli -pfor consistent parameter handling - Default to analysis - Omit
--modefor read-only, explicitly use--mode writefor modifications - Use
--rulefor templates - Auto-loads protocol + template appended to prompt - Write protection - Require EXPLICIT
--mode writefor file operations
Workflow Principles
- Use unified interface - Always
ccw cli -pformat - Always include template - Use
--rule <template-name>to load templates - Be specific - Clear PURPOSE, TASK, EXPECTED fields
- Include constraints - File patterns, scope in CONSTRAINTS
- Leverage memory context - When building on previous work
- Discover patterns first - Use rg/MCP before CLI execution
- Default to full context - Use
@**/*unless specific files needed
Planning Checklist
- Purpose defined - Clear goal and intent
- Mode selected -
--mode analysis|write|review - Context gathered - File references + memory (default
@**/*) - Directory navigation -
--cdand/or--includeDirsif needed - Tool selected - Explicit
--toolor tag-based auto-selection - Rule template -
--rule <template-name>loads template - Constraints - Domain constraints in CONSTRAINTS field
Integration with CLAUDE.md Instructions
From global CLAUDE.md:
- Always use
run_in_background: falsefor Task tool agent calls - Default: Use Bash
run_in_background: truefor CLI calls - After CLI call: Stop output immediately, wait for hook callback
- Wait for results: MUST wait for CLI analysis before taking write actions
- Value every call: Never waste analysis results, aggregate before proposing solutions
From cli-tools-usage.md:
- Strict cli-tools.json configuration adherence
- Configuration-driven tool selection
- Template system with --rule auto-loading
- Permission framework with single-use authorization
- Auto-invoke triggers for common failure scenarios
More from catlog22/claude-code-workflow
skill-generator
Meta-skill for creating new Claude Code skills with configurable execution modes. Supports sequential (fixed order) and autonomous (stateless) phase patterns. Use for skill scaffolding, skill creation, or building new workflows. Triggers on "create skill", "new skill", "skill generator".
127review-code
Multi-dimensional code review with structured reports. Analyzes correctness, readability, performance, security, testing, and architecture. Triggers on "review code", "code review", "审查代码", "代码审查".
102skill-tuning
Universal skill diagnosis and optimization tool. Detect and fix skill execution issues including context explosion, long-tail forgetting, data flow disruption, and agent coordination failures. Supports Gemini CLI for deep analysis. Triggers on "skill tuning", "tune skill", "skill diagnosis", "optimize skill", "skill debug".
71compact
Compact current session memory into structured text for session recovery. Supports custom descriptions and tagging.
71issue-manage
Interactive issue management with menu-driven CRUD operations. Use when managing issues, viewing issue status, editing issue fields, performing bulk operations, or viewing issue history. Triggers on "manage issue", "list issues", "edit issue", "delete issue", "bulk update", "issue dashboard", "issue history", "completed issues".
71ccw-help
CCW command help system. Search, browse, recommend commands, skills, teams. Triggers "ccw-help", "ccw-issue".
70