assay — migrated from GitHub
  • Rust 99.3%
  • Shell 0.5%
  • JavaScript 0.1%
Find a file
wollax 780bca1e98
Some checks failed
CI / Validate plugins (push) Successful in 3s
CI / Check (stable) (push) Failing after 27s
feat(M019/S01): git subtree import + workspace scaffolding (#5)
2026-04-02 03:10:41 +00:00
.assay [kata/root/M005/S01] Milestone & Chunk Type Foundation (#146) 2026-03-19 13:56:11 -05:00
.cargo feat(M019/S01): git subtree import + workspace scaffolding (#5) 2026-04-02 03:10:41 +00:00
.claude [kata/root/M005/S01] Milestone & Chunk Type Foundation (#146) 2026-03-19 13:56:11 -05:00
.config [kata/root/M010/S01] feat(M010/S01): StateBackend trait, CapabilitySet, and LocalFsBackend skeleton (#187) 2026-03-26 10:19:46 -05:00
.forgejo/workflows feat(M017/S02): activate GitHub CI + mirror flow documentation (#2) 2026-04-01 01:41:41 +00:00
.githooks chore: add post-merge hook to sweep stale build artifacts 2026-03-26 08:07:10 -05:00
.github/workflows feat(M017/S02): activate GitHub CI + mirror flow documentation (#2) 2026-04-01 01:41:41 +00:00
.kata chore(M017): auto-commit after research-milestone 2026-03-31 08:39:39 -05:00
.planning [kata/root/M005/S01] Milestone & Chunk Type Foundation (#146) 2026-03-19 13:56:11 -05:00
.rtk [kata/root/M005/S01] Milestone & Chunk Type Foundation (#146) 2026-03-19 13:56:11 -05:00
crates feat(M019/S01): git subtree import + workspace scaffolding (#5) 2026-04-02 03:10:41 +00:00
ide chore(01): add existing project scaffold 2026-02-28 22:23:41 -06:00
plugins [kata/root/M015/S05] Plugin Documentation Update 2026-03-29 10:58:50 -05:00
schemas test(13-03): add schema snapshots, roundtrip tests, regenerate schemas 2026-03-04 19:52:01 -06:00
smelt feat(M019/S01): git subtree import + workspace scaffolding (#5) 2026-04-02 03:10:41 +00:00
.editorconfig chore(01): add existing project scaffold 2026-02-28 22:23:41 -06:00
.gitignore [kata/root/M014/S01] merge_propose MCP Tool + Forge Env Vars (#201) 2026-03-28 12:16:23 -05:00
.linear.toml chore(01): add existing project scaffold 2026-02-28 22:23:41 -06:00
.mise.toml [kata/root/M010/S01] feat(M010/S01): StateBackend trait, CapabilitySet, and LocalFsBackend skeleton (#187) 2026-03-26 10:19:46 -05:00
AGENTS.md chore(01): add existing project scaffold 2026-02-28 22:23:41 -06:00
Cargo.lock feat(M016/S02): cupel-otel pipeline tracing under telemetry feature (#211) 2026-03-31 08:08:01 -05:00
Cargo.toml feat(M019/S01): git subtree import + workspace scaffolding (#5) 2026-04-02 03:10:41 +00:00
CHANGELOG.md chore: complete v0.4.0 milestone with release 2026-03-15 16:08:47 -05:00
CLAUDE.md [kata/root/M005/S01] Milestone & Chunk Type Foundation (#146) 2026-03-19 13:56:11 -05:00
clippy.toml chore(01): add existing project scaffold 2026-02-28 22:23:41 -06:00
CONTRIBUTING.md feat(M017/S02): activate GitHub CI + mirror flow documentation (#2) 2026-04-01 01:41:41 +00:00
deny.toml [kata/root/M015/S02] poll_signals + send_signal MCP Tools (#205) 2026-03-29 10:31:20 -05:00
justfile [kata/root/M010/S01] feat(M010/S01): StateBackend trait, CapabilitySet, and LocalFsBackend skeleton (#187) 2026-03-26 10:19:46 -05:00
LICENSE chore(01): add existing project scaffold 2026-02-28 22:23:41 -06:00
package-lock.json [kata/root/M005/S01] Milestone & Chunk Type Foundation (#146) 2026-03-19 13:56:11 -05:00
package.json [kata/root/M005/S01] Milestone & Chunk Type Foundation (#146) 2026-03-19 13:56:11 -05:00
README.md chore: complete v0.4.0 milestone with release 2026-03-15 16:08:47 -05:00
rust-toolchain.toml chore(01): add existing project scaffold 2026-02-28 22:23:41 -06:00
rust_out [kata/root/M006/S02] In-TUI Authoring Wizard (#159) 2026-03-20 21:21:16 -05:00
rustfmt.toml chore(01): add existing project scaffold 2026-02-28 22:23:41 -06:00

Assay

Agentic development kit — spec-driven workflows with dual-track quality gates for AI coding agents.

What It Does

Assay enforces quality gates between AI agent output and your main branch. Define specs with acceptance criteria, and Assay evaluates them automatically using two tracks:

  • Deterministic gates: Shell commands, test suites, linter checks — binary, reproducible, cheap
  • Agent-evaluated gates: Natural-language assertions verified by AI via MCP — nuanced, context-aware

Gates support required/advisory enforcement levels, persist results to run history for audit trails, and integrate with both CLI and MCP surfaces.

v0.4.0 adds gate_evaluate — a single MCP call that computes diffs, spawns a headless evaluator subprocess, and persists structured per-criterion results. Also ships WorkSession persistence for tracking agent work across phases, spec_validate for static spec health checking, context engine integration for token-budgeted diff slicing, and comprehensive observability improvements.

Quick Start

# Install toolchain
mise install

# Install the CLI
cargo install --path crates/assay-cli

# Initialize a project
assay init

# Write a spec in .assay/specs/my-feature.toml, then run gates
assay gate run my-feature

# Or run all specs at once
assay gate run --all

CLI Commands

Command Description
assay init Initialize .assay/ project structure
assay spec show <name> Display a spec with its criteria
assay spec list List all specs in the project
assay gate run <name> Run gates for a spec
assay gate run --all Run gates for all specs
assay history <name> View gate run history for a spec
assay context diagnose Token usage, bloat breakdown, context %
assay context list List sessions with sizes and token counts
assay context prune Dry-run pruning strategies on a session
assay context guard start Start the guard daemon for a session
assay worktree create <spec> Create isolated git worktree for a spec
assay worktree list List active worktrees
assay worktree status <spec> Check worktree branch/dirty/ahead status
assay worktree cleanup <spec> Remove a worktree
assay checkpoint save Save team state checkpoint
assay mcp serve Start the MCP server (stdio)

MCP Server

Assay exposes tools via MCP (Model Context Protocol) for agent integration:

  • spec_list — Enumerate available specs
  • spec_get — Retrieve a spec by name (with optional resolved config)
  • spec_validate — Static spec health check with structured diagnostics
  • gate_run — Execute command criteria for a spec (with timeout and enforcement)
  • gate_evaluate — Single-call headless agent evaluation (diff + subprocess + persist)
  • gate_report — Submit agent-evaluated gate results with reasoning
  • gate_finalize — Complete an agent evaluation session
  • gate_history — Query past gate run results (with outcome filter and limit)
  • session_create — Start a work session linking worktree, spec, and agent
  • session_get — Retrieve session details by ID
  • session_update — Transition session phase and link gate runs
  • session_list — Enumerate sessions with optional filters
  • context_diagnose — Full session diagnostics with bloat analysis
  • estimate_tokens — Token count, context %, and growth rate metrics
  • worktree_create — Create isolated git worktree for agent work
  • worktree_list — List active worktrees
  • worktree_status — Check worktree branch and dirty state
  • worktree_cleanup — Remove a worktree

Claude Code Plugin

Install the plugin from plugins/claude-code/ to get:

  • MCP server auto-registration
  • /gate-check and /spec-show skills
  • PostToolUse hook for automatic gate reminders
  • Stop hook preventing completion without passing gates
  • Checkpoint hooks for team state protection

Project Structure

crates/
  assay-types/   Shared serializable types (serde, schemars)
  assay-core/    Domain logic: specs, gates, config, context, pruning, guard
  assay-cli/     CLI binary (clap)
  assay-tui/     TUI binary (ratatui) — scaffold
  assay-mcp/     MCP server library (rmcp)
plugins/
  claude-code/   Claude Code plugin
schemas/         JSON Schemas (generated from assay-types)

Development

just build      # Build all crates
just test       # Run tests (836 tests)
just lint       # Clippy with -D warnings
just fmt        # Format code
just ready      # Full check suite: fmt + lint + test + deny
just schemas    # Regenerate JSON schemas

License

MIT