# Send tmrland-personal-demo 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": "tmrland-personal-demo",
    "name": "tmrland-personal-demo",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/cpy1990/tmrland-personal-demo",
    "canonicalUrl": "https://clawhub.ai/cpy1990/tmrland-personal-demo",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/tmrland-personal-demo",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=tmrland-personal-demo",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "_meta.json",
      "SKILL.md",
      "scripts/get-kyc.mjs",
      "scripts/mark-negotiation-read.mjs",
      "scripts/request-revision.mjs",
      "scripts/get-credit-disputes.mjs"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-05-07T17:22:31.273Z",
      "expiresAt": "2026-05-14T17:22:31.273Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=afrexai-annual-report",
        "contentDisposition": "attachment; filename=\"afrexai-annual-report-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/tmrland-personal-demo"
    },
    "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/tmrland-personal-demo",
    "downloadUrl": "https://openagent3.xyz/downloads/tmrland-personal-demo",
    "agentUrl": "https://openagent3.xyz/skills/tmrland-personal-demo/agent",
    "manifestUrl": "https://openagent3.xyz/skills/tmrland-personal-demo/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/tmrland-personal-demo/agent.md"
  }
}
```
## Documentation

### TMR Land — Personal Skill

Connect your agent to TMR Land, a bilingual (zh/en) AI business marketplace. As a personal user you search businesses, publish Intentions, place escrow orders, and evaluate business quality via credit scoring.

### Setup

Set TMR_API_KEY — create one via POST /api/v1/api-keys with role: "personal".

Optionally set TMR_BASE_URL (default: https://tmrland.com/api/v1).

### Scripts

# Search active businesses
node {baseDir}/scripts/search-businesses.mjs --limit 10

# Create an intention (structured need)
node {baseDir}/scripts/create-intention.mjs --content "Need a fine-tuned Chinese NLP model for sentiment analysis" [--locale zh]

# List your intentions
node {baseDir}/scripts/list-intentions.mjs [--limit N]

# Get intention details
node {baseDir}/scripts/get-intention.mjs <intention-id>

# Publish a draft intention
node {baseDir}/scripts/publish-intention.mjs <intention-id>

# Cancel an intention
node {baseDir}/scripts/cancel-intention.mjs <intention-id>

# One-shot search (create + profile + match + return results)
node {baseDir}/scripts/quick-search.mjs --content "Need an NLP model for sentiment analysis"

# Trigger multi-path matching (rules + BM25 + vector + RRF fusion)
node {baseDir}/scripts/trigger-match.mjs <intention-id>

# Check matching status (pending/running/completed/failed)
node {baseDir}/scripts/match-status.mjs <intention-id>

# Get matched business candidates
node {baseDir}/scripts/get-matches.mjs <intention-id>

# Start negotiations with matched businesses
node {baseDir}/scripts/start-negotiation.mjs --intention <id> --businesses <id1,id2,...>

# List your negotiation sessions
node {baseDir}/scripts/list-negotiations.mjs [--intention <id>]

# View/send messages in a negotiation
node {baseDir}/scripts/negotiation-messages.mjs <session-id> [--send "message text"]

# Accept a final_deal proposal (creates order)
node {baseDir}/scripts/accept-deal.mjs <session-id>

# Reject a proposal
node {baseDir}/scripts/reject-deal.mjs <session-id>

# Cancel a negotiation session
node {baseDir}/scripts/cancel-negotiation.mjs <session-id>

# Check order status
node {baseDir}/scripts/order-status.mjs <order-id>

# List all your orders
node {baseDir}/scripts/list-orders.mjs [--limit N]

# Cancel an order (before payment)
node {baseDir}/scripts/cancel-order.mjs <order-id>

# Pay for an order (escrow)
node {baseDir}/scripts/pay-order.mjs <order-id> [--currency USD|USDC]

# View order messages
node {baseDir}/scripts/get-messages.mjs <order-id>

# Send a message in an order
node {baseDir}/scripts/send-message.mjs <order-id> --content "message text"

# Accept delivery (releases escrow, moves to pending_rating)
node {baseDir}/scripts/accept-delivery.mjs <order-id>

# Request revision (sends order back to business for rework)
node {baseDir}/scripts/request-revision.mjs <order-id> --feedback "Please fix..."

# Submit a review
node {baseDir}/scripts/submit-review.mjs --order <id> --rating <1-5> [--comment "..."]

# Check wallet balances
node {baseDir}/scripts/get-wallet.mjs

# Get a specific business profile
node {baseDir}/scripts/get-business.mjs <business-id>

# Get a business's A2A agent card
node {baseDir}/scripts/get-agent-card.mjs <business-id>

# Update a draft intention
node {baseDir}/scripts/update-intention.mjs <intention-id> [--title "..."] [--description "..."]

# Delete an intention
node {baseDir}/scripts/delete-intention.mjs <intention-id>

# Re-describe intention and re-match
node {baseDir}/scripts/redescribe-intention.mjs <intention-id> --content "..." [--locale zh]

# Get negotiation session details
node {baseDir}/scripts/get-negotiation.mjs <session-id>

# Mark negotiation messages as read
node {baseDir}/scripts/mark-negotiation-read.mjs <session-id>

# Withdraw a proposal
node {baseDir}/scripts/withdraw-proposal.mjs <session-id>

# Request revision on a delivery
node {baseDir}/scripts/request-revision.mjs <order-id> --feedback "Please fix..."

# Get order receipt
node {baseDir}/scripts/get-receipt.mjs <order-id>

# Open a dispute on an order
node {baseDir}/scripts/create-dispute.mjs <order-id> --reason "..." [--refund-type full|partial] [--refund-amount N]

# Charge wallet (add funds)
node {baseDir}/scripts/charge-wallet.mjs --amount 100 [--currency USD]

# Withdraw from wallet
node {baseDir}/scripts/withdraw-wallet.mjs --amount 50 [--currency USD]

# List wallet transactions
node {baseDir}/scripts/list-transactions.mjs [--limit N]

# Submit KYC verification
node {baseDir}/scripts/submit-kyc.mjs --name "..." --id-type passport --id-number "..."

# List order message conversations
node {baseDir}/scripts/list-conversations.mjs [--limit N]

# Mark order messages as read
node {baseDir}/scripts/mark-messages-read.mjs <order-id>

# List notifications
node {baseDir}/scripts/list-notifications.mjs

# Mark a notification as read
node {baseDir}/scripts/mark-notification-read.mjs <notification-id>

# Mark all notifications as read
node {baseDir}/scripts/mark-all-read.mjs

# Get reviews for a business
node {baseDir}/scripts/get-reviews.mjs <business-id>

# Get reputation scores for a business
node {baseDir}/scripts/get-reputation.mjs <business-id>

# Get review leaderboard
node {baseDir}/scripts/get-leaderboard.mjs

# List Grand Apparatus questions
node {baseDir}/scripts/list-questions.mjs [--limit N]

# Vote on a Grand Apparatus answer
node {baseDir}/scripts/vote-answer.mjs <answer-id> --direction like|dislike

# Get credit summary for a business
node {baseDir}/scripts/get-credit.mjs <business-id>

# Get credit profile (agent-friendly vector data)
node {baseDir}/scripts/get-credit-profile.mjs <business-id>

# Get credit review dimension details
node {baseDir}/scripts/get-credit-reviews.mjs <business-id>

# Get credit dispute dimension details
node {baseDir}/scripts/get-credit-disputes.mjs <business-id>

# List contracts
node {baseDir}/scripts/list-contracts.mjs [--limit N]

# Get KYC verification status
node {baseDir}/scripts/get-kyc.mjs

# Get unread notification count
node {baseDir}/scripts/unread-count.mjs

# Get reviews for a specific order
node {baseDir}/scripts/get-order-reviews.mjs <order-id>

# Get a specific contract
node {baseDir}/scripts/get-contract.mjs <contract-id>

# Get question answer leaderboard
node {baseDir}/scripts/get-question-leaderboard.mjs <question-id>

# List disputes
node {baseDir}/scripts/list-disputes.mjs [--limit N]

### Personal Workflow

Register & fund — Create account, complete KYC, charge wallet
Publish intention — Describe your need via --content
Match — Trigger multi-path business matching
Review candidates — Check match scores, reputation, credit profiles, Apparatus track records
Negotiate — Start negotiation sessions with candidate businesses, exchange messages, review proposals
Accept deal — Accept a final_deal proposal, which creates a contract and order
Pay — Debits funds from your wallet for escrow (USD or USDC)
Communicate — Message the business via order chat
Accept delivery — Review deliverables, accept (releases escrow) or request revision
Review — Rate the business during the pending_rating window

### Parameter Autonomy Levels

Three levels define how the agent handles each parameter:

AUTO — Agent can infer directly without asking (IDs, locale, pagination).
CONFIRM — Agent may draft a value but MUST show it to the user for approval before submitting.
ASK — Agent MUST ask the user directly. Never guess or generate.

OperationParameterLevelNotescreate_intentioncontentCONFIRMAgent may draft from conversation context; show draft before submittingcreate_intentionlocaleAUTODetect from content language (zh/en)quick_searchcontentCONFIRMSame as create_intention contentpublish_intentionintention_idAUTOUse ID from previous create stepupdate_intentiontitle, descriptionCONFIRMAgent may suggest editsredescribe_intentioncontentCONFIRMAgent may draft; warn about side effects firstredescribe_intentionlocaleAUTODetect from content languagedelete_intentionintention_idASKMust confirm deletion intenttrigger_matchingintention_idAUTOUse ID from current workflowstart_negotiationsbusiness_idsASKPresent match candidates; user selectssend_negotiation_messagecontentCONFIRMAgent may draft; user confirmsaccept_dealsession_idASKMust explain consequences and confirmreject_dealsession_idASKMust confirm rejectioncancel_negotiationsession_idASKMust confirm cancellationpay_ordercurrencyASKMust ask USD or USDCpay_orderorder_idAUTOUse ID from deal acceptancesend_messagecontentCONFIRMAgent may draft; user confirmsaccept_deliveryorder_idASKMust explain escrow release and confirmsubmit_reviewratingASKNever generate a ratingsubmit_reviewcommentCONFIRMAgent may suggest; user confirmscancel_orderorder_idASKMust confirm cancellationcancel_intentionintention_idASKMust confirm cancellation

### Destructive Operations

These operations have significant side effects. The agent MUST warn the user and obtain explicit confirmation before calling.

OperationSide EffectsRequired Confirmationaccept_delivery⚠️ IRREVERSIBLE. Releases escrowed funds to business. Moves order to pending_rating. Cannot be undone except via dispute."Are you sure you want to accept delivery and release [amount] [currency] to [business]?"accept_deal⚠️ IRREVERSIBLE. Creates a binding contract and order. Cancels ALL other active negotiations for this intention."Accepting creates an order for [amount] with [business] and cancels all other negotiations. Proceed?"pay_orderDebits funds from wallet for escrow. Funds held until delivery confirmation or dispute resolution."This will debit [amount] [currency] from your wallet. Pay with USD or USDC?"redescribe_intention⚠️ DESTRUCTIVE. Cancels all active negotiations. Replaces content and triggers re-matching. Previous negotiation history lost."This will cancel all current negotiations and start fresh. All negotiation progress will be lost. Continue?"delete_intention⚠️ DESTRUCTIVE. Permanently deletes intention and all associated data."This will permanently delete this intention. This cannot be undone. Confirm?"cancel_orderCancels order before payment. No financial impact."Cancel this order?"cancel_negotiationEnds negotiation session. History preserved but no further interaction."Cancel negotiation with [business]?"reject_dealRejects proposal. Negotiation remains active for revised proposals."Reject this proposal? The business can send a revised offer."cancel_intentionCancels intention. Associated negotiations may be affected."Cancel this intention?"

### State Machine Reference

Intention Lifecycle

draft → published → matching → matched → negotiating → contracted
  ↓         ↓                      ↓           ↓
cancelled cancelled              cancelled   gated → expired

StatusAllowed Operationsdraftupdate_intention, publish_intention, delete_intention, cancel_intentionpublishedtrigger_matching, redescribe_intention, cancel_intentionmatching(wait for completion — poll via get_match_status)matchedget_matches, start_negotiations, redescribe_intention, cancel_intentionnegotiatingsend_negotiation_message, accept_deal, reject_deal, cancel_negotiation, redescribe_intentioncontracted(order created — manage via order tools)gated(awaiting platform review)cancelleddelete_intentionexpireddelete_intention

Order Lifecycle

pending_payment → delivering → pending_review → pending_rating → completed
       ↓                           ↕ revision_requested
   cancelled                    disputed
                                   ↓
                                refunded

StatusAllowed Operations (Personal)pending_paymentpay_order, cancel_orderdeliveringsend_message, (wait for delivery)pending_reviewaccept_delivery, request_revision, dispute, send_messagerevision_requestedsend_message, (wait for business resubmission)pending_ratingsubmit_reviewcompleted(terminal)disputedget_dispute_votes (view Congress results)cancelled(terminal)refunded(terminal)

Negotiation Lifecycle

active → contracted (creates contract + order)
  ↓  ↑
  ↓  rejected (stays active, can re-propose)
  ↓
cancelled (terminal)
closed (terminal — order completed or cancelled)

StatusAllowed Operations (Personal)activesend_negotiation_message, accept_deal, reject_deal, cancel_negotiationcontracted(order created — use order tools)rejected(terminal for that proposal; session may remain active)cancelled(terminal)closed(terminal)

### Async Flow Patterns

Standard Matching Flow

create_intention(content) → publish_intention(id)
  → trigger_matching(id)
  → poll get_match_status(id) until 'completed'
  → get_matches(id) → present candidates to user
  → start_negotiations(id, user_selected_ids)

Quick Search Shortcut

quick_search(content) → returns matches directly (synchronous)

Combines create + profile + match in one call. Use when user wants fast results without managing the intention lifecycle.

Negotiation → Order Flow

(in active negotiation)
  → business sends proposal (send_proposal with status='final_deal')
  → user reviews proposal
  → accept_deal(session_id) → creates contract + order
  → pay_order(order_id, currency)
  → (wait for delivery)
  → accept_delivery(order_id) → releases escrow, moves to pending_rating
  → submit_review(order_id, rating)

### API Overview

Auth: Authorization: Bearer <TMR_API_KEY>. All paths prefixed with /api/v1. UUIDs for all IDs. Bilingual fields use _zh/_en suffixes. Pagination via offset+limit.

Key domains: auth, wallet, intentions, businesses, orders, contracts, credit, reviews, disputes, messages, notifications, apparatus.

See references/ for detailed request/response schemas per domain.

### Error Summary

StatusMeaning400Bad request — validation failed401Unauthorized — invalid or missing token403Forbidden — insufficient role/permissions404Not found409Conflict — duplicate or invalid state transition422Unprocessable entity — schema validation error500Internal server error
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: cpy1990
- Version: 1.0.5
## Source health
- Status: healthy
- Source download looks usable.
- Yavira can redirect you to the upstream package for this source.
- Health scope: source
- Reason: direct_download_ok
- Checked at: 2026-05-07T17:22:31.273Z
- Expires at: 2026-05-14T17:22:31.273Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/tmrland-personal-demo)
- [Send to Agent page](https://openagent3.xyz/skills/tmrland-personal-demo/agent)
- [JSON manifest](https://openagent3.xyz/skills/tmrland-personal-demo/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/tmrland-personal-demo/agent.md)
- [Download page](https://openagent3.xyz/downloads/tmrland-personal-demo)