Learn about LLM agents and how to build agentic systems by building your own coding harness!
  • Python 39.2%
  • TypeScript 33.9%
  • JavaScript 14.7%
  • Nix 4.6%
  • Just 3.6%
  • Other 4%
Find a file
John Wilger 7392de8ce4
Use opencode RGR and Forgejo plugins (#5)
## Summary

- Install and configure opencode-rgr-loop and opencode-forgejo plugins
- Make rgr_loop and Forgejo plugin tools the primary automation paths
- Remove duplicated local RGR/Forgejo helper tools and update related guidance

## Verification

- `node -e "JSON.parse(require('fs').readFileSync('opencode.json','utf8'))"`
- `node --check .opencode/plugins/discipline-guardrails.ts`
- `node --check .opencode/plugins/auto-review-forgejo.ts`
- `just test`

Reviewed-on: #5
2026-05-28 15:43:44 -07:00
.forgejo/workflows Complete Show first-launch setup slice (#3) 2026-05-17 10:21:22 -07:00
.opencode Use opencode RGR and Forgejo plugins (#5) 2026-05-28 15:43:44 -07:00
docs Complete Show first-launch setup slice (#3) 2026-05-17 10:21:22 -07:00
examples Complete Show first-launch setup slice (#3) 2026-05-17 10:21:22 -07:00
scripts Complete Show first-launch setup slice (#3) 2026-05-17 10:21:22 -07:00
src Complete Show first-launch setup slice (#3) 2026-05-17 10:21:22 -07:00
tests Use opencode RGR and Forgejo plugins (#5) 2026-05-28 15:43:44 -07:00
.gitignore Add devtooling guardrails and Forgejo CI quality checks (#2) 2026-05-16 21:13:02 -07:00
.tmuxinator.yml Use opencode RGR and Forgejo plugins (#5) 2026-05-28 15:43:44 -07:00
AGENTS.md Use opencode RGR and Forgejo plugins (#5) 2026-05-28 15:43:44 -07:00
build.rs Complete Show first-launch setup slice (#3) 2026-05-17 10:21:22 -07:00
Cargo.lock Complete Show first-launch setup slice (#3) 2026-05-17 10:21:22 -07:00
Cargo.toml Complete Show first-launch setup slice (#3) 2026-05-17 10:21:22 -07:00
deny.toml Complete Show first-launch setup slice (#3) 2026-05-17 10:21:22 -07:00
flake.lock Add Nix flake for Rust development 2026-05-16 10:43:14 -07:00
flake.nix Add devtooling guardrails and Forgejo CI quality checks (#2) 2026-05-16 21:13:02 -07:00
justfile Complete Show first-launch setup slice (#3) 2026-05-17 10:21:22 -07:00
lefthook.yml Complete Show first-launch setup slice (#3) 2026-05-17 10:21:22 -07:00
LICENSE Initial commit 2026-05-16 10:36:31 -07:00
opencode.json Use opencode RGR and Forgejo plugins (#5) 2026-05-28 15:43:44 -07:00
README.md Complete Show first-launch setup slice (#3) 2026-05-17 10:21:22 -07:00

eddy

Learn about LLM agents and how to build agentic systems by building your own coding harness!

Development Environment

The recommended development environment is the project Nix flake:

nix develop

This gives you the Rust toolchain, native libraries, Forgejo MCP server, and helper tools used by the project. If you are not on a Nix-enabled system, install the prerequisites for your platform below.

Non-Nix Prerequisites

Minimum versions are based on the current flake-backed development environment unless noted otherwise.

Required everywhere:

Dependency Minimum Install/info
Rust nightly toolchain with rustc, cargo, rustfmt, clippy, and rust-src 1.97.0-nightly rustup and Rust installation
pkg-config 0.29.2 pkg-config guide
OpenSSL development libraries 3.x OpenSSL source/build info
SQLite development libraries 3.x SQLite download/install info
just 1.51.0 just installation
jq 1.6 jq download/install info
Node.js with npm 22.x Node.js downloads

Recommended development tools:

Dependency Minimum Install/info
cargo-deny 0.19.5 cargo-deny installation
cargo-mutants 27.0.0 cargo-mutants installation
cargo-nextest 0.9.133 cargo-nextest installation
cargo-watch 8.5.3 cargo-watch installation

Install the Rust toolchain and cargo helpers with:

rustup toolchain install nightly --component rust-src,rustfmt,clippy && cargo install cargo-deny cargo-mutants cargo-nextest cargo-watch

Development Checks

Run the unit-level test gate with:

just test

Run black-box Cucumber acceptance scenarios on demand with:

just accept

To narrow acceptance by feature file and/or scenario name, set ACCEPT_FEATURES to a space-separated list of feature paths and ACCEPT_NAME to the Cucumber scenario name:

ACCEPT_FEATURES=tests/features/first_launch_setup.feature ACCEPT_NAME='No setup exists yet' just accept

Acceptance scenarios run in CI, but the local Git hooks only run the faster pre-commit checks whose inputs are affected by the staged files.

Linux x86_64 / aarch64

Install system packages first, then install Rust with rustup.

Debian/Ubuntu:

sudo apt-get update && sudo apt-get install -y build-essential pkg-config libssl-dev libsqlite3-dev just jq nodejs npm libasound2-dev libfontconfig-dev libx11-dev libxcb1-dev libxcursor-dev libxi-dev libxkbcommon-dev libxrandr-dev libudev-dev libwayland-dev

Fedora:

sudo dnf install -y gcc gcc-c++ make pkgconf-pkg-config openssl-devel sqlite-devel just jq nodejs npm alsa-lib-devel fontconfig-devel libX11-devel libxcb-devel libXcursor-devel libXi-devel libxkbcommon-devel libXrandr-devel systemd-devel wayland-devel

Arch Linux:

sudo pacman -S --needed base-devel pkgconf openssl sqlite just jq nodejs npm alsa-lib fontconfig libx11 libxcb libxcursor libxi libxkbcommon libxrandr systemd-libs wayland

Provider documentation:

Dependency group Install/info
Debian/Ubuntu packages Ubuntu packages and Debian packages
Fedora packages Fedora package search
Arch packages Arch package search
Node.js Node.js downloads
ALSA ALSA project
Fontconfig Fontconfig project
X11/XCB libraries X.Org and XCB
libxkbcommon libxkbcommon
udev/systemd libraries systemd
Wayland Wayland
macOS x86_64 / aarch64

Install Xcode Command Line Tools first, then install Homebrew packages and Rust with rustup.

Xcode Command Line Tools:

xcode-select --install

Homebrew packages:

brew install pkg-config openssl@3 sqlite just jq node

Provider documentation:

Dependency group Install/info
Xcode Command Line Tools and Apple SDK frameworks Apple developer tools
Homebrew packages Homebrew installation and Homebrew formulae
OpenSSL on Homebrew openssl@3
SQLite on Homebrew sqlite
Node.js on Homebrew node

Event Model Browser

Event-model workflow JSON files can be browsed with the React-based event model browser. Install its JavaScript dependencies once:

just browser-install

Validate workflow models from the command line with the same TypeScript validation logic used by the browser:

just event-model-validate

Generate the static browser under docs/event-model/generated/browser/ with:

just event-model-generate

Rust Lint Guardrail

Cargo builds check that Cargo.toml enumerates the current clippy::all lint set exactly. If a Rust toolchain update changes that set, refresh the committed lint table with:

just sync-clippy-lints