Crawler Summary

secretary answer-first brief

AI secretary skill for email monitoring, calendar briefings, meeting reminders, task management, and health/life support. Uses himalaya (email) and gcalcli (calendar). Handles morning/evening reports, email digests, pre-meeting notifications, task tracking, break reminders, and shopping list management. --- name: secretary description: AI secretary skill for email monitoring, calendar briefings, meeting reminders, task management, and health/life support. Uses himalaya (email) and gcalcli (calendar). Handles morning/evening reports, email digests, pre-meeting notifications, task tracking, break reminders, and shopping list management. --- Secretary AI agent skill for secretary duties: email triage, daily briefings, Capability contract not published. No trust telemetry is available yet. Last updated 2/24/2026.

Freshness

Last checked 2/24/2026

Best For

secretary is best for proactive workflows where OpenClaw compatibility matters.

Not Ideal For

Contract metadata is missing or unavailable for deterministic execution.

Evidence Sources Checked

editorial-content, GITHUB OPENCLEW, runtime-metrics, public facts pack

Claim this agent
Agent DossierGitHubSafety: 89/100

secretary

AI secretary skill for email monitoring, calendar briefings, meeting reminders, task management, and health/life support. Uses himalaya (email) and gcalcli (calendar). Handles morning/evening reports, email digests, pre-meeting notifications, task tracking, break reminders, and shopping list management. --- name: secretary description: AI secretary skill for email monitoring, calendar briefings, meeting reminders, task management, and health/life support. Uses himalaya (email) and gcalcli (calendar). Handles morning/evening reports, email digests, pre-meeting notifications, task tracking, break reminders, and shopping list management. --- Secretary AI agent skill for secretary duties: email triage, daily briefings,

OpenClawself-declared

Public facts

4

Change events

1

Artifacts

0

Freshness

Feb 24, 2026

Verifiededitorial-contentNo verified compatibility signals

Capability contract not published. No trust telemetry is available yet. Last updated 2/24/2026.

Trust evidence available

Trust score

Unknown

Compatibility

OpenClaw

Freshness

Feb 24, 2026

Vendor

Watari Ai

Artifacts

0

Benchmarks

0

Last release

Unpublished

Executive Summary

Key links, install path, and a quick operational read before the deeper crawl record.

Verifiededitorial-content

Summary

Capability contract not published. No trust telemetry is available yet. Last updated 2/24/2026.

Setup snapshot

git clone https://github.com/watari-ai/secretary-skill.git
  1. 1

    Setup complexity is LOW. This package is likely designed for quick installation with minimal external side-effects.

  2. 2

    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.

Evidence Ledger

Everything public we have scraped or crawled about this agent, grouped by evidence type with provenance.

Verifiededitorial-content
Vendor (1)

Vendor

Watari Ai

profilemedium
Observed Feb 24, 2026Source linkProvenance
Compatibility (1)

Protocol compatibility

OpenClaw

contractmedium
Observed Feb 24, 2026Source linkProvenance
Security (1)

Handshake status

UNKNOWN

trustmedium
Observed unknownSource linkProvenance
Integration (1)

Crawlable docs

6 indexed pages on the official domain

search_documentmedium
Observed Apr 15, 2026Source linkProvenance

Release & Crawl Timeline

Merged public release, docs, artifact, benchmark, pricing, and trust refresh events.

Self-declaredagent-index

Artifacts Archive

Extracted files, examples, snippets, parameters, dependencies, permissions, and artifact metadata.

Self-declaredGITHUB OPENCLEW

Extracted files

0

Examples

6

Snippets

0

Languages

typescript

Parameters

Executable Examples

json

{
  "lastRead": {
    "C0ACY3F5FPV": "1708750000.000000"
  },
  "emailCheckedAt": 1708750000,
  "breakRemindersSent": {
    "2026-02-24": ["12:00", "15:00"]
  },
  "lastNightReminder": null,
  "meetingCronsCreated": "2026-02-24"
}

python

state = read_json("memory/secretary-state.json") or {}
# ... do work ...
write_json("memory/secretary-state.json", state)

python

channel_id = config["tasks"]["input_channel"]
   last_ts = state.get("lastRead", {}).get(channel_id, "0")

text

message(action="read", channelId=<channel_id>, limit=20)

python

state["lastRead"][channel_id] = max(msg["ts"] for msg in new_messages)
   write_json("memory/secretary-state.json", state)

bash

# In your gateway environment or shell profile:
export HIMALAYA_CONFIG=/absolute/path/to/himalaya/config.toml
# Example: /Users/you/.config/himalaya/config.toml

Docs & README

Full documentation captured from public sources, including the complete README when available.

Self-declaredGITHUB OPENCLEW

Docs source

GITHUB OPENCLEW

Editorial quality

ready

AI secretary skill for email monitoring, calendar briefings, meeting reminders, task management, and health/life support. Uses himalaya (email) and gcalcli (calendar). Handles morning/evening reports, email digests, pre-meeting notifications, task tracking, break reminders, and shopping list management. --- name: secretary description: AI secretary skill for email monitoring, calendar briefings, meeting reminders, task management, and health/life support. Uses himalaya (email) and gcalcli (calendar). Handles morning/evening reports, email digests, pre-meeting notifications, task tracking, break reminders, and shopping list management. --- Secretary AI agent skill for secretary duties: email triage, daily briefings,

Full README

name: secretary description: AI secretary skill for email monitoring, calendar briefings, meeting reminders, task management, and health/life support. Uses himalaya (email) and gcalcli (calendar). Handles morning/evening reports, email digests, pre-meeting notifications, task tracking, break reminders, and shopping list management.

Secretary

AI agent skill for secretary duties: email triage, daily briefings, calendar management, meeting reminders, task management, and health/life support.

Prerequisites

Quick Start

  1. Copy config.example.ymlconfig.yml, fill in values.
  2. Set HIMALAYA_CONFIG env var (see Known Issues).
  3. Verify: himalaya list --account <account> / gcalcli agenda
  4. Install tool scripts: chmod +x tools/*.sh && cp tools/*.sh /path/to/your/workspace/tools/
  5. Ready — see Heartbeat Integration for the full schedule.

State Management

This skill uses a single state file to track progress across heartbeats. All features share it.

Path: memory/secretary-state.json (relative to the agent's workspace)

Schema:

{
  "lastRead": {
    "C0ACY3F5FPV": "1708750000.000000"
  },
  "emailCheckedAt": 1708750000,
  "breakRemindersSent": {
    "2026-02-24": ["12:00", "15:00"]
  },
  "lastNightReminder": null,
  "meetingCronsCreated": "2026-02-24"
}

| Key | Purpose | |-----|---------| | lastRead.<channelId> | Last Slack message timestamp read in that channel (prevents re-processing) | | emailCheckedAt | Unix timestamp of last email check | | breakRemindersSent.<date> | Break reminder times already sent today | | lastNightReminder | ISO timestamp of last late-night sleep nudge | | meetingCronsCreated | Date for which meeting cron jobs were created |

Read/update pattern (pseudo-code):

state = read_json("memory/secretary-state.json") or {}
# ... do work ...
write_json("memory/secretary-state.json", state)

Reading Slack Messages

Used by: Task Management, on-demand commands.

Procedure

  1. Determine channel: use config.tasks.input_channel, or fall back to config.notifications.channel

  2. Get last-read timestamp from state:

    channel_id = config["tasks"]["input_channel"]
    last_ts = state.get("lastRead", {}).get(channel_id, "0")
    
  3. Fetch new messages using the message tool:

    message(action="read", channelId=<channel_id>, limit=20)
    

    Filter to messages with ts > last_ts.

  4. Process each message (see Task Management section)

  5. Update last-read timestamp:

    state["lastRead"][channel_id] = max(msg["ts"] for msg in new_messages)
    write_json("memory/secretary-state.json", state)
    

⚠️ Always update lastRead after processing. Skipping this causes duplicate task registrations on the next heartbeat.


Email Digest

Check unread emails, filter, summarize.

Known Issues

HIMALAYA_CONFIG env var: In OpenClaw gateways, $HOME is set to the workspace directory — not the system home. himalaya will fail to find its config at ~/.config/himalaya/config.toml. Fix: set the absolute path explicitly in your gateway's environment:

# In your gateway environment or shell profile:
export HIMALAYA_CONFIG=/absolute/path/to/himalaya/config.toml
# Example: /Users/you/.config/himalaya/config.toml

Add this to your gateway's .env file or environment configuration.

Procedure

  1. Fetch unread

    HIMALAYA_CONFIG=/path/to/config.toml \
    himalaya list --account <config.email.account> --folder INBOX -s "unseen"
    
  2. Filter and prioritize

    • config.email.master_address → high priority
    • Group: needs-reply / FYI / newsletters
    • Skip noise (automated, marketing)
  3. Format using templates/email-digest.md

  4. Send to config.notifications.channel

  5. Update state:

    state["emailCheckedAt"] = int(time.time())
    

Cadence

Every config.email.check_interval_hours hours. Check state["emailCheckedAt"] to decide if enough time has passed.


Morning Briefing

At config.notifications.morning_report_time.

Procedure

  1. Get today's calendar

    gcalcli agenda "today" "tomorrow" --details location --details description --tsv
    
  2. Weather (if config.briefing.include_weather): fetch for config.briefing.weather_city

  3. GitHub (if config.briefing.include_github): check config.briefing.github_repos

  4. Task summary (if config.tasks.enabled and config.tasks.report_in_morning):

    • Read {config.tasks.storage_dir}/{config.tasks.storage_file}
    • Count incomplete tasks by priority
    • List up to config.tasks.max_incomplete_shown items, high-priority first
  5. Format using templates/morning-brief.md

  6. Send to config.notifications.channel

  7. Schedule meeting reminders → see next section


Evening Briefing

At config.notifications.evening_report_time.

Procedure

  1. Review today: gcalcli agenda "today 00:00" "today 23:59" --tsv
  2. Summarize: events, emails, pending items
  3. Preview tomorrow: gcalcli agenda "tomorrow" "tomorrow +1d" --tsv
  4. Format using templates/evening-brief.md
  5. Send to config.notifications.channel

Meeting Reminders

Proactive notifications config.calendar.reminder_minutes minutes before each event.

Step 1: Get Today's Events (in Morning Briefing)

gcalcli agenda "today" "tomorrow" --tsv --details location --details description

TSV output columns: start_date start_time end_date end_time title location description

Step 2: Parse Events and Skip All-Day

for line in tsv_output:
    start_date, start_time, end_date, end_time, title, location, desc = line.split('\t')
    if not start_time or start_time.strip() == '':
        continue  # skip all-day events
    video_link = extract_url(desc, patterns=['zoom.us', 'meet.google.com', 'teams.microsoft.com'])

Step 3: Schedule Reminders

Option A: exec-based cron (recommended — fires reliably at exact time):

# Example: meeting at 14:00, reminder_minutes=5 → cron at 13:55
openclaw cron add \
  --schedule "55 13 24 2 *" \
  --task "Send meeting reminder" \
  --systemEvent \
  --message "⏰ 5分後: Weekly Standup (14:00) 🔗 https://meet.google.com/xxx"

Run via exec tool. Use date-specific DD MM to fire only today.

Option B: heartbeat polling (fallback — no exec needed): In each heartbeat, check if now is within reminder_minutes of any event start time and reminder hasn't been sent yet. Track sent reminders in state.

Mark done: Save state["meetingCronsCreated"] = today so reminders are only scheduled once per day.

Step 4: Notification Format

Use templates/meeting-reminder.md. Include:

  • Event title and start time
  • Location or video call link
  • Attendees (if available in description)

Task Management

Capture, track, and report work tasks. Config: config.tasks.*

Tasks are received via Slack/Discord, stored as a Markdown file in config.tasks.storage_dir, and reported daily.

Variables

| Config key | Purpose | Example | |------------|---------|---------| | tasks.input_channel | Channel ID to watch for task messages | "C0ACY3F5FPV" | | tasks.storage_dir | Root directory for TODO file | "/Users/you/vault" | | tasks.storage_file | Filename within storage_dir | "TODO.md" | | tasks.report_time | Standalone report time | "09:00" | | tasks.report_in_morning | Include in morning briefing | true | | tasks.max_incomplete_shown | Max tasks in reports | 10 |

1. Receiving Tasks (in Heartbeat)

Step 1: Read new Slack messages (see Reading Slack Messages)

Step 2: For each new message, check if it's a task:

Detection patterns — treat as task if:

  • Explicit prefix: タスク:, タスク:, TODO:, TODO:, タスク追加, TODOを追加
  • Work request phrasing: 〜やっておいて, 〜をお願い, 〜やってほしい, 〜を進めておいて
  • English: task:, add task, please do
  • Completion: 〜完了, 〜終わった, 〜done → route to Completing a Task
  • List request: タスク一覧, TODO一覧, 何が残ってる → route to Listing Tasks

Step 3: Parse priority and deadline:

  • 🔴 High: 急ぎ, 緊急, 重要, 至急, urgent, asap
  • 🟡 Normal: default (no keyword)
  • ⚪ Low: 後回し, 余裕あれば, low, whenever
  • Deadline: 〜まで, XX日, 来週, YYYY/MM/DD, next week

2. Adding a Task

File format ({storage_dir}/{storage_file}):

# TODO

## ⏳ 未完了

- [ ] 🔴 **タスク内容A** (登録: 2026-02-24, 期限: 2026-02-26)
- [ ] 🟡 タスク内容B (登録: 2026-02-24)
- [ ] ⚪ タスク内容C (登録: 2026-02-24)

## ✅ 完了

- [x] 🟡 タスク内容D (登録: 2026-02-23, 完了: 2026-02-24)

Steps:

  1. Read current file (create with empty sections if not exists)
  2. Build new line: - [ ] {emoji} {bold if high}{content}{normal} (登録: {today}{, 期限: date if set})
  3. Insert into ## ⏳ 未完了, sorted 🔴 → 🟡 → ⚪
  4. Save file
  5. Reply: ✅ タスクを登録しました\n🟡 タスク内容B\n📁 未完了: 5件

3. Completing a Task

Detection: 〜完了, 〜終わった, 〜done, タスク完了: 〜

Steps:

  1. Find best-matching task in ## ⏳ 未完了 (fuzzy match)
  2. If confident (>70%): change [ ][x], add , 完了: {today}, move to ## ✅ 完了
  3. If ambiguous: show numbered list, ask which one
  4. Reply: ✅ 完了にしました\n🟡 タスク内容B (完了: 2026-02-24)\n残り: 4件

4. Daily Task Report

When: Part of morning briefing (if report_in_morning: true), or standalone at report_time.

Format:

📋 タスク状況 (2026-02-24)

⏳ 未完了: 5件 (🔴 1, 🟡 3, ⚪ 1)

• 🔴 **タスク内容A** (期限: 2026-02-26)
• 🟡 タスク内容B
• 🟡 タスク内容C
(他2件 — TODO.mdを参照)

5. Listing Tasks (On Demand)

Trigger: タスク一覧, TODO一覧, 何が残ってる, list tasks

Show all incomplete tasks regardless of max_incomplete_shown.

6. Deleting a Task

Trigger: タスク削除: 〜, 〜を削除, 〜をリストから外して

Same fuzzy match as completing, but remove the line entirely.


Health & Life Support

Proactive wellness and daily life assistance. Config: config.health.*

1. Break Reminders

When: At times in config.health.break_reminder_times (default: ["12:00", "15:00", "18:00"])

Via heartbeat (recommended): Check current time each heartbeat. If within ±10 min of a break_reminder_times entry AND not already sent today:

today = date.today().isoformat()
already_sent = state.get("breakRemindersSent", {}).get(today, [])
for t in config["health"]["break_reminder_times"]:
    if within_10_min(now, t) and t not in already_sent:
        send_break_reminder()
        already_sent.append(t)
state["breakRemindersSent"][today] = already_sent

Via exec cron (alternative):

openclaw cron add --schedule "0 12 * * *" \
  --task "Send break reminder" --systemEvent \
  --message "☕ お昼ですよ。少し休憩しませんか?"

Tone: Natural, caring. See templates/break-reminder.md.

2. Shopping List Management

File: config.health.shopping_list_path (default: data/shopping-list.txt) Scripts: tools/shopping.sh add/done/list-pending/clear (see tools/ directory)

SHOPPING_LIST_PATH=/path/to/list.txt tools/shopping.sh add "牛乳"
SHOPPING_LIST_PATH=/path/to/list.txt tools/shopping.sh list-pending

Evening check (~17:00-18:00):

  1. tools/shopping.sh list-pending — if output is not "(none)", ask: 「今日買い物に行く予定はありますか?残りリスト: 牛乳、パン」

3. Long Work Session Detection

Script: tools/work.sh status — outputs status=active duration_minutes=N or status=idle

Trigger: duration_minutes > config.health.long_work_threshold_hours * 60

Action: 「もう{N}時間以上作業してますね。少し休憩しませんか?☕」

WORK_STATE_PATH=/path/to/work-session.json tools/work.sh status

4. Late Night Mode

When: After config.health.night_mode_start (default: "00:00")

Action: If master sent a message in last 30 min, send one gentle sleep nudge per hour at most.

last = state.get("lastNightReminder")
if last and (now - parse_iso(last)) < 3600:
    return  # already reminded this hour
state["lastNightReminder"] = now.isoformat()
send("そろそろ休みませんか?😴")

Heartbeat Integration

Full schedule — what to run at each heartbeat check.

Every Heartbeat (~30 min)

  1. Read state from memory/secretary-state.json
  2. Read Slack channel for new messages (see Reading Slack Messages)
    • Detect and handle: task add / task complete / task list / on-demand email check
  3. Update lastRead timestamp in state
  4. Save state

Morning (at morning_report_time)

  1. Morning Briefing (calendar + weather + GitHub + task summary)
  2. Schedule meeting cron jobs (if not done today: meetingCronsCreated != today)
  3. Task report (if report_in_morning: true)

Email Check (every check_interval_hours)

Check: now - state["emailCheckedAt"] > check_interval_hours * 3600 → Run Email Digest, update emailCheckedAt

Break Reminders (at each break_reminder_times entry)

Check: within_10_min(now, t) and not in breakRemindersSent[today] → Send reminder, mark sent

Evening (at evening_report_time)

Evening Briefing (day review + tomorrow preview)

Shopping Check (~17:00-18:00)

Check shopping-list.txt for unchecked items → ask if going shopping

Late Night (after night_mode_start)

If master is active → gentle sleep nudge (once per hour max)


Known Issues

1. HIMALAYA_CONFIG in OpenClaw gateways

OpenClaw sets $HOME to the workspace directory. himalaya cannot find ~/.config/himalaya/config.toml. Fix: Set HIMALAYA_CONFIG=/absolute/path/to/himalaya/config.toml in your gateway environment.

2. gcalcli in non-interactive environments

If gcalcli needs OAuth re-authentication, it may prompt interactively and hang. Fix: Run gcalcli list manually once in a terminal to refresh credentials. gcalcli stores tokens in ~/.config/gcalcli/oauth.

3. On-demand email check

The skill doesn't currently intercept "メール確認して" from Slack messages. Workaround: Trigger email digest from the channel reading step: if message matches メール確認して or check email, run email digest immediately regardless of emailCheckedAt.


Onboarding

First-time setup: see references/onboarding.md.


Templates

Tool Scripts

Located in tools/ — install to your workspace's tools/ directory and chmod +x.

| Script | Usage | |--------|-------| | tools/shopping.sh | add/done/list/list-pending/clear | | tools/work.sh | start/stop/status/reset |

Set env vars to override paths:

  • SHOPPING_LIST_PATH (default: ./data/shopping-list.txt)
  • WORK_STATE_PATH (default: ./data/work-session.json)

Configuration Reference

See config.example.yml. Key sections:

| Key | Purpose | Default | |-----|---------|---------| | email.check_interval_hours | メールチェック間隔 | 4 | | calendar.reminder_minutes | ミーティング前リマインド | 5 | | notifications.morning_report_time | 朝ブリーフィング時刻 | "08:00" | | notifications.evening_report_time | 夕ブリーフィング時刻 | "23:00" | | health.break_reminder_times | 休憩声掛け時刻リスト | ["12:00","15:00","18:00"] | | health.night_mode_start | 深夜モード開始時刻 | "00:00" | | health.long_work_threshold_hours | 連続作業警告閾値 | 2 | | tasks.input_channel | タスク受付チャンネル | "" (notifications.channel) | | tasks.storage_dir | TODO保存ディレクトリ | "" (必須) | | tasks.storage_file | TODOファイル名 | "TODO.md" | | tasks.report_time | タスク報告時刻(単独) | "09:00" | | tasks.report_in_morning | 朝ブリーフィングに含める | true | | tasks.max_incomplete_shown | 報告時の表示件数上限 | 10 |

Contract & API

Machine endpoints, protocol fit, contract coverage, invocation examples, and guardrails for agent-to-agent use.

MissingGITHUB OPENCLEW

Contract coverage

Status

missing

Auth

None

Streaming

No

Data region

Unspecified

Protocol support

OpenClaw: self-declared

Requires: none

Forbidden: none

Guardrails

Operational confidence: low

No positive guardrails captured.
Invocation examples
curl -s "https://xpersona.co/api/v1/agents/watari-ai-secretary-skill/snapshot"
curl -s "https://xpersona.co/api/v1/agents/watari-ai-secretary-skill/contract"
curl -s "https://xpersona.co/api/v1/agents/watari-ai-secretary-skill/trust"

Reliability & Benchmarks

Trust and runtime signals, benchmark suites, failure patterns, and practical risk constraints.

Missingruntime-metrics

Trust signals

Handshake

UNKNOWN

Confidence

unknown

Attempts 30d

unknown

Fallback rate

unknown

Runtime metrics

Observed P50

unknown

Observed P95

unknown

Rate limit

unknown

Estimated cost

unknown

Do not use if

Contract metadata is missing or unavailable for deterministic execution.
No benchmark suites or observed failure patterns are available.

Media & Demo

Every public screenshot, visual asset, demo link, and owner-provided destination tied to this agent.

Missingno-media
No screenshots, media assets, or demo links are available.

Related Agents

Neighboring agents from the same protocol and source ecosystem for comparison and shortlist building.

Self-declaredprotocol-neighbors
GITHUB_REPOSactivepieces

Rank

70

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

Traction

No public download signal

Freshness

Updated 2d ago

OPENCLAW
GITHUB_REPOScherry-studio

Rank

70

AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs

Traction

No public download signal

Freshness

Updated 5d ago

MCPOPENCLAW
GITHUB_REPOSAionUi

Rank

70

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!

Traction

No public download signal

Freshness

Updated 6d ago

MCPOPENCLAW
GITHUB_REPOSCopilotKit

Rank

70

The Frontend for Agents & Generative UI. React + Angular

Traction

No public download signal

Freshness

Updated 23d ago

OPENCLAW
Machine Appendix

Contract JSON

{
  "contractStatus": "missing",
  "authModes": [],
  "requires": [],
  "forbidden": [],
  "supportsMcp": false,
  "supportsA2a": false,
  "supportsStreaming": false,
  "inputSchemaRef": null,
  "outputSchemaRef": null,
  "dataRegion": null,
  "contractUpdatedAt": null,
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Invocation Guide

{
  "preferredApi": {
    "snapshotUrl": "https://xpersona.co/api/v1/agents/watari-ai-secretary-skill/snapshot",
    "contractUrl": "https://xpersona.co/api/v1/agents/watari-ai-secretary-skill/contract",
    "trustUrl": "https://xpersona.co/api/v1/agents/watari-ai-secretary-skill/trust"
  },
  "curlExamples": [
    "curl -s \"https://xpersona.co/api/v1/agents/watari-ai-secretary-skill/snapshot\"",
    "curl -s \"https://xpersona.co/api/v1/agents/watari-ai-secretary-skill/contract\"",
    "curl -s \"https://xpersona.co/api/v1/agents/watari-ai-secretary-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-04-16T23:39:08.185Z"
    }
  },
  "retryPolicy": {
    "maxAttempts": 3,
    "backoffMs": [
      500,
      1500,
      3500
    ],
    "retryableConditions": [
      "HTTP_429",
      "HTTP_503",
      "NETWORK_TIMEOUT"
    ]
  }
}

Trust JSON

{
  "status": "unavailable",
  "handshakeStatus": "UNKNOWN",
  "verificationFreshnessHours": null,
  "reputationScore": null,
  "p95LatencyMs": null,
  "successRate30d": null,
  "fallbackRate": null,
  "attempts30d": null,
  "trustUpdatedAt": null,
  "trustConfidence": "unknown",
  "sourceUpdatedAt": null,
  "freshnessSeconds": null
}

Capability Matrix

{
  "rows": [
    {
      "key": "OPENCLEW",
      "type": "protocol",
      "support": "unknown",
      "confidenceSource": "profile",
      "notes": "Listed on profile"
    },
    {
      "key": "proactive",
      "type": "capability",
      "support": "supported",
      "confidenceSource": "profile",
      "notes": "Declared in agent profile metadata"
    }
  ],
  "flattenedTokens": "protocol:OPENCLEW|unknown|profile capability:proactive|supported|profile"
}

Facts JSON

[
  {
    "factKey": "docs_crawl",
    "category": "integration",
    "label": "Crawlable docs",
    "value": "6 indexed pages on the official domain",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  },
  {
    "factKey": "vendor",
    "category": "vendor",
    "label": "Vendor",
    "value": "Watari Ai",
    "href": "https://github.com/watari-ai/secretary-skill",
    "sourceUrl": "https://github.com/watari-ai/secretary-skill",
    "sourceType": "profile",
    "confidence": "medium",
    "observedAt": "2026-02-24T19:43:14.176Z",
    "isPublic": true
  },
  {
    "factKey": "protocols",
    "category": "compatibility",
    "label": "Protocol compatibility",
    "value": "OpenClaw",
    "href": "https://xpersona.co/api/v1/agents/watari-ai-secretary-skill/contract",
    "sourceUrl": "https://xpersona.co/api/v1/agents/watari-ai-secretary-skill/contract",
    "sourceType": "contract",
    "confidence": "medium",
    "observedAt": "2026-02-24T19:43:14.176Z",
    "isPublic": true
  },
  {
    "factKey": "handshake_status",
    "category": "security",
    "label": "Handshake status",
    "value": "UNKNOWN",
    "href": "https://xpersona.co/api/v1/agents/watari-ai-secretary-skill/trust",
    "sourceUrl": "https://xpersona.co/api/v1/agents/watari-ai-secretary-skill/trust",
    "sourceType": "trust",
    "confidence": "medium",
    "observedAt": null,
    "isPublic": true
  }
]

Change Events JSON

[
  {
    "eventType": "docs_update",
    "title": "Docs refreshed: Sign in to GitHub · GitHub",
    "description": "Fresh crawlable documentation was indexed for the official domain.",
    "href": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceUrl": "https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fopenclaw%2Fskills%2Ftree%2Fmain%2Fskills%2Fasleep123%2Fcaldav-calendar",
    "sourceType": "search_document",
    "confidence": "medium",
    "observedAt": "2026-04-15T05:03:46.393Z",
    "isPublic": true
  }
]

Sponsored

Ads related to secretary and adjacent AI workflows.