Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 22 additions & 2 deletions tools/hello-go/SKILL.md
Original file line number Diff line number Diff line change
@@ -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`.
24 changes: 20 additions & 4 deletions tools/hello-js/SKILL.md
Original file line number Diff line number Diff line change
@@ -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`.
24 changes: 22 additions & 2 deletions tools/hello-ruby/SKILL.md
Original file line number Diff line number Diff line change
@@ -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`.
22 changes: 20 additions & 2 deletions tools/hello-rust/SKILL.md
Original file line number Diff line number Diff line change
@@ -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.
33 changes: 21 additions & 12 deletions tools/playwright/SKILL.md
Original file line number Diff line number Diff line change
@@ -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