investigate
The `investigate` skill delegates read-only tasks such as debugging, auditing, code understanding, and architecture analysis to specialized sub-agents while maintaining an orchestrator role that synthesizes only their structured reports. Use it when you need to decompose complex repository questions into bounded investigation tasks, dispatch them to appropriate workers with specific evidence requests, and aggregate findings without directly inspecting files or logs yourself.
git clone --depth 1 https://github.com/omnigent-ai/omnigent /tmp/investigate && cp -r /tmp/investigate/examples/polly/skills/investigate ~/.claude/skills/investigateSKILL.md
# investigate — delegated read-only work
Use for any read-only task: investigation, debugging, audit, search, code
understanding, architecture comparison, failure analysis, or answering a
repository-specific technical question.
## Procedure
1. Decompose the question into one or more bounded investigation tasks. Prefer
two independent lenses for ambiguous or high-stakes questions.
2. Dispatch each task to `claude_code`, `codex`, or `pi`:
`sys_session_send(agent="claude_code"|"codex"|"pi",
title="explore-<task_slug>", args={purpose: "explore", input: "<question +
exact scope + evidence requested>"})`. Use a task-based title such as
`explore-ci-flake`, never the raw vendor name. Use `purpose: "search"` only
when the task is primarily external/document search. Prefer `pi` when a
third lens or a non-Claude/GPT model is wanted. Any worker takes an optional
`args.model` (`sys_list_models` shows what each worker can run; an invalid
model/worker combination fails loud at dispatch, and `model` only applies on
the dispatch that CREATES the session — a send that continues an existing
title rejects it).
Tell the worker to edit nothing and return file,
command, URL, or line evidence. Emit these `sys_session_send` calls in the
SAME turn — do not end a turn having only said you will dispatch.
3. End your turn AFTER the dispatch tool calls are in flight (never before).
Do not inspect files, logs, terminals, docs, or connector output yourself
while the workers run.
4. When workers finish, collect their completion results with
`sys_read_inbox`. Synthesize only from those inbox-delivered reports. Use
`sys_session_get_history` only to debug an empty or unclear worker result; if
reports conflict or are incomplete, dispatch a follow-up `explore` task
rather than resolving the conflict from your own direct inspection.
5. If the investigation uncovers required code changes, switch to `fanout` /
`cross-review`: dispatch an `implement` worker, then verify with the
opposite-vendor `review` worker.
## Notes
- The orchestrator may use its own tools only to create task packets, maintain
the registry, or check deterministic external status. It must not answer the
user's substantive question from its own direct file reads, shell output,
connector fetches, or terminal scrollback.
- Keep task scopes narrow enough that each worker can return a concise report
with evidence. Broad investigations should be split into parallel subtasks.Spin up a live local Omnigent server and exercise the Antigravity (Gemini) SDK harness end-to-end — build antigravity agents, run real turns, smoke-test, and bug-bash. Load when developing, testing, or debugging the antigravity harness (omnigent/inner/antigravity_executor.py, antigravity_harness.py, omnigent/onboarding/antigravity_auth.py) or its auth / model / tool-bridge behavior.
Spin up a live local Omnigent server and exercise the Cursor SDK harness end-to-end — build cursor agents, run real turns, smoke-test, and bug-bash. Load when developing, testing, or debugging the cursor harness (omnigent/inner/cursor_executor.py, cursor_harness.py, cursor_auth.py) or its auth / model / tool-bridge behavior.
Run the Omnigent server as a Docker compose stack (server + Postgres) on any Docker host — your laptop, a VPS, EC2 by hand, or as the base layer of any container-platform deploy. Invoke when the user wants to build the image, bring up the compose stack, debug the stack on a host they already have, or extend the stack for a new platform.
Have the Claude and GPT partners critique each other's answers across a configurable number of rounds (default 1) before converging on a synthesis. Use when the user wants the two perspectives stress-tested against each other, not just shown side by side.
Verify an implementer's diff with an INDEPENDENT, different-vendor sub-agent (diff plus contract only); turn blocking issues into fix-tasks and loop until clean.
Run independent subtasks in parallel — one git worktree and one implementation sub-agent per task, each opening its own PR — then cross-review every PR. polly never merges; the human does.
Patterns and templates for generating valid Omnigent agent directories. Load when ready to create files.
Detect Python agent frameworks from code imports and map them to Omnigent executor types. Load when the user has existing agent code to integrate.