Project

axn

0.0
The project is in a healthy, maintained state
Pattern for writing callable service objects with contract validation and exception handling
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
 Dependencies

Runtime

 Project Readme

Axn -- [AHK-sin] (a.k.a. "Action")

Just spinning this up -- not yet publicly released, changes coming frequently.

Installation & Usage

See our User Guide for details.

Using Axn with an AI agent

Axn ships a dense, agent-facing usage guide at the gem root (AGENTS-consuming.md) — the contract surface, the canonical idioms, and the subtle gotchas, distilled for an LLM writing code that uses Axn. (It's the consuming-audience sibling of this repo's own AGENTS.md, which guides agents working on Axn.) It's version-accurate and readable offline from the installed gem.

To point your project's coding agent at it, drop a snippet like this into your AGENTS.md / CLAUDE.md:

## Axn (service objects)

When writing or modifying Axn actions (`include Axn`), first read the in-gem agent guide:
run `bundle show axn` and read `AGENTS-consuming.md` at that path. It covers the
`expects`/`exposes`/`call` contract, how results and failures surface, and the gotchas.

The guide links out to the full docs and to the source entry points for anything it doesn't cover.

If you're instead writing a gem that exposes Axns over a tool/agent transport (like axn-mcp or axn-ruby_llm), there's a companion guide for adapter authors: AGENTS-tool-adapters.md at the gem root, with a matching Authoring a Tool-Adapter Gem docs page.

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment.

Contributions

Axn is open source and contributions from the community are encouraged! No contribution is too small.

See our contribution guidelines for more information.

Thank You

A very special thank you to Collective Idea's fantastic Interactor library, which we used successfully for a number of years and which we used to scaffold early versions of this library.