[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71PYQZWN3S1ACSTM3V412TT":3,"skill-same:01M71PYQZWN3S1ACSTM3V412TT":64},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":14,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M71PYQZWN3S1ACSTM3V412TT","create-hook",null,"Create Cursor hooks. Use when you want to create a hook, write hooks.json, add hook scripts, or automate behavior around agent events.","wesley642\u002Falfasoft-laravel-project","wesley642","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F71295745?v=4","01M71PWXVFCFK6GWHQN4X9W1MY","Wesley Alves","01M71PWXWP4XWGWYTK6SVSB8Y6",0,"MIT","https:\u002F\u002Fgithub.com\u002Fwesley642\u002Falfasoft-laravel-project\u002Fblob\u002Fmain\u002F.cursor\u002Fskills-cursor\u002Fcreate-hook\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"create hook","create","hook","hooks","use","when","you","cursor","json","behavior","scripts","write","add","events","automate","2026-11-10 13:02:02",false,"---\nname: create-hook\ndescription: >-\n  Create Cursor hooks. Use when you want to create a hook, write hooks.json, add\n  hook scripts, or automate behavior around agent events.\n---\n# Creating Cursor Hooks\n\nCreate hooks when you want Cursor to run custom logic before or after agent events. Hooks are scripts or prompt-based checks that exchange JSON over stdin\u002Fstdout and can observe, block, modify, or follow up on behavior.\n\nWhen the user asks for a hook, don't stop at describing the format. Gather the missing requirements, then create or update the hook files directly.\n\n## Gather Requirements\n\nBefore you write anything, determine:\n\n1. **Scope**: Should this be a project hook or a user hook?\n2. **Trigger**: Which event should run the hook?\n3. **Behavior**: Should it audit, deny\u002Fallow, rewrite input, inject context, or continue a workflow?\n4. **Implementation**: Should it be a command hook (script) or a prompt hook?\n5. **Filtering**: Does it need a matcher so it only runs for certain tools, commands, or subagent types?\n6. **Safety**: Should failures fail open or fail closed?\n\nInfer these from the conversation when possible. Only ask for the missing pieces.\n\n## Choose the Right Location\n\n- **Project hooks**: `.cursor\u002Fhooks.json` and `.cursor\u002Fhooks\u002F*`\n- **User hooks**: `~\u002F.cursor\u002Fhooks.json` and `~\u002F.cursor\u002Fhooks\u002F*`\n\nPath behavior matters:\n\n- **Project hooks** run from the project root, so use paths like `.cursor\u002Fhooks\u002Fmy-hook.sh`\n- **User hooks** run from `~\u002F.cursor\u002F`, so use paths like `.\u002Fhooks\u002Fmy-hook.sh` or `hooks\u002Fmy-hook.sh`\n\nPrefer **project hooks** when the behavior should be shared with the repository and checked into version control.\n\n## Choose the Hook Event\n\nUse the narrowest event that matches the user's goal.\n\n### Common Agent events\n\n- `sessionStart`, `sessionEnd`: set up or audit a session\n- `preToolUse`, `postToolUse`, `postToolUseFailure`: work across all tools\n- `subagentStart`, `subagentStop`: control or continue Task\u002Fsubagent workflows\n- `beforeShellExecution`, `afterShellExecution`: gate or audit terminal commands\n- `beforeMCPExecution`, `afterMCPExecution`: gate or audit MCP tool calls\n- `beforeReadFile`, `afterFileEdit`: control file reads or post-process edits\n- `beforeSubmitPrompt`: validate prompts before they are sent\n- `preCompact`: observe context compaction\n- `stop`: handle agent completion\n- `afterAgentResponse`, `afterAgentThought`: track agent output or reasoning\n\n### Tab events\n\n- `beforeTabFileRead`: control file access for inline completions\n- `afterTabFileEdit`: post-process edits made by Tab\n\n### Quick event chooser\n\n- **Block or approve shell commands** -> `beforeShellExecution`\n- **Audit shell output** -> `afterShellExecution`\n- **Format files after edits** -> `afterFileEdit`\n- **Block or rewrite a specific tool call** -> `preToolUse`\n- **Add follow-up context after a tool succeeds** -> `postToolUse`\n- **Control whether subagents can run** -> `subagentStart`\n- **Chain subagent loops** -> `subagentStop`\n- **Check prompts for secrets or policy violations** -> `beforeSubmitPrompt`\n- **Protect MCP calls** -> `beforeMCPExecution`\n\n## Hooks File Format\n\nCreate a `hooks.json` file with schema version 1:\n\n```json\n{\n  \"version\": 1,\n  \"hooks\": {\n    \"afterFileEdit\": [\n      {\n        \"command\": \".cursor\u002Fhooks\u002Fformat.sh\"\n      }\n    ]\n  }\n}\n```\n\nEach hook definition can include:\n\n- `command`: shell command or script path\n- `type`: `\"command\"` or `\"prompt\"` (defaults to `\"command\"`)\n- `timeout`: timeout in seconds\n- `matcher`: filter for when the hook runs\n- `failClosed`: block the action when the hook crashes, times out, or returns invalid JSON\n- `loop_limit`: mainly for `stop` and `subagentStop` follow-up loops\n\n## Matchers\n\nUse matchers to avoid running the hook on every event.\n\n- `preToolUse` \u002F `postToolUse` \u002F `postToolUseFailure`: match on tool type such as `Shell`, `Read`, `Write`, `Task`, or MCP tools in `MCP: ...` form\n- `subagentStart` \u002F `subagentStop`: match on subagent type such as `generalPurpose`, `explore`, or `shell`\n- `beforeShellExecution` \u002F `afterShellExecution`: match on the full shell command string\n- `beforeReadFile`: match on tool type such as `Read` or `TabRead`\n- `afterFileEdit`: match on tool type such as `Write` or `TabWrite`\n- `beforeSubmitPrompt`: matches the value `UserPromptSubmit`\n\nImportant matcher warning:\n\n- Matchers use JavaScript-style regular expressions, not POSIX\u002Fgrep syntax\n- Do not use POSIX classes like `[[:space:]]`; use JavaScript equivalents like `\\s`\n- If the matcher is at all tricky, start by getting the hook working without one or with a very simple matcher, then tighten it after the hook is confirmed to load and fire\n\nIf the user wants a hook for only one risky command family, prefer script-side filtering for the first working version and add a matcher afterward only if it is simple and clearly correct.\n\n## Command Hooks\n\nCommand hooks are the default. They receive JSON on stdin and can return JSON on stdout.\n\nBefore using a command hook, verify that every executable it depends on will actually run in the hook environment:\n\n- the script itself has a valid shebang and is executable\n- any helper binary it calls is already installed and on `$PATH`\n- if the script depends on tools like `jq`, `python3`, `node`, or repo-local CLIs, verify that explicitly before finishing\n\nDo not assume a binary exists just because it is common on your machine.\n\n### Minimal project-level example\n\n```json\n{\n  \"version\": 1,\n  \"hooks\": {\n    \"beforeShellExecution\": [\n      {\n        \"command\": \".cursor\u002Fhooks\u002Fapprove-network.sh\",\n        \"matcher\": \"curl|wget|nc \",\n        \"failClosed\": true\n      }\n    ]\n  }\n}\n```\n\n```bash\n#!\u002Fbin\u002Fbash\ninput=$(cat)\ncommand=$(echo \"$input\" | jq -r '.command \u002F\u002F empty')\n\nif [[ \"$command\" =~ curl|wget|nc ]]; then\n  echo '{\n    \"permission\": \"ask\",\n    \"user_message\": \"This command may make a network request. Please review it before continuing.\",\n    \"agent_message\": \"A hook flagged this shell command as a possible network call.\"\n  }'\n  exit 0\nfi\n\necho '{ \"permission\": \"allow\" }'\nexit 0\n```\n\nImportant behavior:\n\n- Exit code `0`: success\n- Exit code `2`: block the action, same as returning deny\n- Other non-zero exit codes: fail open by default unless `failClosed: true`\n\nAlways make hook scripts executable after creating them.\n\n## Prompt Hooks\n\nPrompt hooks are useful when the policy is easier to describe than to script.\n\n```json\n{\n  \"version\": 1,\n  \"hooks\": {\n    \"beforeShellExecution\": [\n      {\n        \"type\": \"prompt\",\n        \"prompt\": \"Does this command look safe to execute? Only allow read-only operations. Here is the hook input: $ARGUMENTS\",\n        \"timeout\": 10\n      }\n    ]\n  }\n}\n```\n\nUse prompt hooks for lightweight policy decisions. Prefer command hooks when the logic must be deterministic or when the user needs exact, auditable behavior.\n\n## Event Output Cheat Sheet\n\nUse the event's supported output fields only.\n\n- `preToolUse`: can return `permission`, `user_message`, `agent_message`, and `updated_input`\n- `postToolUse`: can return `additional_context`; for MCP tools it can also return `updated_mcp_tool_output`\n- `subagentStart`: can return `permission` and `user_message`\n- `subagentStop`: can return `followup_message`\n- `beforeShellExecution` \u002F `beforeMCPExecution`: can return `permission`, `user_message`, and `agent_message`\n\nWhen the user wants to rewrite a tool call, prefer `preToolUse`. When they want to gate only shell commands, prefer `beforeShellExecution`.\n\n## Implementation Workflow\n\n1. Pick the correct location and event\n2. Create or update the correct `hooks.json` file\n3. Start with no matcher or the simplest safe matcher\n4. Create the script under the matching hooks directory\n5. Read stdin JSON and implement the required behavior\n6. Make the script executable\n7. Verify any helper executables the script uses are installed and on `$PATH`\n8. Trigger the relevant action to test the hook\n9. Verify behavior in Cursor's **Hooks** settings tab or the **Hooks** output channel\n\nIf you are editing an existing hooks setup, preserve unrelated hooks and only change the minimum necessary entries.\n\n## Validation and Troubleshooting\n\n- Cursor watches `hooks.json` and reloads on save\n- If hooks still do not load, restart Cursor\n- Double-check relative paths:\n  - project hooks -> relative to the project root\n  - user hooks -> relative to `~\u002F.cursor\u002F`\n- If the hook does not appear to load at all, suspect matcher\u002Fconfig parsing first; remove the matcher and confirm the base hook works before tightening it\n- If the script runs external commands, verify each one is installed and reachable from the hook process with `command -v` or equivalent\n- If the hook should block on failure, set `failClosed: true`\n- If a command hook should intentionally block, returning exit code `2` is valid\n\n## Final Checklist\n\n- [ ] Used the correct hook location and path style\n- [ ] Chose the narrowest correct event\n- [ ] Added a matcher when appropriate\n- [ ] Returned only fields supported by that hook event\n- [ ] Made the script executable\n- [ ] Tested the hook by triggering the real event\n- [ ] Checked the Hooks tab or Hooks output channel if debugging was needed\n","# Creating Cursor Hooks\n\nCreate hooks when you want Cursor to run custom logic before or after agent events. Hooks are scripts or prompt-based checks that exchange JSON over stdin\u002Fstdout and can observe, block, modify, or follow up on behavior.\n\nWhen the user asks for a hook, don't stop at describing the format. Gather the missing requirements, then create or update the hook files directly.\n\n## Gather Requirements\n\nBefore you write anything, determine:\n\n1. **Scope**: Should this be a project hook or a user hook?\n2. **Trigger**: Which event should run the hook?\n3. **Behavior**: Should it audit, deny\u002Fallow, rewrite input, inject context, or continue a workflow?\n4. **Implementation**: Should it be a command hook (script) or a prompt hook?\n5. **Filtering**: Does it need a matcher so it only runs for certain tools, commands, or subagent types?\n6. **Safety**: Should failures fail open or fail closed?\n\nInfer these from the conversation when possible. Only ask for the missing pieces.\n\n## Choose the Right Location\n\n- **Project hooks**: `.cursor\u002Fhooks.json` and `.cursor\u002Fhooks\u002F*`\n- **User hooks**: `~\u002F.cursor\u002Fhooks.json` and `~\u002F.cursor\u002Fhooks\u002F*`\n\nPath behavior matters:\n\n- **Project hooks** run from the project root, so use paths like `.cursor\u002Fhooks\u002Fmy-hook.sh`\n- **User hooks** run from `~\u002F.cursor\u002F`, so use paths like `.\u002Fhooks\u002Fmy-hook.sh` or `hooks\u002Fmy-hook.sh`\n\nPrefer **project hooks** when the behavior should be shared with the repository and checked into version control.\n\n## Choose the Hook Event\n\nUse the narrowest event that matches the user's goal.\n\n### Common Agent events\n\n- `sessionStart`, `sessionEnd`: set up or audit a session\n- `preToolUse`, `postToolUse`, `postToolUseFailure`: work across all tools\n- `subagentStart`, `subagentStop`: control or continue Task\u002Fsubagent workflows\n- `beforeShellExecution`, `afterShellExecution`: gate or audit terminal commands\n- `beforeMCPExecution`, `afterMCPExecution`: gate or audit MCP tool calls\n- `beforeReadFile`, `afterFileEdit`: control file reads or post-process edits\n- `beforeSubmitPrompt`: validate prompts before they are sent\n- `preCompact`: observe context compaction\n- `stop`: handle agent completion\n- `afterAgentResponse`, `afterAgentThought`: track agent output or reasoning\n\n### Tab events\n\n- `beforeTabFileRead`: control file access for inline completions\n- `afterTabFileEdit`: post-process edits made by Tab\n\n### Quick event chooser\n\n- **Block or approve shell commands** -> `beforeShellExecution`\n- **Audit shell output** -> `afterShellExecution`\n- **Format files after edits** -> `afterFileEdit`\n- **Block or rewrite a specific tool call** -> `preToolUse`\n- **Add follow-up context after a tool succeeds** -> `postToolUse`\n- **Control whether subagents can run** -> `subagentStart`\n- **Chain subagent loops** -> `subagentStop`\n- **Check prompts for secrets or policy violations** -> `beforeSubmitPrompt`\n- **Protect MCP calls** -> `beforeMCPExecution`\n\n## Hooks File Format\n\nCreate a `hooks.json` file with schema version 1:\n\n```json\n{\n  \"version\": 1,\n  \"hooks\": {\n    \"afterFileEdit\": [\n      {\n        \"command\": \".cursor\u002Fhooks\u002Fformat.sh\"\n      }\n    ]\n  }\n}\n```\n\nEach hook definition can include:\n\n- `command`: shell command or script path\n- `type`: `\"command\"` or `\"prompt\"` (defaults to `\"command\"`)\n- `timeout`: timeout in seconds\n- `matcher`: filter for when the hook runs\n- `failClosed`: block the action when the hook crashes, times out, or returns invalid JSON\n- `loop_limit`: mainly for `stop` and `subagentStop` follow-up loops\n\n## Matchers\n\nUse matchers to avoid running the hook on every event.\n\n- `preToolUse` \u002F `postToolUse` \u002F `postToolUseFailure`: match on tool type such as `Shell`, `Read`, `Write`, `Task`, or MCP tools in `MCP: ...` form\n- `subagentStart` \u002F `subagentStop`: match on subagent type such as `generalPurpose`, `explore`, or `shell`\n- `beforeShellExecution` \u002F `afterShellExecution`: match on the full shell command string\n- `beforeReadFile`: match on tool type such as `Read` or `TabRead`\n- `afterFileEdit`: match on tool type such as `Write` or `TabWrite`\n- `beforeSubmitPrompt`: matches the value `UserPromptSubmit`\n\nImportant matcher warning:\n\n- Matchers use JavaScript-style regular expressions, not POSIX\u002Fgrep syntax\n- Do not use POSIX classes like `[[:space:]]`; use JavaScript equivalents like `\\s`\n- If the matcher is at all tricky, start by getting the hook working without one or with a very simple matcher, then tighten it after the hook is confirmed to load and fire\n\nIf the user wants a hook for only one risky command family, prefer script-side filtering for the first working version and add a matcher afterward only if it is simple and clearly correct.\n\n## Command Hooks\n\nCommand hooks are the default. They receive JSON on stdin and can return JSON on stdout.\n\nBefore using a command hook, verify that every executable it depends on will actually run in the hook environment:\n\n- the script itself has a valid shebang and is executable\n- any helper binary it calls is already installed and on `$PATH`\n- if the script depends on tools like `jq`, `python3`, `node`, or repo-local CLIs, verify that explicitly before finishing\n\nDo not assume a binary exists just because it is common on your machine.\n\n### Minimal project-level example\n\n```json\n{\n  \"version\": 1,\n  \"hooks\": {\n    \"beforeShellExecution\": [\n      {\n        \"command\": \".cursor\u002Fhooks\u002Fapprove-network.sh\",\n        \"matcher\": \"curl|wget|nc \",\n        \"failClosed\": true\n      }\n    ]\n  }\n}\n```\n\n```bash\n#!\u002Fbin\u002Fbash\ninput=$(cat)\ncommand=$(echo \"$input\" | jq -r '.command \u002F\u002F empty')\n\nif [[ \"$command\" =~ curl|wget|nc ]]; then\n  echo '{\n    \"permission\": \"ask\",\n    \"user_message\": \"This command may make a network request. Please review it before continuing.\",\n    \"agent_message\": \"A hook flagged this shell command as a possible network call.\"\n  }'\n  exit 0\nfi\n\necho '{ \"permission\": \"allow\" }'\nexit 0\n```\n\nImportant behavior:\n\n- Exit code `0`: success\n- Exit code `2`: block the action, same as returning deny\n- Other non-zero exit codes: fail open by default unless `failClosed: true`\n\nAlways make hook scripts executable after creating them.\n\n## Prompt Hooks\n\nPrompt hooks are useful when the policy is easier to describe than to script.\n\n```json\n{\n  \"version\": 1,\n  \"hooks\": {\n    \"beforeShellExecution\": [\n      {\n        \"type\": \"prompt\",\n        \"prompt\": \"Does this command look safe to execute? Only allow read-only operations. Here is the hook input: $ARGUMENTS\",\n        \"timeout\": 10\n      }\n    ]\n  }\n}\n```\n\nUse prompt hooks for lightweight policy decisions. Prefer command hooks when the logic must be deterministic or when the user needs exact, auditable behavior.\n\n## Event Output Cheat Sheet\n\nUse the event's supported output fields only.\n\n- `preToolUse`: can return `permission`, `user_message`, `agent_message`, and `updated_input`\n- `postToolUse`: can return `additional_context`; for MCP tools it can also return `updated_mcp_tool_output`\n- `subagentStart`: can return `permission` and `user_message`\n- `subagentStop`: can return `followup_message`\n- `beforeShellExecution` \u002F `beforeMCPExecution`: can return `permission`, `user_message`, and `agent_message`\n\nWhen the user wants to rewrite a tool call, prefer `preToolUse`. When they want to gate only shell commands, prefer `beforeShellExecution`.\n\n## Implementation Workflow\n\n1. Pick the correct location and event\n2. Create or update the correct `hooks.json` file\n3. Start with no matcher or the simplest safe matcher\n4. Create the script under the matching hooks directory\n5. Read stdin JSON and implement the required behavior\n6. Make the script executable\n7. Verify any helper executables the script uses are installed and on `$PATH`\n8. Trigger the relevant action to test the hook\n9. Verify behavior in Cursor's **Hooks** settings tab or the **Hooks** output channel\n\nIf you are editing an existing hooks setup, preserve unrelated hooks and only change the minimum necessary entries.\n\n## Validation and Troubleshooting\n\n- Cursor watches `hooks.json` and reloads on save\n- If hooks still do not load, restart Cursor\n- Double-check relative paths:\n  - project hooks -> relative to the project root\n  - user hooks -> relative to `~\u002F.cursor\u002F`\n- If the hook does not appear to load at all, suspect matcher\u002Fconfig parsing first; remove the matcher and confirm the base hook works before tightening it\n- If the script runs external commands, verify each one is installed and reachable from the hook process with `command -v` or equivalent\n- If the hook should block on failure, set `failClosed: true`\n- If a command hook should intentionally block, returning exit code `2` is valid\n\n## Final Checklist\n\n- [ ] Used the correct hook location and path style\n- [ ] Chose the narrowest correct event\n- [ ] Added a matcher when appropriate\n- [ ] Returned only fields supported by that hook event\n- [ ] Made the script executable\n- [ ] Tested the hook by triggering the real event\n- [ ] Checked the Hooks tab or Hooks output channel if debugging was needed\n",{"name":5,"description":7},"main","f5f59d33ce4a06096dc1dfc82006092f26105d58",".cursor\u002Fskills-cursor\u002Fcreate-hook","https:\u002F\u002Fgithub.com\u002Fwesley642\u002Falfasoft-laravel-project","https:\u002F\u002Fgithub.com\u002Fwesley642","2026-04-29 10:53:16",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add wesley642\u002Falfasoft-laravel-project --skill create-hook",{"tool":56,"command":57},"bunx","bunx skills add wesley642\u002Falfasoft-laravel-project --skill create-hook",{"tool":59,"command":60},"pnpm","pnpm dlx skills add wesley642\u002Falfasoft-laravel-project --skill create-hook","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fwesley642\u002Falfasoft-laravel-project\u002Fblob\u002Fmain\u002F.cursor\u002Fskills-cursor\u002Fcreate-hook\u002FSKILL.md",true,[],[65,87,107,124,140,157],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":39},"01M71PZJ1F0F16RAZKR1TV6RDR","update-cursor-settings","Modify Cursor\u002FVSCode user settings in settings.json. Use when you want to change editor settings, preferences, configuration, themes, font size, tab size, format on save, auto save, keybindings, or any settings.json values.","https:\u002F\u002Fgithub.com\u002Fwesley642\u002Falfasoft-laravel-project\u002Fblob\u002Fmain\u002F.cursor\u002Fskills-cursor\u002Fupdate-cursor-settings\u002FSKILL.md",[],[72,31,73,74,75,76,77,32,78,79,80,81,82,30,29,28,83,84,85,86],"update cursor settings","update","settings","configuration","preferences","format","editor","values","size","change","vscode","auto","themes","settings.json","modify",{"skillNo":88,"name":89,"nameZh":6,"description":90,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":39},"01M71PZF72MMYJ8P3JTYT1BT5S","update-cli-config","View and modify Cursor CLI configuration settings in ~\u002F.cursor\u002Fcli-config.json. Use when the user wants to change CLI settings, configure permissions, switch approval mode, enable vim mode, toggle display options, configure sandbox, or manage any CLI preferences.","https:\u002F\u002Fgithub.com\u002Fwesley642\u002Falfasoft-laravel-project\u002Fblob\u002Fmain\u002F.cursor\u002Fskills-cursor\u002Fupdate-cli-config\u002FSKILL.md",[],[94,95,73,96,86,29,28,76,97,98,99,100,101,102,103,31,104,81,105,106],"config","cli","update cli config","sandbox","mode","vim","manage","switch","view","configure","options","permissions","display",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":39},"01M71PZCHV520K4S5SRRS4YMNG","statusline","Configure a custom status line in the CLI. Use when the user mentions status line, statusline, statusLine, CLI status bar, prompt footer customization, or wants to add session context above the prompt.","https:\u002F\u002Fgithub.com\u002Fwesley642\u002Falfasoft-laravel-project\u002Fblob\u002Fmain\u002F.cursor\u002Fskills-cursor\u002Fstatusline\u002FSKILL.md",[],[109,114,36,115,116,117,118,95,103,29,119,28,120,121,122,123],"bar","user","context","status","line","prompt","custom","session context","session","customization",{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":128,"categories":129,"keywords":130,"publishedAt":39},"01M71PZANGE28K36HJ7VJTE5NT","split-to-prs","Split current work into small reviewable PRs. Use when the user asks to split a chat, set of changes, branch, or PR.","https:\u002F\u002Fgithub.com\u002Fwesley642\u002Falfasoft-laravel-project\u002Fblob\u002Fmain\u002F.cursor\u002Fskills-cursor\u002Fsplit-to-prs\u002FSKILL.md",[],[131,132,133,29,115,28,134,135,136,137,138,139],"prs","split to prs","split","pr","changes","work","branch","SET","chat",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":146,"publishedAt":39},"01M71PZ8ZMR9G4PJF4EH6MX3EV","shell","Runs the rest of a \u002Fshell request as a literal shell command. Use only when the user explicitly invokes \u002Fshell and wants the following text executed directly in the terminal.","https:\u002F\u002Fgithub.com\u002Fwesley642\u002Falfasoft-laravel-project\u002Fblob\u002Fmain\u002F.cursor\u002Fskills-cursor\u002Fshell\u002FSKILL.md",[],[142,147,148,149,150,151,152,153,154,155,28,156,115,29],"only","true","Literal","request","terminal","command","REST","as","text","shell command",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":164,"publishedAt":39},"01M71PZ5T4MXC8XAPBFE5N4YDC","migrate-to-skills","Convert 'Applied intelligently' Cursor rules (.cursor\u002Frules\u002F*.mdc) and slash commands (.cursor\u002Fcommands\u002F*.md) to Agent Skills format (.cursor\u002Fskills\u002F). Use when you want to migrate rules or commands to skills, convert .mdc rules to SKILL.md format, or consolidate commands into the skills directory.","https:\u002F\u002Fgithub.com\u002Fwesley642\u002Falfasoft-laravel-project\u002Fblob\u002Fmain\u002F.cursor\u002Fskills-cursor\u002Fmigrate-to-skills\u002FSKILL.md",[163],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[165,166,30,167,168,29,169,28,170,148,171,172,77,173,31],"migrate","migrate to skills","consolidate","convert","Rules","cursor rules","slash commands","commands","directory"]