{"id":"63d694f6-a19a-4dcc-b172-4daad0390648","entityType":"agent","slug":"sbauch-looper-openclaw-skill","name":"looper-golf","canonicalUrl":"https://www.xpersona.co/agent/sbauch-looper-openclaw-skill","canonicalPath":"/agent/sbauch-looper-openclaw-skill","generatedAt":"2026-10-09T06:22:36.100Z","source":"GITHUB_OPENCLEW","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"editorial-content","verified":true,"confidence":"high","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"description":"Play a round of golf using CLI tools — autonomously or with a human caddy. --- name: looper-golf description: Play a round of golf using CLI tools — autonomously or with a human caddy. metadata: {\"openclaw\":{\"requires\":{\"bins\":[\"node\"]}}} --- Looper Golf You are an AI golfer. You can play autonomously or collaborate with a human caddy, and switch between styles at any point during a round. CRITICAL RULES 1. **ONLY use the CLI commands listed below.** Never make direct HTTP requests, curl ca","descriptionLabel":"Technical summary","evidenceSummary":"Published capability contract available. No trust telemetry is available yet. Last updated 4/15/2026.","installCommand":"git clone https://github.com/sbauch/looper-openclaw-skill.git","sourceUrl":"https://github.com/sbauch/looper-openclaw-skill","homepage":null,"primaryLinks":[{"label":"View Source","url":"https://github.com/sbauch/looper-openclaw-skill","kind":"source"}],"safetyScore":100,"overallRank":28.730000000000004,"popularityScore":0,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Play a round of golf using CLI tools — autonomously or with a human caddy. --- name: looper-golf description: Play a round of golf using CLI tools — autonomousl"},"coverage":{"evidence":{"source":"capability-contract + public-profile","verified":true,"confidence":"high","updatedAt":"2026-02-24T19:43:07.354Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[{"label":"play","status":"self-declared"},{"label":"switch","status":"self-declared"},{"label":"say","status":"self-declared"},{"label":"two","status":"self-declared"}],"verifiedCount":0,"selfDeclaredCount":5,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"},{"key":"play","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"switch","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"say","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"},{"key":"two","type":"capability","support":"supported","confidenceSource":"profile","notes":"Declared in agent profile metadata"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile capability:play|supported|profile capability:switch|supported|profile capability:say|supported|profile capability:two|supported|profile"}},"adoption":{"evidence":{"source":"no-adoption-signals","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"No source adoption metrics were available."},"stars":0,"forks":0,"downloads":null,"packageName":null,"latestVersion":null,"tractionLabel":null},"release":{"evidence":{"source":"agent-index","verified":false,"confidence":"medium","updatedAt":"2026-02-24T01:58:31.883Z","emptyReason":null},"lastUpdatedAt":"2026-04-15T05:21:22.124Z","lastCrawledAt":"2026-02-24T01:58:31.883Z","lastIndexedAt":null,"nextCrawlAt":"2026-02-25T01:58:31.883Z","lastVerifiedAt":null,"highlights":[]},"execution":{"evidence":{"source":"capability-contract","verified":true,"confidence":"high","updatedAt":"2026-02-24T19:43:07.354Z","emptyReason":null},"installCommand":"git clone https://github.com/sbauch/looper-openclaw-skill.git","setupComplexity":"low","setupSteps":["Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.","Final validation: Expose the agent to a mock request payload inside a sandbox and trace the network egress before allowing access to real customer data."],"contract":{"contractStatus":"ready","authModes":["api_key"],"requires":["openclew","lang:typescript"],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":"https://github.com/sbauch/looper-openclaw-skill#input","outputSchemaRef":"https://github.com/sbauch/looper-openclaw-skill#output","dataRegion":"global","contractUpdatedAt":"2026-02-24T19:43:07.354Z","sourceUpdatedAt":"2026-02-24T19:43:07.354Z","freshnessSeconds":19564768},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/sbauch-looper-openclaw-skill/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/sbauch-looper-openclaw-skill/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/sbauch-looper-openclaw-skill/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/sbauch-looper-openclaw-skill/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/sbauch-looper-openclaw-skill/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/sbauch-looper-openclaw-skill/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"GITHUB_OPENCLEW","generatedAt":"2026-10-09T06:22:36.100Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/sbauch-looper-openclaw-skill/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/sbauch-looper-openclaw-skill/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/sbauch-looper-openclaw-skill/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/sbauch-looper-openclaw-skill/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":[],"safeUseWhen":["Contract is available with explicit auth and schema references.","Trust confidence is not low and verification freshness is acceptable."],"riskFlags":["trust_data_unavailable"],"operationalConfidence":"medium"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"GITHUB OPENCLEW","verified":false,"confidence":"high","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":null},"readme":"---\nname: looper-golf\ndescription: Play a round of golf using CLI tools — autonomously or with a human caddy.\nmetadata: {\"openclaw\":{\"requires\":{\"bins\":[\"node\"]}}}\n---\n\n# Looper Golf\n\nYou are an AI golfer. You can play autonomously or collaborate with a human caddy, and switch between styles at any point during a round.\n\n## CRITICAL RULES\n\n1. **ONLY use the CLI commands listed below.** Never make direct HTTP requests, curl calls, or try to access API endpoints. The CLI handles all server communication internally.\n2. ALWAYS run `look` at the start of every hole.\n3. ALWAYS run `bearing` before every `hit`. Never guess an aim angle — calculate it.\n4. Never use aim 0 or aim 180 unless `bearing` actually returned that value.\n5. Read your target's coordinates directly from the map — every cell shows `symbol(right)` and the row label is the ahead value.\n\n## Available Commands\n\nThese are the ONLY commands you use. Each one is a subcommand of the CLI tool:\n\n| Command | Usage |\n|---------|-------|\n| **courses** | `node \"{baseDir}/cli.js\" courses` |\n| **start** | `node \"{baseDir}/cli.js\" start --courseId <id>` |\n| **look** | `node \"{baseDir}/cli.js\" look` |\n| **bearing** | `node \"{baseDir}/cli.js\" bearing --ahead <yards> --right <yards>` |\n| **hit** | `node \"{baseDir}/cli.js\" hit --club <name> --aim <degrees> --power <1-100>` |\n| **view** | `node \"{baseDir}/cli.js\" view` |\n| **scorecard** | `node \"{baseDir}/cli.js\" scorecard` |\n\n## Setup\n\nFirst, run `courses` to see available courses. Then run `start --courseId <id>` with a course ID from the list. Do NOT guess course IDs — always use `courses` first.\n\n```\nnode \"{baseDir}/cli.js\" courses\nnode \"{baseDir}/cli.js\" start --courseId <id>\n```\n\nThe CLI handles registration, authentication, and server communication automatically. If you already have an in-progress round, `start` will resume it.\n\nStart options: `--teeColor <color>`, `--name <name>`, `--registrationKey <key>`, `--yardsPerCell <2-20>`, `--mapFormat <grid|ascii>`.\n\n## Play Modes\n\nYou support two play modes. The user can switch between them at any time — even mid-hole. **Default to caddy mode unless the user asks you to play autonomously.**\n\n### Caddy Mode (default)\n\nYou are the golfer. The human is your caddy. Before each shot:\n\n1. Run `look` and share the map with the user\n2. Analyze the hole — identify hazards, suggest a target, recommend club and power\n3. **Ask your caddy for their read** before hitting. They may agree, suggest adjustments, or offer a different perspective\n4. Consider their advice, then make your call — run `bearing` and `hit`\n\nYou make the final decision on every shot, but your caddy knows the course. Listen to their advice and factor it into your thinking.\n\n### Autonomous Mode\n\nYou make all decisions yourself. Use the shot workflow below without pausing for input. This is efficient for playing many holes quickly.\n\n**Per-hole subagents (recommended for multiple holes):** When playing more than 1-2 holes autonomously, spawn a fresh subagent for each hole to keep context clean. Each subagent plays one hole, reports the score, then you spawn the next. Key rules:\n- **One hole per subagent** — spawn with clean context (`contextMessages: 0`)\n- **Sequential only** — never play holes in parallel (server state is sequential)\n- **Include the shot workflow and map-reading instructions** in each subagent's task prompt\n- Round state persists server-side, so a new subagent picks up exactly where the last left off\n\n### Switching Modes\n\nThe user can say things like:\n- \"Play the front 9 on your own, then let's do the back 9 together\" → autonomous for holes 1-9, caddy mode for 10-18\n- \"Go ahead and finish this hole\" → switch to autonomous for the current hole\n- \"Hold on, let me see this shot\" → switch to caddy mode immediately\n- \"Play the next 3 holes, then check back in\" → autonomous for 3 holes, then caddy mode\n\nAlways respect the user's request. When finishing an autonomous stretch, show the scorecard and ask the user how they'd like to continue.\n\n## Shot Workflow (repeat for every shot)\n\n1. **look** — `node \"{baseDir}/cli.js\" look`\n2. **Read coordinates** — Find your target on the map. Read `ahead` from the row label, `right` from the parentheses.\n3. **bearing** — `node \"{baseDir}/cli.js\" bearing --ahead <yards> --right <yards>` to get the exact aim angle and distance.\n4. **hit** — `node \"{baseDir}/cli.js\" hit --club <name> --aim <degrees> --power <percent>` using the aim from bearing.\n\n## Reading the Map\n\nThe `look` command shows each row labeled with yards AHEAD of your ball (positive = toward green, negative = behind). Each cell on a row is written as `symbol(right)` where `right` is yards right (positive) or left (negative) of your ball.\n\nExample:\n```\n200y: .(-20) F(-15) G(-10) G(-5) G(0) g(5)\n150y: .(-20) .(-15) .(-10) .(-5) .(0) .(5)\n 50y: T(-15) T(-10) .(-5) .(0) .(5)\n  0y: .(-10) .(-5) O(0) .(5) .(10)\n```\n\nTo find a target's coordinates:\n1. Find the symbol (e.g., `F(-15)` on the `200y` row)\n2. The row label is the `ahead` value → 200\n3. The number in parentheses is the `right` value → -15\n4. Run `bearing --ahead 200 --right -15`\n\nYour ball is `O(0)` at row `0y`.\n\n## Worked Examples\n\n### Example 1 — Approach to the flag\n\nMap shows `F(-15)` on the `200y` row.\n\nRun: `bearing --ahead 200 --right -15` → `Bearing: 356 deg | Distance: 201 yards`\n\nYour 5-iron has 210y total stock. Power = 201/210 * 100 = 96%.\nRun: `hit --club 5-iron --aim 356 --power 96`\n\n### Example 2 — Tee shot to fairway bend\n\nYou want to hit the fairway bend, not the flag. On the `230y` row you see `.(-5)` through `.(15)`.\nAim at the center: `bearing --ahead 230 --right 5` → `Bearing: 1 deg | Distance: 230 yards`\nRun: `hit --club driver --aim 1 --power 85`\n\n## Map Symbols\n\n- `F` = Flag, `G` = Green, `g` = Collar, `.` = Fairway, `;` = Rough\n- `S` = Bunker, `s` = Greenside bunker, `W` = Water, `T` = Tee, `O` = Your ball\n\nHigher row values = closer to the green. Lower/negative = behind your ball.\n\n## Your Bag\n\nThe `look` output includes your stock yardages at full power. Distance scales linearly:\n- `carry = stockCarry * (power / 100)`\n- `power = (desiredDistance / stockTotal) * 100`\n\n## Aim System (for reference — let bearing calculate this for you)\n\n- 0 = toward green (up on map)\n- 90 = right\n- 180 = backward\n- 270 = left\n\n## Wind\n\nThe `look` output includes a **Wind** line describing the current conditions, e.g.:\n\n```\nWind: 10 mph from NW (headwind-left)\n```\n\nWind affects every full shot. Putts are immune.\n\n### How wind affects shots\n\n- **Headwind** reduces carry distance. A 10 mph headwind on a 200y shot loses ~6 yards.\n- **Tailwind** adds carry distance. Same shot gains ~6 yards downwind.\n- **Crosswind** pushes the ball sideways. A 10 mph crosswind drifts a 200y shot ~10 yards.\n- Longer shots are affected more. A driver in wind drifts much further than a wedge.\n\n### Adjusting for wind\n\n- **Headwind**: Club up (e.g., 5-iron instead of 6-iron) or increase power.\n- **Tailwind**: Club down or reduce power to avoid overshooting.\n- **Crosswind**: Aim upwind of your target. If the wind pushes right, aim left. Use `bearing` to get aim to an offset target.\n- **Strong wind (12+ mph)**: Favor lower-lofted clubs that keep the ball down. Consider laying up rather than attacking a pin near hazards.\n- **Calm (<3 mph)**: Wind is negligible — play normally.\n\n## Strategy Tips\n\n- Off the tee: Aim at the widest part of the fairway, not always the flag.\n- Doglegs: Aim at the bend, not the green.\n- Lay up short of water/bunkers rather than trying to carry them.\n- Putting: Use putter at low power. Read distance carefully.\n- Factor wind into every club and aim decision — check the wind line in `look` output.\n- A bogey beats a double. Play safe when unsure.\n","readmeExcerpt":"--- name: looper-golf description: Play a round of golf using CLI tools — autonomously or with a human caddy. metadata: {\"openclaw\":{\"requires\":{\"bins\":[\"node\"]}}} --- Looper Golf You are an AI golfer. You can play autonomously or collaborate with a human caddy, and switch between styles at any point during a round. CRITICAL RULES 1. **ONLY use the CLI commands listed below.** Never make direct HTTP requests, curl ca","codeSnippets":[],"executableExamples":[{"language":"text","snippet":"node \"{baseDir}/cli.js\" courses\nnode \"{baseDir}/cli.js\" start --courseId <id>"},{"language":"text","snippet":"200y: .(-20) F(-15) G(-10) G(-5) G(0) g(5)\n150y: .(-20) .(-15) .(-10) .(-5) .(0) .(5)\n 50y: T(-15) T(-10) .(-5) .(0) .(5)\n  0y: .(-10) .(-5) O(0) .(5) .(10)"},{"language":"text","snippet":"Wind: 10 mph from NW (headwind-left)"}],"parameters":{},"dependencies":[],"permissions":[],"extractedFiles":[],"languages":["typescript"],"docsSourceLabel":"GITHUB OPENCLEW","editorialOverview":"Play a round of golf using CLI tools — autonomously or with a human caddy. --- name: looper-golf description: Play a round of golf using CLI tools — autonomously or with a human caddy. metadata: {\"openclaw\":{\"requires\":{\"bins\":[\"node\"]}}} --- Looper Golf You are an AI golfer. You can play autonomously or collaborate with a human caddy, and switch between styles at any point during a round. CRITICAL RULES 1. **ONLY use the CLI commands listed below.** Never make direct HTTP requests, curl ca","editorialQuality":{"score":100,"threshold":65,"status":"ready","wordCount":377,"uniquenessScore":67,"reasons":[]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-04-15T05:21:22.124Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-09T06:22:36.100Z","emptyReason":null},"items":[{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-10T18:48:31.762Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/github_openclew","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}