enhance-orchestrator
Use when coordinating multiple enhancers for /enhance command. Runs analyzers in parallel and produces unified report.
Best use case
enhance-orchestrator is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Use when coordinating multiple enhancers for /enhance command. Runs analyzers in parallel and produces unified report.
Teams using enhance-orchestrator should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/enhance-orchestrator/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How enhance-orchestrator Compares
| Feature / Agent | enhance-orchestrator | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Use when coordinating multiple enhancers for /enhance command. Runs analyzers in parallel and produces unified report.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# enhance-orchestrator
Coordinate all enhancement analyzers in parallel and produce a unified report.
## Critical Rules
1. **MUST run enhancers in parallel** - Use Promise.all for efficiency
2. **MUST only run enhancers for existing content** - Skip if no files found
3. **MUST report HIGH certainty first** - Priority order: HIGH → MEDIUM → LOW
4. **NEVER auto-fix without --apply flag** - Explicit consent required
5. **NEVER auto-fix MEDIUM or LOW issues** - Only HIGH certainty
## Workflow
### Phase 1: Parse Arguments
```javascript
const args = '$ARGUMENTS'.split(' ').filter(Boolean);
const targetPath = args.find(a => !a.startsWith('--')) || '.';
const flags = {
apply: args.includes('--apply'),
focus: args.find(a => a.startsWith('--focus='))?.split('=')[1],
verbose: args.includes('--verbose'),
showSuppressed: args.includes('--show-suppressed'),
resetLearned: args.includes('--reset-learned'),
noLearn: args.includes('--no-learn'),
exportLearned: args.includes('--export-learned')
};
// Validate focus type
const VALID_FOCUS = ['plugin', 'agent', 'claudemd', 'claude-memory', 'docs', 'prompt', 'hooks', 'skills', 'cross-file'];
if (flags.focus && !VALID_FOCUS.includes(flags.focus)) {
console.error(`Invalid --focus: "${flags.focus}". Valid: ${VALID_FOCUS.join(', ')}`);
return;
}
```
### Phase 2: Discovery
Detect what exists in target path:
```javascript
const discovery = {
plugins: await Glob({ pattern: 'plugins/*/.claude-plugin/plugin.json', path: targetPath }),
agents: await Glob({ pattern: '**/agents/*.md', path: targetPath }),
claudemd: await Glob({ pattern: '**/CLAUDE.md', path: targetPath }) ||
await Glob({ pattern: '**/AGENTS.md', path: targetPath }),
docs: await Glob({ pattern: 'docs/**/*.md', path: targetPath }),
prompts: await Glob({ pattern: '**/prompts/**/*.md', path: targetPath }) ||
await Glob({ pattern: '**/commands/**/*.md', path: targetPath }),
hooks: await Glob({ pattern: '**/hooks/**/*.md', path: targetPath }),
skills: await Glob({ pattern: '**/skills/**/SKILL.md', path: targetPath }),
// Cross-file runs if agents OR skills exist (analyzes relationships)
'cross-file': discovery.agents?.length || discovery.skills?.length ? ['enabled'] : []
};
```
### Phase 3: Load Suppressions
```javascript
// Use relative path from skill directory to plugin lib
// Path: skills/enhance-orchestrator/ -> ../../lib/
const { getSuppressionPath } = require('../../lib/cross-platform');
const { loadAutoSuppressions, getProjectId, clearAutoSuppressions } = require('../../lib/enhance/auto-suppression');
const suppressionPath = getSuppressionPath();
const projectId = getProjectId(targetPath);
if (flags.resetLearned) {
clearAutoSuppressions(suppressionPath, projectId);
console.log(`Cleared suppressions for project: ${projectId}`);
}
const autoLearned = loadAutoSuppressions(suppressionPath, projectId);
```
### Phase 4: Launch Enhancers in Parallel
**CRITICAL**: MUST spawn these EXACT agents using Task(). Do NOT use Explore or other agents.
| Focus Type | Agent to Spawn | Model | JS Analyzer |
|------------|----------------|-------|-------------|
| `plugin` | `plugin-enhancer` | sonnet | `lib/enhance/plugin-analyzer.js` |
| `agent` | `agent-enhancer` | opus | `lib/enhance/agent-analyzer.js` |
| `claudemd` | `claudemd-enhancer` | opus | `lib/enhance/projectmemory-analyzer.js` |
| `docs` | `docs-enhancer` | opus | `lib/enhance/docs-analyzer.js` |
| `prompt` | `prompt-enhancer` | opus | `lib/enhance/prompt-analyzer.js` |
| `hooks` | `hooks-enhancer` | opus | `lib/enhance/hook-analyzer.js` |
| `skills` | `skills-enhancer` | opus | `lib/enhance/skill-analyzer.js` |
| `cross-file` | `cross-file-enhancer` | sonnet | `lib/enhance/cross-file-analyzer.js` |
Each agent has `Bash(node:*)` to run its JS analyzer. Do NOT substitute with Explore agents.
```javascript
// EXACT agent mapping - do not change
const ENHANCER_AGENTS = {
plugin: 'plugin-enhancer',
agent: 'agent-enhancer',
claudemd: 'claudemd-enhancer',
docs: 'docs-enhancer',
prompt: 'prompt-enhancer',
hooks: 'hooks-enhancer',
skills: 'skills-enhancer',
'cross-file': 'cross-file-enhancer'
};
const promises = [];
for (const [type, agentType] of Object.entries(ENHANCER_AGENTS)) {
if (focus && focus !== type) continue;
if (!discovery[type]?.length) continue;
// MUST use exact subagent_type - these agents have Bash(node:*) to run JS analyzers
promises.push(Task({
subagent_type: agentType,
prompt: `Analyze ${type} in ${targetPath}.
MUST use Skill tool to invoke your enhance-* skill.
The skill runs the JavaScript analyzer and returns structured findings.
verbose: ${flags.verbose}
Return JSON: { "enhancerType": "${type}", "findings": [...], "summary": { high, medium, low } }`
}));
}
// MUST use Promise.all for parallel execution
const results = await Promise.all(promises);
```
### Phase 5: Aggregate Results
```javascript
function aggregateResults(enhancerResults) {
const findings = [];
const byEnhancer = {};
for (const result of enhancerResults) {
if (!result?.findings) continue;
for (const finding of result.findings) {
findings.push({ ...finding, source: result.enhancerType });
}
byEnhancer[result.enhancerType] = result.summary;
}
return {
findings,
byEnhancer,
totals: {
high: findings.filter(f => f.certainty === 'HIGH').length,
medium: findings.filter(f => f.certainty === 'MEDIUM').length,
low: findings.filter(f => f.certainty === 'LOW').length
}
};
}
```
### Phase 6: Generate Report
Generate report directly from aggregated findings:
```javascript
const { generateReport } = require('../../lib/enhance/reporter');
const report = generateReport(aggregated, {
verbose: flags.verbose,
showAutoFixable: flags.apply
});
console.log(report);
```
### Phase 7: Auto-Learning
```javascript
if (!flags.noLearn) {
const { analyzeForAutoSuppression, saveAutoSuppressions } = require('../../lib/enhance/auto-suppression');
const newSuppressions = analyzeForAutoSuppression(aggregated.findings, fileContents, { projectRoot: targetPath });
if (newSuppressions.length > 0) {
saveAutoSuppressions(suppressionPath, projectId, newSuppressions);
console.log(`\nLearned ${newSuppressions.length} new suppressions.`);
}
}
```
### Phase 8: Apply Fixes
```javascript
if (flags.apply) {
const autoFixable = aggregated.findings.filter(f => f.certainty === 'HIGH' && f.autoFixable);
if (autoFixable.length > 0) {
console.log(`\n## Applying ${autoFixable.length} Auto-Fixes\n`);
const byEnhancer = {};
for (const fix of autoFixable) {
const type = fix.source;
if (!byEnhancer[type]) byEnhancer[type] = [];
byEnhancer[type].push(fix);
}
for (const [type, fixes] of Object.entries(byEnhancer)) {
await Task({
subagent_type: enhancerAgents[type],
prompt: `Apply HIGH certainty fixes: ${JSON.stringify(fixes, null, 2)}`
});
}
console.log(`Applied ${autoFixable.length} fixes.`);
}
}
```
## Output Format
```markdown
# Enhancement Analysis Report
**Target**: {targetPath}
**Date**: {timestamp}
**Enhancers Run**: {list}
## Executive Summary
| Enhancer | HIGH | MEDIUM | LOW | Auto-Fixable |
|----------|------|--------|-----|--------------|
| plugin | 2 | 3 | 1 | 1 |
| agent | 1 | 2 | 0 | 1 |
| **Total**| **3**| **5** | **1**| **2** |
## HIGH Certainty Issues
[Grouped by enhancer, then file]
## MEDIUM Certainty Issues
[...]
## Auto-Fix Summary
{n} issues can be fixed with `--apply` flag.
```
## Constraints
- MUST run enhancers in parallel (Promise.all)
- MUST skip enhancers for missing content types
- MUST report HIGH certainty issues first
- MUST deduplicate findings across enhancers
- NEVER auto-fix without explicit --apply flag
- NEVER auto-fix MEDIUM or LOW certainty issuesRelated Skills
enhance-cross-file
Use when checking cross-file consistency: tools vs frontmatter, agent references, duplicate rules, contradictions.
enhance-skills
Use when reviewing SKILL.md files for structure and trigger quality.
enhance-plugins
Use when analyzing plugin structures, MCP tools, and plugin security patterns.
enhance-prompts
Use when improving general prompts for structure, examples, and constraints.
enhance-docs
Use when improving documentation structure, accuracy, and RAG readiness.
enhance-claude-memory
Use when improving CLAUDE.md or AGENTS.md project memory files.
enhance-hooks
Use when reviewing hooks for safety, timeouts, and correct frontmatter.
enhance-agent-prompts
Use when improving agent prompts, frontmatter, and tool restrictions.
learn
Research any topic online and create learning guides. Use when user asks to 'learn about', 'research topic', 'create learning guide', 'build knowledge base', or 'study subject'.
web-browse
Browse and interact with web pages headlessly. Use when agent needs to navigate websites, click elements, fill forms, read content, or take screenshots.
web-auth
Authenticate to websites with human-in-the-loop browser handoff. Use when user needs to log into a website, complete 2FA, or solve CAPTCHAs for agent access.
sync-docs
Sync documentation with code. Use when user asks to update docs, check docs, fix stale documentation, update changelog, or after code changes.