← Back to Skills

doc-template-engine

v1.0.0 approved Text Processing ⬇ 4 updated today
USK v3 ✅ Verified ⚡ Auto-Convert
⬇ Download
Install Guide↓
🤖 Agent install commands (curl / MCP / Claude Desktop)
▸ curl one-liner
curl -L -o doc-template-engine.skill   "https://aiskillstore.io/v1/agent/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/download?platform=ClaudeCode"
▸ MCP tool call (after registering Skill Store MCP)
{
  "tool": "download_skill",
  "arguments": {
    "skill_id": "ed01454e-4cb7-4714-b782-a3fe379762c1",
    "platform": "ClaudeCode"
  }
}
▸ Claude Desktop / Cursor MCP config (one-time)
{
  "mcpServers": {
    "skill-store": {
      "url": "https://aiskillstore.io/mcp/"
    }
  }
}
📖 Full agent API guide: /llms.txt  ·  MCP server card

Structured document template engine: renders invoices, receipts, reports, and contracts from JSON data. Supports table loops, totals, Korean business format, multi-currency, and HTML/Markdown output. Zero external dependencies.

# invoice template # document template # report template # invoice # receipt # contract # korean invoice # pdf generation # document generation # HTML template

Basic Info

Owner 👤 aiskillstore-team Category Text Processing Registered 2026-05-10 Last Updated 2026-05-10 Latest Version 1.0.0 Packaged At 2026-05-10 Vetting Status approved Downloads 4 Checksum (SHA256) e1569ba070d461af9c92b5814ce1f83aa7338e6daaec243bdd26616649c32d99

⚡ AGENT INFO USK v3

Capabilities
document_template_rendering table_loop_rendering korean_invoice_format multi_currency_format html_escape_safety
Permissions
✗ network
✗ filesystem
✗ subprocess
Interface
type: cli   entry_point: main.py   runtime: python3   call_pattern: stdin_stdout
Agent API
# 스킬 스키마 조회 (에이전트가 호출 방법을 파악) GET /v1/agent/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/schema # 플랫폼별 자동 변환 다운로드 GET /v1/agent/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/download?platform=OpenClaw GET /v1/agent/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/download?platform=ClaudeCode GET /v1/agent/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/download?platform=ClaudeCodeAgentSkill GET /v1/agent/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/download?platform=Cursor GET /v1/agent/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/download?platform=GeminiCLI GET /v1/agent/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/download?platform=CodexCLI GET /v1/agent/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/download?platform=CustomAgent

Installation

Compatible Platforms any

1
Install the skill using openclaw_skill_manager.py.
python openclaw_skill_manager.py --install doc-template-engine
2
Verify installation
python openclaw_skill_manager.py --list-installed
3
Install a specific version (optional)
python openclaw_skill_manager.py --install doc-template-engine --version 1.0.0
1
Download the skill package.
curl -O https://aiskillstore.io/v1/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/download
2
Place it in the Claude Code commands directory.
unzip doc-template-engine.skill -d ~/.claude/commands/doc-template-engine/
3
Use it as a slash command in Claude Code.
/doc-template-engine
1
Download the Agent Skills package.
curl -O https://aiskillstore.io/v1/agent/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/download?platform=ClaudeCodeAgentSkill
2
Unzip it into the Claude Code skills directory.
unzip doc-template-engine-agent-skill-*.skill -d ~/.claude/skills/doc-template-engine/
3
Restart Claude Code — the skill is auto-loaded at session start. No slash command needed.
1
Download the Cursor-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/download?platform=Cursor
2
Unzip and place it in a permanent location.
unzip doc-template-engine-cursor-*.skill -d ~/.cursor/skills/doc-template-engine/
3
Add the MCP server config to .cursor/mcp.json, then restart Cursor.
cat ~/.cursor/skills/doc-template-engine/cursor_mcp_config.json
1
Download the Gemini CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/download?platform=GeminiCLI
2
Unzip and place it in a permanent location.
unzip doc-template-engine-geminicli-*.skill -d ~/.gemini/skills/doc-template-engine/
3
Add the MCP server config to ~/.gemini/settings.json, then restart Gemini CLI.
cat ~/.gemini/skills/doc-template-engine/gemini_settings_snippet.json
1
Download the Codex CLI-converted package.
curl -O https://aiskillstore.io/v1/agent/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/download?platform=CodexCLI
2
Unzip and place it in a permanent location.
unzip doc-template-engine-codexcli-*.skill -d ~/.codex/skills/doc-template-engine/
3
Add the MCP server config to ~/.codex/config.toml, then restart Codex CLI.
cat ~/.codex/skills/doc-template-engine/codex_config_snippet.toml
1
Download the skill package via REST API.
GET https://aiskillstore.io/v1/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/download
2
Place it in your agent platform's skills directory.
cp doc-template-engine.skill ./skills/
3
Fetch platform-specific details via the Install Guide API.
GET https://aiskillstore.io/v1/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/install-guide?platform=CustomAgent

Security Vetting Report

Vetting Result APPROVED

Findings: ["메타데이터 경고: 권장 필드 없음: 'requirements' (SKILL.md v2 권장)", "메타데이터 경고: 권장 필드 없음: 'changelog' (SKILL.md v2 권장)"]

✅ No security risks found.

AI Review Stage

Reviewer gemini Risk Level 🟢 Low Review Summary 문서 템플릿 렌더링 스킬로, 선언된 권한을 준수하며 XSS 방어 기능을 포함하여 안전합니다.
Reasoning

스킬 메타데이터에서 네트워크, 파일 시스템, 서브프로세스 접근 권한이 모두 'false'로 명확하게 선언되어 있습니다. 제공된 'main.py' 코드 파일은 Python 표준 라이브러리(sys, json, re, html, datetime, typing)만을 사용하며, 선언된 권한을 위반하는 어떠한 외부 통신, 파일 접근 또는 서브프로세스 실행 코드도 발견되지 않았습니다. 특히, 템플릿 변수 바인딩 시 기본적으로 HTML 이스케이프를 수행하는 `escape_html: true` 옵션과 `_escape` 함수를 통해 XSS 공격에 대한 방어 메커니즘이 명시적으로 구현되어 있습니다. 정적 분석 결과에서도 어떠한 위험 요소나 난독화, 금지된 실행 파일이 발견되지 않아 코드의 안전성이 추가로 확인됩니다. 스킬의 목적과 일치하는 높은 코드 품질을 보이며, 악의적인 목적의 코드는 발견되지 않았습니다.

Version History

Version USK v3 Vetting Status Packaged At Downloads Changelog
v1.0.0 approved 2026-05-10 ⬇ 4

Examples 8

Representative input/output examples for this skill. Agents can use these to understand how to invoke the skill and what output to expect.

한국 사업자 인보이스 / Korean business invoice
# render# invoice# korean

한국 표준 세금계산서 양식으로 인보이스를 렌더합니다.

📥 Input
{
  "action": "render",
  "currency": "KRW",
  "data": {
    "buyer_name": "(\uc8fc)\uad6c\ub9e4\ud68c\uc0ac",
    "buyer_reg_number": "987-65-43210",
    "doc_number": "2024-001",
    "issue_date": "2024-01-15",
    "items": [
      {
        "name": "\uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c",
        "qty": 1,
        "unit_price": 1000000
      },
      {
        "name": "\uc720\uc9c0\ubcf4\uc218",
        "qty": 3,
        "unit_price": 200000
      }
    ],
    "seller_address": "\uc11c\uc6b8\uc2dc \uac15\ub0a8\uad6c \ud14c\ud5e4\ub780\ub85c 123",
    "seller_ceo": "\ud64d\uae38\ub3d9",
    "seller_name": "(\uc8fc)\uc608\uc2dc\ucef4\ud37c\ub2c8",
    "seller_reg_number": "123-45-67890",
    "tax_rate": 10
  },
  "lang": "ko",
  "preset": "invoice_kr"
}
📤 Output
{
  "action": "render",
  "meta": {
    "currency": "KRW",
    "grand_total": 1980000,
    "preset": "invoice_kr",
    "tax_amount": 180000,
    "total_amount": 1800000
  },
  "output": "\u003chtml\u003e...(\uc138\uae08\uacc4\uc0b0\uc11c HTML)...\u003c/html\u003e",
  "output_format": "html"
}
영수증 렌더 / Receipt render
# render# receipt

간단한 영수증 문서를 렌더합니다.

📥 Input
{
  "action": "render",
  "currency": "KRW",
  "data": {
    "date": "2024-01-15",
    "items": [
      {
        "name": "\uc544\uba54\ub9ac\uce74\ub178",
        "qty": 2,
        "unit_price": 4500
      },
      {
        "name": "\uc0cc\ub4dc\uc704\uce58",
        "qty": 1,
        "unit_price": 5800
      }
    ],
    "receipt_number": "R-2024-0042",
    "store_name": "\ud3b8\uc758\uc810 24"
  },
  "lang": "ko",
  "preset": "receipt"
}
📤 Output
{
  "action": "render",
  "meta": {
    "total_amount": 14800
  },
  "output": "\u003chtml\u003e...(\uc601\uc218\uc99d HTML)...\u003c/html\u003e",
  "output_format": "html"
}
월간 매출 보고서 / Monthly sales report
# render# report

표와 합계 셀이 포함된 월간 매출 보고서를 렌더합니다.

📥 Input
{
  "action": "render",
  "currency": "KRW",
  "data": {
    "author": "\uae40\uc601\uc5c5",
    "period": "2024-01-01 ~ 2024-01-31",
    "rows": [
      {
        "cost": 8000000,
        "month": "1\uc6d4 1\uc8fc",
        "sales": 12000000
      },
      {
        "cost": 9500000,
        "month": "1\uc6d4 2\uc8fc",
        "sales": 15000000
      }
    ],
    "title": "2024\ub144 1\uc6d4 \ub9e4\ucd9c \ubcf4\uace0\uc11c"
  },
  "lang": "ko",
  "preset": "report"
}
📤 Output
{
  "action": "render",
  "meta": {
    "total_cost": 17500000,
    "total_sales": 27000000
  },
  "output": "\u003chtml\u003e...(\ubcf4\uace0\uc11c HTML)...\u003c/html\u003e",
  "output_format": "html"
}
계약서 골격 / Contract skeleton
# render# contract

계약서 기본 골격 문서를 렌더합니다.

📥 Input
{
  "action": "render",
  "data": {
    "amount": 50000000,
    "contract_title": "\uc18c\ud504\ud2b8\uc6e8\uc5b4 \uac1c\ubc1c \uc6a9\uc5ed \uacc4\uc57d\uc11c",
    "currency": "KRW",
    "end_date": "2024-07-31",
    "party_a": "(\uc8fc)\ubc1c\uc8fc\ud68c\uc0ac",
    "party_b": "(\uc8fc)\uc218\uc8fc\ud68c\uc0ac",
    "start_date": "2024-02-01"
  },
  "lang": "ko",
  "preset": "contract"
}
📤 Output
{
  "action": "render",
  "output": "\u003chtml\u003e...(\uacc4\uc57d\uc11c HTML)...\u003c/html\u003e",
  "output_format": "html"
}
커스텀 템플릿 렌더 / Custom template render
# render# custom_template# table

사용자 정의 템플릿에 데이터를 바인딩합니다.

📥 Input
{
  "action": "render",
  "data": {
    "author": "\uc774\uc8fc\ubb38",
    "items": [
      {
        "amount": 10000,
        "name": "\uc0c1\ud488A",
        "qty": 2
      },
      {
        "amount": 25000,
        "name": "\uc0c1\ud488B",
        "qty": 1
      }
    ],
    "title": "\uc8fc\ubb38\uc11c"
  },
  "template": "\u003ch1\u003e{{title}}\u003c/h1\u003e\u003cp\u003e\uc791\uc131\uc790: {{author}}\u003c/p\u003e{{#table items}}\u003ctr\u003e\u003ctd\u003e{{name}}\u003c/td\u003e\u003ctd\u003e{{qty}}\u003c/td\u003e\u003ctd\u003e{{amount}}\u003c/td\u003e\u003c/tr\u003e{{/table}}\u003cp\u003e\ud569\uacc4: {{#total items.amount}}\u003c/p\u003e"
}
📤 Output
{
  "action": "render",
  "output": "\u003ch1\u003e\uc8fc\ubb38\uc11c\u003c/h1\u003e\u003cp\u003e\uc791\uc131\uc790: \uc774\uc8fc\ubb38\u003c/p\u003e\u003ctr\u003e\u003ctd\u003e\uc0c1\ud488A\u003c/td\u003e\u003ctd\u003e2\u003c/td\u003e\u003ctd\u003e10,000\u003c/td\u003e\u003c/tr\u003e\u003ctr\u003e\u003ctd\u003e\uc0c1\ud488B\u003c/td\u003e\u003ctd\u003e1\u003c/td\u003e\u003ctd\u003e25,000\u003c/td\u003e\u003c/tr\u003e\u003cp\u003e\ud569\uacc4: 35,000\u003c/p\u003e",
  "output_format": "html"
}
XSS 입력 이스케이프 / XSS input escaped
# render# security# xss

악성 스크립트 입력이 HTML escape 처리되어 안전하게 렌더됩니다.

📥 Input
{
  "action": "render",
  "data": {
    "user_input": "\u003cscript\u003ealert(\u0027xss\u0027)\u003c/script\u003e"
  },
  "escape_html": true,
  "template": "\u003cp\u003e{{user_input}}\u003c/p\u003e"
}
📤 Output
{
  "action": "render",
  "output": "\u003cp\u003e\u0026lt;script\u0026gt;alert(\u0026#x27;xss\u0026#x27;)\u0026lt;/script\u0026gt;\u003c/p\u003e",
  "output_format": "html"
}
다중 통화 USD 인보이스 / Multi-currency USD invoice
# render# invoice# usd# english

USD 통화 형식으로 영문 인보이스를 렌더합니다.

📥 Input
{
  "action": "render",
  "currency": "USD",
  "data": {
    "buyer_name": "Client Inc",
    "doc_number": "INV-2024-001",
    "issue_date": "2024-01-15",
    "items": [
      {
        "name": "Consulting",
        "qty": 10,
        "unit_price": 150
      },
      {
        "name": "Development",
        "qty": 40,
        "unit_price": 120
      }
    ],
    "seller_name": "Example Corp"
  },
  "lang": "en",
  "preset": "invoice_en"
}
📤 Output
{
  "action": "render",
  "meta": {
    "currency": "USD",
    "total_amount": 6300
  },
  "output": "\u003chtml\u003e...(Invoice HTML in USD)...\u003c/html\u003e",
  "output_format": "html"
}
프리셋 목록 조회 / List presets
# list_presets

사용 가능한 내장 프리셋 목록과 필수 필드를 반환합니다.

📥 Input
{
  "action": "list_presets"
}
📤 Output
{
  "action": "list_presets",
  "presets": [
    {
      "description": "\ud55c\uad6d \ud45c\uc900 \uc138\uae08\uacc4\uc0b0\uc11c",
      "name": "invoice_kr",
      "required_fields": [
        "seller_name",
        "seller_reg_number",
        "buyer_name",
        "items"
      ]
    },
    {
      "description": "English invoice",
      "name": "invoice_en",
      "required_fields": [
        "seller_name",
        "buyer_name",
        "items"
      ]
    },
    {
      "description": "\uc601\uc218\uc99d / Receipt",
      "name": "receipt",
      "required_fields": [
        "store_name",
        "items"
      ]
    },
    {
      "description": "\ubcf4\uace0\uc11c / Report",
      "name": "report",
      "required_fields": [
        "title",
        "rows"
      ]
    },
    {
      "description": "\uacc4\uc57d\uc11c / Contract",
      "name": "contract",
      "required_fields": [
        "party_a",
        "party_b",
        "start_date",
        "end_date"
      ]
    }
  ]
}

All examples are also available via the agent API: /v1/agent/skills/ed01454e-4cb7-4714-b782-a3fe379762c1/schema

Reviews & Ratings

No reviews yet. Be the first to leave one!

✍️ Write a Review