Skip to content
Back to skills

Skillweave Council

ASecurity

Multi-Model LLM Council — Deliberation, Peer Review, and Chairman Synthesis with Web Search and Faigate Routing

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 3, 2026
ai-agentsgodockertestingapi

Works with

  • api
  • mcp

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned September 3, 2026

npx -y skills add LangeVC/skillweave --skill skillweave-council --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Skillweave Council?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Skillweave Council
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/langevc-skillweave-council/badge)](https://www.skillsdirectory.com/skills/langevc-skillweave-council)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
facade: true
experimental: true
name: skillweave-council
description: "Multi-Model LLM Council — Deliberation, Peer Review, and Chairman Synthesis with Web Search and Faigate Routing"
argument-hint: topic="[topic]" time_range="[30d|quarter|6mo|1yr|any]" mode="[quick|standard|full]" profile="[default|quick|deep|expert]" output="[markdown|json]" phase="[discovery|design|code_review|post_release]"
---

# /skillweave-council

**Collective AI Intelligence** — Instead of asking one LLM, convene a council of AI models that deliberate, peer-review, and synthesize the best answer.

## Overview

skillweave-council is a standalone SkillWeave skill that implements the LLM Council pattern:

1. **Stage 1 — Deliberation**: Multiple models answer independently in parallel (via Faigate routing)
2. **Stage 2 — Peer Review**: Models anonymously rank each other's responses
3. **Stage 3 — Chairman Synthesis**: A chairman model synthesizes the final answer

Optional Stage 0: Web Search (DuckDuckGo, Serper, Tavily, Brave) grounds responses in real-time data with configurable time ranges.

## Usage

Invoke the skill by its name with arguments. The skill is
host-neutral; no executable prefix is required — route it through any host on
any supported transport (Markdown or MCP).

```
skillweave-council topic="Wettbewerbsanalyse Q2 2026" time_range="quarter" mode="full"

skillweave-council topic="Evaluate this architecture decision..." mode="full" output="json" phase="code_review"

skillweave-council command="search" topic="latest AI trends" time_range="30d"

skillweave-council command="profiles"

skillweave-council command="compare" topic="..." profile="quick"
```

## Commands

| Command | Description | Stages |
|---------|-------------|--------|
| `deliberate` | Full council deliberation (default) | 0→1→2→3 |
| `compare` | Side-by-side model comparison | 0→1 |
| `search` | Web search only (no models) | 0 |
| `profiles` | List available council profiles | — |

## Parameters

| Parameter | Values | Default | Description |
|-----------|--------|---------|-------------|
| `topic` | string | required | Question or topic for the council |
| `time_range` | 30d, quarter, 6mo, 1yr, any | any | Web search time window |
| `mode` | quick, standard, full | full | Execution depth |
| `profile` | default, quick, deep, expert | default | Pre-configured model set |
| `output` | markdown, json | markdown | Output format |
| `phase` | discovery, design, code_review, post_release | — | SkillWeave lifecycle phase context |

## Council Profiles

| Profile | Models | Mode | Use Case |
|---------|--------|------|----------|
| **default** | 4 models (balanced) | standard | General-purpose deliberation |
| **quick** | 2 models (fastest) | quick | Rapid comparison, low latency |
| **deep** | 6 models (diverse) | full | Comprehensive analysis |
| **expert** | 4 models (top-tier) | full | High-stakes decisions, research |

## Execution Modes

| Mode | Stages | Description |
|------|--------|-------------|
| **quick** | Stage 1 only | Models answer independently, no review |
| **standard** | Stages 1 + 2 | Models answer + peer review with rankings |
| **full** | All 3 stages | Deliberation + peer review + chairman synthesis |

## Web Search Providers

| Provider | Type | Key Required |
|----------|------|-------------|
| DuckDuckGo | Free web+news | No |
| Serper | Google results | Yes (SERPER_API_KEY) |
| Tavily | LLM-optimized | Yes (TAVILY_API_KEY) |
| Brave | Privacy-focused | Yes (BRAVE_API_KEY) |

## Phase Integration

skillweave-council integrates with the SkillWeave 7-phase lifecycle:

| Phase | Council Focus | Typical Use |
|-------|---------------|-------------|
| **discovery** | Market research, competitive analysis | Replaces last30days |
| **design** | Design evaluation, UX critique | Optional design review |
| **code_review** | Architecture review, code quality | Build-phase quality gate |
| **post_release** | Feedback analysis, pattern detection | Release retrospective |

## Output Format

### Markdown (default)
A structured markdown document with the chairman's synthesis, council rankings, and individual model responses.

### JSON
Structured output with schema validation:
```json
{
  "title": "Concise answer title",
  "summary": "Executive summary",
  "key_insights": ["Insight 1", "Insight 2"],
  "consensus_score": 0.85,
  "dissent": "Minor disagreement on timeline",
  "sources": ["Source A", "Source B"]
}
```

## Faigate Integration

skillweave-council uses Faigate for model routing:
- Automatic availability check before queries
- Credit balance verification
- Failed models gracefully excluded (no council abort)
- Multi-provider routing through a single API

No API key management needed — Faigate handles authentication internally.

### Provider-native seats

Council profile data (`references/council-profiles.md` and the shared
`ROUTER_PROFILES` in `skillweave.routing.faigate_adapter`) names **provider-native
Faidate roster ids** directly — real `/v1/models` ids measured to answer as
themselves. Faigate's live roster self-answers only `deepseek-v4-pro` and
`deepseek-v4-flash`; every other id it serves silently collapses onto
`deepseek-v4-flash`. The presets therefore name those two ids with no symbolic
seat alias and no hidden substitution, holding the `>=2` distinct answering-model
gate. The `faigate/` gateway prefix never appears in Council profile data; it
belongs to the dispatch layer's gateway qualification only, and is translated
exactly once at the adapter boundary. A `faigate/` (or any other outer) prefix in
a Council profile is refused **before** any provider call, with the offending id
named.

### Who answered

Every seat records, independently: the **requested** model, the **resolved**
model (when the adapter exposes one), the **answering** model (read from the
response envelope, never inferred from the request), the provider, the
attribution **status** (`answered` | `substituted` | `unavailable` |
`rate_limited` | `errored`), and the profile revision. Fewer than
`min_models_required` distinct answering models is a **degraded** run and is
never reported as consensus.

### Faigate endpoint

The council talks to Faigate at exactly one address, resolved in this order:

1. `FAIGATE_BASE_URL` env var (full URL, e.g. `http://127.0.0.1:8090/v1`)
2. `FAIGATE_HOST` + `FAIGATE_PORT` env vars
3. Default: `http://127.0.0.1:8090/v1`

The default is the address the brew-installed Faigate actually listens on
(`127.0.0.1`, port `8090`). Do not guess a different port — `8080` is a
foreign service (Docker), not Faigate.

## Sandbox Preflight

The council validates:
1. Faigate endpoint reachable at the address resolved above
2. At least 2 models available (for peer review)
3. Chairman model available (for full mode)
4. Web search provider configured (if time_range specified)
5. JSON schema valid (if output=json)

When the preflight fails, the message MUST name the address (and port) it
checked, not just report "not reachable". An unreachability report without
the address is not a diagnosis — it points the operator at nothing. For
example: `Faigate not reachable at http://127.0.0.1:8090/v1 (connection refused)`.

## Testing

| Test | Description |
|------|-------------|
| Stage 1 parallel execution | All models respond within timeout |
| Stage 1 graceful failure | 1 model fails, others succeed |
| Stage 2 anonymization | Responses anonymized as A/B/C |
| Stage 2 ranking parse | FINAL RANKING: format parsed correctly |
| Stage 3 markdown synthesis | Chairman produces valid markdown |
| Stage 3 JSON output | Valid JSON with schema compliance |
| Faigate availability mock | Check returns model statuses |
| Web search DuckDuckGo | Real search returns results |
| Time-range filter | 30d/quarter/6mo/1yr filtering |
| Council profile selection | All 4 profiles load correctly |
| Phase context injection | Discovery/design prompts modify output |
| Standalone mode | No phase context = generic prompt |

Files in this skill

  • SKILL.md7.8 KB
  • capability.yaml544 B
  • references/council-profiles.md927 B
  • references/output-format.md526 B
  • references/search-providers.md823 B

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.