sync-mcp rebuilds the lsp component if a prior sync wiped its dist; sync-mcp.test
builds in a before hook; checkVendored flags only real unbundled imports (a guarded
require.resolve fallback is allowed); test:claude runs the destructive sync-components
test in its own node --test pass so it never races the build-checking tests.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Upstream lazy-lsp-mcp resolves the lsp server via new URL('../../../mcp/lsp/cli.js',
import.meta.url) -> the vendored plugin/mcp/lsp/cli.js, so the bundled hook boots
from a node_modules-free cache without require.resolve.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Goal content under ./.omo/ultragoal/sessions/claude-<id>/ keyed by Claude Code
session_id (claude: prefix); UltragoalScope struct threaded; plan version 2 +
index.json registry with read-only v1 forward-migration (never deletes v1);
create_goal/get_goal/update_goal dependency dropped (file/steering-based); the
PreToolUse create_goal budget guard kept compiled+unit-tested but its hooks.json
registration removed (inert in CC). 26 tests pass. ultragoal removed from
sync-components HANDLED set — it is a hand-fork, not patch-synced.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
codex:->claude: session prefix; model/turn_id optional in Stop validator. QA: no-op without boulder.json, no crash.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Keyword detector injects directive.md on ulw/ultrawork; silent otherwise. QA: directive injects, no crash.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
ast_grep + lsp servers vendored under plugin/mcp via sync-mcp.mjs; .mcp.json uses
${CLAUDE_PLUGIN_ROOT} (no ../). Both boot from a node_modules-free tree (verified
JSON-RPC initialize handshakes). lsp hook bundled to inline lsp-tools-mcp. mcp/
dist is gitignored (regenerated by build).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Per-component COPY_DIRS_BY_COMPONENT (lsp:scripts, rules:bundled-rules) and
directive.md in COPY_FILES — ultrawork/start-work-continuation read directive.md
from the component root at runtime; rules needs its bundled-rules.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Vendored from omo-codex via sync-components: model/turn_id optional in the
PostToolUse validator (permission_mode kept), CLAUDE_PLUGIN_ROOT hook path.
Builds clean; runs without crash on a CC-shaped PostToolUse payload (no turn_id).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tsconfig.build.json extends ./tsconfig.json (types:[node], strict); without the
base, vendored components lost @types/node and strict config. Also exclude
dist/ and node_modules/ from the --check comparison (they are build artifacts,
not synced source).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Mirrors the codex sync-skills structure; injects a Claude Code Harness Tool
Compatibility block (maps task()/call_omo_agent()/spawn_agent()/background_output/
team_* -> the Task + Skill tools), extends the detection regex to Codex-native
verbs, and demotes any embedded Codex compat heading to (superseded).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Copies 6 omo-codex components (rules, comment-checker, lsp, ultrawork,
ultragoal, start-work-continuation) into the CC plugin tree and applies a
declarative patch manifest: relax model/turn_id validators, CLAUDE_PLUGIN_ROOT/
DATA env fallbacks, .codex-plugin->.claude-plugin, rules matcher widened to
Write|Edit|MultiEdit, start-work-continuation claude: session prefix. ultragoal
copied verbatim (deep refactor is a later task). --check detects vendor drift.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Distinct omo-claude branding (brandColor #D97757, Claude Code copy), same
plugin name 'omo'. Declares skills/hooks/mcpServers paths; homepage/repository
point at code-yeongyu/lazyclaudecode.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Mirror packages/omo-codex layout for the Claude Code port: package.json
(@oh-my-opencode/omo-claude), tsconfig, index.d.ts, src/ + src/telemetry
stubs, and the plugin/ tree (.claude-plugin, components, agents, hooks,
scripts, skills, test, mcp) with a CC-worded plugin README + placeholder
package.json.
Plan: .omo/plans/omo-claude-plugin-port.md
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>