# Send Let's Clarify to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "letsclarify",
    "name": "Let's Clarify",
    "source": "tencent",
    "type": "skill",
    "category": "其他",
    "sourceUrl": "https://clawhub.ai/heisee/letsclarify",
    "canonicalUrl": "https://clawhub.ai/heisee/letsclarify",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/letsclarify",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=letsclarify",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "REFERENCE.md",
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "letsclarify",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-29T07:25:48.299Z",
      "expiresAt": "2026-05-06T07:25:48.299Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=letsclarify",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=letsclarify",
        "contentDisposition": "attachment; filename=\"letsclarify-1.0.7.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "letsclarify"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/letsclarify"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/letsclarify",
    "downloadUrl": "https://openagent3.xyz/downloads/letsclarify",
    "agentUrl": "https://openagent3.xyz/skills/letsclarify/agent",
    "manifestUrl": "https://openagent3.xyz/skills/letsclarify/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/letsclarify/agent.md"
  }
}
```
## Documentation

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

### 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\\nPlease 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:

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

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

### Schema Field Types

TypeDescriptionoptions requiredtextSingle-line inputNotextareaMulti-line inputNocheckboxSingle booleanNocheckbox_groupMultiple checkboxesYesradioRadio buttonsYesselectDropdownYesfileFile uploadNo

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

EndpointLimitRegister5/hourCreate form10/minAll API / MCP60/minEmbed GET/POST30/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.
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: heisee
- Version: 1.0.7
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-04-29T07:25:48.299Z
- Expires at: 2026-05-06T07:25:48.299Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/letsclarify)
- [Send to Agent page](https://openagent3.xyz/skills/letsclarify/agent)
- [JSON manifest](https://openagent3.xyz/skills/letsclarify/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/letsclarify/agent.md)
- [Download page](https://openagent3.xyz/downloads/letsclarify)