Install
openclaw skills install @rawven/ctr-json-normalizerNormalize the final JSON output of a single-session CTR product-card click diagnosis. Use after the diagnosis draft is complete and before replying, whenever the report must contain exactly the agreed query, clicked item, unclicked items, five fixed dimensions, structured suggestions, and limitations.
openclaw skills install @rawven/ctr-json-normalizerRun this Skill once as the final step of every CTR diagnosis. It formats and validates a completed diagnosis; it does not fetch images, compare products, infer causes, or write new business suggestions.
Pass one JSON object through stdin:
{
"session": { "query": "", "clicked_item_id": "", "items": [] },
"report": { }
}
report may be a JSON object or a JSON string. session.items must be the original card list, with item_id, position, and clicked where available.
python3 scripts/normalize_ctr_report.py <<'JSON'
{ "session": { "query": "...", "clicked_item_id": "...", "items": [] }, "report": {} }
JSON
scripts/normalize_ctr_report.py with the original session and the draft.error, fix the draft JSON and run it again.The script fixes only the report envelope: root fields, candidate item coverage, dimension order, allowed status values, suggestion field shape, and limitations. A missing dimension becomes unknown with no suggestion; no factual claim is invented.