← Boya OSCONTENT HISTORY
WHAT CHANGED
Update to Boya OS
Snapshot Nov 4, 2026 · 06:14 UTC · version 1.0.0
Collection source: downloaded plugin package.
First saved snapshot
No earlier snapshot is available to establish a change.
Save Boya OS and check future changes in Following.
Up to 10 plugins free · no card required.
Compare saved observations
Download comparison JSONFull technical diff · 0 changed fields
Full snapshot data
{
"description": "Use when the user wants to view their own Boya OS recordings, find a recording by something said in it, read a transcript, AI summary, mind map, or action items, or check their bound recording devices and folders. Trigger words: my recordings, recording list, what did I record, find a recording, search recordings, transcript, summary, meeting notes, mind map, action items, to-dos, devices, folders.",
"included_files": [
{
"relative_path": "references/tool-params.md",
"size_in_bytes": 7765
}
],
"name": "boya-os-recordings",
"skill_md_contents": "---\nname: boya-os-recordings\ndescription: Use when the user wants to view their own Boya OS recordings, find a recording by something said in it, read a transcript, AI summary, mind map, or action items, or check their bound recording devices and folders. Trigger words: my recordings, recording list, what did I record, find a recording, search recordings, transcript, summary, meeting notes, mind map, action items, to-dos, devices, folders.\n---\n\n# Boya OS Recordings\n\nRead-only access to the signed-in user's own recordings and derived content: transcripts, AI summaries, mind maps, action items, folders, and bound devices. This skill never records, edits, deletes, generates, or regenerates anything.\n\nAll data is scoped to the currently authorized Boya OS account. Never use it to look for another user's data.\n\n## 1. Choose the right tool\n\n| User intent | Tool |\n|---|---|\n| \"What did I record this week / today?\" | `list_recordings` |\n| \"I remember X was said in a recording\" | `search_recordings` |\n| \"What folders do I have, and how many recordings?\" | `list_folders` |\n| \"Which recording devices are bound?\" | `list_devices` |\n| \"Show details / duration / transcription status\" | `get_recording` |\n| \"Give me the transcript / full text\" | `get_transcript` |\n| \"Give me the summary / meeting notes\" | `get_summary` |\n| \"Show me the mind map\" | `get_map` (mind map only) or `get_summary` (full summary) |\n| \"What are my action items / to-dos?\" | `get_action_items` |\n\nBrowsing versus searching: use `list_recordings` to browse by date, folder, or duration; use `search_recordings` when the user remembers a keyword but not which recording it was.\n\n## 2. Chain through `recording_id`\n\nEvery tool except `list_recordings`, `search_recordings`, `list_folders`, and `list_devices` requires a `recording_id`.\n\n```\nlist_recordings / search_recordings\n -> take recordingId from each returned item\n -> pass it as recording_id to get_recording / get_transcript / get_summary / get_map / get_action_items\n```\n\n- `recordingId` is the stable recording/upload identifier. Never use a title as an ID; titles can repeat.\n- Never invent a `recording_id`. If the user has not identified the recording, search or list first.\n\n## 3. Page through all results\n\n`list_recordings` and `search_recordings` return `total` (all matches) and the current page in `items`. If fewer items than `total` have been returned and the user needs a complete answer, increase `page` until all matches are read.\n\n`page_size` is 1-100 (default 20). Do not conclude \"that is everything\" from the first page unless `items` covers `total`.\n\n## 4. Check derived flags before calling downstream tools\n\n`list_recordings` and `get_recording` return flags that tell you whether readable content exists:\n\n| Flag | Meaning | Call only when true |\n|---|---|---|\n| `hasTranscript` | A readable transcript exists | `get_transcript` |\n| `hasSummary` | An AI summary exists | `get_summary` |\n| `hasMindmap` | A mind map exists | `get_map` |\n| `hasActionItems` | On/off flag only; details are not included | Always call `get_action_items` for details |\n| `status` | `pending` / `processing` / `success` / `failed` | Only `success` can have content |\n\nThis avoids ineffective calls when a recording is still processing or has no derived content.\n\n## 5. Empty results are normal responses, not errors\n\n| Situation | Response | How to reply |\n|---|---|---|\n| Not transcribed, or transcription failed | `get_transcript` returns `status != success` and empty content | \"This recording does not have a transcript yet.\" |\n| No summary, or summary generation failed | `get_summary` returns `hasSummary=false` and null content fields | \"This recording does not have a summary yet.\" |\n| No mind map | `get_map` returns `hasMap=false` and an empty string | \"This recording does not have a mind map yet.\" |\n| No action items | `get_action_items` returns `items: []`, `total: 0` | \"There are no action items right now.\" |\n\nIf the user wants to generate or regenerate a summary or mind map, direct them to the Boya OS app. This skill is read-only and never triggers generation.\n\n## 6. Action items come from two sources\n\n`get_action_items` returns one merged list. Use `source` to distinguish:\n\n- `source = memo`: a structured to-do already created in the account.\n- `source = main_text` / `mindmap`: an action item extracted from a recording summary.\n\nUse `completable` to distinguish capability, and always say which kind you are listing:\n\n| `completable` | Meaning | How to reply |\n|---|---|---|\n| `true` | A real to-do with an `itemId`; it can be completed or given a reminder in the app | List normally |\n| `false` | Only an action item written in a summary; no to-do was created, so it cannot be completed or reminded | Say explicitly: \"These are mentioned in the summary; they are not to-dos yet.\" |\n\nOther rules:\n\n- Do not pass `recording_id` when the user asks for \"my action items\"; omitting it lists everything.\n- By default only open items are returned; `include_completed=true` also returns completed ones.\n- Any date filter (`due_from` / `due_to` / `created_from` / `created_to`) returns structured to-dos only, because extracted items have no dates.\n\n## 7. Common call sequences\n\n| User says | Call sequence |\n|---|---|\n| \"What did I record this week?\" | `list_recordings(period=this_week, page_size=100)` then page until `total` is reached |\n| \"Which meetings last week have summaries?\" | `list_recordings(period=last_week)` then filter by `hasSummary` and call `get_summary` for each |\n| \"Find the recording where I talked about the budget\" | `search_recordings(query=\"budget\")` then use the returned `recordingId` |\n| \"What was said in that recording?\" | Locate the `recordingId`, then `get_transcript(format=text, include_speakers=true)` |\n| \"How long is it, and is it transcribed?\" | `get_recording(recording_id=...)` |\n| \"What are my action items?\" | `get_action_items()` with no `recording_id` |\n| \"What were the action items from this meeting?\" | `get_action_items(recording_id=...)` |\n| \"How are my recordings organized?\" | `list_folders()` then `list_recordings(folder_id=...)` |\n| \"Which devices do I have?\" | `list_devices()` |\n\n## 8. Tool parameters and field definitions\n\nSee `references/tool-params.md` for every parameter, default, returned field, and empty-state behavior.\n\n## 9. Notes\n\n- **Read-only.** Do not attempt any create, update, delete, or generation action. Direct those requests to the Boya OS app.\n- **No device filter.** `list_devices` returns bound devices but `list_recordings` cannot filter recordings by device.\n- `list_folders.recordingCount` counts only non-deleted recordings directly in that folder; it does not include subfolders or uncategorized recordings.\n- Audio playback is off by default. `get_recording(include_audio_url=true)` returns a 10-minute pre-signed playback link; fetch the recording again after it expires.\n- Missing or unauthorized recordings return `RESOURCE_NOT_FOUND` without distinguishing the two cases. Do not infer whether a recording exists.\n"
}SHA-256 of public snapshot: 3899e3d8ea9872ef561d6849ff463e911db1f00b311a551e36fefb94e380b80a