name: claude-codex-upstream-update description: "Use when researching Claude Code or Codex upstream releases, selecting adaptations, or preparing Harness upgrades. Local-only; not for distribution." user-invocable: true
Claude / Codex Upstream Update
A local-only skill for taking Claude Code and Codex upstream updates all the way through to Harness implementation diffs. The goal is not to "introduce updates" but to "actually make Harness stronger."
When to Use
- When you want to look at the Claude Code changelog and select updates to incorporate into Harness
- When you want to look at Codex releases and sort out the differences between using them from Claude vs. from Codex
- When you want to reflect changes not just in docs, but through to hooks / scripts / tests / Plans / CHANGELOG
When Not to Use
- Simple release summaries intended for public distribution
- Just a changelog summary
- Promotional text not accompanied by implementation diffs
Basic Rules
- Check primary sources first
- Claude:
https://github.com/anthropics/claude-code/blob/main/CHANGELOG.md - Codex:
https://github.com/openai/codex/releases
- Claude:
- Verify existing Harness implementation
docs/CLAUDE-feature-table.md.claude/skills/cc-update-review/SKILL.mdhooks/hooks.json.claude-plugin/hooks.jsonscripts/hook-handlers/go/internal/guardrail/tests/test-claude-upstream-integration.shtests/validate-plugin.sh
- Do not stop at just writing to the Feature Table
- Follow the A/B/C classification in
.claude/skills/cc-update-review/SKILL.md B = documentation onlyis not acceptable. Proceed to an implementation proposal or the implementation itself
- Follow the A/B/C classification in
- Prioritize Claude side decisions first
- What to implement immediately this round
- What to retain as a Codex comparison axis
- What is covered by CC / Codex auto-inheritance
Execution Flow
1. Break Down Official Updates
- Claude side: divide into "new features," "operational improvements," "fixes," and "auto-inherited"
- Codex side: divide into "items that become a comparison axis now" and "future tasks"
- What matters here is whether Harness can amplify it
Judgment criteria:
- Implementation target
- Can be reduced to hook / script / skill / agent / validate
- User experience improvement can be described in "before / after" terms
- Comparison axis
- Not implementing this round, but high value in closing the gap between Claude and Codex
- Auto-inherited
- Benefits from upstream fix alone
2. Fit into Existing Channels
Update candidates must always determine which surface they belong to.
hooks//.claude-plugin/hooks.jsonscripts/hook-handlers/go/internal/guardrail/skills//agents/tests/test-claude-upstream-integration.shtests/validate-plugin.shdocs/CLAUDE-feature-table.mdCHANGELOG.mdPlans.md
As a rule, do not make something an implementation target if it "doesn't fit anywhere."
3. Implement with Claude First
Prioritize one of the following.
- When Claude's new features are absorbed into Harness's existing channels, noise reduction, safety improvements, and automation strengthening occur
- Harness's existing features become even stronger with the upstream update
Example:
- Use the hooks conditional
iffield to narrow permission hooks to only the necessary Bash - Fill in inconsistencies between existing guardrails like
MultiEditand hooks - Connect new hook events to runtime tracking / recovery / Plans re-read reminders
4. Keep Codex as a Comparison Axis
Even if the Codex side is not the primary implementation target this round, keep it in the following form.
plugin-first workflowresume-aware effort continuity- readable agent addressing
- image-aware workflow
Do not try to do everything in one update cycle. Complete the high-value items on the Claude side first, then cut out the Codex side into Plans.
5. Update Records
At minimum, update the following.
Plans.mddocs/CLAUDE-feature-table.mdCHANGELOG.mdtests/test-claude-upstream-integration.shtests/validate-plugin.shif needed
Writing standards:
- What increased upstream
- What Harness incorporated
- How the user experience changes
Completion Criteria
- Primary source verification for Claude / Codex is complete
- On the Claude side, at least 1 implementation or verification reinforcement is complete
- The Feature Table and CHANGELOG read as "meaningful improvements"
- Future responses remain in Plans
- validate-plugin or relevant tests have been executed
Non-Distribution Rule
- This skill is local-only
- Do not mirror
- Do not design with inclusion in public packages in mind
- If you want to distribute it, extract it as a separate skill with local-specific content removed
Implementation Notes to Keep
Auto-Completion and Input Normalization of AskUserQuestion Using PreToolUse updatedInput
In situations where PreToolUse updatedInput can be used stably on the Claude Code side, a design that "lightly tidies up" the AskUserQuestion input before the question is asked is effective.
Normalization here does not mean rewriting user intent, but completing options and aligning ambiguous expressions beforehand to reduce the number of question re-asks.
Purpose
- Reduce the number of times the same question is re-asked in different phrasings
- In interactive flows like
harness-plan create, safely advance to the next question even from short answers - Align known choices like
solo / team,patch / minor / major,scripted / exploratoryat an early stage
Suitable Surfaces
harness-plan createharness-release- Future interactive setup / review channels with something equivalent to
request_user_input
Minimal Implementation Proposal
- Detect
AskUserQuestioncalls inPreToolUse - Use
updatedInputto adjust only the following:- Align known synonyms to canonical values
- When blank, add safe default candidates as supplementary text
- Values not in the choices are not forcibly converted; return them to the question as-is
- When a change is made, briefly leave a trace of "what was completed"
What Is Acceptable to Normalize
solo,single,individual→soloteam,issue,github issue→teambrowser exploratory,exploratory,check by touching→exploratorybrowser scripted,playwright,fixed steps→scripted
What Must Not Be Normalized
- Proper nouns freely entered by the user
- Summaries that change the scope breadth
- Yes/no decisions related to security or permissions
Change Candidates for Next Implementation
.claude-plugin/hooks.jsonhooks/hooks.jsonPreToolUsehandler underscripts/hook-handlers/skills/harness-plan/SKILL.mdskills/harness-release/SKILL.mdtests/test-claude-upstream-integration.sh
Criteria for Done
- Both the value completed by
updatedInputand the original input can be tracked - Only acts on aligning known choices without rewriting intent
- The number of interactions decreases, while safely returning to the original input when a misconversion occurs