jpskill.com
🛠️ 開発・MCP コミュニティ

enact-docs-guide

LLM guide for creating, publishing, and running Enact tools

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o enact-docs-guide.zip https://jpskill.com/download/19062.zip && unzip -o enact-docs-guide.zip && rm enact-docs-guide.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/19062.zip -OutFile "$d\enact-docs-guide.zip"; Expand-Archive "$d\enact-docs-guide.zip" -DestinationPath $d -Force; ri "$d\enact-docs-guide.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して enact-docs-guide.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → enact-docs-guide フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

Enact LLM ガイド

Enact: AI エージェント向けに、構造化された I/O を持つコンテナ化されたツールです。

コマンド

enact run ./tool --input "key=value"      # ローカルツールを実行
enact run ./tool --args '{"key":"value"}' # JSON で実行
enact run author/tool --input "x=y"       # インストール済みツールを実行
enact install author/tool                 # プロジェクトにインストール
enact install author/tool -g              # グローバルにインストール
enact search "query"                      # ツールを検索
enact sign ./tool && enact publish ./tool # 公開

ツール構造

my-tool/
├── enact.md    # 必須: YAML フロントマター + ドキュメント
└── main.py     # あなたのコード (任意の言語)

enact.md テンプレート

---
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.

フィールドリファレンス

フィールド 必須 説明
name はい namespace/category/tool
description はい 何をするか
command いいえ* ${param} 置換を含むシェルコマンド
from いいえ Docker イメージ (デフォルト: alpine:latest)
build いいえ ビルドコマンド (文字列または配列)、キャッシュされます
inputSchema いいえ 入力用の JSON Schema
outputSchema いいえ 出力用の JSON Schema
env いいえ 環境変数 (キーリングには secret: true)
timeout いいえ 最大実行時間 (デフォルト: 30s)
version いいえ Semver バージョン
tags いいえ 検出キーワード

*command のないツールは LLM 命令ツールです (Markdown は AI によって解釈されます)。

言語別例

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 (ビルドなし)

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

ソースコードパターン

常に outputSchema に一致する JSON を出力してください。

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

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

シークレット

env:
  API_KEY:
    description: "API key"
    secret: true  # OS キーリングに保存され、.env には保存されません

ユーザーは以下を設定します: enact env set API_KEY --secret --namespace myorg/tools

コード内では環境変数 os.environ['API_KEY'] を介してアクセスします。

2種類のツール

  1. コンテナツール (command を持つ): Docker で実行され、決定論的です
  2. 命令ツール (command を持たない): LLM によって解釈される Markdown ボディ

ワークフロー

# 1. 作成
mkdir my-tool && cd my-tool
# enact.md + ソースファイルを作成

# 2. テスト
enact run . --input "test=value"

# 3. 公開
enact auth login
enact sign .
enact publish .

チェックリスト

  • [ ] name: namespace/category/tool 形式
  • [ ] description: 明確で検索可能
  • [ ] inputSchema: 入力を検証
  • [ ] outputSchema: 出力を文書化
  • [ ] from: 固定されたイメージバージョン (latest ではない)
  • [ ] build: 依存関係をインストール
  • [ ] command: 入力に ${param} を使用
  • [ ] ソースは有効な JSON を出力
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

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

Field Required Description
name Yes namespace/category/tool
description Yes What it does
command No* Shell command with ${param} substitution
from No Docker image (default: alpine:latest)
build No Build commands (string or array), cached
inputSchema No JSON Schema for inputs
outputSchema No JSON Schema for outputs
env No Environment vars (secret: true for keyring)
timeout No Max runtime (default: 30s)
version No Semver version
tags No Discovery 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