Files
oh-my-opencode/packages/AGENTS.md
YeonGyu-Kim 330e437f08 docs(agents): regenerate hierarchical AGENTS.md for 2026-05-20
Sync the AGENTS.md hierarchy to current code state:

Drift fixes in 11 existing files
- Root: 2026-05-20 commit 39aadbf9f, ~2167 TS files, 120 barrel index.ts,
  57 src/hooks dirs, 297 (179 non-test) src/shared files, 11 OpenCode hook
  handlers in plugin-interface.ts, packages list adds ast-grep-mcp + rules-core,
  first-prompt-watchdog 206 LOC, parent-wake-notifier 587 LOC
- src/AGENTS.md: file counts, plugin-interface handler count
- src/shared/AGENTS.md: title + counts 278/170 -> 297/179
- src/hooks/AGENTS.md: 57 dirs, note unwired WIP (task-reminder,
  hashline-edit-diff-enhancer)
- src/features/AGENTS.md: module map with NON-TEST counts + sub-AGENTS.md
  column, 7 modules without sub-doc
- src/features/background-agent/AGENTS.md: add 12 newer files (parent-wake-
  notifier 587 LOC, loop-detector, error-classifier, fallback-retry-handler,
  process-cleanup, subagent-spawn-limits, session-status-classifier,
  compaction-aware-message-resolver, etc.)
- src/plugin/AGENTS.md: 11 handlers, add system-transform.ts + command-
  execute-before.ts + build-team-idle-wake-hint-client.ts
- src/config/AGENTS.md: note schema/internal/permission.ts
- src/cli/AGENTS.md: 8 commands including 'version'
- src/plugin-handlers/AGENTS.md, packages/web/AGENTS.md: date bump

New AGENTS.md in 4 directories
- packages/AGENTS.md: index of 15 packages (11 platform binaries + 2 MCP
  packages + rules-core + web), role map, conventions
- docs/AGENTS.md: WHERE TO LOOK table for 19 docs across 6 subdirs
- .opencode/AGENTS.md: 5 skills + 4 slash commands + relationship to .agents/
- .agents/AGENTS.md: superset migration target (9 skills + 4 commands)
2026-05-20 17:18:44 +09:00

3.8 KiB
Raw Permalink Blame History

packages/ — Monorepo Packages

Generated: 2026-05-20

OVERVIEW

15 sibling packages across 4 roles. None of these are published as part of the main oh-my-opencode / oh-my-openagent npm dist (root package.json files only ships dist/, bin/, postinstall.mjs). They are sibling packages with their own publication / deployment targets.

ROLE MAP

Role Count Packages
Platform binaries 11 One per (OS × arch × variant). Uniform layout: bin/ + package.json only. Selected at install time by bin/ shim + postinstall.mjs.
MCP packages 2 lsp-tools-mcp (git submodule), ast-grep-mcp
Utility 1 rules-core
Web 1 web

PLATFORM BINARIES (11)

oh-my-opencode-darwin-arm64, oh-my-opencode-darwin-x64, oh-my-opencode-darwin-x64-baseline, oh-my-opencode-linux-arm64, oh-my-opencode-linux-arm64-musl, oh-my-opencode-linux-x64, oh-my-opencode-linux-x64-baseline, oh-my-opencode-linux-x64-musl, oh-my-opencode-linux-x64-musl-baseline, oh-my-opencode-windows-x64, oh-my-opencode-windows-x64-baseline.

Each contains only a bin/<binary> and a package.json. Built by script/build-binaries.ts via bun compile. Published by the publish-platform.yml workflow.

-baseline variants are pure x86_64 (no AVX2) for older CPUs. -musl variants link against musl libc for Alpine. Runtime selection happens in bin/ and postinstall.mjs.

MCP PACKAGES

Package Layout Purpose
lsp-tools-mcp/ Full standalone project (own .git submodule, .github/, CHANGELOG.md, LICENSE, src/, test/, biome.json, vitest.config.ts) Serves lsp_diagnostics, lsp_goto_definition, lsp_find_references, lsp_symbols, lsp_prepare_rename, lsp_rename, lsp_status tools via stdio MCP. Registered as tier-1 MCP lsp in src/mcp/.
ast-grep-mcp/ Internal package (src/, dist/, tsconfig.json) Serves ast_grep_search + ast_grep_replace tools via stdio MCP. Registered as tier-1 MCP ast_grep.

UTILITY

Package Layout Purpose
rules-core/ src/, index.d.ts, tsconfig.json Shared rules-injector core logic published independently for reuse outside the plugin.

WEB

Package Sub-AGENTS.md Purpose
web/ yes (packages/web/AGENTS.md) Marketing site. Next.js 15 + Cloudflare Workers via @opennextjs/cloudflare. Independent bun.lock + tsconfig.json. Only place in the repo where @/* path aliases are allowed.

CONVENTIONS

  • No new package without explicit need. Adding a sibling package complicates publish + CI. Justify the boundary first.
  • Platform binaries are generated. Do NOT edit by hand. Modify script/build-binaries.ts.
  • lsp-tools-mcp is a git submodule. Initialize with git submodule update --init --recursive after fresh clone.
  • packages/web/ is excluded from root bun test via bunfig.toml. It has its own web-ci.yml workflow.
  • CI builds for non-platform packages run as part of the root ci.yml. Platform binaries build only via publish-platform.yml when triggered by publish.yml.

ANTI-PATTERNS

  • Never publish a sibling package manually. Use the GitHub Actions workflows.
  • Never copy code between packages by hand. Either share via rules-core (or a new utility package) or accept the duplication and document it.
  • Never modify bin/<binary> inside a platform package — those are compiled artifacts.