enact-docs-guide
LLM guide for creating, publishing, and running Enact tools
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
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
$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. 下の青いボタンを押して
enact-docs-guide.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
enact-docs-guideフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
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種類のツール
- コンテナツール (
commandを持つ): Docker で実行され、決定論的です - 命令ツール (
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
- Container tools (has
command): Runs in Docker, deterministic - 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 (notlatest) - [ ]
build: installs dependencies - [ ]
command: uses${param}for inputs - [ ] Source outputs valid JSON