diff --git a/tools/hello-go/SKILL.md b/tools/hello-go/SKILL.md index 2d7d8c0..3fe3f7c 100644 --- a/tools/hello-go/SKILL.md +++ b/tools/hello-go/SKILL.md @@ -1,14 +1,34 @@ --- name: hello-go -description: A simple Go greeting tool +description: "Generates personalized greeting messages using Go. Use when the user asks for a Go hello-world example, a simple Go starter project, or wants to test Enact tool execution with Go." --- # Hello Go -A simple Go tool that greets you by name. Demonstrates how to create an Enact tool with Go. +Prints a personalized greeting and the Go runtime version. Accepts an optional `name` parameter (defaults to `"World"`). ## Usage ```bash +# Default greeting +enact run enact/hello-go +# Output: +# Hello, World! 🐹 +# Go version: go1.23.x + +# Custom name enact run enact/hello-go -a '{"name": "Alice"}' +# Output: +# Hello, Alice! 🐹 +# Go version: go1.23.x ``` + +## Parameters + +| Name | Type | Default | Description | +|------|------|---------|-------------| +| `name` | string | `"World"` | Name to greet | + +## Runtime + +Runs in `golang:1.23-alpine` container via `go run`. diff --git a/tools/hello-js/SKILL.md b/tools/hello-js/SKILL.md index 8cb1560..385257d 100644 --- a/tools/hello-js/SKILL.md +++ b/tools/hello-js/SKILL.md @@ -1,20 +1,36 @@ --- name: hello-js -description: A simple JavaScript greeting tool +description: "Generates personalized greeting messages using Node.js. Use when the user asks for a JavaScript hello-world example, a simple Node.js starter project, or wants to test Enact tool execution with JavaScript." --- # Hello JS -A simple JavaScript tool that greets you by name. Demonstrates how to create an Enact tool with Node.js. +Prints a personalized greeting along with a timestamp and the Node.js runtime version. Accepts an optional `name` parameter (defaults to `"World"`). ## Usage ```bash # Default greeting enact run enact/hello-js -# Output: Hello, World! +# Output: +# Hello, World! 👋 +# Generated at: 2025-01-15T10:30:00.000Z +# Node version: v22.x.x # Custom name enact run enact/hello-js -a '{"name": "Alice"}' -# Output: Hello, Alice! +# Output: +# Hello, Alice! 👋 +# Generated at: 2025-01-15T10:30:00.000Z +# Node version: v22.x.x ``` + +## Parameters + +| Name | Type | Default | Description | +|------|------|---------|-------------| +| `name` | string | `"World"` | Name to greet | + +## Runtime + +Runs in `node:22-alpine` container via `node`. diff --git a/tools/hello-ruby/SKILL.md b/tools/hello-ruby/SKILL.md index 07067f1..f49298d 100644 --- a/tools/hello-ruby/SKILL.md +++ b/tools/hello-ruby/SKILL.md @@ -1,14 +1,34 @@ --- name: hello-ruby -description: A simple Ruby greeting tool +description: "Generates personalized greeting messages using Ruby. Use when the user asks for a Ruby hello-world example, a simple Ruby starter project, or wants to test Enact tool execution with Ruby." --- # Hello Ruby -A simple Ruby tool that greets you by name. Demonstrates how to create an Enact tool with Ruby. +Prints a personalized greeting and the Ruby runtime version. Accepts an optional `name` parameter (defaults to `"World"`). ## Usage ```bash +# Default greeting +enact run enact/hello-ruby +# Output: +# Hello, World! 💎 +# Ruby version: 3.3.x + +# Custom name enact run enact/hello-ruby -a '{"name": "Alice"}' +# Output: +# Hello, Alice! 💎 +# Ruby version: 3.3.x ``` + +## Parameters + +| Name | Type | Default | Description | +|------|------|---------|-------------| +| `name` | string | `"World"` | Name to greet | + +## Runtime + +Runs in `ruby:3.3-alpine` container via `ruby`. diff --git a/tools/hello-rust/SKILL.md b/tools/hello-rust/SKILL.md index ddae3a8..3e86ba0 100644 --- a/tools/hello-rust/SKILL.md +++ b/tools/hello-rust/SKILL.md @@ -1,14 +1,32 @@ --- name: hello-rust -description: A simple Rust greeting tool +description: "Generates personalized greeting messages using Rust. Use when the user asks for a Rust hello-world example, a simple Rust starter project, or wants to test Enact tool execution with Rust." --- # Hello Rust -A simple Rust tool that greets you by name. Demonstrates how to create an Enact tool with Rust. +Prints a personalized greeting using a compiled Rust binary. Accepts an optional `name` parameter (defaults to `"World"`). Includes a build step that compiles `hello.rs` before execution. ## Usage ```bash +# Default greeting +enact run enact/hello-rust +# Output: +# Hello, World! 🦀 + +# Custom name enact run enact/hello-rust -a '{"name": "Alice"}' +# Output: +# Hello, Alice! 🦀 ``` + +## Parameters + +| Name | Type | Default | Description | +|------|------|---------|-------------| +| `name` | string | `"World"` | Name to greet | + +## Runtime + +Runs in `rust:1.83-slim` container. Compiles `hello.rs` with `rustc` during the build step, then executes the binary. diff --git a/tools/playwright/SKILL.md b/tools/playwright/SKILL.md index 0f15745..7902b64 100644 --- a/tools/playwright/SKILL.md +++ b/tools/playwright/SKILL.md @@ -1,29 +1,38 @@ --- name: playwright -description: Browser automation tool using Playwright - captures screenshots and extracts content from web pages +description: "Automates headless Chromium to scrape text, capture full-page screenshots, and extract HTML from web pages using Playwright. Use when the user asks to scrape a website, take a screenshot of a URL, extract page content, or automate browser interactions." --- # Playwright Browser Automation -A browser automation tool that uses Playwright to interact with web pages. - -## Features - -- Navigate to any URL -- Take screenshots -- Extract text content -- Extract HTML content -- Target specific elements with CSS selectors +Navigates to a URL in headless Chromium and performs one of three actions: extract text content (default), take a full-page screenshot, or extract raw HTML. Supports targeting specific elements via CSS selectors. ## Usage ```bash -# Get text content from a page +# Extract text content from a page (default action) enact run enact/playwright -a '{"url": "https://example.com"}' -# Take a screenshot +# Take a full-page screenshot (returns base64-encoded PNG) enact run enact/playwright -a '{"url": "https://example.com", "action": "screenshot"}' +# Extract HTML from a specific element +enact run enact/playwright -a '{"url": "https://example.com", "action": "html", "selector": "main"}' + # Extract text from a specific element enact run enact/playwright -a '{"url": "https://example.com", "selector": "h1"}' ``` + +## Parameters + +| Name | Type | Default | Description | +|------|------|---------|-------------| +| `url` | string | *(required)* | Target URL to navigate to | +| `action` | string | `"text"` | One of `text`, `screenshot`, or `html` | +| `selector` | string | `"body"` | CSS selector to target a specific element | + +## Error Handling + +- Missing `url` exits with an error message and usage hint +- Navigation timeout is 30 seconds; pages that fail to load produce a `Playwright Error` with a stack trace +- Invalid selectors raise a locator error