agentleFS
FirzusFirzus/agent-skills/skills/engineering/runbook/SKILL.md

runbook

Skill4 starsChanged 20 days agoMITView on GitHub

Write an interactive bash runbook that guides a person through actions only they can take, such as copying credentials from a third-party dashboard, configuring CI secrets, or approving a migration or cutover. Use when a task is blocked on manual steps in someone's browser or accounts; not for steps the agent can run itself.

25 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use incident, discover and 8 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • JkudjoSkill

    incident

    Production incident response — structured triage, hypothesis tree, safe remediation, incident record

    Also in 4 projects that use this

  • anombyte93Skill

    discover

    Phase 1 of the prd-taskmaster pipeline: brainstorm-driven discovery. Delegates to superpowers:brainstorming in Interactive Mode (one adaptive question at a time), or self-brainstorms in Autonomous Mode when no user is present. Intercepts before the brainstorming chain hands off to writing-plans — this skill owns the exit. Extracts constraints, calibrates scale (Solo / Team / Enterprise), and advances the pipeline to GENERATE.

    Also in 4 projects that use this

  • asterkinSkill

    adr

    Create Architecture Decision Records (ADRs) following project standards. Guides template usage, process, and best practices for documenting architecturally significant decisions.

    Also in 5 projects that use this

  • OpenAISkill

    observability

    Vercel Observability expert guidance — Drains (logs, traces, speed insights, web analytics), Web Analytics, Speed Insights, runtime logs, custom events, OpenTelemetry integration, and monitoring dashboards. Use when instrumenting, debugging, or optimizing application performance and user experience on Vercel.

    Also in 4 projects that use this

  • SentrySkill

    e2e

    Run E2E tests for Sentry JavaScript SDK test applications

    Also in 3 projects that use this

  • OpenAISkill

    audit

    Audit or critique a product flow, journey, workflow, funnel, onboarding path, checkout path, settings path, screen, or multi-step product experience by capturing screenshots first, then reporting UX, design, and accessibility findings inline from that evidence. Use Figma only when the user explicitly asks for a board. Use when the user asks to audit, review, critique, inspect, assess, analyze, evaluate, or give feedback on a product experience.

    Also in 4 projects that use this

The file

We split this skill into the rules it gives an agent

12 rules. 0 are common, 4 are distinctive, and 8 are very specific to this project.

  • 0

    Common

    Most of the 22 edited versions we read keep these.

  • 4

    Distinctive

    This author's own choices. Worth a look.

  • 8

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Very specific:

    Start from template.sh. It has three sections:

    line 15
  2. Distinctive:

    Done: every value has a source, a destination, and a secrecy decision.

    line 43
  3. Distinctive:

    Done: every stage has a confirmed route or an explicit warning.

    line 53
  4. Very specific:

    Call open_url before the steps that use the page.

    line 87
  5. Very specific:

    Put every URL, command, or value to copy in open_url or code, never inside wrapped text, so it stays whole.

    line 88
  6. Very specific:

    Read every secret with ask_secret.

    line 90
  7. Very specific:

    Use set_secret and set_var only for names CI reads.

    line 92
  8. Distinctive:

    Done: every planned value is collected and reaches its destination.

    line 100
  9. Very specific:

    Run these checks with the user's bash.

    line 104
  10. Very specific:

    Check that each set_secret name matches a secrets.* reference in CI, and each set_var name a vars.* reference.

    line 116
  11. Distinctive:

    Done: every check passes.

    line 120
  12. Very specific:

    Pending: if bash is unavailable to you, report checks 1, 2, and 4 as not run, then hand off with the bash path marked unverified and chmod …

    line 121

“Common” is measured: kept by at least 6 in 10 of the 22 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Runbook

A runbook is a bash script the user runs to finish a procedure that needs their hands: it opens the right page, numbers each action, collects the values they copy, stores them (env file, GitHub secrets or variables), asks before irreversible commands, and ends with a summary of what was saved and what is left to do. It covers only what needs the user's hands or accounts: do everything else yourself before or after it.

Start from template.sh. It has three sections:

SectionYour part
LIBRARYLeave unchanged, so every runbook behaves the same
TEXTTranslate the interface strings into the user's communication language
STAGESWrite this procedure

The user's communication language is the one their instructions set for conversation, otherwise the language they write to you in. Everything the runbook displays uses it; code, comments, variable names, and commands stay in the project's code language.

A runbook is disposable unless the user wants a repeatable path: write it to a scratch location or the project's scripts/ folder, as they prefer.

1. Plan the stages

  1. Collect the facts from the project before asking anything:
    • setup work: env files and their examples, the README, container and framework configuration, and CI workflows, whose secrets.* and vars.* references name values the runbook must produce;
    • a migration or cutover: where the system stands, where it must end up, and every irreversible command on the way.
  2. Order the stages by dependency, and settle for each the value it produces, its destination (env file, GitHub secret or variable, a command, or none), and whether it is secret. Ask the user only what the project cannot settle.

Done: every value has a source, a destination, and a secrecy decision.

2. Trace each stage

For each stage, write the route a person follows: the page to open, the controls to use, where the value appears, and the variable it fills. Take the route from the provider's current documentation or from the user. When neither can confirm it, describe the goal instead of guessing controls, mark the stage with warn saying the interface may differ, and list it in the handoff.

Done: every stage has a confirmed route or an explicit warning.

3. Write the runbook

  1. Copy template.sh to the chosen path.
  2. Unless the communication language is English, translate every TXT_* value. Strings containing %s are printf formats: keep each %s in the order its comment gives and each \n, write a literal % as %%, and phrase the string so it reads correctly whatever fills %s. Use the language's yes answer in TXT_YES_NO and the TXT_YES regex (French: [o/N], ^[OoYy]). Keep TXT_SECRETS and TXT_VARS short: the summary aligns on the longest label.
  3. Replace the example stages, in dependency order, with text in the same language. Quote third-party interface labels exactly as displayed, even in another language. TOTAL_STAGES must equal the count of stage calls; give banner a title and a one-sentence purpose.
HelperEffect
stage "Name"New screen with progress and the stage name
say "..."Short explanation of why the stage matters
step "..."One numbered action
note "..." / warn "..."Secondary detail / something not to miss
code "..."A URL, command, or value to copy, on its own unwrapped line
open_url URLOpens the page the following steps use
ask KEY "Label" / ask_secret KEY "Label"Reads a visible / hidden value into $KEY; on a re-run, Enter keeps the saved value
write_env KEY "$KEY"Saves the value to the env file
set_secret NAME "$VALUE" / set_var NAME "$VALUE"Sets a GitHub Actions secret / variable, or lists it for manual follow-up
run CMD [ARG...]Shows and runs a command; a dry run only shows it
confirm "Question"Yes/no gate that defaults to no
pause ["Message"]Waits for Enter

Rules:

  • Call open_url before the steps that use the page.
  • Put every URL, command, or value to copy in open_url or code, never inside wrapped text, so it stays whole.
  • Read every secret with ask_secret; save with write_env only what the project uses locally.
  • Use set_secret and set_var only for names CI reads.
  • Execute every command with side effects through run, so --dry-run stays harmless.
  • Precede each irreversible run with confirm, worded so that no is the safe answer.
  • Give each stage one task and end it with pause; the next stage clears the screen.

Done: every planned value is collected and reaches its destination.

4. Check the script

Run these checks with the user's bash; on Windows, that is the Git Bash executable (usually C:\Program Files\Git\bin\bash.exe).

  1. bash -n <script>, plus shellcheck <script> when installed.
  2. Rehearse: from an empty temporary folder, pipe one line per prompt into bash <script> --dry-run, including a blank line for each Enter (every pause, and the banner's). Input that ends early stops the runbook. A dry run opens no browser, saves nothing, skips GitHub, and runs no run command. Check that each answer reaches the intended prompt (piped answers are echoed in the transcript; secrets show only their length) and that the summary lists the expected names. Only the user runs the runbook without --dry-run.
  3. Check that each set_secret name matches a secrets.* reference in CI, and each set_var name a vars.* reference.
  4. chmod +x <script>.

Done: every check passes. Pending: if bash is unavailable to you, report checks 1, 2, and 4 as not run, then hand off with the bash path marked unverified and chmod +x added for the user.

5. Hand off

Give the user, in their language, one complete command to paste unchanged: the real run, since your rehearsal already previewed every screen. The command first moves to the project root, since the env file path is relative to it, then calls the script by absolute path. On Windows, call the Git Bash executable you verified rather than bash, which PowerShell often resolves to WSL, and stop if the folder change fails:

Set-Location -LiteralPath "C:\path\to\project" -ErrorAction Stop; & "C:\Program Files\Git\bin\bash.exe" "C:\path\to\project\scripts\setup-runbook.sh"

Also list any stage marked with warn in step 2. For a disposable runbook, tell the user to delete it after the real run, or offer to delete it once they confirm it is done. For a repeatable one, offer to link it from the README.

Done: the user has the command and the list of unverified stages.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.