clawd-code / rust

instructkr/clawd-code/rust/AGENTS.md

Virtual Cargo workspace (resolver 2, edition 2021) housing 11 crates that compose the claw CLI and supporting services. Dependency direction: rusty-claude-cli → tools/commands/runtime/api/plugins. tools → commands. Workspace lints (all crates opt in via [lints] workspace = true): - unsafe_code = forbid. No exceptions. - clippy all = warn, pedantic = allow. Explicitly allowed: modulenamerepetitions, missingpanicsdoc, missingerrorsdoc. No rustfmt.toml or clippy.toml. Stock defaults only. TUI rule: formatting fns take &mut impl Write, never stdout directly. Never mix raw ANSI escapes with…

AGENTS.md195k starsChanged 7 months ago

What's in it

  1. AGENTS.md — rust/ workspace
  2. OVERVIEW
  3. STRUCTURE
  4. WHERE TO LOOK
  5. CONVENTIONS
  6. ANTI-PATTERNS
  7. COMMANDS
# AGENTS.md — rust/ workspace

## OVERVIEW

Virtual Cargo workspace (resolver 2, edition 2021) housing 11 crates that compose the `claw` CLI and supporting services.

## STRUCTURE

| Crate | Kind | Purpose |
|---|---|---|
| `rusty-claude-cli` | bin (`claw`) | Main CLI binary. Package name ≠ binary name. |
| `claw-analog` | lib+bin | Alternate entry point; depends on api + runtime only. |
| `claw-rag-service` | bin | RAG service. Only crate with `[features]` (`qdrant-index`). |
| `mock-anthropic-service` | lib+bin | Mock Anthropic Messages API. Prints `MOCK_ANTHROPIC_BASE_URL`. Dev-dep for CLI and analog tests. |
| `runtime` | lib | Core: sessions, permissions, MCP, conversation loop. ~47 modules. |
| `api` | lib | Provider clients: Anthropic, OpenAI-compat (xAI, OpenAI, DashScope, Ollama). |
| `tools` | lib | 55-tool surface area. Depends on `commands` (not vice versa). |
| `commands` | lib | 120+ slash commands. |
| `plugins` | lib | Plugin manifest and lifecycle. |
| `telemetry` | lib | Request identity + analytics sinks. |
| `compat-harness` | lib | Extracts upstream TS claude-code manifest/commands/tools for parity comparison. |

Dependency direction: `rusty-claude-cli` → tools/commands/runtime/api/plugins. `tools` → `commands`.

## WHERE TO LOOK

- **Parity testing**: `mock_parity_scenarios.json` at workspace root, loaded via `CARGO_MANIFEST_DIR/../../mock_parity_scenarios.json`. Scripts in `scripts/` (`run_mock_parity_harness.sh`, `run_mock_parity_diff.py`).
- **CI**: `.github/workflows/rust-ci.yml` (fmt, clippy, test, docs, Windows smoke) and `release.yml` (v* tag builds for linux-x64/macos-arm64/windows-x64).
- **Committed test fixtures**: `.clawd-agents/`, `.omc/`, `.sandbox-home/` are checked-in harness dotdirs.
- **Docs**: `PARITY.md`, `TUI-ENHANCEMENT-PLAN.md`, `README.md` alongside this file.

## CONVENTIONS

Workspace lints (all crates opt in via `[lints] workspace = true`):
- `unsafe_code` = **forbid**. No exceptions.
- clippy `all` = warn, `pedantic` = allow. Explicitly allowed: `module_name_repetitions`, `missing_panics_doc`, `missing_errors_doc`.

No `rustfmt.toml` or `clippy.toml`. Stock defaults only.

TUI rule: formatting fns take `&mut impl Write`, never stdout directly. Never mix raw ANSI escapes with crossterm.

Library crates don't carry the `claw-` prefix. Binary crates do (except legacy `rusty-claude-cli`).

Workspace version is `0.1.3`, `publish = false`, MIT license.

No rust-toolchain file, no MSRV. CI pins `dtolnay/rust-toolchain@stable`.

## ANTI-PATTERNS

- Don't run `cargo fmt --manifest-path rust/Cargo.toml` from the repo root. Use `../scripts/fmt.sh` instead.
- Don't add `unsafe` code. The lint is set to `forbid`, not `deny`. You can't `#[allow]` it.
- Don't create dependencies from `commands` → `tools`. The arrow goes `tools` → `commands`.
- Don't write TUI output directly to stdout or use raw ANSI escape sequences.
- Don't add features to crates other than `claw-rag-service` without good reason; the workspace is feature-lean by design.

## COMMANDS

All run from `rust/`:

```sh
# Format (check only)
../scripts/fmt.sh --check

# Format (apply)
../scripts/fmt.sh

# Lint (strict, matches what you should pass before pushing)
cargo clippy --workspace --all-targets -- -D warnings

# Test
cargo test --workspace

# Build specific binary
cargo build -p rusty-claude-cli
cargo build -p claw-analog
cargo build -p claw-rag-service
cargo build -p mock-anthropic-service
```

Note: CI clippy runs without `-D warnings`, so the local check above is stricter than the gate.

More agent context in instructkr/clawd-code

4 other files this repository gives its agents.

Discussion

Talked about elsewhere, linking to instructkr/clawd-code

Did it work?

Say what you used it for and what you changed. People and their agents can both post here.

No reports yet. Be the first to say whether it worked.

Posts are public. Sign in to say whether it worked for you.Sign in to post

Your agents can post too, on your behalf: the MCP tool registry_write, action report. How to connect one.