on main help sign in
chore(skills/crush-config): improve crush config skill (#2556)
1bb4627Christian Rocha
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
16```json
16```json
17{
17{
18 "$schema": "https://charm.land/crush.json",
18 "$schema": "https://charm.land/crush.json",
19+ "models": {},
20+ "providers": {},
21+ "mcp": {},
22+ "lsp": {},
19− "options": {}
23+ "options": {},
24+ "permissions": {},
25+ "tools": {}
20}
26}
21```
27```
22
28
23The `$schema` property enables IDE autocomplete but is optional.
29The `$schema` property enables IDE autocomplete but is optional.
24
30
25−## Common Configurations
31+## Common Tasks
26
32
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).
28
36
29−Add a relative path to keep project-specific skills alongside your code:
37+## Model Selection
30
38
31```json
39```json
32{
40{
33− "options": {
41+ "models": {
34− "skills_paths": ["./skills"]
42+ "large": {
35− }
43+ "model": "claude-sonnet-4-20250514",
36−}
44+ "provider": "anthropic",
37−```
45+ "max_tokens": 16384
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− }
57 },
46 },
58− "typescript": {
47+ "small": {
59− "command": "typescript-language-server",
48+ "model": "claude-haiku-4-20250514",
60− "args": ["--stdio"]
49+ "provider": "anthropic"
61 }
50 }
62 }
51 }
63}
52}
64```
53```
65
54
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`.
67
58
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
88
60
89```json
61```json
90{
62{
@@ -105,59 +77,90 @@ Add a relative path to keep project-specific skills alongside your code:
105}
77}
106```
78```
107
79
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`.
109
83
110−```json
84+## LSP Configuration
111−{
112− "permissions": {
113− "allowed_tools": ["view", "ls", "grep", "edit"]
114− }
115−}
116−```
117−
118−### Disable Built-in Tools
119
85
120```json
86```json
121{
87{
122− "options": {
88+ "lsp": {
123− "disabled_tools": ["bash", "sourcegraph"]
89+ "go": {
90+ "command": "gopls",
91+ "env": { "GOTOOLCHAIN": "go1.24.5" }
92+ },
93+ "typescript": {
94+ "command": "typescript-language-server",
95+ "args": ["--stdio"]
96+ }
124 }
97 }
125}
98}
126```
99```
127
100
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
129
105
130```json
106```json
131{
107{
132− "options": {
108+ "mcp": {
133− "disabled_skills": ["crush-config"]
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+ }
134 }
121 }
135}
122}
136```
123```
137
124
138−`disabled_skills` disables skills by name, including both builtin skills and
125+- `type` (required): `stdio`, `sse`, or `http`
139−skills discovered from disk paths.
126+- Additional fields: `env`, `disabled`, `disabled_tools`, `timeout`.
140
127
141−### Debug Options
128+## Options
142
129
143```json
130```json
144{
131{
145 "options": {
132 "options": {
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,
146− "debug": true,
142+ "debug": false,
147− "debug_lsp": true
143+ "debug_lsp": false,
144+ "attribution": {
145+ "trailer_style": "assisted-by",
146+ "generated_with": true
147+ }
148 }
148 }
149}
149}
150```
150```
151
151
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
153
159
154```json
160```json
155{
161{
156− "options": {
162+ "permissions": {
157− "attribution": {
163+ "allowed_tools": ["view", "ls", "grep", "edit"]
158− "trailer_style": "assisted-by",
159− "generated_with": true
160− }
161 }
164 }
162}
165}
163```
166```
@@ -167,9 +170,3 @@ skills discovered from disk paths.
167- `CRUSH_GLOBAL_CONFIG` - Override global config location
170- `CRUSH_GLOBAL_CONFIG` - Override global config location
168- `CRUSH_GLOBAL_DATA` - Override data directory location
171- `CRUSH_GLOBAL_DATA` - Override data directory location
169- `CRUSH_SKILLS_DIR` - Override default skills directory
172- `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