oh-my-antigravity

Context-engineering-powered multi-agent workflow pack for Antigravity CLI.

Install

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."

- Jeongkyu Shin (CEO of Lablup Inc.), from a YouTube interview

OmA started from this question: "What if we bring that harness model to Gemini CLI?"

13
Sub-agents
11
Retained skills
45
Namespaced commands
5
Context layers

Latest Update (Ultragoal Workflow)

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.

Model Allocation

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.

Judgment & Acceptance Gates (gemini-3.1-pro-preview)60%
Implementation & Delivery (gemini-3-flash-preview)25%
Exploration & Quick Low-Risk Work (gemini-3.1-flash-lite-preview)15%

Need one policy for every task? Run /oma:model auto. Want deterministic latest-preview routing? Keep the default explicit preview model map.

Capability Matrix

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

Dynamic Team Assembly

Assemble first, execute after approval.

Step Behavior
1. Analyze task shapeInfer domain, output type, risk posture, and evidence depth.
2. Build role lanesSelect domain specialists and format specialists separately.
3. Assign models + reasoningMap model profiles and teammate reasoning effort by lane risk.
4. Ask approvalPause and request explicit confirmation before autonomous team execution.
5. Run lifecycleExecute team-plan -> team-prd -> taskboard -> team-exec -> team-verify -> team-fix.

Example Roster

Competitor analysis + executive report

Lane Agent(s) Purpose
Orchestrationoma-directorRoute messages, resolve conflicts, maintain acceptance focus.
Explorationoma-researcher x3Parallel evidence collection across competitor segments.
Decisionoma-consultantDefine criteria and recommend strategic direction.
Editorialoma-editorDeliver concise executive-ready output.
Qualityoma-reviewerCheck consistency, unsupported claims, and missing evidence.

Workspace Audit and Taskboard

Compact state anchors plus lane hygiene for parallel lanes and long verify/fix loops.

Command Role
/oma:workspaceTrack primary root, optional worktree/path lanes, collision boundaries, and lane health.
/oma:taskboardTrack stable task IDs, owners, dependencies, baseline anchors, verifier-backed completion, and lane-health notes.
/oma:recallRecover prior rationale from compact state first, then widen to bounded recent history only when required.
/oma:checkpointResume from compact state references instead of replaying full chat history.
/oma:cacheAudit whether compact state anchors are actually keeping cache prefixes stable.

Automatic Hook Monitors

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.jsonRegisters the quiet BeforeModel model router and the retained oma-learn-signal-after-agent hook
hooks/scripts/before-model-banner.jsSilently maps outgoing model requests to the active OmA model strategy without printing a banner
hooks/scripts/learn.jsFilters informational-only learning nudges, deduplicates retries, and sanitizes legacy state before emit
.omg/state/learn-watch.jsonPersists learn-signal dedupe key, prompt-once session tracking, and skip reason
.omg/state/deep-interview.jsonLock-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.

Retained Hook Output

Only actionable learn-signal nudges are emitted after agent turns.

Disable the retained learn hook with hooksConfig.disabled = ["oma-learn-signal-after-agent"].

Interface Catalog

Commands

Primary control plane for status, notification routing, intent routing, workspace/task tracking, approval posture, and staged execution control.

Skills

Small retained deep-work skill set for discovery, planning, scoped execution, PRD drafting, research, and context cleanup.

Sub-agents

Role-specialized behavior contracts across orchestration, analysis, implementation, quality, and final packaging.

Type Name Primary Use
Command/oma:statusSnapshot progress, risk, and next actions
Command/oma:doctorDiagnose extension/team/workspace/hook readiness, including priority and fallback-route drift
Command/oma:hudSwitch status visibility profile (normal/compact/hidden)
Command/oma:hud-onQuick toggle to full HUD status view
Command/oma:hud-compactQuick toggle to compact HUD status view
Command/oma:hud-offQuick toggle to hidden HUD (plain status sections)
Command/oma:hooksInspect/switch hook trigger profile, lanes, and safety policy
Command/oma:hooks-initBootstrap hook policy files and plugin contract scaffolding
Command/oma:hooks-validateValidate trigger graph, lifecycle symmetry, ordering, and worker-session safety constraints
Command/oma:hooks-testDry-run event sequences and estimate hook efficiency impact
Command/oma:notifyConfigure approvals/blockers/verify/checkpoint/idle notification routing
Command/oma:intentClassify request intent and route to the right stage
Command/oma:workspaceSet primary root, worktree/path lane ownership, and audit lane health
Command/oma:taskboardMaintain compact task ledger with stable IDs, p0-p3 priority, deterministic next ordering, baseline anchors, and verify state
Command/oma:recallRecover prior decisions/evidence with state-first search and bounded history fallback
Command/oma:team-assembleBuild a task-fit team roster, fallback map, and request execution approval
Command/oma:deep-initBuild project map and validation baseline before long sessions
Command/oma:blueprintDefine product/UI workflow decisions, interface states, content hierarchy, accessibility, and verification hooks
Command/oma:rulesActivate task-conditional guardrail rule packs
Command/oma:memoryManage MEMORY.md index, topic notes, and rule packs
Command/oma:reasoningSet global/teammate reasoning effort profile for depth and cost control
Command/oma:loopContinue exec/verify/fix cycles until done or blocked
Command/oma:modelSwitch model-selection strategy (balanced/auto/custom)
Command/oma:approvalSwitch approval posture (suggest/auto/full-auto)
Command/oma:goalRun a goal-driven autonomous delivery loop until verified, blocked, or max cycles are reached
Command/oma:ultragoalRun a durable multi-goal workflow (Ultragoal) persisting checkpoints and progress in repository-native files
Command/oma:teamRun full multi-agent lifecycle with optional assembled roster, deterministic queueing, and fallback rerouting
Command/oma:cancelHarness-style safe cancel alias with resume handoff
Command/oma:optimizeTune prompt/context quality and cost profile
Command/oma:cacheInspect cache/context behavior and compact-state anchoring
Skill$planMilestone-level decomposition
Skill$oma-planSlash-friendly planning alias that avoids native /plan collision
Skill$executeImplementation pass for a scoped slice
Skill$prdMeasurable scope and acceptance-criteria drafting
Skill$ralplanStrict staged planning with rollback points
Skill$researchOption comparison and tradeoff synthesis
Skill$deep-diveTrace-to-interview discovery with clarity score and launch brief
Skill$ultragoalManage durable multi-goal workflows with repo-native checkpoints and ledger logs
Skill$blueprintProduct/UI workflow map, interface decisions, state coverage, and verification hooks
Skill$context-optimizeSignal-to-noise optimization in context
Skill$learnReusable pattern extraction and learned-rule curation
Agent Responsibility Model Profile
oma-architectSystem boundaries and long-term design qualitygemini-3.1-pro-preview
oma-plannerTask slicing, dependencies, execution ordergemini-3.1-pro-preview
oma-productScope lock and measurable acceptance criteriagemini-3.1-pro-preview
oma-executorCode-level implementation and incremental deliverygemini-3-flash-preview
oma-reviewerRegression checks and correctness reviewgemini-3.1-pro-preview
oma-verifierAcceptance-gate evidence checks and release readinessgemini-3.1-pro-preview
oma-debuggerRoot cause analysis and fix strategygemini-3.1-pro-preview
oma-consensusOption convergence and decision scoringgemini-3.1-pro-preview
oma-researcherEvidence gathering and decision supportgemini-3.1-pro-preview
oma-directorLane orchestration, conflict resolution, and handoff controlgemini-3.1-pro-preview
oma-consultantDecision criteria, strategic analysis, and recommendation framinggemini-3.1-pro-preview
oma-editorFinal deliverable structure and consistency packaginggemini-3-flash-preview
oma-quickSmall tactical editsgemini-3.1-flash-lite-preview

Operational Runbook

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

Troubleshooting Matrix

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