원클릭으로
council
Full execution protocol for MODE: COUNCIL -- General Council research, parallel member dispatch, disagreement handling, and synthesis.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Full execution protocol for MODE: COUNCIL -- General Council research, parallel member dispatch, disagreement handling, and synthesis.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Apply when implementing features, fixing bugs, debugging errors, investigating failures, tracing root causes, reviewing tech debt, tracing issues, planning fixes, or completing any task. Enforces parallel sub-agent implementation, independent adversarial review, and a 95% confidence gate before stopping.
RAGAPPv3 testing policy and conventions. Load before writing or modifying any test, fixing a test/CI failure, or adding coverage. Covers backend pytest + unittest (SimpleConnectionPool dependency-override harness, FK cascades, the Python 3.11-vs-local event-loop trap) and frontend Vitest + React Testing Library + jsdom (MemoryRouter, Radix Select, react-virtual mock patterns). This repo's frontend uses Vitest, NOT bun:test.
Keep dependency and lockfile changes aligned with CI expectations.
Verify all required QA gate artifacts and completion criteria before marking a task or phase complete.
Keep mocks, async setup, and test assertions clean and aligned with the code under test.
Lightweight PR-time audit for whether changes are compatible with the actual RAGAPPv3 GitHub Actions workflow, dependency lockfiles, scripts, and cross-platform local validation.
| name | council |
| description | Full execution protocol for MODE: COUNCIL -- General Council research, parallel member dispatch, disagreement handling, and synthesis. |
This protocol is loaded on demand by the architect stub in src/agents/architect.ts. The architect prompt keeps only activation, action, and hard safety constraints; the full execution details live here.
Activates when: user invokes /swarm council <question> (optionally with --preset <name> and/or --spec-review).
Purpose: convene a fixed three-agent multi-model General Council (generalist / skeptic / domain expert) for an advisory deliberation. The architect runs a curated web research pass upfront, dispatches the three agents in parallel with the gathered RESEARCH CONTEXT, routes any disagreements back for one targeted reconciliation round, and synthesizes the final user-facing answer directly.
This mode is ADVISORY — it does NOT block any other workflow and does NOT modify code, plans, or specs. The output is for the user (general mode) or for the spec being drafted in MODE: SPECIFY (spec_review mode, gated by council_general_review).
council.general config. If council.general.enabled is not true OR no search API key is configured (neither council.general.searchApiKey nor the corresponding env var TAVILY_API_KEY / BRAVE_SEARCH_API_KEY), surface to the user: "General Council is not enabled. Set council.general.enabled: true and configure a search API key in opencode-swarm.json." Then STOP.web_search queries that best capture the information needed to answer the question. Prefer specific, keyword-focused queries over broad ones. Call web_search for each query. Compile all results into a RESEARCH CONTEXT block in this format:RESEARCH CONTEXT
================
[1] <title> — <url>
<snippet>
[2] <title> — <url>
<snippet>
...
If web_search returns no results or an error (check result.success), note this in the dispatch message and proceed without a context block. Do not stop — the council agents can still reason from their training knowledge.
the active swarm's council_generalist agent, the active swarm's council_skeptic agent, and the active swarm's council_domain_expert agent in PARALLEL — one message per agent, then STOP and wait for all responses. Each dispatch message must include:
round1Responses array will contain entries with memberId of council_generalist, council_skeptic, and council_domain_expert and role of generalist, skeptic, and domain_expert respectively — these come from the agents' JSON output, no manual construction needed.convene_general_council with mode set from the command (general or spec_review), question, and the collected round1Responses only (omit round2Responses). Inspect the returned disagreementsCount.disagreementsCount > 0:
a. For each disagreement in the tool's response, identify the disputing agents (the agents listed in the disagreement's positions, identified by memberId: council_generalist, council_skeptic, or council_domain_expert).
b. Re-delegate ONLY to the disputing agents — one message per agent — passing: their Round 1 response, the disagreement topic, the opposing position(s), round number 2, and the same RESEARCH CONTEXT block.
c. Collect the Round 2 responses.
d. Call convene_general_council AGAIN with both round1Responses AND round2Responses populated.synthesis returned by convene_general_council. Apply these output rules directly: