Skip to content

feat(council): four-model council plugin#134

Merged
ANcpLua merged 2 commits intomainfrom
feat/council-plugin
Feb 22, 2026
Merged

feat(council): four-model council plugin#134
ANcpLua merged 2 commits intomainfrom
feat/council-plugin

Conversation

@ANcpLua
Copy link
Owner

@ANcpLua ANcpLua commented Feb 22, 2026

Summary

  • New plugins/council plugin — five agents with baked-in identities via soul files
  • opus-captain: decomposes via structured ticket (SUBTASK/OWNER/EXPECTED/DEPENDENCY), synthesizes with one scoped intervention (flag internal inconsistencies, no re-derivation)
  • sonnet-researcher: evidence and sources only, no speculation
  • sonnet-synthesizer: logic, code, reasoning chains with explicit step-by-step
  • sonnet-clarity: runs after researcher + synthesizer, reads their raw output for gaps, assumptions, and conflicts — not in parallel
  • haiku-janitor: strips filler, returns BLOAT_FLAG + CUTS list, captain removes cuts
  • Upgrades hookify/conversation-analyzer to opus model with rewritten prompt

Known issue (not blocking)

Soul files are loaded via hardcoded absolute path (~/.claude/plugins/cache/council/souls/). If install path differs, agents run on frontmatter only. Fix is to inline souls into agent files — left for follow-up to keep this PR reviewable.

Test plan

  • Invoke /council [question] and verify correct dispatch sequence: researcher + synthesizer parallel → clarity → opus synthesis → haiku cleanup
  • Verify opus-captain stops and surfaces error when it cannot fill the decomposition ticket
  • Verify opus-captain flags (not fixes) internal inconsistencies in specialist output
  • Run ./tooling/scripts/weave-validate.sh
  • Run claude plugin validate .

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added Council plugin: a five-agent orchestration system combining task decomposition, parallel research and synthesis, clarity analysis, and bloat optimization.
    • Updated marketplace inventory to reflect 8 plugins (previously 7), 23 commands, 6 skills, and 14 agents.
  • Documentation

    • New comprehensive guide on multi-agent team patterns with 10+ use cases and ready-to-use prompt templates for code review, debugging, feature development, and more.

Copilot AI review requested due to automatic review settings February 22, 2026 02:44
@coderabbitai
Copy link

coderabbitai bot commented Feb 22, 2026

Caution

Review failed

The pull request is closed.

📝 Walkthrough

Walkthrough

This PR introduces a five-agent council plugin expanding the ecosystem from 7 to 8 plugins (23 commands, 6 skills, 14 agents). It adds comprehensive agent specifications for Opus captain, Sonnet researcher/synthesizer, Sonnet clarity, and Haiku janitor with inlined identities. It also updates the conversation-analyzer agent and provides an extensive multi-agent orchestration guide.

Changes

Cohort / File(s) Summary
Marketplace & Ecosystem Metadata
.claude-plugin/marketplace.json, CLAUDE.md, docs/ARCHITECTURE.md, CHANGELOG.md
Updated plugin inventory counts from 7 to 8 plugins, 22 to 23 commands, 5 to 6 skills, and 9 to 14 agents. Added council plugin entry to marketplace registry.
Council Plugin Manifest & Documentation
plugins/council/.claude-plugin/plugin.json, plugins/council/README.md
New plugin manifest and README documenting the five-agent council structure, agent roles, usage syntax (/council [task]), and project layout with inlined agent identities.
Council Agent Specifications
plugins/council/agents/opus-captain.md, plugins/council/agents/sonnet-researcher.md, plugins/council/agents/sonnet-synthesizer.md, plugins/council/agents/sonnet-clarity.md, plugins/council/agents/haiku-janitor.md
Five agent role definitions with identity, responsibilities, workflow, output formats, tools, and behavioral constraints: captain orchestrates decomposition/synthesis, researcher verifies facts, synthesizer chains reasoning, clarity identifies gaps, janitor flags bloat.
Council Command & Skills
plugins/council/commands/council.md, plugins/council/skills/invoke/SKILL.md
Command documentation for /council orchestration flow and skill documentation describing multi-agent execution pipeline with cost profiles.
Updated Existing Plugin
plugins/hookify/agents/conversation-analyzer.md
Agent model upgraded from inherit to opus; role redefined as codebase memory identifying Claude frustration moments and converting into preventive rules.
Multi-Agent Orchestration Guide
Claude Code Agent Teams: 10+ Use Cases with Copy-Paste Prompts.md
New comprehensive guide with 10\+ use-case templates for parallel code review, debugging, feature implementation, architecture decisions, and domain-specific workflows with role assignments and coordination patterns.

Sequence Diagram(s)

sequenceDiagram
    participant User
    participant OpusCaptain as Opus Captain
    participant SonnetR as Sonnet Researcher
    participant SonnetS as Sonnet Synthesizer
    participant SonnetC as Sonnet Clarity
    participant HaikuJ as Haiku Janitor

    User->>OpusCaptain: /council [task]
    OpusCaptain->>OpusCaptain: Decompose task<br/>into subtasks
    
    OpusCaptain->>SonnetR: Dispatch research<br/>subtasks
    OpusCaptain->>SonnetS: Dispatch reasoning<br/>subtasks
    
    par Parallel Execution
        SonnetR->>SonnetR: Verify facts<br/>Gather sources<br/>Cite evidence
        SonnetS->>SonnetS: Chain reasoning<br/>Validate steps<br/>Identify breaks
    end
    
    SonnetR-->>OpusCaptain: Return FINDING/<br/>SOURCE/CONFIDENCE
    SonnetS-->>OpusCaptain: Return REASONING/<br/>CONCLUSION/BREAKS
    
    OpusCaptain->>SonnetC: Dispatch clarity<br/>analysis
    SonnetC->>SonnetC: Analyze outputs<br/>Identify gaps &<br/>misalignments
    SonnetC-->>OpusCaptain: Return GAPS/<br/>ASSUMPTIONS/CONFIDENCE
    
    OpusCaptain->>OpusCaptain: Synthesize draft<br/>using all feedback
    
    OpusCaptain->>HaikuJ: Dispatch for cleanup
    HaikuJ->>HaikuJ: Flag bloat<br/>Remove filler<br/>Count words
    HaikuJ-->>OpusCaptain: Return BLOAT_FLAG/<br/>CUTS/WORD_COUNT
    
    OpusCaptain->>OpusCaptain: Apply cuts<br/>Finalize answer
    OpusCaptain-->>User: Deliver final<br/>answer
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title describes a four-model council plugin, but the PR actually implements a five-agent council with roles distributed across four Claude models (Opus, Sonnet, and Haiku). The title is partially related but uses outdated terminology. Clarify whether the title should emphasize five agents or four models. Consider: 'feat(council): five-agent council plugin' or 'feat(council): multi-agent orchestration plugin with council pattern' for accuracy.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/council-plugin

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link

Summary of Changes

Hello @ANcpLua, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the system's capabilities by introducing a sophisticated multi-agent council plugin, designed to orchestrate specialized AI agents for complex problem-solving through parallel processing, gap detection, and output refinement. Concurrently, it refines and updates several core documentation and configuration files, improving the overall clarity, consistency, and efficiency of the Claude Code plugin ecosystem.

Highlights

  • New Multi-Agent Council Plugin: Introduced a new council plugin featuring a five-agent architecture (opus-captain, sonnet-researcher, sonnet-synthesizer, sonnet-clarity, haiku-janitor) for complex task orchestration, inspired by Grok 4.20's multi-agent design.
  • Enhanced Conversation Analyzer: Upgraded the hookify/conversation-analyzer agent to use the more capable opus model and rewrote its prompt to emphasize its role in preventing recurring issues.
  • Documentation Refinements: Streamlined and updated various core documentation files, including .claude/rules/*, CLAUDE.md, and docs/*, to improve clarity, update coordination channels, and ensure consistency across the plugin ecosystem.
  • Content Optimization: Removed the redundant engineering-philosophy.md file to eliminate token waste and refined other rule documents for conciseness and accuracy.
Changelog
  • .claude-plugin/marketplace.json
    • Updated plugin and agent counts to reflect new additions.
    • Registered the newly added council plugin.
  • .claude/rules/devops-calms.md
    • Standardized 'Recovery Time' to 'MTTR'.
    • Clarified the distinction between Claude coordination channels and external AI coordination channels.
  • .claude/rules/engineering-principles.md
  • .claude/rules/error-handling.md
    • Revised error retry guidance to focus on re-running after fixing identified issues, rather than transient retries.
  • .claude/rules/solid-principles.md
    • Compressed the content for conciseness.
    • Replaced a bullet list with a responsibility table for plugins.
    • Refined the Single Responsibility Principle description for metacognitive-guard.
  • .claude/rules/thought-transparency.md
    • Removed the 'Granular Task Decomposition' section.
    • Removed the 'Silent Processing with Tracked Updates' section.
  • CHANGELOG.md
    • Added an entry for the new plugins/council plugin.
    • Added an entry for the hookify/agents/conversation-analyzer.md model upgrade and prompt rewrite.
    • Added an entry for the removal of engineering-philosophy.md.
    • Added entries for various documentation updates across thought-transparency.md, devops-calms.md, solid-principles.md, engineering-principles.md, error-handling.md, ARCHITECTURE.md, WORKFLOWS.md, QUICK-REFERENCE.md, PLUGINS.md, and CLAUDE.md.
  • CLAUDE.md
    • Replaced the detailed architecture directory tree with a reference to docs/ARCHITECTURE.md.
    • Updated the routing decision tree to include turbo-fix and fix-pipeline commands.
    • Simplified the plugin structure section to reference docs/ARCHITECTURE.md.
    • Removed detailed CI & Validation job descriptions, referencing docs/WORKFLOWS.md instead.
    • Expanded the list of referenced documentation paths in Section 12.
    • Updated the list of auto-loaded rules in Section 15.
  • docs/ARCHITECTURE.md
    • Updated the repository directory tree to include CODEOWNERS, dependabot.yml, trigger-docs.yml, and designs/.
    • Added documentation for passive context layers (CLAUDE.md, SKILL.md frontmatter, SessionStart hooks).
    • Simplified the 'Design principles (SOLID for plugins)' section to reference .claude/rules/solid-principles.md.
    • Clarified AI coordination mechanisms.
    • Simplified the 'DORA targets' section to reference .claude/rules/devops-calms.md.
    • Updated the 'Last Verified' date.
  • docs/PLUGINS.md
    • Updated plugin.json requirements by removing repository and license fields.
    • Added an example for declaring plugin capabilities (skills, commands, agents, hooks).
    • Added a reference to docs/ARCHITECTURE.md for the full plugin structure.
  • docs/QUICK-REFERENCE.md
    • Added the /hookify:help command to the quick reference.
    • Clarified that eight-gates and hades are skills, not slash commands, and updated their agent counts.
  • docs/WORKFLOWS.md
    • Added a note about the commit-integrity-hook automatically blocking certain commits.
    • Documented the new .github/workflows/trigger-docs.yml cross-repo workflow for documentation rebuilds.
  • plugins/council/.claude-plugin/plugin.json
    • Added the plugin manifest for the new council plugin, defining its name, version, description, author, and capabilities.
  • plugins/council/README.md
    • Added introductory documentation for the council plugin, detailing its agents, usage, identity mechanism, and structure.
  • plugins/council/agents/haiku-janitor.md
    • Defined the haiku-janitor agent, specializing in identifying and flagging bloat and filler in text.
  • plugins/council/agents/opus-captain.md
    • Defined the opus-captain agent, outlining its role in task decomposition, parallel specialist dispatch, synthesis, and final delivery.
  • plugins/council/agents/sonnet-clarity.md
    • Defined the sonnet-clarity agent, focused on reading raw specialist output to find gaps, unstated assumptions, and misalignments.
  • plugins/council/agents/sonnet-researcher.md
    • Defined the sonnet-researcher agent, specializing in evidence gathering, claim verification, and source citation.
  • plugins/council/agents/sonnet-synthesizer.md
    • Defined the sonnet-synthesizer agent, responsible for rigorous reasoning, code verification, and step-by-step logic.
  • plugins/council/commands/council.md
    • Defined the /council command, providing usage instructions and outlining the multi-agent workflow it initiates.
  • plugins/council/skills/invoke/SKILL.md
    • Defined the invoke skill for the council plugin, detailing its workflow, use cases, and cost profile.
  • plugins/council/souls/haiku-janitor.md
    • Added the soul file defining the identity, values, and output format for the haiku-janitor agent.
  • plugins/council/souls/opus-captain.md
    • Added the soul file defining the identity, values, protocol, and escalation rules for the opus-captain agent.
  • plugins/council/souls/sonnet-clarity.md
    • Added the soul file defining the identity, focus, and output format for the sonnet-clarity agent.
  • plugins/council/souls/sonnet-researcher.md
    • Added the soul file defining the identity, values, and working methodology for the sonnet-researcher agent.
  • plugins/council/souls/sonnet-synthesizer.md
    • Added the soul file defining the identity, values, and reasoning process for the sonnet-synthesizer agent.
  • plugins/hookify/agents/conversation-analyzer.md
    • Upgraded the agent's model from inherit to opus.
    • Rewrote the opening prompt to emphasize its role as the 'memory of the codebase' for preventing recurring problems.
Activity
  • The pull request was opened by ANcpLua, introducing a new multi-agent council plugin and significant documentation updates.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

The pull request introduces a new 'council' plugin, which orchestrates multiple AI agents (Opus captain, Sonnet researcher, synthesizer, clarity, and Haiku janitor) for complex tasks. This is a significant addition that enhances the multi-agent capabilities of the system. The changes also include various documentation updates across several .md files to reflect the new plugin, update existing rules, and improve clarity. The marketplace.json has been updated to include the new plugin and reflect the increased agent count. The conversation-analyzer.md agent has been upgraded to use the opus model with a rewritten prompt, which should improve its effectiveness. Overall, the changes are well-structured and contribute positively to the project's functionality and documentation.

CLAUDE.md Outdated
See `docs/ARCHITECTURE.md` for the complete repository layout, plugin structure, and ecosystem diagram.

Key paths:
- Plugins: `plugins/<name>/` — 7 plugins (22 commands, 5 skills, 9 agents)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The number of plugins listed here is still 7, but with the addition of the 'council' plugin, it should be 8. Please update this count to maintain accuracy.

Suggested change
- Plugins: `plugins/<name>/`7 plugins (22 commands, 5 skills, 9 agents)
- Plugins: `plugins/<name>/`8 plugins (23 commands, 6 skills, 14 agents)

│ └── dependabot.yml # Dependency update config
│ └── trigger-docs.yml # Triggers ancplua-docs rebuild on push to main
├── plugins/ # 7 plugins (22 commands, 5 skills, 9 agents)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The number of plugins listed in the architecture diagram is outdated. With the addition of the 'council' plugin, the count should be 8. Please update this to reflect the current number of plugins.

Suggested change
├── plugins/ # 7 plugins (22 commands, 5 skills, 9 agents)
├── plugins/ # 8 plugins (23 commands, 6 skills, 14 agents)

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces a new plugins/council plugin that defines a multi-agent “council” workflow (captain + specialists + janitor), alongside documentation/ruleset updates and a model upgrade for Hookify’s conversation-analyzer agent.

Changes:

  • Added the council plugin (agents, command, skill, manifest, README, and “soul” files).
  • Updated hookify/agents/conversation-analyzer.md to use opus and revised its opening prompt.
  • Refactored/clarified several repo docs and .claude/rules/* guidance; updated marketplace + changelog accordingly.

Reviewed changes

Copilot reviewed 28 out of 28 changed files in this pull request and generated 9 comments.

Show a summary per file
File Description
plugins/hookify/agents/conversation-analyzer.md Switches agent model to opus and rewrites the initial framing text.
plugins/council/.claude-plugin/plugin.json Adds council plugin manifest (name/version/commands/skills/etc.).
plugins/council/README.md Documents council concept, usage, and structure.
plugins/council/commands/council.md Adds /council command docs describing the dispatch sequence.
plugins/council/skills/invoke/SKILL.md Adds the “invoke” skill describing how the council runs.
plugins/council/agents/opus-captain.md Defines captain agent (orchestration/synthesis).
plugins/council/agents/sonnet-researcher.md Defines researcher agent (evidence-first, WebSearch/WebFetch).
plugins/council/agents/sonnet-synthesizer.md Defines synthesizer agent (step-by-step reasoning/verification).
plugins/council/agents/sonnet-clarity.md Defines clarity agent (gap/assumption/conflict detection).
plugins/council/agents/haiku-janitor.md Defines janitor agent (bloat detection + CUTS list).
plugins/council/souls/opus-captain.md Adds “soul” identity file for captain.
plugins/council/souls/sonnet-researcher.md Adds “soul” identity file for researcher.
plugins/council/souls/sonnet-synthesizer.md Adds “soul” identity file for synthesizer.
plugins/council/souls/sonnet-clarity.md Adds “soul” identity file for clarity agent.
plugins/council/souls/haiku-janitor.md Adds “soul” identity file for janitor.
.claude-plugin/marketplace.json Registers the new council plugin and updates marketplace metadata description.
CHANGELOG.md Records the council plugin addition + various docs/rules changes.
docs/ARCHITECTURE.md Updates repo layout and plugin structure documentation.
docs/PLUGINS.md Updates plugin creation guidance and capability examples.
docs/WORKFLOWS.md Adds notes about commit-integrity hook and cross-repo docs trigger workflow.
docs/QUICK-REFERENCE.md Adds /hookify:help and clarifies Exodia skill invocation vs slash commands.
CLAUDE.md Repoints architecture/CI sections to docs and updates routing tree entries.
.claude/rules/thought-transparency.md Removes sections to avoid duplication/contradiction with other rules.
.claude/rules/solid-principles.md Compresses and replaces bullet list with a responsibility table.
.claude/rules/error-handling.md Adjusts “retry” guidance for local tool failures.
.claude/rules/engineering-principles.md Fixes duplicated #25 tag (now #25b).
.claude/rules/devops-calms.md Renames Recovery Time → MTTR and clarifies coordination channels.
.claude/rules/engineering-philosophy.md Removes duplicated rule file.
Comments suppressed due to low confidence (1)

docs/ARCHITECTURE.md:45

  • The plugin count/command/skill/agent totals in this directory tree are now outdated (it still says 7 plugins / 22 commands / 5 skills / 9 agents). With the new council plugin added, update this line and the plugin list below to reflect the current totals and include council.
├── plugins/                     # 7 plugins (22 commands, 5 skills, 9 agents)
│   ├── exodia/                  # Multi-agent orchestration (9 commands + 2 skills: eight-gates, hades)
│   ├── metacognitive-guard/     # Cognitive amplification + commit integrity + CI
│   ├── otelwiki/                # OpenTelemetry documentation + auto-sync
│   ├── hookify/                 # User-configurable rule-based hooks
│   ├── feature-dev/             # Guided feature development + code review
│   ├── dotnet-architecture-lint/# .NET build pattern enforcement
│   └── ancplua-project-routing/ # Cross-repo specialist agent routing

CLAUDE.md Outdated
See `docs/ARCHITECTURE.md` for the complete repository layout, plugin structure, and ecosystem diagram.

Key paths:
- Plugins: `plugins/<name>/` — 7 plugins (22 commands, 5 skills, 9 agents)
Copy link

Copilot AI Feb 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "Key paths" plugin totals are now inconsistent with the repository (it still says 7 plugins / 22 commands / 5 skills / 9 agents, but marketplace metadata and the new council plugin imply 8 / 23 / 6 / 14). Please update the totals here to keep the repo metadata consistent.

Suggested change
- Plugins: `plugins/<name>/`7 plugins (22 commands, 5 skills, 9 agents)
- Plugins: `plugins/<name>/`8 plugins (23 commands, 6 skills, 14 agents)

Copilot uses AI. Check for mistakes.
Comment on lines +4 to +7
"description": "Four-model council: Opus captain coordinates three Sonnet specialists (researcher, synthesizer, clarity) plus a Haiku janitor. Each agent identity lives in its soul CLAUDE.md — passive context, zero activation cost.",
"author": {
"name": "ANcpLua",
"email": ""
Copy link

Copilot AI Feb 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This plugin.json has a couple of issues that can break validation/consistency: (1) it describes a "Four-model council" but the plugin uses Opus + Sonnet + Haiku (3 models) across 5 agents; (2) author.email is an empty string (prefer omitting the field if unknown); (3) author.name casing differs from other plugin manifests (mostly "AncpLua"). Consider updating these fields to match the repo’s existing manifests and avoid misleading users.

Suggested change
"description": "Four-model council: Opus captain coordinates three Sonnet specialists (researcher, synthesizer, clarity) plus a Haiku janitor. Each agent identity lives in its soul CLAUDE.md — passive context, zero activation cost.",
"author": {
"name": "ANcpLua",
"email": ""
"description": "Three-model council: Opus captain coordinates three Sonnet specialists (researcher, synthesizer, clarity) plus a Haiku janitor (five agents across Opus, Sonnet, and Haiku). Each agent identity lives in its soul CLAUDE.md — passive context, zero activation cost.",
"author": {
"name": "AncpLua"

Copilot uses AI. Check for mistakes.
Comment on lines +5 to +8
Inspired by Grok 4.20's 4-agent architecture — same mechanism, adapted for Claude: each agent's identity
lives in its soul file (`souls/`), loaded as passive context. No activation cost. No "should I use this
skill?" decision. The agent *is* its soul from token 1.

Copy link

Copilot AI Feb 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The README states each agent "loads its soul file" and that souls/ contains "the actual identities", but nothing in this plugin references souls/ (the full identity content is duplicated directly in agents/*.md). Either wire up souls/ via a hook/additionalContext mechanism or adjust the README to reflect that the agent definitions themselves contain the identity to avoid drift between the two copies.

Copilot uses AI. Check for mistakes.
CHANGELOG.md Outdated

### Added

- **`plugins/council`**: New plugin — four-model council (opus-captain, sonnet-researcher, sonnet-synthesizer, sonnet-clarity, haiku-janitor). Each agent identity defined in a soul file (`souls/`) loaded as passive context. Inspired by Grok 4.20's multi-agent architecture. Invoke via `/council [task]`.
Copy link

Copilot AI Feb 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This CHANGELOG entry says identities are "loaded as passive context" from souls/, but the plugin currently duplicates the identity text directly inside agents/*.md and nothing references souls/. Update the entry to match the actual mechanism (or implement the soul loading) so the changelog is accurate.

Suggested change
- **`plugins/council`**: New plugin — four-model council (opus-captain, sonnet-researcher, sonnet-synthesizer, sonnet-clarity, haiku-janitor). Each agent identity defined in a soul file (`souls/`) loaded as passive context. Inspired by Grok 4.20's multi-agent architecture. Invoke via `/council [task]`.
- **`plugins/council`**: New plugin — four-model council (opus-captain, sonnet-researcher, sonnet-synthesizer, sonnet-clarity, haiku-janitor). Each agent identity is defined directly in its `agents/*.md` file and used as passive context. Inspired by Grok 4.20's multi-agent architecture. Invoke via `/council [task]`.

Copilot uses AI. Check for mistakes.
@@ -0,0 +1,37 @@
---
description: >-
Invoke the four-model council on any complex task. Opus captain decomposes and synthesizes.
Copy link

Copilot AI Feb 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The council is described as "four-model" here, but the agents/models listed are Opus + Sonnet + Haiku (3 distinct models) and 5 agents total. Consider renaming this to "multi-model" or "five-agent" (or otherwise clarify what "four-model" means) to avoid misleading users.

Suggested change
Invoke the four-model council on any complex task. Opus captain decomposes and synthesizes.
Invoke the multi-model, five-agent council on any complex task. Opus captain decomposes and synthesizes.

Copilot uses AI. Check for mistakes.
| `sonnet-researcher` | claude-sonnet-4-6 | Evidence, sources, verification — never speculates |
| `sonnet-synthesizer` | claude-sonnet-4-6 | Logic, code, math — shows all work |
| `sonnet-clarity` | claude-sonnet-4-6 | Gaps, assumptions, misalignment — blind-spot detection |
| `haiku-janitor` | claude-haiku-4-5 | Removes filler and redundancy from final output |
Copy link

Copilot AI Feb 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Model naming is inconsistent here: the table lists haiku-janitor as claude-haiku-4-5, but the agent definition uses claude-haiku-4-5-20251001. Align the README model values with the actual agents/*.md frontmatter to avoid confusion.

Suggested change
| `haiku-janitor` | claude-haiku-4-5 | Removes filler and redundancy from final output |
| `haiku-janitor` | claude-haiku-4-5-20251001 | Removes filler and redundancy from final output |

Copilot uses AI. Check for mistakes.
},
{
"name": "council",
"description": "Four-model council: Opus captain decomposes and synthesizes, three Sonnet specialists run in parallel (researcher, synthesizer, clarity), Haiku janitor cleans output. Each agent identity lives in a soul CLAUDE.md — passive context, zero activation cost.",
Copy link

Copilot AI Feb 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This plugin entry repeats the claim that each agent identity lives in a soul CLAUDE.md loaded as passive context, but nothing in the plugin references souls/ (identity text is duplicated in agents/*.md). Update the marketplace description (or implement the loading mechanism) so it reflects reality and doesn’t promise behavior users won’t get.

Suggested change
"description": "Four-model council: Opus captain decomposes and synthesizes, three Sonnet specialists run in parallel (researcher, synthesizer, clarity), Haiku janitor cleans output. Each agent identity lives in a soul CLAUDE.md — passive context, zero activation cost.",
"description": "Four-model council: Opus captain decomposes and synthesizes, three Sonnet specialists run in parallel (researcher, synthesizer, clarity), Haiku janitor cleans output. Agent identities are defined in the plugin's agents/*.md specs; no external soul files are loaded.",

Copilot uses AI. Check for mistakes.
Comment on lines +14 to +20
"skills": ["skills/my-skill"],
"commands": ["commands/my-command.md"],
"agents": ["agents/my-agent.md"],
"hooks": "hooks/hooks.json"
}
```
> **Note:** `hooks/hooks.json` is loaded by Claude Code when declared in `plugin.json`.
Copy link

Copilot AI Feb 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The plugin.json example and note here don’t match how plugins in this repo are structured: existing manifests use directory strings for commands/skills (e.g. "./commands"), and hooks are present without being declared in plugin.json. Update this section (especially the hooks field + note) to align with the repo’s actual plugin/template conventions.

Suggested change
"skills": ["skills/my-skill"],
"commands": ["commands/my-command.md"],
"agents": ["agents/my-agent.md"],
"hooks": "hooks/hooks.json"
}
```
> **Note:** `hooks/hooks.json` is loaded by Claude Code when declared in `plugin.json`.
"skills": "./skills",
"commands": "./commands",
"agents": "./agents"
}

Note: hooks/hooks.json is discovered automatically when present; you do not need a hooks field in plugin.json.

Copilot uses AI. Check for mistakes.
│ └── <agent>.md # Custom agent definitions (YAML frontmatter)
├── hooks/
│ └── hooks.json # Event hooks (auto-loaded by convention)
│ └── hooks.json # Event hooks (declared in plugin.json, loaded by Claude Code)
Copy link

Copilot AI Feb 22, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This claims hooks/hooks.json is "declared in plugin.json" to be loaded, but existing plugins in this repo ship hooks/hooks.json without a hooks field in plugin.json (e.g., hookify/exodia/metacognitive-guard). Update this documentation to match actual repo/plugin behavior (either convention-based loading or the real declaration mechanism).

Suggested change
│ └── hooks.json # Event hooks (declared in plugin.json, loaded by Claude Code)
│ └── hooks.json # Event hooks (loaded by Claude Code via convention if present)

Copilot uses AI. Check for mistakes.
Copy link

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 57a80255a2

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

description: >-
Council researcher. Finds evidence, verifies claims, cites sources. Never speculates. Returns
structured FINDING/SOURCE/DATE/CONFIDENCE/GAPS output. Uses claude-sonnet-4-6.
model: claude-sonnet-4-6

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Use a resolvable Sonnet model identifier

This agent is pinned to claude-sonnet-4-6, but the repo’s own model assertions currently enumerate Sonnet as claude-sonnet-4-5-20250929 / claude-sonnet-4-5 (see plugins/metacognitive-guard/blackboard/assertions.yaml). Because the council pipeline depends on three Sonnet agents, an unresolvable model ID will prevent those subtasks from launching and break /council execution for affected environments; please switch all council Sonnet agents to a supported Sonnet identifier.

Useful? React with 👍 / 👎.

Comment on lines +5 to +7
Inspired by Grok 4.20's 4-agent architecture — same mechanism, adapted for Claude: each agent's identity
lives in its soul file (`souls/`), loaded as passive context. No activation cost. No "should I use this
skill?" decision. The agent *is* its soul from token 1.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Wire soul files into the actual agent loading path

The plugin documents that identities are loaded from souls/ as passive context, but there is no runtime wiring to those files (no manifest or hook reference; agent behavior is defined directly in agents/*.md). In practice, changing a soul file will not change agent behavior, which creates silent drift between the documented architecture and the prompts that actually execute.

Useful? React with 👍 / 👎.

ANcpLua added a commit that referenced this pull request Feb 22, 2026
- Delete souls/ directory — content already inlined in agents/*.md
- Fix "four-model" → "five-agent" across all files
- Fix haiku model ID: haiku-4-5 → haiku-4-5-20251001 in README
- Update plugin counts: 7→8 plugins, 22→23 commands, 5→6 skills, 9→14 agents
- Remove souls/ references from README, marketplace.json, plugin.json, CHANGELOG
- Fix dispatch flow description in SKILL.md and commands/council.md
- Fix clarity escalation rule: "incorporate" → "surface verbatim, do not fill"
- Add BLOAT_FLAG procedure to haiku-janitor and captain escalation rules
- Add agents declaration to plugin.json (later removed — invalid schema field)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
ANcpLua and others added 2 commits February 22, 2026 04:34
Five agents with baked-in identities (souls): opus-captain decomposes
via structured ticket format, researcher + synthesizer run in parallel,
clarity reads their raw output for gaps, haiku-janitor flags bloat.

Decomposition gate: Opus must fill SUBTASK/OWNER/EXPECTED/DEPENDENCY
for every subtask or stop — prevents underspecified briefs.

Synthesis gate: Opus gets one scoped intervention — flag internal
inconsistencies as ACTION:flagged only, no re-derivation.

Also upgrades hookify/conversation-analyzer to opus model.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Delete souls/ directory — content already inlined in agents/*.md
- Fix "four-model" → "five-agent" across all files
- Fix haiku model ID: haiku-4-5 → haiku-4-5-20251001 in README
- Update plugin counts: 7→8 plugins, 22→23 commands, 5→6 skills, 9→14 agents
- Remove souls/ references from README, marketplace.json, plugin.json, CHANGELOG
- Fix dispatch flow description in SKILL.md and commands/council.md
- Fix clarity escalation rule: "incorporate" → "surface verbatim, do not fill"
- Add BLOAT_FLAG procedure to haiku-janitor and captain escalation rules
- Add agents declaration to plugin.json (later removed — invalid schema field)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@ANcpLua ANcpLua force-pushed the feat/council-plugin branch from 0302c07 to 344ab2b Compare February 22, 2026 03:34
@ANcpLua ANcpLua merged commit 1fbfe31 into main Feb 22, 2026
6 checks passed
@ANcpLua ANcpLua deleted the feat/council-plugin branch February 22, 2026 03:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants