oh-my-opencode 4.18.1 → 4.18.2
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/.agents/skills/codex-qa/scripts/lsp-e2e.sh +39 -16
- package/.agents/skills/opencode-qa/scripts/lsp-e2e.sh +111 -28
- package/bin/AGENTS.md +33 -0
- package/dist/cli/index.js +57 -18
- package/dist/cli-node/index.js +57 -18
- package/dist/hooks/anthropic-context-window-limit-recovery/empty-content-recovery-sdk.d.ts +6 -0
- package/dist/hooks/category-skill-reminder/hook.d.ts +9 -1
- package/dist/hooks/comment-checker/hook.d.ts +8 -1
- package/dist/hooks/todo-continuation-enforcer/types.d.ts +3 -0
- package/dist/index.js +560 -333
- package/dist/plugin/messages-transform.d.ts +1 -0
- package/dist/plugin-handlers/prometheus-agent-config-builder.d.ts +2 -0
- package/dist/tui.js +43 -4
- package/package.json +13 -13
- package/packages/git-bash-mcp/dist/cli.js +81 -19
- package/packages/lsp-core/src/lsp/client-diagnostics-freshness.integration.test.ts +4 -4
- package/packages/lsp-core/src/lsp/directory-diagnostics.test.ts +118 -1
- package/packages/lsp-core/src/lsp/directory-diagnostics.ts +1 -1
- package/packages/lsp-daemon/dist/cli.js +262 -63
- package/packages/lsp-daemon/dist/client.js +194 -50
- package/packages/lsp-daemon/dist/daemon-client.d.ts +2 -2
- package/packages/lsp-daemon/dist/daemon-client.js +26 -2
- package/packages/lsp-daemon/dist/ensure-daemon.d.ts +5 -4
- package/packages/lsp-daemon/dist/ensure-daemon.js +79 -18
- package/packages/lsp-daemon/dist/index.js +262 -63
- package/packages/lsp-daemon/dist/proxy.d.ts +2 -0
- package/packages/lsp-daemon/dist/proxy.js +79 -23
- package/packages/lsp-tools-mcp/dist/cli.js +82 -20
- package/packages/lsp-tools-mcp/dist/mcp.js +82 -20
- package/packages/lsp-tools-mcp/dist/tools.js +1 -1
- package/packages/omo-codex/plugin/.codex-plugin/plugin.json +1 -1
- package/packages/omo-codex/plugin/.mcp.json +2 -1
- 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/dist/cli.js +100 -28
- package/packages/omo-codex/plugin/components/codegraph/dist/serve.js +100 -28
- package/packages/omo-codex/plugin/components/codegraph/package.json +1 -1
- package/packages/omo-codex/plugin/components/codegraph/src/mcp-bridge.ts +21 -9
- package/packages/omo-codex/plugin/components/codegraph/test/mcp-bridge-fixtures.ts +35 -0
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge-lifecycle.test.ts +69 -0
- package/packages/omo-codex/plugin/components/codegraph/test/serve-mcp-bridge.test.ts +57 -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/.mcp.json +2 -1
- package/packages/omo-codex/plugin/components/lsp/dist/.omo-runtime-manifest.json +3 -3
- package/packages/omo-codex/plugin/components/lsp/dist/cli.js +113 -31
- 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/lsp/test/package-smoke.test.ts +1 -0
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.5.md +1 -1
- package/packages/omo-codex/plugin/components/rules/bundled-rules/hephaestus/gpt-5.6.md +5 -3
- 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/README.md +2 -2
- package/packages/omo-codex/plugin/components/start-work-continuation/directive.md +3 -3
- package/packages/omo-codex/plugin/components/start-work-continuation/dist/cli.js +2 -2
- 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 +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/src/codex-hook.ts +1 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/test/boulder-reader.test.ts +15 -1
- package/packages/omo-codex/plugin/components/start-work-continuation/test/codex-hook.test.ts +20 -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/directive.md +50 -33
- 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/ultrawork/SKILL.md +50 -33
- package/packages/omo-codex/plugin/components/ulw-loop/directive.md +50 -33
- package/packages/omo-codex/plugin/components/ulw-loop/dist/cli.js +3 -3
- package/packages/omo-codex/plugin/components/ulw-loop/dist/stop-resume-hook.js +5 -6
- 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/components/ulw-loop/skills/ulw-loop/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/components/ulw-loop/src/stop-resume-hook.ts +5 -6
- package/packages/omo-codex/plugin/components/ulw-loop/test/stop-resume-hook.test.ts +2 -2
- 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/sync-skills.mjs +10 -2
- package/packages/omo-codex/plugin/skills/review-work/SKILL.md +7 -0
- package/packages/omo-codex/plugin/skills/start-work/SKILL.md +3 -2
- package/packages/omo-codex/plugin/skills/ultrawork/SKILL.md +50 -33
- package/packages/omo-codex/plugin/skills/ulw-loop/references/full-workflow.md +1 -1
- package/packages/omo-codex/plugin/test/mcp-research-servers.test.mjs +1 -0
- package/packages/omo-codex/plugin/test/sync-skills-orchestration.test.mjs +7 -0
- package/packages/omo-codex/plugin/test/sync-skills-test-support.mjs +35 -4
- package/packages/omo-codex/scripts/install-dist/install-local.mjs +1 -1
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/components/teammode/dist/cli.js\" hook post-tool-use",
|
|
10
10
|
"timeout": 10,
|
|
11
|
-
"statusMessage": "(OmO 4.18.
|
|
11
|
+
"statusMessage": "(OmO 4.18.2) Checking Thread Title Hygiene",
|
|
12
12
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\teammode\\dist\\cli.js\" hook post-tool-use"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook post-tool-use",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Matching Project Rules",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook post-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook pre-tool-use",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Enforcing Unlimited Goal Budget",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook pre-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"type": "command",
|
|
9
9
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook pre-tool-use-spawn",
|
|
10
10
|
"timeout": 5,
|
|
11
|
-
"statusMessage": "(OmO 4.18.
|
|
11
|
+
"statusMessage": "(OmO 4.18.2) Guarding Ulw-Loop Spawns",
|
|
12
12
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook pre-tool-use-spawn"
|
|
13
13
|
}
|
|
14
14
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/git-bash/dist/cli.js\" hook pre-tool-use",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Recommending Git Bash MCP",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\git-bash\\dist\\cli.js\" hook pre-tool-use"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/scripts/auto-update.mjs\" hook session-start",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking Auto Update",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\scripts\\auto-update.mjs\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/bootstrap/dist/cli.js\" hook session-start",
|
|
9
9
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\bootstrap.ps1\"",
|
|
10
10
|
"timeout": 30,
|
|
11
|
-
"statusMessage": "(OmO 4.18.
|
|
11
|
+
"statusMessage": "(OmO 4.18.2) Checking Bootstrap Provisioning"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
14
14
|
}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/codegraph/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking CodeGraph Bootstrap",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\codegraph\\dist\\cli.js\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Loading Project Rules",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/telemetry/dist/cli.js\" hook session-start",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Recording Session Telemetry",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\telemetry\\dist\\cli.js\" hook session-start"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking Start-Work Continuation",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\start-work-continuation\\dist\\cli.js\" hook stop"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking Ulw-Loop Resume",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook stop"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/start-work-continuation/dist/cli.js\" hook subagent-stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking Start-Work Continuation",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\start-work-continuation\\dist\\cli.js\" hook subagent-stop"
|
|
12
12
|
}
|
|
13
13
|
]
|
package/packages/omo-codex/plugin/hooks/subagent-stop-verifying-lazycodex-executor-evidence.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/lazycodex-executor-verify/dist/cli.js\" hook subagent-stop",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Verifying LazyCodex Executor Evidence",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\lazycodex-executor-verify\\dist\\cli.js\" hook subagent-stop"
|
|
12
12
|
}
|
|
13
13
|
],
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ultrawork/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 5,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking Ultrawork Trigger",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ultrawork\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/ulw-loop/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Checking Ulw-Loop Steering",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\ulw-loop\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"type": "command",
|
|
8
8
|
"command": "node \"${PLUGIN_ROOT}/components/rules/dist/cli.js\" hook user-prompt-submit",
|
|
9
9
|
"timeout": 10,
|
|
10
|
-
"statusMessage": "(OmO 4.18.
|
|
10
|
+
"statusMessage": "(OmO 4.18.2) Loading Project Rules",
|
|
11
11
|
"commandWindows": "powershell -NoProfile -ExecutionPolicy Bypass -File \"${PLUGIN_ROOT}\\components\\bootstrap\\scripts\\node-dispatch.ps1\" \"${PLUGIN_ROOT}\\components\\rules\\dist\\cli.js\" hook user-prompt-submit"
|
|
12
12
|
}
|
|
13
13
|
]
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sisyphuslabs/omo-codex-plugin",
|
|
3
|
-
"version": "4.18.
|
|
3
|
+
"version": "4.18.2",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "@sisyphuslabs/omo-codex-plugin",
|
|
9
|
-
"version": "4.18.
|
|
9
|
+
"version": "4.18.2",
|
|
10
10
|
"workspaces": [
|
|
11
11
|
"components/codegraph",
|
|
12
12
|
"components/comment-checker",
|
|
@@ -100,7 +100,7 @@
|
|
|
100
100
|
},
|
|
101
101
|
"components/codegraph": {
|
|
102
102
|
"name": "@sisyphuslabs/codex-codegraph",
|
|
103
|
-
"version": "4.18.
|
|
103
|
+
"version": "4.18.2",
|
|
104
104
|
"bin": {
|
|
105
105
|
"omo-codegraph": "dist/cli.js"
|
|
106
106
|
},
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
},
|
|
120
120
|
"components/comment-checker": {
|
|
121
121
|
"name": "@code-yeongyu/codex-comment-checker",
|
|
122
|
-
"version": "4.18.
|
|
122
|
+
"version": "4.18.2",
|
|
123
123
|
"license": "MIT",
|
|
124
124
|
"bin": {
|
|
125
125
|
"omo-comment-checker": "dist/cli.js"
|
|
@@ -140,7 +140,7 @@
|
|
|
140
140
|
},
|
|
141
141
|
"components/git-bash": {
|
|
142
142
|
"name": "@sisyphuslabs/codex-git-bash-hook",
|
|
143
|
-
"version": "4.18.
|
|
143
|
+
"version": "4.18.2",
|
|
144
144
|
"bin": {
|
|
145
145
|
"omo-git-bash-hook": "dist/cli.js"
|
|
146
146
|
},
|
|
@@ -155,7 +155,7 @@
|
|
|
155
155
|
},
|
|
156
156
|
"components/lazycodex-executor-verify": {
|
|
157
157
|
"name": "@code-yeongyu/codex-lazycodex-executor-verify",
|
|
158
|
-
"version": "4.18.
|
|
158
|
+
"version": "4.18.2",
|
|
159
159
|
"license": "MIT",
|
|
160
160
|
"bin": {
|
|
161
161
|
"lazycodex-executor-verify": "dist/cli.js"
|
|
@@ -172,7 +172,7 @@
|
|
|
172
172
|
},
|
|
173
173
|
"components/lsp": {
|
|
174
174
|
"name": "@code-yeongyu/codex-lsp",
|
|
175
|
-
"version": "4.18.
|
|
175
|
+
"version": "4.18.2",
|
|
176
176
|
"license": "MIT",
|
|
177
177
|
"dependencies": {
|
|
178
178
|
"@code-yeongyu/lsp-daemon": "file:../../../../lsp-daemon",
|
|
@@ -193,7 +193,7 @@
|
|
|
193
193
|
},
|
|
194
194
|
"components/rules": {
|
|
195
195
|
"name": "@code-yeongyu/codex-rules",
|
|
196
|
-
"version": "4.18.
|
|
196
|
+
"version": "4.18.2",
|
|
197
197
|
"license": "MIT",
|
|
198
198
|
"dependencies": {
|
|
199
199
|
"picomatch": "^4.0.3"
|
|
@@ -215,7 +215,7 @@
|
|
|
215
215
|
},
|
|
216
216
|
"components/start-work-continuation": {
|
|
217
217
|
"name": "@code-yeongyu/codex-start-work-continuation",
|
|
218
|
-
"version": "4.18.
|
|
218
|
+
"version": "4.18.2",
|
|
219
219
|
"license": "MIT",
|
|
220
220
|
"bin": {
|
|
221
221
|
"omo-start-work-continuation": "dist/cli.js"
|
|
@@ -232,7 +232,7 @@
|
|
|
232
232
|
},
|
|
233
233
|
"components/teammode": {
|
|
234
234
|
"name": "@sisyphuslabs/codex-teammode",
|
|
235
|
-
"version": "4.18.
|
|
235
|
+
"version": "4.18.2",
|
|
236
236
|
"devDependencies": {
|
|
237
237
|
"@types/node": "^25.9.3",
|
|
238
238
|
"bun-types": "^1.3.1",
|
|
@@ -245,7 +245,7 @@
|
|
|
245
245
|
},
|
|
246
246
|
"components/telemetry": {
|
|
247
247
|
"name": "@code-yeongyu/codex-telemetry",
|
|
248
|
-
"version": "4.18.
|
|
248
|
+
"version": "4.18.2",
|
|
249
249
|
"license": "MIT",
|
|
250
250
|
"bin": {
|
|
251
251
|
"omo-telemetry": "dist/cli.js"
|
|
@@ -263,7 +263,7 @@
|
|
|
263
263
|
},
|
|
264
264
|
"components/ultrawork": {
|
|
265
265
|
"name": "@code-yeongyu/codex-ultrawork",
|
|
266
|
-
"version": "4.18.
|
|
266
|
+
"version": "4.18.2",
|
|
267
267
|
"license": "MIT",
|
|
268
268
|
"bin": {
|
|
269
269
|
"omo-ultrawork": "dist/cli.js"
|
|
@@ -281,7 +281,7 @@
|
|
|
281
281
|
},
|
|
282
282
|
"components/ulw-loop": {
|
|
283
283
|
"name": "@code-yeongyu/codex-ulw-loop",
|
|
284
|
-
"version": "4.18.
|
|
284
|
+
"version": "4.18.2",
|
|
285
285
|
"license": "MIT",
|
|
286
286
|
"bin": {
|
|
287
287
|
"omo-ulw-loop": "dist/cli.js",
|
|
@@ -132,9 +132,10 @@ const startWorkOriginalCompletion = `When all top-level checkboxes in \`## TODOs
|
|
|
132
132
|
const startWorkCodexCompletion = `When all top-level checkboxes in \`## TODOs\` and \`## Final Verification Wave\` are complete:
|
|
133
133
|
|
|
134
134
|
1. Run the plan's final verification commands.
|
|
135
|
-
2. Complete the **Global Review and Debugging Gate** before any completion claim, PR creation, PR handoff, branch handoff, or merge
|
|
135
|
+
2. Complete the **Global Review and Debugging Gate** before any completion claim, PR creation, PR handoff, branch handoff, or merge:
|
|
136
136
|
- Invoke the \`review-work\` skill with the final diff, changed files, user goal, constraints, run command, and verification evidence. All five review lanes must return PASS. A timeout, missing deliverable, ack-only child, \`BLOCKED:\`, or inconclusive lane is a gate failure, not approval.
|
|
137
|
-
-
|
|
137
|
+
- Each passing review lane binds to the exact full commit SHA it reviewed. Immediately append a durable record to \`.omo/start-work/ledger.jsonl\` with the lane name, full SHA, PASS verdict, and report artifact/source. Before same-SHA reuse after any continuation or compaction, re-read the ledger record and require the exact lane/SHA pair; memory, chat history, or an unstamped report is not coverage. New commits require fresh applicable lane coverage.
|
|
138
|
+
- Run a debugging-oriented runtime audit even when the review passes: name at least three plausible failure hypotheses for the changed surface, run the distinguishing checks against the actual artifact, and append a separate durable record with the audit name, exact full SHA, verdict, and evidence artifact/source to \`.omo/start-work/ledger.jsonl\`. Reuse it only after re-reading an exact audit/SHA match.
|
|
138
139
|
- If any review lane or debugging hypothesis fails, invoke the \`debugging\` skill, confirm root cause with runtime evidence, add the minimal failing test or reproduction, fix it, rerun the affected verification, then rerun the Global Review and Debugging Gate.
|
|
139
140
|
- Evidence hygiene is mandatory: redact or mask secrets and sensitive user data before writing \`.omo/start-work/ledger.jsonl\`, a PR body, or a handoff. Never include raw tokens, credentials, auth headers, cookies, API keys, env dumps, private logs, or PII; use concise summaries, lengths, hashes, or short non-sensitive prefixes instead.
|
|
140
141
|
- If the work includes creating, updating, or handing off a PR, refresh \`git status\` and the PR/branch state from the task-owned worktree after the gate, and include only redacted review/debugging evidence in the PR body or handoff.
|
|
@@ -156,6 +157,13 @@ failed, investigate the underlying uncertainty with the \`debugging\` skill when
|
|
|
156
157
|
runtime behavior may be wrong, fix with evidence, and rerun the affected lane
|
|
157
158
|
before claiming completion, creating or handing off a PR, or merging.
|
|
158
159
|
|
|
160
|
+
After each lane reaches PASS, immediately append a durable task-evidence record
|
|
161
|
+
to the active ledger with the lane name, exact full commit SHA, PASS verdict,
|
|
162
|
+
and report artifact/source. Before reusing coverage after continuation or
|
|
163
|
+
compaction, re-read that record and require the exact lane/SHA pair. Memory,
|
|
164
|
+
chat history, or an unstamped report is not coverage; a new commit requires
|
|
165
|
+
fresh applicable lane records.
|
|
166
|
+
|
|
159
167
|
A rejecting lane must name its blockers inline in its final message — each
|
|
160
168
|
blocker cites the violated goal criterion or requirement plus an evidence
|
|
161
169
|
pointer. A bare REJECT/FAIL token without findings is not a verdict; treat it
|
|
@@ -70,6 +70,13 @@ failed, investigate the underlying uncertainty with the `debugging` skill when
|
|
|
70
70
|
runtime behavior may be wrong, fix with evidence, and rerun the affected lane
|
|
71
71
|
before claiming completion, creating or handing off a PR, or merging.
|
|
72
72
|
|
|
73
|
+
After each lane reaches PASS, immediately append a durable task-evidence record
|
|
74
|
+
to the active ledger with the lane name, exact full commit SHA, PASS verdict,
|
|
75
|
+
and report artifact/source. Before reusing coverage after continuation or
|
|
76
|
+
compaction, re-read that record and require the exact lane/SHA pair. Memory,
|
|
77
|
+
chat history, or an unstamped report is not coverage; a new commit requires
|
|
78
|
+
fresh applicable lane records.
|
|
79
|
+
|
|
73
80
|
A rejecting lane must name its blockers inline in its final message — each
|
|
74
81
|
blocker cites the violated goal criterion or requirement plus an evidence
|
|
75
82
|
pointer. A bare REJECT/FAIL token without findings is not a verdict; treat it
|
|
@@ -176,9 +176,10 @@ Only after verification passes:
|
|
|
176
176
|
When all top-level checkboxes in `## TODOs` and `## Final Verification Wave` are complete:
|
|
177
177
|
|
|
178
178
|
1. Run the plan's final verification commands.
|
|
179
|
-
2. Complete the **Global Review and Debugging Gate** before any completion claim, PR creation, PR handoff, branch handoff, or merge
|
|
179
|
+
2. Complete the **Global Review and Debugging Gate** before any completion claim, PR creation, PR handoff, branch handoff, or merge:
|
|
180
180
|
- Invoke the `review-work` skill with the final diff, changed files, user goal, constraints, run command, and verification evidence. All five review lanes must return PASS. A timeout, missing deliverable, ack-only child, `BLOCKED:`, or inconclusive lane is a gate failure, not approval.
|
|
181
|
-
-
|
|
181
|
+
- Each passing review lane binds to the exact full commit SHA it reviewed. Immediately append a durable record to `.omo/start-work/ledger.jsonl` with the lane name, full SHA, PASS verdict, and report artifact/source. Before same-SHA reuse after any continuation or compaction, re-read the ledger record and require the exact lane/SHA pair; memory, chat history, or an unstamped report is not coverage. New commits require fresh applicable lane coverage.
|
|
182
|
+
- Run a debugging-oriented runtime audit even when the review passes: name at least three plausible failure hypotheses for the changed surface, run the distinguishing checks against the actual artifact, and append a separate durable record with the audit name, exact full SHA, verdict, and evidence artifact/source to `.omo/start-work/ledger.jsonl`. Reuse it only after re-reading an exact audit/SHA match.
|
|
182
183
|
- If any review lane or debugging hypothesis fails, invoke the `debugging` skill, confirm root cause with runtime evidence, add the minimal failing test or reproduction, fix it, rerun the affected verification, then rerun the Global Review and Debugging Gate.
|
|
183
184
|
- Evidence hygiene is mandatory: redact or mask secrets and sensitive user data before writing `.omo/start-work/ledger.jsonl`, a PR body, or a handoff. Never include raw tokens, credentials, auth headers, cookies, API keys, env dumps, private logs, or PII; use concise summaries, lengths, hashes, or short non-sensitive prefixes instead.
|
|
184
185
|
- If the work includes creating, updating, or handing off a PR, refresh `git status` and the PR/branch state from the task-owned worktree after the gate, and include only redacted review/debugging evidence in the PR body or handoff.
|
|
@@ -112,9 +112,7 @@ notepad with a one-line reason each. Skipping a skill that fits the
|
|
|
112
112
|
task is a defect. Open a skill's body only when THIS session will
|
|
113
113
|
execute its workflow; skills a delegated session needs are named in
|
|
114
114
|
its prompt and read there, not here.
|
|
115
|
-
Next, fire the first discovery wave
|
|
116
|
-
things below): direct lookups plus `explorer` / `librarian` children
|
|
117
|
-
for unfamiliar layout or external contracts.
|
|
115
|
+
Next, fire the first discovery wave under Finding things below.
|
|
118
116
|
Then run Tier triage (above) on the change set and record the tier —
|
|
119
117
|
tier sizes evidence and review, never who plans. Size planning by
|
|
120
118
|
what the wave left UNDECIDED, not by how many steps you can list:
|
|
@@ -214,25 +212,27 @@ GOOD pair (test-first, ordered):
|
|
|
214
212
|
BAD: "Implement feature" / "Fix bug" / "Add tests later" / writing
|
|
215
213
|
production code before its failing test → rewrite.
|
|
216
214
|
|
|
217
|
-
# Finding things (lead with these,
|
|
215
|
+
# Finding things (lead with these, code-mode the first wave)
|
|
218
216
|
Never guess from memory — locate with the right tool, and re-read before
|
|
219
|
-
you claim or change.
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
`
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
-
|
|
235
|
-
`
|
|
217
|
+
you claim or change. **USE CODE MODE AGGRESSIVELY FOR BOUNDED WAVES.**
|
|
218
|
+
When multiple independent tool calls produce results that can be materially
|
|
219
|
+
filtered, joined, deduplicated, or reduced, make ONE `exec` / eval JavaScript
|
|
220
|
+
program that calls eligible tools concurrently with `Promise.all` and emits only
|
|
221
|
+
decision-relevant evidence. For shell-native repo work without programmatic
|
|
222
|
+
tool access, use ONE Python script with `concurrent.futures`, `subprocess`,
|
|
223
|
+
and utility functions to batch commands and reduce output. Keep direct calls
|
|
224
|
+
when one result chooses the next action, outputs are already small, semantic
|
|
225
|
+
judgment is required between calls, approval or side effects are involved,
|
|
226
|
+
or native artifacts / citations must be preserved.
|
|
227
|
+
- Architecture / flow / blast radius → `codegraph_explore` first when
|
|
228
|
+
`codegraph_*` exists; if unavailable, continue with repo tools and LSP.
|
|
229
|
+
- **SYMBOLS REQUIRE LSP** — definitions, references, rename impact,
|
|
230
|
+
workspace symbols, and diagnostics use the available `lsp_*` tools, not
|
|
231
|
+
text search. Run diagnostics after edits and treat errors as blocking.
|
|
232
|
+
- Repo text / filenames / history / bounded shell output → `rg`,
|
|
233
|
+
`rg --files`, `git`, and native utilities; narrow output in-program.
|
|
234
|
+
- Structural call / function / class / import shapes and codemods → the
|
|
235
|
+
`ast-grep` skill or `sg` with `$VAR` / `$$$` metavariables.
|
|
236
236
|
When discovery needs multiple angles or the module layout is
|
|
237
237
|
unfamiliar, delegate to the `explorer` subagent (read-only codebase
|
|
238
238
|
search, absolute-path results). For research that leaves the repo —
|
|
@@ -296,21 +296,39 @@ Until every success criterion PASSES with its evidence captured:
|
|
|
296
296
|
vars. Append a one-line cleanup receipt to the notepad next to the
|
|
297
297
|
artifact, e.g. `cleanup: killed 12345; tmux kill-session ulw-qa-foo;
|
|
298
298
|
rm -rf /tmp/ulw.aB12cD`. No receipt → criterion stays in_progress.
|
|
299
|
-
6. Verify: LSP diagnostics clean on changed files +
|
|
300
|
-
green (no skipped, no xfail added this
|
|
299
|
+
6. Verify: LSP diagnostics clean on changed files + the test scope
|
|
300
|
+
this criterion touched green (no skipped, no xfail added this
|
|
301
|
+
turn). Re-run a validation command (suite, typecheck, build) only
|
|
302
|
+
when its inputs changed since its last green run; ONE full-suite
|
|
303
|
+
pass belongs immediately before the final message, not after
|
|
304
|
+
every increment.
|
|
301
305
|
7. Mark completed. Append non-obvious findings / learnings.
|
|
302
|
-
8. After each increment, re-run
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
306
|
+
8. After each increment, re-run the scenarios that increment could
|
|
307
|
+
have affected; re-run the full set once, right before the final
|
|
308
|
+
message. Record PASS/FAIL inline with the evidence paths AND the
|
|
309
|
+
cleanup receipt. Loop until all PASS.
|
|
310
|
+
|
|
311
|
+
Within a step, follow Finding things; NEVER parallelise RED and GREEN of
|
|
312
|
+
the same criterion.
|
|
313
|
+
|
|
314
|
+
# Waiting discipline (a poll costs a full model round)
|
|
315
|
+
Every status check you issue as a tool call replays the entire
|
|
316
|
+
accumulated context through the model. When a command will run long
|
|
317
|
+
(installs, builds, test suites, containers, CI), run it to completion
|
|
318
|
+
in ONE call with a timeout sized to the expected duration, or send
|
|
319
|
+
output to a log file and read it once when a completion signal is
|
|
320
|
+
expected. Never re-poll the same surface with empty reads or
|
|
321
|
+
sub-minute waits — batch waiting into the fewest, longest blocking
|
|
322
|
+
calls the harness allows, and do independent root work while the
|
|
323
|
+
command runs. If two consecutive checks show no state change, double
|
|
324
|
+
the wait before the next check or switch to a completion signal.
|
|
308
325
|
|
|
309
326
|
# Codex subagent reliability
|
|
310
327
|
Every `multi_agent_v1.spawn_agent` message is self-contained and starts with
|
|
311
|
-
`TASK: <imperative assignment>`, then names `DELIVERABLE`, `SCOPE`,
|
|
312
|
-
`VERIFY
|
|
313
|
-
|
|
328
|
+
`TASK: <imperative assignment>`, then names `DELIVERABLE`, `SCOPE`,
|
|
329
|
+
`VERIFY`, and `STOP WHEN` — the observable condition that ends the
|
|
330
|
+
child's run; a child without a stop condition wanders past its goal.
|
|
331
|
+
State that it is an executable assignment, not a context handoff. Use `fork_context: false` unless full history is truly
|
|
314
332
|
required; paste only the context the child needs. Full-history forks can
|
|
315
333
|
make the child continue old parent context instead of the delegated task.
|
|
316
334
|
If your tool list has a flat `spawn_agent` with a required `task_name` instead of `multi_agent_v1.*` (`multi_agent_v2`), rewrite: `fork_context: false` becomes `fork_turns: "none"`, `send_input` becomes `send_message`, finished agents end on their own (no `close_agent`; `followup_task` re-tasks, `interrupt_agent` stops), and `wait_agent` takes only `timeout_ms`, returning on any child mailbox activity.
|
|
@@ -420,7 +438,6 @@ message + present for approval.
|
|
|
420
438
|
- Never suppress lints / errors / test failures. Never delete, skip,
|
|
421
439
|
`.only`, `.skip`, `xfail`, or comment out tests to green the suite.
|
|
422
440
|
- Never claim done from inference — only from captured evidence.
|
|
423
|
-
- Parallel tool calls for any independent work.
|
|
424
441
|
|
|
425
442
|
# Output discipline
|
|
426
443
|
- First line literally: `ULTRAWORK MODE ENABLED!`
|
|
@@ -187,7 +187,7 @@ Trigger only for the final aggregate goal after every criterion in every goal is
|
|
|
187
187
|
2. FREEZE first — no more edits or rebases. At the frozen HEAD, re-run Manual-QA for any PASS criterion whose stamped tree differs from `git rev-parse --short "HEAD^{tree}"`, so every criterion is proven on the frozen tree; each artifact exists and is non-empty.
|
|
188
188
|
3a. Spawn lazycodex-code-reviewer and lazycodex-qa-executor in parallel (`fork_context: false` on v1; `fork_turns: "none"` on v2) with brief, goals, desired outcome, diff, evidence; wait for BOTH and confirm their report artifacts exist on disk.
|
|
189
189
|
3b. Only then spawn lazycodex-gate-reviewer with those artifact paths.
|
|
190
|
-
3c. The gate's approval binds to the frozen tree and covers its three lanes — code quality, hands-on QA, and goal verification. A later rebase or amend that keeps the tree identical
|
|
190
|
+
3c. The gate's approval binds to the frozen tree and full commit SHA and covers its three lanes — code quality, hands-on QA, and goal verification. Immediately append one durable `.omo/ulw-loop/ledger.jsonl` record per passing lane with the lane name, full SHA, verdict, and report artifact/source. Before reuse after continuation or compaction, re-read the ledger and require the exact lane/SHA pair; memory or an unstamped report is not coverage. A later rebase or amend that keeps the tree identical still has a new SHA and needs fresh lane stamps; changed content needs fresh review of the delta.
|
|
191
191
|
4. Treat timeout, missing deliverable, ack-only, `BLOCKED:`, or inconclusive review as a blocker. Any fix restarts the freeze at the new HEAD: re-run ONLY the proofs it invalidated and stamp the fresh output — never regenerate all evidence or relabel stale output to HEAD — re-review the delta at most TWICE; then record-review-blockers (step 5) and surface to the user.
|
|
192
192
|
5. If review remains blocked, run `omo ulw-loop record-review-blockers --goal-id <id> --title "<...>" --objective "<...>" --evidence "<review findings>" --codex-goal-json <snapshot> --json`.
|
|
193
193
|
6. If clean, checkpoint final completion:
|
|
@@ -20,4 +20,5 @@ test("#given aggregate MCP config #when inspected #then registers research MCPs
|
|
|
20
20
|
assert.equal(Object.hasOwn(mcp.mcpServers, "ast_grep"), false);
|
|
21
21
|
assert.deepEqual(mcp.mcpServers.codegraph.args, ["components/codegraph/dist/serve.js"]);
|
|
22
22
|
assert.equal(mcp.mcpServers.codegraph.required, false);
|
|
23
|
+
assert.equal(mcp.mcpServers.lsp.startup_timeout_sec, 10);
|
|
23
24
|
});
|
|
@@ -241,6 +241,9 @@ test("#given start-work skill #when synced for Codex #then the difficulty-tier d
|
|
|
241
241
|
assert.match(content, /lazycodex-worker-medium/);
|
|
242
242
|
assert.match(content, /Delegation by difficulty/);
|
|
243
243
|
assert.match(content, /Global Review and Debugging Gate/);
|
|
244
|
+
assert.match(content, /full commit SHA/);
|
|
245
|
+
assert.match(content, /re-read the ledger record/);
|
|
246
|
+
assert.match(content, /exact lane\/SHA pair/);
|
|
244
247
|
assert.doesNotMatch(content, /works the same on both surfaces/);
|
|
245
248
|
});
|
|
246
249
|
|
|
@@ -256,6 +259,10 @@ test("#given review-work skill #when some lanes do not finish #then aggregate re
|
|
|
256
259
|
assert.match(content, /Do not spin in repeated/);
|
|
257
260
|
assert.match(content, /bare REJECT\/FAIL token without findings is not a verdict/);
|
|
258
261
|
assert.match(content, /cites the violated goal criterion/);
|
|
262
|
+
assert.match(content, /append a durable task-evidence record/);
|
|
263
|
+
assert.match(content, /full commit SHA/);
|
|
264
|
+
assert.match(content, /re-read that record/);
|
|
265
|
+
assert.match(content, /exact lane\/SHA pair/);
|
|
259
266
|
assert.match(content, /Do not use `multi_agent_v1\.send_input` as an interrupt/);
|
|
260
267
|
});
|
|
261
268
|
|
|
@@ -77,9 +77,10 @@ const startWorkOriginalCompletion = `When all top-level checkboxes in \`## TODOs
|
|
|
77
77
|
const startWorkCodexCompletion = `When all top-level checkboxes in \`## TODOs\` and \`## Final Verification Wave\` are complete:
|
|
78
78
|
|
|
79
79
|
1. Run the plan's final verification commands.
|
|
80
|
-
2. Complete the **Global Review and Debugging Gate** before any completion claim, PR creation, PR handoff, branch handoff, or merge
|
|
80
|
+
2. Complete the **Global Review and Debugging Gate** before any completion claim, PR creation, PR handoff, branch handoff, or merge:
|
|
81
81
|
- Invoke the \`review-work\` skill with the final diff, changed files, user goal, constraints, run command, and verification evidence. All five review lanes must return PASS. A timeout, missing deliverable, ack-only child, \`BLOCKED:\`, or inconclusive lane is a gate failure, not approval.
|
|
82
|
-
-
|
|
82
|
+
- Each passing review lane binds to the exact full commit SHA it reviewed. Immediately append a durable record to \`.omo/start-work/ledger.jsonl\` with the lane name, full SHA, PASS verdict, and report artifact/source. Before same-SHA reuse after any continuation or compaction, re-read the ledger record and require the exact lane/SHA pair; memory, chat history, or an unstamped report is not coverage. New commits require fresh applicable lane coverage.
|
|
83
|
+
- Run a debugging-oriented runtime audit even when the review passes: name at least three plausible failure hypotheses for the changed surface, run the distinguishing checks against the actual artifact, and append a separate durable record with the audit name, exact full SHA, verdict, and evidence artifact/source to \`.omo/start-work/ledger.jsonl\`. Reuse it only after re-reading an exact audit/SHA match.
|
|
83
84
|
- If any review lane or debugging hypothesis fails, invoke the \`debugging\` skill, confirm root cause with runtime evidence, add the minimal failing test or reproduction, fix it, rerun the affected verification, then rerun the Global Review and Debugging Gate.
|
|
84
85
|
- Evidence hygiene is mandatory: redact or mask secrets and sensitive user data before writing \`.omo/start-work/ledger.jsonl\`, a PR body, or a handoff. Never include raw tokens, credentials, auth headers, cookies, API keys, env dumps, private logs, or PII; use concise summaries, lengths, hashes, or short non-sensitive prefixes instead.
|
|
85
86
|
- If the work includes creating, updating, or handing off a PR, refresh \`git status\` and the PR/branch state from the task-owned worktree after the gate, and include only redacted review/debugging evidence in the PR body or handoff.
|
|
@@ -91,8 +92,38 @@ const startWorkOriginalHardRule = "- No completion claim while an applicable ult
|
|
|
91
92
|
|
|
92
93
|
const startWorkCodexHardRule = "- No completion claim while an applicable ultraqa adversarial class was never probed. Each applicable class needs a captured observable result; each skipped class needs a one-line not-applicable reason in the ledger.\n- No `ORCHESTRATION COMPLETE`, final response, PR creation, PR handoff, or merge before the Global Review and Debugging Gate passes with recorded evidence.\n- No PR/branch implementation or review in the main worktree; create or use a task-owned git worktree first.\n- No unprefixed session ids in Boulder state. Codex sessions are always `codex:<session_id>`.";
|
|
93
94
|
|
|
94
|
-
const
|
|
95
|
-
|
|
95
|
+
const reviewWorkCodexGate = `
|
|
96
|
+
When \`review-work\` is used as a final implementation, PR, or \`$start-work\`
|
|
97
|
+
gate, it is blocking. A timeout, missing deliverable, ack-only response,
|
|
98
|
+
explicit \`BLOCKED:\`, or inconclusive lane is not a pass. Treat that lane as
|
|
99
|
+
failed, investigate the underlying uncertainty with the \`debugging\` skill when
|
|
100
|
+
runtime behavior may be wrong, fix with evidence, and rerun the affected lane
|
|
101
|
+
before claiming completion, creating or handing off a PR, or merging.
|
|
102
|
+
|
|
103
|
+
After each lane reaches PASS, immediately append a durable task-evidence record
|
|
104
|
+
to the active ledger with the lane name, exact full commit SHA, PASS verdict,
|
|
105
|
+
and report artifact/source. Before reusing coverage after continuation or
|
|
106
|
+
compaction, re-read that record and require the exact lane/SHA pair. Memory,
|
|
107
|
+
chat history, or an unstamped report is not coverage; a new commit requires
|
|
108
|
+
fresh applicable lane records.
|
|
109
|
+
|
|
110
|
+
A rejecting lane must name its blockers inline in its final message — each
|
|
111
|
+
blocker cites the violated goal criterion or requirement plus an evidence
|
|
112
|
+
pointer. A bare REJECT/FAIL token without findings is not a verdict; treat it
|
|
113
|
+
as an inconclusive lane (one bounded respawn, then record it inconclusive with
|
|
114
|
+
that reason).
|
|
115
|
+
|
|
116
|
+
When reviewing a PR or branch, collect diff, file contents, and verification
|
|
117
|
+
results from a dedicated review worktree attached to that branch. Never
|
|
118
|
+
checkout, test, or edit the review branch in the main worktree.
|
|
119
|
+
|
|
120
|
+
Review evidence must be safe to share. Redact or mask secrets and sensitive
|
|
121
|
+
user data before including evidence in logs, PR bodies, or handoffs. Never
|
|
122
|
+
include raw tokens, credentials, auth headers, cookies, API keys, env dumps,
|
|
123
|
+
private logs, or PII; summarize with lengths, hashes, and short non-sensitive
|
|
124
|
+
prefixes when identity is needed.
|
|
125
|
+
`;
|
|
126
|
+
const reviewWorkCodexGatePattern = new RegExp(reviewWorkCodexGate.replace(/[.*+?^${}()|[\]\\]/g, "\\$&"));
|
|
96
127
|
|
|
97
128
|
export function removeCodexSkillOverlays(skillName, content) {
|
|
98
129
|
if (skillName === "ulw-research") {
|
|
@@ -5903,7 +5903,7 @@ var package_default;
|
|
|
5903
5903
|
var init_package = __esm(() => {
|
|
5904
5904
|
package_default = {
|
|
5905
5905
|
name: "@oh-my-opencode/omo-codex",
|
|
5906
|
-
version: "4.18.
|
|
5906
|
+
version: "4.18.2",
|
|
5907
5907
|
type: "module",
|
|
5908
5908
|
private: true,
|
|
5909
5909
|
description: "Codex harness adapter for oh-my-openagent. Vendored Codex plugin namespace (omo) + TypeScript installer + telemetry.",
|