Skip to content

fix(registry): install harness-neutral skills for Claude Code too - #32

Merged
sjunepark merged 2 commits into
mainfrom
claude/skill-targets-both-harnesses
Oct 6, 2026
Merged

sjunepark merged 2 commits into
mainfrom
claude/skill-targets-both-harnesses

Conversation

@sjunepark

@sjunepark sjunepark commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

Problem

brainstorming, macos-storage-cleanup, and windows-cleanup were restricted to the .agents target in targetExceptions, so sjskills never placed them in .claude/skills and they were invisible in Claude Code. (macos-storage-cleanup is currently in no desired set, so for it this only corrects the target policy.) None of them depends on Codex:

  • brainstorming was added only to the Codex list of the old per-harness global-skills.json (bcc2cc3); the registry migration (7cd9e88) preserved that as a target exception.
  • The two cleanup skills were registered as Codex skills by default when added.

Change

  • Drop the three targetExceptions entries so the skills install to both .agents and .claude.

  • Make brainstorming's dispatch step harness-neutral: it named Codex's fork_turns: "none" only, and now states the intent (a fresh, non-forked subagent) with the Codex and Claude Code forms.

  • Add disable-model-invocation: true to all three so Claude Code keeps them manual-only, matching allow_implicit_invocation: false.

  • In Claude Code, brainstorming passes the caller's model explicitly so a configured subagent default does not override it.

codex-cleanup, delegate-ui-to-claude, and impeccable keep their single target; each is tied to one harness.

Validation

  • node scripts/validate-skills — 31 skills, registry, and global instructions pass.
  • Node tests (skill-registry, global-instructions, audit-global-skills, sjskills-hook) — 40 pass, 0 fail.
  • go test ./internal/... — pass.

After merge, a global sjskills sync installs brainstorming into ~/.claude/skills; windows-cleanup follows in projects that select the kicpa profile.

🤖 Generated with Claude Code

brainstorming, macos-storage-cleanup, and windows-cleanup were limited to
the .agents target with no harness dependency behind it. brainstorming
inherited the restriction from the old per-harness manifest, where it was
added only to the Codex list; the cleanup skills were registered as Codex
skills by default. Drop their targetExceptions so sjskills places them in
both .agents and .claude.

brainstorming's dispatch step named Codex's fork_turns parameter only; it
now states the intent (a fresh, non-forked subagent) with the Codex and
Claude Code forms.

codex-cleanup, delegate-ui-to-claude, and impeccable keep their single
target because each is genuinely tied to one harness.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@sjunepark sjunepark added the coderabbit-review Request an initial CodeRabbit review label Oct 6, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-06T04:50:42.934986Z 53d4c09 PR opened
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 53d4c09016

ℹ️ 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".

Comment thread skill-registry.json
@@ -129,9 +129,6 @@
}
},
"targetExceptions": {

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Preserve manual-only invocation in Claude Code

After brainstorming and the KICPA profile's windows-cleanup are reconciled into .claude/skills, both remain eligible for automatic selection because their frontmatter lacks disable-model-invocation: true; Claude Code defaults this field to false, regardless of agents/openai.yaml (Claude Code skills reference). This violates both skills' explicit-only policy and can start cleanup guidance or brainstorming fan-out without the user naming the skill, so add the Claude frontmatter gate before widening their targets.

AGENTS.md reference: AGENTS.md:L46-L51

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 0bebe6b: added disable-model-invocation: true to brainstorming, windows-cleanup, and macos-storage-cleanup, matching their allow_implicit_invocation: false. No shared instruction routes to them by name.

Comment thread skill-registry.json
Comment on lines 138 to 140
"impeccable": [
".claude"
],
"macos-storage-cleanup": [
".agents"
],
"windows-cleanup": [
".agents"
]

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Select macOS cleanup before changing its targets

Removing macos-storage-cleanup from targetExceptions cannot make it visible in Claude Code because the skill appears in neither global.baseline nor any profile; sjskills resolves targets only after a skill is selected. Consequently, the advertised global sync still never installs this skill under either target, so it must be added to an appropriate desired set before this target change has any effect.

AGENTS.md reference: AGENTS.md:L77-L86

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Correct — macos-storage-cleanup is in no desired set, so this change has no install effect for it today. Keeping the exception removal because the skill has no Codex dependency, so if a project or profile selects it later it lands in both targets. Choosing a desired set for it is out of scope here; PR description updated.

Comment thread skills/brainstorming/SKILL.md Outdated
Comment on lines +26 to +27
agent rather than a fork. Leave model and reasoning-effort overrides unset so
both inherit from the caller. Run independent prompts in

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Request Claude's inherited model explicitly

When CLAUDE_CODE_SUBAGENT_MODEL is configured, leaving the Claude Agent call's model unset does not inherit the caller: Claude resolves a per-invocation model first, then the agent definition, then that environment default, and only then the main conversation (Claude Code model resolution). The stated invariant therefore fails in such sessions and brainstorming workers may run on a different model; pass model: "inherit" for the Claude invocation rather than instructing it to omit the override.

AGENTS.md reference: AGENTS.md:L7-L9

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Owner Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in 0bebe6b: Claude Code now passes the caller's model explicitly. The Agent tool here accepts model aliases (sonnet/opus/haiku/fable), not inherit, so the instruction states the intent rather than that literal.

@coderabbitai

coderabbitai Bot commented Oct 6, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Repository: sjunepark/coderabbit/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Essentials
  • Run ID: 27d3af7e-7802-4ca5-84ab-0085142b202d
📥 Commits

Reviewing files that changed from the base of the PR and between cf42509 and 53d4c09.

📒 Files selected for processing (2)
  • skill-registry.json
  • skills/brainstorming/SKILL.md
💤 Files with no reviewable changes (1)
  • skill-registry.json

Included review availability: This review used your included allowance. 4 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.


📝 Summary

Summary by CodeRabbit

  • Updates
    • The brainstorming guidance now uses runtime-specific instructions for delegating work in Codex and Claude Code, while keeping the existing parallel-dispatch guidance.
    • Brainstorming, macOS storage cleanup, and Windows cleanup now use the default skill target locations: .agents and .claude.

Walkthrough

The registry removes target exceptions for three skills. The brainstorming skill now specifies runtime-specific subagent instructions for Codex and Claude Code.

Changes

Default skill targets

Layer / File(s) Summary
Use default targets
skill-registry.json
The registry removes target exceptions for brainstorming, macos-storage-cleanup, and windows-cleanup. These skills now use the default .agents and .claude targets.

Brainstorming subagent instructions

Layer / File(s) Summary
Specify dispatch by runtime
skills/brainstorming/SKILL.md
The instructions specify fork_turns: "none" for Codex and a new general-purpose agent for Claude Code. They leave model and reasoning-effort overrides unset for both runtimes.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Feature

Merge Risk: ⚪ Minimal · up to 53d4c

The three skills can target both skill directories when selected, while global sync continues to install its fixed baseline. No actionable merge risk remains.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Title check ✅ Passed The title clearly summarizes the main change: installing harness-neutral skills for Claude Code as well as the existing target.
Description check ✅ Passed The description explains the target-policy changes and the harness-neutral brainstorming instructions, which match the changeset.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

Placing brainstorming and the cleanup skills in .claude/skills would make
them eligible for automatic selection, because Claude Code reads its
invocation policy only from frontmatter. Add disable-model-invocation to
all three, matching allow_implicit_invocation: false in their OpenAI
metadata; no shared instruction routes to them by name.

In Claude Code an unset subagent model can resolve to a configured
subagent default instead of the caller's, so brainstorming now tells
Claude to pass the caller's model explicitly. The Agent tool takes model
aliases rather than "inherit", so the instruction names the intent.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
@sjunepark
sjunepark merged commit dfc6647 into main Oct 6, 2026
8 checks passed
@sjunepark
sjunepark deleted the claude/skill-targets-both-harnesses branch October 6, 2026 05:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

coderabbit-review Request an initial CodeRabbit review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant