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.
View on GitHubSelect agents to install to:
npx add-skill https://github.com/saadshahd/moo.md/blob/main/counsel/skills/counsel/SKILL.md -a claude-code --skill counselInstallation paths:
.claude/skills/counsel/# 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