Prompt recipes for the work SREs do most in Kepler: triage an alert, investigate a pod, write an RCA, review a deploy, read a dashboard, bring terminal output into the chat, write a runbook, hand off on-call.
This page covers the situations you will use Kepler for most, each with a starting prompt and what to expect back. Every example works in Observe, the read-only default. Where a step changes something, it says so.
To run one of these on a schedule, when an alert arrives, or from a /command in a chat, make it an automation.
Suppose a page just came in for the payments service and you need to know in two minutes whether it is real and how bad it is.
/triage payments
Payments latency alert fired at 14:02. Is it real, what is affected, and is it getting worse?
Kepler checks the service’s pods, recent events and logs, reads whatever dashboards it has access to, and answers with severity, blast radius and a first hypothesis. Each command it ran is a card in the chat, so you can see the evidence rather than take its word.
Say what “normal” looks like if Kepler has not seen this service before. “Normally under 200 ms p99” turns a vague answer into a precise one. Kepler remembers it for next time.
Suppose checkout pods are crashlooping and the logs are not obvious.
/investigate checkout pods crashlooping in prod
Why is checkout-7d9f crashlooping? Check the previous container's logs, not the current one.
Something in the cart namespace is returning 502s. Find which pod and why.
Kepler works the problem the way you would: describe the pod, read the termination reason, pull the previous logs, compare the mounted config against the last change. On long investigations a checklist appears above the composer and ticks itself off as it goes. When it reaches a real fork it stops and asks you, in a card over the composer, rather than guessing.
Suppose the incident is over and you owe a postmortem.
/rca the checkout outage this morning
Write the RCA for the 502s we just fixed. Timeline, cause, evidence, what we changed, what would have caught it earlier.
Kepler assembles the write-up from the investigation in the thread, the commands it ran and what it already knows about the service. Ask for it as an artifact and it lands in the Artifacts tab of the Memory panel under a stable name, versioned each time you ask for a revision.
Suppose errors started right after a release and you want to know whether the deploy is to blame before you touch anything.
Errors started at 09:40. Was it the 09:35 deploy of api? Show me what changed.
Compare the running api deployment against the previous revision.
Both of those are read-only. When you are ready to act, switch to Assist with Shift+Tab and ask:
/rollback api v2.14.1
Kepler works out the rollback and proposes it step by step in the approval dock over the composer. Nothing runs until you approve it. Any step on the always-blocked list, such as a rollout undo, Kepler hands to you to run yourself in the terminal panel, with the checks to do before and after.
Deleting, scaling, draining and restarting rollouts stay blocked in every posture. Kepler will tell you when it hits that floor and give you the command to run yourself. See Permissions.
Suppose the answer is on a Grafana board and you would rather not describe the graph in words.
Open https://grafana.internal/d/checkout and tell me what p99 latency did between 09:30 and 10:00.
Look at the error-rate panel on the dashboard I have open. Did the spike line up with the deploy?
Paste a dashboard URL and the browser panel opens beside the chat. Log in once and Kepler can read that dashboard from then on. It reads the page, takes screenshots when it needs to, and quotes what it saw.
Suppose you already ran the command yourself and want Kepler to interpret the output.Open the terminal with Cmd+J (Ctrl+J on Windows and Linux). Everything you and Kepler run appears here. Click any command in the scrollback and Kepler receives the command together with its output. Then ask:
That describe output I just sent you. Why is the readiness probe failing?
You can also type ! at the start of the composer to run a shell command yourself without leaving the chat.
Suppose you need the procedure for something you do twice a year.
/runbook rotate the Redis password in prod
Is there a runbook for draining a node in the payments cluster? If not, write one from what we did today.
Kepler searches its memory for a matching runbook and summarizes it. If there is none, it drafts one from the current thread and saves it, so the next person who asks gets a real answer.
Suppose your on-call shift ends in ten minutes and two things are still open.
/handoff
Write the handoff for the next on-call. Include the open checkout issue, what we ruled out, and what to watch.
Kepler writes the handoff from the sessions of the day: what happened, what is still open, what to watch, and where the evidence is. Paste it into your team channel, or keep it in the thread for the next person to open.
Suppose the fix is several steps and you want to read the whole thing before the first command.
/plan move the cart service to the new node pool without downtime
Kepler writes the change out as a plan you can read and edit. Nothing runs while you review it. When you approve, the plan sits above the composer and ticks off each step as it lands. /plan works in every posture, including Observe.
When one investigation needs several angles at once.
Watchers
Ask Kepler to keep an eye on something and wake you.
Postures
Observe, Assist and Yolo, and the approval dock.
Commands and shortcuts
Every slash command used on this page.
Was this page helpful?
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"RubixKube Docs","description":"RubixKube watches your infrastructure and connected tools, turns what breaks into incidents, and Rubix investigates each one and suggests the fix.","colors":{"primary":"#2563EB","light":"#3B82F6","dark":"#1E3A8A"},"logo":{"light":"https://mintcdn.com/rubixkube/tiyR5iqXcs8DBUK7/logo/light.svg?fit=max\u0026auto=format\u0026n=tiyR5iqXcs8DBUK7\u0026q=85\u0026s=284c1eff9d8a020f676e936e61086fe6","dark":"https://mintcdn.com/rubixkube/tiyR5iqXcs8DBUK7/logo/dark.svg?fit=max\u0026auto=format\u0026n=tiyR5iqXcs8DBUK7\u0026q=85\u0026s=7429fff8d069eb8c6f2a404577aa872d"},"favicon":"https://mintcdn.com/rubixkube/vcrcLHnsfAfdbq9A/favicon.svg?fit=max\u0026auto=format\u0026n=vcrcLHnsfAfdbq9A\u0026q=85\u0026s=f13ee9995035cc4c13139cef62c51b13","navbar":{"links":[{"href":"mailto:connect@rubixkube.ai","label":"Support"}],"primary":{"type":"button","label":"Console","href":"https://console.rubixkube.ai"}},"footer":{"socials":{"x":"https://x.com/RubixKubeHQ","github":"https://github.com/rubixkube-io","linkedin":"https://linkedin.com/company/rubixkube"}},"seo":{"metatags":{"description":"RubixKube watches your infrastructure and connected tools, turns what breaks into incidents, and Rubix investigates each one and suggests the fix.","author":"RubixKube","robots":"index, follow","googlebot":"index, follow","theme-color":"#2563EB","og:site_name":"RubixKube Docs","og:type":"website","og:image":"/images/og-card.png","twitter:image":"/images/og-card.png","twitter:card":"summary_large_image","twitter:site":"@RubixKubeHQ","twitter:creator":"@RubixKubeHQ"},"indexing":"navigable"},"contextual":{"options":["copy","view","mcp"],"display":"header"},"styling":{"latex":false},"navigation":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://rubixkube.ai/blog"},{"anchor":"Console","icon":"display","href":"https://console.rubixkube.ai"},{"anchor":"Status","icon":"signal","href":"https://rubixkube.ai/status"}]},"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"rubixkube","hasAudioNarration":false,"actualSubdomain":"rubixkube","customDomains":["docs.rubixkube.ai"],"gitSource":{"type":"github","owner":"rubixkube-io","repo":"docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"feedback":{"thumbs":true},"entitlements":{},"buildId":"6aec5c190c9d6432d6b39b5e","clientVersion":"0.0.4087","searchFilterCounts":[{"language":"default","tag":"RubixKube Docs","count":65},{"language":"default","tag":"Kepler","count":24},{"language":"default","tag":"Integrations","count":22},{"language":"default","tag":"Rubix CLI","count":18},{"language":"default","tag":"Using Kepler","count":11},{"language":"default","tag":"Core concepts","count":10},{"language":"default","tag":"Alert sources","count":8},{"language":"default","tag":"Get started","count":7},{"language":"default","tag":"Tools Rubix can read","count":7},{"language":"default","tag":"Work in the console","count":7}]},"assistantConfig":{},"basePath":"","hasChatPermissions":false,"hasWebMcpPermissions":false,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"comment-mode","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[{"filePath":"custom.css","content":".sidebar-group button.items-start,.sidebar-group a.items-start{align-items:center}"}],"page":{"pagePath":"kepler/workflows","slug":"/kepler/workflows","pageMetadata":{"title":"Everyday workflows with Kepler","sidebarTitle":"Everyday workflows","description":"Prompt recipes for the work SREs do most in Kepler: triage an alert, investigate a pod, write an RCA, review a deploy, read a dashboard, bring terminal output into the chat, write a runbook, hand off on-call.","keywords":["kepler workflows","sre ai prompts","triage alert ai","investigate pod ai","rca generator","on-call handoff","ai runbook"],"og:title":"Everyday workflows with Kepler","og:description":"Prompt recipes for triage, investigation, RCA, deploys, dashboards and handoffs.","href":"/kepler/workflows"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Prompt recipes for the work SREs do most in Kepler: triage an alert, investigate a pod, write an RCA, review a deploy, read a dashboard, bring terminal output into the chat, write a runbook, hand off on-call.\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];function _createMdxContent(props){const _components={a:`a`,code:`code`,li:`li`,p:`p`,pre:`pre`,span:`span`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Card,CardGroup,CodeBlock,Frame,Heading,Note,OptimizedImage,Tip}=_components;if(!Card)_missingMdxReference(`Card`,true);if(!CardGroup)_missingMdxReference(`CardGroup`,true);if(!CodeBlock)_missingMdxReference(`CodeBlock`,true);if(!Frame)_missingMdxReference(`Frame`,true);if(!Heading)_missingMdxReference(`Heading`,true);if(!Note)_missingMdxReference(`Note`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsxs(_components.p,{children:[`This page covers the situations you will use Kepler for most, each with a starting prompt and what to expect back. Every example works in `,_jsx(_components.strong,{children:`Observe`}),`, the read-only default. Where a step changes something, it says so.`]}),`\n`,_jsx(Tip,{children:_jsxs(_components.p,{children:[`To run one of these on a schedule, when an alert arrives, or from a `,_jsx(_components.code,{children:`/command`}),` in a chat, make it an `,_jsx(_components.a,{href:`/kepler/automations`,children:`automation`}),`.`]})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`#triage-an-alert`,children:`Triage an alert`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`#investigate-a-failing-pod-or-service`,children:`Investigate a failing pod or service`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`#get-a-root-cause-write-up`,children:`Get a root cause write-up`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`#review-a-deploy-or-roll-one-back`,children:`Review a deploy, or roll one back`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`#read-a-dashboard-in-the-browser-panel`,children:`Read a dashboard in the browser panel`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`#bring-terminal-output-into-the-chat`,children:`Bring terminal output into the chat`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`#find-or-write-a-runbook`,children:`Find or write a runbook`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`#hand-off-to-the-next-shift`,children:`Hand off to the next shift`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`#ask-what-happened-last-time`,children:`Ask what happened last time`})}),`\n`,_jsx(_components.li,{children:_jsx(_components.a,{href:`#get-a-plan-before-anything-runs`,children:`Get a plan before anything runs`})}),`\n`]}),`\n`,_jsx(Frame,{children:_jsx(OptimizedImage,{src:`https://mintcdn.com/rubixkube/EZBC58R8Zd_C4bv-/images/kepler/observe-answer.png?fit=max\u0026auto=format\u0026n=EZBC58R8Zd_C4bv-\u0026q=85\u0026s=8d2b6b564088c7e140d610d730857410`,alt:`A Kepler answer in Observe: a row for each kubectl command it ran, a Not run row for a patch Observe refused, then a Finding about a misnamed ConfigMap key, an Evidence list quoting the pod log and the deployment's change cause, and a safe remediation.`,\"data-og-width\":`2620`,width:`2620`,\"data-og-height\":`2300`,height:`2300`,\"data-path\":`images/kepler/observe-answer.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/rubixkube/EZBC58R8Zd_C4bv-/images/kepler/observe-answer.png?w=280\u0026fit=max\u0026auto=format\u0026n=EZBC58R8Zd_C4bv-\u0026q=85\u0026s=7d8798cee29aa153a4be53e421baf76f 280w, https://mintcdn.com/rubixkube/EZBC58R8Zd_C4bv-/images/kepler/observe-answer.png?w=560\u0026fit=max\u0026auto=format\u0026n=EZBC58R8Zd_C4bv-\u0026q=85\u0026s=a68e157d9d1e532bbda8bc07cc8e82a3 560w, https://mintcdn.com/rubixkube/EZBC58R8Zd_C4bv-/images/kepler/observe-answer.png?w=840\u0026fit=max\u0026auto=format\u0026n=EZBC58R8Zd_C4bv-\u0026q=85\u0026s=cc83a52d6caea7ca39089a2e31a4b368 840w, https://mintcdn.com/rubixkube/EZBC58R8Zd_C4bv-/images/kepler/observe-answer.png?w=1100\u0026fit=max\u0026auto=format\u0026n=EZBC58R8Zd_C4bv-\u0026q=85\u0026s=7978e5aac5e7bf01d40d3118ec8a9e5f 1100w, https://mintcdn.com/rubixkube/EZBC58R8Zd_C4bv-/images/kepler/observe-answer.png?w=1650\u0026fit=max\u0026auto=format\u0026n=EZBC58R8Zd_C4bv-\u0026q=85\u0026s=10da710503ccacc9d7cce9b306beda50 1650w, https://mintcdn.com/rubixkube/EZBC58R8Zd_C4bv-/images/kepler/observe-answer.png?w=2500\u0026fit=max\u0026auto=format\u0026n=EZBC58R8Zd_C4bv-\u0026q=85\u0026s=4ec69179fe55144eb8c2e357084f41cc 2500w`})}),`\n`,_jsx(Heading,{level:`2`,id:`triage-an-alert`,children:`Triage an alert`}),`\n`,_jsx(_components.p,{children:`Suppose a page just came in for the payments service and you need to know in two minutes whether it is real and how bad it is.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/triage payments`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Payments latency alert fired at 14:02. Is it real, what is affected, and is it getting worse?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Kepler checks the service’s pods, recent events and logs, reads whatever dashboards it has access to, and answers with severity, blast radius and a first hypothesis. Each command it ran is a card in the chat, so you can see the evidence rather than take its word.`}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Say what “normal” looks like if Kepler has not seen this service before. “Normally under 200 ms p99” turns a vague answer into a precise one. Kepler remembers it for next time.`})}),`\n`,_jsx(Heading,{level:`2`,id:`investigate-a-failing-pod-or-service`,children:`Investigate a failing pod or service`}),`\n`,_jsx(_components.p,{children:`Suppose checkout pods are crashlooping and the logs are not obvious.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/investigate checkout pods crashlooping in prod`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Why is checkout-7d9f crashlooping? Check the previous container's logs, not the current one.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Something in the cart namespace is returning 502s. Find which pod and why.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Kepler works the problem the way you would: describe the pod, read the termination reason, pull the previous logs, compare the mounted config against the last change. On long investigations a checklist appears above the composer and ticks itself off as it goes. When it reaches a real fork it stops and asks you, in a card over the composer, rather than guessing.`}),`\n`,_jsx(Heading,{level:`2`,id:`get-a-root-cause-write-up`,children:`Get a root cause write-up`}),`\n`,_jsx(_components.p,{children:`Suppose the incident is over and you owe a postmortem.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/rca the checkout outage this morning`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Write the RCA for the 502s we just fixed. Timeline, cause, evidence, what we changed, what would have caught it earlier.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Kepler assembles the write-up from the investigation in the thread, the commands it ran and what it already knows about the service. Ask for it as an artifact and it lands in the Artifacts tab of the Memory panel under a stable name, versioned each time you ask for a revision.`}),`\n`,_jsx(Heading,{level:`2`,id:`review-a-deploy-or-roll-one-back`,children:`Review a deploy, or roll one back`}),`\n`,_jsx(_components.p,{children:`Suppose errors started right after a release and you want to know whether the deploy is to blame before you touch anything.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Errors started at 09:40. Was it the 09:35 deploy of api? Show me what changed.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Compare the running api deployment against the previous revision.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Both of those are read-only. When you are ready to act, switch to `,_jsx(_components.strong,{children:`Assist`}),` with `,_jsx(_components.code,{children:`Shift+Tab`}),` and ask:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/rollback api v2.14.1`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Kepler works out the rollback and proposes it step by step in the approval dock over the composer. Nothing runs until you approve it. Any step on the always-blocked list, such as a rollout undo, Kepler hands to you to run yourself in the terminal panel, with the checks to do before and after.`}),`\n`,_jsx(Note,{children:_jsxs(_components.p,{children:[`Deleting, scaling, draining and restarting rollouts stay blocked in every posture. Kepler will tell you when it hits that floor and give you the command to run yourself. See `,_jsx(_components.a,{href:`/kepler/permissions`,children:`Permissions`}),`.`]})}),`\n`,_jsx(Heading,{level:`2`,id:`read-a-dashboard-in-the-browser-panel`,children:`Read a dashboard in the browser panel`}),`\n`,_jsx(_components.p,{children:`Suppose the answer is on a Grafana board and you would rather not describe the graph in words.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Open https://grafana.internal/d/checkout and tell me what p99 latency did between 09:30 and 10:00.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Look at the error-rate panel on the dashboard I have open. Did the spike line up with the deploy?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Paste a dashboard URL and the browser panel opens beside the chat. Log in once and Kepler can read that dashboard from then on. It reads the page, takes screenshots when it needs to, and quotes what it saw.`}),`\n`,_jsx(Heading,{level:`2`,id:`bring-terminal-output-into-the-chat`,children:`Bring terminal output into the chat`}),`\n`,_jsx(_components.p,{children:`Suppose you already ran the command yourself and want Kepler to interpret the output.`}),`\n`,_jsxs(_components.p,{children:[`Open the terminal with `,_jsx(_components.code,{children:`Cmd+J`}),` (`,_jsx(_components.code,{children:`Ctrl+J`}),` on Windows and Linux). Everything you and Kepler run appears here. Click any command in the scrollback and Kepler receives the command together with its output. Then ask:`]}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`That describe output I just sent you. Why is the readiness probe failing?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`You can also type `,_jsx(_components.code,{children:`!`}),` at the start of the composer to run a shell command yourself without leaving the chat.`]}),`\n`,_jsx(Heading,{level:`2`,id:`find-or-write-a-runbook`,children:`Find or write a runbook`}),`\n`,_jsx(_components.p,{children:`Suppose you need the procedure for something you do twice a year.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/runbook rotate the Redis password in prod`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Is there a runbook for draining a node in the payments cluster? If not, write one from what we did today.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Kepler searches its memory for a matching runbook and summarizes it. If there is none, it drafts one from the current thread and saves it, so the next person who asks gets a real answer.`}),`\n`,_jsx(Heading,{level:`2`,id:`hand-off-to-the-next-shift`,children:`Hand off to the next shift`}),`\n`,_jsx(_components.p,{children:`Suppose your on-call shift ends in ten minutes and two things are still open.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/handoff`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Write the handoff for the next on-call. Include the open checkout issue, what we ruled out, and what to watch.`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(_components.p,{children:`Kepler writes the handoff from the sessions of the day: what happened, what is still open, what to watch, and where the evidence is. Paste it into your team channel, or keep it in the thread for the next person to open.`}),`\n`,_jsx(Heading,{level:`2`,id:`ask-what-happened-last-time`,children:`Ask what happened last time`}),`\n`,_jsx(_components.p,{children:`Suppose the symptom looks familiar.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`Have we seen checkout return 502s like this before? What fixed it?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`What changed in the payments namespace this week?`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Kepler answers from memory and from its map of your infrastructure. The more incidents you work through it, the better this gets. See `,_jsx(_components.a,{href:`/kepler/memory`,children:`Memory`}),`.`]}),`\n`,_jsx(Heading,{level:`2`,id:`get-a-plan-before-anything-runs`,children:`Get a plan before anything runs`}),`\n`,_jsx(_components.p,{children:`Suppose the fix is several steps and you want to read the whole thing before the first command.`}),`\n`,_jsx(CodeBlock,{numberOfLines:`2`,language:`text`,children:_jsx(_components.pre,{className:`shiki shiki-themes github-light-default dark-plus`,style:{backgroundColor:`#ffffff`,\"--shiki-dark-bg\":`#0B0C0E`,color:`#1f2328`,\"--shiki-dark\":`#D4D4D4`},language:`text`,children:_jsxs(_components.code,{language:`text`,numberOfLines:`2`,children:[_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{children:`/plan move the cart service to the new node pool without downtime`})}),`\n`,_jsx(_components.span,{className:`line`,children:_jsx(_components.span,{})})]})})}),`\n`,_jsxs(_components.p,{children:[`Kepler writes the change out as a plan you can read and edit. Nothing runs while you review it. When you approve, the plan sits above the composer and ticks off each step as it lands. `,_jsx(_components.code,{children:`/plan`}),` works in every posture, including Observe.`]}),`\n`,_jsx(Heading,{level:`2`,id:`where-to-go-next`,children:`Where to go next`}),`\n`,_jsxs(CardGroup,{cols:2,children:[_jsx(Card,{title:`War rooms`,icon:`users`,href:`/kepler/war-room`,children:_jsx(_components.p,{children:`When one investigation needs several angles at once.`})}),_jsx(Card,{title:`Watchers`,icon:`eye`,href:`/kepler/watchers`,children:_jsx(_components.p,{children:`Ask Kepler to keep an eye on something and wake you.`})}),_jsx(Card,{title:`Postures`,icon:`shield-halved`,href:`/kepler/postures`,children:_jsx(_components.p,{children:`Observe, Assist and Yolo, and the approval dock.`})}),_jsx(Card,{title:`Commands and shortcuts`,icon:`terminal`,href:`/kepler/commands`,children:_jsx(_components.p,{children:`Every slash command used on this page.`})})]})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Everyday workflows with Kepler","sidebarTitle":"Everyday workflows","description":"Prompt recipes for the work SREs do most in Kepler: triage an alert, investigate a pod, write an RCA, review a deploy, read a dashboard, bring terminal output into the chat, write a runbook, hand off on-call.","keywords":["kepler workflows","sre ai prompts","triage alert ai","investigate pod ai","rca generator","on-call handoff","ai runbook"],"og:title":"Everyday workflows with Kepler","og:description":"Prompt recipes for triage, investigation, RCA, deploys, dashboards and handoffs.","href":"/kepler/workflows"}}},"mdxSourceWithNoJs":null},"mdxExtracts":{"tableOfContents":[{"title":"Triage an alert","slug":"triage-an-alert","depth":2,"children":[]},{"title":"Investigate a failing pod or service","slug":"investigate-a-failing-pod-or-service","depth":2,"children":[]},{"title":"Get a root cause write-up","slug":"get-a-root-cause-write-up","depth":2,"children":[]},{"title":"Review a deploy, or roll one back","slug":"review-a-deploy-or-roll-one-back","depth":2,"children":[]},{"title":"Read a dashboard in the browser panel","slug":"read-a-dashboard-in-the-browser-panel","depth":2,"children":[]},{"title":"Bring terminal output into the chat","slug":"bring-terminal-output-into-the-chat","depth":2,"children":[]},{"title":"Find or write a runbook","slug":"find-or-write-a-runbook","depth":2,"children":[]},{"title":"Hand off to the next shift","slug":"hand-off-to-the-next-shift","depth":2,"children":[]},{"title":"Ask what happened last time","slug":"ask-what-happened-last-time","depth":2,"children":[]},{"title":"Get a plan before anything runs","slug":"get-a-plan-before-anything-runs","depth":2,"children":[]},{"title":"Where to go next","slug":"where-to-go-next","depth":2,"children":[]}],"codeExamples":{}},"jsLinks":["/_mintlify/custom/rubixkube/649fce2d1da0a67f/kepler-version.js"],"subdomain":"rubixkube","siteName":"RubixKube Docs","title":"Everyday workflows with Kepler","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-10-07T21:22:48.377Z","originalFileLocation":"kepler/workflows.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Prompt recipes for the work SREs do most in Kepler: triage an alert, investigate a pod, write an RCA, review a deploy, read a dashboard, bring terminal output into the chat, write a runbook, hand off on-call.\">\u003cmeta data-mint-head name=\"application-name\" content=\"RubixKube Docs\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003cmeta data-mint-head name=\"robots\" content=\"index, follow\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rubixkube/ErNt7tLPd_Pqq4it/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/rubixkube/ErNt7tLPd_Pqq4it/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rubixkube/ErNt7tLPd_Pqq4it/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/rubixkube/ErNt7tLPd_Pqq4it/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/rubixkube/ErNt7tLPd_Pqq4it/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/rubixkube/ErNt7tLPd_Pqq4it/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/rubixkube/ErNt7tLPd_Pqq4it/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/rubixkube/ErNt7tLPd_Pqq4it/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/rubixkube/ErNt7tLPd_Pqq4it/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Everyday workflows with Kepler\">\u003cmeta data-mint-head property=\"og:description\" content=\"Prompt recipes for triage, investigation, RCA, deploys, dashboards and handoffs.\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"RubixKube Docs\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.rubixkube.ai/kepler/workflows\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://rubixkube.mintlify.site/images/og-card.png\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Everyday workflows with Kepler\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Prompt recipes for triage, investigation, RCA, deploys, dashboards and handoffs.\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://rubixkube.mintlify.site/images/og-card.png\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/rubixkube/ErNt7tLPd_Pqq4it/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"RubixKube Docs\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#2563EB\">\u003cmeta data-mint-head name=\"author\" content=\"RubixKube\">\u003cmeta data-mint-head name=\"googlebot\" content=\"index, follow\">\u003cmeta data-mint-head name=\"theme-color\" content=\"#2563EB\">\u003cmeta data-mint-head name=\"twitter:creator\" content=\"@RubixKubeHQ\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.rubixkube.ai/kepler/workflows\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/kepler/workflows.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.rubixkube.ai/#organization\",\"name\":\"RubixKube Docs\",\"url\":\"https://docs.rubixkube.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/rubixkube/tiyR5iqXcs8DBUK7/logo/light.svg?fit=max\u0026auto=format\u0026n=tiyR5iqXcs8DBUK7\u0026q=85\u0026s=284c1eff9d8a020f676e936e61086fe6\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.rubixkube.ai#website\",\"name\":\"RubixKube Docs\",\"url\":\"https://docs.rubixkube.ai\",\"publisher\":{\"@id\":\"https://docs.rubixkube.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.rubixkube.ai/kepler/workflows#webpage\",\"url\":\"https://docs.rubixkube.ai/kepler/workflows\",\"name\":\"Everyday workflows with Kepler\",\"description\":\"Prompt recipes for the work SREs do most in Kepler: triage an alert, investigate a pod, write an RCA, review a deploy, read a dashboard, bring terminal output into the chat, write a runbook, hand off on-call.\",\"dateModified\":\"2026-10-07T21:22:48.377Z\",\"isPartOf\":{\"@id\":\"https://docs.rubixkube.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.rubixkube.ai/kepler/workflows#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.rubixkube.ai/kepler/workflows#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"RubixKube Docs\",\"item\":\"https://docs.rubixkube.ai\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Everyday workflows with Kepler\",\"item\":\"https://docs.rubixkube.ai/kepler/workflows\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.rubixkube.ai/kepler/workflows#article\",\"headline\":\"Everyday workflows with Kepler\",\"name\":\"Everyday workflows with Kepler\",\"description\":\"Prompt recipes for the work SREs do most in Kepler: triage an alert, investigate a pod, write an RCA, review a deploy, read a dashboard, bring terminal output into the chat, write a runbook, hand off on-call.\",\"url\":\"https://docs.rubixkube.ai/kepler/workflows\",\"mainEntityOfPage\":{\"@id\":\"https://docs.rubixkube.ai/kepler/workflows#webpage\"},\"image\":\"https://docs.rubixkube.ai/images/og-card.png\",\"dateModified\":\"2026-10-07T21:22:48.377Z\",\"keywords\":\"kepler workflows, sre ai prompts, triage alert ai, investigate pod ai, rca generator, on-call handoff, ai runbook\",\"publisher\":{\"@id\":\"https://docs.rubixkube.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.rubixkube.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"RubixKube Docs\",\"creator\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","siteName":"RubixKube Docs","nav":{"global":{"anchors":[{"anchor":"Blog","icon":"newspaper","href":"https://rubixkube.ai/blog"},{"anchor":"Console","icon":"display","href":"https://console.rubixkube.ai"},{"anchor":"Status","icon":"signal","href":"https://rubixkube.ai/status"}]},"tabs":[{"tab":"RubixKube Docs","pages":[{"title":"RubixKube Docs","href":"/getting-started/overview"}]},{"tab":"Rubix CLI","pages":[{"title":"Rubix CLI","href":"/cli/overview"}]},{"tab":"Kepler","groups":[{"group":"Get started","pages":[{"title":"Kepler overview","sidebarTitle":"Overview","href":"/kepler/overview"},{"title":"Install Kepler","sidebarTitle":"Installation","href":"/kepler/installation"},{"title":"Kepler quickstart","sidebarTitle":"Quickstart","href":"/kepler/quickstart"}]},{"group":"Using Kepler","pages":[{"title":"The Kepler workspace","sidebarTitle":"The workspace","href":"/kepler/workspace"},{"title":"Remote access: work on other machines","sidebarTitle":"Remote access","href":"/kepler/remote-access"},{"title":"Postures: Observe, Assist, and Yolo","sidebarTitle":"Postures","href":"/kepler/postures"},{"title":"Permissions and the always-blocked list","sidebarTitle":"Permissions","href":"/kepler/permissions"},{"title":"Memory and kepler.md","sidebarTitle":"Memory","href":"/kepler/memory"},{"title":"Topology: the map of your infrastructure","sidebarTitle":"Topology","href":"/kepler/topology"},{"title":"Extend Kepler: integrations, skills, plugins and specialists","sidebarTitle":"Extend Kepler","href":"/kepler/extend"},{"title":"Customize: skills, commands, agents, hooks and plugins in one place","sidebarTitle":"Customize","href":"/kepler/customize"},{"title":"Hooks: your own checks in Kepler's work","sidebarTitle":"Hooks","href":"/kepler/hooks"},{"title":"Plugins and marketplaces","sidebarTitle":"Plugins","href":"/kepler/plugins"},{"title":"The decision model","sidebarTitle":"Decision model","description":"An optional second model that answers typed questions in about a second. Kepler uses it to double-check commands and MCP calls before they run, and you can use it in chat, war rooms and automation steps to classify, score and pick.","href":"/kepler/decision-model"}]},{"group":"Workflows","pages":[{"title":"Everyday workflows with Kepler","sidebarTitle":"Everyday workflows","href":"/kepler/workflows"},{"title":"Automations: checks and briefs that run without you","sidebarTitle":"Automations","description":"Build an automation from a plain description: a trigger (a schedule, a webhook, a check that changes, or a /command in chat) and a list of steps. Kepler runs it without you in the room and only changes things you said it may.","href":"/kepler/automations"},{"title":"Run a war room","sidebarTitle":"War rooms","href":"/kepler/war-room"},{"title":"Watchers: ask Kepler to keep an eye on something","sidebarTitle":"Watchers","href":"/kepler/watchers"},{"title":"Chat with Kepler from your phone","sidebarTitle":"Chat from your phone","href":"/kepler/channels"}]},{"group":"Reference","pages":[{"title":"Slash commands and keyboard shortcuts","sidebarTitle":"Commands and shortcuts","href":"/kepler/commands"},{"title":"Kepler settings reference","sidebarTitle":"Settings","href":"/kepler/settings"},{"title":"Troubleshoot Kepler","sidebarTitle":"Troubleshooting","href":"/kepler/troubleshooting"},{"title":"Kepler FAQ","sidebarTitle":"FAQ","href":"/kepler/faq"},{"title":"Kepler changelog","sidebarTitle":"Changelog","href":"/kepler/changelog"}]}]}]},"basePath":"","title":"Everyday workflows with Kepler","buildId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","deploymentId":"dpl_FWZhTb2vab28gFGFH4ojka6qEznQ","dynamics":["07c022d89b","a74be98ba7"],"chunks":["Frame-CXMGc493.js","DynamicMarkdown-D-2HDKEp.js","zoom-image-lightbox-CE4cYsJE.js","lightbox-handle-r17bVUz3.js"]}