Files
trailofbits-skills/plugins/skill-improver
Lixin2026 d5fe2e6a78 feat(codex): add UI metadata for skills (#175)
* feat(codex): add skill UI metadata

* Use official Trail of Bits logo

* fix: resolve code review findings for PR #175

Codex silently drops the icons as authored: its loader
(codex-rs/core-skills resolve_asset_path) requires icon paths
containing '..' to resolve under <plugin_root>/assets/, and the
repo-root .codex/assets location fails that containment check.
Verified empirically via codex app-server plugin/read: every
iconSmall/iconLarge came back null; only brand_color applied.

P1 fixed:
- Vendor trail-of-bits-mark.svg into plugins/<name>/assets/ for
  all 38 plugins with skills and point every openai.yaml at
  ../../assets/trail-of-bits-mark.svg (the supported plugin-level
  shared asset pattern). Icons now resolve for marketplace
  installs too, since nothing escapes the plugin root.
- Drop the .codex/ additions: .codex/skills/gh-cli/agents/
  openai.yaml resolved nowhere (.codex/skills is not a Codex
  discovery root) and PR #173 removes the whole .codex/ tree

P2 fixed:
- Patch-bump all 38 touched plugins in plugin.json and
  marketplace.json so installed clients pick up the metadata

Verified:
- Static check replicating Codex's resolution algorithm: all 73
  yaml files resolve under their plugin assets/ and exist
- Live codex app-server probe: 71/72 loadable skills report
  resolved iconSmall/iconLarge and brand_color #D83A34
  (claude-in-chrome-troubleshooting fails to load on main due to
  a pre-existing 64-char qualified-name limit, fixed by #173's
  rename; zeroize-audit's manifest mcpServers object is likewise
  a pre-existing Codex incompatibility fixed by #173)
- validate_codex_skills.py, validate_plugin_metadata.py, prek all
  pass

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* fix(codex): use skill-local icon assets

---------

Co-authored-by: Dan Guido <dan@trailofbits.com>
Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-05 12:28:41 -04:00
..

Skill Improver Plugin

Iteratively reviews and fixes Claude Code skill quality issues until they meet standards. Runs automated fix-review cycles using the skill-reviewer agent from the plugin-dev plugin.

Requirements

  • plugin-dev plugin must be installed (provides skill-reviewer agent)

Commands

/skill-improver <SKILL_PATH> [--max-iterations N]

Start an improvement loop for a skill.

/skill-improver ./plugins/my-plugin/skills/my-skill
/skill-improver ./skills/my-skill/SKILL.md --max-iterations 15

/cancel-skill-improver [SESSION_ID]

Stop the active improvement loop. Changes made during the loop are preserved.

How It Works

  1. /skill-improver resolves the skill path and creates a session state file
  2. The skill-improver methodology reviews, fixes, and re-reviews iteratively
  3. A stop hook continues the loop until the quality bar is met or max iterations (default: 20) are reached
  4. The loop ends when Claude outputs <skill-improvement-complete> or the limit is hit

Multiple sessions can run simultaneously on different skills. Each gets a unique session ID and separate state file in .claude/.

See SKILL.md for detailed methodology and issue categorization.

Troubleshooting

  • "subagent not found": Install the plugin-dev plugin
  • Loop never completes: Check state with cat .claude/skill-improver.*.local.md, cancel with /cancel-skill-improver
  • Orphaned state files: Remove with trash .claude/skill-improver.*.local.md