From 9ecbbd443f0f27bf882a0f71739484bceb7d5ff8 Mon Sep 17 00:00:00 2001 From: YeonGyu-Kim Date: Fri, 29 May 2026 12:41:23 +0900 Subject: [PATCH] feat(omo-claude): scaffold package skeleton 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) --- packages/omo-claude/index.d.ts | 1 + packages/omo-claude/package.json | 31 +++++++++++++++++++ .../omo-claude/plugin/.claude-plugin/.gitkeep | 0 packages/omo-claude/plugin/README.md | 17 ++++++++++ packages/omo-claude/plugin/agents/.gitkeep | 0 .../omo-claude/plugin/components/.gitkeep | 0 packages/omo-claude/plugin/hooks/.gitkeep | 0 packages/omo-claude/plugin/mcp/.gitkeep | 0 packages/omo-claude/plugin/package.json | 24 ++++++++++++++ packages/omo-claude/plugin/scripts/.gitkeep | 0 packages/omo-claude/plugin/skills/.gitkeep | 0 packages/omo-claude/plugin/test/.gitkeep | 0 packages/omo-claude/scripts/.gitkeep | 0 packages/omo-claude/src/index.ts | 5 +++ packages/omo-claude/src/telemetry/index.ts | 4 +++ packages/omo-claude/tsconfig.json | 14 +++++++++ 16 files changed, 96 insertions(+) create mode 100644 packages/omo-claude/index.d.ts create mode 100644 packages/omo-claude/package.json create mode 100644 packages/omo-claude/plugin/.claude-plugin/.gitkeep create mode 100644 packages/omo-claude/plugin/README.md create mode 100644 packages/omo-claude/plugin/agents/.gitkeep create mode 100644 packages/omo-claude/plugin/components/.gitkeep create mode 100644 packages/omo-claude/plugin/hooks/.gitkeep create mode 100644 packages/omo-claude/plugin/mcp/.gitkeep create mode 100644 packages/omo-claude/plugin/package.json create mode 100644 packages/omo-claude/plugin/scripts/.gitkeep create mode 100644 packages/omo-claude/plugin/skills/.gitkeep create mode 100644 packages/omo-claude/plugin/test/.gitkeep create mode 100644 packages/omo-claude/scripts/.gitkeep create mode 100644 packages/omo-claude/src/index.ts create mode 100644 packages/omo-claude/src/telemetry/index.ts create mode 100644 packages/omo-claude/tsconfig.json diff --git a/packages/omo-claude/index.d.ts b/packages/omo-claude/index.d.ts new file mode 100644 index 000000000..e910bb060 --- /dev/null +++ b/packages/omo-claude/index.d.ts @@ -0,0 +1 @@ +export * from "./src/index"; diff --git a/packages/omo-claude/package.json b/packages/omo-claude/package.json new file mode 100644 index 000000000..a88d92b9c --- /dev/null +++ b/packages/omo-claude/package.json @@ -0,0 +1,31 @@ +{ + "name": "@oh-my-opencode/omo-claude", + "version": "0.1.0", + "type": "module", + "private": true, + "description": "Claude Code harness adapter for oh-my-openagent. Vendored Claude Code plugin namespace (omo) + TypeScript installer + telemetry.", + "exports": { + ".": { + "types": "./index.d.ts", + "import": "./src/index.ts" + }, + "./telemetry": "./src/telemetry/index.ts", + "./marketplace.json": "./marketplace.json" + }, + "types": "./index.d.ts", + "scripts": { + "typecheck": "tsgo --noEmit -p tsconfig.json", + "test": "bun test src/**/*.test.ts", + "build": "npm --prefix plugin run build", + "sync:skills": "node plugin/scripts/sync-skills.mjs", + "sync:components": "node plugin/scripts/sync-components.mjs", + "sync:telemetry": "node scripts/sync-telemetry-component.mjs" + }, + "dependencies": { + "@oh-my-opencode/utils": "workspace:*", + "posthog-node": "^5.34.3" + }, + "devDependencies": { + "bun-types": "1.3.14" + } +} diff --git a/packages/omo-claude/plugin/.claude-plugin/.gitkeep b/packages/omo-claude/plugin/.claude-plugin/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/omo-claude/plugin/README.md b/packages/omo-claude/plugin/README.md new file mode 100644 index 000000000..a2c0978e9 --- /dev/null +++ b/packages/omo-claude/plugin/README.md @@ -0,0 +1,17 @@ +# omo + +`omo` is the single local Claude Code plugin namespace for Yeongyu's Claude Code components. + +Internally each component remains isolated under `components/`: + +- `components/comment-checker` +- `components/rules` +- `components/lsp` +- `components/ultrawork` +- `components/ultragoal` +- `components/start-work-continuation` +- `components/telemetry` + +The root plugin manifest (`.claude-plugin/plugin.json`) exports one Claude Code plugin +named `omo`, with aggregate hooks (`hooks/hooks.json`), bundled skills (`skills/`), +subagents (`agents/`), and the LSP + ast-grep MCP servers (`.mcp.json`). diff --git a/packages/omo-claude/plugin/agents/.gitkeep b/packages/omo-claude/plugin/agents/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/omo-claude/plugin/components/.gitkeep b/packages/omo-claude/plugin/components/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/omo-claude/plugin/hooks/.gitkeep b/packages/omo-claude/plugin/hooks/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/omo-claude/plugin/mcp/.gitkeep b/packages/omo-claude/plugin/mcp/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/omo-claude/plugin/package.json b/packages/omo-claude/plugin/package.json new file mode 100644 index 000000000..4c86cc582 --- /dev/null +++ b/packages/omo-claude/plugin/package.json @@ -0,0 +1,24 @@ +{ + "name": "@sisyphuslabs/omo-claude-plugin", + "version": "0.1.0", + "description": "Aggregate Claude Code plugin root for OMO components.", + "type": "module", + "packageManager": "npm@11.12.1", + "private": true, + "workspaces": [ + "components/comment-checker", + "components/rules", + "components/lsp", + "components/telemetry", + "components/start-work-continuation", + "components/ultragoal", + "components/ultrawork" + ], + "scripts": { + "build": "node scripts/sync-components.mjs && node scripts/sync-skills.mjs && node ../scripts/sync-telemetry-component.mjs && npm run build --workspaces --if-present", + "check": "npm run build && npm test", + "sync:components": "node scripts/sync-components.mjs", + "sync:skills": "node scripts/sync-skills.mjs", + "test": "node --test test/*.test.mjs" + } +} diff --git a/packages/omo-claude/plugin/scripts/.gitkeep b/packages/omo-claude/plugin/scripts/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/omo-claude/plugin/skills/.gitkeep b/packages/omo-claude/plugin/skills/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/omo-claude/plugin/test/.gitkeep b/packages/omo-claude/plugin/test/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/omo-claude/scripts/.gitkeep b/packages/omo-claude/scripts/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/packages/omo-claude/src/index.ts b/packages/omo-claude/src/index.ts new file mode 100644 index 000000000..e0e278b34 --- /dev/null +++ b/packages/omo-claude/src/index.ts @@ -0,0 +1,5 @@ +// @oh-my-opencode/omo-claude — Claude Code harness adapter for oh-my-openagent. +// +// Public surface (installer entry + telemetry) is populated by later tasks. +// Telemetry is also reachable via the "./telemetry" export. +export {}; diff --git a/packages/omo-claude/src/telemetry/index.ts b/packages/omo-claude/src/telemetry/index.ts new file mode 100644 index 000000000..95d84dc98 --- /dev/null +++ b/packages/omo-claude/src/telemetry/index.ts @@ -0,0 +1,4 @@ +// Placeholder — telemetry identity, posthog client, env-flags, and data-path +// are authored in the telemetry-fork task. Re-exported from here so +// `@oh-my-opencode/omo-claude/telemetry` resolves throughout the build. +export {}; diff --git a/packages/omo-claude/tsconfig.json b/packages/omo-claude/tsconfig.json new file mode 100644 index 000000000..7a69d1222 --- /dev/null +++ b/packages/omo-claude/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ESNext", + "module": "ESNext", + "moduleResolution": "bundler", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "lib": ["ESNext"], + "types": ["bun-types"] + }, + "include": ["src/**/*"] +}