aedt-bias-audit
HR-AI / AEDT bias audit. Invokes hr-ai-reviewer to assess NYC LL 144, EEOC, Illinois AIVIA, Colorado SB 205, EU AI Act Annex III applicability and produce…
Generate EVAL-*.md test cases for an agent from its prompt. Usage: /gen-evals <agent-name> [--count N]
> /plugin marketplace add avelikiy/great_cto > /plugin install great_cto@great-cto
How it fires
How this command gets triggered: by you, by Claude, or both.
/gen-evalsContext preview
What this command does when you run it.
Generate EVAL-*.md test cases for an agent from its prompt. Usage: /gen-evals <agent-name> [--count N]
description: "Generate EVAL-*.md test cases for an agent from its prompt. Usage: /gen-evals <agent-name> [--count N]" argument-hint: "<agent-name> — e.g. architect, qa-engineer, security-officer" user-invocable: true allowed-tools: Read, Write, Bash, Glob, Grep model: haiku
<!-- great_cto-managed -->
You are the great_cto `/gen-evals` command. You generate synthetic evaluation test cases for a named agent, saving them in the established `tests/eval/EVAL-*.md` format. This is the Sprint 2 implementation of the self-evolution pattern: **synthetic eval dataset generation from agent documentation**.
AGENT_NAME="${ARGUMENTS%% *}" # first word
COUNT=$(echo "$ARGUMENTS" | grep -oE '\-\-count [0-9]+' | grep -oE '[0-9]+' || echo 20)
[ -z "$AGENT_NAME" ] && echo "Usage: /gen-evals <agent-name> [--count N]" && exit 1
# Locate agent file in plugin dir or repo
PLUGIN_DIR=${CLAUDE_PLUGIN_ROOT:-$(ls -d ~/.claude/plugins/cache/*/great_cto/*/ 2>/dev/null | sort -V | tail -1 | sed 's|/$||')}
AGENT_FILE="${PLUGIN_DIR}/agents/${AGENT_NAME}.md"
[ ! -f "$AGENT_FILE" ] && AGENT_FILE="agents/${AGENT_NAME}.md"
[ ! -f "$AGENT_FILE" ] && echo "ERROR: agent not found: ${AGENT_NAME}" && exit 1
echo "Generating $COUNT eval cases for: $AGENT_NAME"
echo "Reading: $AGENT_FILE"Read the full agent file. Focus on:
This is the source material for generating realistic test cases.
Based on the agent definition, generate $COUNT realistic, adversarial test cases.
**For each test case, produce:**
| # | Input / Scenario | Expected behaviour | Pass criterion |
**Generation rules (from the PLAN.md pattern):**
**Common adversarial shapes by agent type:**
Generate cases in structured tables followed by a pass threshold. Threshold = 80% default (16/20), adjust down to 70% for adversarial-heavy sets.
**Split the cases into tuning + holdout (SIA `data/public` vs `data/private`):**
to block prompt revisions that regress. Put the **hardest adversarial cases** in holdout — they are the most valuable overfit detector and must stay unseen during prompt tuning.
Group the $COUNT cases into EVAL files of max 5-8 cases each (matching the existing `tests/eval/` convention). Each file covers one specific failure mode or scenario cluster.
**File naming:** `tests/eval/EVAL-<agent-name>-<slug>.md` where `<slug>` is a 2-4 word kebab description of the scenario cluster.
**File format (MUST match existing tests/eval/ convention exactly):**
# EVAL-<agent-name>-<slug>.md > Agent: <agent-name> · Generated by /gen-evals on <YYYY-MM-DD> ## Scenario <2-3 sentences describing what this cluster tests and why it matters> ## Cases (tuning) | # | Scenario | Expected | Pass | |---|---|---|---| | 1 | <input description> | <expected behaviour — rubric-based> | <pass criterion> | ... ## Holdout cases | # | Scenario | Expected | Pass | |---|---|---|---| | H1 | <hardest adversarial input — kept unseen> | <expected behaviour> | <pass criterion> | ... ## Pass threshold <N>/<total>. (applies to each split) ## Run `node tests/eval/runner.mjs --filter EVAL-<agent-name>-<slug>` `node tests/eval/runner.mjs --filter EVAL-<agent-name>-<slug> --split holdout` # gate evidence ## Cross-refs - Agent: <agent-name> · Shape: <A-F from continuous-learner shapes> ## History | Date | Version | Result | Notes | |---|---|---|---|
After writing all EVAL files:
EVAL_FILES=$(ls tests/eval/EVAL-${AGENT_NAME}-*.md 2>/dev/null | wc -l | tr -d ' ')
echo ""
echo "Generated $EVAL_FILES EVAL files for $AGENT_NAME"
echo ""
echo "Run baseline:"
echo " export ANTHROPIC_API_KEY=sk-ant-..."
echo " node tests/eval/runner.mjs --filter EVAL-${AGENT_NAME}"
echo ""
echo "Baseline scores will be the 'before' line in future /crystallize propose PRs."evaluate them without the full project context.
is honoured in ≥2 cases.
You already have the agent. This is everything around it. great_cto runs Claude Code as a pipeline of 70 specialist agents — an independent model checks each stage before the next builds on it, spending caps refuse rather than warn, and three decisions stay yours: what gets built, how, and whether it ships.
Repo: avelikiy/great_cto
HR-AI / AEDT bias audit. Invokes hr-ai-reviewer to assess NYC LL 144, EEOC, Illinois AIVIA, Colorado SB 205, EU AI Act Annex III applicability and produce…
Gracefully retire an LLM agent from the workforce. Archives prompt, removes from sync list, keeps verdicts for audit. Like firing a human — but reversible.
Performance review for an LLM agent (or all agents). Verdicts breakdown, cost analysis, top failure modes, prompt-tuning suggestions. Like a human '1:1' but…
API platform contract review. Invokes api-platform-reviewer to audit rate-limit design, OAuth scope hygiene, webhook signing, idempotency, Sunset/deprecation,…
Audit an existing codebase. Detects stack, finds gaps, creates tasks, generates PROJECT.md.
Open the great_cto admin board at http://localhost:3141 (Kanban, cost, pipeline, inbox, memory). Starts it in background if not running.