packages/omo-codex/plugin/skills/lcx-contribute-bug-fix/SKILL.md
Use this skill to debug a concrete LazyCodex or Codex defect, implement the smallest correct fix in a fresh temporary workspace, and deliver it. Work in English, keep the body short, and support every claim with runtime or source evidence.
Route ownership the same way as $lcx-report-bug, but the deliverable differs by target:
code-yeongyu/lazycodex for LazyCodex, lazycodex-ai, omo-codex, bundled skills, hooks, MCP wiring, installer behavior, marketplace sync, docs, or packaging. Deliverable: a verified-fix issue with the patch embedded. NEVER open a PR or push a branch against this repo — its contents are regenerated from the source tree on every release, so PRs there cannot be merged and will be closed.openai/codex for upstream Codex CLI bugs that reproduce without LazyCodex or come from Codex core behavior. Deliverable: a PR from a fork.For openai/codex, create a fork PR that includes:
/tmp clone/worktreelazycodex-generated when label management is availableTag: lazycodex-generatedFor code-yeongyu/lazycodex, create an issue (never a PR) that includes:
/tmp clone/worktreelazycodex-generated label and the footer tag Tag: lazycodex-generated$omo:debugging for the investigation. If only unqualified skill names are exposed, invoke $debugging and state that it is the OMO debugging skill.sync_latest_source() {
REPO="$1"; DEST="$2"
if [ ! -d "$DEST/.git" ]; then
gh repo clone "$REPO" "$DEST" -- --depth=1 \
|| git clone --depth=1 "https://github.com/$REPO" "$DEST"
fi
DEFAULT_BRANCH="$(git -C "$DEST" remote show origin | sed -n '/HEAD branch/s/.*: //p')"
git -C "$DEST" fetch --depth=1 origin "$DEFAULT_BRANCH"
git -C "$DEST" checkout -B "$DEFAULT_BRANCH" FETCH_HEAD
}
sync_latest_source code-yeongyu/lazycodex /tmp/lazycodex-source
sync_latest_source openai/codex /tmp/openai-codex-source
TARGET_REPO="code-yeongyu/lazycodex" # or openai/codex
WORK_ROOT="$(mktemp -d /tmp/lazycodex-fix-XXXXXX)"
gh repo clone "$TARGET_REPO" "$WORK_ROOT/repo" -- --depth=1
cd "$WORK_ROOT/repo"
BASE_BRANCH="$(git remote show origin | sed -n '/HEAD branch/s/.*: //p')"
git fetch origin "$BASE_BRANCH" --depth=1
BRANCH_NAME="lazycodex/bug-fix-<short-slug>"
git worktree add "$WORK_ROOT/worktree" -b "$BRANCH_NAME" "origin/$BASE_BRANCH"
cd "$WORK_ROOT/worktree"
If gh cannot clone, use git clone --depth=1 "https://github.com/$TARGET_REPO" "$WORK_ROOT/repo" and continue with the same worktree flow.
/tmp/lazycodex-fix-<short-slug>-repro.log.git status --short
git add -A
git commit -m "fix: <short bug-fix summary>"
git log --oneline "origin/$BASE_BRANCH..HEAD"
openai/codex: generate the PR body with scripts/create-pr-body.mjs.code-yeongyu/lazycodex: export the verified patch and write the issue body from the Verified-Fix Issue Template below:PATCH_FILE="/tmp/lazycodex-fix-<short-slug>.patch"
git diff "origin/$BASE_BRANCH"..HEAD > "$PATCH_FILE"
LABEL_ARGS=()
if gh label create lazycodex-generated --repo "$TARGET_REPO" --color "7C3AED" --description "Created by LazyCodex" --force; then
LABEL_ARGS=(--label lazycodex-generated)
else
echo "Label management unavailable for $TARGET_REPO; keeping the footer tag only."
fi
code-yeongyu/lazycodex: create the verified-fix issue. Never push a branch to this repo and never run gh pr create against it:ISSUE_BODY="/tmp/lazycodex-fix-<short-slug>-issue.md"
gh issue create --repo code-yeongyu/lazycodex --title "<short fix title>" "${LABEL_ARGS[@]}" --body-file "$ISSUE_BODY"
openai/codex: fork, push the branch to the fork, and create the PR:gh repo fork openai/codex --remote --remote-name fork
GH_USER="$(gh api user --jq .login)"
git push -u fork "$BRANCH_NAME"
gh pr create --repo openai/codex --base "$BASE_BRANCH" --head "$GH_USER:$BRANCH_NAME" --title "<short fix title>" "${LABEL_ARGS[@]}" --body-file "$PR_BODY"
cd /
git -C "$WORK_ROOT/repo" worktree remove "$WORK_ROOT/worktree"
find "$WORK_ROOT" -mindepth 1 -maxdepth 1 -exec rm -r -- {} +
rmdir "$WORK_ROOT"
Return the PR or issue URL, the reproduction command, the verification command, and the cleanup receipt.
Write the issue body in English. Embed the patch verbatim so a maintainer can apply it to the source tree:
## Problem Situation
[What failed for the user.]
## Reproduction Logs
[Exact failing command and relevant log excerpt.]
## Root Cause
[Confirmed cause with runtime and source evidence.]
## Verified Fix
[What changed and why this is the smallest correct fix.]
```diff
[Contents of $PATCH_FILE.]
```
## Verification
- [RED test output or repro before the fix]
- [GREEN test output after the fix]
- [Manual QA command and result]
---
This fix was debugged, implemented, and verified with [LazyCodex](https://github.com/code-yeongyu/lazycodex).
Tag: lazycodex-generated
Use the bundled script to generate the PR body. Create a JSON file with this shape:
{
"title": "Fix short user-visible failure",
"targetRepository": "openai/codex",
"problem": "What is broken for the user.",
"reproductionLogs": "Exact failing command, log excerpt, or trace.",
"approach": "What changed and why this is the smallest correct fix.",
"confidence": "Why the diagnosis and fix are strongly supported.",
"risks": "Risk level and what could regress.",
"userVisibleBehaviorChanges": "What changes for the user after the PR.",
"verification": ["failing test before fix", "passing test after fix", "manual QA command"]
}
Run:
PR_INPUT="/tmp/lazycodex-fix-<short-slug>-pr.json"
PR_BODY="/tmp/lazycodex-fix-<short-slug>-pr.md"
node "<skill-root>/scripts/create-pr-body.mjs" "$PR_INPUT" "$PR_BODY"
The generated body must follow this structure:
## Problem Situation
[What failed for the user.]
## Reproduction Logs
[Exact failing command and relevant log excerpt.]
## Approach
[What changed and why.]
## Why I Am Confident
[Evidence that proves the root cause and fix.]
## Risks
[Risk level and possible regressions.]
## User-Visible Behavior Changes
[What users experience after this PR.]
## Verification
- [RED test output or repro before the fix]
- [GREEN test output after the fix]
- [Manual QA command and result]
---
This PR was debugged, implemented, and created with [LazyCodex](https://github.com/code-yeongyu/lazycodex).
Tag: lazycodex-generated
Stop and ask one narrow question only when:
Do not open:
code-yeongyu/lazycodex — deliver the verified-fix issue instead, alwaysTag: lazycodex-generated footerdiff block