cloud-devops-expert
Cloud and DevOps expert including AWS, GCP, Azure, and Terraform
llm-council
Orchestrate multi-LLM parallel debate and synthesis. Dispatches prompts to available omega CLI wrappers in parallel, collects independent responses, runs anonymized peer review ranking, and synthesizes via a chairman model. Supports collaboration templates, idle watchdog, inter-agent messaging, w...
Full skill instructions
Dispatch the user's prompt to all available omega CLIs in parallel:
# Check availability
node .claude/skills/omega-gemini-cli/scripts/verify-setup.mjs && HAS_GEMINI=1
node .claude/skills/omega-codex-cli/scripts/verify-setup.mjs && HAS_CODEX=1
node .claude/skills/omega-claude-cli/scripts/verify-setup.mjs && HAS_CLAUDE_CLI=1
node .claude/skills/omega-cursor-cli/scripts/verify-setup.mjs && HAS_CURSOR=1
# Parallel dispatch to available CLIs
TMPDIR=$(mktemp -d)
[ "$HAS_GEMINI" = "1" ] && node .claude/skills/omega-gemini-cli/scripts/ask-gemini.mjs "$PROMPT" --timeout-ms 120000 > "$TMPDIR/gemini.txt" 2>"$TMPDIR/gemini.err" &
[ "$HAS_CODEX" = "1" ] && node .claude/skills/omega-codex-cli/scripts/ask-codex.mjs "$PROMPT" --timeout-ms 120000 > "$TMPDIR/codex.txt" 2>"$TMPDIR/codex.err" &
[ "$HAS_CLAUDE_CLI" = "1" ] && node .claude/skills/omega-claude-cli/scripts/ask-claude.mjs "$PROMPT" --timeout-ms 120000 > "$TMPDIR/claude.txt" 2>"$TMPDIR/claude.err" &
[ "$HAS_CURSOR" = "1" ] && node .claude/skills/omega-cursor-cli/scripts/ask-cursor.mjs "$PROMPT" --yolo --trust --timeout-ms 120000 > "$TMPDIR/cursor.txt" 2>"$TMPDIR/cursor.err" &
wait
You are reviewing responses to this question: "$PROMPT"
Response A:
[content]
Response B:
[content]
Response C:
[content]
Evaluate each response for accuracy, completeness, and reasoning quality.
Then provide your FINAL RANKING (best to worst):
1. Response [X]
2. Response [Y]
3. Response [Z]
\d+\.\s*Response [A-Z]Send to chairman model (default: current Claude session or ask-claude.mjs):
You are the Chairman synthesizing a multi-model council discussion.
Original question: "$PROMPT"
Stage 1 Responses (with de-anonymized model names):
[Model]: [Response]
...
Stage 2 Peer Review Rankings:
Aggregate ranking: [best to worst with scores]
Synthesize the best insights from all responses into a single comprehensive answer.
Highlight areas of consensus and dissent. Provide the strongest possible answer.
Skill({ skill: 'llm-council' })
# Then in agent: run full council protocol above
# Stage 1 only -- parallel dispatch, collect responses, skip ranking
# Use when speed matters more than rigorous evaluation
| Anti-Pattern | Why Bad | Correct Approach |
|---|---|---|
| Dispatching to unavailable CLIs | Silent failure, missing responses | Run verify-setup.mjs first |
| Showing model names during peer review | Introduces identity bias | Use anonymous labels (Response A, B, C) |
| Using only 2 models for council | Peer review meaningless with 2 | Require minimum 3 for ranking value |
| Ignoring failed model responses | May miss degradation | Log failures, include in metadata |
| Running council for simple questions | Massive overhead for trivial queries | Reserve for high-stakes decisions |
| Code | Meaning |
|---|---|
| 0 | Council completed successfully (at least 2 models responded) |
| 1 | Council failed (fewer than 2 models available or all timed out) |
| Env Var | Default | Purpose |
|---|---|---|
LLM_COUNCIL_TIMEOUT_MS | 120000 | Per-model timeout for Stage 1 and Stage 2 |
LLM_COUNCIL_MIN_MODELS | 2 | Minimum models required for council to proceed |
LLM_COUNCIL_CHAIRMAN | (current session) | Chairman model for Stage 3 synthesis |
Templates constrain each model's focus during council sessions, producing higher-quality synthesis than sending the same generic prompt to all models. Without a --template flag, the council operates in its default mode (all models receive the same prompt).
| Field | Value |
|---|---|
| Agents | 2-3 (minimum 2) |
| Focus | Each agent reviews from their model's strengths (correctness, security, performance) |
| Synthesis | Chairman merges non-overlapping findings, deduplicates shared findings |
Roles:
roles:
- name: correctness-reviewer
focus: 'Review for logic errors, edge cases, off-by-one bugs, and correctness'
- name: performance-reviewer
focus: 'Review for performance bottlenecks, algorithmic complexity, and scalability'
- name: security-reviewer
focus: 'Review for security vulnerabilities, injection vectors, and data exposure'
synthesis_strategy: 'merge-by-category'
When to use: Code reviews, PR reviews, audit passes where multiple review dimensions matter.
| Field | Value |
|---|---|
| Agents | 2-4 (minimum 2) |
| Focus | Plan, execute, verify staged workflow with sequential handoff |
| Synthesis | Sequential -- architect output feeds implementer, verifier checks result |
Roles:
roles:
- name: architect
focus: 'Design the approach, define interfaces, data flow, and module boundaries'
- name: implementer
focus: "Write the implementation following the architect's design exactly"
- name: verifier
focus: 'Verify the implementation matches the design and passes acceptance criteria'
synthesis_strategy: 'sequential'
When to use: Feature implementation where design and coding benefit from separation of concerns.
| Field | Value |
|---|---|
| Agents | 2-3 (minimum 2) |
| Focus | Independent investigation of the same topic, then cross-compare findings |
| Synthesis | Side-by-side comparison matrix highlighting contradictions and agreements |
Roles:
roles:
- name: researcher-a
focus: 'Research the topic independently, cite sources, provide evidence-backed findings'
- name: researcher-b
focus: 'Research the same topic independently from a different angle, cite sources'
synthesis_strategy: 'compare-and-converge'
When to use: Technology evaluation, best-practice research, exploring solution spaces.
| Field | Value |
|---|---|
| Agents | 2-3 (minimum 2) |
| Focus | Each agent independently diagnoses the same bug and proposes a fix |
| Synthesis | Convergence analysis -- if 2+ agents agree on root cause, high confidence |
Roles:
roles:
- name: diagnostician-a
focus: 'Independently reproduce and diagnose the bug, propose root cause and fix'
- name: diagnostician-b
focus: 'Independently reproduce and diagnose the bug, propose root cause and fix'
synthesis_strategy: 'convergence'
When to use: Hard-to-diagnose bugs where independent analysis reduces bias.
# Invoke with template
Skill({ skill: 'llm-council', args: '--template review' })
Skill({ skill: 'llm-council', args: '--template implementation' })
Skill({ skill: 'llm-council', args: '--template research' })
Skill({ skill: 'llm-council', args: '--template debug' })
When a --template is specified:
synthesis_strategy to guide synthesis:
merge-by-category: Merge findings by review category, deduplicatesequential: Present outputs in role order, highlight handoff pointscompare-and-converge: Build side-by-side comparison matrixconvergence: Report agreement/disagreement on root cause, confidence scorePer-model idle monitoring with two-tier thresholds to detect hung or stalled models during council sessions.
| Tier | Threshold | Action |
|---|---|---|
| Idle Warning | 90 seconds of no output | Log warning, optionally send nudge prompt |
| Stall Timeout | 180 seconds of no output | Terminate model process, exclude from results |
watchdog:
idle_warning_seconds: 90
stall_timeout_seconds: 180
nudge_prompt: 'Please continue with your analysis.'
action_on_stall: 'exclude' # exclude | retry | fail
| Env Var | Default | Purpose |
|---|---|---|
LLM_COUNCIL_IDLE_WARNING_S | 90 | Seconds before idle warning |
LLM_COUNCIL_STALL_TIMEOUT_S | 180 | Seconds before stall auto-exclude |
During parallel dispatch, each backgrounded model process is monitored independently:
idle_warning_seconds, log a warningstall_timeout_seconds, kill the process and set stall_timeout: true in council metadata{
"watchdog": {
"gemini": { "status": "completed", "duration_s": 45 },
"codex": { "status": "stall_timeout", "duration_s": 180, "excluded": true },
"claude": { "status": "completed", "duration_s": 62 }
}
}
The watchdog is additive to the existing --timeout-ms global timeout. --timeout-ms remains the hard ceiling for the entire council session. The watchdog provides per-model granularity within that ceiling.
Optional JSONL message file protocol that enables council members to share partial outputs during deliberation.
By default, council models work in complete isolation during Stage 1. The message bus enables optional partial-output sharing, useful for long deliberations where early findings from one model can inform others.
Enable with --enable-messaging flag. Without this flag, no message directory is created and the council operates in default isolated mode.
Location: .claude/context/tmp/council-<session-id>/messages.jsonl
Message Schema:
{
"id": "msg-001",
"session_id": "council-2026-03-21-abc123",
"from": "gemini",
"to": "team",
"type": "partial_output",
"content": "Partial finding: JWT implementation has XSS risk in refresh flow",
"timestamp": "2026-03-21T10:30:00Z"
}
Message Types:
| Type | Purpose | When Sent |
|---|---|---|
partial_output | Share an intermediate finding or observation | During Stage 1, when a model has a partial result |
question | Ask the team a clarifying question | During Stage 1, when a model needs input |
agreement | Signal agreement with another model's finding | During Stage 2, after reading peer outputs |
disagreement | Signal disagreement with reasoning | During Stage 2, after reading peer outputs |
messages.jsonl during Stage 1 executionmessages.jsonl between Stage 1 and Stage 2 for informed reviewThe session directory (.claude/context/tmp/council-<session-id>/) is deleted after the council completes, including the messages file.
Optional per-agent git worktree isolation for council sessions where agents modify code.
Worktree isolation is relevant only for templates that modify code:
| Template | Worktree Applicable? | Reason |
|---|---|---|
| Review | No | Read-only analysis |
| Implementation | Yes | Agents write code that may conflict |
| Research | No | Read-only research |
| Debug | Yes | Agents may apply experimental fixes |
Enable with --use-worktrees flag. Only takes effect when combined with --template implementation or --template debug.
Create: For each participating agent, create a worktree:
git worktree add .claude/context/tmp/council-<session-id>/<agent-name> -b council/<session-id>/<agent-name>
Execute: Each agent operates within its isolated worktree directory. File modifications do not conflict across agents.
Merge: After council completes, the chairman reviews diffs from each worktree branch and merges non-conflicting changes back to the source branch.
Cleanup: Remove worktrees and branches:
git worktree remove .claude/context/tmp/council-<session-id>/<agent-name>
git branch -D council/<session-id>/<agent-name>
When worktrees have overlapping changes to the same files:
Worktree isolation follows existing agent-studio worktree safety rules. On Windows, ensure paths stay under the OS path length limit. Reference .claude/rules/ for worktree safety patterns.
Persistent session state that allows council deliberations to span multiple turns with user feedback between rounds.
By default, each council invocation is one-shot. Multi-turn sessions enable iterative refinement: the user reviews the synthesis, provides feedback, and the council continues deliberation with the additional context.
--multi-turn: Create a resumable session (generates a session ID)--resume SESSION_ID: Continue a previous session with new user inputLocation: .claude/context/tmp/council-<session-id>/session.json
Schema:
{
"session_id": "council-2026-03-21-abc123",
"status": "active",
"turn_count": 2,
"max_turns": 5,
"original_prompt": "Review this auth implementation",
"template": "review",
"models": ["gemini", "codex", "claude"],
"turns": [
{
"turn": 1,
"stage_1_responses": { "gemini": "...", "codex": "...", "claude": "..." },
"stage_2_rankings": { "aggregate": ["gemini", "claude", "codex"] },
"stage_3_synthesis": "...",
"user_feedback": "Focus more on the JWT refresh flow"
}
],
"created_at": "2026-03-21T10:00:00Z",
"last_active": "2026-03-21T10:15:00Z"
}
When --resume SESSION_ID is used:
Load session.json from the session directory
Verify session is not expired (24-hour TTL from last_active)
Include previous turns' synthesis and user feedback in the next Stage 1 prompt:
Previous council synthesis: [Stage 3 output from last turn]
User feedback: [feedback text]
Continue the analysis with this additional context.
Models receive full conversation history for context continuity
Increment turn_count and update last_active
| Env Var | Default | Purpose |
|---|---|---|
LLM_COUNCIL_MAX_TURNS | 5 | Maximum turns per session before forced closure |
Sessions older than 24 hours are considered expired. Attempting to --resume an expired session returns an error with the session's last synthesis as context.
Session directories are cleaned up when:
max_turns--resume after final turn)Cloud and DevOps expert including AWS, GCP, Azure, and Terraform
Spreadsheet toolkit (.xlsx/.csv). Create/edit with formulas/formatting, analyze data, visualization, recalculate formulas, for spreadsheet processing and analysis.
Automated brownfield codebase analysis with weighted keyword scoring, three-stream analysis, and design pattern recognition. Detects project type, frameworks, dependencies, architecture patterns, and generates comprehensive project profile.
Use when creating, updating, or generating README and documentation files for projects and libraries
Core skill for the deep research and writing tool. Write scientific manuscripts in full paragraphs (never bullet points). Use two-stage process with (1) section outlines with key points using research-lookup then (2) convert to flowing prose. IMRAD structure, citations (APA/AMA/Vancouver), figure...
Comprehensive Android development expert covering Jetpack Compose, Kotlin coroutines/Flow, Architecture Components, Hilt DI, Navigation, testing, performance, Material Design 3, and modern Android patterns (MVI, Clean Architecture).
Efficient database search tool for bioRxiv preprint server. Use this skill when searching for life sciences preprints by keywords, authors, date ranges, or categories, retrieving paper metadata, downloading PDFs, or conducting literature reviews.
Use when the user wants to use Google Gemini for analysis, large files or codebases, sandbox execution, or brainstorming. Uses headless Gemini CLI scripts (no MCP). Triggers on "use Gemini", "analyze with Gemini", "large file", "sandbox", "brainstorm with Gemini".
High-performance toolkit for genomic interval analysis in Rust with Python bindings. Use when working with genomic regions, BED files, coverage tracks, overlap detection, tokenization for ML models, or fragment analysis in computational genomics and machine learning applications.
Defines the structure and implementation of service classes, enforcing the use of interfaces, ServiceImpl classes, DTOs for data transfer, and transactional management.
Diffusion-based molecular docking. Predict protein-ligand binding poses from PDB/SMILES, confidence scores, virtual screening, for structure-based drug design. Not for affinity prediction.
How agents discover and use skills. Use to understand skill invocation protocol.
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience