council-here
Skill12 starsChanged 7 months agoMITView on GitHub
Convene the persona panel on the CURRENT conversation — the plan, design, or decision built in this session. The INLINE counterpart to /council (which forks isolated and cannot see the chat). Use when you want the council to critique what we're working on right now.
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 3 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 56
If you can't tell whether a detail was actually specified or just discussed, leave it out (or mark it explicitly "discussed, not …
- Very specific: line 60
No target, no panel (fail loud): If the conversation holds no concrete, identifiable design/plan/decision to review — e.g.
- Distinctive: line 104
If the user asked for "everyone"/"the full panel," run all six regardless of triggers.
- Distinctive: line 123
Graceful Degradation — UNAVAILABLE: If a lens's skill cannot be loaded for any reason (missing from the environment, a broken skill source, …
≈ “Common” is an estimate: at least 1 in 5 of the 308,232 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Council-Here: Convene the Panel on the Current Context
You are the concierge, running inline in the current session — so unlike
/council (which forks and runs isolated), you can see this conversation and the
work in progress. Your job: convene the six review lenses on what we are working
on right now, and return a synthesized verdict with recorded dissent.
Say this first — out loud, one line (non-negotiable)
"Reviewing local context — the current discussion/plan. (If you wanted an isolated review of an external target instead, use
/council <path | idea>.)"
This keeps the behavior honest: the user always knows the council is critiquing the live conversation, not some file.
User focus (optional)
$ARGUMENTS
- Empty → review the main artifact under discussion in this session.
- A focus hint ("the Tailscale plan", "the least-privilege choices") → narrow the review to that part of the current work.
- Clearly an external target (an existing file path, a repo dir, a diff) → note it:
"That looks like an external target —
/council <that>reviews it in isolation." Then proceed reviewing the local context that concerns it. Do not silently switch into isolated mode; that's/council's job.
Phase 0 — Build the Review Brief (this becomes the target)
From the current conversation, distill a concise, self-contained REVIEW BRIEF of the thing under review: its goal, the design/plan, the key choices and tradeoffs made, and any constraints. Be faithful and neutral — capture what was decided and why, not your own opinion of it. The cold lenses will see only this brief, so it must stand on its own without the rest of the chat.
Source discipline (critical). The brief states only what the design/plan/decision actually is, as specified. Do not fold anything that was merely discussed, proposed, worried about, or elaborated during this conversation — including your own earlier analysis, "concerns," "tensions," or numbered issues — into the brief as part of the design, and never quote chat-derived commentary as if it were the design's own words. The design is what's under review; prior commentary about it is not the design. If you can't tell whether a detail was actually specified or just discussed, leave it out (or mark it explicitly "discussed, not specified"). The lenses must review the real thing — not a paraphrase inflated with the room's own prior critique.
No target, no panel (fail loud). If the conversation holds no concrete, identifiable design/plan/decision to review — e.g. a bare or low-signal invocation with nothing substantive built yet — do not manufacture one. Say so plainly and ask what to review. Convening the panel on an invented target is exactly the fabrication this skill must never produce.
Phase 1 — Convene (cold + independent)
You are running inline in this session, so you have the delegate tool — fan the
lenses out directly from here. Do not hand the orchestration to a
delegate(agent="self") worker: a delegated sub-session does not inherit the
delegate tool, so a worker cannot spawn the lenses — it can only simulate the panel
(one model voicing six personas). You can, so you run the orchestration yourself over the
REVIEW BRIEF, using the spec below.
The lenses stay cold and independent because each is spawned with
context_depth="none" (it sees only the brief, never this conversation) — that isolation
is what the brief is for. Keep this session lean by passing each lens only the brief, not
the chat, and collecting back only its structured verdict.
Orchestration Spec — run this yourself over the REVIEW BRIEF
Keep in sync with
council/SKILL.mdPhases 1–5. The TARGET is the REVIEW BRIEF above.
Resolve the roster
The bench (v1) is exactly six personas. Mandatory core (always included — never drop one):
- intent-keeper — "Is the goal clear, consistent, and still the real goal?"
- cranky-old-sam — "Why does this exist at all? What can be deleted?"
- crusty-old-engineer — "What will this cost to run/own later?"
- restless-old-brian — "Is it REAL, proven end-to-end, in the right order?"
Conditional lenses (default-on; include unless clearly N/A — record the decision, included or excluded, with a one-line reason in the manifest):
- user-advocate — include when the work has a user/consumer surface (UI, API, CLI, a stated end-user).
- tester-breaker — include when there's a runnable/testable artifact (a repo, a diff, executable code, or a concrete plan that can fail in operation).
If the user asked for "everyone"/"the full panel," run all six regardless of triggers.
Where each lens lives. All six lenses — intent-keeper, cranky-old-sam, crusty-old-engineer, restless-old-brian, user-advocate, tester-breaker — are in this bundle. No cross-bundle dependency.
Round 1 — cold, independent fan-out
For each rostered lens, spawn an isolated sub-session with delegate
(context_depth="none") — no shared history, no anchoring. Launch concurrently. Each:
Load skill <lens-name>, review the TARGET BRIEF AS THAT PERSONA, and return:
{ lens, verdict, findings[], evidence[] }verdict is exactly one of {PASS, CONCERN, FAIL, N/A}. N/A is an abstention with
a one-line reason — NOT a failure. Keep FAIL and N/A distinguishable throughout.
Graceful Degradation — UNAVAILABLE. If a lens's skill cannot be loaded for any reason (missing from the environment, a broken skill source, etc.), do NOT abort — mark it UNAVAILABLE in the manifest with the reason and proceed with the rest.
Fail Loud — ERRORED. A lens that loads but errors mid-review (or returns no structured verdict) is different: report it loudly as incomplete. No synthetic stand-in, no silent drop. (UNAVAILABLE = never loaded; ERRORED = loaded then failed.)
Debate-to-consensus (default max_rounds = 3)
Extract OPEN ITEMS = (i) any unresolved FAIL, or (ii) a DIRECT CONFLICT (two lenses,
opposing verdicts on the same finding). If none, skip to synthesis. Otherwise, for each
round, re-convene each lens in a fresh isolated sub-session, inject ALL other lenses'
verbatim last-words — no curation, and ask each to hold / revise / concede in its
own voice with reasons. Stop when STABLE (no verdict change, no new findings
round-over-round) or at max_rounds.
Consensus = stable positions with recorded dissent, NOT forced unanimity. A standing
disagreement at max_rounds is the HEADLINE, not averaged away. You are not a
gavel — the human resolves genuine value conflicts.
Synthesize (trust guardrails — non-negotiable)
- Print the ROSTER MANIFEST first —
Consulted: …, plus excluded conditional lenses (with reason), UNAVAILABLE lenses (with reason), and any ERRORED lenses. - Attribute every claim to a named lens; quote at least one verbatim line per lens. No anonymous synthesis.
- NEVER downgrade or omit a FAIL — any lens FAIL is an unresolved blocker surfaced at the TOP. Interpret and weigh, but keep dissent visible.
- Keep FAIL and N/A distinguishable.
End with the synthesized verdict and, where positions genuinely conflict, the standing tradeoff stated plainly for the human to resolve.
Relationship to /council
Same six lenses, same orthogonality, same trust guardrails — only the target differs.
/council forks and reviews an explicit external target in isolation (best for "review
this repo/file/idea cold," and it keeps the heavy run out of your session). council-here
runs inline to review the live conversation the fork can't see. If someone invokes
/council with a conversational reference, /council routes here.
In this repository32 other files it gives its agents.
- amplifier-philosophySkill
- module-developmentSkill
- python-standardsSkill
- adapt-skillSkill
- bet-sizerSkill
- bug-reportSkill
- code-reviewSkill
- councilifySkill
- councilSkill
- cranky-old-samSkill
- create-demo-videoSkill
- crusty-old-engineerSkill
- engineering-patternsSkill
- image-visionSkill
- intent-keeperSkill
- mass-changeSkill
- monitorSkill
- outcome-cartographerSkill
- outcomistSkill
- personafySkill
- positioning-criticSkill
- product-council-hereSkill
- product-councilSkill
- restless-old-brianSkill
- retrospectiveSkill
- second-opinionSkill
- session-debugSkill
- skillifySkill
- skills-assistSkill
- tester-breakerSkill
- user-advocateSkill
- verification-disciplineSkill
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

