Agent skill
workflow-automation
Automate repetitive development tasks and workflows. Use when creating build scripts, automating deployments, or setting up development workflows. Handles npm scripts, Makefile, GitHub Actions workflows, and task automation.
Install this agent skill to your Project
npx add-skill https://github.com/autohandai/community-skills/tree/main/workflow-automation
Metadata
Additional technical details for this skill
- tags
- automation, scripts, workflow, npm-scripts, Makefile, task-runner
- platforms
- Claude, ChatGPT, Gemini
SKILL.md
Workflow Automation
When to use this skill
- Repetitive tasks: running the same commands every time
- Complex builds: multi-step build processes
- Team onboarding: a consistent development environment
Instructions
Step 1: npm scripts
package.json:
{
"scripts": {
"dev": "nodemon src/index.ts",
"build": "tsc && vite build",
"test": "jest --coverage",
"test:watch": "jest --watch",
"lint": "eslint src --ext .ts,.tsx",
"lint:fix": "eslint src --ext .ts,.tsx --fix",
"format": "prettier --write \"src/**/*.{ts,tsx,json}\"",
"type-check": "tsc --noEmit",
"pre-commit": "lint-staged",
"prepare": "husky install",
"clean": "rm -rf dist node_modules",
"reset": "npm run clean && npm install",
"docker:build": "docker build -t myapp .",
"docker:run": "docker run -p 3000:3000 myapp"
}
}
Step 2: Makefile
Makefile:
.PHONY: help install dev build test clean docker
.DEFAULT_GOAL := help
help: ## Show this help
@grep -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-20s\033[0m %s\n", $$1, $$2}'
install: ## Install dependencies
npm install
dev: ## Start development server
npm run dev
build: ## Build for production
npm run build
test: ## Run all tests
npm test
lint: ## Run linter
npm run lint
lint-fix: ## Fix linting issues
npm run lint:fix
clean: ## Clean build artifacts
rm -rf dist coverage
docker-build: ## Build Docker image
docker build -t myapp:latest .
docker-run: ## Run Docker container
docker run -d -p 3000:3000 --name myapp myapp:latest
deploy: build ## Deploy to production
@echo "Deploying to production..."
./scripts/deploy.sh production
ci: lint test build ## Run CI pipeline locally
@echo "โ
CI pipeline passed!"
Usage:
make help # Show all commands
make dev # Start development
make ci # Run full CI locally
Step 3: Husky + lint-staged (Git Hooks)
package.json:
{
"lint-staged": {
"*.{ts,tsx}": [
"eslint --fix",
"prettier --write"
],
"*.{json,md}": [
"prettier --write"
]
}
}
.husky/pre-commit:
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"
echo "Running pre-commit checks..."
# Lint staged files
npx lint-staged
# Type check
npm run type-check
# Run tests related to changed files
npm test -- --onlyChanged
echo "โ
Pre-commit checks passed!"
Step 4: Task Runner scripts
scripts/dev-setup.sh:
#!/bin/bash
set -e
echo "๐ Setting up development environment..."
# Check prerequisites
if ! command -v node &> /dev/null; then
echo "โ Node.js is not installed"
exit 1
fi
if ! command -v docker &> /dev/null; then
echo "โ Docker is not installed"
exit 1
fi
# Install dependencies
echo "๐ฆ Installing dependencies..."
npm install
# Copy environment file
if [ ! -f .env ]; then
echo "๐ Creating .env file..."
cp .env.example .env
echo "โ ๏ธ Please update .env with your configuration"
fi
# Start Docker services
echo "๐ณ Starting Docker services..."
docker-compose up -d
# Wait for database
echo "โณ Waiting for database..."
./scripts/wait-for-it.sh localhost:5432 --timeout=30
# Run migrations
echo "๐๏ธ Running database migrations..."
npm run migrate
# Seed data (optional)
read -p "Seed database with sample data? (y/n) " -n 1 -r
echo
if [[ $REPLY =~ ^[Yy]$ ]]; then
npm run seed
fi
echo "โ
Development environment ready!"
echo "Run 'make dev' to start the development server"
scripts/deploy.sh:
#!/bin/bash
set -e
ENV=$1
if [ -z "$ENV" ]; then
echo "Usage: ./deploy.sh [staging|production]"
exit 1
fi
echo "๐ Deploying to $ENV..."
# Build
echo "๐ฆ Building application..."
npm run build
# Run tests
echo "๐งช Running tests..."
npm test
# Deploy based on environment
if [ "$ENV" == "production" ]; then
echo "๐ Deploying to production..."
# Production deployment logic
ssh production "cd /app && git pull && npm install && npm run build && pm2 restart all"
elif [ "$ENV" == "staging" ]; then
echo "๐งช Deploying to staging..."
# Staging deployment logic
ssh staging "cd /app && git pull && npm install && npm run build && pm2 restart all"
fi
echo "โ
Deployment to $ENV completed!"
Step 5: GitHub Actions workflow automation
.github/workflows/ci.yml:
name: CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '18'
cache: 'npm'
- name: Install dependencies
run: npm ci
- name: Run linter
run: npm run lint
- name: Type check
run: npm run type-check
- name: Run tests
run: npm test -- --coverage
- name: Upload coverage
uses: codecov/codecov-action@v3
Output format
project/
โโโ scripts/
โ โโโ dev-setup.sh
โ โโโ deploy.sh
โ โโโ test.sh
โ โโโ cleanup.sh
โโโ Makefile
โโโ package.json
โโโ .husky/
โโโ pre-commit
โโโ pre-push
Constraints
Required rules (MUST)
- Idempotency: safe to run scripts multiple times
- Error handling: clear messages on failure
- Documentation: comments on how to use the scripts
Prohibited items (MUST NOT)
- Hardcoded secrets: do not include passwords or API keys in scripts
- Destructive commands: do not run rm -rf without confirmation
Best practices
- Use Make: platform-agnostic interface
- Git Hooks: automated quality checks
- CI/CD: automated with GitHub Actions
References
Metadata
Version
-- Current version: 1.0.0 -- Last updated: 2025-01-01 -- Compatible platforms: Claude, ChatGPT, Gemini
Tags
#automation #scripts #workflow #npm-scripts #Makefile #utilities
Examples
Example 1: Basic usage
Example 2: Advanced usage
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
mapping-mitre-attack-techniques
Maps observed adversary behaviors, security alerts, and detection rules to MITRE ATT&CK techniques and sub-techniques to quantify detection coverage and guide control prioritization. Use when building an ATT&CK-based coverage heatmap, tagging SIEM alerts with technique IDs, aligning security controls to adversary playbooks, or reporting threat exposure to executives. Activates for requests involving ATT&CK Navigator, Sigma rules, MITRE D3FEND, or coverage gap analysis.
hunting-for-spearphishing-indicators
Hunt for spearphishing campaign indicators across email logs, endpoint telemetry, and network data to detect targeted email attacks.
analyzing-malicious-url-with-urlscan
URLScan.io is a free service for scanning and analyzing suspicious URLs. It captures screenshots, DOM content, HTTP transactions, JavaScript behavior, and network connections of web pages in an isolat
implementing-zero-standing-privilege-with-cyberark
Deploy CyberArk Secure Cloud Access to eliminate standing privileges in hybrid and multi-cloud environments using just-in-time access with time, entitlement, and approval controls.
implementing-pam-for-database-access
Deploy privileged access management for database systems including Oracle, SQL Server, PostgreSQL, and MySQL. Covers session proxy configuration, credential vaulting, query auditing, dynamic credentia
detecting-t1003-credential-dumping-with-edr
Detect OS credential dumping techniques targeting LSASS memory, SAM database, NTDS.dit, and cached credentials using EDR telemetry, Sysmon process access monitoring, and Windows security event correlation.
Didn't find tool you were looking for?