skills/run-script/SKILL.md
Create and manage bash task runner scripts (Makefile alternative). Use when user says "create run script", "add to run script", "add task to run", "create helper in run script", "run script task", or asks for a bash task runner.
npx skillsauth add mgajewskik/opencode-config run-scriptInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Pure bash task runner - functions as tasks, auto-discovered via compgen.
Create file named run at repository root with chmod +x:
#!/usr/bin/env bash
set -o errexit
set -o pipefail
set -o nounset
BASE_DIR=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)
# Add tasks above help function
function help {
printf "%s <task> [args]\n\nTasks:\n" "${0}"
compgen -A function | grep -v "^_" | cat -n
printf "\nExtended help:\n Each task has comments for general usage\n"
}
TIMEFORMAT=$'\nTask completed in %3lR'
time "${@:-help}"
Tasks are functions. Name describes action:
# Build the project
function build {
go build -o bin/app ./cmd/app
}
function test {
go test ./...
}
function lint {
golangci-lint run
}
Arguments passed after task name available as $1, $2, etc:
# Deploy to environment: ./run deploy staging
function deploy {
local env="${1:?Usage: deploy <environment>}"
kubectl apply -k "overlays/${env}"
}
# Run specific test: ./run test-one TestUserCreate
function test-one {
go test -run "${1:?Usage: test-one <test-name>}" ./...
}
Use default values:
# Build with optional output name: ./run build [output-name]
function build {
local output="${1:-bin/app}"
go build -o "$output" ./cmd/app
}
Prefix with underscore - excluded from help:
function _log {
echo "[$(date +'%H:%M:%S')] $*"
}
function _require_env {
: "${!1:?Environment variable $1 is required}"
}
function build {
_log "Building..."
go build -o bin/app ./cmd/app
}
function deploy {
_require_env "KUBECONFIG"
kubectl apply -k overlays/prod
}
Call other tasks:
function ci {
lint
test
build
}
function release {
ci
deploy prod
}
Add comment above function for non-obvious tasks:
# Sync database schema from production
function db-sync {
pg_dump "$PROD_DB" | psql "$LOCAL_DB"
}
Skip comments when function name is self-explanatory:
function test {
go test ./...
}
runchmod +x runecho for logging in helpers (use functions for consistency)test is fine, but be careful with cd, ls)documentation
Create senior-level deep research dossiers and roadmap companions. Use when the user asks for a dossier, senior research, deep research, in-depth research, mental models for a topic, senior perspective on a topic, how something actually works, ramp up on a topic, architectural deep dive, tradeoffs, failure modes, or what a senior would notice. Produces current-directory research-* and roadmap-* markdown artifacts, not a tutorial or short summary.
development
Senior-level Knative and OpenShift Serverless guidance for Serving, Eventing, Functions, autoscaling, scale-to-zero, CloudEvents, RabbitMQ/Kafka sources, Lambda migration, Harbor/OCI images, debugging, operations, and production rollout. Use when working with Knative Service, Revision, Route, KPA, activator, queue-proxy, Broker, Trigger, Source, Sink, kn func, OpenShift Serverless, Kourier, eventing-rabbitmq, Knative Kafka, or serverless workloads on Kubernetes/OpenShift.
development
Senior-level RHEL-family Linux operations. Use when running, debugging, hardening, patching, installing, upgrading, or operating Red Hat Enterprise Linux, Rocky Linux, AlmaLinux, CentOS Stream, Fedora-as-upstream, or related enterprise Linux hosts: systemd, RPM/DNF, SELinux, NetworkManager, firewalld, storage, kernel/kdump, FIPS/STIG, Satellite, IdM, Podman, bootc, air-gapped fleets.
development
Senior-level Proxmox VE guidance for VM creation, templates, storage, ZFS, Ceph, networking, clusters, HA, PBS backups, debugging, upgrades, security, and production/homelab operations. Use when working with Proxmox, PVE, Proxmox VE, qm, pct, pvesm, pvecm, pmxcfs, HA manager, Proxmox Backup Server, VM migration, Proxmox incidents, or Ceph/ZFS/Corosync/VLAN bridges in a Proxmox VE context.