Context-engineering-powered multi-agent workflow pack for Antigravity CLI.
Official Gemini Extensions command
gemini extensions install https://github.com/Joonghyun-Lee-Frieren/oh-my-antigravity
"Claude Code's core competitiveness isn't the Opus or Sonnet engine. It's Claude Code itself. Surprisingly, Gemini works well too when attached to Claude Code."
OmA started from this question: "What if we bring that harness model to Gemini CLI?"
OmA v0.9.1 introduces the durable multi-goal workflow (Ultragoal), providing repository-native tracking, checkpointing, and fail-closed safety for complex requirements.
| Area | Update |
|---|---|
| New command | /oma:ultragoal runs a durable multi-goal workflow, decomposing large requirements into sequential micro-goals. |
| New skill | $ultragoal manages the durable goal map, status tracking, and ledger log generation under .omg/ultragoal/. |
| Checkpointing | State is fail-closed, blocking downstream goals until the active micro-goal is completed with validation evidence. |
| Handoff | Generates structured handoff instructions using the --intent pin pattern for safe step-by-step execution. |
| Diagnostics | Updated /oma:doctor diagnostics to validate the $ultragoal skill metadata. |
| Release metadata | Package and extension metadata were bumped to v0.9.1. |
Default balanced split uses explicit preview model IDs: gemini-3.1-pro-preview, gemini-3-flash-preview, and gemini-3.1-flash-lite-preview, so OmA does not depend on Gemini CLI alias target drift.
Need one policy for every task? Run /oma:model auto. Want deterministic latest-preview routing? Keep the default explicit preview model map.
What OmA adds over a plain single-session run
| Work Need | Plain Session | OmA Extension |
|---|---|---|
| Large feature planning | Manual prompt decomposition | $plan / $oma-plan and oma-planner with phased output format |
| Parallel role execution | Single-thread thinking | /oma:team-assemble builds role lanes first, then /oma:team executes with explicit handoffs |
| Task-fit team composition | Manual role guessing each session | Domain specialists + format specialists are selected dynamically with approval gate |
| Parallel lane or worktree coordination | Implicit branch/path assumptions and repeated restarts | /oma:workspace keeps root/lane ownership explicit and /oma:workspace audit surfaces dirty or untrusted lanes before parallel execution |
| Consistency in decisions | High drift risk across long chats | Shared baseline from a thin GEMINI.md -> context/oma-core.md chain |
| Debug/review loop | Ad-hoc and easy to skip | Dedicated oma-reviewer + oma-debugger path |
| Command discoverability | No namespaced workflow surface | Stable /oma:* command namespace |
| Intent-stage mismatch prevention | Manual interpretation each turn | /oma:intent gate routes requests to the right stage |
| Long-session bootstrap | Ad-hoc codebase scanning | /oma:deep-init creates project map and validation baseline |
| Done criteria discipline | Premature completion risk | /oma:taskboard + /oma:team-verify keep stable task IDs, baseline anchors, and verifier-backed completion evidence |
| Prior-decision recall | Manual transcript scrolling and guesswork | /oma:recall retrieves prior rationale via state-first search with bounded fallback. |
| Informational sessions trigger noisy learn nudges | Manual filtering or turning off learning prompts entirely | oma-learn-signal-after-agent filters informational-only queries and prompts /oma:learn only when actionable implementation signals exist. |
| Deep interview gets interrupted by auto nudges | Manual pause of hooks during interview windows | oma-learn-signal-after-agent suppresses learn nudges automatically while .omg/state/deep-interview.json reports an active lock. |
| One global model policy across all tasks | Re-specify model intent repeatedly or accept lane-policy drift | /oma:model persists balanced|auto|custom strategy in .omg/state/model.json and keeps lane defaults explicit. |
| Task-specific guardrails | Global/static prompt policies | /oma:rules injects conditional rule packs per task |
| Durable memory management | Decisions spread across turns and easy to lose | /oma:memory keeps a compact MEMORY.md index plus topic/rule files |
| Status visibility control | Single fixed output density | /oma:hud profiles (normal, compact, hidden) adapt status readability |
| Approval policy posture | Ad-hoc confirmation behavior | /oma:approval manages suggest/auto/full-auto with risk guardrails |
| Preflight diagnostics | Manual setup checks | /oma:doctor provides readiness findings and prioritized remediation |
| Hook safety and trigger discipline | Manual event policing and ad-hoc checks | /oma:hooks + /oma:hooks-validate enforce deterministic lanes, safety policy, and trigger health checks |
| Long-run alerting | Manual monitoring or ad-hoc shell notifications | /oma:notify keeps approvals, blockers, verify failures, checkpoints, and idle drift observable with extension-native policy files |
| Usage and quota visibility | Manual /model or /stats model checks |
OmA intentionally delegates usage/quota visibility to Gemini CLI native commands instead of printing potentially unavailable hook-derived estimates |
| Startup/discovery weight | Broad mirrored command/skill surface plus disconnected shared context | Slash-command-first surface with 11 retained deep-work skills and a real root GEMINI.md entrypoint |
Assemble first, execute after approval.
| Step | Behavior |
|---|---|
| 1. Analyze task shape | Infer domain, output type, risk posture, and evidence depth. |
| 2. Build role lanes | Select domain specialists and format specialists separately. |
| 3. Assign models + reasoning | Map model profiles and teammate reasoning effort by lane risk. |
| 4. Ask approval | Pause and request explicit confirmation before autonomous team execution. |
| 5. Run lifecycle | Execute team-plan -> team-prd -> taskboard -> team-exec -> team-verify -> team-fix. |
Competitor analysis + executive report
| Lane | Agent(s) | Purpose |
|---|---|---|
| Orchestration | oma-director | Route messages, resolve conflicts, maintain acceptance focus. |
| Exploration | oma-researcher x3 | Parallel evidence collection across competitor segments. |
| Decision | oma-consultant | Define criteria and recommend strategic direction. |
| Editorial | oma-editor | Deliver concise executive-ready output. |
| Quality | oma-reviewer | Check consistency, unsupported claims, and missing evidence. |
Compact state anchors plus lane hygiene for parallel lanes and long verify/fix loops.
| Command | Role |
|---|---|
/oma:workspace | Track primary root, optional worktree/path lanes, collision boundaries, and lane health. |
/oma:taskboard | Track stable task IDs, owners, dependencies, baseline anchors, verifier-backed completion, and lane-health notes. |
/oma:recall | Recover prior rationale from compact state first, then widen to bounded recent history only when required. |
/oma:checkpoint | Resume from compact state references instead of replaying full chat history. |
/oma:cache | Audit whether compact state anchors are actually keeping cache prefixes stable. |
Extension-native hooks now focus on quiet model routing and learn-signal safety filtering. The quota-watch usage monitor was removed in v0.8.4.
| Artifact | Purpose |
|---|---|
hooks/hooks.json | Registers the quiet BeforeModel model router and the retained oma-learn-signal-after-agent hook |
hooks/scripts/before-model-banner.js | Silently maps outgoing model requests to the active OmA model strategy without printing a banner |
hooks/scripts/learn.js | Filters informational-only learning nudges, deduplicates retries, and sanitizes legacy state before emit |
.omg/state/learn-watch.json | Persists learn-signal dedupe key, prompt-once session tracking, and skip reason |
.omg/state/deep-interview.json | Lock-state input; when active, learn nudges are suppressed to protect interview flow |
Boundary: OmA no longer fetches or estimates usage from hooks. Use Gemini CLI native /model or /stats model for remaining quota/limits.
Only actionable learn-signal nudges are emitted after agent turns.
Disable the retained learn hook with hooksConfig.disabled = ["oma-learn-signal-after-agent"].
Primary control plane for status, notification routing, intent routing, workspace/task tracking, approval posture, and staged execution control.
Small retained deep-work skill set for discovery, planning, scoped execution, PRD drafting, research, and context cleanup.
Role-specialized behavior contracts across orchestration, analysis, implementation, quality, and final packaging.
| Type | Name | Primary Use |
|---|---|---|
| Command | /oma:status | Snapshot progress, risk, and next actions |
| Command | /oma:doctor | Diagnose extension/team/workspace/hook readiness, including priority and fallback-route drift |
| Command | /oma:hud | Switch status visibility profile (normal/compact/hidden) |
| Command | /oma:hud-on | Quick toggle to full HUD status view |
| Command | /oma:hud-compact | Quick toggle to compact HUD status view |
| Command | /oma:hud-off | Quick toggle to hidden HUD (plain status sections) |
| Command | /oma:hooks | Inspect/switch hook trigger profile, lanes, and safety policy |
| Command | /oma:hooks-init | Bootstrap hook policy files and plugin contract scaffolding |
| Command | /oma:hooks-validate | Validate trigger graph, lifecycle symmetry, ordering, and worker-session safety constraints |
| Command | /oma:hooks-test | Dry-run event sequences and estimate hook efficiency impact |
| Command | /oma:notify | Configure approvals/blockers/verify/checkpoint/idle notification routing |
| Command | /oma:intent | Classify request intent and route to the right stage |
| Command | /oma:workspace | Set primary root, worktree/path lane ownership, and audit lane health |
| Command | /oma:taskboard | Maintain compact task ledger with stable IDs, p0-p3 priority, deterministic next ordering, baseline anchors, and verify state |
| Command | /oma:recall | Recover prior decisions/evidence with state-first search and bounded history fallback |
| Command | /oma:team-assemble | Build a task-fit team roster, fallback map, and request execution approval |
| Command | /oma:deep-init | Build project map and validation baseline before long sessions |
| Command | /oma:blueprint | Define product/UI workflow decisions, interface states, content hierarchy, accessibility, and verification hooks |
| Command | /oma:rules | Activate task-conditional guardrail rule packs |
| Command | /oma:memory | Manage MEMORY.md index, topic notes, and rule packs |
| Command | /oma:reasoning | Set global/teammate reasoning effort profile for depth and cost control |
| Command | /oma:loop | Continue exec/verify/fix cycles until done or blocked |
| Command | /oma:model | Switch model-selection strategy (balanced/auto/custom) |
| Command | /oma:approval | Switch approval posture (suggest/auto/full-auto) |
| Command | /oma:goal | Run a goal-driven autonomous delivery loop until verified, blocked, or max cycles are reached |
| Command | /oma:ultragoal | Run a durable multi-goal workflow (Ultragoal) persisting checkpoints and progress in repository-native files |
| Command | /oma:team | Run full multi-agent lifecycle with optional assembled roster, deterministic queueing, and fallback rerouting |
| Command | /oma:cancel | Harness-style safe cancel alias with resume handoff |
| Command | /oma:optimize | Tune prompt/context quality and cost profile |
| Command | /oma:cache | Inspect cache/context behavior and compact-state anchoring |
| Skill | $plan | Milestone-level decomposition |
| Skill | $oma-plan | Slash-friendly planning alias that avoids native /plan collision |
| Skill | $execute | Implementation pass for a scoped slice |
| Skill | $prd | Measurable scope and acceptance-criteria drafting |
| Skill | $ralplan | Strict staged planning with rollback points |
| Skill | $research | Option comparison and tradeoff synthesis |
| Skill | $deep-dive | Trace-to-interview discovery with clarity score and launch brief |
| Skill | $ultragoal | Manage durable multi-goal workflows with repo-native checkpoints and ledger logs |
| Skill | $blueprint | Product/UI workflow map, interface decisions, state coverage, and verification hooks |
| Skill | $context-optimize | Signal-to-noise optimization in context |
| Skill | $learn | Reusable pattern extraction and learned-rule curation |
| Agent | Responsibility | Model Profile |
|---|---|---|
oma-architect | System boundaries and long-term design quality | gemini-3.1-pro-preview |
oma-planner | Task slicing, dependencies, execution order | gemini-3.1-pro-preview |
oma-product | Scope lock and measurable acceptance criteria | gemini-3.1-pro-preview |
oma-executor | Code-level implementation and incremental delivery | gemini-3-flash-preview |
oma-reviewer | Regression checks and correctness review | gemini-3.1-pro-preview |
oma-verifier | Acceptance-gate evidence checks and release readiness | gemini-3.1-pro-preview |
oma-debugger | Root cause analysis and fix strategy | gemini-3.1-pro-preview |
oma-consensus | Option convergence and decision scoring | gemini-3.1-pro-preview |
oma-researcher | Evidence gathering and decision support | gemini-3.1-pro-preview |
oma-director | Lane orchestration, conflict resolution, and handoff control | gemini-3.1-pro-preview |
oma-consultant | Decision criteria, strategic analysis, and recommendation framing | gemini-3.1-pro-preview |
oma-editor | Final deliverable structure and consistency packaging | gemini-3-flash-preview |
oma-quick | Small tactical edits | gemini-3.1-flash-lite-preview |
| Stage | Operator Command | Expected Output |
|---|---|---|
| Install | gemini extensions install https://github.com/Joonghyun-Lee-Frieren/oh-my-antigravity |
Extension registered as oh-my-antigravity |
| Validate | gemini extensions list or /extensions list |
Extension appears in active extension list |
| Refresh slash registry | /skills reload (newer builds) or restart Gemini CLI |
Slash-command inventory is refreshed after runtime or extension updates before deeper troubleshooting starts |
| Doctor preflight | /oma:doctor (or /oma:doctor team) |
Readiness findings with prioritized remediation before autonomy |
| Set operator posture | /oma:approval auto |
Explicit confirmation policy aligned to task risk |
| Set model policy | /oma:model auto (or /oma:model balanced|custom ...) |
Default lane model strategy pinned for the session/project, with explicit preview model IDs for deterministic routing |
| Set alert posture | /oma:notify profile watchdog |
Approval, blocker, verify-failure, checkpoint, and idle-watchdog alerts persisted to policy state |
| Check usage visibility | /model or /stats model |
Authoritative Gemini CLI runtime usage/quota status without OmA hook-derived estimates |
| Learn signal (automatic) | Built-in AfterAgent learn-signal hook |
/oma:learn nudge appears only for actionable sessions; informational-only turns and deep-interview lock windows are suppressed |
| Start workflow | /oma:deep-init <task> then /oma:intent <task> |
Project map + stage-routed handoff before coding |
| Lock product/UI decisions | /oma:blueprint <task> or $blueprint |
Workflow map, interface decisions, state coverage, accessibility constraints, and verification hooks before implementation |
| Set workspace lanes | /oma:workspace set ., /oma:workspace audit, and optionally /oma:workspace add <path> <owner> |
Explicit root/lane ownership plus lane hygiene before parallel implementation |
| Recall prior rationale | /oma:recall "<keyword>" scope=state (expand to scope=recent only if needed) |
Fast context recovery without replaying full transcript history |
| Assemble team | /oma:team-assemble <task> |
Role-fit roster proposal + approval gate before autonomous execution |
| Sync task ledger | /oma:taskboard sync |
Compact source of truth for ready, blocked, done, and verified tasks with null-safe default priority plus lane baseline anchors |
| Refresh memory | /oma:memory Sync index and active rules for current task |
Compact memory index + task-aware rule activation context |
| Bootstrap hooks | /oma:hooks-init then /oma:hooks profile balanced |
Deterministic hook lane policy persisted for the session |
| Validate hook graph | /oma:hooks-validate then /oma:hooks-test |
Safe-to-run decision, lifecycle symmetry check, and dry-run evidence before high-autonomy loops |
| Execute lifecycle | /oma:team Implement feature X with tests (approved roster) |
team-plan -> team-prd -> taskboard -> team-exec -> team-verify -> team-fix progression summary |
| Enforce completion loop | /oma:loop Continue unresolved verify backlog |
Explicit continue/done/blocked status with taskboard coverage and evidence |
| Observe state | /oma:status |
Current progress, blockers, and next actions |
| Tune visibility | /oma:hud compact or /oma:hud-off |
Status output density aligned to terminal/session style |
| Tune context | /oma:optimize or $context-optimize |
Cleaner context with lower drift, stable task anchors, and better cache reuse |
| Symptom | Likely Cause | Action |
|---|---|---|
settings.filter is not a function |
Outdated CLI runtime or stale extension cache | Update Gemini CLI, uninstall extension, reinstall via extensions command |
/oma:* not found |
Extension not loaded in current process | Run gemini extensions list and restart session |
| Workspace/sandbox behavior differs from docs | Gemini CLI runtime is older than the current OmA compatibility baseline | Upgrade Gemini CLI to stable v0.42.0+, then rerun /oma:doctor and /oma:workspace audit |
| Slash command list looks stale after an update | Interactive skill/command registry was not refreshed after runtime or extension changes | Run /skills reload on newer builds, or restart Gemini CLI if you are still on an older stable runtime |
/plan opens native plan mode when OmA planning skill was expected |
Built-in /plan and skill slash invocation names can collide in newer Gemini CLI versions |
Use /oma-plan (or $oma-plan) for OmA planning skill behavior, or /oma:team-plan for staged planning |
| You want Gemini Auto selection for every task | Balanced lane-specific policy is still active | Run /oma:model auto; if supported in your Gemini CLI build, also set runtime model mode (/model auto or --model auto). |
| You expected latest-preview routing but keep getting an older alias target | The runtime is resolving aliases differently than expected, or a stale custom model policy still uses aliases | Update OmA and re-run /oma:model balanced so the explicit preview model map is written again |
| Autonomous flow confirms too often or too little | Approval posture not aligned with risk profile | Run /oma:approval suggest|auto|full-auto and re-check policy |
| Review or automation is about to run on a dirty or untrusted lane | Shared worktree hygiene is unclear | Run /oma:workspace audit, isolate the lane if needed, and only then continue verify/review steps |
| Hooks seem to miss terminal events or fire twice after continuation | Hook lifecycle symmetry is not explicit | Run /oma:hooks-validate, then fix lifecycle policy before re-enabling autonomous loops |
| Usage or learn-hook messages appear twice | OmA hooks may be registered through both extension-managed and manual hook paths | Run /oma:hooks status and /oma:hooks-validate, then keep one authoritative OmA hook registration path per event |
| Hook output suddenly becomes quiet | Runtime hook controls were set in the current shell or session | Check OMG_HOOK_PROFILE and OMG_DISABLED_HOOKS before editing hook files or deleting OmA state |
| A retained skill suddenly stops loading cleanly | Skill metadata drifted or duplicated a skill name | Run npm run test:skills and fix malformed frontmatter, duplicate names, or folder/name mismatches before publishing |
| Output feels generic or repetitive | Reasoning posture and quality gate too weak for target artifact | Raise /oma:reasoning (optionally teammate overrides) and rerun /oma:team-verify |
| Team assembly keeps proposing but not executing | No explicit approval token after roster proposal | Reply with yes, approve, go, or run and re-run /oma:team-assemble |
| Done status keeps drifting after long loops | No compact task source of truth or missing verifier signoff | Run /oma:taskboard sync, then rerun /oma:team-verify to close remaining task IDs |
taskboard next keeps switching targets unexpectedly |
Missing task priority values or unstable queue ordering assumptions | Run /oma:taskboard sync (fills default p2) then /oma:taskboard rebalance |
| Execution is happening on the wrong branch or HEAD | Lane baseline drifted after planning, handoff, or resume | Run /oma:workspace audit, confirm the intended baseline anchor, then realign the lane or refresh /oma:team-plan before continuing |
| Setup health is unclear before a long run | State/config drift accumulated across sessions | Run /oma:doctor and apply remediation list |
| Skills not triggering | Skill files not loaded in active extension context | Confirm skills/*/SKILL.md files and reload CLI |
| Windows skill linking differs across machines | Gemini CLI builds in the last two weeks changed how Windows skill links are handled | Prefer stable v0.42.0+; if you track preview/nightly, verify skill-link behavior separately before publishing docs or support guidance |