chore: retire Hermes plugin adapters in favor of npx skills - #168
chore: retire Hermes plugin adapters in favor of npx skills#168YoungjaeDev wants to merge 12 commits into
Conversation
Delete scripts/sync-hermes-manifests.mjs, scripts/mock-load-hermes.py, and the 7 generated plugin.yaml + __init__.py adapter pairs. Hermes consumes plugins/<name>/skills/ through npx skills (scripts/install-skills.mjs), which covers 23 plugins / 52 skills against the adapter allowlist's 7 / 20, needs no per-plugin allowlist, and lands in ~/.hermes/skills/ where skills are auto-indexed into skills_list() instead of requiring an explicit skill_view() load. Codex manifests stay: npx skills carries skills only, and core-config (4 hooks, 0 skills), llm-wiki (6 hooks) and paper-search-tools (1 MCP server) ship non-skill payloads that only the Codex manifest delivers. Drop HERMES_ELIGIBLE from manifest-eligibility.mjs, its two count checks from check-doc-consistency.mjs, and the hermes --check + mock-load steps from .githooks/pre-commit and .github/workflows/validate-codex.yml. Refs #166
Six spots stated that these plugins do not load on Hermes because they are absent from HERMES_ELIGIBLE. With the adapter allowlist gone, npx skills installs every skill-bearing plugin, so both now load on Hermes — and, like Codex, Hermes registers no named agents, so it takes the same Path B generic dispatch with Task mapped to delegate_task. Left as-is these sentences would also cite scripts/sync-hermes-manifests.mjs, which no longer exists. code-scout 2.3.0 -> 2.3.1, e2e-harness 0.2.1 -> 0.2.2, marketplace 2.7.0 -> 2.8.0 (MINOR, matching the #164 precedent for a removal). Codex manifests regenerated. Refs #166
Rewrite the Hermes sections of AGENTS.md and README.md around scripts/install-skills.mjs, drop the adapter regeneration rules from .claude/rules/dual-integration.md and code_review.md, and correct two claims the retirement invalidates: - the guard list is 4, not 5 (sync-hermes --check is gone) - Hermes indexes ~/.hermes/skills/ passively — installed skills appear in skills_list() and become slash commands, so a description surfaces a skill the same way it does under Claude Code and Codex. The old "explicit skill_view() load only" rule described the adapter path, not this one. Also document the flat-namespace tradeoff (cr-fix, not github-dev:cr-fix) and fix install-skills.mjs's global lockfile path, which read ~/.agents/skills-lock.json but is ~/.agents/.skill-lock.json. Refs #166
An end-to-end install run (npx skills v1.5.20, 2026-07-27) put a real copied directory at ~/.hermes/skills/cr-fix, not a symlink into ~/.agents/skills/ the way the claude-code target does. The section claimed symlinking outright, so note that -a hermes-agent copies and that source-tree edits therefore need a reinstall or npx skills update to reach the Hermes copy. Refs #166
Diff-logged first (log.md), then applied. hermes-plugin-adapter goes status: stale with a Superseded-by back-pointer rather than being deleted — its measured findings outlive the mechanism: the register_skill signature settled against upstream source, the git-pull-only update model, and the generated-but-never-executed blind spot where CI tested only byte-drift, so a behavioral break would have passed every guard. That last one is the structural case for the retirement. skills-install-wrapper takes over as the Hermes hub: sole delivery path, 47->52 skills, the flat-namespace hazard against third-party skills, the resolved layout divergence, and two newly measured facts — Hermes indexes ~/.hermes/skills/ passively (skills_list + slash commands, per upstream docs), retiring the skill_view() opt-in contract, and -a hermes-agent copies rather than symlinks. Also retargets two See-also pointers off the now-stale page and corrects a pre-existing sources off-by-one on it (5 declared, 6 present). Refs #166
📝 WalkthroughWalkthroughHermes adapter generation, eligibility tracking, and mock validation are removed. Hermes now receives skills through ChangesHermes delivery migration
Estimated code review effort: 3 (Moderate) | ~25 minutes Sequence Diagram(s)sequenceDiagram
participant Marketplace
participant InstallSkills
participant Hermes
participant Codex
Marketplace->>InstallSkills: Read shared plugin skills
InstallSkills->>Hermes: Install skills under ~/.hermes/skills/
Marketplace->>Codex: Provide source for Codex manifest generation
Possibly related PRs
🚥 Pre-merge checks | ✅ 8 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (8 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
⚔️ Resolve merge conflicts
Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In @.claude-plugin/marketplace.json:
- Line 8: Update the marketplace metadata description adjacent to the version
field in marketplace.json to remove references to generated
plugin.yaml/__init__.py Hermes adapters and describe the npx skills installation
path instead, while preserving the release version bump.
In `@code_review.md`:
- Line 36: Update the plugin update checklist to state that the Codex-eligible
count is total minus 1, reflecting that only codex-image remains excluded and
core-config is eligible. Update the referenced AGENTS.md and README.md count
guidance consistently while preserving the existing synchronization
requirements.
In `@plugins/e2e-harness/references/role-contracts.md`:
- Line 9: Remove stale claims that Hermes is unsupported from the runtime tool
tables, updating plugins/e2e-harness/references/role-contracts.md:90,
plugins/e2e-harness/skills/e2e-author/SKILL.md:83, and
plugins/e2e-harness/skills/e2e-debug/SKILL.md:96 to document Hermes as supported
via delegate_task while preserving the existing Codex Task mapping and other
runtime guidance.
In `@README.md`:
- Line 54: Update the README documentation to replace the Codex installation
directory `~/.codex/skills/` with the installer contract path
`~/.agents/skills/` in both occurrences, while leaving the Hermes path and
surrounding scope instructions unchanged.
- Line 59: Pin the CLI version in the README command by changing the unversioned
npx skills invocation to skills@<version>, and apply the same pinned package
reference to the npx skills invocation in scripts/install-skills.mjs. Use one
consistent version in both locations.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 86915ea6-1ec0-4ca9-a29e-4b7c940e4510
📒 Files selected for processing (42)
.claude-plugin/marketplace.json.claude/rules/dual-integration.md.githooks/pre-commit.github/workflows/validate-codex.yml.llmwiki/wiki/index.md.llmwiki/wiki/log.md.llmwiki/wiki/plugin-ops/agents-md-verbatim-no-import.md.llmwiki/wiki/plugin-ops/hermes-plugin-adapter.md.llmwiki/wiki/plugin-ops/shared-source-codex-manifests.md.llmwiki/wiki/plugin-ops/skills-install-wrapper.mdAGENTS.mdREADME.mdcode_review.mdplugins/anti-slop-design/__init__.pyplugins/anti-slop-design/plugin.yamlplugins/brightdata-guide/__init__.pyplugins/brightdata-guide/plugin.yamlplugins/code-scout/.claude-plugin/plugin.jsonplugins/code-scout/.codex-plugin/plugin.jsonplugins/code-scout/CLAUDE.mdplugins/code-scout/skills/research-orchestrator/SKILL.mdplugins/e2e-harness/.claude-plugin/plugin.jsonplugins/e2e-harness/.codex-plugin/plugin.jsonplugins/e2e-harness/references/role-contracts.mdplugins/e2e-harness/skills/e2e-author/SKILL.mdplugins/e2e-harness/skills/e2e-debug/SKILL.mdplugins/e2e-harness/skills/e2e-setup/SKILL.mdplugins/github-dev/__init__.pyplugins/github-dev/plugin.yamlplugins/interview/__init__.pyplugins/interview/plugin.yamlplugins/ml-toolkit/__init__.pyplugins/ml-toolkit/plugin.yamlplugins/ppt-yeong-style/__init__.pyplugins/ppt-yeong-style/plugin.yamlplugins/tcrei-prompt/__init__.pyplugins/tcrei-prompt/plugin.yamlscripts/check-doc-consistency.mjsscripts/install-skills.mjsscripts/manifest-eligibility.mjsscripts/mock-load-hermes.pyscripts/sync-hermes-manifests.mjs
💤 Files with no reviewable changes (16)
- plugins/github-dev/plugin.yaml
- plugins/ppt-yeong-style/plugin.yaml
- plugins/brightdata-guide/plugin.yaml
- plugins/interview/plugin.yaml
- plugins/brightdata-guide/init.py
- scripts/sync-hermes-manifests.mjs
- plugins/tcrei-prompt/plugin.yaml
- plugins/tcrei-prompt/init.py
- plugins/ml-toolkit/plugin.yaml
- plugins/interview/init.py
- plugins/anti-slop-design/init.py
- plugins/ppt-yeong-style/init.py
- plugins/github-dev/init.py
- plugins/anti-slop-design/plugin.yaml
- plugins/ml-toolkit/init.py
- scripts/mock-load-hermes.py
| 특정 스킬만 바로 넣으려면 `npx skills` 를 직접 써도 됩니다: | ||
|
|
||
| ```bash | ||
| npx skills add YoungjaeDev/my-claude-plugins -a hermes-agent -s cr-fix -s post-merge -g |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '\n## Files of interest\n'
rg --files -g 'AGENTS.md' -g 'README.md' -g 'CLAUDE.md' -g 'scripts/install-skills.mjs' -g 'package.json' -g 'pnpm-lock.yaml' -g 'package-lock.json' -g 'yarn.lock' | sed 's#^\./##'
printf '\n## Skills references\n'
rg -n "npx skills|skills add|install-skills|skills@" README.md scripts/install-skills.mjs package.json . 2>/dev/null || trueRepository: YoungjaeDev/my-claude-plugins
Length of output: 15933
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '\n## README excerpt\n'
sed -n '48,64p' README.md | cat -n
printf '\n## install-skills excerpt\n'
sed -n '180,220p' scripts/install-skills.mjs | cat -n
printf '\n## more installer context\n'
sed -n '250,270p' scripts/install-skills.mjs | cat -nRepository: YoungjaeDev/my-claude-plugins
Length of output: 4242
Pin the skills CLI version. Both the README examples and scripts/install-skills.mjs shell out to unpinned npx skills, so installs can drift to whatever is currently published. Use skills@<version> in both places.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@README.md` at line 59, Pin the CLI version in the README command by changing
the unversioned npx skills invocation to skills@<version>, and apply the same
pinned package reference to the npx skills invocation in
scripts/install-skills.mjs. Use one consistent version in both locations.
Source: Linters/SAST tools
CodeRabbit iteration 1. Five findings; four applied, one deferred. Applied: - .claude-plugin/marketplace.json metadata still advertised the generated plugin.yaml/__init__.py adapters as the Hermes path (CR Minor) - code_review.md said Codex-eligible is total-2; core-config became eligible as a hooks-only manifest, so it is total-1 (CR Major) - three e2e-harness runtime tables still read "forward-compat only - not loaded today" for Hermes, contradicting the Path B text this PR added (CR Major) - README claimed npx skills installs to ~/.codex/skills/ for the codex target. Measured: -a codex -g lands in ~/.agents/skills/, and ~/.codex/skills/ holds only .system. The wiki already recorded this; the README contradicted it (CR Major) Deferred: pinning npx skills to a version (CR Major, supply-chain). Real, but it trades drift risk for a pin nobody is assigned to bump - a policy call. Also fixes two live files CodeRabbit did not flag and my own verification grep missed: .coderabbit.yaml (its review instructions still told reviewers to expect regenerated Hermes adapters) and .claude/rules/plugin-versioning.md (paths: frontmatter globbed plugins/*/plugin.yaml, plus three regeneration rules). Both were invisible because recursive rg skips dot-directories unless --hidden is passed - the exact Mode 6 trap already recorded in .llmwiki/wiki/plugin-ops/detector-cannot-look-vs-nothing-wrong.md from PR #164. e2e-harness 0.2.2 -> 0.2.3, marketplace 2.8.0 -> 2.8.1. Refs #166
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 581c4f52fe
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // This is the ONLY delivery path for Hermes: since #166 there is no generated | ||
| // Hermes adapter, so `npx skills` reading .claude-plugin/marketplace.json in place | ||
| // is what puts skills in ~/.hermes/skills/ (where Hermes indexes them into |
There was a problem hiding this comment.
Preserve plugin-level assets on the sole Hermes path
For a normal Hermes installation outside this repository checkout, npx skills installs each selected skill as a flat directory such as $HERMES_HOME/skills/e2e-author, not the containing plugin tree. Several newly advertised Hermes skills require files outside their skill directories: e2e-harness aborts unless references/role-contracts.md and its assets/ resolve, while deepwiki, docs-forge, and llm-wiki also reference plugin-level files. Once the adapters are removed and this becomes the only delivery path, those files are absent, so at least the e2e skills fail before dispatch. Bundle these dependencies inside each installed skill or make the installer preserve and resolve the whole plugin tree.
AGENTS.md reference: AGENTS.md:L123-L125
Useful? React with 👍 / 👎.
| @@ -1,5 +0,0 @@ | |||
| name: github-dev | |||
There was a problem hiding this comment.
Bump every plugin whose adapter was removed
Removing plugin.yaml and __init__.py changes content under seven plugin directories (github-dev, interview, anti-slop-design, tcrei-prompt, ppt-yeong-style, ml-toolkit, and brightdata-guide), but all seven retain their previous per-plugin versions in both source manifests. Cache-gated installations therefore do not refresh these changed plugin trees, and this also violates the repository's explicit any-file version-bump contract. Give each affected plugin a PATCH bump, synchronize the marketplace entries, and regenerate its Codex manifest.
AGENTS.md reference: AGENTS.md:L154-L154
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
plugins/e2e-harness/skills/e2e-author/SKILL.md (1)
11-11: 🔒 Security & Privacy | 🟠 Major | ⚡ Quick win
npx호출을 고정 버전으로 바꾸세요.
영향:plugins/e2e-harness/skills/e2e-author/SKILL.md:11,83와plugins/e2e-harness/skills/e2e-debug/SKILL.md:11,96의npx skills/npx playwright는 버전이 고정되지 않아 실행 결과가 최신 패키지 해석에 따라 달라지고, 공급망 리스크도 커집니다.
수정 방향: 이 저장소엔 lockfile이 보이지 않으니, 명령 자체를package@version형태로 고정하거나 중앙 계약에 승인 버전을 명시해 두 명령이 같은 버전을 쓰게 맞추세요.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@plugins/e2e-harness/skills/e2e-author/SKILL.md` at line 11, Pin the unversioned npx invocations to approved package versions so execution is deterministic and both commands use the same versions. Update plugins/e2e-harness/skills/e2e-author/SKILL.md at lines 11 and 83 and plugins/e2e-harness/skills/e2e-debug/SKILL.md at lines 11 and 96; either use package@version directly or define the approved versions in the shared contract and reuse them consistently.Sources: Coding guidelines, Linters/SAST tools
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@plugins/e2e-harness/skills/e2e-author/SKILL.md`:
- Line 11: Pin the unversioned npx invocations to approved package versions so
execution is deterministic and both commands use the same versions. Update
plugins/e2e-harness/skills/e2e-author/SKILL.md at lines 11 and 83 and
plugins/e2e-harness/skills/e2e-debug/SKILL.md at lines 11 and 96; either use
package@version directly or define the approved versions in the shared contract
and reuse them consistently.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: d4e7e054-ed15-4f54-9646-36ce595936cf
📒 Files selected for processing (10)
.claude-plugin/marketplace.json.claude/rules/plugin-versioning.md.coderabbit.yamlREADME.mdcode_review.mdplugins/e2e-harness/.claude-plugin/plugin.jsonplugins/e2e-harness/.codex-plugin/plugin.jsonplugins/e2e-harness/references/role-contracts.mdplugins/e2e-harness/skills/e2e-author/SKILL.mdplugins/e2e-harness/skills/e2e-debug/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (2)
- plugins/e2e-harness/.claude-plugin/plugin.json
- plugins/e2e-harness/references/role-contracts.md
CodeRabbit (#168) flagged the floating `npx skills` as a supply-chain risk. Fair in general, but this installer is run interactively by a human, never from CI, so the exposure is one attended invocation rather than an automated pipeline. Pinning trades that for a bump owner nobody is assigned, and an unbumped pin rots silently while the upstream CLI is still moving fast. Records the deferral and the condition for revisiting — switch to skills@<version> and name a bump cadence in the same change. Refs #166
cr-fix iteration 1 — 5건 중 4건 적용, 1건 보류적용
설치 경로 지적이 정확했습니다. 실측 결과:
리뷰가 잡지 못한 동종 2건 (같은 커밋에서 수정)
둘 다 최초 검증에서 놓친 이유는 재귀 보류 1건 —
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e450471648
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ```bash | ||
| node scripts/install-skills.mjs | ||
| ``` | ||
| > 이전에는 Hermes 용 네이티브 어댑터(`plugin.yaml` + `__init__.py`)를 `scripts/sync-hermes-manifests.mjs` 로 생성했습니다. 7 플러그인 / 20 스킬만 덮으면서 버전 범프마다 재생성과 drift 가드를 요구했고 로드에 `skill_view()` 명시 호출이 필요해, #166 에서 제거하고 `npx skills` 경로로 일원화했습니다. |
There was a problem hiding this comment.
남아 있는 Hermes 설치 안내를 새 경로로 갱신하세요
여기서 어댑터 경로를 제거하고 npx skills로 일원화했지만, 저장소 전체를 rg로 확인하면 plugins/anti-slop-design/CLAUDE.md:16, plugins/github-dev/CLAUDE.md:39, plugins/interview/CLAUDE.md:67, plugins/ml-toolkit/CLAUDE.md:103, plugins/ppt-yeong-style/CLAUDE.md:56, plugins/tcrei-prompt/CLAUDE.md:43이 여전히 삭제된 plugin.yaml을 전제로 hermes plugins install ... --enable을 안내하며 뒤이어 이제 존재하지 않는 qualified 이름으로 skill_view("<plugin>:<skill>")를 호출하게 합니다. 해당 플러그인 문서를 따라 설치하는 Hermes 사용자는 즉시 실패하므로, 이 섹션들을 scripts/install-skills.mjs/npx skills와 평평한 스킬 이름 기준으로 함께 갱신해야 합니다.
AGENTS.md reference: AGENTS.md:L9-L14
Useful? React with 👍 / 👎.
Codex review (P2) caught six plugin CLAUDE.md files still instructing users to
run `hermes plugins install .../plugins/<name> --enable`, which needs the
plugin.yaml this PR deletes. Following those docs fails outright.
The same review exposed a second class the first sweep missed: 18 SKILL.md
Hermes-compat notes still describe the adapter-era load contract — skills
reachable only via an explicit `skill_view("<plugin>:<skill>")` call. Under
npx skills they land flat in ~/.hermes/skills/<skill>/ and are indexed
passively, so both the qualified name and the explicit-load instruction are
wrong.
Both classes were invisible to the earlier verification because it grepped for
the deleted artifact names (sync-hermes, HERMES_ELIGIBLE, plugin.yaml) and never
for the user-facing commands that depend on them (hermes plugins install,
skill_view). A removal sweep has to cover both the artifact and its callers.
24 files across 7 plugins. Version bumps: anti-slop-design 0.3.4, github-dev
2.11.1, interview 1.3.1, ml-toolkit 1.4.4, paper-search-tools 1.1.1,
ppt-yeong-style 0.9.4, tcrei-prompt 1.1.3, marketplace 2.9.0.
Refs #166
Diff-logged first, then applied. PR #168's removal sweep grepped the deleted artifact names (sync-hermes, HERMES_ELIGIBLE, plugin.yaml) and reported clean, while 24 files across 7 plugins still carried the commands that consume those artifacts — `hermes plugins install` and `skill_view("<plugin>:<skill>")`. Neither string contains any searched token, so the sweep could not see them. Codex review caught it. Mode 6 is the right query at too narrow a scope; Mode 7 is full scope with the wrong noun. The same PR also repeated Mode 6 verbatim (no --hidden, missed .coderabbit.yaml and .claude/rules/plugin-versioning.md) despite this page already documenting it — recorded in the sources entry, since a lesson that did not transfer is itself evidence about the page. sources 5 -> 6, last_verified 2026-07-27. MOC hook extended. Refs #166
cr-fix iteration 2 — Codex P2 적용, 범위는 지적보다 넓었음Codex 가 6개 플러그인
합쳐서 7개 플러그인 / 24개 파일. 둘 다 이 PR 이 만든 breakage 라 전부 수정했습니다. 왜 최초 검증이 못 잡았나삭제한 산출물 이름( 이번 PR 에서 같은 계열 실패가 세 번 났습니다 — dot-dir 누락( 버전anti-slop-design 0.3.4 · github-dev 2.11.1 · interview 1.3.1 · ml-toolkit 1.4.4 · paper-search-tools 1.1.1 · ppt-yeong-style 0.9.4 · tcrei-prompt 1.1.3 · marketplace 2.9.0 남은 것
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 425f88eab3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ```bash | ||
| node scripts/install-skills.mjs | ||
| ``` | ||
| > 이전에는 Hermes 용 네이티브 어댑터(`plugin.yaml` + `__init__.py`)를 `scripts/sync-hermes-manifests.mjs` 로 생성했습니다. 7 플러그인 / 20 스킬만 덮으면서 버전 범프마다 재생성과 drift 가드를 요구했고 로드에 `skill_view()` 명시 호출이 필요해, #166 에서 제거하고 `npx skills` 경로로 일원화했습니다. |
There was a problem hiding this comment.
기존 Hermes 설치를 새 스킬 경로로 마이그레이션하세요
기존에 문서화된 hermes plugins install 경로로 7개 플러그인을 설치한 사용자가 이 버전으로 hermes plugins update하면, 저장소에 기록된 update 모델대로 git pull만 수행된 뒤(.llmwiki/wiki/plugin-ops/hermes-plugin-adapter.md:76-86) 등록 엔트리포인트인 plugin.yaml과 __init__.py가 사라지지만 ~/.hermes/skills/에는 아무것도 새로 설치되지 않아 기존 20개 스킬을 모두 잃습니다. 현재 안내는 어댑터 제거 사실만 알리고 별도 npx skills 설치본에 대한 update 명령을 기본값으로 제시하므로, 호환 어댑터를 한 릴리스 유지하거나 기존 plugin 사용자가 제거 전에 반드시 npx skills add/설치기를 실행하고 레거시 plugin을 비활성화하도록 명시적인 마이그레이션 절차를 제공해야 합니다.
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Actionable comments posted: 4
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
plugins/github-dev/skills/commit-and-push/SKILL.md (1)
11-24: 🎯 Functional Correctness | 🟠 Major | ⚡ Quick winUse one consistent flat-name Hermes contract.
Each compatibility section still contains a retired qualified Hermes invocation while its changed guidance requires flat skill names.
plugins/github-dev/skills/commit-and-push/SKILL.md#L11-L24: replacegithub-dev:<skill>with the flat skill name.plugins/github-dev/skills/cr-fix/SKILL.md#L11-L24: replacegithub-dev:<skill>with the flat skill name.plugins/ppt-yeong-style/skills/ppt-yeong-style/SKILL.md#L10-L20: replaceppt-yeong-style:ppt-yeong-stylewithppt-yeong-style.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@plugins/github-dev/skills/commit-and-push/SKILL.md` around lines 11 - 24, Use one consistent flat-name Hermes contract in the compatibility sections: in plugins/github-dev/skills/commit-and-push/SKILL.md lines 11-24 and plugins/github-dev/skills/cr-fix/SKILL.md lines 11-24, replace github-dev:<skill> with the flat skill name; in plugins/ppt-yeong-style/skills/ppt-yeong-style/SKILL.md lines 10-20, replace ppt-yeong-style:ppt-yeong-style with ppt-yeong-style.Source: Path instructions
.llmwiki/wiki/log.md (1)
17-21: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winReconcile the Hermes retirement’s issue and PR numbers.
The supplied wiki entries disagree:
.llmwiki/wiki/log.mdcalls the retirement PR#166, while the detector source list calls it PR#168.
.llmwiki/wiki/log.md#L17-L21: distinguish Issue#166from the implementing PR, or correct the PR number..llmwiki/wiki/plugin-ops/detector-cannot-look-vs-nothing-wrong.md#L101-L101: update the source entry to the same canonical attribution.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In @.llmwiki/wiki/log.md around lines 17 - 21, The Hermes retirement references use inconsistent issue and PR numbers. Update .llmwiki/wiki/log.md lines 17-21 to distinguish Issue `#166` from the implementing PR or correct the PR attribution, then update .llmwiki/wiki/plugin-ops/detector-cannot-look-vs-nothing-wrong.md line 101 to use the same canonical attribution.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@plugins/anti-slop-design/CLAUDE.md`:
- Around line 20-22: Remove the remaining qualified Hermes skill-name references
and consistently use flat skill names. In plugins/anti-slop-design/CLAUDE.md
lines 20-22, replace the stale qualified slash-command reference; in
plugins/anti-slop-design/skills/anti-slop-design/SKILL.md line 18,
plugins/ml-toolkit/skills/gpu-parallel-pipeline/SKILL.md line 19,
plugins/ml-toolkit/skills/gradio-cv-app/SKILL.md line 18, and
plugins/ml-toolkit/skills/ml-dev-principles/SKILL.md line 18, rewrite each
qualified-name compatibility heading to describe the flat invocation contract.
In `@plugins/github-dev/skills/create-issue-label/SKILL.md`:
- Line 24: Replace retired qualified Hermes skill namespaces with flat-name
execution wording across the compatibility sections. Update
plugins/github-dev/skills/create-issue-label/SKILL.md:24,
decompose-issue/SKILL.md:24, post-merge/SKILL.md:24, release/SKILL.md:24, and
resolve-issue/SKILL.md:24; update
plugins/tcrei-prompt/skills/tcrei-prompt/SKILL.md:29 from the qualified name to
flat tcrei-prompt. Ensure all Hermes installation and invocation references use
flat skill names consistently.
In `@plugins/github-dev/skills/update-progress/SKILL.md`:
- Line 24: Replace the stale qualified-invocation heading in
plugins/github-dev/skills/update-progress/SKILL.md:24 with wording describing
installation/indexing and flat <skill> invocation. Remove the retired qualified
headings at plugins/interview/skills/interview-methodology/SKILL.md:24,
plugins/ml-toolkit/skills/cv-explorer/SKILL.md:19, and
plugins/ml-toolkit/skills/cv-notebook/SKILL.md:19, while preserving the
surrounding compatibility guidance.
In `@plugins/tcrei-prompt/skills/tcrei-prompt/SKILL.md`:
- Line 29: Update the skill’s interactive-input workflow and compatibility
guidance to branch by runtime: use AskUserQuestion for Claude,
request_user_input for Codex, and clarify for Hermes. Ensure the interview
remains functionally equivalent across all supported runtimes and explicitly
documents each capability.
---
Outside diff comments:
In @.llmwiki/wiki/log.md:
- Around line 17-21: The Hermes retirement references use inconsistent issue and
PR numbers. Update .llmwiki/wiki/log.md lines 17-21 to distinguish Issue `#166`
from the implementing PR or correct the PR attribution, then update
.llmwiki/wiki/plugin-ops/detector-cannot-look-vs-nothing-wrong.md line 101 to
use the same canonical attribution.
In `@plugins/github-dev/skills/commit-and-push/SKILL.md`:
- Around line 11-24: Use one consistent flat-name Hermes contract in the
compatibility sections: in plugins/github-dev/skills/commit-and-push/SKILL.md
lines 11-24 and plugins/github-dev/skills/cr-fix/SKILL.md lines 11-24, replace
github-dev:<skill> with the flat skill name; in
plugins/ppt-yeong-style/skills/ppt-yeong-style/SKILL.md lines 10-20, replace
ppt-yeong-style:ppt-yeong-style with ppt-yeong-style.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 4f616ae3-806c-4847-bfe5-89b7756ad0bc
📒 Files selected for processing (42)
.claude-plugin/marketplace.json.llmwiki/wiki/index.md.llmwiki/wiki/log.md.llmwiki/wiki/plugin-ops/detector-cannot-look-vs-nothing-wrong.mdplugins/anti-slop-design/.claude-plugin/plugin.jsonplugins/anti-slop-design/.codex-plugin/plugin.jsonplugins/anti-slop-design/CLAUDE.mdplugins/anti-slop-design/skills/anti-slop-design/SKILL.mdplugins/github-dev/.claude-plugin/plugin.jsonplugins/github-dev/.codex-plugin/plugin.jsonplugins/github-dev/CLAUDE.mdplugins/github-dev/skills/commit-and-push/SKILL.mdplugins/github-dev/skills/cr-fix/SKILL.mdplugins/github-dev/skills/create-issue-label/SKILL.mdplugins/github-dev/skills/decompose-issue/SKILL.mdplugins/github-dev/skills/post-merge/SKILL.mdplugins/github-dev/skills/release/SKILL.mdplugins/github-dev/skills/resolve-issue/SKILL.mdplugins/github-dev/skills/update-progress/SKILL.mdplugins/interview/.claude-plugin/plugin.jsonplugins/interview/.codex-plugin/plugin.jsonplugins/interview/CLAUDE.mdplugins/interview/skills/interview-methodology/SKILL.mdplugins/ml-toolkit/.claude-plugin/plugin.jsonplugins/ml-toolkit/.codex-plugin/plugin.jsonplugins/ml-toolkit/CLAUDE.mdplugins/ml-toolkit/skills/cv-explorer/SKILL.mdplugins/ml-toolkit/skills/cv-notebook/SKILL.mdplugins/ml-toolkit/skills/gpu-parallel-pipeline/SKILL.mdplugins/ml-toolkit/skills/gradio-cv-app/SKILL.mdplugins/ml-toolkit/skills/ml-dev-principles/SKILL.mdplugins/paper-search-tools/.claude-plugin/plugin.jsonplugins/paper-search-tools/.codex-plugin/plugin.jsonplugins/paper-search-tools/skills/setup/SKILL.mdplugins/ppt-yeong-style/.claude-plugin/plugin.jsonplugins/ppt-yeong-style/.codex-plugin/plugin.jsonplugins/ppt-yeong-style/CLAUDE.mdplugins/ppt-yeong-style/skills/ppt-yeong-style/SKILL.mdplugins/tcrei-prompt/.claude-plugin/plugin.jsonplugins/tcrei-prompt/.codex-plugin/plugin.jsonplugins/tcrei-prompt/CLAUDE.mdplugins/tcrei-prompt/skills/tcrei-prompt/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (1)
- .llmwiki/wiki/index.md
| It lands in `~/.hermes/skills/anti-slop-design/`, which Hermes indexes automatically — it shows up in `skills_list()` and as a slash command under its **flat** name `anti-slop-design`, not `anti-slop-design:anti-slop-design`. | ||
|
|
||
| ```text | ||
| skill_view("anti-slop-design:anti-slop-design") | ||
| ``` | ||
|
|
||
| The skill body carries a Hermes compatibility table mapping Claude/Codex tool terms (`AskUserQuestion`, `Read`, `Skill`) to Hermes tools (`clarify`, `read_file`, `skill_view`). The Korean-copy handoff to `humanize-korean` runs via `skill_view("humanize-korean:humanize-korean")` under Hermes. | ||
| The skill body carries a Hermes compatibility table mapping Claude/Codex tool terms (`AskUserQuestion`, `Read`, `Skill`) to Hermes tools (`clarify`, `read_file`, `skill_view`). The Korean-copy handoff runs against the separately-installed `humanize-korean` skill. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Remove the remaining qualified Hermes namespace references.
The changed text consistently introduces flat skill names, but each affected file still retains nearby plugin:skill wording that describes the retired invocation contract.
plugins/anti-slop-design/CLAUDE.md#L20-L22: replace the stale qualified slash-command reference in the skill listing.plugins/anti-slop-design/skills/anti-slop-design/SKILL.md#L18-L18: rewrite the qualified-name compatibility heading.plugins/ml-toolkit/skills/gpu-parallel-pipeline/SKILL.md#L19-L19: rewrite the qualified-name compatibility heading.plugins/ml-toolkit/skills/gradio-cv-app/SKILL.md#L18-L18: rewrite the qualified-name compatibility heading.plugins/ml-toolkit/skills/ml-dev-principles/SKILL.md#L18-L18: rewrite the qualified-name compatibility heading.
📍 Affects 5 files
plugins/anti-slop-design/CLAUDE.md#L20-L22(this comment)plugins/anti-slop-design/skills/anti-slop-design/SKILL.md#L18-L18plugins/ml-toolkit/skills/gpu-parallel-pipeline/SKILL.md#L19-L19plugins/ml-toolkit/skills/gradio-cv-app/SKILL.md#L18-L18plugins/ml-toolkit/skills/ml-dev-principles/SKILL.md#L18-L18
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@plugins/anti-slop-design/CLAUDE.md` around lines 20 - 22, Remove the
remaining qualified Hermes skill-name references and consistently use flat skill
names. In plugins/anti-slop-design/CLAUDE.md lines 20-22, replace the stale
qualified slash-command reference; in
plugins/anti-slop-design/skills/anti-slop-design/SKILL.md line 18,
plugins/ml-toolkit/skills/gpu-parallel-pipeline/SKILL.md line 19,
plugins/ml-toolkit/skills/gradio-cv-app/SKILL.md line 18, and
plugins/ml-toolkit/skills/ml-dev-principles/SKILL.md line 18, rewrite each
qualified-name compatibility heading to describe the flat invocation contract.
| | AskUserQuestion | clarify | | ||
|
|
||
| Treat `$ARGUMENTS` as the natural-language arguments supplied when the user asks Hermes to load the skill. Plugin-provided skills are explicit opt-in loads in Hermes; use `skill_view("tcrei-prompt:tcrei-prompt")` (or ask Hermes to load that qualified skill) rather than relying on bare text. | ||
| Treat `$ARGUMENTS` as the natural-language arguments supplied when the user asks Hermes to load the skill. Installed into `~/.hermes/skills/` by `npx skills`, this skill is indexed automatically — it appears in `skills_list()` and as a slash command under its **flat** name `tcrei-prompt`. |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | ⚡ Quick win
Document capability-aware interactive input.
This skill’s workflow requires user questions, but its rules only prescribe AskUserQuestion; the compatibility section does not account for Codex request_user_input. Add explicit Claude/Codex/Hermes branching so the interview works under every supported runtime.
As per path instructions, shared skills must account for AskUserQuestion, request_user_input, and clarify.
🧰 Tools
🪛 SkillSpector (2.3.11)
[warning] 29: [RP1] null: npx commands without a version suffix (e.g. @1.0.0) create a rug-pull risk if the upstream server is compromised and publishes a malicious update.
Remediation: Pin the version: npx @scope/server@1.2.3
(MCP Rug Pull (RP1))
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@plugins/tcrei-prompt/skills/tcrei-prompt/SKILL.md` at line 29, Update the
skill’s interactive-input workflow and compatibility guidance to branch by
runtime: use AskUserQuestion for Claude, request_user_input for Codex, and
clarify for Hermes. Ensure the interview remains functionally equivalent across
all supported runtimes and explicitly documents each capability.
Source: Path instructions
Two review rounds, two findings.
CodeRabbit (Major + Minor): the previous commit fixed the load-contract
sentence but left the compatibility header ten lines above it reading "When
this skill is loaded through Hermes as `<plugin>:<skill>`". 17 SKILL.md files
still named the retired qualified form as the live contract. Now they read
"When this skill runs under Hermes". The one remaining mention of the
qualified name is a deliberate contrast in the install prose ("flat name X, not
plugin:X"), which orients someone migrating rather than instructing them.
Codex (P1): existing `hermes plugins install` users lose everything on update.
`hermes plugins update` is a plain git pull with no version compare (recorded
in .llmwiki/wiki/plugin-ops/hermes-plugin-adapter.md), so pulling this release
deletes plugin.yaml/__init__.py — the registration entrypoints — while nothing
populates ~/.hermes/skills/ in their place. The 20 skills silently vanish.
README now carries an ordered migration: install the skills FIRST, verify
~/.hermes/skills/, then disable the legacy plugin. Recovery is documented too
(reinstall the skills; nothing is lost but registration state).
A one-release compatibility adapter was considered and rejected — it would
reinstate the machinery this PR removes to protect a route with no measured
user (~/.hermes/plugins/ holds one unrelated plugin).
anti-slop-design 0.3.5, github-dev 2.11.2, interview 1.3.2, ml-toolkit 1.4.5,
ppt-yeong-style 0.9.5, tcrei-prompt 1.1.4, marketplace 2.9.1.
Refs #166
cr-fix iteration 3 — CR 2건 + Codex P1 적용CodeRabbit (Major + Minor) — 헤더를 놓쳤음직전 커밋이 로드 계약 문장은 고쳤는데, 그 10줄 위의 호환성 헤더를 안 건드렸습니다. 17개 SKILL.md 가 여전히 qualified 이름이 남은 곳은 설치 안내 산문의 대조 표현 하나뿐입니다 ("평평한 이름 X, Codex (P1) — 기존 사용자가 스킬을 전부 잃는다제가 놓친 진짜 문제입니다. README 에 순서가 중요한 마이그레이션 절차를 넣었습니다:
이미 update 를 먼저 돌린 경우의 복구 절차도 함께 적었습니다 — 스킬만 재설치하면 되고, 사라지는 건 등록 상태일 뿐 데이터 손실은 없습니다. 한 릴리스짜리 호환 어댑터 유지는 검토 후 기각했습니다. 이 PR 이 제거하는 기계장치를 되살리는 셈인데, 보호 대상 경로에 실측된 사용자가 없습니다 ( 버전anti-slop-design 0.3.5 · github-dev 2.11.2 · interview 1.3.2 · ml-toolkit 1.4.5 · ppt-yeong-style 0.9.5 · tcrei-prompt 1.1.4 · marketplace 2.9.1 여전히 보류
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 79ee0be5e8
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| | Monitor | process | | ||
|
|
||
| Treat `$ARGUMENTS` as the natural-language arguments supplied when the user asks Hermes to load the skill. Plugin-provided skills are explicit opt-in loads in Hermes; use `skill_view("github-dev:<skill>")` (or ask Hermes to load that qualified skill) rather than relying on bare text like `github-dev:<skill> ...`. | ||
| Treat `$ARGUMENTS` as the natural-language arguments supplied when the user asks Hermes to run the skill. Installed into `~/.hermes/skills/` by `npx skills`, this skill is indexed automatically — it appears in `skills_list()` and as a slash command under its **flat** name (`<skill>`, not `github-dev:<skill>`). |
There was a problem hiding this comment.
Resolve the default flat Hermes skill directory
When HERMES_HOME is unset—the installer's normal default-profile case—this new delivery path installs the skill at ~/.hermes/skills/cr-fix, but Step 1 still falls through to ~/.hermes/plugins/github-dev/skills/cr-fix and invokes parse-args.sh from that nonexistent directory. Consequently, the newly advertised flat Hermes invocation fails before parsing arguments; make the default fallback use the flat directory as well. The same stale default-layout fallback also remains in gpu-parallel-pipeline.
AGENTS.md reference: AGENTS.md:L241-L243
Useful? React with 👍 / 👎.
| @@ -1,5 +0,0 @@ | |||
| name: brightdata-guide | |||
There was a problem hiding this comment.
Bump brightdata-guide after deleting its adapter
Fresh evidence in the final diff narrows the previously reported versioning issue: the other six plugins whose adapters were removed now have version bumps, but brightdata-guide still remains at 1.1.0 in both source manifests despite deleting two files from its plugin tree. Give this plugin a PATCH bump, synchronize the marketplace entry, and regenerate its Codex manifest so the change satisfies the repository's any-file version contract.
AGENTS.md reference: AGENTS.md:L153-L156
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
plugins/anti-slop-design/skills/anti-slop-design/SKILL.md (1)
18-18: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick winUse run-time wording for Hermes arguments.
These lines describe
$ARGUMENTSas being supplied when Hermes “loads” the skill. Change that to “runs” the skill so the documentation matches flat slash-command execution.
plugins/anti-slop-design/skills/anti-slop-design/SKILL.md#L18-L18: replace “load” with “run”.plugins/ml-toolkit/skills/gradio-cv-app/SKILL.md#L18-L18: replace “load” with “run”.plugins/ml-toolkit/skills/ml-dev-principles/SKILL.md#L18-L18: replace “load” with “run”.plugins/ppt-yeong-style/skills/ppt-yeong-style/SKILL.md#L20-L20: replace “load” with “run”.plugins/tcrei-prompt/skills/tcrei-prompt/SKILL.md#L29-L29: replace “load” with “run”.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@plugins/anti-slop-design/skills/anti-slop-design/SKILL.md` at line 18, Replace “loads the skill” with “runs the skill” in the $ARGUMENTS documentation at plugins/anti-slop-design/skills/anti-slop-design/SKILL.md lines 18-18 and plugins/ml-toolkit/skills/gradio-cv-app/SKILL.md lines 18-18; apply the same wording change at plugins/ml-toolkit/skills/ml-dev-principles/SKILL.md line 18, plugins/ppt-yeong-style/skills/ppt-yeong-style/SKILL.md line 20, and plugins/tcrei-prompt/skills/tcrei-prompt/SKILL.md line 29.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@plugins/anti-slop-design/skills/anti-slop-design/SKILL.md`:
- Line 18: Replace “loads the skill” with “runs the skill” in the $ARGUMENTS
documentation at plugins/anti-slop-design/skills/anti-slop-design/SKILL.md lines
18-18 and plugins/ml-toolkit/skills/gradio-cv-app/SKILL.md lines 18-18; apply
the same wording change at plugins/ml-toolkit/skills/ml-dev-principles/SKILL.md
line 18, plugins/ppt-yeong-style/skills/ppt-yeong-style/SKILL.md line 20, and
plugins/tcrei-prompt/skills/tcrei-prompt/SKILL.md line 29.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: 4d37012c-e663-4a89-ab1f-b1fc1c7c3acf
📒 Files selected for processing (31)
.claude-plugin/marketplace.jsonREADME.mdplugins/anti-slop-design/.claude-plugin/plugin.jsonplugins/anti-slop-design/.codex-plugin/plugin.jsonplugins/anti-slop-design/skills/anti-slop-design/SKILL.mdplugins/github-dev/.claude-plugin/plugin.jsonplugins/github-dev/.codex-plugin/plugin.jsonplugins/github-dev/skills/commit-and-push/SKILL.mdplugins/github-dev/skills/cr-fix/SKILL.mdplugins/github-dev/skills/create-issue-label/SKILL.mdplugins/github-dev/skills/decompose-issue/SKILL.mdplugins/github-dev/skills/post-merge/SKILL.mdplugins/github-dev/skills/release/SKILL.mdplugins/github-dev/skills/resolve-issue/SKILL.mdplugins/github-dev/skills/update-progress/SKILL.mdplugins/interview/.claude-plugin/plugin.jsonplugins/interview/.codex-plugin/plugin.jsonplugins/interview/skills/interview-methodology/SKILL.mdplugins/ml-toolkit/.claude-plugin/plugin.jsonplugins/ml-toolkit/.codex-plugin/plugin.jsonplugins/ml-toolkit/skills/cv-explorer/SKILL.mdplugins/ml-toolkit/skills/cv-notebook/SKILL.mdplugins/ml-toolkit/skills/gpu-parallel-pipeline/SKILL.mdplugins/ml-toolkit/skills/gradio-cv-app/SKILL.mdplugins/ml-toolkit/skills/ml-dev-principles/SKILL.mdplugins/ppt-yeong-style/.claude-plugin/plugin.jsonplugins/ppt-yeong-style/.codex-plugin/plugin.jsonplugins/ppt-yeong-style/skills/ppt-yeong-style/SKILL.mdplugins/tcrei-prompt/.claude-plugin/plugin.jsonplugins/tcrei-prompt/.codex-plugin/plugin.jsonplugins/tcrei-prompt/skills/tcrei-prompt/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (8)
- plugins/ml-toolkit/.codex-plugin/plugin.json
- plugins/ml-toolkit/.claude-plugin/plugin.json
- plugins/tcrei-prompt/.codex-plugin/plugin.json
- plugins/tcrei-prompt/.claude-plugin/plugin.json
- plugins/github-dev/.claude-plugin/plugin.json
- plugins/interview/.claude-plugin/plugin.json
- plugins/ppt-yeong-style/.codex-plugin/plugin.json
- README.md
Codex P1, and the only functional bug this PR produced rather than a doc drift. Both SKILL_DIR resolvers ended with $HOME/.hermes/plugins/<plugin>/skills/<skill> — the plugin-adapter layout this PR deletes. Every branch above it that could have reached the flat layout is guarded by [ -n "$HERMES_HOME" ], and the default profile leaves that variable unset, so a normal Hermes install fell through to a directory that does not exist. cr-fix would have failed at Step 1 before parsing a single argument. Reordered so the flat layout npx skills actually writes comes first among the Hermes branches, kept the legacy adapter paths as explicit fallbacks for a profile installed before #166, and made the terminal default flat. Two resolver test cases added, RED-verified against the previous resolver: the old code returned .hermes/plugins/... where .hermes/skills/... was expected. Suite 87 -> 89. Codex also caught brightdata-guide sitting at 1.1.0 while the other six adapter-deleted plugins were bumped — the inconsistency read as an oversight rather than the "generated artifacts need no bump" call it was, so it is bumped too and the rule now applies uniformly. brightdata-guide 1.1.1, github-dev 2.11.3, ml-toolkit 1.4.6, marketplace 2.9.2. Refs #166
cr-fix iteration 4 — Codex P1 2건 적용, CR 2건 skip (사유 명시)Codex P1-1 — 이 PR 이 만든 유일한 기능 버그지금까지 지적은 전부 문서 drift 였는데 이건 실제로 깨집니다.
수정: Hermes 분기 중 resolver 테스트 2건 추가 (RED 검증 완료) — 옛 resolver 로 돌리면 같은 함정이 다른 스킬에도 있는지 호출부 기준으로 재검색했고, 남은 Codex P1-2 — brightdata-guide 범프 누락어댑터가 삭제된 7개 중 6개는 범프됐는데 skip 2건
버전brightdata-guide 1.1.1 · github-dev 2.11.3 · ml-toolkit 1.4.6 · marketplace 2.9.2 |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c6c3ce5266
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // Hermes has no eligibility set: it consumes `plugins/<name>/skills/` through | ||
| // `npx skills` (scripts/install-skills.mjs), which covers every skill-bearing plugin | ||
| // with no per-plugin allowlist to keep in sync. The old HERMES_ELIGIBLE allowlist and |
There was a problem hiding this comment.
hermes-agent 대상으로 edit-notebook 같은 기존 스킬을 선택하면 설치에는 성공하지만 실행할 수 없습니다. 이 변경은 모든 skill-bearing plugin을 Hermes 지원 대상으로 취급하지만, plugins/notebook/skills/edit-notebook/SKILL.md:8-14는 Hermes에 없는 NotebookEdit만 사용하도록 강제하면서 Edit/Write/Bash 대체 경로까지 금지합니다. 따라서 52개 전체를 노출하기 전에 Hermes 호환 경로가 없는 스킬을 대상 목록에서 필터링하거나 해당 본문을 Jupyter Live Kernel/write_file/patch 경로로 이관해야 합니다.
AGENTS.md reference: AGENTS.md:L247-L247
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@plugins/github-dev/skills/cr-fix/SKILL.md`:
- Around line 89-90: Update the default-profile resolver ordering so the flat
installation path is checked before the legacy path. In
plugins/github-dev/skills/cr-fix/SKILL.md lines 89-90, prioritize
~/.hermes/skills/cr-fix; apply the same ordering in
plugins/ml-toolkit/skills/gpu-parallel-pipeline/SKILL.md line 129 for
~/.hermes/skills/gpu-parallel-pipeline.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: b514975a-ccbb-4763-a6a9-1694f773e73d
📒 Files selected for processing (10)
.claude-plugin/marketplace.jsonplugins/brightdata-guide/.claude-plugin/plugin.jsonplugins/brightdata-guide/.codex-plugin/plugin.jsonplugins/github-dev/.claude-plugin/plugin.jsonplugins/github-dev/.codex-plugin/plugin.jsonplugins/github-dev/skills/cr-fix/SKILL.mdplugins/github-dev/skills/cr-fix/tests/run-tests.shplugins/ml-toolkit/.claude-plugin/plugin.jsonplugins/ml-toolkit/.codex-plugin/plugin.jsonplugins/ml-toolkit/skills/gpu-parallel-pipeline/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (4)
- plugins/ml-toolkit/.claude-plugin/plugin.json
- plugins/github-dev/.claude-plugin/plugin.json
- plugins/ml-toolkit/.codex-plugin/plugin.json
- plugins/github-dev/.codex-plugin/plugin.json
CodeRabbit (Major): both resolvers probed the legacy $HOME/.hermes/plugins/... path before the flat one, so a half-migrated machine carrying both directories would run the stale adapter copy. Flat is probed first now. The terminal else stays flat — my first pass at this reordering moved it to the legacy path and the new default-profile test caught it (89 pass, 1 fail) before it shipped. Third resolver case added: flat beats legacy when both exist. Suite 89 -> 90. Codex (P1 x2): the docs claimed all 52 skills work under Hermes. Measured, they do not. npx skills carries the skills/<skill>/ directory and nothing above it — -s cr-fix arrives whole (23 scripts included), -s e2e-author arrives as a lone SKILL.md because its role-contracts.md lives at plugin level. So two classes install but cannot run: skills depending on plugin-level files (e2e-harness, deepwiki, docs-forge, llm-wiki) and skills mandating a tool Hermes lacks (notebook:edit-notebook is NotebookEdit-only and forbids Edit/Write). The first class never worked on Hermes — none of those plugins were in the old HERMES_ELIGIBLE allowlist — so this is an overclaim in my own documentation, not a regression. README and AGENTS.md now state the boundary, with the measurement behind it, plus the authoring rule it implies: bundle a skill's files inside skills/<skill>/, not at plugin level. The installer deliberately does not filter these out — a filter is the allowlist this PR just removed, wearing a different name. Per-skill portability audit is follow-up work. github-dev 2.11.4, ml-toolkit 1.4.7, marketplace 2.9.3. Refs #166
cr-fix iteration 5 (cap) — CR Major + Codex P1 2건 적용, 루프 종료
CodeRabbit (Major) — resolver 우선순위flat 보다 legacy 솔직히 적자면 첫 수정이 틀렸습니다 — 순서를 바꾸면서 최종 Codex P1 x2 — 커버리지 주장이 과장이었음문서가 "52개 스킬 전부 Hermes 커버" 라고 썼는데 실측으로 사실이 아닙니다. 경계가 명확합니다 —
즉 회귀가 아니라 제 문서의 과장입니다. README·AGENTS.md 에 측정 근거와 함께 경계를 명시했고, 여기서 파생되는 저작 규칙도 넣었습니다 — 스킬의 번들 파일은 plugin-level 이 아니라 설치기에 필터를 넣는 안은 기각했습니다. 그건 이 PR 이 제거한 최종 상태남은 skip 3건: 파생 이슈: #169 (Codex 훅 trust) · #170 (0.135→0.145 표기) · #171 (Hermes 이식성 감사) |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
plugins/github-dev/skills/cr-fix/SKILL.md (1)
102-102: 📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick winResolver 설명을 실제 분기 순서와 일치시키세요.
코드는 기본 Hermes 프로필에서 flat 경로(
~/.hermes/skills/cr-fix)를 legacy 경로보다 먼저 검사하지만, Line 102는 legacy 경로가 먼저이고 flat 경로가 최종 fallback인 것처럼 설명합니다. 실제 순서대로 설명을 수정해 향후 유지보수와 장애 진단의 혼선을 막아 주세요.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@plugins/github-dev/skills/cr-fix/SKILL.md` at line 102, Update the SKILL_DIR resolution description in the referenced documentation to match the implementation’s actual order: check the default Hermes flat path (~/.hermes/skills/cr-fix) before the legacy default Hermes plugin path, while preserving the existing Claude, source-tree, Codex cache, and active-profile branches.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@AGENTS.md`:
- Line 243: Update the Hermes skill examples in AGENTS.md lines 243-243 and
README.md lines 712-712, replacing the legacy qualified name
“notebook:edit-notebook” with the flat skill name “edit-notebook” in both
locations.
---
Outside diff comments:
In `@plugins/github-dev/skills/cr-fix/SKILL.md`:
- Line 102: Update the SKILL_DIR resolution description in the referenced
documentation to match the implementation’s actual order: check the default
Hermes flat path (~/.hermes/skills/cr-fix) before the legacy default Hermes
plugin path, while preserving the existing Claude, source-tree, Codex cache, and
active-profile branches.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Pro Plus
Run ID: f0ede217-ea48-4765-a011-cbd2dc0c0d85
📒 Files selected for processing (10)
.claude-plugin/marketplace.jsonAGENTS.mdREADME.mdplugins/github-dev/.claude-plugin/plugin.jsonplugins/github-dev/.codex-plugin/plugin.jsonplugins/github-dev/skills/cr-fix/SKILL.mdplugins/github-dev/skills/cr-fix/tests/run-tests.shplugins/ml-toolkit/.claude-plugin/plugin.jsonplugins/ml-toolkit/.codex-plugin/plugin.jsonplugins/ml-toolkit/skills/gpu-parallel-pipeline/SKILL.md
🚧 Files skipped from review as they are similar to previous changes (5)
- plugins/github-dev/.codex-plugin/plugin.json
- plugins/ml-toolkit/.codex-plugin/plugin.json
- plugins/ml-toolkit/.claude-plugin/plugin.json
- plugins/github-dev/skills/cr-fix/tests/run-tests.sh
- plugins/github-dev/.claude-plugin/plugin.json
| - `__init__.py` 는 `skills/*/SKILL.md` 를 `<plugin>:<skill>` 으로 등록하는 제네릭 엔트리포인트입니다 (플러그인별 로직 없음, `import yaml`=PyYAML 가정). | ||
| - Hermes Agent 도 **동일한** `plugins/<name>/` 트리를 직접 읽습니다. 다만 **생성 산출물이 없습니다** — `npx skills`(vercel-labs/skills)가 `.claude-plugin/marketplace.json` 을 직접 파싱해 `plugins/<name>/skills/*/SKILL.md` 를 찾아 `~/.hermes/skills/` 로 설치합니다. `scripts/install-skills.mjs` 는 그 위에 플러그인 그룹 선택기와 `HERMES_HOME` 프로필 타겟팅만 얹은 zero-dep 래퍼입니다. | ||
| - **설치** 커버리지는 allowlist 가 아니라 "스킬을 가진 플러그인 전부"입니다 (현재 23 플러그인 / 52 스킬). 유지할 명단이 없으므로 플러그인을 추가해도 Hermes 쪽에 할 일이 없습니다. | ||
| - **설치 가능 ≠ 실행 가능.** `npx skills` 는 `skills/<skill>/` 디렉터리 안만 나릅니다 — 그 하위 `scripts/`·`references/`·`assets/` 는 따라오지만 **plugin-level 파일은 오지 않습니다** (실측 2026-07-27: `-s cr-fix` 는 scripts 23개 포함 온전, `-s e2e-author` 는 `SKILL.md` 하나만). 따라서 (a) plugin-level 파일에 의존하는 스킬(`e2e-harness`·`deepwiki`·`docs-forge`·`llm-wiki`)과 (b) Hermes 에 없는 도구를 강제하는 스킬(`notebook:edit-notebook` 의 `NotebookEdit` 전용 규칙)은 설치돼도 실행되지 않습니다. (a) 부류는 이전 어댑터 allowlist 에도 없어 Hermes 에서 동작한 적이 없습니다. 설치기는 이를 필터링하지 않습니다 — 필터는 방금 없앤 allowlist 의 재도입이기 때문입니다. **새 skill 이 번들 파일을 쓸 때는 plugin-level 이 아니라 `skills/<skill>/` 안에 두세요.** |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
Hermes 스킬 예시에서 legacy qualified 이름을 제거하세요.
두 문서가 flat namespace를 설명하면서도 notebook:edit-notebook을 사용합니다. Hermes 설치 후 실제 스킬 이름은 edit-notebook처럼 평평한 이름이어야 하므로, 이 예시를 flat 이름으로 통일하세요.
AGENTS.md#L243-L243:notebook:edit-notebook을edit-notebook으로 수정하세요.README.md#L712-L712: 동일한 예시를edit-notebook으로 수정하세요.
Based on learnings, Hermes는 ~/.hermes/skills/<skill>/에 flat skill name으로 설치하며 ml-toolkit:<skill> 형식은 사용하지 않습니다.
🧰 Tools
🪛 LanguageTool
[grammar] ~243-~243: Ensure spelling is correct
Context: ...deepwiki·docs-forge·llm-wiki)과 (b) Hermes 에 없는 도구를 강제하는 스킬(notebook:edit-noteboo...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
[grammar] ~243-~243: Ensure spelling is correct
Context: ...적이 없습니다. 설치기는 이를 필터링하지 않습니다 — 필터는 방금 없앤 allowlist 의 재도입이기 때문입니다. **새 skill 이 번들 파일을 쓸 때는 ...
(QB_NEW_EN_ORTHOGRAPHY_ERROR_IDS_1)
📍 Affects 2 files
AGENTS.md#L243-L243(this comment)README.md#L712-L712
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@AGENTS.md` at line 243, Update the Hermes skill examples in AGENTS.md lines
243-243 and README.md lines 712-712, replacing the legacy qualified name
“notebook:edit-notebook” with the flat skill name “edit-notebook” in both
locations.
Source: Learnings
Closes #166.
Hermes 어댑터 계층을 제거하고 Hermes 스킬 전달을
npx skills로 넘긴다. Claude Code 와 Codex 는 건드리지 않았다.marketplace.json+plugins/*/네이티브sync-codex-manifests.mjs→.codex-plugin/plugin.jsonsync-hermes-manifests.mjs→plugin.yaml+__init__.pynpx skills는 스킬만 나른다. Codex 매니페스트가 실제로 나르는 비-스킬 화물이 있어 그쪽은 남긴다 —core-config(훅 4개, 스킬 0개 → 플러그인 전체가 증발하고prompt_inject.sh주입 지침이 에러 없이 죽는다),llm-wiki(훅 6개),paper-search-tools(MCP 서버 1개). Hermes 어댑터가 나르던 비-스킬 화물은 0개였다.근거 (실측)
npx skills가 이 repo 를 그대로 읽는다npx skills add . -l→Found 52 skillssrc/plugin-manifest.ts가.claude-plugin/marketplace.json파싱npx skills23 / 52~/.hermes/plugins/에orca-status하나뿐,~/.hermes/skills/디렉터리 자체가 없었음~/.hermes/skills/가 SoTnpx skills add . -a hermes-agent -s cr-fix -g→~/.hermes/skills/cr-fix/SKILL.md생성 후remove로 정리기능적으로도 상위다. 어댑터 경로는
skill_view("<plugin>:<skill>")명시 로드를 요구했지만~/.hermes/skills/설치본은skills_list()에 자동 노출되고 슬래시 커맨드가 된다.커밋 구성
1b3a507HERMES_ELIGIBLE+ doc-consistency 검사 2건 + pre-commit/CI 스텝 제거edacdbdcode-scout·e2e-harness본문 6곳의 "Hermes 미로드" 서술 정정 + 버전 범프6f7c932e4296aa7866b2e검증 중 발견해서 고친 것 두 가지
두 건 모두 원래 계획에 없었고, 실행하면서 사실과 어긋나는 것을 발견해 고쳤다.
-a hermes-agent는 심볼릭 링크가 아니라 복사한다. end-to-end 설치 실행 결과~/.hermes/skills/cr-fix가 실제 디렉터리로 생성됐다 (~/.claude/skills/*는~/.agents/skills/로의 심볼릭 링크). 처음 쓴 문서는 심볼릭 링크라고 단정했으므로e4296aa에서 정정했다 — 소스 트리를 고쳐도 Hermes 설치본에 자동 반영되지 않는다는 실무적 함의가 따라온다.hermes-plugin-adapter.md의sources:가 원래부터 1 어긋나 있었다 (frontmatter 5, 실제## Sources6개). 이번에 항목을 추가하며 7로 맞췄고 log.md 에 명시했다.위키 처리 (
7866b2e)hermes-plugin-adapter.md는 삭제하지 않고status: stale+> Superseded-by:로 넘겼다. 메커니즘은 사라져도 그 페이지의 실측 발견은 남기 때문이다 — upstream 소스 대조로 확정한register_skill시그니처,hermes plugins update가 버전 비교 없는 순수git pull이라는 사실, 그리고 어댑터가 생성만 되고 한 번도 실행되지 않았다는 사각지대(CI 가 바이트 drift 만 검사해서 동작이 깨져도 모든 가드를 통과했을 것). 마지막 항목은 이번 은퇴의 구조적 근거 그 자체다.skills-install-wrapper.md가 Hermes 허브를 넘겨받았다 — 단일 전달 경로, 스킬 수 47→52, 평평한 네임스페이스가 외부 스킬과 충돌할 수 있다는 위험(--selftest는 repo 내부만 보증), 해소된 layout divergence, 그리고 위 실측 2건.알려진 회귀 (수용)
hermes plugins install .../plugins/<name>경로 소멸. 대체는node scripts/install-skills.mjs(타겟hermes-agent), 커버리지는 20 → 52 스킬로 증가.~/.agents/skills/cr-fix/이지github-dev:cr-fix가 아니다. 이 PR 이 만드는 회귀가 아니라npx skills의 기존 성질이며, 문서와 위키 양쪽에 명시했다.검증
diffstat: 42 files changed, 184 insertions(+), 847 deletions(-)
리뷰어 참고
code_review.md:36의(total − 2 excluded: core-config·codex-image)는 기존 drift 다.core-config는 이전 PR 에서 Codex-eligible 이 됐으므로 실제로는total − 1이다. 같은 줄의 Hermes 조각만 제거하고 카운트는 surgical-diff 원칙에 따라 손대지 않았다 — 별건으로 처리하는 게 맞다고 판단했다.plugin.yaml/__init__.py7쌍은 marketplace 파생 생성물이라 해당 7개 플러그인은 버전 범프하지 않았다. 본문이 실제로 바뀐code-scout·e2e-harness만 PATCH 범프했다.metadata.version은 2.7.0 → 2.8.0 (MINOR). 슬라이드브 플러그인을 제거한 feat(search-stack): replace firecrawl with brightdata, remove slidev plugin #164 가 2.6.1 → 2.7.0 이었던 선례를 따랐다.Summary by CodeRabbit
New Features
npx skillsworkflow, with passive indexing so installed skills appear as slash commands (no adapter-style enablement).Documentation
$ARGUMENTSwording across multiple skills, plus consolidated guidance on post-install behavior and runtime routing.Chores