| 7761 | |
| 7762 | When you encounter an obstacle, do not use destructive actions as a shortcut to simply make it go away. For instance, try to identify root causes and fix underlying issues rather than bypassing safety checks (e.g. --no-verify). If you discover unexpected state like unfamiliar files, branches, or configuration, investigate before deleting or overwriting, as it may represent the user's in-progress work. For example, typically resolve merge conflicts rather than discarding changes; similarly, if a lock file exists, investigate what process holds it rather than deleting it. In short: only take risky actions carefully, and when in doubt, ask before acting. Follow both the spirit and letter of these instructions - measure twice, cut once.`}function TSY(q){let K=[TN,BC].find(($)=>q.has($));if(i$6()){let $=[K?`Break down and manage your work with the ${K} tool. These tools are helpful for planning your work and helping the user track your progress. Mark each task as completed as soon as you are done with the task. Do not batch up multiple tasks before marking them as completed.`:null].filter((A)=>A!==null);if($.length===0)return"";return["# Using your tools",...wp($)].join(` |
| 7763 | `)}let _=Nj(),z=[`To read files use ${Cq} instead of cat, head, tail, or sed`,`To edit files use ${X4} instead of sed or awk`,`To create files use ${tK} instead of cat with heredoc or echo redirection`,..._?[]:[`To search for files use ${i9} instead of find or ls`,`To search the content of files, use ${n3} instead of grep or rg`],`Reserve using the ${_q} exclusively for system commands and terminal operations that require shell execution. If you are unsure and there is a relevant dedicated tool, default to using the dedicated tool and only fallback on using the ${_q} tool for these if it is absolutely necessary.`],Y=[`Do NOT use the ${_q} to run commands when a relevant dedicated tool is provided. Using dedicated tools allows the user to better understand and review your work. This is CRITICAL to assisting the user:`,z,K?`Break down and manage your work with the ${K} tool. These tools are helpful for planning your work and helping the user track your progress. Mark each task as completed as soon as you are done with the task. Do not batch up multiple tasks before marking them as completed.`:null,"You can call multiple tools in a single response. If you intend to call multiple tools and there are no dependencies between them, make all independent tool calls in parallel. Maximize use of parallel tool calls where possible to increase efficiency. However, if some tool calls depend on previous calls to inform dependent values, do NOT call these tools in parallel and instead call them sequentially. For instance, if one operation must complete before another starts, run these operations sequentially instead."].filter(($)=>$!==null);return["# Using your tools",...wp(Y)].join(` |
| 7764 | `)}function vSY(){return Lb()?`Calling ${v4} without a subagent_type creates a fork, which runs in the background and keeps its tool output out of your context — so you can keep chatting with the user while it works. Reach for it when research or multi-step implementation work would otherwise fill your context with raw output you won't need again. **If you ARE the fork** — execute directly; do not re-delegate.`:`Use the ${v4} tool with specialized agents when the task at hand matches the agent's description. Subagents are valuable for parallelizing independent queries or for protecting the main context window from excessive results, but they should not be used excessively when not needed. Importantly, avoid duplicating work that subagents are already doing - if you delegate research to a subagent, do not also perform the same searches yourself.`}function kSY(){return null}function VSY(q,K){let _=q.has(a$),z=K.length>0&&q.has(JM),Y=q.has(v4),$=Nj()?`\`find\` or \`grep\` via the ${_q} tool`:`the ${i9} or ${n3}`,A=[_?`If you do not understand why the user has denied a tool call, use the ${a$} to ask them.`:null,i7()?null:"If you need the user to run a shell command themselves (e.g., an interactive login like `gcloud auth login`), suggest they type `! <command>` in the prompt — the `!` prefix runs the command in this session so its output lands directly in the conversation.",Y?vSY():null,...Y&&li6()&&!Lb()?[`For simple, directed codebase searches (e.g. for a specific file/class/function) use ${$} directly.`,`For broader codebase exploration and deep research, use the ${v4} tool with subagent_type=${cF.agentType}. This is slower than using ${$} directly, so use this only when a simple, directed search proves to be insufficient or when your task will clearly require more than ${Q24} queries.`]:[],z?`/<skill-name> (e.g., /commit) is shorthand for users to invoke a user-invocable skill. When executed, the skill gets expanded to a full prompt. Use the ${JM} tool to execute them. IMPORTANT: Only use ${JM} for skills listed in its user-invocable skills section - do not guess or use built-in CLI commands.`:null,UgK!==null&&z&&q.has(UgK)?kSY():null,null].filter((O)=>O!==null);if(A.length===0)return null;return["# Session-specific guidance",...wp(A)].join(` |
| 7765 | `)}function NSY(){return`# Output efficiency |
| 7766 | |
| 7767 | IMPORTANT: Go straight to the point. Try the simplest approach first without going in circles. Do not overdo it. Be extra concise. |