Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/lythos-labs-lythoskill-arena-e4fdab
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: presentations, testing, agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions: not checked yet.
What's inside
- Skill name
lythoskill-arena- Description
- Test play for skills and deck configurations. DEFAULT: agent reads config, spawns parallel subagents via native Agent tool, judges outputs. Single-deck test AND multi-deck A/B comparison both run agent-orchestrated (no CLI). Cross-player comparison (kimi vs codex) is the ONLY case that needs the CLI runner. Always restores parent deck. No install, no working-set pollution, no deck overwrite. Subagent-friendly: resumes interrupted runs from saved state. CRITICAL: experiments run in `/tmp`, never in committed directories. Subagent inherits parent CWD — prompt must explicitly set workDir.
- License
- MIT
- Instructions
- 298 lines in SKILL.md · view on GitHub
Before installing
- Ships executable scripts
Agent Skills spec issues
- allowed-tools: must be a space-separated string
Files (11)
- SKILL.md
- COMMANDS.md · references/
- arena-runtime.md · references/
- configuration-schemas.md · references/
- design-principles.md · references/
- pareto-analysis.md · references/
- player-setup.md · references/
- reproduce-sh-bdd-contract.md · references/
- reproduce-sh-examples.md · references/
- test-play-model.md · references/
- arena.sh · scripts/
SKILL.md (first lines)
# Skill Arena
> Test play for skills and deck configurations. Not "which is best" — "which is best for what."
> **Invocation.** `arena <cmd>` below is shorthand for
> `bunx @lythos/skill-arena@0.21.0 <cmd>` (no install), or
> `lythoskill-arena <cmd>` if installed globally. The bare `arena` name is NOT
> a registered bin — it is an in-repo alias convention in the lythoskill
> monorepo. `deck <cmd>` likewise → `bunx @lythos/skill-deck@0.21.0 <cmd>`.
> Want the shorthand? `alias arena='bunx @lythos/skill-arena@latest'` — optional.
## Decision Tree (READ FIRST)
```
User says: "test/compare/arena/benchmark/A vs B"
│
├── Cross-PLAYER? (kimi vs codex vs claude)
│ OR user explicitly says useAgent/specific player
│ OR platform doesn't support Agent tool subagents
│ → CLI runner REQUIRED (useAgent → Bun.spawn)
│ → bunx @lythos/skill-arena vs --config arena.toml
│ → Each side spawns its player CLI process
│
└── Same player, different DECKS? (DEFAULT)
→ Agent-orchestrated — NO CLI
→ YOU spawn subagents via Agent tool
→ CLI prepare-workdir + CLI archive + parallel dispatch
→ Judge subagent collects + scores
```
## Default: Agent-Orchestrated (single & cross-deck vs)
**This is how arena works 95% of the time.** The agent and CLI operate as a two-way control transfer protocol. Agent delegates mechanical invariants to CLI. CLI hands control back via its exit paths (success → next step; error → fix command). Agent stays in its own main loop — the subagent pattern is container spawn, not external RPC.
```mermaid
flowchart TD
A["🤖 Agent: parse request"] --> B{Cross-PLAYER?}
B -->|Yes| C[🔧 CLI vs --config]
B -->|No — DEFAULT| D["🤖 Agent → 🔧 CLI: prepare-workdir"]
D -->|"✅ workdir ready"| E["🤖 Agent: spawn subagents"]
E --> F["🤖 Subagents: execute + write artifacts"]
F --> G["🤖 Agent: collect + spawn judge"]
G --> H["🤖 Judge: score → report.md"]
H --> I["🤖 Agent → 🔧 CLI: archive"]
I -->|"✅ archived"| J["🤖 Agent → 🔧 CLI: deck link restore"]
```
**The protocol in one line**: Agent hands to CLI (`prepare-workdir`, `archive`, `deck link`). CLI exits with success (`✅ workdir ready → spawn`) or HATEOAS error (`❌ missing --deck → here's the fix command → retry`). Agent reads the exit, decides next move, continues. Three CLI exit points, three handoffs back to agent.
### single — test one deck
```
🤖→🔧 prepare-workdir --out /tmp/arena-xxx --brief "task"
CLI exits: ✅ Workdir ready → 🤖 spawn subagent
🤖 Agent tool spawn: subagent executes in workdir, writes artifacts + decision-log-<cell-id>.jsonl
🤖→🔧 archive --from /tmp/arena-xxx --to ./playground --sides side-a
CLI exits: ✅ Archive complete → 🤖 done
🤖→🔧 deck link parent deck (restore)
```
### cross-deck vs — compare decks A vs B
```
🤖→🔧 prepare-workdir × N (each side isolated, each with own deck)
CLI exits: ✅ Workdir ready × N → 🤖 spawn N subagents in parallel
🤖 Agent tool spawn ×N, run_in_background=true
🤖 Collect: merge each side's per-cell decision logs → {side}/decision-log.jsonl
🤖 Spawn judge subagent: score per criteria → report.md
🤖→🔧 archive --from /tmp/arena-xxx --to ./playground --sides side-a,side-b
🤖→🔧 deck link parent deck (restore)
```
**Why agent-orchestrated is default**: Subagent = container spawn, not external RPC. Agent stays in its own main loop — can read subagent output, fix failures mid-run (switch mirror, adjust timeout, retry), spawn judge. Decision-log.jsonl from each subagent provides full observability. Cross-deck vs IS map-reduce — same agent type, different decks, parallel spawn, judge reduce.
## Cross-Player Mode (OPT-IN, CLI only)
Use ONLY when comparing different players (kimi vs codex vs deepseek vs claude). The Agent tool can only spawn the same agent type — it CANNOT simulate another CLI's memory, hooks, or tool-use semantics. This is a hard runtime boundary, not a preference.
```bash
# Single deck, explicit player
bunx @lythos/skill-arena@0.21.0 single \
--deck ./skill-deck.toml \
--brief "Investigate this repo" \
--player kimi
# vs mode with arena.toml (each side's player in config)
bunx @lythos/skill-arena@0.21.0 vs --config ./arena.toml
```
See `references/player-setup.md` for player discovery, installation, and API key setup.
## Standard Posture: Arena as Mindset Validator
**Purpose**: Verify that a skill's **mental model** (SOP, behavior pattern, decision chain) actually shapes agent behavior — not just that the skill file is read.
**Minimal deck principle**: Include ONLY the governance skill (`lythoskill-deck`) and the target skill under test. Extra skills dilute the signal — you are testing whether the target skill's intent survives when no other skills are there to compensate.
**Standard posture** (4 steps):
1. **Prepare** — `prepare-workdir` with minimal deck
```bash
bunx @lythos/skill-arena@0.21.0 prepare-workdir \
--deck ./test-deck.toml \
--out /tmp/arena-$(date +%Y%m%d-%H%M%S) \
--brief "Execute the target skill's core workflow"
```
2. **Dispatch** — spawn subagent with decision-log mandate
- Prompt MUST include: "Your working directory is {workDir}. Deck: {deckPath}. Task: {brief}. MANDATORY: write decision-log-{cellId}.jsonl to your CWD. Each line records a decision you made and why." — one cell id per cell, never a shared name.
3. **Observe** — collect decision-logs, not just artifacts
- Read every `decision-log-*.jsonl` from workdir, or the merged `decision-log.jsonl` after the collect step
- Check: did the subagent follow the skill's declared SOP?
- Check: did the subagent stop at decision points and ask, or did it guess?
- Check: are the decisions traceable to the skill's instructions?
4. **Judge** — score mindset alignment, not output correctness
- "Did the subagent behave as the skill intended?" > "Was the output correct?"
- A correct output achieved by guessing is a FAIL — the skill's mental model did not transfer.
- A wrong output achieved by faithfully following the skill's SOP is valuable feedback — the skill's instructions need refinement.From lythos-labs/lythoskill, MIT.
More from lythos-labs/lythoskill
- 0.605score
lythoskill-project-scribe
lythos-labs
Session context dump.
SkillAFreshness: A★ 3Claude Code +9 - 0.605score
lythoskill-project-onboarding
lythos-labs
Session context loader.
SkillAFreshness: A★ 3Claude Code +9 - 0.605score
lythoskill-dreaming
lythos-labs
Project memory consolidation — 夜有所梦 ("night dreams": the day's scattered notes get consolidated into long-term memory while "sleeping").
SkillAFreshness: A★ 3Claude Code +9 - 0.605score
lythoskill-reminders
lythos-labs
Reconciles a declarative session-reminder registry (cortex/REMINDERS.toml) against the host's session-scoped cron tools.
SkillAFreshness: A★ 3Claude Code +9 - 0.602score
lythoskill-red-green-release
lythos-labs
User-acceptance-driven release workflow using heredoc patch files.
SkillAFreshness: A★ 3Claude Code +9 - 0.602score
lythoskill-project-scribe-weekly
lythos-labs
Weekly synthesis writer.
SkillAFreshness: A★ 3Claude Code +9 - 0.602score
lythoskill-coach
lythos-labs
Analyzes SKILL.md files against Agent Skills best practices.
SkillAFreshness: A★ 3Claude Code +9 - 0.602score
lythoskill-writer
lythos-labs
Human-first documentation writer and reviewer.
SkillAFreshness: A★ 3Claude Code +9 - 0.601score
lythoskill-arena
lythos-labs
Test play for skills and deck configurations.
SkillAFreshness: A★ 3Claude Code +9 - 0.601score
lythoskill-sober
lythos-labs
Stay clear-headed.
SkillAFreshness: A★ 3Claude Code +9 - 0.601score
lythoskill-project-cortex
lythos-labs
Register tasks BEFORE fixing bugs.
SkillAFreshness: A★ 3Claude Code +9 - 0.601score
lythoskill-curator
lythos-labs
Skill curator (买家秀 — "buyer show": hands-on QA notes, as opposed to the author's own 卖家秀 "seller show" claims).
SkillAFreshness: A★ 3Claude Code +9
Signals
- Stars
- 3
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Oct 23, 2026 (7 days ago)
- Last release
- Oct 14, 2026 (16 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- Repository
- github.com/lythos-labs/lythoskill
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
Same skill elsewhere
Copies of this SKILL.md published by others; search shows only one of them.
More from lythos-labs
- 0.605score
lythoskill-project-scribe
lythos-labs
Session context dump.
SkillAFreshness: A★ 3Claude Code +9 - 0.605score
lythoskill-reminders
lythos-labs
Reconciles a declarative session-reminder registry (cortex/REMINDERS.toml) against the host's session-scoped cron tools.
SkillAFreshness: A★ 3Claude Code +9 - 0.605score
lythoskill-project-onboarding
lythos-labs
Session context loader.
SkillAFreshness: A★ 3Claude Code +9 - 0.605score
lythoskill-dreaming
lythos-labs
Project memory consolidation — 夜有所梦 ("night dreams": the day's scattered notes get consolidated into long-term memory while "sleeping").
SkillAFreshness: A★ 3Claude Code +9 - 0.602score
lythoskill-coach
lythos-labs
Analyzes SKILL.md files against Agent Skills best practices.
SkillAFreshness: A★ 3Claude Code +9 - 0.602score
lythoskill-project-scribe-weekly
lythos-labs
Weekly synthesis writer.
SkillAFreshness: A★ 3Claude Code +9
Cite this page
lythoskill-arena. Agent Mart. https://agentmart.dev/skills/lythos-labs-lythoskill-arena-e4fdab (last updated 2026-10-24)