mirror of
https://github.com/catlog22/Claude-Code-Workflow.git
synced 2026-02-12 02:37:45 +08:00
- Convert all markdown files from Chinese to English - Remove all emoji/icon decorations (🔧📋⚙️✅🏁🔍📚⛔⭐) - Update all section headers, descriptions, and documentation - Keep all content logic, structure, code examples unchanged - Maintain template variables and file paths as-is Files converted (9 files total): - SKILL.md: Output structure comments - templates/skill-md.md: All Chinese descriptions and comments - specs/reference-docs-spec.md: All section headers and explanations - phases/01-requirements-discovery.md through 05-validation.md (5 files) - specs/execution-modes.md, skill-requirements.md, cli-integration.md, scripting-integration.md (4 files) - templates/sequential-phase.md, autonomous-orchestrator.md, autonomous-action.md, code-analysis-action.md, llm-action.md, script-template.md (6 files) All 16 files in skill-generator are now fully in English.
515 lines
12 KiB
Markdown
515 lines
12 KiB
Markdown
# Code Analysis Action Template
|
|
|
|
Code analysis action template for integrating code exploration and analysis capabilities into a Skill.
|
|
|
|
## Purpose
|
|
|
|
Generate code analysis actions for a Skill, integrating MCP tools (ACE) and Agents for semantic search and in-depth analysis.
|
|
|
|
## Usage Context
|
|
|
|
| Phase | Usage |
|
|
|-------|-------|
|
|
| Optional | Use when Skill requires code exploration and analysis capabilities |
|
|
| Generation Trigger | User selects to add code-analysis action type |
|
|
| Agent Types | Explore, cli-explore-agent, universal-executor |
|
|
|
|
---
|
|
|
|
## Configuration Structure
|
|
|
|
```typescript
|
|
interface CodeAnalysisActionConfig {
|
|
id: string; // "analyze-structure", "explore-patterns"
|
|
name: string; // "Code Structure Analysis"
|
|
type: 'code-analysis'; // Action type identifier
|
|
|
|
// Analysis scope
|
|
scope: {
|
|
paths: string[]; // Target paths
|
|
patterns: string[]; // Glob patterns
|
|
excludes?: string[]; // Exclude patterns
|
|
};
|
|
|
|
// Analysis type
|
|
analysis_type: 'structure' | 'patterns' | 'dependencies' | 'quality' | 'security';
|
|
|
|
// Agent config
|
|
agent: {
|
|
type: 'Explore' | 'cli-explore-agent' | 'universal-executor';
|
|
thoroughness: 'quick' | 'medium' | 'very thorough';
|
|
};
|
|
|
|
// Output config
|
|
output: {
|
|
format: 'json' | 'markdown';
|
|
file: string;
|
|
};
|
|
|
|
// MCP tool enhancement
|
|
mcp_tools?: string[]; // ['mcp__ace-tool__search_context']
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Template Generation Function
|
|
|
|
```javascript
|
|
function generateCodeAnalysisAction(config) {
|
|
const { id, name, scope, analysis_type, agent, output, mcp_tools = [] } = config;
|
|
|
|
return `
|
|
# ${name}
|
|
|
|
## Action: ${id}
|
|
|
|
### Analysis Scope
|
|
|
|
- **Paths**: ${scope.paths.join(', ')}
|
|
- **Patterns**: ${scope.patterns.join(', ')}
|
|
${scope.excludes ? `- **Excludes**: ${scope.excludes.join(', ')}` : ''}
|
|
|
|
### Execution Logic
|
|
|
|
\`\`\`javascript
|
|
async function execute${toPascalCase(id)}(context) {
|
|
const workDir = context.workDir;
|
|
const results = [];
|
|
|
|
// 1. File discovery
|
|
const files = await discoverFiles({
|
|
paths: ${JSON.stringify(scope.paths)},
|
|
patterns: ${JSON.stringify(scope.patterns)},
|
|
excludes: ${JSON.stringify(scope.excludes || [])}
|
|
});
|
|
|
|
console.log(\`Found \${files.length} files to analyze\`);
|
|
|
|
// 2. Semantic search using MCP tools (if configured)
|
|
${mcp_tools.length > 0 ? \`
|
|
const semanticResults = await mcp__ace_tool__search_context({
|
|
project_root_path: context.projectRoot,
|
|
query: '\${getQueryForAnalysisType(analysis_type)}'
|
|
});
|
|
results.push({ type: 'semantic', data: semanticResults });
|
|
\` : '// No MCP tools configured'}
|
|
|
|
// 3. Launch Agent for in-depth analysis
|
|
const agentResult = await Task({
|
|
subagent_type: '\${agent.type}',
|
|
prompt: \`
|
|
\${generateAgentPrompt(analysis_type, scope)}
|
|
\`,
|
|
run_in_background: false
|
|
});
|
|
|
|
results.push({ type: 'agent', data: agentResult });
|
|
|
|
// 4. Aggregate results
|
|
const summary = aggregateResults(results);
|
|
|
|
// 5. Output results
|
|
const outputPath = \`\${workDir}/${output.file}\`;
|
|
${output.format === 'json'
|
|
? \`Write(outputPath, JSON.stringify(summary, null, 2));\`
|
|
: \`Write(outputPath, formatAsMarkdown(summary));\`}
|
|
|
|
return {
|
|
success: true,
|
|
output: '${output.file}',
|
|
files_analyzed: files.length,
|
|
analysis_type: '${analysis_type}'
|
|
};
|
|
}
|
|
\`\`\`;
|
|
}
|
|
|
|
function getQueryForAnalysisType(type) {
|
|
const queries = {
|
|
structure: 'main entry points, module organization, exports',
|
|
patterns: 'design patterns, abstractions, reusable components',
|
|
dependencies: 'imports, external dependencies, coupling',
|
|
quality: 'code complexity, test coverage, documentation',
|
|
security: 'authentication, authorization, input validation, secrets'
|
|
};
|
|
return queries[type] || queries.structure;
|
|
}
|
|
|
|
function generateAgentPrompt(type, scope) {
|
|
const prompts = {
|
|
structure: \`Analyze code structure of the following paths:
|
|
\${scope.paths.map(p => \`- \${p}\`).join('\\n')}
|
|
|
|
Tasks:
|
|
1. Identify main modules and entry points
|
|
2. Analyze directory organization structure
|
|
3. Extract module import/export relationships
|
|
4. Generate structure overview diagram (Mermaid)
|
|
|
|
Output format: JSON
|
|
{
|
|
"modules": [...],
|
|
"entry_points": [...],
|
|
"structure_diagram": "mermaid code"
|
|
}\`,
|
|
|
|
patterns: \`Analyze design patterns in the following paths:
|
|
\${scope.paths.map(p => \`- \${p}\`).join('\\n')}
|
|
|
|
Tasks:
|
|
1. Identify design patterns used (Factory, Strategy, Observer, etc.)
|
|
2. Analyze abstraction levels
|
|
3. Evaluate appropriateness of pattern usage
|
|
4. Extract reusable pattern instances
|
|
|
|
Output format: JSON
|
|
{
|
|
"patterns": [{ "name": "...", "location": "...", "usage": "..." }],
|
|
"abstractions": [...],
|
|
"reusable_components": [...]
|
|
}\`,
|
|
|
|
dependencies: \`Analyze dependencies in the following paths:
|
|
\${scope.paths.map(p => \`- \${p}\`).join('\\n')}
|
|
|
|
Tasks:
|
|
1. Extract internal module dependencies
|
|
2. Identify external package dependencies
|
|
3. Analyze coupling degree
|
|
4. Detect circular dependencies
|
|
|
|
Output format: JSON
|
|
{
|
|
"internal_deps": [...],
|
|
"external_deps": [...],
|
|
"coupling_score": 0-100,
|
|
"circular_deps": [...]
|
|
}\`,
|
|
|
|
quality: \`Analyze code quality in the following paths:
|
|
\${scope.paths.map(p => \`- \${p}\`).join('\\n')}
|
|
|
|
Tasks:
|
|
1. Assess code complexity
|
|
2. Check test coverage
|
|
3. Analyze documentation completeness
|
|
4. Identify technical debt
|
|
|
|
Output format: JSON
|
|
{
|
|
"complexity": { "avg": 0, "max": 0, "hotspots": [...] },
|
|
"test_coverage": { "percentage": 0, "gaps": [...] },
|
|
"documentation": { "score": 0, "missing": [...] },
|
|
"tech_debt": [...]
|
|
}\`,
|
|
|
|
security: \`Analyze security in the following paths:
|
|
\${scope.paths.map(p => \`- \${p}\`).join('\\n')}
|
|
|
|
Tasks:
|
|
1. Check authentication/authorization implementation
|
|
2. Analyze input validation
|
|
3. Detect sensitive data handling
|
|
4. Identify common vulnerability patterns
|
|
|
|
Output format: JSON
|
|
{
|
|
"auth": { "methods": [...], "issues": [...] },
|
|
"input_validation": { "coverage": 0, "gaps": [...] },
|
|
"sensitive_data": { "found": [...], "protected": true/false },
|
|
"vulnerabilities": [{ "type": "...", "severity": "...", "location": "..." }]
|
|
}\`
|
|
};
|
|
|
|
return prompts[type] || prompts.structure;
|
|
}
|
|
\`\`\`
|
|
|
|
---
|
|
|
|
## Preset Code Analysis Actions
|
|
|
|
### 1. Project Structure Analysis
|
|
|
|
\`\`\`yaml
|
|
id: analyze-project-structure
|
|
name: Project Structure Analysis
|
|
type: code-analysis
|
|
scope:
|
|
paths:
|
|
- src/
|
|
patterns:
|
|
- "**/*.ts"
|
|
- "**/*.js"
|
|
excludes:
|
|
- "**/node_modules/**"
|
|
- "**/*.test.*"
|
|
analysis_type: structure
|
|
agent:
|
|
type: Explore
|
|
thoroughness: medium
|
|
output:
|
|
format: json
|
|
file: structure-analysis.json
|
|
mcp_tools:
|
|
- mcp__ace-tool__search_context
|
|
\`\`\`
|
|
|
|
### 2. Design Pattern Extraction
|
|
|
|
\`\`\`yaml
|
|
id: extract-design-patterns
|
|
name: Design Pattern Extraction
|
|
type: code-analysis
|
|
scope:
|
|
paths:
|
|
- src/
|
|
patterns:
|
|
- "**/*.ts"
|
|
analysis_type: patterns
|
|
agent:
|
|
type: cli-explore-agent
|
|
thoroughness: very thorough
|
|
output:
|
|
format: markdown
|
|
file: patterns-report.md
|
|
\`\`\`
|
|
|
|
### 3. Dependency Analysis
|
|
|
|
\`\`\`yaml
|
|
id: analyze-dependencies
|
|
name: Dependency Analysis
|
|
type: code-analysis
|
|
scope:
|
|
paths:
|
|
- src/
|
|
- packages/
|
|
patterns:
|
|
- "**/package.json"
|
|
- "**/*.ts"
|
|
analysis_type: dependencies
|
|
agent:
|
|
type: Explore
|
|
thoroughness: medium
|
|
output:
|
|
format: json
|
|
file: dependency-graph.json
|
|
\`\`\`
|
|
|
|
### 4. Security Audit
|
|
|
|
\`\`\`yaml
|
|
id: security-audit
|
|
name: Security Audit
|
|
type: code-analysis
|
|
scope:
|
|
paths:
|
|
- src/auth/
|
|
- src/api/
|
|
patterns:
|
|
- "**/*.ts"
|
|
analysis_type: security
|
|
agent:
|
|
type: universal-executor
|
|
thoroughness: very thorough
|
|
output:
|
|
format: json
|
|
file: security-report.json
|
|
mcp_tools:
|
|
- mcp__ace-tool__search_context
|
|
\`\`\`
|
|
|
|
---
|
|
|
|
## Usage Examples
|
|
|
|
### Using in Phase
|
|
|
|
\`\`\`javascript
|
|
// phases/01-code-exploration.md
|
|
|
|
const analysisConfig = {
|
|
id: 'explore-skill-structure',
|
|
name: 'Skill Structure Exploration',
|
|
type: 'code-analysis',
|
|
scope: {
|
|
paths: ['D:\\Claude_dms3\\.claude\\skills\\software-manual'],
|
|
patterns: ['**/*.md'],
|
|
excludes: ['**/node_modules/**']
|
|
},
|
|
analysis_type: 'structure',
|
|
agent: {
|
|
type: 'Explore',
|
|
thoroughness: 'medium'
|
|
},
|
|
output: {
|
|
format: 'json',
|
|
file: 'skill-structure.json'
|
|
}
|
|
};
|
|
|
|
// Execute
|
|
const result = await executeCodeAnalysis(analysisConfig, context);
|
|
\`\`\`
|
|
|
|
### Combining Multiple Analyses
|
|
|
|
\`\`\`javascript
|
|
// Serial execution of multiple analyses
|
|
const analyses = [
|
|
{ type: 'structure', file: 'structure.json' },
|
|
{ type: 'patterns', file: 'patterns.json' },
|
|
{ type: 'dependencies', file: 'deps.json' }
|
|
];
|
|
|
|
for (const analysis of analyses) {
|
|
await executeCodeAnalysis({
|
|
...baseConfig,
|
|
analysis_type: analysis.type,
|
|
output: { format: 'json', file: analysis.file }
|
|
}, context);
|
|
}
|
|
|
|
// Parallel execution (independent analyses)
|
|
const parallelResults = await Promise.all(
|
|
analyses.map(a => executeCodeAnalysis({
|
|
...baseConfig,
|
|
analysis_type: a.type,
|
|
output: { format: 'json', file: a.file }
|
|
}, context))
|
|
);
|
|
\`\`\`
|
|
|
|
---
|
|
|
|
## Agent Selection Guide
|
|
|
|
| Analysis Type | Recommended Agent | Thoroughness | Reason |
|
|
|-------------|-----------------|--------------|--------|
|
|
| structure | Explore | medium | Quick directory structure retrieval |
|
|
| patterns | cli-explore-agent | very thorough | Requires deep code understanding |
|
|
| dependencies | Explore | medium | Mainly analyzes import statements |
|
|
| quality | universal-executor | medium | Requires running analysis tools |
|
|
| security | universal-executor | very thorough | Requires comprehensive scanning |
|
|
|
|
---
|
|
|
|
## MCP Tool Integration
|
|
|
|
### Semantic Search Enhancement
|
|
|
|
\`\`\`javascript
|
|
// Use ACE tool for semantic search
|
|
const semanticContext = await mcp__ace_tool__search_context({
|
|
project_root_path: projectRoot,
|
|
query: 'authentication logic, user session management'
|
|
});
|
|
|
|
// Use semantic search results as Agent input context
|
|
const agentResult = await Task({
|
|
subagent_type: 'Explore',
|
|
prompt: \`
|
|
Based on following semantic search results, perform in-depth analysis:
|
|
|
|
\${semanticContext}
|
|
|
|
Task: Analyze authentication logic implementation details...
|
|
\`,
|
|
run_in_background: false
|
|
});
|
|
\`\`\`
|
|
|
|
### smart_search Integration
|
|
|
|
\`\`\`javascript
|
|
// Use smart_search for exact matching
|
|
const exactMatches = await mcp__ccw_tools__smart_search({
|
|
action: 'search',
|
|
query: 'class.*Controller',
|
|
mode: 'ripgrep',
|
|
path: 'src/'
|
|
});
|
|
|
|
// Use find_files for file discovery
|
|
const configFiles = await mcp__ccw_tools__smart_search({
|
|
action: 'find_files',
|
|
pattern: '**/*.config.ts',
|
|
path: 'src/'
|
|
});
|
|
\`\`\`
|
|
|
|
---
|
|
|
|
## Results Aggregation
|
|
|
|
\`\`\`javascript
|
|
function aggregateResults(results) {
|
|
const aggregated = {
|
|
timestamp: new Date().toISOString(),
|
|
sources: [],
|
|
summary: {},
|
|
details: []
|
|
};
|
|
|
|
for (const result of results) {
|
|
aggregated.sources.push(result.type);
|
|
|
|
if (result.type === 'semantic') {
|
|
aggregated.summary.semantic_matches = result.data.length;
|
|
aggregated.details.push({
|
|
source: 'semantic',
|
|
data: result.data.slice(0, 10) // Top 10
|
|
});
|
|
}
|
|
|
|
if (result.type === 'agent') {
|
|
aggregated.summary.agent_findings = extractKeyFindings(result.data);
|
|
aggregated.details.push({
|
|
source: 'agent',
|
|
data: result.data
|
|
});
|
|
}
|
|
}
|
|
|
|
return aggregated;
|
|
}
|
|
|
|
function extractKeyFindings(agentResult) {
|
|
// Extract key findings from Agent result
|
|
// Implementation depends on Agent output format
|
|
return {
|
|
modules: agentResult.modules?.length || 0,
|
|
patterns: agentResult.patterns?.length || 0,
|
|
issues: agentResult.issues?.length || 0
|
|
};
|
|
}
|
|
\`\`\`
|
|
|
|
---
|
|
|
|
## Best Practices
|
|
|
|
1. **Scope Control**
|
|
- Use precise patterns to reduce analysis scope
|
|
- Configure excludes to ignore irrelevant files
|
|
|
|
2. **Agent Selection**
|
|
- Use Explore for quick exploration
|
|
- Use cli-explore-agent for in-depth analysis
|
|
- Use universal-executor when execution is required
|
|
|
|
3. **MCP Tool Combination**
|
|
- First use mcp__ace-tool__search_context for semantic context
|
|
- Then use Agent for in-depth analysis
|
|
- Finally use smart_search for exact matching
|
|
|
|
4. **Result Caching**
|
|
- Persist analysis results to workDir
|
|
- Subsequent phases can read directly, avoiding re-analysis
|
|
|
|
5. **Brief Returns**
|
|
- Agent returns path + summary, not full content
|
|
- Prevents context overflow
|