docs(contributing): fix stale build and structure notes

Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-opencode)

Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
YeonGyu-Kim
2026-03-06 20:50:11 +09:00
parent d4abcbed8f
commit 1a33eab97c
+25 -20
View File
@@ -31,6 +31,7 @@ Be respectful, inclusive, and constructive. We're all here to make better tools
**English is the primary language for all communications in this repository.** **English is the primary language for all communications in this repository.**
This includes: This includes:
- Issues and bug reports - Issues and bug reports
- Pull requests and code reviews - Pull requests and code reviews
- Documentation and comments - Documentation and comments
@@ -45,6 +46,7 @@ This includes:
### Need Help with English? ### Need Help with English?
If English isn't your first language, don't worry! We value your contributions regardless of perfect grammar. You can: If English isn't your first language, don't worry! We value your contributions regardless of perfect grammar. You can:
- Use translation tools to help compose messages - Use translation tools to help compose messages
- Ask for help from other community members - Ask for help from other community members
- Focus on clear, simple communication rather than perfect prose - Focus on clear, simple communication rather than perfect prose
@@ -76,25 +78,24 @@ bun run build
After making changes, you can test your local build in OpenCode: After making changes, you can test your local build in OpenCode:
1. **Build the project**: 1. **Build the project**:
```bash ```bash
bun run build bun run build
``` ```
2. **Update your OpenCode config** (`~/.config/opencode/opencode.json` or `opencode.jsonc`): 2. **Update your OpenCode config** (`~/.config/opencode/opencode.json` or `opencode.jsonc`):
```json ```json
{ {
"plugin": [ "plugin": ["file:///absolute/path/to/oh-my-opencode/dist/index.js"]
"file:///absolute/path/to/oh-my-opencode/dist/index.js"
]
} }
``` ```
For example, if your project is at `/Users/yourname/projects/oh-my-opencode`: For example, if your project is at `/Users/yourname/projects/oh-my-opencode`:
```json ```json
{ {
"plugin": [ "plugin": ["file:///Users/yourname/projects/oh-my-opencode/dist/index.js"]
"file:///Users/yourname/projects/oh-my-opencode/dist/index.js"
]
} }
``` ```
@@ -112,7 +113,7 @@ oh-my-opencode/
│ ├── index.ts # Plugin entry (OhMyOpenCodePlugin) │ ├── index.ts # Plugin entry (OhMyOpenCodePlugin)
│ ├── plugin-config.ts # JSONC multi-level config (Zod v4) │ ├── plugin-config.ts # JSONC multi-level config (Zod v4)
│ ├── agents/ # 11 agents (Sisyphus, Hephaestus, Oracle, Librarian, Explore, Atlas, Prometheus, Metis, Momus, Multimodal-Looker, Sisyphus-Junior) │ ├── agents/ # 11 agents (Sisyphus, Hephaestus, Oracle, Librarian, Explore, Atlas, Prometheus, Metis, Momus, Multimodal-Looker, Sisyphus-Junior)
│ ├── hooks/ # 44 lifecycle hooks across 39 directories │ ├── hooks/ # Lifecycle hooks for orchestration, recovery, UX, and context management
│ ├── tools/ # 26 tools across 15 directories │ ├── tools/ # 26 tools across 15 directories
│ ├── mcp/ # 3 built-in remote MCPs (websearch, context7, grep_app) │ ├── mcp/ # 3 built-in remote MCPs (websearch, context7, grep_app)
│ ├── features/ # 19 feature modules (background-agent, skill-loader, tmux, MCP-OAuth, etc.) │ ├── features/ # 19 feature modules (background-agent, skill-loader, tmux, MCP-OAuth, etc.)
@@ -136,8 +137,11 @@ bun run typecheck
# Full build (ESM + TypeScript declarations + JSON schema) # Full build (ESM + TypeScript declarations + JSON schema)
bun run build bun run build
# Clean build output and rebuild # Clean build output
bun run rebuild bun run clean
# Rebuild from scratch
bun run clean && bun run build
# Build schema only (after modifying src/config/schema.ts) # Build schema only (after modifying src/config/schema.ts)
bun run build:schema bun run build:schema
@@ -145,17 +149,18 @@ bun run build:schema
### Code Style & Conventions ### Code Style & Conventions
| Convention | Rule | | Convention | Rule |
|------------|------| | ---------------- | ------------------------------------------------------------------------- |
| Package Manager | **Bun only** (`bun run`, `bun build`, `bunx`) | | Package Manager | **Bun only** (`bun run`, `bun build`, `bunx`) |
| Types | Use `bun-types`, not `@types/node` | | Types | Use `bun-types`, not `@types/node` |
| Directory Naming | kebab-case (`ast-grep/`, `claude-code-hooks/`) | | Directory Naming | kebab-case (`ast-grep/`, `claude-code-hooks/`) |
| File Operations | Never use bash commands (mkdir/touch/rm) for file creation in code | | File Operations | Never use bash commands (mkdir/touch/rm) for file creation in code |
| Tool Structure | Each tool: `index.ts`, `types.ts`, `constants.ts`, `tools.ts`, `utils.ts` | | Tool Structure | Each tool: `index.ts`, `types.ts`, `constants.ts`, `tools.ts`, `utils.ts` |
| Hook Pattern | `createXXXHook(input: PluginInput)` function naming | | Hook Pattern | `createXXXHook(input: PluginInput)` function naming |
| Exports | Barrel pattern (`export * from "./module"` in index.ts) | | Exports | Barrel pattern (`export * from "./module"` in index.ts) |
**Anti-Patterns (Do Not Do)**: **Anti-Patterns (Do Not Do)**:
- Using npm/yarn instead of bun - Using npm/yarn instead of bun
- Using `@types/node` instead of `bun-types` - Using `@types/node` instead of `bun-types`
- Suppressing TypeScript errors with `as any`, `@ts-ignore`, `@ts-expect-error` - Suppressing TypeScript errors with `as any`, `@ts-ignore`, `@ts-expect-error`
@@ -179,7 +184,7 @@ import type { AgentConfig } from "./types";
export const myAgent: AgentConfig = { export const myAgent: AgentConfig = {
name: "my-agent", name: "my-agent",
model: "anthropic/claude-sonnet-4-6", model: "anthropic/claude-opus-4-6",
description: "Description of what this agent does", description: "Description of what this agent does",
prompt: `Your agent's system prompt here`, prompt: `Your agent's system prompt here`,
temperature: 0.1, temperature: 0.1,