oh-my-opencode 4.18.2 → 4.19.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.ja.md +2 -2
- package/README.ko.md +2 -2
- package/README.md +4 -4
- package/README.ru.md +2 -2
- package/README.zh-cn.md +2 -2
- package/dist/agents/atlas/agent.d.ts +6 -5
- package/dist/agents/sisyphus/index.d.ts +5 -0
- package/dist/agents/sisyphus/kimi-k3.d.ts +19 -0
- package/dist/agents/sisyphus-agent-factory.d.ts +1 -1
- package/dist/agents/sisyphus-junior/agent.d.ts +8 -4
- package/dist/agents/sisyphus-junior/index.d.ts +2 -0
- package/dist/agents/sisyphus-junior/kimi-k3.d.ts +12 -0
- package/dist/agents/types.d.ts +2 -2
- package/dist/cli/index.js +648 -136
- package/dist/cli-node/index.js +648 -136
- package/dist/config/index.d.ts +1 -1
- package/dist/config/schema/browser-automation.d.ts +1 -0
- package/dist/config/schema/commands.d.ts +1 -3
- package/dist/config/schema/default-mode.d.ts +1 -1
- package/dist/config/schema/goal.d.ts +7 -0
- package/dist/config/schema/hooks.d.ts +1 -1
- package/dist/config/schema/oh-my-opencode-config.d.ts +6 -10
- package/dist/config/schema/ralph-loop.d.ts +1 -1
- package/dist/config/schema.d.ts +1 -1
- package/dist/create-hooks.d.ts +1 -1
- package/dist/features/builtin-commands/templates/goal.d.ts +1 -0
- package/dist/features/builtin-commands/templates/stop-continuation.d.ts +1 -1
- package/dist/features/builtin-commands/types.d.ts +1 -1
- package/dist/hooks/auto-slash-command/executor.d.ts +1 -0
- package/dist/hooks/goal/command-arguments.d.ts +13 -0
- package/dist/hooks/goal/controller.d.ts +26 -0
- package/dist/hooks/goal/index.d.ts +23 -0
- package/dist/hooks/goal/prompt.d.ts +3 -0
- package/dist/hooks/goal/store.d.ts +8 -0
- package/dist/hooks/goal/tools.d.ts +10 -0
- package/dist/hooks/goal/types.d.ts +93 -0
- package/dist/hooks/goal/validation.d.ts +4 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/keyword-detector/hook.d.ts +1 -2
- package/dist/hooks/ralph-loop/types.d.ts +1 -1
- package/dist/index.js +3515 -4365
- package/dist/oh-my-opencode.schema.json +23 -19
- package/dist/plugin/chat-message/loop-commands.d.ts +1 -1
- package/dist/plugin/chat-message/types.d.ts +23 -10
- package/dist/plugin/hooks/create-core-hooks.d.ts +1 -1
- package/dist/plugin/hooks/create-session-hooks.d.ts +3 -2
- package/dist/plugin/hooks/create-transform-hooks.d.ts +0 -2
- package/dist/plugin/stop-continuation.d.ts +2 -2
- package/dist/shared/system-directive.d.ts +0 -1
- package/dist/skills/ulw-plan/SKILL.md +11 -7
- package/dist/skills/ulw-plan/references/full-workflow.md +117 -6
- package/dist/skills/ulw-plan/scripts/scaffold-plan.mjs +46 -10
- package/dist/skills/ulw-research/SKILL.md +3 -3
- package/dist/tools/delegate-task/types.d.ts +0 -1
- package/dist/tui.js +73 -25
- package/package.json +14 -14
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/dist/cli.js +352 -17
- package/packages/omo-codex/plugin/components/bootstrap/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/bootstrap/package.json +1 -1
- package/packages/omo-codex/plugin/components/codegraph/AGENTS.md +7 -6
- package/packages/omo-codex/plugin/components/codegraph/dist/cli.js +97 -30
- package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
- package/packages/omo-codex/plugin/components/codegraph/test/hook-exclusion.test.ts +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/comment-checker/package.json +1 -1
- package/packages/omo-codex/plugin/components/git-bash/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/git-bash/package.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/lazycodex-executor-verify/package.json +1 -1
- package/packages/omo-codex/plugin/components/lsp/AGENTS.md +1 -0
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/lsp/package.json +1 -1
- package/packages/omo-codex/plugin/components/rules/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/rules/package.json +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/AGENTS.md +8 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/cli.js +147 -60
- package/packages/omo-codex/plugin/components/start-work-continuation/hooks/hooks.json +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/package.json +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/src/boulder-reader.ts +3 -71
- package/packages/omo-codex/plugin/components/start-work-continuation/src/plan-checklist.ts +171 -0
- package/packages/omo-codex/plugin/components/start-work-continuation/test/boulder-reader.test.ts +198 -23
- package/packages/omo-codex/plugin/components/start-work-continuation/test/cli.test.ts +4 -3
- package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +6 -5
- package/packages/omo-codex/plugin/components/start-work-continuation/test/fixtures/plan-scaffold.md +15 -0
- package/packages/omo-codex/plugin/components/teammode/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/teammode/package.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/telemetry/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/AGENTS.md +10 -10
- package/packages/omo-codex/plugin/components/ultrawork/agents/momus.toml +3 -3
- package/packages/omo-codex/plugin/components/ultrawork/hooks/hooks.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/package.json +1 -1
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/SKILL.md +11 -7
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/references/full-workflow.md +117 -6
- package/packages/omo-codex/plugin/components/ultrawork/skills/ulw-plan/scripts/scaffold-plan.mjs +46 -10
- package/packages/omo-codex/plugin/components/ulw-loop/hooks/hooks.json +4 -4
- package/packages/omo-codex/plugin/components/ulw-loop/package.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-git-bash-mcp-reminder.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-lsp-diagnostics-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-compact-resetting-project-rule-cache.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-codegraph-init-guidance.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-comments.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-lsp-diagnostics.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-checking-thread-title-hygiene.json +1 -1
- package/packages/omo-codex/plugin/hooks/post-tool-use-matching-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-enforcing-unlimited-goal-budget.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-guarding-ulw-loop-spawns.json +1 -1
- package/packages/omo-codex/plugin/hooks/pre-tool-use-recommending-git-bash-mcp.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-auto-update.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-bootstrap-provisioning.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-checking-codegraph-bootstrap.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/hooks/session-start-recording-session-telemetry.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-start-work-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/stop-checking-ulw-loop-resume.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-checking-start-work-continuation.json +1 -1
- package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ultrawork-trigger.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-checking-ulw-loop-steering.json +1 -1
- package/packages/omo-codex/plugin/hooks/user-prompt-submit-loading-project-rules.json +1 -1
- package/packages/omo-codex/plugin/package-lock.json +13 -13
- package/packages/omo-codex/plugin/package.json +1 -1
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/multi-agent-v2-guard.mjs +32 -28
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/subagent-limit-guard.mjs +17 -45
- package/packages/omo-codex/plugin/scripts/migrate-codex-config/toml-section-editor.mjs +455 -0
- package/packages/omo-codex/plugin/scripts/sync-skills.mjs +3 -18
- package/packages/omo-codex/plugin/skills/ulw-plan/SKILL.md +11 -7
- package/packages/omo-codex/plugin/skills/ulw-plan/references/full-workflow.md +117 -6
- package/packages/omo-codex/plugin/skills/ulw-plan/scripts/scaffold-plan.mjs +46 -10
- package/packages/omo-codex/plugin/test/aggregate-agents.test.mjs +2 -2
- package/packages/omo-codex/plugin/test/lcx-bug-skills.test.mjs +2 -2
- package/packages/omo-codex/plugin/test/migrate-codex-config.test.mjs +6 -6
- package/packages/omo-codex/plugin/test/multi-agent-v2-regression.test.mjs +3 -3
- package/packages/omo-codex/plugin/test/scaffold-plan.test.mjs +62 -0
- package/packages/omo-codex/plugin/test/subagent-limit-migration.test.mjs +271 -14
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +3 -18
- package/packages/omo-codex/plugin/test/sync-skills.test.mjs +0 -5
- package/packages/omo-codex/plugin/test/ulw-plan-review-state-contract.test.mjs +293 -0
- package/packages/omo-codex/scripts/install-config.test.mjs +10 -10
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +353 -18
- package/packages/omo-codex/scripts/install-generated-bundle.test.mjs +39 -2
- package/packages/shared-skills/skills/ulw-plan/SKILL.md +11 -7
- package/packages/shared-skills/skills/ulw-plan/references/full-workflow.md +117 -6
- package/packages/shared-skills/skills/ulw-plan/scripts/scaffold-plan.mjs +46 -10
- package/packages/shared-skills/skills/ulw-research/SKILL.md +3 -3
- package/dist/features/builtin-commands/templates/ralph-loop.d.ts +0 -3
- package/dist/skills/ultraresearch/SKILL.md +0 -10
- package/packages/shared-skills/skills/lcx-contribute-bug-fix/SKILL.md +0 -273
- package/packages/shared-skills/skills/lcx-contribute-bug-fix/agents/openai.yaml +0 -12
- package/packages/shared-skills/skills/lcx-contribute-bug-fix/scripts/create-pr-body.mjs +0 -107
- package/packages/shared-skills/skills/lcx-doctor/SKILL.md +0 -128
- package/packages/shared-skills/skills/lcx-doctor/agents/openai.yaml +0 -11
- package/packages/shared-skills/skills/lcx-report-bug/SKILL.md +0 -268
- package/packages/shared-skills/skills/lcx-report-bug/agents/openai.yaml +0 -11
- package/packages/shared-skills/skills/ultraresearch/SKILL.md +0 -10
- /package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-contribute-bug-fix/SKILL.md +0 -0
- /package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-contribute-bug-fix/agents/openai.yaml +0 -0
- /package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-contribute-bug-fix/scripts/create-pr-body.mjs +0 -0
- /package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-doctor/SKILL.md +0 -0
- /package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-doctor/agents/openai.yaml +0 -0
- /package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-report-bug/SKILL.md +0 -0
- /package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-report-bug/agents/openai.yaml +0 -0
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
import { readFile, writeFile } from "node:fs/promises";
|
|
3
|
-
import { pathToFileURL } from "node:url";
|
|
4
|
-
|
|
5
|
-
const REQUIRED_STRING_FIELDS = [
|
|
6
|
-
"title",
|
|
7
|
-
"targetRepository",
|
|
8
|
-
"problem",
|
|
9
|
-
"reproductionLogs",
|
|
10
|
-
"approach",
|
|
11
|
-
"confidence",
|
|
12
|
-
"risks",
|
|
13
|
-
"userVisibleBehaviorChanges",
|
|
14
|
-
];
|
|
15
|
-
|
|
16
|
-
function requireRecord(value) {
|
|
17
|
-
if (value === null || typeof value !== "object" || Array.isArray(value)) {
|
|
18
|
-
throw new Error("input must be a JSON object");
|
|
19
|
-
}
|
|
20
|
-
return value;
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function requireStringField(record, field) {
|
|
24
|
-
const value = record[field];
|
|
25
|
-
if (typeof value !== "string" || value.trim() === "") {
|
|
26
|
-
throw new Error(`${field} must be a non-empty string`);
|
|
27
|
-
}
|
|
28
|
-
return value.trim();
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function requireVerification(record) {
|
|
32
|
-
const value = record.verification;
|
|
33
|
-
if (!Array.isArray(value) || value.length === 0) {
|
|
34
|
-
throw new Error("verification must be a non-empty string array");
|
|
35
|
-
}
|
|
36
|
-
return value.map((entry, index) => {
|
|
37
|
-
if (typeof entry !== "string" || entry.trim() === "") {
|
|
38
|
-
throw new Error(`verification[${index}] must be a non-empty string`);
|
|
39
|
-
}
|
|
40
|
-
return entry.trim();
|
|
41
|
-
});
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
function parseInput(value) {
|
|
45
|
-
const record = requireRecord(value);
|
|
46
|
-
const strings = Object.fromEntries(REQUIRED_STRING_FIELDS.map((field) => [field, requireStringField(record, field)]));
|
|
47
|
-
return {
|
|
48
|
-
title: strings.title,
|
|
49
|
-
targetRepository: strings.targetRepository,
|
|
50
|
-
problem: strings.problem,
|
|
51
|
-
reproductionLogs: strings.reproductionLogs,
|
|
52
|
-
approach: strings.approach,
|
|
53
|
-
confidence: strings.confidence,
|
|
54
|
-
risks: strings.risks,
|
|
55
|
-
userVisibleBehaviorChanges: strings.userVisibleBehaviorChanges,
|
|
56
|
-
verification: requireVerification(record),
|
|
57
|
-
};
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
function bulletList(items) {
|
|
61
|
-
return items.map((item) => `- ${item}`).join("\n");
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
export function createLazyCodexBugFixPrBody(value) {
|
|
65
|
-
const input = parseInput(value);
|
|
66
|
-
return `## Problem Situation
|
|
67
|
-
${input.problem}
|
|
68
|
-
|
|
69
|
-
## Reproduction Logs
|
|
70
|
-
${input.reproductionLogs}
|
|
71
|
-
|
|
72
|
-
## Approach
|
|
73
|
-
${input.approach}
|
|
74
|
-
|
|
75
|
-
## Why I Am Confident
|
|
76
|
-
${input.confidence}
|
|
77
|
-
|
|
78
|
-
## Risks
|
|
79
|
-
${input.risks}
|
|
80
|
-
|
|
81
|
-
## User-Visible Behavior Changes
|
|
82
|
-
${input.userVisibleBehaviorChanges}
|
|
83
|
-
|
|
84
|
-
## Verification
|
|
85
|
-
${bulletList(input.verification)}
|
|
86
|
-
|
|
87
|
-
---
|
|
88
|
-
This PR was debugged, implemented, and created with [LazyCodex](https://github.com/code-yeongyu/lazycodex).
|
|
89
|
-
Tag: lazycodex-generated
|
|
90
|
-
`;
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
async function main() {
|
|
94
|
-
const [, , inputPath, outputPath] = process.argv;
|
|
95
|
-
if (typeof inputPath !== "string" || inputPath.trim() === "") {
|
|
96
|
-
throw new Error("usage: create-pr-body.mjs <input.json> <output.md>");
|
|
97
|
-
}
|
|
98
|
-
if (typeof outputPath !== "string" || outputPath.trim() === "") {
|
|
99
|
-
throw new Error("usage: create-pr-body.mjs <input.json> <output.md>");
|
|
100
|
-
}
|
|
101
|
-
const parsed = JSON.parse(await readFile(inputPath, "utf8"));
|
|
102
|
-
await writeFile(outputPath, createLazyCodexBugFixPrBody(parsed), "utf8");
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
if (process.argv[1] && import.meta.url === pathToFileURL(process.argv[1]).href) {
|
|
106
|
-
await main();
|
|
107
|
-
}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: lcx-doctor
|
|
3
|
-
description: "Diagnose LazyCodex and Codex CLI installation health against the latest sources. Use whenever the user asks for a doctor or health check, says LazyCodex, lazycodex-ai, omo-codex, or Codex behaves oddly after an install, update, or config change, suspects a stale, drifted, or broken setup, or wants the local install audited and compared with the latest LazyCodex and Codex code."
|
|
4
|
-
metadata:
|
|
5
|
-
short-description: Diagnose LazyCodex/Codex install health against latest sources
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# lcx-doctor
|
|
9
|
-
|
|
10
|
-
You are a LazyCodex install doctor. Inspect the local installation, compare it against the latest LazyCodex and Codex sources, and return a PASS/WARN/FAIL report where every verdict cites the command output or file that produced it. Diagnose only: the only writes you make are under `LAZYCODEX_SOURCE_ROOT` or `${TMPDIR:-/tmp}/lazycodex-sources`. Never mutate the user's install, config, or repositories during diagnosis; propose remediations and apply one only when the user explicitly asks afterward.
|
|
11
|
-
|
|
12
|
-
Use GPT-5.5 style: outcome first, concise, evidence-bound.
|
|
13
|
-
|
|
14
|
-
## Required Workflow
|
|
15
|
-
|
|
16
|
-
1. Materialize the latest sources under `LAZYCODEX_SOURCE_ROOT="${LAZYCODEX_SOURCE_ROOT:-${TMPDIR:-/tmp}/lazycodex-sources}"` first. Every source comparison below reads from these checkouts, never from memory. Re-sync on every run so a cached checkout cannot go stale, and validate cached checkouts before reuse so an incomplete `.git` directory cannot poison diagnosis:
|
|
17
|
-
|
|
18
|
-
```bash
|
|
19
|
-
LAZYCODEX_SOURCE_ROOT="${LAZYCODEX_SOURCE_ROOT:-${TMPDIR:-/tmp}/lazycodex-sources}"
|
|
20
|
-
mkdir -p "$LAZYCODEX_SOURCE_ROOT"
|
|
21
|
-
|
|
22
|
-
valid_source_checkout() {
|
|
23
|
-
DEST="$1"
|
|
24
|
-
git -C "$DEST" rev-parse --is-inside-work-tree >/dev/null 2>&1 &&
|
|
25
|
-
git -C "$DEST" config --get remote.origin.url >/dev/null 2>&1
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
recover_corrupt_source_checkout() {
|
|
29
|
-
DEST="$1"
|
|
30
|
-
if [ -e "$DEST" ] && ! valid_source_checkout "$DEST"; then
|
|
31
|
-
QUARANTINED="$DEST.corrupt.$(date +%Y%m%d%H%M%S)"
|
|
32
|
-
mv "$DEST" "$QUARANTINED"
|
|
33
|
-
echo "Moved corrupt source cache $DEST to $QUARANTINED" >&2
|
|
34
|
-
fi
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
sync_latest_source() {
|
|
38
|
-
REPO="$1"; DEST="$2"
|
|
39
|
-
recover_corrupt_source_checkout "$DEST"
|
|
40
|
-
if [ ! -d "$DEST" ]; then
|
|
41
|
-
gh repo clone "$REPO" "$DEST" -- --depth=1 \
|
|
42
|
-
|| git clone --depth=1 "https://github.com/$REPO" "$DEST"
|
|
43
|
-
fi
|
|
44
|
-
if ! valid_source_checkout "$DEST"; then
|
|
45
|
-
echo "Source cache $DEST is not a usable git checkout after clone" >&2
|
|
46
|
-
return 1
|
|
47
|
-
fi
|
|
48
|
-
git -C "$DEST" remote set-url origin "https://github.com/$REPO.git" >/dev/null 2>&1 || true
|
|
49
|
-
DEFAULT_BRANCH="$(git -C "$DEST" remote show origin | sed -n '/HEAD branch/s/.*: //p')"
|
|
50
|
-
if [ -z "$DEFAULT_BRANCH" ]; then
|
|
51
|
-
DEFAULT_BRANCH="$(git -C "$DEST" symbolic-ref --short refs/remotes/origin/HEAD 2>/dev/null | sed 's#^origin/##')"
|
|
52
|
-
fi
|
|
53
|
-
if [ -z "$DEFAULT_BRANCH" ]; then
|
|
54
|
-
echo "Could not determine default branch for $REPO in $DEST" >&2
|
|
55
|
-
return 1
|
|
56
|
-
fi
|
|
57
|
-
git -C "$DEST" fetch --depth=1 origin "$DEFAULT_BRANCH"
|
|
58
|
-
git -C "$DEST" checkout -B "$DEFAULT_BRANCH" FETCH_HEAD
|
|
59
|
-
}
|
|
60
|
-
sync_latest_source code-yeongyu/lazycodex "$LAZYCODEX_SOURCE_ROOT/lazycodex-source"
|
|
61
|
-
sync_latest_source openai/codex "$LAZYCODEX_SOURCE_ROOT/openai-codex-source"
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
2. Inventory the installed surface. Resolve `CODEX_HOME` (default `~/.codex`), then collect:
|
|
65
|
-
- `codex --version` and how `codex` resolves (`command -v codex`).
|
|
66
|
-
- Installed LazyCodex version: the `version` in the installed plugin manifest, discoverable with `find "${CODEX_HOME:-$HOME/.codex}/plugins" -path '*/.codex-plugin/plugin.json'`. Installed plugins live under `$CODEX_HOME/plugins/cache/<marketplace>/<name>/<version>/`.
|
|
67
|
-
- Latest LazyCodex version from `$LAZYCODEX_SOURCE_ROOT/lazycodex-source` (release tags or the version stamped in the repo) and latest Codex release (`gh release view --repo openai/codex`).
|
|
68
|
-
- OS, install method, and `lazycodex` / `lazycodex-ai` bin links resolving (`command -v`).
|
|
69
|
-
3. Check config and wiring against the latest installer, not against assumptions. Read what the current installer under `$LAZYCODEX_SOURCE_ROOT/lazycodex-source` writes (installer sources live in the omo-codex package, e.g. `scripts/install/`), then verify the local equivalents:
|
|
70
|
-
- `$CODEX_HOME/config.toml` exists and parses; LazyCodex-managed entries match what the latest installer would write.
|
|
71
|
-
- Plugin payload present and non-empty: read `.codex-plugin/plugin.json`; when that manifest declares a `hooks` array, validate every direct hook path declared by the manifest; require `hooks/hooks.json` only when the manifest declares it; do not require retired paths such as `components/workflow-selector` or `hooks/user-prompt-submit-selecting-lazycodex-workflow.json` unless the current manifest declares them.
|
|
72
|
-
- Verify the manifest-declared runtime payload, not a remembered source tree. Current payload includes `skills/`, `.mcp.json`, root CLI runtimes such as `dist/cli/index.js` and `dist/cli-node/index.js`, and every hook/MCP `components/*/dist/*.js` target referenced by installed manifests.
|
|
73
|
-
- Treat install-time materialization rewrites as expected when the rewritten target exists and is non-empty. For example, `.mcp.json` may use plugin-local or absolute installed paths for CodeGraph/MCP runtimes; that is PASS/WARN context, not payload drift. Missing or zero-byte rewritten targets are FAIL.
|
|
74
|
-
- Stale project-local leftovers the installer now removes (e.g. `.codex/hooks.json`, `.codex/skills` in the project) are flagged, not deleted.
|
|
75
|
-
4. Probe the real surface. Do not invoke `lazycodex doctor`; this skill is already running inside that doctor workflow, so calling it would recurse. Instead run non-recursive probes directly: `codex --version`, `command -v codex`, the bin-link checks above, config/plugin payload inspections, and a trivial non-interactive Codex invocation that loads the plugin. Use the configured Codex default model for the runtime probe unless the user explicitly passed a model override to the doctor surface; never force a guessed/rejected model such as `gpt-5.5-codex-mini`. Capture stderr verbatim; a clean exit with warnings is WARN, not PASS.
|
|
76
|
-
5. Compare for drift. Where installed manifest-declared bundled files differ from the same files at the installed version, or the latest source removed or renamed something the local config still references, record it with both paths. Do not report expected materialization differences, such as absolute `.mcp.json` runtime paths, as drift when their targets exist and are non-empty.
|
|
77
|
-
6. Check whether each FAIL is already known: `gh issue list --repo code-yeongyu/lazycodex --search "<short symptom>" --state open` (and `openai/codex` when the failure points upstream). Link matches in the report instead of re-diagnosing from scratch.
|
|
78
|
-
7. If a probe fails and the cause is not explained by config or source comparison, invoke `$omo:debugging` for the investigation. If Codex exposes only unqualified skill names in the current session, invoke `$debugging` and state that it is the OMO debugging skill.
|
|
79
|
-
8. Emit the report.
|
|
80
|
-
|
|
81
|
-
## Doctor Report Template
|
|
82
|
-
|
|
83
|
-
```markdown
|
|
84
|
-
## LazyCodex Doctor Report
|
|
85
|
-
|
|
86
|
-
### Summary
|
|
87
|
-
[One sentence: healthy, degraded, or broken — and the single most important next action.]
|
|
88
|
-
|
|
89
|
-
### Environment
|
|
90
|
-
- LazyCodex installed / latest:
|
|
91
|
-
- Codex CLI installed / latest:
|
|
92
|
-
- CODEX_HOME:
|
|
93
|
-
- OS / install method:
|
|
94
|
-
|
|
95
|
-
### Checks
|
|
96
|
-
| Check | Verdict | Evidence |
|
|
97
|
-
| --- | --- | --- |
|
|
98
|
-
| Versions current | PASS/WARN/FAIL | [command output or file:line] |
|
|
99
|
-
| config.toml integrity | PASS/WARN/FAIL | [evidence] |
|
|
100
|
-
| Plugin payload wiring | PASS/WARN/FAIL | [evidence] |
|
|
101
|
-
| Bin links / aliases | PASS/WARN/FAIL | [evidence] |
|
|
102
|
-
| Runtime probe | PASS/WARN/FAIL | [evidence] |
|
|
103
|
-
| Drift vs latest source | PASS/WARN/FAIL | [evidence, citing `$LAZYCODEX_SOURCE_ROOT/lazycodex-source` or `$LAZYCODEX_SOURCE_ROOT/openai-codex-source` paths] |
|
|
104
|
-
|
|
105
|
-
### Remediations
|
|
106
|
-
1. [Most important fix first: exact command or config edit, and what it resolves.]
|
|
107
|
-
|
|
108
|
-
### Known Issues Matched
|
|
109
|
-
- [issue URL — or "none found"]
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
## Follow-up Routing
|
|
113
|
-
|
|
114
|
-
- Local misconfiguration or stale install: give the remediation; reinstalling via the standard LazyCodex install command is the default fix for payload drift.
|
|
115
|
-
- Defect in LazyCodex or Codex product code: recommend `$lcx-report-bug` to file it, or `$lcx-contribute-bug-fix` when the user wants a fix PR. Both reuse the source-root checkouts you already synced.
|
|
116
|
-
|
|
117
|
-
## Stop Conditions
|
|
118
|
-
|
|
119
|
-
Ask one narrow question only when a finding requires a destructive decision, such as deleting user-edited config or downgrading a version.
|
|
120
|
-
|
|
121
|
-
Do not:
|
|
122
|
-
|
|
123
|
-
- mutate config, installs, or repositories during diagnosis
|
|
124
|
-
- report a verdict without captured evidence
|
|
125
|
-
- compare against remembered source layout instead of `$LAZYCODEX_SOURCE_ROOT/lazycodex-source` and `$LAZYCODEX_SOURCE_ROOT/openai-codex-source`
|
|
126
|
-
- require retired payload paths that the current `.codex-plugin/plugin.json` does not declare
|
|
127
|
-
- force a runtime-probe model unless the user explicitly passed one
|
|
128
|
-
- declare healthy while any probe output was never captured
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
interface:
|
|
2
|
-
display_name: "lcx-doctor (omo)"
|
|
3
|
-
short_description: "Diagnose LazyCodex/Codex install health against latest sources"
|
|
4
|
-
search_terms:
|
|
5
|
-
- "lcx-doctor"
|
|
6
|
-
- "lazycodex doctor"
|
|
7
|
-
- "lazycodex health check"
|
|
8
|
-
- "codex doctor"
|
|
9
|
-
- "lazycodex install broken"
|
|
10
|
-
- "omo-codex diagnose"
|
|
11
|
-
default_prompt: "Use $lcx-doctor to sync the latest LazyCodex and Codex sources under LAZYCODEX_SOURCE_ROOT or ${TMPDIR:-/tmp}/lazycodex-sources, inventory the local installation, compare versions, config, and wiring against the latest sources, probe the real surface, and report PASS/WARN/FAIL findings with evidence and remediations."
|
|
@@ -1,268 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: lcx-report-bug
|
|
3
|
-
description: "Create a high-signal bug issue or PR in the repo that owns the defect. Use this whenever the user asks to report, file, open, or triage a LazyCodex, lazycodex-ai, omo-codex, Codex plugin, or upstream Codex CLI bug, especially when they need source-backed root cause, reproduction steps, fix guidance, and GitHub routing."
|
|
4
|
-
metadata:
|
|
5
|
-
short-description: Route LazyCodex or Codex bugs with source evidence
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
# lcx-report-bug
|
|
9
|
-
|
|
10
|
-
You are a LazyCodex bug router and reporter. Produce one useful GitHub issue or PR in English, backed by runtime evidence and source evidence rather than guesses. Route it to the repository that owns the defect:
|
|
11
|
-
|
|
12
|
-
- `code-yeongyu/lazycodex` for LazyCodex, lazycodex-ai, omo-codex, marketplace, bundled skill, hook, MCP, installer, or packaging bugs. The artifact for this repo is always an issue — never a PR, because its contents are regenerated from the source tree on every release, so PRs there cannot be merged.
|
|
13
|
-
- `openai/codex` for upstream Codex CLI bugs that reproduce without LazyCodex or are caused by Codex core behavior. This is the only repo where this skill may create a PR.
|
|
14
|
-
|
|
15
|
-
Use GPT-5.5 style: outcome first, concise, evidence-bound. Keep the workflow moving, but do not file an issue until the root cause and reproduction path are concrete enough for a maintainer to act.
|
|
16
|
-
|
|
17
|
-
## Goal
|
|
18
|
-
|
|
19
|
-
Create or prepare a GitHub issue or PR that includes:
|
|
20
|
-
|
|
21
|
-
- clear title
|
|
22
|
-
- target repository decision
|
|
23
|
-
- environment
|
|
24
|
-
- reproducible steps
|
|
25
|
-
- expected behavior
|
|
26
|
-
- actual behavior
|
|
27
|
-
- confirmed or strongly evidenced root cause
|
|
28
|
-
- fix approach, including files or components likely involved
|
|
29
|
-
- verification plan
|
|
30
|
-
- `lazycodex-generated` label and footer tag
|
|
31
|
-
|
|
32
|
-
## Required Workflow
|
|
33
|
-
|
|
34
|
-
1. Read the user's bug report and identify the affected surface: LazyCodex installer, Codex plugin, skill, hook, MCP, CLI alias, GitHub marketplace sync, or web/docs.
|
|
35
|
-
2. Invoke `$omo:debugging` for the investigation. If Codex exposes only unqualified skill names in the current session, invoke `$debugging` and state that it is the OMO debugging skill.
|
|
36
|
-
3. Materialize the latest LazyCodex and upstream Codex sources under `LAZYCODEX_SOURCE_ROOT="${LAZYCODEX_SOURCE_ROOT:-${TMPDIR:-/tmp}/lazycodex-sources}"` before deciding ownership. Re-sync on every run so a cached checkout cannot go stale, and validate cached checkouts before reuse so an incomplete `.git` directory cannot produce wrong routing and dead line references:
|
|
37
|
-
|
|
38
|
-
```bash
|
|
39
|
-
LAZYCODEX_SOURCE_ROOT="${LAZYCODEX_SOURCE_ROOT:-${TMPDIR:-/tmp}/lazycodex-sources}"
|
|
40
|
-
mkdir -p "$LAZYCODEX_SOURCE_ROOT"
|
|
41
|
-
|
|
42
|
-
valid_source_checkout() {
|
|
43
|
-
DEST="$1"
|
|
44
|
-
git -C "$DEST" rev-parse --is-inside-work-tree >/dev/null 2>&1 &&
|
|
45
|
-
git -C "$DEST" config --get remote.origin.url >/dev/null 2>&1
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
recover_corrupt_source_checkout() {
|
|
49
|
-
DEST="$1"
|
|
50
|
-
if [ -e "$DEST" ] && ! valid_source_checkout "$DEST"; then
|
|
51
|
-
QUARANTINED="$DEST.corrupt.$(date +%Y%m%d%H%M%S)"
|
|
52
|
-
mv "$DEST" "$QUARANTINED"
|
|
53
|
-
echo "Moved corrupt source cache $DEST to $QUARANTINED" >&2
|
|
54
|
-
fi
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
sync_latest_source() {
|
|
58
|
-
REPO="$1"; DEST="$2"
|
|
59
|
-
recover_corrupt_source_checkout "$DEST"
|
|
60
|
-
if [ ! -d "$DEST" ]; then
|
|
61
|
-
gh repo clone "$REPO" "$DEST" -- --depth=1 \
|
|
62
|
-
|| git clone --depth=1 "https://github.com/$REPO" "$DEST"
|
|
63
|
-
fi
|
|
64
|
-
if ! valid_source_checkout "$DEST"; then
|
|
65
|
-
echo "Source cache $DEST is not a usable git checkout after clone" >&2
|
|
66
|
-
return 1
|
|
67
|
-
fi
|
|
68
|
-
git -C "$DEST" remote set-url origin "https://github.com/$REPO.git" >/dev/null 2>&1 || true
|
|
69
|
-
DEFAULT_BRANCH="$(git -C "$DEST" remote show origin | sed -n '/HEAD branch/s/.*: //p')"
|
|
70
|
-
if [ -z "$DEFAULT_BRANCH" ]; then
|
|
71
|
-
DEFAULT_BRANCH="$(git -C "$DEST" symbolic-ref --short refs/remotes/origin/HEAD 2>/dev/null | sed 's#^origin/##')"
|
|
72
|
-
fi
|
|
73
|
-
if [ -z "$DEFAULT_BRANCH" ]; then
|
|
74
|
-
echo "Could not determine default branch for $REPO in $DEST" >&2
|
|
75
|
-
return 1
|
|
76
|
-
fi
|
|
77
|
-
git -C "$DEST" fetch --depth=1 origin "$DEFAULT_BRANCH"
|
|
78
|
-
git -C "$DEST" checkout -B "$DEFAULT_BRANCH" FETCH_HEAD
|
|
79
|
-
}
|
|
80
|
-
sync_latest_source code-yeongyu/lazycodex "$LAZYCODEX_SOURCE_ROOT/lazycodex-source"
|
|
81
|
-
sync_latest_source openai/codex "$LAZYCODEX_SOURCE_ROOT/openai-codex-source"
|
|
82
|
-
```
|
|
83
|
-
4. Follow the debugging skill far enough to gather runtime evidence:
|
|
84
|
-
- form at least three plausible hypotheses
|
|
85
|
-
- run the smallest reproduction that exercises the real surface
|
|
86
|
-
- confirm the root cause by observing the failing state
|
|
87
|
-
- identify the minimal fix path or maintainer action
|
|
88
|
-
5. Compare runtime evidence with both `$LAZYCODEX_SOURCE_ROOT/lazycodex-source` and `$LAZYCODEX_SOURCE_ROOT/openai-codex-source` before choosing the target repo. Cite exact files, commands, logs, or source paths that support the routing decision.
|
|
89
|
-
6. Choose the target repo:
|
|
90
|
-
- Use `code-yeongyu/lazycodex` when the bug is in LazyCodex integration, distribution, bundled plugin code, skills, hooks, MCP wiring, installer behavior, aliases, marketplace sync, docs, or any behavior that disappears in clean upstream Codex.
|
|
91
|
-
- Use `openai/codex` when the bug reproduces in clean upstream Codex without LazyCodex, or the failing behavior comes from Codex CLI core, plugin API contracts, sandboxing, approvals, config loading, or built-in tool behavior.
|
|
92
|
-
- If ownership remains ambiguous after evidence gathering, do not guess. Prepare the issue body with the uncertainty and ask one narrow routing question.
|
|
93
|
-
7. Search for an existing issue in the selected repo before creating a new one. Search the other repo too when the ownership boundary is close:
|
|
94
|
-
|
|
95
|
-
```bash
|
|
96
|
-
TARGET_REPO="code-yeongyu/lazycodex" # or openai/codex
|
|
97
|
-
gh issue list --repo "$TARGET_REPO" --search "<short error or symptom>" --state open
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
8. If a matching open issue exists, add a comment with the new evidence instead of creating a duplicate.
|
|
101
|
-
9. Ensure the generated label exists in repositories you control:
|
|
102
|
-
|
|
103
|
-
```bash
|
|
104
|
-
LABEL_ARGS=()
|
|
105
|
-
if gh label create lazycodex-generated --repo "$TARGET_REPO" --color "7C3AED" --description "Created by LazyCodex" --force; then
|
|
106
|
-
LABEL_ARGS=(--label lazycodex-generated)
|
|
107
|
-
else
|
|
108
|
-
echo "Label management unavailable for $TARGET_REPO; keeping the footer tag only."
|
|
109
|
-
fi
|
|
110
|
-
```
|
|
111
|
-
|
|
112
|
-
If the selected repo is `openai/codex` and label management is not available, still include the footer tag in the body and continue without claiming label creation succeeded.
|
|
113
|
-
10. If no matching issue exists, create the issue with `gh` and apply the `lazycodex-generated` label.
|
|
114
|
-
11. Create a PR only when the target repo is `openai/codex` AND the user asked for a PR, the fix is already implemented on a branch, or the smallest correct fix can be safely made there. Never create a PR or push a branch against `code-yeongyu/lazycodex` — always file an issue there, embedding the verified patch in the Proposed Fix section when one exists. Apply the `lazycodex-generated` label to every PR created by this skill. Otherwise create an issue with fix guidance.
|
|
115
|
-
|
|
116
|
-
## Required Label And Footer
|
|
117
|
-
|
|
118
|
-
Every issue body, evidence comment, and PR body created by this skill must use the GitHub label `lazycodex-generated` when the artifact supports labels. It must also end with this footer. Do not put content after it.
|
|
119
|
-
|
|
120
|
-
```markdown
|
|
121
|
-
---
|
|
122
|
-
This issue or PR was generated by LazyCodex.
|
|
123
|
-
Tag: lazycodex-generated
|
|
124
|
-
```
|
|
125
|
-
|
|
126
|
-
## Issue Body Template
|
|
127
|
-
|
|
128
|
-
Write the issue body in English and keep it direct:
|
|
129
|
-
|
|
130
|
-
```markdown
|
|
131
|
-
## Summary
|
|
132
|
-
[One or two sentences describing the user-visible failure.]
|
|
133
|
-
|
|
134
|
-
## Environment
|
|
135
|
-
- LazyCodex version:
|
|
136
|
-
- Codex version:
|
|
137
|
-
- OS:
|
|
138
|
-
- Install method:
|
|
139
|
-
- Relevant config:
|
|
140
|
-
|
|
141
|
-
## Repository Decision
|
|
142
|
-
- Target repository:
|
|
143
|
-
- Why this belongs there:
|
|
144
|
-
- LazyCodex evidence (runtime + `$LAZYCODEX_SOURCE_ROOT/lazycodex-source`):
|
|
145
|
-
- Upstream Codex source evidence from `$LAZYCODEX_SOURCE_ROOT/openai-codex-source`:
|
|
146
|
-
|
|
147
|
-
## Reproduction
|
|
148
|
-
1. [Exact command or UI action]
|
|
149
|
-
2. [Exact next step]
|
|
150
|
-
3. [Observed failure trigger]
|
|
151
|
-
|
|
152
|
-
## Expected Behavior
|
|
153
|
-
[What should have happened.]
|
|
154
|
-
|
|
155
|
-
## Actual Behavior
|
|
156
|
-
[What happened instead, including exact error text or output.]
|
|
157
|
-
|
|
158
|
-
## Evidence
|
|
159
|
-
[Commands, logs, screenshots, traces, or links used to confirm the failure.]
|
|
160
|
-
|
|
161
|
-
## Root Cause
|
|
162
|
-
[Confirmed cause. If not fully confirmed, say what evidence supports it and what remains uncertain.]
|
|
163
|
-
|
|
164
|
-
## Proposed Fix
|
|
165
|
-
[Concrete implementation or operational fix. Include likely files, components, or commands.]
|
|
166
|
-
|
|
167
|
-
## Verification Plan
|
|
168
|
-
- [Check that reproduces the original failure]
|
|
169
|
-
- [Check that proves the fix]
|
|
170
|
-
- [Regression check for adjacent LazyCodex/Codex plugin behavior]
|
|
171
|
-
|
|
172
|
-
---
|
|
173
|
-
This issue or PR was generated by LazyCodex.
|
|
174
|
-
Tag: lazycodex-generated
|
|
175
|
-
```
|
|
176
|
-
|
|
177
|
-
## PR Body Template
|
|
178
|
-
|
|
179
|
-
Use this only when a PR is the right artifact, which is only ever for `openai/codex`:
|
|
180
|
-
|
|
181
|
-
```markdown
|
|
182
|
-
## Summary
|
|
183
|
-
[One or two sentences describing the fix and the user-visible failure it resolves.]
|
|
184
|
-
|
|
185
|
-
## Repository Decision
|
|
186
|
-
- Target repository:
|
|
187
|
-
- Why this belongs there:
|
|
188
|
-
- LazyCodex evidence (runtime + `$LAZYCODEX_SOURCE_ROOT/lazycodex-source`):
|
|
189
|
-
- Upstream Codex source evidence from `$LAZYCODEX_SOURCE_ROOT/openai-codex-source`:
|
|
190
|
-
|
|
191
|
-
## Root Cause
|
|
192
|
-
[Confirmed cause. Cite runtime evidence and source paths.]
|
|
193
|
-
|
|
194
|
-
## Fix
|
|
195
|
-
[What changed and why.]
|
|
196
|
-
|
|
197
|
-
## Verification
|
|
198
|
-
- [Check that reproduced the original failure before the fix]
|
|
199
|
-
- [Check that passes after the fix]
|
|
200
|
-
- [Regression check for adjacent behavior]
|
|
201
|
-
|
|
202
|
-
---
|
|
203
|
-
This issue or PR was generated by LazyCodex.
|
|
204
|
-
Tag: lazycodex-generated
|
|
205
|
-
```
|
|
206
|
-
|
|
207
|
-
## GitHub Creation Path
|
|
208
|
-
|
|
209
|
-
Prefer `gh`:
|
|
210
|
-
|
|
211
|
-
```bash
|
|
212
|
-
ISSUE_BODY="${TMPDIR:-/tmp}/lcx-report-bug-$(date +%Y%m%d-%H%M%S).md"
|
|
213
|
-
$EDITOR "$ISSUE_BODY"
|
|
214
|
-
gh issue create --repo "$TARGET_REPO" --title "<clear title>" "${LABEL_ARGS[@]}" --body-file "$ISSUE_BODY"
|
|
215
|
-
```
|
|
216
|
-
|
|
217
|
-
If `$EDITOR` is not usable, write the file with the available file-editing tool, then run the same `gh issue create` command.
|
|
218
|
-
|
|
219
|
-
For an existing issue:
|
|
220
|
-
|
|
221
|
-
```bash
|
|
222
|
-
COMMENT_BODY="${TMPDIR:-/tmp}/lcx-report-bug-comment-$(date +%Y%m%d-%H%M%S).md"
|
|
223
|
-
gh issue comment "<issue-number>" --repo "$TARGET_REPO" --body-file "$COMMENT_BODY"
|
|
224
|
-
if [ "${#LABEL_ARGS[@]}" -gt 0 ]; then
|
|
225
|
-
gh issue edit "<issue-number>" --repo "$TARGET_REPO" --add-label lazycodex-generated
|
|
226
|
-
fi
|
|
227
|
-
```
|
|
228
|
-
|
|
229
|
-
For a PR from a branch pushed to a fork — `openai/codex` only, never `code-yeongyu/lazycodex`:
|
|
230
|
-
|
|
231
|
-
```bash
|
|
232
|
-
PR_BODY="${TMPDIR:-/tmp}/lcx-report-bug-pr-$(date +%Y%m%d-%H%M%S).md"
|
|
233
|
-
gh pr create --repo openai/codex --title "<clear title>" "${LABEL_ARGS[@]}" --body-file "$PR_BODY"
|
|
234
|
-
```
|
|
235
|
-
|
|
236
|
-
After creating or commenting, return the issue or PR URL and a short summary of the evidence used.
|
|
237
|
-
|
|
238
|
-
## Browser use fallback
|
|
239
|
-
|
|
240
|
-
If `gh` is unavailable, unauthenticated, or blocked, use Browser Use against the real GitHub page:
|
|
241
|
-
|
|
242
|
-
1. Open the new issue page for the selected repo: `https://github.com/code-yeongyu/lazycodex/issues/new` or `https://github.com/openai/codex/issues/new`.
|
|
243
|
-
2. Fill the title and body from the template.
|
|
244
|
-
3. Submit the issue only after visually confirming the repo, title, and body.
|
|
245
|
-
4. Capture the resulting issue URL.
|
|
246
|
-
|
|
247
|
-
## Computer use fallback
|
|
248
|
-
|
|
249
|
-
If Browser Use is unavailable but a desktop browser is open and authenticated, use Computer Use:
|
|
250
|
-
|
|
251
|
-
1. Navigate to the new issue page for the selected repo: `https://github.com/code-yeongyu/lazycodex/issues/new` or `https://github.com/openai/codex/issues/new`.
|
|
252
|
-
2. Fill the title and body.
|
|
253
|
-
3. Verify the target repository and final text before submission.
|
|
254
|
-
4. Submit and capture the issue URL.
|
|
255
|
-
|
|
256
|
-
## Stop Conditions
|
|
257
|
-
|
|
258
|
-
Stop and ask one narrow question only when the missing fact changes the issue materially, such as the affected version, a private log the agent cannot access, or whether the user wants a duplicate filed despite an existing matching issue.
|
|
259
|
-
|
|
260
|
-
Do not file:
|
|
261
|
-
|
|
262
|
-
- a PR or pushed branch targeting `code-yeongyu/lazycodex` — file the issue instead, always
|
|
263
|
-
- a vague issue without reproduction steps
|
|
264
|
-
- an issue that claims a root cause not supported by runtime evidence
|
|
265
|
-
- a duplicate when commenting on an existing issue is enough
|
|
266
|
-
- an issue without checking the latest `$LAZYCODEX_SOURCE_ROOT/lazycodex-source` and `$LAZYCODEX_SOURCE_ROOT/openai-codex-source` checkouts
|
|
267
|
-
- a LazyCodex issue when the bug is proven to reproduce in clean upstream Codex
|
|
268
|
-
- a fix PR without a concrete branch, implemented fix, and verification result
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
interface:
|
|
2
|
-
display_name: "lcx-report-bug (omo)"
|
|
3
|
-
short_description: "Route LazyCodex or Codex bugs with source evidence"
|
|
4
|
-
search_terms:
|
|
5
|
-
- "lcx-report-bug"
|
|
6
|
-
- "lazycodex bug"
|
|
7
|
-
- "lazycodex issue"
|
|
8
|
-
- "omo-codex bug"
|
|
9
|
-
- "openai codex bug"
|
|
10
|
-
- "codex upstream issue"
|
|
11
|
-
default_prompt: "Use $lcx-report-bug to investigate this LazyCodex or Codex bug, compare LazyCodex evidence with sources under LAZYCODEX_SOURCE_ROOT or ${TMPDIR:-/tmp}/lazycodex-sources, choose the correct GitHub repo, and file an issue (or, for openai/codex only, a PR — never a PR on code-yeongyu/lazycodex) with reproduction, root cause, fix guidance, and the lazycodex-generated label and footer."
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ultraresearch
|
|
3
|
-
description: "Legacy alias for ulw-research. MUST USE when the user asks for ultraresearch, /ultraresearch, or $ultraresearch; immediately load and follow the ulw-research skill."
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Ultraresearch Alias
|
|
7
|
-
|
|
8
|
-
`ultraresearch` is the legacy name for `ulw-research`.
|
|
9
|
-
|
|
10
|
-
When this skill is selected, immediately load `../ulw-research/SKILL.md` and follow it as the source of truth. Treat `/ultraresearch`, `$ultraresearch`, and plain `ultraresearch` exactly like `/ulw-research`, `$ulw-research`, and plain `ulw-research`.
|
/package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-contribute-bug-fix/SKILL.md
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
/package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-doctor/agents/openai.yaml
RENAMED
|
File without changes
|
|
File without changes
|
/package/{dist → packages/omo-codex/plugin/components/lcx}/skills/lcx-report-bug/agents/openai.yaml
RENAMED
|
File without changes
|