agentsclimarketplace

Enact docs guide

Skill aiskillstore/marketplace/skills/enactprotocol/enact-docs-guide

Security-audited skills for Claude, Codex & Claude Code. One-click install, quality verified.

Install
npx -y skills add aiskillstore/marketplace --skill enact-docs-guide

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.

What its author says it does

Copied from the file, not written here

LLM guide for creating, publishing, and running Enact tools

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

4.3 KB, ~1.0k tokens by cl100k_base, as published. Nobody here has run it

Enact LLM Guide

Enact: Containerized tools with structured I/O for AI agents.

Commands

enact run ./tool --input "key=value"      # Run local tool
enact run ./tool --args '{"key":"value"}' # Run with JSON
enact run author/tool --input "x=y"       # Run installed tool
enact install author/tool                 # Install to project
enact install author/tool -g              # Install globally
enact search "query"                      # Find tools
enact sign ./tool && enact publish ./tool # Publish

Tool Structure

my-tool/
├── enact.md    # Required: YAML frontmatter + docs
└── main.py     # Your code (any language)

enact.md Template

---
enact: "2.0.0"
name: "namespace/category/tool-name"
version: "1.0.0"
description: "What it does"
from: "python:3.12-slim"
build: "pip install requests pandas"
command: "python /workspace/main.py ${input}"
timeout: "30s"

inputSchema:
  type: object
  properties:
    input:
      type: string
      description: "Input description"
  required: [input]

outputSchema:
  type: object
  properties:
    result:
      type: string

env:
  API_KEY:
    description: "API key"
    secret: true
  LOG_LEVEL:
    description: "Log level"
    default: "info"

tags: [category, keywords]
---

# Tool Name

Documentation here.

Field Reference

FieldRequiredDescription
nameYesnamespace/category/tool
descriptionYesWhat it does
commandNo*Shell command with ${param} substitution
fromNoDocker image (default: alpine:latest)
buildNoBuild commands (string or array), cached
inputSchemaNoJSON Schema for inputs
outputSchemaNoJSON Schema for outputs
envNoEnvironment vars (secret: true for keyring)
timeoutNoMax runtime (default: 30s)
versionNoSemver version
tagsNoDiscovery keywords

*Tools without command are LLM instruction tools (markdown interpreted by AI).

Examples by Language

Python

from: "python:3.12-slim"
build: "pip install pandas"
command: "python /workspace/main.py ${input}"

Node.js

from: "node:20-alpine"
build: "npm install"
command: "node /workspace/index.js ${input}"

Rust

from: "rust:1.83-slim"
build: "rustc /workspace/main.rs -o /workspace/app"
command: "/workspace/app ${input}"

Go

from: "golang:1.22-alpine"
build: "go build -o /workspace/app /workspace/main.go"
command: "/workspace/app ${input}"

Shell (no build)

command: "echo 'Hello ${name}'"

Source Code Pattern

Always output JSON matching outputSchema:

#!/usr/bin/env python3
import sys, json

input_val = sys.argv[1]
result = {"result": input_val.upper()}
print(json.dumps(result))

Secrets

env:
  API_KEY:
    description: "API key"
    secret: true  # Stored in OS keyring, not .env

User sets: enact env set API_KEY --secret --namespace myorg/tools

Access in code via environment variable: os.environ['API_KEY']

Two Tool Types

  1. Container tools (has command): Runs in Docker, deterministic
  2. Instruction tools (no command): Markdown body interpreted by LLM

Workflow

# 1. Create
mkdir my-tool && cd my-tool
# Create enact.md + source files

# 2. Test
enact run . --input "test=value"

# 3. Publish
enact auth login
enact sign .
enact publish .

Checklist

  • name: namespace/category/tool format
  • description: clear, searchable
  • inputSchema: validates inputs
  • outputSchema: documents output
  • from: pinned image version (not latest)
  • build: installs dependencies
  • command: uses ${param} for inputs
  • Source outputs valid JSON

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.