on main help sign in
chore(skills/crush-config): improve crush config skill (#2556)
commit1bb46270a9fc0a05e409804ab7950056384bf24b authorChristian Rocha <christian@rocha.is> dateTue 7 Apr 2026, 08:23 (6 months ago) parentd645f98
1 file changed+81−84
internal/skills/builtin/crush-config/SKILL.md+81−84
internal/skills/builtin/crush-config/SKILL.md+81−84
@@ -16,75 +16,47 @@ Crush uses JSON configuration files with the following priority (highest to lowe
1616```json
1717{
1818 "$schema": "https://charm.land/crush.json",
19− "options": {}
19+ "models": {},
20+ "providers": {},
21+ "mcp": {},
22+ "lsp": {},
23+ "options": {},
24+ "permissions": {},
25+ "tools": {}
2026}
2127```
2228
2329The `$schema` property enables IDE autocomplete but is optional.
2430
25−## Common Configurations
31+## Common Tasks
2632
27−### Project-Local Skills
33+- Add a custom provider: add an entry under `providers` with `type`, `base_url`, `api_key`, and `models`.
34+- Disable a builtin or local skill: add the skill name to `options.disabled_skills`.
35+- Add an MCP server: add an entry under `mcp` with `type` and either `command` (stdio) or `url` (http/sse).
2836
29−Add a relative path to keep project-specific skills alongside your code:
37+## Model Selection
3038
3139```json
3240{
33− "options": {
34− "skills_paths": ["./skills"]
35− }
36−}
37−```
38−
39−> [!IMPORTANT]
40−> Keep in mind that the following paths are loaded by default, so they DO NOT NEED to be added to `skill_paths`:
41−>
42−> * `.agents/skills`
43−> * `.crush/skills`
44−> * `.claude/skills`
45−> * `.cursor/skills`
46−
47−### LSP Configuration
48−
49−```json
50−{
51− "lsp": {
52− "go": {
53− "command": "gopls",
54− "env": {
55− "GOTOOLCHAIN": "go1.24.5"
56− }
41+ "models": {
42+ "large": {
43+ "model": "claude-sonnet-4-20250514",
44+ "provider": "anthropic",
45+ "max_tokens": 16384
5746 },
58− "typescript": {
59− "command": "typescript-language-server",
60− "args": ["--stdio"]
47+ "small": {
48+ "model": "claude-haiku-4-20250514",
49+ "provider": "anthropic"
6150 }
6251 }
6352}
6453```
6554
66−### MCP Servers
55+- `large` is the primary coding model; `small` is for summarization.
56+- Only `model` and `provider` are required.
57+- Optional tuning: `reasoning_effort`, `think`, `max_tokens`, `temperature`, `top_p`, `top_k`, `frequency_penalty`, `presence_penalty`, `provider_options`.
6758
68−```json
69−{
70− "mcp": {
71− "filesystem": {
72− "type": "stdio",
73− "command": "node",
74− "args": ["/path/to/mcp-server.js"]
75− },
76− "github": {
77− "type": "http",
78− "url": "https://api.githubcopilot.com/mcp/",
79− "headers": {
80− "Authorization": "Bearer $GH_PAT"
81− }
82− }
83− }
84−}
85−```
86−
87−### Custom Provider
59+## Custom Providers
8860
8961```json
9062{
@@ -105,59 +77,90 @@ Add a relative path to keep project-specific skills alongside your code:
10577}
10678```
10779
108−### Tool Permissions
80+- `type` (required): `openai`, `openai-compat`, or `anthropic`
81+- `api_key` supports `$ENV_VAR` syntax.
82+- Additional fields: `disable`, `system_prompt_prefix`, `extra_headers`, `extra_body`, `provider_options`.
10983
110−```json
111−{
112− "permissions": {
113− "allowed_tools": ["view", "ls", "grep", "edit"]
114− }
115−}
116−```
117−
118−### Disable Built-in Tools
84+## LSP Configuration
11985
12086```json
12187{
122− "options": {
123− "disabled_tools": ["bash", "sourcegraph"]
88+ "lsp": {
89+ "go": {
90+ "command": "gopls",
91+ "env": { "GOTOOLCHAIN": "go1.24.5" }
92+ },
93+ "typescript": {
94+ "command": "typescript-language-server",
95+ "args": ["--stdio"]
96+ }
12497 }
12598}
12699```
127100
128−### Disable Skills
101+- `command` (required), `args`, `env` cover most setups.
102+- Additional fields: `disabled`, `filetypes`, `root_markers`, `init_options`, `options`, `timeout`.
103+
104+## MCP Servers
129105
130106```json
131107{
132− "options": {
133− "disabled_skills": ["crush-config"]
108+ "mcp": {
109+ "filesystem": {
110+ "type": "stdio",
111+ "command": "node",
112+ "args": ["/path/to/mcp-server.js"]
113+ },
114+ "github": {
115+ "type": "http",
116+ "url": "https://api.githubcopilot.com/mcp/",
117+ "headers": {
118+ "Authorization": "Bearer $GH_PAT"
119+ }
120+ }
134121 }
135122}
136123```
137124
138−`disabled_skills` disables skills by name, including both builtin skills and
139−skills discovered from disk paths.
125+- `type` (required): `stdio`, `sse`, or `http`
126+- Additional fields: `env`, `disabled`, `disabled_tools`, `timeout`.
140127
141−### Debug Options
128+## Options
142129
143130```json
144131{
145132 "options": {
146− "debug": true,
147− "debug_lsp": true
133+ "skills_paths": ["./skills"],
134+ "disabled_tools": ["bash", "sourcegraph"],
135+ "disabled_skills": ["crush-config"],
136+ "tui": {
137+ "compact_mode": false,
138+ "diff_mode": "unified",
139+ "transparent": false
140+ },
141+ "auto_lsp": true,
142+ "debug": false,
143+ "debug_lsp": false,
144+ "attribution": {
145+ "trailer_style": "assisted-by",
146+ "generated_with": true
147+ }
148148 }
149149}
150150```
151151
152−### Attribution Settings
152+> [!IMPORTANT]
153+> The following skill paths are loaded by default and DO NOT NEED to be added to `skills_paths`:
154+> `.agents/skills`, `.crush/skills`, `.claude/skills`, `.cursor/skills`
155+
156+Other options: `context_paths`, `progress`, `disable_notifications`, `disable_auto_summarize`, `disable_metrics`, `disable_provider_auto_update`, `disable_default_providers`, `data_directory`, `initialize_as`.
157+
158+## Tool Permissions
153159
154160```json
155161{
156− "options": {
157− "attribution": {
158− "trailer_style": "assisted-by",
159− "generated_with": true
160− }
162+ "permissions": {
163+ "allowed_tools": ["view", "ls", "grep", "edit"]
161164 }
162165}
163166```
@@ -167,9 +170,3 @@ skills discovered from disk paths.
167170- `CRUSH_GLOBAL_CONFIG` - Override global config location
168171- `CRUSH_GLOBAL_DATA` - Override data directory location
169172- `CRUSH_SKILLS_DIR` - Override default skills directory
170−
171−## Provider Types
172−
173−- `openai` - For OpenAI or OpenAI-compatible APIs that route through OpenAI
174−- `openai-compat` - For non-OpenAI providers with OpenAI-compatible APIs
175−- `anthropic` - For Anthropic-compatible APIs