Skip to content
Conduit

skill

consigliere

A second brain for Claude Code: Fable 5.1 plans the work read-only, Claude Opus writes the code. No API key, no plugin, no second vendor.

anilsoylu/consiglierecommunitylistedunreviewed

Set up

Skills are installed by placing their folder where your agent loads skills.

The download comes from github.com/anilsoylu/consigliere itself, not from our server, so what you get is exactly what its author published.

Install instructions come from the README

Skills do not use an MCP config. Follow the steps in the README below.

README

synced Oct 22, 2026

Consigliere

An orchestrator/worker topology for Claude Code. The root session decides and delegates; every code change happens in a subagent.

What holds that split is a PreToolUse hook rather than a prompt. orchestrator-gate.mjs denies the root every source edit and every command outside a closed allow-list, so delegation is structural — not a convention the model can talk itself out of halfway through a task. It runs entirely inside Claude Code: no second vendor, no API key, no plugin, no login.

Why

Authority has to sit where the tools are not. Version 1 ran an advisor whose advice the main loop could take or ignore, and its gate covered only Edit, Write and MultiEdit, so an unconsulted decision still reached the repository through Bash. Version 2 moves the tools instead of adding advice: the root holds the decisions, the subagents hold the write access.

How it works

                        Opus 5.5
                    root / orchestrator
                             |
    +-----------+-----------+-----------+-----------+
    |           |           |           |           |
explorer     reader    researcher     fork       worker
 Sonnet       Haiku       Opus      inherits      Opus
read-only   read-only   read-only    writes      writes
    |           |           |           |           |
    +-----------+-----------+-----------+-----------+
                             |
                          tester
                           Opus
                             |
                         reviewer
                           Opus
                             |
                             v
                        Opus 5.5
                    integrate + verify

That tree is not a convention the root is asked to follow. It cannot write source at all, so the only path from a decision to the repository runs through one of those roles. Everything installs under ~/.claude, or wherever CLAUDE_CONFIG_DIR points; DESIGN.md covers why each piece is shaped the way it is, and you should read it before you change a hook.

The roles

RoleModelEffortToolsWrites
workeropusxhighRead, Write, Edit, MultiEdit, Bash, Grep, Glob, Skillyes
testeropusmediumRead, Edit, Bash, Grep, Globtests only
explorersonnetmediumRead, Grep, Globno
readerhaikulowRead, Grep, Globno
researcheropusmediumRead, Grep, Glob, WebFetch, WebSearchno
revieweropusxhighRead, Grep, Globno

rules/orchestrator.md ships with the package and holds the rest: what the root owns, the six-part contract every delegation carries, what a subagent escalates instead of deciding, and the five-field report each one returns.

What's installed

HookWhat it does
orchestrator-gate.mjsdenies the root's source edits and every command outside the read-only, verifier, git and gh allow-lists
read-gate.mjsdenies the root a Read over 350 lines without limit, routing the question to reader
review-tier.mjsreads a diff and prints the review effort tier: none, medium, high, xhigh
git-discipline.mjsthe branch, the conventional subject, the review → /cpr order, leased force-pushes
commit-language.mjsblocks a git commit or gh pr create whose message reads as Turkish
comment-ratio.mjsnudges when an edit lands more comment lines than code
plan-capture.mjscopies an approved plan-mode plan into plans/, numbered and indexed
update-check.mjsone line at session start when a newer tag exists upstream
  • Rules: orchestrator.md, the behavioral spec Claude reads every session, and coding-discipline.md — minimum code, surgical edits, comments as a last resort, plain repo prose.
  • Skills: shadcn, grilling with /grill-me, systematic-debugging, implement-review-verify, review, /consig-upgrade, /yagni, /wizard, /almost-paid.

Requirements

  • Claude Code 2.1.267 or newer (ships Node). That is it, unless you run /almost-paid: its steps 3 and 5 call tools/cohort_value.py, which needs python3 on PATH and nothing beyond the standard library. Older builds dropped the effort: line on the models these agents name, so the ladder read as configured and ran flat. node doctor.mjs warns when the CLI it finds is below that. The opus alias the agents name resolves to Opus 5.5 from 2.1.280; older builds run those roles on Opus 5.
  • macOS, Linux, or Windows. Every hook is Node and every installed hook command is node "<absolute path>", so nothing here needs bash. The test suite runs on all three in CI.
  • Optional, only for --with-workflow: the ralph-loop plugin — /plugin install ralph-loop@claude-plugins-official.

Install

git clone https://github.com/anilsoylu/consigliere.git && cd consigliere && node install.mjs

The installer is idempotent. It backs up settings.json and any file it would overwrite (.consigliere.bak), merges its hooks without touching yours, and writes the settings below. Restart Claude Code afterward: the agent registry is read at startup, so the six roles do not exist until the next claude.

{
  "env": {
    "CLAUDE_CODE_DISABLE_1M_CONTEXT": "1",
    "CLAUDE_CODE_NO_FLICKER": "1",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
    "CLAUDE_CODE_DISABLE_ADVISOR_TOOL": "1"
  },
  "includeCoAuthoredBy": false,
  "syncClaudeAiSkills": false,
  "syncClaudeAiPlugins": false,
  "model": "claude-opus-5-5",
  "subagentPromptCacheTtl": "1h",
  "maxEffortLevel": "xhigh"
}

Those are filled in only where you have no value of your own, and the uninstaller reverts none of them, because a filled gap is indistinguishable from a choice later. DESIGN.md says what each key buys and which three env keys are deliberately left empty.

node doctor.mjs byte-compares every installed file against this repo; --probe adds one short Haiku run that verifies the gate's assumption against the Claude Code you have; --json is machine-readable. It reports a file you customized rather than flagging it, and exits non-zero only for hard failures such as an unusable settings.json; an incomplete install is a warning you fix by re-running the installer.

Optional extras

ExtraWhat it addsHow
Workflow ruleworkflow.md and the ralph-protocol skill: bounded execution loops, tasks/todo.md plans, a verifier hierarchy, plus the /clean, /pr-update, /cpr, /pr-ready, /optimize and /perf handoff skillsnode install.mjs --with-workflow
Merge-readiness graph/merge-readiness: four lenses read the diff in parallel, then every finding goes to a judge that did not write it and is told to refute it. Up to 13 agents a run, so nothing routes here on its ownnode install.mjs --with-merge-readiness
Release allow ruleseight Bash(...) entries in permissions.allow so an unattended release is not stopped at its first push — see Auto modenode install.mjs --with-release-permissions
implement-review-verifyone contract as a graph: a worker implements, a reviewer and a tester judge at one barrier, one fix round closes the findings. Five agents at mostships by default
reviewthe one review path: the tier check, one reviewer, then review-lint.mjs on what came back. [ADOPT] blocks the merge, [NOTE] ships as a follow-up; the reviewer closes with an Inefficiency pass whose items ship as [NOTE]ships by default

Auto mode

Consigliere ships no autoMode block. Claude Code's classifier reads the same instruction files Claude does, so the rules this package installs are already policy; restating them under autoMode would be a second, drift-prone encoding of one policy.

What the rules cannot express is your infrastructure, and that is yours to write in ~/.claude/settings.json. Start with environment, the only field that clears the hard_deny exfiltration rule. Keep the literal "$defaults" in every list. Reach for allow last, since an entry there is a mandatory exception that overrides matching soft denies. claude auto-mode defaults, config and critique print the built-in rules, what you actually get, and the ambiguous entries in your own.

Updating

cd consigliere && git pull && node install.mjs

Or type /consig-upgrade, which runs that in the clone the state file records, then the doctor, and reports what changed. Re-running the installer is the whole update: the optional assets you opted into are recorded in the state file and reinstalled every run.

If you changed an installed file on purpose, add it to "pins": ["agents/reviewer.md"] in ~/.claude/.consigliere-state.json and the installer will leave it alone. Paths are relative to the config dir. install.mjs prints a line for each file it kept and node doctor.mjs counts a pinned file as a pass rather than drift. Without a pin, each upgrade restores this repo's copy over yours and leaves a .consigliere.bak. uninstall.mjs ignores pins and removes everything it installed.

Uninstall

node uninstall.mjs strips only its own hook entries from settings.json and leaves your backups in place. It does not revert the recommended settings, and it deletes an installed file only while that file is still byte-identical to this repo's copy — edit one and the uninstaller keeps it and tells you.

Limits

  • Model overrides: /merge-readiness settles disputed findings on Fable, and on a plan that can't reach Fable, Claude Code silently falls back to the inherited model. CLAUDE_CODE_SUBAGENT_MODEL_FORCE and CLAUDE_CODE_SUBAGENT_MODEL override model: in every agent file, so leave them unset; node doctor.mjs warns when either is set. See Requirements.
  • The gate is a boundary, not a sandbox. It reads the command text, so it stops the root's mistakes rather than a determined bypass; a worker holds every tool the root gave up.
  • Two skills still need a POSIX shell, and one needs Python: wizard generates bash around template.sh, and systematic-debugging bisects test pollution with find-polluter.sh. On Windows, run those two under Git Bash or WSL. almost-paid prices its cohorts with tools/cohort_value.py, so steps 3 and 5 need python3 on PATH (standard library only, no packages).
  • The auto-mode classifier can still deny a push, merge or tag. The gate allowing a command is not the classifier allowing it; --with-release-permissions writes the rules that clear it.
  • Cloud sessions run ungated. Claude Code on the web and Projects load no user-scope hooks or rules, so a session started there runs with none of this package's gates.

License

Apache-2.0. See LICENSE and NOTICE. The vendored skills below keep their upstream terms.

SkillUpstreamWhat changed here
shadcnshadcn-ui/ui, MITthe files under its rules/ are modified
clean, cpr, pr-update, pr-ready, perfOutThisLife/brooklyn-skills, MITdropped references to sibling skills this package doesn't ship; perf gained the routing line to /optimize
grilling, grill-memattpocock/skills, MITa plain-markdown question format, and the handoff into the delegation contract
wizardmattpocock/skills, MITthree places: one paragraph on what may be handed to a human at all, a step 1 that reads key names instead of live secrets, and a template.sh that single-quotes values into .env and unquotes them back out
systematic-debuggingobra/superpowers, MITfour places: a Phase 1 that demands a failing-then-passing command before any Phase 2, grep-tagged debug instrumentation, a ranked 3-5 hypothesis Phase 3, and a Phase 4 that sends the same error back to the root after two failed fixes; plus two superpowers:* references swapped for the equivalent coding-discipline.md rules
almost-paidnestyme/awesome-prompts, shared publicly for reuse, no license file upstreamcohort_value.py moved from the repo-level tools/ into the skill, its _common helpers inlined, its template path adjusted, and the dashboard placeholder match made whitespace-tolerant
optimizeoriginal to this repo—
↑↓ navigate openesc close