Skip to content

nine-realms/asgard

v0.17.0

Odin agent ecosystem — adversarial code review agents for GitHub Copilot CLI

Asgard

Adversarial AI coding agents for GitHub Copilot CLI.

Asgard is a Copilot CLI plugin that brings an adversarial multi-model verification loop to your development workflow. Before code reaches you, it runs through a council of AI reviewers — each catching what the others miss.

Why Adversarial?

A single AI agent writes code, reviews its own work, and calls it done. Same blind spots every time. Asgard fixes this:

Single AgentAsgard Council
Reviews its own workUp to five independent reviewers from different model families
Claims tests pass without proofEvery check INSERT'd into a SQL ledger — evidence is a SELECT
Hallucinates "no regressions"Baseline snapshot before, same checks after — regressions are math
Plans and builds in one shotFrigg reviews the plan on a different model before a line is written

The Council

AgentRole
Odin (asgard:odin)Orchestrator. Runs the full verification loop: boost, survey, plan, implement, verify, present. Delegates plan review to Frigg and adversarial code review to Mimir on every code-change task, plus Tyr on Medium/Large (+ Heimdall/Thor/Loki for Large).
Frigg (asgard:frigg)Plan reviewer. Reviews implementation plans before coding begins — catches architectural blind spots, scope creep, and simpler alternatives. Always spawned on a different model family than Odin for cross-model diversity.
Tyr (asgard:tyr)Convention enforcer. Runs 10 structural checks — method length, nesting depth, naming, duplication, error handling, async correctness, and more. Every criticism includes a concrete fix.
Mimir (asgard:mimir)First-line reviewer on every code-change task. 3-pass review with 25 cross-cutting heuristics — tracing data flow, cache scope, idempotency, and boundary conditions that hide between files. Runs standalone on Small tasks, alongside Tyr on Medium/Large.

Heimdall, Thor, and Loki are also invoked by Odin on Large tasks — three different model families providing cross-model signal. Heimdall is the sentinel (baseline review), Thor is brute-force structural analysis, and Loki is the adversarial trickster hunting subtle edge cases.

Headless variants

AgentRole
Surtr (asgard:surtr) (experimental)Ultra-compact caveman-speak Odin. Same gates and ledger, ~38% fewer lines. Benchmarks whether terse imperatives match Odin's compliance at lower token cost.
Vidar (asgard:vidar)The silent god. Autonomous worker built to be dispatched by another agent, not used by a human. No user prompts ever — runs the gates, gets a Frigg plan review and a Mimir code review, decides what to fix on its own, then stops before commit and hands the work back uncommitted (usually in a git worktree). Frigg + Mimir only; no Tyr/Heimdall/Thor/Loki panel.

Skills Architecture

Odin's full instruction set is 700+ lines. Loading all of it every turn would bloat the context window. Instead, step-specific knowledge lives in skill files that load on demand:

SkillLoaded AtPurpose
Review PromptsStep 5c (Adversarial Review)Review templates, model selection matrix, reviewer launch configs
Evidence BundleStep 5e (Presentation)Evidence Bundle template, confidence definitions, formatting rules
RecallStep 1d (Recall)Session history queries, filtering rules for past task retrieval

Three skills is the practical ceiling — beyond that, remembering to invoke the right skill at the right step costs more than the token savings.

Install

Via the marketplace (recommended — gives you /plugin update notifications):

copilot plugin marketplace add nine-realms/asgard
copilot plugin install asgard@nine-realms

The form is <plugin>@<marketplace> — the asgard plugin, served from the nine-realms marketplace.

Direct install:

copilot plugin install nine-realms/asgard

Then pick your agent:

/agent   → pick odin

Uninstall

copilot plugin uninstall asgard                   # remove the plugin
copilot plugin marketplace remove nine-realms     # optionally remove the marketplace too

Configuration (Optional)

Odin works out of the box with no configuration. To customize behavior, add a ## Odin section to your repo's .github/copilot-instructions.md:

## Odin
- Don't save plan files
- Use branch prefix: feature/
- mimir-model: claude-opus-4.6

Setting mimir-model overrides Mimir's default model (gpt-5.4) when Odin spawns it in the review pipeline. Use claude-opus-4.6 for premium cross-boundary analysis, or any supported model ID.

Odin reads this file at the start of every task — no extra config files needed. Note: some behaviors are non-overridable (Frigg plan review, verification ledger, commit/push gates) even if repo instructions request otherwise.

By default, Odin saves task plans to .github/odin/plans/ in your repo. Repo instructions can opt out of this (see above), or to keep them out of version control:

.github/odin/plans/*.md

Requirements

Credits

Inspired by Anvil by Burke Holland.