axis AGENTS.md

Repository instructions for AXIS, a TypeScript command-line testing framework for AI agents. It runs agents through scenarios and grades results such as goal completion and service quality.

In plain words
What is it for?
Use them when developing AXIS runners, scenario tests, scoring, command-line output, logging, or adapters.
Why use it?
They define the project’s terminology and architecture so changes use the correct names and preserve the separation between test execution and terminal display.

Instructions file for CodexOpenCode

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/netlify/axis/agents-md
Clone the repo
git clone --depth 1 https://github.com/netlify/axis

Made for: Codex, OpenCode.

Per session 3,335 This file is loaded in full into every session.
When invoked 3,335 The same file — it is already loaded in full.
Security scan D 2 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.03335 $0.03335
Opus 5 $0.01667 $0.01667
Sonnet 5 $0.00667 $0.00667
Haiku 4.5 $0.00333 $0.00333

Measured yesterday against content hash 20abf2d32f7d, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade D, and why

axis AGENTS.md scanned grade D with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Reads agent configuration directoriesmediumAgent snooping

.claude/, .codex/, .gemini/ hold keys, settings and other credentials a mod has no legitimate need for.

`claude-code` and `codex` declare `requiredEnv` (`ANTHROPIC_API_KEY`, `CODEX_API_KEY`) AND implement `hasLocalSession`. Pre-flight in `runner.ts` checks env vars first; if missing, it calls `hasLocalSession` and only thr

Recursive force deletehighDestructive command

rm -rf with a variable or a broad path is one typo away from removing the wrong tree.

rm -rf dist && npm run build # Always clean build -stale dist/ causes subtle issues
AGENTS.md · 149 lines

How it starts

The opening of the file, as written. The whole thing — 149 lines — stays where its author put it; the contents beside it link to each section on GitHub.

AGENTS.md

Project Overview

AXIS (Agent Experience Index Score) is a synthetic testing framework for AI agents. It runs agents against scenarios, captures transcripts, and produces graded scores across four dimensions: goal achievement, environment quality, service quality, and agent quality.

  • ESM TypeScript, built with tsc, tested with vitest, CLI via commander
  • Live terminal display uses ink (React for CLIs), rendered to stderr
  • Runner is fully decoupled from display via a Logger interface

Terminology

  • AXIS Result (not "AXIS Score") -the composite 0–100 number. "AXIS Score" reads as "score score" since AXIS already stands for "Agent Experience Index Score".
  • Use "AXIS Result" in all user-facing text, display output, and documentation.
  • The internal property names (axisScore, averageAxisScore) are fine as code identifiers.

Architecture

Layer Key Files Purpose
CLI src/cli.ts Entry point, ink display, signal handling
Runner src/runner/runner.ts, lifecycle.ts Job orchestration, concurrency, isolation; runLifecyclePhase captures $AXIS_OUTPUT markdown for setup/teardown/beforeAll/afterAll phases
Adapters src/adapters/*.ts Spawn agent CLIs, parse NDJSON streams
Scoring src/scoring/ LLM judge + interaction-based evaluation pipeline
Reports src/reports/writer.ts, reader.ts Persistent .axis/reports/ store
Config src/config/loader.ts, remote-scenarios.ts Parses axis.config.*; mergeRemoteConfig clones any git-URL entries in scenarios into .axis/remotes/, inlines their paths, AND folds each remote repo's env/mcp_servers/skills/artifacts/adapters into the parent (parent wins on collisions)
Display src/ui/format.ts, LiveStatus.tsx, AnimatedTokens.tsx Pure formatting + ink components (incl. live token counter)
Types src/types/ Shared interfaces (agent, config, output, scoring, report)

Read the full file on GitHub · 149 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 149 lines · 3,335 tokens per session scan D 20abf2d32f7d

Subscribe to this mod's changes

axis AGENTS.md is an instructions file published in the GitHub repository netlify/axis (55 stars, last pushed 10d ago), licensed MIT. It adds 3,335 tokens to every session, about $0.0167 per session on Opus 5. A static security scan graded it D with 2 findings (reads agent configuration directories, recursive force delete). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.