Executes runbooks and generates timestamped evidence documentation of the execution results
This skill helps execute runbooks and document the execution with timestamped evidence. When a user runs through a runbook's steps, this skill generates a structured evidence file that captures what actually happened during execution, including results, deviations, issues, and validations.
Evidence files are stored alongside the runbook in timestamped directories, allowing multiple executions to be tracked over time without overwriting previous evidence.
Evidence location pattern: <runbook-path>/evidence/<YYYY-MM-DD-HH-MM>/result.md
Example: ./runbooks/user-login-flow/evidence/2026-01-31-14-30/result.md
Each evidence file documents:
When asked to execute a runbook and document evidence:
./runbook-executor/scripts/create-evidence.sh <runbook-path><runbook-path>/STEPS.mdWhen asked to review past executions:
./runbook-executor/scripts/list-evidence.sh <runbook-path>result.md file from the desired timestampExecute a runbook and create evidence:
./runbook-executor/scripts/create-evidence.sh runbooks/user-login-flow
Execute an API testing runbook:
./runbook-executor/scripts/create-evidence.sh runbooks/api-payment-flow
List all evidence executions for a runbook (newest first):
./runbook-executor/scripts/list-evidence.sh runbooks/user-login-flow
When a runbook contains HTTP requests that can be executed locally, create scripts using httpie to automate the requests and save responses for evidence.
Important: All scripts must be executed under supervision. Review each script before execution and verify the target endpoints are correct for your environment.
<runbook-path>/
├── STEPS.md
├── scripts/
│ ├── activation.sh # Environment setup and aliases
│ ├── .env # Secrets (git-ignored)
│ ├── .env.example # Example configuration
│ ├── login.httpie.sh
│ ├── get-user.httpie.sh
│ └── responses/
│ ├── 1738500000-login.httpie.http
│ └── 1738500100-get-user.httpie.http
└── evidence/
The activation.sh script sets up the environment for HTTP scripts:
.env file (for secrets)script-http function that wraps httpie and saves responses automatically# First, activate the environment
source ./scripts/activation.sh
# Then run your scripts
./scripts/login.httpie.sh
Create a .env file for secrets (copy from .env.example):
cp .env.example .env
Example .env:
API_BASE_URL=https://api.example.com
API_USERNAME=your-username
API_PASSWORD=your-password
API_TOKEN=your-bearer-token
Each httpie script should:
script-http instead of http directlysource ./activation.sh firstResponse files follow this pattern:
<unix-timestamp>-<endpoint-name>.httpie.http
Examples:
1738500000-login.httpie.http1738500100-get-users.httpie.http1738500200-create-order.httpie.http#!/bin/bash
# Login API request using httpie
# Usage: source ./activation.sh && ./login.httpie.sh
set -e
BASE_URL="${API_BASE_URL:-https://api.example.com}"
script-http POST "$BASE_URL/login" \
username="${API_USERNAME:[email protected]}" \
password="${API_PASSWORD:-secret123}"
# GET request
http GET https://api.example.com/users -v
# POST with JSON body
http POST https://api.example.com/login username=user password=pass -v
# POST with custom headers
http POST https://api.example.com/data \
Authorization:"Bearer token123" \
-v
# PUT request
http PUT https://api.example.com/users/1 name="Updated Name" -v
# DELETE request
http DELETE https://api.example.com/users/1 -v
When documenting HTTP steps in STEPS.md, reference the activation and scripts:
## Step 1: Activate environment
\`\`\`bash
source ./scripts/activation.sh
\`\`\`
## Step 2: Authenticate with API
Execute the login script to authenticate:
\`\`\`bash
./scripts/login.httpie.sh
\`\`\`
Expected response: HTTP 200 with JWT token in response body.
Response saved to: `scripts/responses/<timestamp>-login.httpie.http`
assets/evidence-template.mdscripts/create-evidence.shscripts/list-evidence.shscripts/login.httpie.sh