ccw-cli-tools
npx skills add https://github.com/catlog22/claude-code-workflow --skill ccw-cli-tools
Agent 安装分布
Skill 文档
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