Not in the top 1,000 by GitHub stars

antonbabenko/deliberation

Ask Codex, Gemini, Grok, and 400+ OpenRouter models (Qwen, Kimi, DeepSeek) for second opinions or arbiter-mediated consensus. One MCP server for Claude Code, Codex, Cursor, Kiro, OpenCode. Measures the models' usefulness, too.

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

.gemini/skills/architect/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

.gemini/skills/code-reviewer/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

.gemini/skills/debugger/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

.gemini/skills/deliberation/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

.gemini/skills/plan-reviewer/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

.gemini/skills/reload-mcp/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

.gemini/skills/researcher/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

.gemini/skills/scope-analyst/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

.gemini/skills/security-analyst/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

.gemini/skills/writing-editor/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

plugins/deliberation/skills/architect/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

plugins/deliberation/skills/code-reviewer/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

plugins/deliberation/skills/debugger/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

plugins/deliberation/skills/deliberation/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

plugins/deliberation/skills/plan-reviewer/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

plugins/deliberation/skills/reload-mcp/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

plugins/deliberation/skills/researcher/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

plugins/deliberation/skills/scope-analyst/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

plugins/deliberation/skills/security-analyst/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

plugins/deliberation/skills/writing-editor/SKILL.md

Week of Nov 2, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 687bfe4d47cd

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 687bfe4d47cd2322940443ee92390d2b46de43b0

git clone --filter=blob:none --no-checkout https://github.com/antonbabenko/deliberation.git .hotskills/antonbabenko-deliberation && git -C .hotskills/antonbabenko-deliberation checkout --detach 687bfe4d47cd2322940443ee92390d2b46de43b0 # Copy each selected skill directory from .hotskills/antonbabenko-deliberation into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/antonbabenko/deliberation.git .hotskills/antonbabenko-deliberation && git -C .hotskills/antonbabenko-deliberation checkout --detach 687bfe4d47cd2322940443ee92390d2b46de43b0 # Copy each selected skill directory from .hotskills/antonbabenko-deliberation into .agents/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/antonbabenko/deliberation.git .hotskills/antonbabenko-deliberation && git -C .hotskills/antonbabenko-deliberation checkout --detach 687bfe4d47cd2322940443ee92390d2b46de43b0 # Copy each selected skill directory from .hotskills/antonbabenko-deliberation into .cursor/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/antonbabenko/deliberation.git .hotskills/antonbabenko-deliberation && git -C .hotskills/antonbabenko-deliberation checkout --detach 687bfe4d47cd2322940443ee92390d2b46de43b0 # Copy each selected skill directory from .hotskills/antonbabenko-deliberation into .gemini/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/antonbabenko/deliberation.git .hotskills/antonbabenko-deliberation && git -C .hotskills/antonbabenko-deliberation checkout --detach 687bfe4d47cd2322940443ee92390d2b46de43b0 # Copy each selected skill directory from .hotskills/antonbabenko-deliberation into .opencode/skills/<skill-name>/
181GitHub stars
3stars in 7 days
20skills in this repository
32commits in 30 days

Heat

4.2
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 3, 2026181

30-day change not yet available: not enough history.

Individual skills in this repository

How it works

architect

When your agent uses it

System design, tradeoffs, and complex technical decisions.

What it loads into context

Frontmatter

19 tokens

Always available to the agent

SKILL.md

1,165 tokens

When the skill is activated

Reference documents

0 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. Context
  2. What You Do
  3. Modes of Operation
  4. Decision Framework
  5. Response Format
  6. Scope Discipline
  7. Uncertainty
  8. High-Risk Self-Check
  9. When to Invoke Architect
  10. When NOT to Invoke Architect

Scripts executed separately

  • ../../../scripts/sync-hosts.js
  • ../../../server/gemini/index.js
  • ../../../server/grok/index.js
  • ../../../server/mcp/index.js
  • ../../../server/openrouter/index.js

Files

  • ../../../.claude-plugin/marketplace.jsonasset1,335 bytes
  • ../../../.claude-plugin/plugin.jsonasset1,866 bytes
  • SKILL.mdcore5,650 bytes
  • SKILL.mdcore5,650 bytes
  • ../../../scripts/sync-hosts.jsruns5,764 bytes
  • ../../../server/gemini/index.jsruns50,108 bytes
  • ../../../server/grok/index.jsruns64,158 bytes
  • ../../../server/mcp/index.jsruns131,046 bytes
  • ../../../server/openrouter/index.jsruns27,271 bytes
Read SKILL.md
<!-- GENERATED by scripts/sync-hosts.js - edit the source under prompts/, docs/tool-guide.md, or examples/, then regenerate. -->

# Architect

You are a software architect specializing in system design, technical strategy, and complex decision-making.

## Context

You operate as an on-demand specialist within an AI-assisted development environment. You are invoked when a decision needs deep reasoning about architecture, tradeoffs, or system design. Each consultation is standalone: treat every request as complete and self-contained. Your available tools vary by where you run: some environments give you filesystem, repo, or shell access; others give you only the context in the request. Adapt to what you actually have - use tools when present, and when they are absent reason only from what was given. Never fabricate file paths, signatures, or repo details you have not actually seen.

## What You Do

- Analyze system architecture and design patterns
- Evaluate tradeoffs between competing approaches
- Design scalable, maintainable solutions
View the complete source on GitHub

Skills included

  • architect
  • code-reviewer
  • debugger
  • deliberation
  • plan-reviewer
  • reload-mcp
  • researcher
  • scope-analyst
  • security-analyst
  • writing-editor
  • architect
  • code-reviewer
  • debugger
  • deliberation
  • plan-reviewer
  • reload-mcp
  • researcher
  • scope-analyst
  • security-analyst
  • writing-editor

Repository facts

License
MIT
Created
May 13, 2026
Last pushed
Nov 4, 2026
Forks
12
Open issues
1
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 52 notes
  • .gemini/skills/architect/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • .gemini/skills/code-reviewer/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • .gemini/skills/debugger/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • .gemini/skills/deliberation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • .gemini/skills/deliberation/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • core/prompts/index.js:7 Analysis incomplete: physical or joined line exceeds character limit
  • core/prompts/index.js:6 Analysis incomplete: physical or joined line exceeds character limit
  • core/prompts/index.js:9 Analysis incomplete: physical or joined line exceeds character limit
  • core/prompts/index.js:8 Analysis incomplete: physical or joined line exceeds character limit
  • core/prompts/index.js:11 [Credential-related source omitted]
  • core/prompts/index.js:10 Analysis incomplete: physical or joined line exceeds character limit
  • core/prompts/index.js:14 Analysis incomplete: physical or joined line exceeds character limit
  • core/prompts/index.js:12 Analysis incomplete: physical or joined line exceeds character limit
  • core/prompts/index.js:13 Analysis incomplete: physical or joined line exceeds character limit
  • server/mcp/index.js:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • server/mcp/index.js:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • server/mcp/index.js:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • server/mcp/index.js:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • .gemini/skills/plan-reviewer/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • .gemini/skills/reload-mcp/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
Show all 314 signals by file

.claude-plugin/marketplace.json

  • Network accessline 3
    "owner": {     "name": "Anton Babenko",     "url": "https://github.com/antonbabenko"
  • Network accessline 4
    "name": "Anton Babenko",     "url": "https://github.com/antonbabenko"   },
  • Network accessline 5
    "url": "https://github.com/antonbabenko"
  • Network accessline 13
    "author": {         "name": "Anton Babenko",         "url": "https://github.com/antonbabenko"
  • Network accessline 14
    "name": "Anton Babenko",         "url": "https://github.com/antonbabenko"       },
  • Network accessline 15
    "url": "https://github.com/antonbabenko"
  • Network accessline 16
    },       "homepage": "https://github.com/antonbabenko/deliberation",       "repository": "https://github.com/antonbabenko/deliberation",
  • Network accessline 17
    "homepage": "https://github.com/antonbabenko/deliberation",
  • Network accessline 18
    "repository": "https://github.com/antonbabenko/deliberation",

.claude-plugin/plugin.json

  • Network accessline 5
    "author": {     "name": "Anton Babenko",     "url": "https://github.com/antonbabenko"
  • Network accessline 6
    "name": "Anton Babenko",     "url": "https://github.com/antonbabenko"   },
  • Network accessline 7
    "url": "https://github.com/antonbabenko"
  • Network accessline 8
    },   "homepage": "https://github.com/antonbabenko/deliberation",   "repository": "https://github.com/antonbabenko/deliberation",
  • Network accessline 9
    "homepage": "https://github.com/antonbabenko/deliberation",
  • Network accessline 10
    "repository": "https://github.com/antonbabenko/deliberation",

.gemini/skills/deliberation/SKILL.md

  • Network accessline 167
    run to `<XDG cache>/deliberation/runs/` (override with `DELIBERATION_RUNS`), then run   `deliberation-mcp dashboard` (or `node server/mcp/index.js dashboard` from a checkout) and   open the printed `http://127.0.0.1:<port>/?t=<token>` URL. 
  • Network accessline 168
    `deliberation-mcp dashboard` (or `node server/mcp/index.js dashboard` from a checkout) and   open the printed `http://127.0.0.1:<port>/?t=<token>` URL. It is a read-only browser view   of live and past runs as state graphs, with config, pro
  • Network accessline 169
    open the printed `http://127.0.0.1:<port>/?t=<token>` URL. It is a read-only browser view
  • Dangerous shell operationline 230
    (`rm -rf ~/.npm/_npx`) or pin/refresh the version in your host's MCP config.

core/analyze.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Network accessline 56
    const COMPARE_BASE = "https://openrouter.ai/compare";
  • Network accessline 56
    const COMPARE_BASE = "https://openrouter.ai/compare";

core/config-analysis.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/config-history.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/consensus-loop.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/debug-log.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/display.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/fanout-groups.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/host-budget.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/journal.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/loop-store.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/orchestrate.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/orientation.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/paths.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/project.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/prompts/index.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/provider.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Network accessline 127
    * a slow-but-alive provider was billed for a second full wait before failing anyway.  * @param {string} label  provider name for the message ("Grok", "OpenRouter")  * @param {any} err  the rejection from fetch()
  • Network accessline 127
    * a slow-but-alive provider was billed for a second full wait before failing anyway.  * @param {string} label  provider name for the message ("Grok", "OpenRouter")  * @param {any} err  the rejection from fetch()
  • Network accessline 128
    * @param {string} label  provider name for the message ("Grok", "OpenRouter")  * @param {any} err  the rejection from fetch()  * @param {number} timeoutMs  the bridge's own ceiling, for the abort message
  • Network accessline 128
    * @param {string} label  provider name for the message ("Grok", "OpenRouter")  * @param {any} err  the rejection from fetch()  * @param {number} timeoutMs  the bridge's own ceiling, for the abort message
  • Network accessline 129
    * @param {any} err  the rejection from fetch()
  • Network accessline 129
    * @param {any} err  the rejection from fetch()

core/providers/antigravity.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Instruction override signalline 49
    // Two-lock gate: write only when constructed write-capable AND this call explicitly asks.       // Anything else stays advisory (read-only). buildAgyArgs maps sandbox:"workspace-write" ->       // --dangerously-skip-permissions, else --san
  • Instruction override signalline 49
    // Two-lock gate: write only when constructed write-capable AND this call explicitly asks.       // Anything else stays advisory (read-only). buildAgyArgs maps sandbox:"workspace-write" ->       // --dangerously-skip-permissions, else --san
  • Instruction override signalline 50
    // Anything else stays advisory (read-only). buildAgyArgs maps sandbox:"workspace-write" ->       // --dangerously-skip-permissions, else --sandbox; runGemini's readOnly is the explicit       // caller decision (never argv-inferred) and eng
  • Instruction override signalline 50
    // Anything else stays advisory (read-only). buildAgyArgs maps sandbox:"workspace-write" ->       // --dangerously-skip-permissions, else --sandbox; runGemini's readOnly is the explicit       // caller decision (never argv-inferred) and eng
  • Instruction override signalline 51
    // --dangerously-skip-permissions, else --sandbox; runGemini's readOnly is the explicit
  • Instruction override signalline 51
    // --dangerously-skip-permissions, else --sandbox; runGemini's readOnly is the explicit

core/providers/codex.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 37
    [Credential-related source omitted]
  • Access to secretsline 186
    [Credential-related source omitted]
  • Access to secretsline 186
    [Credential-related source omitted]
  • Access to secretsline 187
    [Credential-related source omitted]
  • Access to secretsline 187
    [Credential-related source omitted]
  • Access to secretsline 188
    [Credential-related source omitted]
  • Access to secretsline 188
    [Credential-related source omitted]
  • Access to secretsline 189
    [Credential-related source omitted]
  • Access to secretsline 189
    [Credential-related source omitted]
  • Access to secretsline 199
    [Credential-related source omitted]
  • Access to secretsline 199
    [Credential-related source omitted]
  • Access to secretsline 200
    [Credential-related source omitted]
  • Access to secretsline 200
    [Credential-related source omitted]
  • Access to secretsline 205
    [Credential-related source omitted]
  • Access to secretsline 205
    [Credential-related source omitted]
  • Access to secretsline 206
    [Credential-related source omitted]
  • Access to secretsline 206
    [Credential-related source omitted]
  • Access to secretsline 207
    [Credential-related source omitted]
  • Access to secretsline 207
    [Credential-related source omitted]
  • Access to secretsline 216
    [Credential-related source omitted]
  • Access to secretsline 216
    [Credential-related source omitted]
  • Access to secretsline 237
    [Credential-related source omitted]
  • Access to secretsline 237
    [Credential-related source omitted]

core/providers/grok.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Network accessline 20
    if (!bridge) throw new Error("makeGrokProvider requires opts.bridge (core is transport-agnostic; inject the grok bridge)");   const model = opts.model || process.env.GROK_DEFAULT_MODEL || "grok-4.6";   const apiBase = opts.apiBase || proces
  • Network accessline 20
    if (!bridge) throw new Error("makeGrokProvider requires opts.bridge (core is transport-agnostic; inject the grok bridge)");   const model = opts.model || process.env.GROK_DEFAULT_MODEL || "grok-4.6";   const apiBase = opts.apiBase || proces
  • Network accessline 22
    const apiBase = opts.apiBase || process.env.XAI_API_BASE || "https://api.x.ai/v1";
  • Network accessline 22
    const apiBase = opts.apiBase || process.env.XAI_API_BASE || "https://api.x.ai/v1";
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 33
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]
  • Access to secretsline 44
    [Credential-related source omitted]

core/providers/openai-compatible.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/registry.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/result-cache.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/sessions.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Access to secretsline 152
    [Credential-related source omitted]
  • Access to secretsline 152
    [Credential-related source omitted]
  • Access to secretsline 163
    [Credential-related source omitted]
  • Access to secretsline 163
    [Credential-related source omitted]

core/settings.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/signals.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

core/types.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

plugins/deliberation/skills/deliberation/SKILL.md

  • Network accessline 167
    run to `<XDG cache>/deliberation/runs/` (override with `DELIBERATION_RUNS`), then run   `deliberation-mcp dashboard` (or `node server/mcp/index.js dashboard` from a checkout) and   open the printed `http://127.0.0.1:<port>/?t=<token>` URL. 
  • Network accessline 168
    `deliberation-mcp dashboard` (or `node server/mcp/index.js dashboard` from a checkout) and   open the printed `http://127.0.0.1:<port>/?t=<token>` URL. It is a read-only browser view   of live and past runs as state graphs, with config, pro
  • Network accessline 169
    open the printed `http://127.0.0.1:<port>/?t=<token>` URL. It is a read-only browser view
  • Dangerous shell operationline 230
    (`rm -rf ~/.npm/_npx`) or pin/refresh the version in your host's MCP config.

scripts/commands/reload-mcp.sh

  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Executable scriptline 1
    #!/usr/bin/env bash
  • Dangerous shell operationline 267
    find "$HOME/.npm/_npx" -type d -path '*/@antonbabenko/deliberation-mcp' -prune -exec rm -rf {} + 2>/dev/null || true
  • Dangerous shell operationline 267
    find "$HOME/.npm/_npx" -type d -path '*/@antonbabenko/deliberation-mcp' -prune -exec rm -rf {} + 2>/dev/null || true
  • Dangerous shell operationline 267
    find "$HOME/.npm/_npx" -type d -path '*/@antonbabenko/deliberation-mcp' -prune -exec rm -rf {} + 2>/dev/null || true
  • Dangerous shell operationline 267
    find "$HOME/.npm/_npx" -type d -path '*/@antonbabenko/deliberation-mcp' -prune -exec rm -rf {} + 2>/dev/null || true
  • Dangerous shell operationline 339
    rm -f "$DASH_STATE_PATH" 2>/dev/null || true
  • Dangerous shell operationline 339
    rm -f "$DASH_STATE_PATH" 2>/dev/null || true
  • Dangerous shell operationline 339
    rm -f "$DASH_STATE_PATH" 2>/dev/null || true
  • Dangerous shell operationline 339
    rm -f "$DASH_STATE_PATH" 2>/dev/null || true

scripts/sync-hosts.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node

server/dashboard/index.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Network accessline 70
    const urlLine = (port, token) => `Deliberation dashboard: http://127.0.0.1:${port}/?t=${token}\n`;
  • Network accessline 70
    const urlLine = (port, token) => `Deliberation dashboard: http://127.0.0.1:${port}/?t=${token}\n`;
  • Network accessline 298
    const url = `http://127.0.0.1:${bound}/?t=${token}`;
  • Network accessline 298
    const url = `http://127.0.0.1:${bound}/?t=${token}`;

server/dashboard/runs.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file

server/gemini/index.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Instruction override signalline 185
    const readOnly = req.sandbox !== "workspace-write";   if (req.sandbox === "workspace-write") args.push("--dangerously-skip-permissions");
  • Instruction override signalline 185
    const readOnly = req.sandbox !== "workspace-write";   if (req.sandbox === "workspace-write") args.push("--dangerously-skip-permissions");
  • Instruction override signalline 185
    const readOnly = req.sandbox !== "workspace-write";   if (req.sandbox === "workspace-write") args.push("--dangerously-skip-permissions");
  • Instruction override signalline 186
    if (req.sandbox === "workspace-write") args.push("--dangerously-skip-permissions");
  • Instruction override signalline 186
    if (req.sandbox === "workspace-write") args.push("--dangerously-skip-permissions");
  • Instruction override signalline 186
    if (req.sandbox === "workspace-write") args.push("--dangerously-skip-permissions");
  • Access to secretsline 221
    [Credential-related source omitted]
  • Access to secretsline 221
    [Credential-related source omitted]
  • Access to secretsline 221
    [Credential-related source omitted]
  • Dangerous shell operationline 545
    process.stderr.write("[deliberation] agy read-only run wrapped in sandbox-exec (workspace writes denied)\n");
  • Dangerous shell operationline 545
    process.stderr.write("[deliberation] agy read-only run wrapped in sandbox-exec (workspace writes denied)\n");
  • Dangerous shell operationline 545
    process.stderr.write("[deliberation] agy read-only run wrapped in sandbox-exec (workspace writes denied)\n");
  • Network accessline 624
    settled = true;       if (err.code === "ENOENT") {         reject(new Error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in."));
  • Network accessline 624
    settled = true;       if (err.code === "ENOENT") {         reject(new Error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in."));
  • Network accessline 624
    settled = true;       if (err.code === "ENOENT") {         reject(new Error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in."));
  • Network accessline 625
    if (err.code === "ENOENT") {         reject(new Error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in."));       } else {
  • Network accessline 625
    if (err.code === "ENOENT") {         reject(new Error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in."));       } else {
  • Network accessline 625
    if (err.code === "ENOENT") {         reject(new Error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in."));       } else {
  • Network accessline 626
    reject(new Error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in."));
  • Network accessline 626
    reject(new Error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in."));
  • Network accessline 626
    reject(new Error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in."));
  • Instruction override signalline 889
    const sandboxFlags = [];       if (args.sandbox === "workspace-write") sandboxFlags.push("--dangerously-skip-permissions");
  • Instruction override signalline 889
    const sandboxFlags = [];       if (args.sandbox === "workspace-write") sandboxFlags.push("--dangerously-skip-permissions");
  • Instruction override signalline 889
    const sandboxFlags = [];       if (args.sandbox === "workspace-write") sandboxFlags.push("--dangerously-skip-permissions");
  • Instruction override signalline 890
    if (args.sandbox === "workspace-write") sandboxFlags.push("--dangerously-skip-permissions");
  • Instruction override signalline 890
    if (args.sandbox === "workspace-write") sandboxFlags.push("--dangerously-skip-permissions");
  • Instruction override signalline 890
    if (args.sandbox === "workspace-write") sandboxFlags.push("--dangerously-skip-permissions");
  • Network accessline 1044
    execFileSync(AGY_CMD, [...AGY_PREFIX_ARGS, "--help"], { stdio: "ignore" });   } catch (e) {     console.error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in.");
  • Network accessline 1044
    execFileSync(AGY_CMD, [...AGY_PREFIX_ARGS, "--help"], { stdio: "ignore" });   } catch (e) {     console.error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in.");
  • Network accessline 1044
    execFileSync(AGY_CMD, [...AGY_PREFIX_ARGS, "--help"], { stdio: "ignore" });   } catch (e) {     console.error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in.");
  • Network accessline 1045
    } catch (e) {     console.error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in.");     process.exit(1);
  • Network accessline 1045
    } catch (e) {     console.error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in.");     process.exit(1);
  • Network accessline 1045
    } catch (e) {     console.error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in.");     process.exit(1);
  • Network accessline 1046
    console.error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in.");
  • Network accessline 1046
    console.error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in.");
  • Network accessline 1046
    console.error("Antigravity CLI (agy) not found. Install from https://antigravity.google and run `agy` once to sign in.");

server/grok/index.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 26
    [Credential-related source omitted]
  • Network accessline 26
    [Credential-related source omitted]
  • Network accessline 26
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Access to secretsline 26
    [Credential-related source omitted]
  • Network accessline 27
    * > GROK_DEFAULT_MODEL (env) > grok-4.6.  * Endpoint: XAI_API_BASE (env) or https://api.x.ai/v1.  * File TTL: GROK_FILE_TTL_SECONDS (env) or 604800 (7 days).
  • Network accessline 27
    * > GROK_DEFAULT_MODEL (env) > grok-4.6.  * Endpoint: XAI_API_BASE (env) or https://api.x.ai/v1.  * File TTL: GROK_FILE_TTL_SECONDS (env) or 604800 (7 days).
  • Network accessline 27
    * > GROK_DEFAULT_MODEL (env) > grok-4.6.  * Endpoint: XAI_API_BASE (env) or https://api.x.ai/v1.  * File TTL: GROK_FILE_TTL_SECONDS (env) or 604800 (7 days).
  • Network accessline 28
    * Endpoint: XAI_API_BASE (env) or https://api.x.ai/v1.
  • Network accessline 28
    * Endpoint: XAI_API_BASE (env) or https://api.x.ai/v1.
  • Network accessline 28
    * Endpoint: XAI_API_BASE (env) or https://api.x.ai/v1.
  • Network accessline 86
    const DEFAULT_API_BASE = process.env.XAI_API_BASE || "https://api.x.ai/v1";
  • Network accessline 86
    const DEFAULT_API_BASE = process.env.XAI_API_BASE || "https://api.x.ai/v1";
  • Network accessline 86
    const DEFAULT_API_BASE = process.env.XAI_API_BASE || "https://api.x.ai/v1";
  • Access to secretsline 174
    [Credential-related source omitted]
  • Access to secretsline 174
    [Credential-related source omitted]
  • Access to secretsline 174
    [Credential-related source omitted]
  • Access to secretsline 404
    [Credential-related source omitted]
  • Access to secretsline 404
    [Credential-related source omitted]
  • Access to secretsline 404
    [Credential-related source omitted]
  • Access to secretsline 729
    [Credential-related source omitted]
  • Access to secretsline 729
    [Credential-related source omitted]
  • Access to secretsline 729
    [Credential-related source omitted]
  • Access to secretsline 1257
    [Credential-related source omitted]
  • Access to secretsline 1257
    [Credential-related source omitted]
  • Access to secretsline 1257
    [Credential-related source omitted]
  • Network accessline 1357
    // Startup check: the bridge needs global fetch (Node 18+). The API key is NOT
  • Network accessline 1357
    // Startup check: the bridge needs global fetch (Node 18+). The API key is NOT
  • Network accessline 1357
    // Startup check: the bridge needs global fetch (Node 18+). The API key is NOT
  • Access to secretsline 1364
    [Credential-related source omitted]
  • Access to secretsline 1364
    [Credential-related source omitted]
  • Access to secretsline 1364
    [Credential-related source omitted]
  • Access to secretsline 1365
    [Credential-related source omitted]
  • Access to secretsline 1365
    [Credential-related source omitted]
  • Access to secretsline 1365
    [Credential-related source omitted]

server/mcp/index.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Executable scriptline 1
    Executable file; content unavailable
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Access to secretsline 40
    [Credential-related source omitted]
  • Network accessline 1996
    makeOpenAICompatibleProvider({       name: "ollama",       apiBase: (initialProviders.ollama && initialProviders.ollama.apiBase) || "http://localhost:11434/v1",
  • Network accessline 1996
    makeOpenAICompatibleProvider({       name: "ollama",       apiBase: (initialProviders.ollama && initialProviders.ollama.apiBase) || "http://localhost:11434/v1",
  • Network accessline 1996
    makeOpenAICompatibleProvider({       name: "ollama",       apiBase: (initialProviders.ollama && initialProviders.ollama.apiBase) || "http://localhost:11434/v1",
  • Network accessline 1997
    name: "ollama",       apiBase: (initialProviders.ollama && initialProviders.ollama.apiBase) || "http://localhost:11434/v1",       apiKeyEnv: (initialProviders.ollama && initialProviders.ollama.apiKeyEnv) || "",
  • Network accessline 1997
    name: "ollama",       apiBase: (initialProviders.ollama && initialProviders.ollama.apiBase) || "http://localhost:11434/v1",       apiKeyEnv: (initialProviders.ollama && initialProviders.ollama.apiKeyEnv) || "",
  • Network accessline 1997
    name: "ollama",       apiBase: (initialProviders.ollama && initialProviders.ollama.apiBase) || "http://localhost:11434/v1",       apiKeyEnv: (initialProviders.ollama && initialProviders.ollama.apiKeyEnv) || "",
  • Network accessline 1998
    apiBase: (initialProviders.ollama && initialProviders.ollama.apiBase) || "http://localhost:11434/v1",
  • Network accessline 1998
    apiBase: (initialProviders.ollama && initialProviders.ollama.apiBase) || "http://localhost:11434/v1",
  • Network accessline 1998
    apiBase: (initialProviders.ollama && initialProviders.ollama.apiBase) || "http://localhost:11434/v1",
  • Network accessline 2004
    makeOpenAICompatibleProvider({       name: "lmstudio",       apiBase: (initialProviders.lmstudio && initialProviders.lmstudio.apiBase) || "http://localhost:1234/v1",
  • Network accessline 2004
    makeOpenAICompatibleProvider({       name: "lmstudio",       apiBase: (initialProviders.lmstudio && initialProviders.lmstudio.apiBase) || "http://localhost:1234/v1",
  • Network accessline 2004
    makeOpenAICompatibleProvider({       name: "lmstudio",       apiBase: (initialProviders.lmstudio && initialProviders.lmstudio.apiBase) || "http://localhost:1234/v1",
  • Network accessline 2005
    name: "lmstudio",       apiBase: (initialProviders.lmstudio && initialProviders.lmstudio.apiBase) || "http://localhost:1234/v1",       apiKeyEnv: (initialProviders.lmstudio && initialProviders.lmstudio.apiKeyEnv) || "",
  • Network accessline 2005
    name: "lmstudio",       apiBase: (initialProviders.lmstudio && initialProviders.lmstudio.apiBase) || "http://localhost:1234/v1",       apiKeyEnv: (initialProviders.lmstudio && initialProviders.lmstudio.apiKeyEnv) || "",
  • Network accessline 2005
    name: "lmstudio",       apiBase: (initialProviders.lmstudio && initialProviders.lmstudio.apiBase) || "http://localhost:1234/v1",       apiKeyEnv: (initialProviders.lmstudio && initialProviders.lmstudio.apiKeyEnv) || "",
  • Network accessline 2006
    apiBase: (initialProviders.lmstudio && initialProviders.lmstudio.apiBase) || "http://localhost:1234/v1",
  • Network accessline 2006
    apiBase: (initialProviders.lmstudio && initialProviders.lmstudio.apiBase) || "http://localhost:1234/v1",
  • Network accessline 2006
    apiBase: (initialProviders.lmstudio && initialProviders.lmstudio.apiBase) || "http://localhost:1234/v1",

server/openrouter/config.js

  • Executable scriptline 1
    Executable file
  • Executable scriptline 1
    Executable file
  • Network accessline 14
    const DEFAULT_API_BASE = "https://openrouter.ai/api/v1";
  • Network accessline 14
    const DEFAULT_API_BASE = "https://openrouter.ai/api/v1";
  • Access to secretsline 15
    [Credential-related source omitted]
  • Access to secretsline 15
    [Credential-related source omitted]

server/openrouter/index.js

  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Executable scriptline 1
    #!/usr/bin/env node
  • Network accessline 69
    const f = fetchImpl || globalThis.fetch;   if (typeof f !== "function") { const e = new Error("global fetch unavailable; Node 18+ required"); e.code = "network"; throw e; }   const base = (apiBase || "https://openrouter.ai/api/v1").replace(
  • Network accessline 69
    const f = fetchImpl || globalThis.fetch;   if (typeof f !== "function") { const e = new Error("global fetch unavailable; Node 18+ required"); e.code = "network"; throw e; }   const base = (apiBase || "https://openrouter.ai/api/v1").replace(
  • Network accessline 69
    const f = fetchImpl || globalThis.fetch;   if (typeof f !== "function") { const e = new Error("global fetch unavailable; Node 18+ required"); e.code = "network"; throw e; }   const base = (apiBase || "https://openrouter.ai/api/v1").replace(
  • Network accessline 70
    if (typeof f !== "function") { const e = new Error("global fetch unavailable; Node 18+ required"); e.code = "network"; throw e; }   const base = (apiBase || "https://openrouter.ai/api/v1").replace(/\/+$/, "");   const url = `${base}/chat/co
  • Network accessline 70
    if (typeof f !== "function") { const e = new Error("global fetch unavailable; Node 18+ required"); e.code = "network"; throw e; }   const base = (apiBase || "https://openrouter.ai/api/v1").replace(/\/+$/, "");   const url = `${base}/chat/co
  • Network accessline 70
    if (typeof f !== "function") { const e = new Error("global fetch unavailable; Node 18+ required"); e.code = "network"; throw e; }   const base = (apiBase || "https://openrouter.ai/api/v1").replace(/\/+$/, "");   const url = `${base}/chat/co
  • Network accessline 71
    const base = (apiBase || "https://openrouter.ai/api/v1").replace(/\/+$/, "");
  • Network accessline 71
    const base = (apiBase || "https://openrouter.ai/api/v1").replace(/\/+$/, "");
  • Network accessline 71
    const base = (apiBase || "https://openrouter.ai/api/v1").replace(/\/+$/, "");
  • Network accessline 80
    const headers = {     "Content-Type": "application/json",     "HTTP-Referer": "https://github.com/antonbabenko/deliberation",
  • Network accessline 80
    const headers = {     "Content-Type": "application/json",     "HTTP-Referer": "https://github.com/antonbabenko/deliberation",
  • Network accessline 80
    const headers = {     "Content-Type": "application/json",     "HTTP-Referer": "https://github.com/antonbabenko/deliberation",
  • Network accessline 81
    "Content-Type": "application/json",     "HTTP-Referer": "https://github.com/antonbabenko/deliberation",     "X-Title": "deliberation",
  • Network accessline 81
    "Content-Type": "application/json",     "HTTP-Referer": "https://github.com/antonbabenko/deliberation",     "X-Title": "deliberation",
  • Network accessline 81
    "Content-Type": "application/json",     "HTTP-Referer": "https://github.com/antonbabenko/deliberation",     "X-Title": "deliberation",
  • Network accessline 82
    "HTTP-Referer": "https://github.com/antonbabenko/deliberation",
  • Network accessline 82
    "HTTP-Referer": "https://github.com/antonbabenko/deliberation",
  • Network accessline 82
    "HTTP-Referer": "https://github.com/antonbabenko/deliberation",
  • Network accessline 193
    */ function resolveEffectiveAuth(delegate, or) {   const providerApiBase = or.apiBase || "https://openrouter.ai/api/v1";
  • Network accessline 193
    */ function resolveEffectiveAuth(delegate, or) {   const providerApiBase = or.apiBase || "https://openrouter.ai/api/v1";
  • Network accessline 193
    */ function resolveEffectiveAuth(delegate, or) {   const providerApiBase = or.apiBase || "https://openrouter.ai/api/v1";
  • Network accessline 194
    function resolveEffectiveAuth(delegate, or) {   const providerApiBase = or.apiBase || "https://openrouter.ai/api/v1";   const providerKeyEnv = or.apiKeyEnv || "OPENROUTER_API_KEY";
  • Network accessline 194
    function resolveEffectiveAuth(delegate, or) {   const providerApiBase = or.apiBase || "https://openrouter.ai/api/v1";   const providerKeyEnv = or.apiKeyEnv || "OPENROUTER_API_KEY";
  • Network accessline 194
    function resolveEffectiveAuth(delegate, or) {   const providerApiBase = or.apiBase || "https://openrouter.ai/api/v1";   const providerKeyEnv = or.apiKeyEnv || "OPENROUTER_API_KEY";
  • Network accessline 195
    const providerApiBase = or.apiBase || "https://openrouter.ai/api/v1";
  • Network accessline 195
    const providerApiBase = or.apiBase || "https://openrouter.ai/api/v1";
  • Network accessline 195
    const providerApiBase = or.apiBase || "https://openrouter.ai/api/v1";
  • Access to secretsline 196
    [Credential-related source omitted]
  • Access to secretsline 196
    [Credential-related source omitted]
  • Access to secretsline 196
    [Credential-related source omitted]

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 7 facts
  • Contacts openrouter.ai, which SKILL.md, the README and the plugin manifest do not mentioncore/analyze.js:56High confidence
  • Contacts api.x.ai, which SKILL.md, the README and the plugin manifest do not mentioncore/providers/grok.js:22High confidence
  • Contacts antigravity.google, which SKILL.md, the README and the plugin manifest do not mentionserver/gemini/index.js:626High confidence
  • Contacts api.x.ai, which SKILL.md, the README and the plugin manifest do not mentionserver/grok/index.js:86High confidence
  • Contacts openrouter.ai, which SKILL.md, the README and the plugin manifest do not mentionserver/openrouter/config.js:14High confidence
  • Contacts openrouter.ai, which SKILL.md, the README and the plugin manifest do not mentionserver/openrouter/index.js:71High confidence
  • Contacts github.com, which SKILL.md, the README and the plugin manifest do not mentionserver/openrouter/index.js:82High confidence
Signal confidence: 299 facts

and 249 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest .claude-plugin/marketplace.json.claude/skills/<skill-name>/
CodexNativeManifest AGENTS.md.agents/skills/<skill-name>/
CursorNativePath .cursor/rules/deliberation.mdc.cursor/skills/<skill-name>/
Gemini CLINativePath .gemini/skills/architect/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md .gemini/skills/architect/SKILL.md.github/skills/<skill-name>/
OpenCodeNativePath .opencode/agents/architect.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.