{"id":"4a32b04f-cc2c-4047-8376-070619345a95","shortId":"8Gy8Dy","kind":"skill","title":"ray-skill","tagline":"🔧 My DEV env setup","description":"# Ray Skill: PHP-First Debugging (Curl Edition)\n\nThis skill integrates Spatie's Ray with the AI agent using `curl` to interact with the Ray MCP. It prioritizes a fast, tool-independent debugging loop.\n\n## Primary Workflow\n\n### 1. Inject & Prepare\nInsert the `ray()` call into the relevant PHP file.\n- **Tools**: Use `replace` or `write_file`.\n- **Snippet**: `ray($var)->label('Debug Point');` or `ray()->trace();`.\n- **Cache Warning**: In environments like Magento, you **MUST** flush relevant caches (e.g., `bin/magento cache:flush layout full_page`) after injection.\n\n### 2. Execute\nTrigger the code execution.\n- **Web**: Refresh the browser or use `curl -k -I <URL>`.\n- **CLI**: Run the relevant command or script.\n\n### 3. Discover (One-time per session)\nFind the active Ray window to target the correct project.\n```bash\ncurl -s -X POST http://localhost:2411/mcp \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json, text/event-stream\" \\\n  -d '{\"jsonrpc\": \"2.0\", \"method\": \"tools/call\", \"params\": {\"name\": \"get_ray_windows\", \"arguments\": {}}, \"id\": 1}'\n```\n*Note the `projectName` and `hostname` from the result.*\n\n### 4. Capture Logs\nRetrieve the logs using the discovered project name.\n```bash\ncurl -s -X POST http://localhost:2411/mcp \\\n  -H \"Content-Type: application/json\" \\\n  -H \"Accept: application/json, text/event-stream\" \\\n  -d '{\"jsonrpc\": \"2.0\", \"method\": \"tools/call\", \"params\": {\"name\": \"get_ray_window_logs\", \"arguments\": {\"projectName\": \"default\", \"limit\": 5}}, \"id\": 1}'\n```\n\n### 5. Cleanup\nRemove injected `ray()` calls immediately after verification.\n\n## MCP Tool Reference (via Curl)\n- `get_ray_windows`: Lists active projects and hostnames.\n- `get_ray_window_logs`: Retrieves logs (requires `projectName`).\n- `send_ray_clear_all`: Clears the window.\n- `send_custom_html_output`: Sends rich HTML to Ray.\n\n## Cache-Heavy Environments (e.g. Magento)\nAlways assume the template is cached.\n1. Inject `ray()`.\n2. `bin/magento cache:flush layout full_page`.\n3. Trigger page load.\n4. Capture logs.\n5. Revert changes + `bin/magento cache:flush`.","tags":["ray","skill","dotfiles","grimlink","agent-skills","ai-tools","bash","git","homebrew","laravel-valet","macos","magento2"],"capabilities":["skill","source-grimlink","skill-ray-skill","topic-agent-skills","topic-ai-tools","topic-bash","topic-dotfiles","topic-git","topic-homebrew","topic-laravel-valet","topic-macos","topic-magento2","topic-nodejs","topic-php","topic-terminal"],"categories":["dotfiles"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/GrimLink/dotfiles/ray-skill","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add GrimLink/dotfiles","source_repo":"https://github.com/GrimLink/dotfiles","install_from":"skills.sh"}},"qualityScore":"0.454","qualityRationale":"deterministic score 0.45 from registry signals: · indexed on github topic:agent-skills · 8 github stars · SKILL.md body (2,080 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-18T19:08:54.993Z","embedding":null,"createdAt":"2026-05-18T13:14:35.068Z","updatedAt":"2026-05-18T19:08:54.993Z","lastSeenAt":"2026-05-18T19:08:54.993Z","tsv":"'1':45,159,212,271 '2':92,274 '2.0':149,197 '2411/mcp':137,185 '3':114,281 '4':168,285 '5':210,213,288 'accept':144,192 'activ':123,231 'agent':25 'ai':24 'alway':265 'application/json':142,145,190,193 'argument':157,206 'assum':266 'bash':131,179 'bin/magento':84,275,291 'browser':101 'cach':72,82,85,260,270,276,292 'cache-heavi':259 'call':51,218 'captur':169,286 'chang':290 'cleanup':214 'clear':245,247 'cli':107 'code':96 'command':111 'content':140,188 'content-typ':139,187 'correct':129 'curl':14,27,104,132,180,226 'custom':251 'd':147,195 'debug':13,41,67 'default':208 'dev':5 'discov':115,176 'e.g':83,263 'edit':15 'env':6 'environ':75,262 'execut':93,97 'fast':37 'file':56,62 'find':121 'first':12 'flush':80,86,277,293 'full':88,279 'get':154,202,227,235 'h':138,143,186,191 'heavi':261 'hostnam':164,234 'html':252,256 'id':158,211 'immedi':219 'independ':40 'inject':46,91,216,272 'insert':48 'integr':18 'interact':29 'jsonrpc':148,196 'k':105 'label':66 'layout':87,278 'like':76 'limit':209 'list':230 'load':284 'localhost':136,184 'log':170,173,205,238,240,287 'loop':42 'magento':77,264 'mcp':33,222 'method':150,198 'must':79 'name':153,178,201 'note':160 'one':117 'one-tim':116 'output':253 'page':89,280,283 'param':152,200 'per':119 'php':11,55 'php-first':10 'point':68 'post':135,183 'prepar':47 'primari':43 'priorit':35 'project':130,177,232 'projectnam':162,207,242 'ray':2,8,21,32,50,64,70,124,155,203,217,228,236,244,258,273 'ray-skil':1 'refer':224 'refresh':99 'relev':54,81,110 'remov':215 'replac':59 'requir':241 'result':167 'retriev':171,239 'revert':289 'rich':255 'run':108 'script':113 'send':243,250,254 'session':120 'setup':7 'skill':3,9,17 'skill-ray-skill' 'snippet':63 'source-grimlink' 'spati':19 'target':127 'templat':268 'text/event-stream':146,194 'time':118 'tool':39,57,223 'tool-independ':38 'tools/call':151,199 'topic-agent-skills' 'topic-ai-tools' 'topic-bash' 'topic-dotfiles' 'topic-git' 'topic-homebrew' 'topic-laravel-valet' 'topic-macos' 'topic-magento2' 'topic-nodejs' 'topic-php' 'topic-terminal' 'trace':71 'trigger':94,282 'type':141,189 'use':26,58,103,174 'var':65 'verif':221 'via':225 'warn':73 'web':98 'window':125,156,204,229,237,249 'workflow':44 'write':61 'x':134,182","prices":[{"id":"03d6e3ec-3205-4d10-b040-1f6f4313d8b0","listingId":"4a32b04f-cc2c-4047-8376-070619345a95","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"GrimLink","category":"dotfiles","install_from":"skills.sh"},"createdAt":"2026-05-18T13:14:35.068Z"}],"sources":[{"listingId":"4a32b04f-cc2c-4047-8376-070619345a95","source":"github","sourceId":"GrimLink/dotfiles/ray-skill","sourceUrl":"https://github.com/GrimLink/dotfiles/tree/main/skills/ray-skill","isPrimary":false,"firstSeenAt":"2026-05-18T13:14:35.068Z","lastSeenAt":"2026-05-18T19:08:54.993Z"}],"details":{"listingId":"4a32b04f-cc2c-4047-8376-070619345a95","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"GrimLink","slug":"ray-skill","github":{"repo":"GrimLink/dotfiles","stars":8,"topics":["agent-skills","ai-tools","bash","dotfiles","git","homebrew","laravel-valet","macos","magento2","nodejs","php","terminal","zsh"],"license":null,"html_url":"https://github.com/GrimLink/dotfiles","pushed_at":"2026-05-12T18:40:37Z","description":"🔧 My DEV env setup","skill_md_sha":"040e78e304a4d03c43616f47cefcfd5831ad1cab","skill_md_path":"skills/ray-skill/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/GrimLink/dotfiles/tree/main/skills/ray-skill"},"layout":"multi","source":"github","category":"dotfiles","frontmatter":{},"skills_sh_url":"https://skills.sh/GrimLink/dotfiles/ray-skill"},"updatedAt":"2026-05-18T19:08:54.993Z"}}