← 返回 Skills 市场
heisee

Let's Clarify

作者 Heiko Seebach · GitHub ↗ · v1.0.7 · MIT-0
cross-platform ✓ 安全检测通过
683
总下载
2
收藏
3
当前安装
8
版本数
在 OpenClaw 中安装
/install letsclarify
功能描述
Collect structured human input — approvals, decisions, reviews, data — via web forms. Create a form with a JSON schema, send unique URLs to humans, poll for...
使用说明 (SKILL.md)

Let's Clarify Skill

Human-in-the-Loop infrastructure. Use when your workflow needs structured human input — approvals, decisions, data collection — before proceeding.

Base URL: https://letsclarify.ai Auth: Authorization: Bearer lc_... on all API calls.

For full curl examples, detailed response payloads, MCP tool descriptions, all polling strategies, embed widget details, and advanced prefill rules, see REFERENCE.md.

MCP Server (Preferred)

MCP-compatible agents should use the remote MCP endpoint instead of raw REST calls.

Endpoint: https://letsclarify.ai/mcp

Config: { "mcpServers": { "letsclarify": { "url": "https://letsclarify.ai/mcp", "headers": { "Authorization": "Bearer lc_..." } } } }

Tools: register (no auth), create_form, add_recipients, get_summary, get_results, delete_form (all require auth).

REST API Reference

Register / Delete API Key

POST /api/v1/register with {"name": "...", "email": "..."}{"api_key": "lc_...", "key_prefix": "lc_xxxxx"}. Store securely, shown only once.

DELETE /api/v1/register with auth header → {"deleted": true}.

Create Form

POST /api/v1/forms (auth required)

{
  "title": "Approve Budget Increase",
  "context_markdown": "## Q3 Budget\
Please review the proposed 15% increase.",
  "recipient_count": 3,
  "retention_days": 7,
  "webhook_url": "https://example.com/webhook",
  "schema": [
    {"id": "decision", "type": "radio", "label": "Your decision", "required": true,
     "options": [{"value": "approve", "label": "Approve"}, {"value": "reject", "label": "Reject"}]},
    {"id": "notes", "type": "textarea", "label": "Additional notes", "required": false}
  ]
}

Optional params: theme_color (hex, e.g. #1a2b3c). recipient_count accepts 1–1,000.

Response: form_token, delete_token, recipients (array of UUIDs), base_url_template, poll_url, summary_url, delete_url.

Recipient URLs: https://letsclarify.ai/f/{form_token}/{recipient_uuid} — distribute via email, Slack, WhatsApp, etc.

Client-provided UUIDs/prefill: Instead of recipient_count, pass "recipients": [{"uuid": "...", "prefill": {"field_id": "value"}}, {}]. UUIDs must be valid v4, prefill max 10KB. Both recipients array and recipient_count can be combined (count >= array length).

Add Recipients

POST /api/v1/forms/{form_token}/recipients with {"count": 5} or {"recipients": [...]}. Max 1,000/request, 10,000/form. Same UUID/prefill rules as creation.

Poll Summary

GET /api/v1/forms/{form_token}/summary{expired, known_total, submitted_total, pending_total, updated_at_max}.

Poll Results

GET /api/v1/forms/{form_token}/results

Query params: limit, status (submitted/pending), cursor (pagination), include_files=1 (base64), updated_since (ISO 8601).

Response: {expired, next_cursor, server_time, results: [{recipient_uuid, status, submitted_at, updated_at, response_json, files}]}.

Efficient polling: First paginate with cursor until next_cursor is null, store server_time. Then poll with updated_since={server_time}.

Delete Form

DELETE /api/v1/forms/{form_token} with X-Delete-Token: {delete_token}{"deleted": true}. Permanently removes form, submissions, and files.

Webhooks

If webhook_url (HTTPS) is set, a POST is sent per submission with {form_token, recipient_uuid, submitted_at, response_json}. Retries 3× with backoff on 5xx/network errors. Non-blocking.

Waiting for Results

After creating a form and sending URLs, set up async polling. Do NOT assume immediate responses.

Recommended: Cron polling

openclaw cron add --name "poll-lc-{form_token}" --every 10m \
  --message "Check Let's Clarify form {form_token}: get_summary to see if submitted_total == known_total. If all responded, get_results and summarize, then remove this cron. If expired, fetch what exists and clean up."

One-shot: openclaw cron add --name "check-lc-{form_token}" --at +1h --delete-after-run --message "Check form {form_token} results and report status."

Workflow: Create form → send URLs → cron polls summary → all responded or expired → fetch results → delete cron → optionally delete form.

Embed Widget

Embed forms directly in any page instead of linking to the hosted URL:

\x3Cscript src="https://letsclarify.ai/embed.js">\x3C/script>
\x3Cdiv data-letsclarify-form="{form_token}" data-letsclarify-recipient="{recipient_uuid}">\x3C/div>

Auto-renders all field types, handles validation/submission, injects its own CSS.

Schema Field Types

Type Description options required
text Single-line input No
textarea Multi-line input No
checkbox Single boolean No
checkbox_group Multiple checkboxes Yes
radio Radio buttons Yes
select Dropdown Yes
file File upload No

Validation (optional): min_length/max_length, pattern (regex) for text/textarea. min_items/max_items for checkbox_group. File config (optional): accept (MIME/extensions), max_size_mb (1-10), max_files (1-10).

Rate Limits

Endpoint Limit
Register 5/hour
Create form 10/min
All API / MCP 60/min
Embed GET/POST 30/20 per min

On 429: read Retry-After header, exponential backoff (Retry-After × 2^attempt), max 5 retries.

Data Retention

Default 30 days, max 365 days. Expired forms return expired: true. Use delete endpoint for immediate cleanup.

安全使用建议
This skill appears to do what it claims: create forms, give per-recipient URLs, poll results, support webhooks and an embeddable script. Before installing or enabling it for an agent, consider: 1) API key risk: the LETSCLARIFY_API_KEY grants create/read/delete access to your forms and submissions — treat it like any service secret and only give it to agents you trust. 2) Data exfiltration channels: if you use webhook_url, submission data will be POSTed to the URL you supply; only provide webhooks you control and trust. 3) Embed script: embedding loads external JS (https://letsclarify.ai/embed.js) into pages — if you serve sensitive content, review the embed behavior and host pages accordingly. 4) Retention: limit retention_days and delete forms when finished to reduce stored data. 5) Autonomy: the skill can be invoked autonomously by default; if you don't want automated agents creating forms or polling results, restrict model invocation or withhold the API key. Overall the skill is internally consistent — these are operational/privacy considerations rather than technical incoherence.
功能分析
Type: OpenClaw Skill Name: letsclarify Version: 1.0.7 The 'letsclarify' skill provides a legitimate human-in-the-loop integration, allowing AI agents to create web forms for approvals and data collection via the letsclarify.ai service. It features well-documented REST and MCP interfaces in SKILL.md and REFERENCE.md, including support for form schemas, file uploads, and webhooks. The use of 'openclaw cron' for asynchronous polling is consistent with the skill's functional requirements, and no evidence of malicious intent, data exfiltration, or prompt injection was identified.
能力评估
Purpose & Capability
Name/description (collect structured human input via web forms) matches the declared primary credential (LETSCLARIFY_API_KEY) and the SKILL.md: all API endpoints, MCP tools, webhooks, and embed widget behavior are consistent with a form-hosting service. No unrelated credentials, binaries, or install steps are requested.
Instruction Scope
Instructions stay within the form-collection scope (create forms, add recipients, poll results, delete forms). Two user-visible behaviors to be aware of: (1) Webhook support will POST submission data to any HTTPS webhook URL you provide (so submissions can be forwarded outside your environment); (2) the embed widget loads https://letsclarify.ai/embed.js which executes in client pages (standard for embed widgets but is an external script). Both are expected features but are the main channels by which user data leaves your environment.
Install Mechanism
Instruction-only skill with no install spec or downloaded code. Lowest-risk install profile — nothing is written to disk by the skill itself.
Credentials
Only a single primary credential (LETSCLARIFY_API_KEY) is declared and used. The SKILL.md references only that API key for Authorization; no unrelated secrets or config paths are requested.
Persistence & Privilege
always is false and the skill is user-invocable. It does not request persistent system-wide privileges or modification of other skills. By default the agent can invoke the skill autonomously (platform default) — this is normal but should be noted by administrators who restrict autonomous network access.
如何使用
  1. 确保已安装 OpenClaw(本地或 Docker 部署)
  2. 在对话框中输入安装命令:/install letsclarify
  3. 安装完成后,直接呼叫该 Skill 的名称或使用 /letsclarify 触发
  4. 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
版本历史
v1.0.7
- Added REFERENCE.md for detailed API usage, examples, tool descriptions, polling, and embed info. - SKILL.md is now a concise summary and directs users to REFERENCE.md for full documentation. - Clarified REST and MCP server invocation and configuration. - Streamlined endpoint, request, and response descriptions. - Documented rate limits, data retention, and polling recommendations. - Added schema field types, validation, and embed widget usage.
v1.0.6
- No changes detected in this version; documentation and features remain the same as the previous release. - again virustotal alerted. replaced "process them per the original task" with " fetch and summarize them"
v1.0.5
- clawhub stuck again - Version 1.0.5 has no file changes from the previous version.
v1.0.4
- No user-visible changes in this release. - Internal version bump, because clawhub got stuck in pending status.
v1.0.3
- Added explicit documentation of MCP server integration as a preferred option for MCP-compatible agents. - Clarified that the skill offers both an MCP server and REST API interface. - No changes to API endpoints, functionality, or workflows. - Documentation updated for broader compatibility context. - no explicit cron command, because it's marked as suspicius by virustotal.
v1.0.2
Version 1.0.2 - Added support for specifying client-provided UUIDs and prefilled values for recipients when creating forms or allocating new recipients. - Updated documentation to describe new `recipients` array, UUID validation rules, and prefill behavior. - Clarified logic and rules for combining `recipient_count` with `recipients` in API requests. - Documented advanced usage for both initial form creation and recipient allocation endpoints. - No changes to code—documentation updates only.
v1.0.1
letsclarify 1.0.1 - Changed `metadata.openclaw` key to `metadata.clawdbot` in SKILL.md. - No other user-facing changes.
v1.0.0
Initial release of letsclarify: Human-in-the-Loop input collection via forms. - Collect structured approvals, decisions, and data through custom JSON-schema web forms. - Issue unique URLs for each human respondent; supports up to 10,000 recipients per form. - Poll API or receive webhooks for real-time collection of form submissions and status. - Embed forms directly in external sites with a client-side widget—no backend setup needed. - Comprehensive REST API includes form creation, user management, result polling, and secure deletion. - Designed for workflows that require human review or approval before advancing.
元数据
Slug letsclarify
版本 1.0.7
许可证 MIT-0
累计安装 3
当前安装数 3
历史版本数 8
常见问题

Let's Clarify 是什么?

Collect structured human input — approvals, decisions, reviews, data — via web forms. Create a form with a JSON schema, send unique URLs to humans, poll for... 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 683 次。

如何安装 Let's Clarify?

在 OpenClaw 或 Claude Code 对话框中运行命令「/install letsclarify」即可一键安装,无需额外配置。

Let's Clarify 是免费的吗?

是的,Let's Clarify 完全免费,采用 MIT-0 许可证,可自由下载、安装和使用。

Let's Clarify 支持哪些平台?

Let's Clarify 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。

谁开发了 Let's Clarify?

由 Heiko Seebach(@heisee)开发并维护,当前版本 v1.0.7。

💬 留言讨论