ClaudeMods
☰
KO
● 0 명 접속 중 · 조회 0 회
후원프로젝트 제출
GitHub 저장소 · 작성자 ruvnet

ruflo-arena

Ruflo 스웜을 위한 경쟁적 ruliology: 아레나, 토너먼트, 프로그램 전략의 적응형 공진화(ADR-147/148)를 제공합니다. 프로그램 전략은 보상 게임에서 경쟁하고, 토너먼트는 Wolfram 방식의 경쟁 배열을 만들며, 언덕 오르기와 상호 공진화가 실증적으로 승자를 찾습니다.

번역 완료

이 mod 소개

ruflo-arena는 Claude Code function-hook mod로 제공됩니다(ADR-445 패턴). hooks는 플러그인과 함께 로드됩니다. 아레나, 토너먼트, 프로그램 전략의 적응형 공진화를 추가하고 MCP 도구 6개(arena/run, tournament/run, evolve/run, coevolve/run, run/get, run/list)와 CLI를 공개합니다. mod는 /arena-mod로 상태를 보고하고 세션 시작 시 .claude-flow/arena-mod/status.json을 기록합니다. 네트워크, 프로세스, 모델 호출은 하지 않습니다. claude plugin validate/test와 함께 제공되는 smoke 스크립트로 설치하고 테스트합니다.

설치

먼저 작성자의 README에서 marketplace와 플러그인 이름을 확인하세요. 저장소 구조에 따라 명령어가 달라질 수 있습니다.

claude plugin marketplace add ruvnet/ruflo
claude plugin install ruflo-arena
원문 / README

ruflo-arena

Competitive ruliology for Ruflo swarms — arenas, tournaments, and adaptive co-evolution of program strategies. Implements the first executable slice of Ruflo ADR-147/148/150, following Stephen Wolfram's Games Between Programs: The Ruliology of Competition.

Strategies are programs (deterministic finite-state machines reading opponent history). They compete under payoff games; tournaments produce Wolfram's competitive array; hill-climb and mutual co-evolution discover winners empirically — because, per computational irreducibility, you have to run the competition to find out.

Install & test

cd plugins/ruflo-arena
npm install        # light — runtime dep is just zod
npm run build      # tsc -> dist/
npm test           # vitest (engine + MCP tools + persistence)
npm run lint       # eslint (typescript-eslint)

CLI

node dist/cli.js demo                                   # tournament + evolution + co-evolution
node dist/cli.js tournament --game pd --rounds 200 --seed 1
node dist/cli.js arena --a tit-for-tat --b always-defect
node dist/cli.js evolve --game pd --generations 300 --seed 42
node dist/cli.js coevolve --game pd --generations 400 --seed 7

Sample PD ranking (mean-vs-field): grim ≈ 2.99, always-defect ≈ 2.76, tit-for-tat ≈ 2.50, … always-cooperate ≈ 1.88. The evolution run climbs from a random FSM (~2.78) to ~3.00 with the characteristic plateau→breakthrough fitness curve.

MCP tools (ruflo-arena/mcp-tools)

| Tool | Purpose | |------|---------| | arena/run | one deterministic match between two named strategies | | tournament/run | round-robin → competitive array + mean-vs-field ranking | | evolve/run | hill-climb an FSM vs the field; returns program + fitness curve | | coevolve/run | mutual co-evolution (arms race) trace | | run/get, run/list | fetch/list persisted run records |

All return { success, result | error } and validate inputs with Zod. See commands/arena.md and docs/adrs/0001-arena-contract.md.

Persistence

Full run artifacts are written to .ruflo/arena/<runId>.json (exact replay). Each tool result also carries an agentdb payload so the command layer can store a searchable summary via mcp__plugin_ruflo-core_ruflo__memory_store (namespace arena) — the local stand-in for the RuVector data layer (ADR-196/197), enabling queries like "tournaments where grim dominated".

Scope

v1 is intentionally Ruflo-only and core-untouched:

  • In: simple-program + stochastic strategies, PD + zero-sum games, tournaments, hill-climb & co-evolution, file/AgentDB persistence, MCP tools + CLI.
  • Out (tracked elsewhere): LLM-agent strategies + distillation (ADR-151), execution sandboxing/resource governance (ADR-153), dashboard UI (ADR-149/154), and the full RuVector data/intelligence layer (ADR-196–198, ADR-200).

Architecture

src/
  domain/      types (+ Zod schemas) · games · strategies (FSM programs, library, mutation)
  engine/      rng · arena (match) · tournament (competitive array) · evolution (hill-climb, co-evolution)
  persistence/ RunStore (File + InMemory) + AgentDB record builder
  report/      competitive-array tables · ASCII heatmaps · fitness sparklines
  mcp-tools/   arenaTools: MCPTool[]  (the 6 tools above)
  index.ts     export surface + default { tools }
  cli.ts       human-facing CLI

As a mod

Arena also ships as a function-hook mod (ADR-445 pattern; hooks in hooks/, loaded with the plugin). No network, no process, no model call.

  • No guard: this plugin owns no tool a guard could usefully screen, so the mod only reports status.
  • /arena-mod: answered locally. /arena-mod status, /arena-mod strategies.
  • Status file: .claude-flow/arena-mod/status.json (version, updatedMs, counters), written at session start; the console reads it.

Test: claude plugin validate plugins/ruflo-arena, claude plugin test plugins/ruflo-arena (its vitest suites are *.spec.ts, so the kit collects only tests/mod.test.ts), and bash plugins/ruflo-arena/scripts/smoke.sh.

비슷한 프로젝트