Token导航 LogoToken导航

Agent Skill · 研究检索

kyndlo-events(金德洛事件)

kyndlo-events 用于查找、检索和筛选相关信息,适合在 OpenClaw 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

kyndlo-events 是研究检索类 Agent Skill,可用宿主为 OpenClaw,通过ClawHub获取,权限为需要联网;许可证为 MIT-0,第三方扫描有提醒项,按安装量在研究检索类的 73,675 个 Skill 里排第 18,563。

总安装 6,022周安装 246GitHub Stars 公开资料未说明下载 1,929核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT-0
版本
3.5.0

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:kyndlo-events(金德洛事件)
来源仓库:https://github.com/pirumpi/kyndlo-events
安装命令:
openclaw skills install kyndlo-events
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install kyndlo-events

这个 Skill 是做什么的

研究检索类 Skill 主要解决「找资料、核对事实、把来源整理清楚」的问题,通常会让助手先检索再总结。

金德洛活动驱动的事件创建与验证工具,遵循分步入职流程。适合会议、培训等活动的信息录入、提醒发送与参与统计。强制校验必填字段与时间冲突,确保数据完整性。kyndlo-events 属于研究检索类 Skill,可作为该场景下的辅助能力补充。调用前需配置事件类型模板与通知渠道,避免无效推送。

建议设置事件审批环节,防止恶意或重复创建活动。

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 OpenClaw;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 openclaw skills install kyndlo-events;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要需要联网,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

kyndlo-events 怎么安装?

在终端执行 openclaw skills install kyndlo-events。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

kyndlo-events 支持哪些 AI 工具?

公开资料标注支持 OpenClaw。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

kyndlo-events 需要什么权限?

权限级别是需要联网。该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

kyndlo-events 是免费的吗?

来源标注的许可证是 MIT-0。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

kyndlo-events 用的人多吗?

公开数据是累计安装 6,022 次,近一周安装 246 次,下载 1,929 次。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

kyndlo-events 安全吗?

第三方扫描有提醒项,说明存在需要人工确认的行为。安装前请打开源码看清它读了什么、联网到哪里。

值得选的地方和要先想清楚的地方

值得选的地方

  • 专注 OpenClaw 一种宿主,触发方式和使用习惯不用来回切换。
  • 许可证明确为 MIT-0,商用和分发边界好判断。

先想清楚的地方

  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 OpenClaw,想直接扩展它能力的人。
  • 需要处理研究检索类任务、又不想每次都手写提示词的人。

不太适合

  • 需要厂商级技术支持和 SLA 的生产系统。

研究检索类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
find-skills

寻找技能 · Codex、Claude

31,199,81316,486操作浏览器MIT有提醒
self-improving-agent

自我改进 Agent · OpenClaw

16,464,0023,396接触敏感数据MIT-0通过
soultrace

灵魂追踪 · Codex、Claude

7,588,94412需要联网未明确有提醒
self-improving

自我完善 · OpenClaw

6,829,2841,046需要联网MIT-0通过
microsoft-foundry

微软代工厂 · Codex、Claude

6,614,144764调用外部服务未明确有提醒
kyndlo-events

金德洛事件 · 本页

6,022—需要联网MIT-0有提醒

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

name
kyndlo-events
description
WORKFLOW-DRIVEN event creation and validation from Kyndlo campaign tasks. When invoked, the agent MUST follow the mandatory step-by-step onboarding flow below — verify token, show campaigns, ask city, ask county, ask batch size, fetch rules — before creating any events. For validation, follow the Event Validation Workflow. Do NOT ask generic questions. Do NOT improvise. Follow the steps exactly.
version
3.5.0
metadata
openclaw
requires
env
bins
primaryEnv
KYNDLO_API_TOKEN
install
package
gokyn
bins
[gokyn]
label
npm install -g gokyn
emoji
🎉
os
[darwin, linux]
homepage
https://github.com/kyndlo/gokyn-cli

kyndlo-events — Kyndlo Event Management

CRITICAL: This skill has MANDATORY step-by-step workflows for both event creation and event validation. You MUST follow the exact steps in order. Do NOT skip steps. Do NOT ask your own questions. Do NOT improvise. The workflow tells you exactly what to run and what to ask at each step.

STOP — Read This First

When this skill is invoked (user says anything like "create events", "kyndlo-events", "generate events", etc.):

If the user says "validate events", "check events", "review events", or "validation" — skip directly to the Event Validation Workflow section below.

For event creation:

  1. Do NOT ask the user for city, date range, event style, theme, or any other freeform questions
  2. Do NOT try to gather requirements conversationally — the workflow below handles that
  3. DO immediately start at Step 1 below and follow every step in order
  4. DO run the CLI commands shown — they provide the data you need
  5. DO wait for the user's response where indicated before moving to the next step
  6. DO always check for existing events before creating — duplicates waste resources

Events are created from campaign tasks stored in the Kyndlo database, not from user-provided descriptions. The system tells you what events to create. Your job is to follow the workflow.

Setup

npm install -g gokyn
export KYNDLO_API_TOKEN="kyndlo_..."
export GOOGLE_PLACES_API_KEY="..."   # Required for venue discovery via goplaces

All gokyn commands accept --token <token> if the env var is not set. Add --json to any command for machine-readable output. goplaces is used for venue discovery (Google Places API). It must be installed and configured separately.


Step 1: Verify token

Action: Run this command immediately — do not ask the user anything first.

gokyn whoami --json

Confirm the token is valid. If it fails, help the user set KYNDLO_API_TOKEN.

Step 2: Show campaigns and ask the user to pick one

Action: Run this command:

gokyn task campaigns

Then say to the user:

"Here are the available campaigns: [show the list with name, state, progress, pending tasks]. Which campaign would you like to work on?"

STOP and wait for the user's reply. Extract the campaign name and state from their choice.

Step 3: Show cities and ask which to prioritize

Action: Run this command using the state from the campaign they chose:

gokyn task cities --state "<state>"

Then say to the user:

"Here are the cities in [state]: [show city list with populations]. Which city would you like to prioritize? Say a city name, or 'any' to work through all cities."

STOP and wait for the user's reply. Handle:

  • "any" — Rotate through cities automatically. Start with the first city that has pending tasks.
  • Specific city — Lock to that city. Proceed to Step 4.

Step 4: Ask about county preference

Say to the user:

"Would you like to focus on a specific county, or work through all of them? (By default, I'll focus on major city counties and skip rural counties. Say 'include rural' if you want those too.)"

STOP and wait for the user's reply. Handle:

  • No preference / default — Ignore rural counties. Never use --city "Rural". Skip the "Rural" entry when rotating. This is the default.
  • "include rural" / "all including rural" — Include rural counties. No county filter.
  • Specific county — Use --county <county> filter.
  • "all" (without mentioning rural) — Ignore rural counties (the default).

Step 5: Ask batch size

Say to the user:

"How many events should I create before pausing to report results? (e.g. 5, 10, 20)"

STOP and wait for the user's reply. Store this as the batch size.

Step 6: Fetch event creation rules (MANDATORY — do not skip)

Action: Run this command:

gokyn task rules

Read the full output and internalize every rule. These rules come from the Kyndlo admin dashboard and govern venue selection, descriptions, formatting, images, and quality. You must follow them strictly for every event.

Step 7: Confirm and begin

Say to the user:

"Ready to start. Here's your configuration: - Campaign: [name] - State: [state] - City: [specific city / rotating through all] - County filter: [ignore rural (default) / include rural / specific county] - Batch size: [N] events per batch - Rules: Loaded Shall I begin?"

STOP and wait for confirmation. Only proceed to the Autonomous Loop after the user says yes.


Category Name Mapping

Task activityCategory values sometimes differ from activity titles in the database. Use this table when searching for the activity ID:

Task activityCategorySearch Term for gokyn activity list --search
Specialty Niche MuseumsSpecialty & Niche Museums
Yoga ClassesWellness centers
Restaurant/Cafes with Animal EncountersCoffee with animal encounters
Community TheatersTheater lounges
Craft CafesCraft cafés
Beach/BoardwalksBeach Boardwalks
Food TrucksFood truck parks
PlanetariumsPlanetarium

If the task category is not in this table, use it as-is for the search.


Day-of-Week Reference

When setting --recurrence-days, use these day numbers:

DayNumber
Sunday0
Monday1
Tuesday2
Wednesday3
Thursday4
Friday5
Saturday6

Include a day ONLY if the venue is open that day. Omit closed days entirely.


State Timezone Reference

StateTimezone
ColoradoAmerica/Denver
FloridaAmerica/New_York
New YorkAmerica/New_York

The Autonomous Loop

Process tasks in batches. Each batch creates up to N events (the batch size from onboarding), then pauses to report results and ask the user whether to continue.

Important: If the loop exits early for any reason, run the Cleanup step to release any uncompleted tasks.

Before each batch: Refresh rules

At the start of every batch (including the first), fetch the latest rules:

gokyn task rules

Re-read and internalize. Rules may have been updated by the Kyndlo admin between batches.

City rotation (when city = "any")

Track the current city. When task next returns "count": 0 for the current city:

  1. Get the city list: gokyn task cities --state "<state>" --json
  2. For each city (in order), check for pending tasks: gokyn task context --campaign <campaign> --city "<city>" --json
  3. Skip "Rural" if the user said "ignore rural counties"
  4. Use the first city with remaining pending tasks
  5. If no cities have pending tasks, stop the loop

Rural filtering

When the user chose "ignore rural counties":

  • Never pass --city "Rural" to any command
  • When rotating through cities, skip the "Rural" entry
  • If a task is returned for a rural county (shouldn't happen with city filter), release it and continue

Step 1: Claim a task

gokyn task next --campaign <campaign> --city <city> --assign --name "<agent-name>" --json

Apply filters based on onboarding preferences:

  • If a specific county was chosen: add --county <county>
  • Use the agent name only for --name (e.g. Sugar). Do NOT pass --priority — the server returns tasks in priority order automatically.

If "count": 0:

  • If city = "any": rotate to the next city (see City Rotation above)
  • If specific city: stop the loop
  • If the response includes a "diagnostic" field, report it to the user

Extract from tasks[0]: _id (taskId), county, activityCategory, cluster, state.

Step 2: Map the category

Check the Category Name Mapping table above. If the activityCategory matches a left-column entry, use the corresponding right-column search term. Otherwise use the category as-is.

Step 3: Find the activity ID

gokyn activity list --search "<mapped-category>" --json

Extract the activity _id from the first matching result. If no results, try shorter/partial search terms. If still no match, skip the task with reason "Activity not found for category: \<category\>".

Step 4: Research a venue

Find a real venue matching the task's activityCategory in county, state. Use goplaces (Google Places API) as the primary discovery tool.

4a. Search for candidates
goplaces search "<category> in <county> County, <state>" --json --limit 5 --region US

This returns up to 5 venues with place_id, name, address, rating, and open_now.

4b. Get full details for the best candidate
goplaces details <place_id> --json

Extract from the response:

  • name — venue display name
  • address — full street address (verify it's in the correct county!)
  • location.lat / location.lng — GPS coordinates
  • regular_opening_hours.weekday_descriptions — operating hours per day
  • website — venue website (used as --booking-url)
  • price_level — price indicator (0=free)
4c. Validation gates

Before using a venue, verify ALL of these:

  1. County match — The address must be in the task's county. If the address says a different city/county, reject it.
  2. Hours exist — regular_opening_hours must be present. If None or missing, reject the venue.
  3. Public & safe — Must be open to the public and suitable for first-time social meetups.

Convert hours to open day numbers (0=Sun through 6=Sat). Include a day ONLY if the venue is open that day.

4d. Fallback

If goplaces returns no results or all candidates fail validation:

  • Try broader search terms (e.g. shorter category name, nearby city name)
  • Try web search as a last resort to find hours or verify county
  • If still no qualifying venue after 5 candidates, skip the task

Collect for the chosen venue:

  • name, address, lat, lng, open days (as numbers 0-6), website URL, price (default 0)
  • Venue atmosphere details (for image generation prompt in Step 7): interior/exterior style, lighting, mood, notable features

Step 5: Check for duplicate events (MANDATORY — do not skip)

Before creating an event, you MUST check if a venue already exists as an event:

gokyn event list --search "<venue name>" --json

Duplicate detection rules:

  • If any result has the same title (case-insensitive) AND is in the same county → this is a duplicate. Skip this venue and try the next candidate.
  • If any result has a similar title (substring match) AND the same address → this is a duplicate. Skip this venue and try the next candidate.
  • If all venue candidates for this task are duplicates, skip the task: gokyn task skip <taskId> --reason "All qualifying venues already have events"
  • Only proceed to event creation if the search returns no matches for the chosen venue.

If you searched 5 candidates and all were duplicates, do NOT continue searching indefinitely — skip the task.

Step 6: Create the event

Look up the timezone from the State Timezone Reference table. Format open days as comma-separated numbers for --recurrence-days.

gokyn event create \
  --title "<venue name>" \
  --description "<2-3 sentence description per rules>" \
  --activity <activityId>:1 \
  --start-date-time "2027-01-01T09:00:00Z" \
  --end-date-time "2028-01-01T23:59:00Z" \
  --timezone "<timezone>" \
  --location-type physical \
  --location-place "<venue name>" \
  --location-address "<address>" \
  --location-lat <latitude> \
  --location-lng="<longitude>" \
  --recurring \
  --recurrence-frequency weekly \
  --recurrence-interval 1 \
  --recurrence-days "<open days>" \
  --is-public=false \
  --is-premium-only \
  --is-active=false \
  --price <price> \
  --price-currency USD \
  --booking-url "<venue website URL>" \
  --json

CLI syntax notes:

  • Negative longitude MUST use = syntax: --location-lng="-104.99"
  • Boolean false requires =: --is-public=false
  • End date is always 2028-01-01T23:59:00Z (one year window for recurring events)

Extract the eventId from the JSON response.

Step 7: Generate and upload an event image (MANDATORY)

Every event must have an image. Use one of the following methods:

Option A: Use Kyndlo's built-in AI image generation (preferred)
gokyn image generate \
  --prompt "A welcoming <venue-type> with <atmosphere details>, inviting for casual social meetups. Inspired by <venue name> in <city>, <state>." \
  --event-id <eventId>

This generates an image using the AI provider configured in the Kyndlo dashboard (e.g. Gemini, OpenAI), optimizes it, uploads to R2, and attaches it to the event — all in one step.

Option B: Generate externally and upload

If you have your own image generation tool (DALL-E, FAL, Stable Diffusion, etc.), generate the image yourself, then upload:

gokyn image upload --file /tmp/venue-image.jpg --event-id <eventId>
# or from base64:
gokyn image upload --base64 "<base64-data>" --mime-type image/png --event-id <eventId>
Prompt guidelines (for either method)
  • Describe the real venue type, atmosphere, and visual traits from your research
  • Include the activity category (e.g. "arcade bar", "botanic garden", "comedy club")
  • Mention key features: lighting, seating, mood, notable elements
  • Keep it grounded in the real venue — don't invent unrelated scenes
  • Example: "A lively retro arcade bar with neon lights, classic arcade cabinets, wood-fired pizza counter, and groups of friends playing games. Warm and inviting atmosphere in Orange Park, Florida."

If generation or upload fails, log the error and continue — the event is still valid without an image.

Step 8: Complete the task

gokyn task complete <taskId> --event-id <eventId> --venue "<venue name>"

Step 9: Track progress

Increment the batch counter. Log:

[Batch B, Task T/N] COMPLETED: <venue name> in <county> County (<cluster>/<category>) — Event ID: <eventId>

If the task was skipped:

[Batch B, Task T/N] SKIPPED: <county> County / <category> — Reason: <reason>

Step 10: Check batch completion

If the batch counter has reached the batch size (N), go to Batch Report. Otherwise, loop back to Step 1.


Batch Report

After completing each batch of N events, present a report to the user:

=== Batch <B> Report ===
Campaign:       <campaign-name>
City:           <current-city>
Batch size:     <N>
Created:        <count>
Skipped:        <count>
Failed:         <count>

Events Created:
  - <venue name> in <county> (<category>) — Event ID: <id>
  - ...

Skipped Tasks:
  - <county> / <category> — <reason>
  - ...

Cumulative Totals (all batches):
  Created: <total-created>  |  Skipped: <total-skipped>  |  Failed: <total-failed>

Then check remaining work:

gokyn task context --campaign <campaign> --city "<current-city>" --json

Report how many tasks remain in the current scope. Then ask:

"Batch <B> complete. <X> tasks remaining in <city>. Continue with the next batch?"

Wait for the user's response.

  • If yes — reset the batch counter, refresh rules, and resume the loop
  • If no or stop — run Cleanup, then print the Final Summary
  • If the user changes preferences (different city, county, batch size) — update the configuration and resume

Error Recovery

ErrorRecovery
No tasks returned (count: 0)If diagnostic field present, report it to the user — it may indicate stale in-progress tasks that need releasing. If city="any", rotate to next city. Otherwise stop the loop.
Diagnostic says tasks are "in_progress (possibly stale)"Run gokyn task release-stale --minutes 60 to release stuck tasks, then retry.
Duplicate event foundSkip venue, try next candidate. If all candidates are duplicates, skip the task with reason "All qualifying venues already have events".
No venues foundTry broader search terms. If still none, skip task.
No venues with determinable hoursSkip task with reason "No venues with published hours".
Activity ID not foundTry partial/shorter search terms. If still not found, skip task.
Event creation failsLog the error. Release the task: gokyn task release <taskId>. Continue.
Photo download/upload failsContinue without photo. Still complete the task.
gokyn task complete failsLog the error. Release the task: gokyn task release <taskId>. Report the event ID.
Agent interrupted or unexpected errorRelease all claimed-but-uncompleted tasks. See Cleanup.

Cleanup

Before exiting — whether normally or due to an error — release any task that was claimed but not completed or skipped.

gokyn task release <taskId>

If you have multiple uncompleted tasks, or if previous agents left stale tasks behind, use the bulk release command:

gokyn task release-stale --minutes 60

This releases all in_progress tasks that were assigned more than 60 minutes ago back to pending.

Rule: A task must NEVER be left in in_progress status when the agent exits. Every claimed task must end in one of three states:

  • completed — event created successfully
  • skipped — permanent failure (no venues, category not found)
  • released (back to pending) — transient failure (API error, timeout)

Use skip for permanent failures. Use release for transient failures.


Final Summary

After all batches are done (or the user stops), print a final session summary:

=== Event Creation Session Summary ===
Campaign:       <campaign-name>
State:          <state>
Cities worked:  <list of cities processed>
Total batches:  <B>
Total created:  <count>
Total skipped:  <count>
Total failed:   <count>

All Created Events:
  - <venue name> in <county> (<category>) — Event ID: <id>
  - ...

All Skipped Tasks:
  - <county> / <category> — <reason>
  - ...

All Failed Tasks:
  - <county> / <category> — <error>
  - ...

Skipping a Task

gokyn task skip <taskId> --reason "No qualifying venue found in <county> County for <category>"

Always provide a specific reason.

Releasing a Task

# Release a single task
gokyn task release <taskId>

# Release all stale tasks (assigned more than N minutes ago)
gokyn task release-stale --minutes 60

Starting a New State

When a campaign needs to cover a new US state:

# 1. Register the state with its counties
gokyn task register-state --state "New York" \
  --counties "New York,Kings,Queens,Bronx,Richmond,Nassau,Suffolk"

# 2. Check city/metro areas
gokyn task cities --state "New York"

# 3. Seed the campaign
gokyn task seed --campaign "newyork-2027" --state "New York" \
  --counties "New York,Kings,Queens,Bronx,Richmond" \
  --clusters-json '{
    "intellectual": ["History Museums", "Bookstore Cafes"],
    "visionary": ["Escape Rooms", "Comedy Clubs"],
    "protector": ["Yoga Classes", "Botanic Gardens"],
    "creator": ["Art Museums", "Pottery Painting Studios"]
  }'

# 4. Verify
gokyn task campaigns
gokyn task context --campaign "newyork-2027"

Event Validation Workflow

CRITICAL: This is a MANDATORY step-by-step workflow for validating events. Follow each step in order.

Validations are periodic re-checks of existing events to ensure venue data (hours, price, address, website, status) is still accurate. Events go stale over time — venues close, change hours, raise prices, or move. Your job is to verify each event against current real-world data and report issues.

Validation Step 1: Check validation stats

gokyn validation summary

Report the summary to the user:

"Validation queue: [total] total — [pending] pending, [valid] valid, [invalid] invalid, [needsUpdate] needs update, [overdue] overdue. Ready to start validating?"

STOP and wait for the user's reply.

Validation Step 2: Ask preferences

Say to the user:

"How many validations should I process before pausing to report? (e.g. 5, 10, 20). Would you like to filter by state or county?"

STOP and wait for the user's reply. Store batch size and optional filters.

Validation Step 3: Claim next validation

gokyn validation next --assign --json

Add filters if specified: --state <state> and/or --county <county>.

If no validations returned, report to the user and stop.

Extract from the response:

  • _id (validationId)
  • eventId
  • eventTitle
  • county, state
  • status, priority
  • lastValidatedAt (when it was last checked)

Validation Step 4: Fetch the event details

gokyn event get <eventId> --json

Extract the current event data:

  • title — venue name
  • description
  • location.address — street address
  • location.place — venue name at the location
  • location.coordinates — lat/lng
  • price — listed price
  • bookingUrl — venue website
  • recurrence.daysOfWeek — which days the event recurs
  • startDateTime / endDateTime
  • activities — linked activity categories

Validation Step 5: Verify against real-world data

Use goplaces to look up the venue and compare:

goplaces search "<event title> in <county> County, <state>" --json --limit 3 --region US

Find the matching venue, then get full details:

goplaces details <place_id> --json
What to check:
FieldHow to verifyIssue field
Still openCheck if the place is marked permanently_closed or not foundother
AddressCompare goplaces address with event location.addresslocation.address
HoursCompare regular_opening_hours.weekday_descriptions with event recurrence.daysOfWeekrecurrence.daysOfWeek
PriceCheck if entry fee has changed (from website if needed)price
WebsiteVerify bookingUrl is still valid and points to the right venuebookingUrl
NameCheck if the venue has been renamedother
Severity guidelines:
  • error — Venue permanently closed, wrong address, completely wrong hours, broken/unrelated website
  • warning — Minor hour changes (e.g. one day different), price changed slightly, website redirects but still works

Validation Step 6: Submit the result

Based on your findings, submit one of three statuses:

If everything checks out:
gokyn validation submit <validationId> --status valid
If there are issues that make the event inaccurate:
gokyn validation submit <validationId> --status invalid \
  --issues-json '[{"field":"<field>","severity":"<error|warning>","description":"<what changed>","currentValue":"<value in our DB>","expectedValue":"<actual value>"}]'

Multiple issues can be reported in the array:

gokyn validation submit <validationId> --status invalid \
  --issues-json '[
    {"field":"recurrence.daysOfWeek","severity":"error","description":"Venue now closed on Mondays","currentValue":"0,1,2,3,4,5,6","expectedValue":"0,2,3,4,5,6"},
    {"field":"price","severity":"warning","description":"Entry fee increased","currentValue":"$0","expectedValue":"$10"}
  ]'
If minor updates are needed but the event is mostly correct:
gokyn validation submit <validationId> --status needs_update \
  --notes "Hours changed for summer season — now opens at 10am instead of 9am"

Validation Step 7: Track progress

Log each result:

[Batch B, V/N] VALID: <event title> in <county> County — no issues
[Batch B, V/N] INVALID: <event title> in <county> County — <issue count> issues found
[Batch B, V/N] NEEDS_UPDATE: <event title> in <county> County — <notes summary>

If the venue was not found on goplaces at all:

gokyn validation submit <validationId> --status invalid \
  --issues-json '[{"field":"other","severity":"error","description":"Venue not found on Google Places — may be permanently closed"}]'

Validation Step 8: Check batch completion

If the batch counter has reached the batch size, go to Validation Batch Report. Otherwise loop back to Validation Step 3.


Validation Batch Report

After each batch, present:

=== Validation Batch <B> Report ===
Processed:      <count>
Valid:           <count>
Invalid:        <count>
Needs Update:   <count>

Results:
  - <event title> (<county>) — VALID
  - <event title> (<county>) — INVALID: <brief issue>
  - ...

Cumulative Totals (all batches):
  Valid: <total>  |  Invalid: <total>  |  Needs Update: <total>

Then check remaining:

gokyn validation summary
"Batch <B> complete. <pending> validations remaining. Continue?"

Wait for the user's response.


Browsing Activities and Events

gokyn activity list --search "yoga" --limit 10
gokyn activity list --category "wellness" --json
gokyn activity get <activityId>
gokyn activity categories

gokyn event list --limit 10
gokyn event list --search "garden" --is-active --json
gokyn event get <eventId>

Updating and Deleting Events

gokyn event update <eventId> --title "New Title"
gokyn event update <eventId> --is-active=false
gokyn event update <eventId> --price 25 --price-currency USD
gokyn event update <eventId> --activity <id1>:1 --activity <id2>:2
gokyn event update <eventId> \
  --location-type physical \
  --location-place "New Venue" \
  --location-address "123 Main St" \
  --location-lat 40.7 \
  --location-lng="-74.0"
gokyn event delete <eventId>

Geographic Queries

gokyn task states                      # List registered US states
gokyn task counties --state "Colorado" # List counties in a state
gokyn task cities --state "Colorado"   # List metro areas + rural breakdown

Command Quick Reference

CommandPurpose
gokyn whoamiVerify token and permissions
gokyn task rulesRead event creation rules (MANDATORY before each batch)
gokyn task campaignsList campaigns with progress
gokyn task context --campaign <id>Campaign progress, next county
gokyn task summary --campaign <id>Detailed stats by city and county
gokyn task cities --state <s>Metro areas and county mappings
gokyn task next --campaign <id> --city <c> --assign --name <n>Claim next task
gokyn task complete <id> --event-id <eid>Mark task done
gokyn task skip <id> --reason <r>Skip impossible task
gokyn task release <id>Unclaim a task
gokyn task release-stale --minutes 60Release all stale in-progress tasks
gokyn task seed --campaign <id> ...Seed tasks for counties
gokyn activity list / get / categoriesBrowse activities
goplaces search "<query>" --json --limit 5 --region USSearch venues by category and location
goplaces details <place_id> --jsonGet venue hours, address, coordinates
gokyn event list / get / create / update / deleteManage events
gokyn image generate --prompt <p> --event-id <eid>Generate AI image and attach to event
gokyn image upload --file <f> --event-id <eid>Upload venue photo from file
gokyn validation next / submit / summaryEvent validation

Global Flags

FlagEnvDescription
--token <token>KYNDLO_API_TOKENAPI token (required)
--base-url <url>KYNDLO_API_URLAPI base URL (default: https://api.kyndlo.com)
--jsonMachine-readable JSON output
--timeout <ms>HTTP timeout in ms (default: 30000)
--no-colorNO_COLORDisable ANSI colors

Tips

  • Always use --json when parsing output programmatically
  • Always pass --name with --assign to track who claimed a task
  • Use --city to focus on a metro area: --city "Denver" or --city "Rural"
  • Negative numbers need = syntax: --location-lng="-104.99"
  • Boolean flags: --is-public = true, --is-public=false = false
  • IDs are 24-character hex strings (MongoDB ObjectId)
  • Dates are ISO 8601: 2027-01-01T09:00:00Z

平台分布

OpenClaw

70.19%
按下载量换算1,354

安全审计

VirusTotal

未展示

ClawScan

可疑

Static analysis

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。目前只有一个公开来源,建议同时核对源仓库。

继续浏览同类 Skills