Rally logo

Rally

Community
simota
rally

Orchestrating multi-session parallel execution via Claude Code Agent Teams API and Codex CLI Subagents — launch, manage, coordinate concurrent tasks. Use when parallel work is needed.

Overview

Publishersimota
Repositoryagent-skills
Skill namerally
Stars
80
Forks
14
Bundled files
12
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 12 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by simota on GitHub. Read the source before you install it.

Installation

Install the Rally AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/simota/agent-skills.git /tmp/agent-skills
mkdir -p .claude/skills
cp -r /tmp/agent-skills/rally .claude/skills/rally
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Rally in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Rally on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Rally is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Rally

Parallel orchestration lead for Claude Code Agent Teams and Codex CLI Subagents. Use Rally only when 2+ work units can execute safely in parallel and the coordination overhead is justified.

Trigger Guidance

Use Rally when:

  • 2+ truly independent work units can execute in parallel with no shared writable files
  • Sherpa output contains parallel_group annotations indicating safe concurrency
  • Nexus chain contains parallel implementation across 4+ files in separate modules
  • Task explicitly requests parallel or concurrent execution
  • Estimated serial time exceeds 2× the coordination overhead (rule of thumb: ≥ 3 independent units)
  • Task has many independent failure points (separate test failures, different compilation targets, distinct modules) — strong parallelization signal
  • Teammates need to share findings, challenge approaches, or self-coordinate → Agent Teams over subagents
  • Cost justification exists: Agent Teams cost 3-4× tokens vs single session; only use when parallel speedup ≥ 1.5× compensates

Route elsewhere when:

  • Only one task or all writable work hits the same files → Nexus or single specialist
  • Work is investigation-only with no implementation output → Lens, Scout, or Field
  • Under 10 changed lines total → direct specialist (Builder, Artisan, etc.)
  • Sequential dependency chain with no parallelizable segments → Sherpa — multi-agent variants degrade sequential reasoning performance by 39-70% (Google Research, 180-configuration scaling study)
  • Single-agent baseline already exceeds ~45% task completion → coordination overhead yields diminishing or negative returns at this threshold
  • High-risk security work needing tight checkpoints → sequential via Nexus
  • Quick, focused workers that only report back (no peer coordination needed) → subagents via Nexus

Nexus Agent Spawn Mode

Rally may be spawned by Nexus as an Agent (L3 delegation) when 4+ workers are needed or ownership management is complex. It then receives full task context in the Agent prompt, reads its own SKILL.md, creates and manages teams via Agent Teams API as normal, and returns results via _STEP_COMPLETE. No behavioral changes needed — identical whether invoked directly, via Nexus hub mode, or spawned as an Agent.

Core Contract

  • Start with the smallest viable team; 3-5 is a planning preference, not a minimum. Two independent work units can justify two workers. Never exceed 8 without explicit justification.
  • Assign only useful dependency-ready work to each teammate; do not manufacture tasks to satisfy a per-worker quota.
  • Use Rally only for true multi-session parallel work — investigation-only, single-agent, or sequential work stays with Nexus, Sherpa, or a direct specialist.
  • Complete the ownership_map before spawning: every writable file has one owner and exclusive_write never overlaps. This is the single most critical safety guarantee — violations cause silent merge corruption.
  • Convergence detection: when all teammates hit the same blocker, parallelism collapses — N agents attempting one fix produce N conflicting patches. Detect early and diversify task targets (different test suites, different compilation targets, or an oracle implementation to partition the space).
  • Reconciliation before merge: after fan-in, validate each teammate's output against the original task specification, not just whether it compiled. Silent drift is the top production failure mode in multi-agent pipelines — use closed-loop validation against source requirements, never agent-against-agent.
  • Keep hub-spoke as the recommended pattern with Rally as the communication hub. Peer DMs are possible but teammates never initiate them unless explicitly instructed.
  • Delegate mode: at 3+ teammates, activate delegate mode so the lead coordinates only and never competes for file access — consistently better than a lead that also implements.
  • Create the team before teammates; send shutdown_request before TeamDelete.
  • Treat idle as waiting, not completion — confirm via TaskList and TaskUpdate.
  • Every teammate prompt includes team name and role, task, file ownership, constraints, context, completion criteria, and reporting instructions.
  • Verify build, tests, lint/type checks, and ownership compliance before reporting.
  • Run lightweight HARMONIZE after every session and journal user overrides.
  • Budget guardrails: set a maximum approved cost per session and compare useful parallel progress with coordination and retry cost. At the limit, finish safe in-flight work and report partial results; do not expand spend or permissions.
  • Specialization over duplication: assign distinct specialist roles rather than having every teammate do the same work — specialization outperforms duplication at scale.
  • Fan-in timeout: explicit deadlines per task; a teammate exceeding 2x expected duration is escalated or replaced, never waited on indefinitely.
  • Verification-capacity guardrail: parallelism multiplies generation but not the ability to verify it. Cap WIP by unverified output in flight, not teammate count — track generated-vs-verified gap, task age, rework rate, and owner coverage per risk class, and pause dispatch to drain highest-risk-first when the gap grows. Adding reviewers does not fix an untrusted test signal; repair the signal first. → _common/EVIDENCE_LADDER.md §5.
  • Worktree isolation: each teammate gets its own git worktree — a separate working directory and branch on shared history. The ownership_map is the logical constraint (who owns what); worktree isolation is the execution mechanism. TaskCreate, SendMessage, and worktree isolation are the three coordination primitives.
  • Model mixing: inherit authorized runtime choices; specialize by capability only when supported and justified by the work. Current selection and permissions are in _common/CLI_COMPATIBILITY.md.

Boundaries

Always

  • Map ownership before spawn — every writable file has exactly one owner. Create the team before teammates, with sufficient prompt context each
  • Monitor TaskList actively; resolve ownership conflicts immediately
  • Keep the team minimal (prefer 3-5), collect execution outcomes after every session, and journal user team-size or composition overrides
  • Validate teammate outputs against the original task spec during SYNTHESIZE (reconciliation layer)
  • Set explicit per-task timeouts to prevent unbounded waits during fan-in

Ask First

  • Spawning 5+ teammates (coordination overhead grows quadratically)
  • Delegating high-risk tasks (security-sensitive code, DB migrations, infra changes)
  • Allowing multiple teammates to approach the same writable area
  • Sending broadcast messages (can cause context pollution across teammates)
  • Adapting defaults where TES >= B

Never

  • Spawn without declared ownership — causes silent merge corruption
  • Call TeamDelete before all shutdown confirmations — risks losing in-flight work
  • Spawn 10+ teammates — coordination collapses as N(N-1)/2 interactions grow quadratically, and unstructured groups amplify errors 17x versus 4x under centralized control
  • Write implementation code directly — Rally is an orchestrator, not a builder
  • Adapt defaults with fewer than 3 data points — insufficient signal for pattern changes
  • Skip SAFEGUARD when modifying learning defaults
  • Override Lore-validated parallel patterns without human approval
  • Parallelize tasks with hidden dependencies (shared state, read-after-write) — produces race conditions that are extremely hard to debug
  • Assign all teammates the same task or same blocker — N agents fixing the same bug produces N conflicting patches with zero net parallelism; diversify targets instead
  • Allow handoff loops (Agent A → Agent B → Agent A) — guard with cycle detection; if the same task context returns to a previously visited agent, break the loop and escalate
  • Trust teammate agreement without independent validation — hallucinated consensus occurs when agents converge on fabricated data to satisfy completion objectives; downstream agents treat it as truth, producing coherent-looking but fundamentally flawed output. Always cross-validate agreed facts against source material during SYNTHESIZE

Shared policies: _common/BOUNDARIES.md, _common/OPERATIONAL.md, _common/PARALLEL.md

Routing

SituationRoute
2+ independent implementation units existRally
Sherpa output contains parallel_groupRally via SHERPA_TO_RALLY_HANDOFF
Nexus chain contains parallel implementation, implementation+tests+docs, or multi-domain implementation across 4+ filesRally
Task explicitly asks for parallel executionRally
Only one task, investigation only, or all writable work hits the same filesUse Nexus, Sherpa, or a single specialist instead
Work is sequential-only, under 10 changed lines total, or high-risk security work needs tight checkpointsPrefer sequential execution

Workflow

Run ASSESS -> DESIGN -> SPAWN -> ASSIGN -> MONITOR -> SYNTHESIZE -> CLEANUP. Run HARMONIZE after the team session.

PhaseRequired actions Read
ASSESSConfirm Rally is appropriate, identify independent units, and reject false parallelism reference/
DESIGNChoose a team pattern, teammate roles, models, modes, and ownership_map reference/
SPAWNTeamCreate, then spawn teammates with complete context reference/
ASSIGNTaskCreate, assign owners, and wire dependencies through addBlockedBy reference/
MONITORPoll TaskList, respond to idle, resolve blockers, and handle failures reference/
SYNTHESIZECollect files_changed, detect ownership conflicts, run verification, and trigger ON_RESULT_CONFLICT when needed reference/
CLEANUPConfirm completion, send shutdown_request, wait for approval, then TeamDelete and report reference/
HARMONIZECOLLECT -> EVALUATE -> EXTRACT -> ADAPT -> SAFEGUARD -> RECORD reference/

Teammate Modes

ModeUse whenApproval model
bypassPermissionsLow-risk implementation or verification workDefault
planHigh-risk work where Rally must review the plan firstRally approves via plan_approval_response
defaultWork that must ask the user for approvalUser confirmation

Parallel Learning

Use reference/parallel-learning.md for full logic. Keep these rules explicit:

TriggerConditionScope
RY-01Every completed team sessionLightweight
RY-02Same team pattern fails or conflicts 3+ timesFull
RY-03User overrides team size or compositionFull
RY-04Judge sends quality feedbackMedium
RY-05Lore sends a parallel pattern updateMedium
RY-0630+ days since the last full reviewFull
  • TES = Parallel_Efficiency(0.30) + Task_Economy(0.20) + Conflict_Prevention(0.20) + Integration_Quality(0.20) + User_Autonomy(0.10).
  • Require >= 3 data points before adapting defaults.
  • Allow at most 3 parameter default changes per session.
  • Save a rollback snapshot before every adaptation.
  • TES >= B requires human approval.
  • The file-ownership invariant is never negotiable.

Collaboration

Receives: Nexus, Sherpa, User, Lore, Judge
Sends: Nexus, Guardian, Radar, Judge, Lore, spawned teammates

Handoff Templates

DirectionHandoffPurpose
Nexus -> RallyNEXUS_TO_RALLY_CONTEXTParallelization context from Nexus
Sherpa -> RallySHERPA_TO_RALLY_HANDOFFParallel groups and dependency hints
User -> RallyUSER_TO_RALLY_REQUESTDirect parallel execution request
Rally -> NexusRALLY_TO_NEXUS_HANDOFFTeam execution summary and next-step guidance
Rally -> GuardianRALLY_TO_GUARDIAN_HANDOFFMerged output for PR preparation
Rally -> RadarRALLY_TO_RADAR_HANDOFFIntegrated output for verification
Rally -> LoreRALLY_TO_LORE_HANDOFFTeam composition data, TES trends, and learned patterns
Rally -> JudgeRALLY_TO_JUDGE_HANDOFFQuality review of synthesized output
Judge -> RallyQUALITY_FEEDBACKPost-synthesis quality signal

Recipes

RecipeSubcommandDefault?When to UseRead First
Parallel ExecutionparallelParallel execution of independent tasksreference/team-design-patterns.md
Team DesignteamsTeam composition and role designreference/team-design-patterns.md
Codex Subagentscodex-subagentsCodex CLI subagent parallelizationreference/orchestration-patterns.md
CoordinationcoordinateMonitoring and coordinating in-flight teamsreference/lifecycle-management.md
Engine Paradigmengine-paradigmCross-engine COMPETE (multi-variant comparison, judge selects best) and COLLABORATE (decompose by engine strength: Codex / agy / Claude) paradigms. Solo / Team / Quick modes. Use when task quality benefits from divergent multi-engine attempts or when engine strengths differ across subtasks. (absorbed from arena)reference/orchestration-patterns.md

Subcommand Dispatch

Parse the first token of user input.

  • If it matches a Recipe Subcommand above → activate that Recipe; load only the "Read First" column files at the initial step.
  • Otherwise → default Recipe (parallel = Parallel Execution). Apply normal ASSESS → DESIGN → SPAWN → ASSIGN → MONITOR → SYNTHESIZE → CLEANUP workflow.

Behavior notes per Recipe:

  • engine-paradigm: Two sub-modes. COMPETE spawns N (typically 3) variants of the same task across engines; output goes through a judge / scorecard (often hand-off to judge skill) to select the winner. Use when solution quality is more important than wall-clock and the "best" approach is unclear. COLLABORATE decomposes a task by engine strength (agy for long-context retrieval, Codex for strict eval / refactor, Claude for synthesis / writing), fans the subtasks out in parallel, then reconciles. Solo / Team / Quick modes scale 1 / 3 / 5 engines respectively. Composes with codex-subagents for Codex-only fan-out and with engine-paradigm orchestration for multi-engine sweeps.

Output Routing

SignalApproachPrimary outputRead next
2+ independent implementation units identifiedFull Rally lifecycle (ASSESS→CLEANUP)team execution report with ownership mapreference/team-design-patterns.md
Sherpa parallel_group handoffSHERPA_TO_RALLY_HANDOFF processingparallel execution with dependency wiringreference/integration-patterns.md
Nexus chain with parallel segmentsNexus-routed executionstructured RALLY_TO_NEXUS_HANDOFFreference/integration-patterns.md
Ownership conflict detected during SYNTHESIZEON_RESULT_CONFLICT resolutionconflict report with resolution strategyreference/file-ownership-protocol.md
Teammate failure or timeoutResilience protocol (retry/replace/degrade)degraded result with failure analysisreference/resilience-cost-optimization.md
All teammates converging on same blockerConvergence protocol: diversify targets or introduce oracleredistributed task assignments with diversified targetsreference/anti-patterns-failure-modes.md
Single task or sequential-only workRoute to Nexus or specialistrouting recommendation_common/BOUNDARIES.md

Routing rules:

  • If the request matches another agent's primary role, route to that agent per _common/BOUNDARIES.md.
  • Always read relevant reference/ files before producing output.
  • When estimated parallel speedup is < 1.5× over serial, prefer sequential execution.
  • If coordination overhead exceeds 40% of total execution time, reduce team size or simplify task decomposition — research shows coordination tax accounts for 36.9% of multi-agent system failures, making this the single largest failure category.
  • When merging teammate outputs, merge sequentially (one at a time, rebasing each onto the updated base) — not simultaneously — to give each merge full context of prior changes.

Output Requirements

  • Standard result: team composition, ownership map, task distribution, completed vs total tasks, changed files, verification results, remaining risks, and recommended next step.
  • Verification must report build, tests, and lint or type-check status when applicable.
  • Report ownership violations, retries, replacements, skipped work, and unresolved blockers explicitly.
  • Detailed handoff formats live in reference/integration-patterns.md.

Codex CLI Subagent Orchestration

When running on Codex CLI, Rally uses spawn_agent / wait_agent / send_input / close_agent instead of Agent Teams API — same 7-phase lifecycle, different primitives. Full API mapping, the parallel-spawn pattern, and agents.max_depth configuration → reference/orchestration-patterns.md.

Reference Map

FileRead this when
reference/team-design-patterns.mdselecting team pattern, team size, subagent_type, or model
reference/file-ownership-protocol.mddeclaring ownership_map, validating overlap, or resolving ownership conflicts
reference/lifecycle-management.mdrunning the 7-phase lifecycle, handling teammate failures, or performing shutdown and deletion
reference/communication-patterns.mdsending DM or broadcast messages, enforcing report templates, or handling plan_approval_response
reference/integration-patterns.mdworking inside Nexus or Sherpa chains, preserving handoff formats, or deciding whether Nexus internal parallelism is enough
reference/agent-teams-api-reference.mdchecking exact tool parameters, API constraints, team-size limits, or display-mode notes
reference/parallel-learning.mdrunning HARMONIZE, calculating TES, adapting defaults, or executing rollback
reference/orchestration-patterns.mddeciding whether the task should be concurrent, sequential, specialist, or not Rally at all
reference/anti-patterns-failure-modes.mdchecking over-parallelization risk, nested-team hazards, prompt/context failures, or Maker-Checker limits
reference/resilience-cost-optimization.mdsetting retry or fallback behavior, degraded-mode handling, budget limits, or recovery strategy
_common/OPUS_5_AUTHORING.mdsizing the parallel plan, deciding adaptive thinking depth at fan-out/budget, or front-loading team size/independence/budget at PLAN. Critical for Rally: P3, P5.
_common/EVIDENCE_LADDER.mdunverified teammate output is accumulating faster than reconciliation can absorb it (§5 Verification Debt — signals, WIP cap, drain order), or deciding how independent a teammate's own verification claim is (§2 Circular Verification)

Operational

Spine contracts — in effect on every run, precedence in _common/OPERATIONAL.md § Contract Precedence: _common/VALUES.md · _common/BOUNDARIES.md · _common/HANDOFF.md · _common/AUTORUN.md · _common/GIT_GUIDELINES.md · _common/OUTPUT_STYLE.md · _common/OPUS_5_AUTHORING.md · _common/WORK_GATE.md.

  • Before starting (mandatory): read .agents/rally.md and .agents/PROJECT.md; create if missing.
  • After task completion (mandatory): append | YYYY-MM-DD | Rally | (action) | (files) | (outcome) | to .agents/PROJECT.md. Record key decisions (team size, pattern choice, ownership conflicts, reconciliation results).
  • As orchestrator: check that spawned workers record recovery- or learning-relevant activity before accepting _STEP_COMPLETE. When such state is clearly missing, ask the worker to complete it before the chain moves on, per _common/HANDOFF.mdPre-Handoff Journaling.
  • Journal: record domain insights in .agents/rally.md. Keep reusable team-design patterns, failure patterns, overrides, and TES-related learnings.
  • Standard protocols and Pre-Handoff Checklist: _common/OPERATIONAL.md

AUTORUN Support

Emit _STEP_COMPLETE using _common/AUTORUN.md § Default Completion Schema; no skill-specific extension is required.

Nexus Hub Mode

When input contains ## NEXUS_ROUTING, do not call other agents directly. Return all work via ## NEXUS_HANDOFF.

## NEXUS_HANDOFF

text
## NEXUS_HANDOFF
- Step: [X/Y]
- Agent: Rally
- Summary: [1-3 lines]
- Key findings / decisions:
  - [domain-specific items]
- Artifacts: [file paths or "none"]
- Risks: [identified risks]
- Suggested next agent: [AgentName] (reason)
- Next action: CONTINUE

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Rally AI skill do?

Orchestrating multi-session parallel execution via Claude Code Agent Teams API and Codex CLI Subagents — launch, manage, coordinate concurrent tasks. Use when parallel work is needed.

Why use Rally on TypingMind?

Because you install it once and use it with any model. Rally is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Rally in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/simota/agent-skills/tree/main/rally. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Rally?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Rally?

As many as you like. As long as a model supports skills, you can use Rally with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Rally AI skill free?

Yes. It is published on GitHub by simota under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇