Install
$ agentstack add skill-outlinedriven-odin-claude-plugin-enhance ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
About
Enhance — certainty-graded surface correction
Run a correct op over AI-facing project surfaces. The invariant: plugin manifests, agents, skills, prompts, docs, command definitions, hooks, and project memory must be explicit, bounded, and internally consistent.
Native shape: no external analyzer binary, no persistent suppression learning, no model routing. Use ODIN discovery tools plus parallel generic task agents. Each analyzer emits structured findings with certainty, autoFix, file, line, check, evidence, fix. The orchestrator aggregates, deduplicates, and reports.
When to Apply / NOT
Apply when the user asks to enhance, improve, audit, or tighten plugin config, agent definitions, skills, CLAUDE.md/AGENTS.md, docs, prompts, commands, or hooks.
NOT when the user asks for general code assessment, runtime bug fixing, visual design, performance profiling, or content rewriting without configuration/agent-surface analysis.
Flags
--apply: apply only HIGH-certainty findings withautoFix: yes. No flag → report only.--verbose: include MEDIUM and LOW findings. Default report shows HIGH plus summary counts for MEDIUM/LOW.--focus=: optional narrowing to one or more comma-separated analyzer families:plugin,agent,skill,docs,prompt,claudemd,hooks,cross-file.
Deleted on purpose: auto-suppression learning, reset/export suppression flags, editor-platform adapters, model pins, binary cache state.
Discovery
Resolve the target path from the first non-flag argument; default .. Use find for names and read for the exact files each analyzer needs.
| Analyzer | Discovery globs | |---|---| | plugin | plugins/*/.claude-plugin/plugin.json, .claude-plugin/plugin.json, **/.claude-plugin/plugin.json | | agent | **/agents/*.md | | skill | **/SKILL.md | | claudemd | CLAUDE.md, AGENTS.md, **/CLAUDE.md, **/AGENTS.md | | docs | docs/**, README.md, CHANGELOG.md | | prompt | commands/**, prompts/**, **/commands/*.md, **/prompts/*.md | | hooks | hooks/**, **/hooks/** | | cross-file | enabled when two or more of plugin/agent/skill/claudemd/prompt are present |
Skip analyzers with no files. For --focus, skip all non-focused analyzers even if files exist.
Workflow
- Parse intent. Extract
target,--apply,--verbose,--focus. Reject unknown focus values with the valid set above. - Discover files. Run the discovery table. Keep concrete path lists; do not pass globs to worker agents as the target contract.
- Launch parallel analyzers. In one
taskbatch, dispatch one generictaskworker per analyzer family that has files. Each worker receives:
- target analyzer name;
- exact file list;
--verbosestate;- the applicable section of
references/analyzer-checks.md; - required JSON return shape.
- Analyzer contract. Each worker reports only observed findings:
``json { "analyzer": "plugin|agent|skill|docs|prompt|claudemd|hooks|cross-file", "findings": [ {"file":"path","line":1,"check":"missing_description","certainty":"HIGH","autoFix":false,"evidence":"...","fix":"..."} ], "summary": {"high":0,"medium":0,"low":0,"autoFixableHigh":0} } ``
- Deduplicate. Stable key:
analyzer|file|line|check|normalized evidence. If two analyzers report the same underlying defect, keep the higher certainty; if equal, keep the one with narrower file/line evidence. - Aggregate. Sort by
certainty: HIGH → MEDIUM → LOW, then analyzer, file, line. Count totals by analyzer and certainty. - Report. Default output includes executive summary, all HIGH findings, MEDIUM/LOW counts, and HIGH auto-fixable list. With
--verbose, include MEDIUM and LOW sections with rejection-ground labels: Excess, Graft, Sprawl, or Correctness. - Apply guarded fixes. Only when
--applyis present:
- filter to
certainty === HIGH && autoFix === true; - group by analyzer;
- edit the minimal lines required;
- re-read changed files after each edit;
- never apply MEDIUM/LOW fixes automatically.
- Verify the fix set. Re-run only the analyzers whose files changed. A fix passes if the exact HIGH finding is gone and no new HIGH finding appears in the changed file. If a fix introduces a new HIGH issue, revert that fix and keep the finding in the report as manual.
Native analyzer recipes
Use ODIN tools directly:
- File presence and frontmatter:
find→readexact files. - Regex/field checks:
searchscoped to discovered files; parse YAML/JSON by direct read and reasoning. - Structured code-ish checks:
ast-grepfor command snippets, shell patterns, hook script bodies when syntax matters. - Cross-file links: codegraph MCP when indexed for symbols/callers/impact; fallback to
ast-grepplus text search scoped to discovered files. - Whole-surface context, only for large repos: repomix (
pack_codebaseornpx -y repomix --compress) to build a digest for the analyzer workers.
Fallback commands to embed in worker prompts when MCP indexing is unavailable:
# symbol/name lookup fallback
git grep -n "" -- ':!node_modules' ':!dist' ':!build'
# structural Markdown/frontmatter lookup fallback
ast-grep --lang yaml -p 'name: $X'
# broad changed-surface scan fallback
git --no-pager log --format='%h%x09%ad%x09%an%x09%s' --date=short --
Report format
# Enhancement Analysis Report
Target:
Flags: apply=, verbose=, focus=
Analyzers run: plugin, agent, skill, docs, prompt, claudemd, hooks, cross-file
## Executive Summary
| Analyzer | HIGH | MEDIUM | LOW | HIGH Auto-Fixable |
|---|---:|---:|---:|---:|
| plugin | 0 | 0 | 0 | 0 |
| Total | 0 | 0 | 0 | 0 |
## HIGH Certainty Findings
- `:` — `` — Evidence: `` — Fix: ``
## Deferred Findings
MEDIUM and LOW hidden unless `--verbose`. They require human inspection; never auto-apply.
## Auto-Fix
`--apply` absent: list commands/edits that would be safe.
`--apply` present: list edits applied and re-analysis result.
Anti-patterns
- Learning suppressions. False positives are reported, gated, or fixed in the check table. Do not hide future findings behind state.
- Medium auto-fix. MEDIUM means context-dependent; applying it automatically is Sprawl.
- Parallel by file. Parallelize by analyzer family, not file shards. Cross-surface consistency depends on seeing all relevant files.
- Generic advice. Every finding needs path, line or section, observed evidence, and a concrete fix.
- Cross-skill delegation. This skill is self-contained; use its own reference table and native tools.
- Tool overcorrection. Do not add broad
Bash,Read, or wildcard permissions as a convenience fix.
Validation Gates
- Frontmatter parses;
namematches the directory. - Analyzer coverage matches discovery; skipped analyzers have zero discovered files or are excluded by
--focus. - HIGH findings are complete in default output.
- MEDIUM/LOW appear only under
--verbose. --applychanges only HIGH +autoFix: yesfindings.- Re-analysis removes each applied finding without creating a new HIGH issue.
- No suppression-learning files or suppression state are created.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: OutlineDriven
- Source: OutlineDriven/odin-claude-plugin
- License: Apache-2.0
- Homepage: https://outlinedriven.github.io
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.