← Back to Skills Marketplace
arthgrab

HiArthur Product Search and Understanding

by arthgrab · GitHub ↗ · v0.0.2 · MIT-0
cross-platform ✓ Security Clean
236
Downloads
1
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install hiarthur
Description
Search Amazon products and analyze materials, design, and reviews to uncover trade-offs and likely disappointments. See results in an interactive GUI.
README (SKILL.md)

HiArthur Product Search and Understanding

Overview

Two-endpoint API for intelligent product search and deep product analysis. Products are sourced from Amazon, but results go far beyond what Amazon returns directly — every product is analyzed through a multi-stage pipeline combining computer vision, LLMs, and symbolic reasoning to evaluate how well each product actually matches what the user is looking for and where it's likely to disappoint.

  • POST https://hiarthur.com/api/agents/search — find products matching a query. Each result is graded for fit against the user's requirements using vision + language models, not just keyword matching.
  • POST https://hiarthur.com/api/agents/product — deep-dive one product for failure-mode analysis (FMEA), feature summary, and review synthesis. Uses LLM reasoning over product details and images to surface likely disappointments.

Base URL: https://hiarthur.com/api

Results can optionally be handed off to a GUI (e.g. https://hiarthur.com/c/\x3Cconversation_id> or https://hiarthur.com/product/f7e2a9c1b3d4) where users can browse results visually and continue the conversation interactively.


When to Use This Skill

Use this skill when you need to:

  • Find products that match detailed user requirements
  • Evaluate trade-offs between competing products
  • Identify likely durability or design problems
  • Understand why a product might disappoint buyers
  • Compare products beyond simple ratings or keywords

Quick-Start: End-to-End Flow

Step 1 — Start a new search

POST /api/agents/search

{
  "type": "new",
  "search_query": "noise cancelling headphones for travel",
  "search_top_brands": true
}

Response:

{
  "conversation_id": "a1b2c3d4-...",
  "logical_search_id": "ls_abc123",
  "products": [
    {
      "product": {
        "description": "Sony WH-1000XM5 Wireless Noise Canceling Headphones",
        "brand": "Sony",
        "location": "product/f7e2a9c1b3d4",
        "price": 328.0,
        "rating": 4.6,
        "reviews_count": 12450
      },
      "explainer": "Strong noise canceling with long battery life, well suited for travel.",
      "match_grade": "Excellent"
    }
  ],
  "can_fetch_more": true
}

Step 2 — Fetch more results (pagination)

Reuse conversation_id and logical_search_id exactly as returned.

POST /api/agents/search

{
  "type": "continue",
  "conversation_id": "a1b2c3d4-...",
  "logical_search_id": "ls_abc123"
}

Repeat while can_fetch_more is true. A continue response with products: [] is valid (more may come on the next continue). Stop when can_fetch_more is false.

Step 3 — Deep-dive a product

Use a product.location value exactly as returned by search.

POST /api/agents/product

{
  "location": "product/f7e2a9c1b3d4"
}

Response:

{
  "fmea": {
    "unmitigated_failure_modes": [
      {
        "failure_name": "Headband cushion flattens over time",
        "likelihood": {
          "level": "medium",
          "reasoning": "Foam compression builds with daily wear, so most regular users will notice reduced comfort within months."
        },
        "impact": "annoying",
        "timeline": "within_a_year",
        "summary": "The headband padding can compress with regular use, making the headphones less comfortable for long listening sessions.",
        "evidence": [
          "Foam headband cushion visible in images",
          "No mention of memory foam or replaceable pads"
        ]
      }
    ],
    "mitigated_failure_modes": [
      {
        "failure_name": "Poor noise canceling on wind",
        "ownership_experience": "Multipoint wind-noise reduction",
        "reasoning": "Multiple microphones and adaptive ANC algorithms reduce wind interference compared to single-mic designs.",
        "evidence": [
          "Adaptive ANC with multiple external microphones",
          "Wind noise reduction mode listed in features"
        ]
      }
    ],
    "quality_summary": "These headphones prioritize audio quality and noise canceling performance. Most disappointment comes from comfort degradation over time rather than core functionality."
  },
  "features_summary": "Paragraph summarizing key product features based on listing data.",
  "reviews_summary": "Paragraph synthesizing themes and patterns from customer reviews."
}

Search Endpoint — Full Field Reference

New Search (type: "new")

Full example with all optional fields:

{
  "type": "new",
  "search_query": "noise cancelling headphones for travel",
  "search_top_brands": true,
  "trim_query": "Over-ear wireless headphones with active noise canceling and long battery life for airplane use",
  "brands": ["Sony", "Bose"],
  "search_filters": {
    "price_min": 100,
    "price_max": 400,
    "rating_min": 4.0,
    "reviews_min": 500
  },
  "search_sort": "relevance"
}
Field Type Required Default Description
type "new" yes Discriminator.
search_query string yes Broad retrieval query sent to the product catalog. Should be precise, user-intent-aligned, and include all key attributes (color, size, material, use case, gender).
search_top_brands boolean yes When true, restricts results to recognized top brands in the category. Default to true for electronics, appliances, clothing, tools, beauty, home/kitchen. Default to false for books, media.
trim_query string no same as search_query Similarity-trimming query. After retrieval, products with low similarity to this string are removed. Should be a fluent, attribute-rich, natural-language description optimized for matching product titles and images. More descriptive than search_query. See examples below.
conversation_id UUID string no server-generated Omit to let the server create a new conversation. Supply to attach this search to an existing conversation.
brands string[] no [] Explicit brand-name constraints. Only populate when the user names specific brands. Use canonical names with proper capitalization (e.g., ["Nike", "Adidas"]).
search_filters object no null All sub-fields optional and nullable: price_min (number), price_max (number), rating_min (number), reviews_min (integer). No extra keys allowed.
search_sort enum string no null "relevance", "price_low", "price_high", or "best_sellers".

search_query vs trim_query

search_query drives broad catalog retrieval. trim_query is applied after retrieval as a similarity filter — products with low similarity to it are removed.

trim_query should read like a grounded, attribute-rich product description:

  • "A men's sleeveless hooded vest made of shiny metallic fabric with a full zipper front."
  • "A 12-pack of chocolate-flavored protein shakes, each bottle containing 20 grams of protein."
  • "A thick purple yoga mat made of dense non-slip foam, measuring one inch in thickness."
  • "A 10-inch nonstick frying pan with a ceramic coating and induction-compatible base."
  • "Wireless Bluetooth 5.3 earbuds with noise-canceling features and at least 40 hours of battery life."

When omitted, trim_query defaults to search_query. Only set it when you have a more descriptive version.

Continue Search (type: "continue")

Field Type Required Description
type "continue" yes Discriminator.
conversation_id UUID string yes Exact value from the prior search response.
logical_search_id string yes Exact value from the prior search response.

Search Response

{
  "conversation_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
  "logical_search_id": "ls_abc123",
  "products": [
    {
      "product": {
        "description": "Sony WH-1000XM5 Wireless Noise Canceling Headphones",
        "brand": "Sony",
        "location": "product/f7e2a9c1b3d4",
        "price": 328.0,
        "rating": 4.6,
        "reviews_count": 12450
      },
      "explainer": "Strong noise canceling with long battery life, well suited for travel.",
      "match_grade": "Excellent"
    }
  ],
  "can_fetch_more": true
}
Field Type Description
conversation_id string Stable conversation identifier. Reuse for continue requests and frontend handoff.
logical_search_id string Identifies this search session for pagination. Reuse for continue requests.
products array ProductWithExplainer objects. May be empty (valid on continue).
can_fetch_more boolean The only pagination signal. true = more results available via continue.

Each products[] entry:

Field Type Description
product.description string Product title/description.
product.brand string or null Brand name if known.
product.location string Opaque product identifier (format: product/\x3Ccache_key>). Preserve exactly for /agents/product calls and frontend handoff.
product.price number or null Price in dollars.
product.rating number or null Star rating (e.g., 4.6).
product.reviews_count integer or null Number of customer reviews.
explainer string Human-readable rationale for the fit grade. May be empty.
match_grade string Canonical fit label. One of: "Excellent", "Good", "Partial", "Low".

Match Grade Semantics

Grade Meaning
Excellent All user requirements confirmed by evidence. All numeric constraints pass.
Good All critical requirements confirmed, none contraindicated. Constraints pass or pass within tolerance.
Partial At least one critical requirement is unconfirmed, missing, or contraindicated, OR some numeric constraints fail.
Low Any requirement is contraindicated, OR no requirements could be evaluated.

Product Endpoint — Deep Analysis

Request

{ "location": "product/\x3Ccache_key>" }

Use only a location value returned by /api/agents/search. Never invent locations. Request model uses extra = "forbid".

Response

Field Type Description
fmea object Failure Mode and Effects Analysis. See structure below.
features_summary string Paragraph summarizing key product features.
reviews_summary string Paragraph synthesizing themes from customer reviews.

FMEA Structure

The fmea object describes how a product is likely to disappoint a buyer over time, framed as failure modes rather than feature ratings.

unmitigated_failure_modes — array, typically 3 entries, ordered by expected regret impact (likelihood x impact x immediacy):

Field Type Possible Values
failure_name string Concise description of what goes wrong.
likelihood.level string "low", "medium", "high"
likelihood.reasoning string Product-specific probability rationale with expected incidence.
impact string "cosmetic", "annoying", "performance_loss", "unusable"
timeline string "immediate", "within_a_year", "over_a_year"
summary string 1–2 sentences on real-use customer impact.
evidence string[] Concrete cues from listing, specs, or images.

mitigated_failure_modes — array, 0–3 entries: common category failures that the product's design intentionally addresses.

Field Type Description
failure_name string The common failure that is unlikely here.
ownership_experience string Short positive reframe (max ~6 words, e.g., "Long cord with easy rewind").
reasoning string What design choices reduce this risk.
evidence string[] Concrete cues from listing.

quality_summary — string: A calm, informed paragraph synthesizing dominant risks, design priorities, disappointment timeline, fixability, and who the product is likely to satisfy vs. frustrate.


Error Handling

Status Endpoint Cause Suggested Action
400 /agents/product Invalid location format (empty, malformed, or contains path separators). Verify the location was copied verbatim from a search result.
404 /agents/search (continue) logical_search_id not found or expired from cache. Start a new search with type: "new".
404 /agents/product Product cache key or destination not found. May have expired. Re-run search to get a fresh location.
422 Both Schema validation failure: missing required field, wrong type, or extra key present. Fix request body. All request models use extra = "forbid".
500 Both Unhandled internal error. Retry once with backoff. If persistent, report as a service issue.
502 /agents/search Search backend did not return a final result, or returned an invalid payload. Retry once. If persistent, the upstream search service may be degraded.

Safety Rules

  1. Send JSON request bodies only.
  2. Never include extra fields — all request models use extra = "forbid" and will reject unknown keys with 422.
  3. Never invent product locations. Only use location values returned by /api/agents/search.
  4. Preserve conversation_id, logical_search_id, and product.location exactly as returned. Do not trim, modify, or regenerate.
  5. For type: "new", omit conversation_id to let the server generate one.
  6. All endpoints use the base URL https://hiarthur.com/api.

Frontend Handoff

  • Open c/\x3Cconversation_id> in a browser to resume that conversation within a GUI.
  • Open a returned product location in a browser to open the product information and see product images in a GUI.
  • Keep all backend-derived IDs and locations unchanged during handoff URL construction.

Recommended Agent Usage Pattern

  1. Call /agents/search with type: "new".
  2. Inspect the returned products.
  3. If more candidates are needed, call /agents/search with type: "continue".
  4. When a specific product requires deeper analysis, call /agents/product.
Usage Guidance
This skill is an instruction-only wrapper that sends your search queries and product-location values to hiarthur.com and displays results. Before installing or using it: (1) recognize that all query text and returned analysis will be handled by the remote service (avoid sending PII, account numbers, private images, or other sensitive data); (2) verify you trust the third-party domain (hiarthur.com) and prefer services with a visible homepage/privacy policy if you need stronger guarantees; (3) test with non-sensitive queries first to validate returned data and behavior; (4) if you require auditability, prefer skills that provide client-side code or use well-known, documented APIs you can inspect. There are no incoherent requests (no unexpected credentials or local file access), but the usual privacy caution for any third-party API applies.
Capability Analysis
Type: OpenClaw Skill Name: hiarthur Version: 0.0.2 The skill bundle defines a legitimate interface for a product search and analysis service hosted at hiarthur.com. It uses standard REST API patterns for searching Amazon products and performing Failure Mode and Effects Analysis (FMEA) without any evidence of data exfiltration, malicious execution, or harmful prompt injection.
Capability Assessment
Purpose & Capability
The SKILL.md documents two HTTP endpoints on hiarthur.com for search and product analysis, which directly implement the described functionality (product discovery, CV + LLM analysis, review synthesis). There are no unrelated environment variables, binaries, or install steps requested that would be out of scope for a remote-analysis service.
Instruction Scope
All runtime instructions are to POST JSON to hiarthur.com endpoints and to follow GUI links hosted on hiarthur.com; the skill does not instruct the agent to read local files, system credentials, or other environment variables. Note: using the GUI/conversation URLs means query text and returned analysis will be handled and potentially displayed by the external service — consider privacy implications.
Install Mechanism
No install spec or code files are provided (instruction-only). That minimizes local persistence and disk writes; all processing is performed by the external API service.
Credentials
The skill declares no required environment variables, credentials, or config paths, which is proportional to an instruction-only wrapper that delegates work to a remote API. There are no unexplained secret requests.
Persistence & Privilege
always is false and the skill does not request special persistent privileges. Model invocation is allowed (the platform default) and appropriate for a skill that performs remote API calls.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install hiarthur
  3. After installation, invoke the skill by name or use /hiarthur
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v0.0.2
hiarthur 0.0.2 - Skill description streamlined for clarity and conciseness. - Updated short description to emphasize interactive GUI results and removed specific implementation details. - No changes to API endpoints or their behavior. - Documentation reorganized for improved readability; instructions and examples remain unchanged. - No code or interface changes detected in this release.
v0.0.1
- Initial release of hiarthur skill. - Enables intelligent Amazon product search with deep analysis of materials, design trade-offs, and user reviews. - Two main endpoints: `/api/agents/search` for finding and grading products; `/api/agents/product` for in-depth failure analysis and review synthesis. - Supports advanced filtering, brand targeting, and pagination. - Results can be visualized and explored interactively through a GUI handoff.
Metadata
Slug hiarthur
Version 0.0.2
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is HiArthur Product Search and Understanding?

Search Amazon products and analyze materials, design, and reviews to uncover trade-offs and likely disappointments. See results in an interactive GUI. It is an AI Agent Skill for Claude Code / OpenClaw, with 236 downloads so far.

How do I install HiArthur Product Search and Understanding?

Run "/install hiarthur" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is HiArthur Product Search and Understanding free?

Yes, HiArthur Product Search and Understanding is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does HiArthur Product Search and Understanding support?

HiArthur Product Search and Understanding is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created HiArthur Product Search and Understanding?

It is built and maintained by arthgrab (@arthgrab); the current version is v0.0.2.

💬 Comments