.claude/skills/dx-council-lang/SKILL.md
Language design expert panel. Use when user says 'ask the council' or needs expert opinions on language syntax, DX tradeoffs, or ergonomics questions for NeoHaskell. Selects 3 relevant experts from a 19-person roster and researches their actual positions.
npx skillsauth add neohaskell/neohaskell dx-council-langInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Select the 3 most relevant experts from a 19-person roster based on the question, research their real opinions via web search, and synthesize into a consensus recommendation.
User says "ask the council" (or variants) followed by a language design question.
| # | Expert | Lens | Community | |---|--------|------|-----------| | 1 | Matz | Developer happiness | Ruby | | 2 | DHH | Convention over config | Rails | | 3 | Bob Nystrom | Function coloring | Dart/PL | | 4 | matklad | Syntax vs semantics | Rust/Zig | | 5 | Steve Klabnik | Strangeness budget | Rust | | 6 | Fernando Borretti | Language pragmatics | Austral | | 7 | Scott Wlaschin | FP for enterprise | F# | | 8 | withoutboats | Essential complexity | Rust | | 9 | Evan Czaplicki | Radical simplicity | Elm | | 10 | Rich Hickey | Simple vs easy | Clojure | | 11 | Hillel Wayne | Empirical evaluation | Cross | | 12 | Aaron Turon | Ergonomics framework | Rust | | 13 | Richard Feldman | Teaching-informed | Roc/Elm | | 14 | Felienne Hermans | Cognitive science | Education | | 15 | Don Syme | Anti-max-abstraction | F# | | 16 | Gary Bernhardt | Consistency as trust | Ruby/JS | | 17 | Alexis King | Type ergonomics | Haskell | | 18 | Sandi Metz | Craft and constraints | Ruby | | 19 | Andrey Breslav | Pragmatic interop | Kotlin |
| Question Type | Most Relevant Experts | |---------------|----------------------| | Function syntax | Nystrom, matklad, Wlaschin, Feldman, Syme | | Type annotations | matklad, Syme, King, Wlaschin, Borretti | | Effect handling | Nystrom, withoutboats, Syme, Czaplicki, Hickey | | Keywords/naming | Klabnik, Matz, DHH, Breslav | | Beginner friendliness | Hermans, Feldman, Klabnik, Czaplicki, Wlaschin | | Pattern matching | matklad, withoutboats, King, Feldman | | Module system | Borretti, matklad, Breslav | | Error handling | Czaplicki, Wlaschin, Bernhardt, King | | Type system scope | Syme, Hickey, King, withoutboats | | Overall philosophy | Hickey, Matz, Czaplicki, Borretti, Klabnik | | Consistency/trust | Bernhardt, matklad, Wayne, Borretti | | Teaching/adoption | Hermans, Feldman, Wayne, Klabnik, Czaplicki |
COUNCIL QUESTION: [Restate the exact design question]
CONTEXT: [Relevant NeoHaskell decisions already made]
OPTIONS: [If presented, list them. Otherwise identify the option space.]
Show selection with reasoning:
SELECTED PANEL:
1. [Expert] — [why relevant to THIS question]
2. [Expert] — [why relevant to THIS question]
3. [Expert] — [why relevant to THIS question]
CONSIDERED BUT EXCLUDED: [1-2 names and why less relevant here]
For each expert, search for their actual writings:
"[Expert Name]" language design [topic][Expert's blog/site] [keywords]"[Expert Name]" [specific syntax or feature]Base answers on confirmed positions. Mark inference explicitly.
## Council Verdict: [QUESTION SUMMARY]
### Panel Selected
| Expert | Lens | Why Selected |
|--------|------|--------------|
| [name] | [lens] | [1-sentence reason] |
### Quick Tally
| Verdict | Experts |
|---------|---------|
| SUPPORT | [names] |
| OPPOSE | [names] |
| CONDITIONAL | [names] |
### Consensus Position
[1-2 short paragraphs]
### Key Arguments FOR
- [Expert]: [argument]
### Key Arguments AGAINST
- [Expert]: [argument]
### Conditions and Caveats
[conditional constraints]
### Final Recommendation
**The council recommends:** [clear recommendation]
**Confidence:** [HIGH / MEDIUM / LOW]
**Dissent strength:** [STRONG / MILD / NONE]
Klabnik (Strangeness Budget): Every language has a budget of unfamiliar concepts. Spend on core innovation, keep everything else familiar.
Hickey (Simple vs Easy): Simple = few interleaved concepts. Easy = familiar. Both matter, don't confuse them.
Feldman (Teaching-Informed): Teaching Elm to thousands informed every Roc decision. The learning curve is a design failure.
Czaplicki (Radical Simplicity): Add features by subtraction. Error messages are UX.
Syme (Anti-Max-Abstraction): Haskell-style typeclasses are over-abstraction for most code.
Borretti (Language Pragmatics): "The code that gets written is the code that's easier to write."
matklad (Syntax vs Semantics): Most "ugly syntax" complaints are semantics in disguise. True syntax problems: visual noise, refactoring friction, linear readability.
See ${CLAUDE_SKILL_DIR}/references/experts.md for full profiles.
development
NeoHaskell coding style reference and enforcement rules. Load when writing, reviewing, or modifying any Haskell code in the NeoHaskell project. Triggers on 'NeoHaskell style', 'NeoHaskell conventions', 'how to write NeoHaskell', 'code style', 'style guide'.
development
Security & Code Quality review for NeoHaskell. Use when reviewing code changes, PRs, or architectural decisions for security implications. Evaluates OWASP, NIST, EU compliance. Handles pipeline phases 2 (ADR review) and 10 (implementation review).
testing
Testing QA Designer for NeoHaskell. Designs comprehensive test specifications with exhaustive edge cases, boundary conditions, and happy paths BEFORE implementation. Handles pipeline phase 6 (Test Spec Design). Outside-in TDD methodology.
development
Performance review for NeoHaskell targeting 50k req/s throughput. Use when reviewing code for performance implications, INLINE pragmas, strictness, and allocation patterns. Handles pipeline phases 3 (ADR review) and 11 (implementation review).