AGENTS.md
> Full project context, architecture, conventions, and plugin standards are in **CLAUDE.md**.
MCP get_skill({ skillId: "agents-md-b585c051" })Use this skill with your agent
Create a free account and connect via MCP
# AGENTS.md > Full project context, architecture, conventions, and plugin standards are in **CLAUDE.md**. ## Commands ```bash pnpm install # Install dependencies pnpm build # Build all packages pnpm dev # Web dashboard dev server (Next.js + 2 WS servers) pnpm typecheck # Type check all packages pnpm test # All tests (excludes web) pnpm --filter @aoagents/ao-web test # Web tests pnpm lint # ESLint check pnpm lint:fix # ESLint fix pnpm format # Prettier format ``` ## Architecture TL;DR Monorepo (pnpm) with packages: `core`, `cli`, `web`, and `plugins/*`. The web dashboard is a Next.js 15 app (App Router) with React 19 and Tailwind CSS v4. Data flows from `agent-orchestrator.yaml` through core's `loadConfig()` to API routes, served via SSR and a 5s-interval SSE stream. Terminal sessions use WebSocket connections to tmux PTYs. See CLAUDE.md for the full plugin architecture (8 slots), session lifecycle, and data flow. ## Working Principles - **Think before coding.** State assumptions. Ask when unclear. Push back when a simpler approach exists. - **Simplicity first.** No speculative features. No abstractions for single-use code. Plugin slots are the extension point. - **Surgical changes.** Touch only what you must. Match existing style. Don't refactor things that aren't broken. Every changed line traces to the task. - **Goal-driven.** Define verifiable success criteria before implementing. Write tests that reproduce bugs before fixing them. Full guidelines with AO-specific context: see "Working Principles" in CLAUDE.md. ## Skills Agents working on this repo should use these checked-in skills: ### Bug Triage (`skills/bug-triage/`) **When to use:** Any time a bug is reported — in chat, issues, or live observation. **What it covers:** - Full triage workflow: gather context → search duplicates → file/update GitHub issues → push fix PRs - Root cause analysis with `git log -S` archaeology and upstream dependency research - GitHub API-based file editing (no local checkout needed) via `scripts/push_fix_to_github.py` - NPM package regression diffing - Remote code inspection when the repo isn't cloned locally **How to load:** Read `skills/bug-triage/SKILL.md` and follow its step-by-step workflow. The `scripts/` directory contains executable tools: - `push_fix_to_github.py` — Push a single-file fix and create a PR entirely via GitHub API **Always pull latest main before triaging.** Stale code = bad triage. No exceptions. ## Key Files - `packages/core/src/types.ts` — All plugin interfaces (Agent, Runtime, Workspace, etc.) - `packages/core/src/session-manager.ts` — Session CRUD + stale runtime reconciliation (detects dead runtimes, persists `runtime_lost`) - `packages/core/src/lifecycle-manager.ts` — State machine + polling loop - `packages/core/src/lifecycle-state.ts` — Canonical lifecycle → legacy status mapping (`deriveLegacyStatus`) - `packages/cli/src/commands/start.ts` — ao start/stop commands + Ctrl+C graceful shutdown - `packages/cli/src/lib/running-state.ts` — RunningState + LastStopState management - `packages/web/src/components/Dashboard.tsx` — Main dashboard view (sidebar uses unscoped sessions, kanban filters by project) - `packages/web/src/components/SessionDetail.tsx` — Session detail view - `packages/web/src/app/globals.css` — Design tokens ## CLI Behavior Notes - `ao stop` loads global config to see all projects; `ao stop <project>` only kills that project's sessions - Ctrl+C on `ao start` performs full graceful shutdown (same as `ao stop`) - `LastStopState` includes `otherProjects` for cross-project session restore on next `ao start` - Dashboard sidebar always shows ALL projects' sessions regardless of active project view ## Cross-Platform (Windows) Compatibility AO ships on macOS, Linux, **and Windows**. All three are first-class. **Golden Rule:** Never write `process.platform === "win32"` in new code. Use `isWindows()` from `@aoagents/ao-core`. If you need branching the helpers don't cover, add it to `packages/core/src/platform.ts` — never inline at the call site. Inline checks bypass the central platform-mock test pattern and become silent regressions. **Read `docs/CROSS_PLATFORM.md` before merging any change that touches:** process spawning/killing/signalling, file paths, shell commands, network binding, POSIX shell-outs (`tmux`, `lsof`, etc.), runtime/agent/workspace plugins, agent-plugin internals (`setupPathWrapperWorkspace`, `getActivityState`, `formatLaunchCommand`, `isProcessRunning`, `detect()`), the Windows pty-host pipe protocol or registry, or any new `process.platform === "win32"` check. That doc has the **full helper inventory** (every import path), the EPERM-vs-ESRCH gotcha when probing processes, path case-insensitivity rules, PowerShell-vs-bash differences (`& ` call-operator, `$env:VAR`, no `/dev/null`, no `$(cat …)`, `.cmd` shim resolution via `shell: isWindows()`), IPv6 `localhost` stalls on Windows, agent-plugin Windows specifics, the test pattern for mocking `process.platform`, and a 10-point pre-merge checklist. CLAUDE.md has the quick-reference helper table; CROSS_PLATFORM.md has the depth.
Related Skills
More skills in Agent Orchestration
1. Product type search — what design patterns fit this product?
Design UI/UX systems with style guides, palettes, typography, and component specs for new interfaces
Acp Router
Route plain-language requests for Claude Code, Cursor, Copilot, OpenClaw ACP, OpenCode, Gemini CLI, Qwen, Kiro, Kimi, iFlow, Factory Droid, Kilocode, or explicit ACP harness work into either OpenClaw ACP runtime sessions or direct acpx-driven sessions ("telephone game" flow). For coding-agent thread requests, read this skill first, then use only `sessions_spawn` for thread creation. Codex chat binding defaults to the native Codex app-server plugin unless ACP is explicit or background spawn needs ACP.
Add New Safe Output Type
Adding a New Safe Output Type to GitHub Agentic Workflows
Agent Governance
Patterns and techniques for adding governance, safety, and trust controls to AI agent systems. Use this skill when: - Building AI agents that call external tools (APIs, databases, file systems) - Implementing policy-based access controls for agent tool usage - Adding semantic intent classification to detect dangerous prompts - Creating trust scoring systems for multi-agent workflows - Building audit trails for agent actions and decisions - Enforcing rate limits, content filters, or tool restrictions on agents - Working with any agent framework (PydanticAI, CrewAI, OpenAI Agents, LangChain, AutoGen)
Agentic Development
Build AI agents with Pydantic AI (Python) and Claude SDK (Node.js)
Agentic Workflows
Route gh-aw workflow design/create/debug/upgrade requests to the right prompts.
Explore Other Categories
Skills from other categories with shared topics
API Design Principles
Master REST and GraphQL API design principles to build intuitive, scalable, and maintainable APIs that delight developers. Use when designing new APIs, reviewing API specifications, or establishing API design standards.
Azure Aks Agent Skill
Azure Aks Agent Skill linked from Juliano Barbosa Claude Code Skills, with the upstream skill instructions available on GitHub.
Changelog Automation
Automate changelog generation from commits, PRs, and releases following Keep a Changelog format. Use when setting up release workflows, generating release notes, or standardizing commit conventions.