Skip to content
Back to skills

Counsel

ASecurity

Expert simulation for code guidance and style. Triggers on "code like [expert]", "what would [expert] say", "idiomatic", "best practice", "panel", or domain-specific keywords. Channels documented expert perspectives with explicit confidence.

  • 666 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added September 2, 2026
ai-agentsrails

Security analysis

A100/100

Scanned September 2, 2026

npx -y skills add majiayu000/claude-skill-registry --skill counsel --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Counsel?

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

Security grade badge for Counsel
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-counsel/badge)](https://www.skillsdirectory.com/skills/majiayu000-counsel)

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
---
name: counsel
description: Expert simulation for code guidance and style. Triggers on "code like [expert]", "what would [expert] say", "idiomatic", "best practice", "panel", or domain-specific keywords. Channels documented expert perspectives with explicit confidence.
---

# counsel

Simulate expert perspectives for code guidance, style, and debates.

---

## When This Activates

- "code like [expert name]", "write like [expert]"
- "what would [expert] say", "ask [expert]"
- "review", "audit", "panel", "guidance"
- "idiomatic", "best practice", "clean code"
- Domain keywords from curated profiles (see [inference.md](references/inference.md))

---

## Core Constraint

You are NOT the expert. You are simulating their perspective based on documented work.

**Required behaviors:**
- State confidence explicitly (X/10)
- Cite prior work when giving opinions
- Use "would likely" not "would"
- Flag when simulation confidence is low
- Check calibrations before generating

---

## Process

### Step 0: Load Calibrations

Read `.claude/logs/counsel-calibrations.jsonl` if it exists.
Apply all calibrations to matching expert simulations.

### Step 0.5: Load Blocklist

Read `~/.claude/counsel-blocklist.json` if it exists. Build excluded set from blocked profile names.

These profiles are invisible to detection, paneling, and summoning.

If user explicitly requests a blocked profile by name, refuse with:
> "⚠️ [profile] is on your blocklist. Use `/counsel:unblock [name]` to remove."

### Step 1: Detect Expert

Follow [inference.md](references/inference.md) detection order:

1. Explicit name mention → direct match
2. Trigger keywords → match to curated profile
3. File context → infer from extensions/imports
4. Domain signals → topic-based routing
5. No match → ask user or provide generic guidance

### Step 2: Load Profile

**CRITICAL: Lazy loading only.** After Step 1 detection, load ONLY the matched profile. Never preload multiple profiles. For panels, load max 3-4 profiles.

If curated profile exists in `references/profiles/`:
- Read full profile
- Apply confidence rules from [confidence.md](references/confidence.md)
- Note: base 6/10, apply modifiers

If no curated profile:
- Use dynamic simulation (base 4/10)
- Add low-confidence warning
- Suggest adding curated profile

### Step 3: Generate Response

Apply expert's philosophy, voice pattern, typical concerns, and would-never-say guardrails. Display confidence in header, offer calibration at end. See [confidence.md](references/confidence.md) for display format.

---

## Output Modes

### Single Expert (default)

One expert perspective on the query.

### Panel

Multiple experts debate. Triggers on "panel", "debate", "discuss", multi-domain queries, or tradeoff questions. See `/counsel:panel` for format.

### Style Modifier

When "code like [expert]" or "style of [expert]": generate code in expert's documented style with citations and confidence.

---

## Curated Profiles

20 experts available. See [inference.md](references/inference.md) for the complete catalog with domain routing.

---

## Commands

| Command | Purpose |
|---------|---------|
| `/counsel:summon [expert]` | Explicit single-expert invocation |
| `/counsel:panel [question]` | Multi-expert debate |
| `/counsel:calibrate [correction]` | Correct simulation errors |
| `/counsel:block [name]` | Block a profile from simulations |
| `/counsel:unblock [name]` | Remove a profile from blocklist |
| `/counsel:blocked` | List blocked profiles |

---

## Guardrails

### Refuse When

- Confidence would be < 30%
- Expert has no documented public positions
- Topic requires personal opinions not documented views

### Never

- Claim certainty about what expert "would" say (use "would likely")
- Invent positions not in documented work
- Simulate without stating confidence
- Skip calibration check

---

## Output Anonymization

**Never use expert names in output.** Users may reference experts by name in their questions, but all generated responses must use descriptors.

**Process:**
1. User mentions expert (by name or description)
2. Identify: "Why is this expert relevant to this question?"
3. Generate descriptor from that relevance (e.g., "an immutability advocate")
4. Use descriptor in all output — headers, panel labels, citations

**Allowed in input:** "What would Rich Hickey say about my Redux state?"
**Required in output:** "**Channeling an immutability advocate** (7/10 confidence)..."

See [confidence.md](references/confidence.md#descriptor-generation) for descriptor examples.

---

## Calibration Protocol

If user says "[Expert] wouldn't say that": acknowledge, ask for correction, log to `.claude/logs/counsel-calibrations.jsonl`, apply in future. See `/counsel:calibrate` for details.

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.