From 72e518c0d1675cf6c59d428325d594d4e5a21854 Mon Sep 17 00:00:00 2001 From: Tyler Longwell Date: Fri, 5 Sep 2025 14:54:32 -0400 Subject: [PATCH 1/2] Add AGENTS.md --- AGENTS.md | 89 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 AGENTS.md diff --git a/AGENTS.md b/AGENTS.md new file mode 100644 index 000000000000..078b76ab35da --- /dev/null +++ b/AGENTS.md @@ -0,0 +1,89 @@ +# AGENTS Instructions + +Goose is an AI agent framework in Rust with CLI and Electron desktop interfaces. + +## Setup +```bash +source bin/activate-hermit +cargo build +``` + +## Commands + +### Build +```bash +cargo build # debug +cargo build --release # release +just release-binary # release + openapi +``` + +### Test +```bash +cargo test # all tests +cargo test -p goose # specific crate +cargo test --package goose --test mcp_integration_test +just record-mcp-tests # record MCP +``` + +### Lint/Format +```bash +cargo fmt +./scripts/clippy-lint.sh +cargo clippy --fix +``` + +### UI +```bash +just generate-openapi # after server changes +just run-ui # start desktop +cd ui/desktop && npm test # test UI +``` + +## Structure +``` +crates/ +├── goose # core logic +├── goose-bench # benchmarking +├── goose-cli # CLI entry +├── goose-server # backend (binary: goosed) +├── goose-mcp # MCP extensions +├── goose-test # test utilities +├── mcp-client # MCP client +├── mcp-core # MCP shared +└── mcp-server # MCP server + +temporal-service/ # Go scheduler +ui/desktop/ # Electron app +``` + +## Development Loop +```bash +# 1. source bin/activate-hermit +# 2. Make changes +# 3. cargo fmt +# 4. cargo build +# 5. cargo test -p +# 6. ./scripts/clippy-lint.sh +# 7. [if server] just generate-openapi +``` + +## Rules + +Test: Prefer tests/ folder, e.g. crates/goose/tests/ +Error: Use anyhow::Result +Provider: Implement Provider trait see providers/base.rs +MCP: Extensions in crates/goose-mcp/ +Server: Changes need just generate-openapi + +## Never + +Never: Edit ui/desktop/openapi.json manually +Never: Edit Cargo.toml use cargo add +Never: Skip cargo fmt +Never: Merge without ./scripts/clippy-lint.sh + +## Entry Points +- CLI: crates/goose-cli/src/main.rs +- Server: crates/goose-server/src/main.rs +- UI: ui/desktop/src/main.ts +- Agent: crates/goose/src/agents/agent.rs From 2b5cd863c867fdbfd2a6455c6679c6edec00ac16 Mon Sep 17 00:00:00 2001 From: Tyler Longwell Date: Fri, 5 Sep 2025 15:13:50 -0400 Subject: [PATCH 2/2] whitespace --- AGENTS.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 078b76ab35da..93b04af6ffa3 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -12,14 +12,14 @@ cargo build ### Build ```bash -cargo build # debug +cargo build # debug cargo build --release # release just release-binary # release + openapi ``` ### Test ```bash -cargo test # all tests +cargo test # all tests cargo test -p goose # specific crate cargo test --package goose --test mcp_integration_test just record-mcp-tests # record MCP @@ -42,8 +42,8 @@ cd ui/desktop && npm test # test UI ## Structure ``` crates/ -├── goose # core logic -├── goose-bench # benchmarking +├── goose # core logic +├── goose-bench # benchmarking ├── goose-cli # CLI entry ├── goose-server # backend (binary: goosed) ├── goose-mcp # MCP extensions