opencode-skills-collection 4.1.19 → 4.1.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/bundled-skills/.antigravity-install-manifest.json +20 -1
  2. package/bundled-skills/ai-headshot-studio/SKILL.md +107 -99
  3. package/bundled-skills/ai-image-generation-studio/SKILL.md +108 -93
  4. package/bundled-skills/ai-logo-maker/SKILL.md +108 -93
  5. package/bundled-skills/ai-multilingual-dubbing/SKILL.md +108 -93
  6. package/bundled-skills/ai-photo-restyler/SKILL.md +108 -93
  7. package/bundled-skills/ai-podcast-voiceover/SKILL.md +108 -93
  8. package/bundled-skills/aident-loadout/SKILL.md +88 -0
  9. package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +27 -254
  10. package/bundled-skills/antigravity-maintainer-batch-release/agents/openai.yaml +1 -1
  11. package/bundled-skills/antigravity-maintainer-batch-release/references/component-validation.md +18 -0
  12. package/bundled-skills/antigravity-maintainer-batch-release/references/core-preview.md +20 -0
  13. package/bundled-skills/antigravity-maintainer-batch-release/references/maintenance-contract.md +83 -0
  14. package/bundled-skills/antigravity-maintainer-batch-release/references/maintenance-cycle.md +149 -0
  15. package/bundled-skills/antigravity-maintainer-batch-release/references/public-surfaces.md +22 -0
  16. package/bundled-skills/antigravity-maintainer-batch-release/references/skillspector.md +40 -0
  17. package/bundled-skills/apify-facebook-ads-library-scraper/SKILL.md +197 -0
  18. package/bundled-skills/apify-facebook-ads-library-scraper/references/gotchas.md +45 -0
  19. package/bundled-skills/apify-linkedin-jobs-scraper/SKILL.md +181 -0
  20. package/bundled-skills/apify-linkedin-jobs-scraper/references/gotchas.md +57 -0
  21. package/bundled-skills/apify-tiktok-scraper/SKILL.md +199 -0
  22. package/bundled-skills/apify-tiktok-scraper/references/gotchas.md +45 -0
  23. package/bundled-skills/arcmira-find-quotes/SKILL.md +5 -0
  24. package/bundled-skills/beatra/SKILL.md +109 -90
  25. package/bundled-skills/beatra-ai-video-studio/SKILL.md +110 -90
  26. package/bundled-skills/curlshot/SKILL.md +139 -0
  27. package/bundled-skills/datacircle/SKILL.md +159 -98
  28. package/bundled-skills/deed-page/SKILL.md +161 -0
  29. package/bundled-skills/design-token-contrast/SKILL.md +128 -0
  30. package/bundled-skills/design-token-contrast/references/contraste-checker.md +330 -0
  31. package/bundled-skills/ecommerce-listing-image-set/SKILL.md +109 -90
  32. package/bundled-skills/goal-instruction-writer/LICENSE +21 -0
  33. package/bundled-skills/goal-instruction-writer/SKILL.md +275 -0
  34. package/bundled-skills/goal-instruction-writer/references/contribution-walkthrough.md +9 -0
  35. package/bundled-skills/goal-instruction-writer/references/drift-control.md +160 -0
  36. package/bundled-skills/goal-instruction-writer/references/examples.md +220 -0
  37. package/bundled-skills/goal-instruction-writer/references/goal-contract.md +169 -0
  38. package/bundled-skills/goal-instruction-writer/references/loop-preview.md +113 -0
  39. package/bundled-skills/keenable-search-mcp/SKILL.md +176 -0
  40. package/bundled-skills/krexa/SKILL.md +221 -0
  41. package/bundled-skills/krexa/references/limits.md +42 -0
  42. package/bundled-skills/krexa/references/setup.md +60 -0
  43. package/bundled-skills/krexa/references/tools.md +59 -0
  44. package/bundled-skills/llm-cost-optimization/SKILL.md +1 -1
  45. package/bundled-skills/llmops-platform-engineering/SKILL.md +1 -1
  46. package/bundled-skills/multi-tenant-llm-hosting/SKILL.md +1 -1
  47. package/bundled-skills/music-generation-studio/SKILL.md +109 -90
  48. package/bundled-skills/outreachgenie-list-audit/LICENSE +21 -0
  49. package/bundled-skills/outreachgenie-list-audit/SKILL.md +60 -0
  50. package/bundled-skills/outreachgenie-list-audit/assets/fictional-snapshot.json +256 -0
  51. package/bundled-skills/outreachgenie-list-audit/references/capture.md +53 -0
  52. package/bundled-skills/outreachgenie-list-audit/references/checks.md +35 -0
  53. package/bundled-skills/outreachgenie-list-audit/references/setup.md +25 -0
  54. package/bundled-skills/outreachgenie-list-audit/scripts/audit.py +766 -0
  55. package/bundled-skills/outreachgenie-list-audit/scripts/test_audit.py +360 -0
  56. package/bundled-skills/pangolinfo-amazon-data-research/SKILL.md +170 -0
  57. package/bundled-skills/poster-design-studio/SKILL.md +109 -90
  58. package/bundled-skills/ppl-personal-crm/SKILL.md +118 -0
  59. package/bundled-skills/product-photo-studio/SKILL.md +109 -90
  60. package/bundled-skills/project-memory-log/LICENSE +21 -0
  61. package/bundled-skills/project-memory-log/SKILL.md +110 -0
  62. package/bundled-skills/project-memory-log/references/example-document-catalog.md +22 -0
  63. package/bundled-skills/project-memory-log/references/example-notes.md +16 -0
  64. package/bundled-skills/project-memory-log/references/example-operation-log.md +46 -0
  65. package/bundled-skills/project-memory-log/references/record-formats.md +77 -0
  66. package/bundled-skills/solidping/SKILL.md +87 -0
  67. package/bundled-skills/story-bible-continuity/SKILL.md +149 -0
  68. package/bundled-skills/story-bible-continuity/references/sbc-checker.md +367 -0
  69. package/bundled-skills/story-bible-continuity/references/story-bible-schema.md +91 -0
  70. package/bundled-skills/suno-lyrics-to-song/SKILL.md +109 -90
  71. package/bundled-skills/taasky/SKILL.md +376 -0
  72. package/bundled-skills/talking-avatar-video/SKILL.md +109 -90
  73. package/bundled-skills/uiverify-triage-visual-changes/SKILL.md +304 -0
  74. package/bundled-skills/unpaid-intern/SKILL.md +159 -0
  75. package/bundled-skills/viral-video-teardown-remake/SKILL.md +109 -90
  76. package/bundled-skills/voice-cloning-studio/SKILL.md +109 -90
  77. package/bundled-skills/voiceover-narration-studio/SKILL.md +109 -90
  78. package/package.json +1 -1
  79. package/skills_index.json +654 -24
@@ -11,7 +11,7 @@ author: beatra-ai
11
11
  tags: [tts, multilingual, voiceover, mcp, paid-api, beatra]
12
12
  tools: [claude, codex, cursor, gemini]
13
13
  license: "MIT-0"
14
- license_source: "https://github.com/beatra-ai/multilingual-voiceover-skill/blob/030ec84801fec544bc8be4e1d4ff7333bee7cf0d/LICENSE"
14
+ license_source: "https://github.com/beatra-ai/multilingual-voiceover-skill/blob/bcd5d938b872bb50b421f752e1acba29d07965e5/LICENSE"
15
15
  ---
16
16
 
17
17
  # Multilingual Voiceover Skill
@@ -24,21 +24,20 @@ Create reviewable voice-over audio for each language from your per-language scri
24
24
  This catalog entry is a **reviewed pointer, not the executable package**. It
25
25
  contains no client code and performs no Beatra operation by itself. The package
26
26
  it points to bundles three standard-library Python scripts that make network
27
- calls, store a credential, and can replace their own files. Read
27
+ calls and store a credential. It has no self-updater: it never downloads
28
+ code and never changes its own files. Read
28
29
  [Install](#install-pinned-verified-approved-twice) and
29
30
  [Security & Safety Notes](#security--safety-notes) before activating it.
30
31
 
31
32
  | Pinned identity | Value |
32
33
  | --- | --- |
33
- | Package | `ai-multilingual-dubbing` `0.1.9` |
34
- | Archive | `https://cdn.beatra.ai/agent-packages/ai-multilingual-dubbing/v0.1.9/ai-multilingual-dubbing-skill-0.1.9.zip` |
35
- | Archive SHA-256 | `ef8cd40a6b8a435a5f9d903c66a726c9c64cac8da63a186682c4a88851b2becc` |
36
- | Source tree | [`beatra-ai/multilingual-voiceover-skill@030ec84`](https://github.com/beatra-ai/multilingual-voiceover-skill/tree/030ec84801fec544bc8be4e1d4ff7333bee7cf0d/skills/ai-multilingual-dubbing) (full SHA `030ec84801fec544bc8be4e1d4ff7333bee7cf0d`) |
34
+ | Package | `ai-multilingual-dubbing` `0.2.7` |
35
+ | Source commit | [`beatra-ai/multilingual-voiceover-skill@bcd5d93`](https://github.com/beatra-ai/multilingual-voiceover-skill/tree/bcd5d938b872bb50b421f752e1acba29d07965e5/skills/ai-multilingual-dubbing) (full SHA `bcd5d938b872bb50b421f752e1acba29d07965e5`) |
36
+ | Package tree | `527128d0691b8552b3e446609ce2d016353f5882` (Git tree ID of `skills/ai-multilingual-dubbing` at that commit) |
37
37
  | License | MIT No Attribution (MIT-0) |
38
38
 
39
- The archive holds regular files only (no symlinks, no executable bits, no
40
- binaries). Confirm that with the inspect commands below. Every file must be
41
- byte-identical to the source tree at the pinned commit.
39
+ The pinned tree holds regular files only (no symlinks, no executable bits, no
40
+ binaries). Confirm that with the inspect commands below.
42
41
 
43
42
  ## When to Use This Skill
44
43
 
@@ -48,76 +47,55 @@ byte-identical to the source tree at the pinned commit.
48
47
 
49
48
  ## Install (pinned, verified, approved twice)
50
49
 
51
- ### Step 1: Download and verify into a review directory
50
+ ### Step 1: Fetch the pinned tree into a review directory
52
51
 
53
- Explain that this downloads an external package from `cdn.beatra.ai`, then ask
52
+ Explain that this fetches an external package from `github.com`, then ask
54
53
  for approval. Only after approval:
55
54
 
56
55
  ```bash
57
56
  umask 077
58
57
  review_dir="$(mktemp -d)"
59
58
  cd "$review_dir" || exit 1
60
- curl --connect-timeout 10 --max-time 60 -fsSO "https://cdn.beatra.ai/agent-packages/ai-multilingual-dubbing/v0.1.9/ai-multilingual-dubbing-skill-0.1.9.zip"
61
- printf '%s %s\n' \
62
- 'ef8cd40a6b8a435a5f9d903c66a726c9c64cac8da63a186682c4a88851b2becc' \
63
- 'ai-multilingual-dubbing-skill-0.1.9.zip' | shasum -a 256 -c -
59
+ git clone --quiet --filter=blob:none --no-checkout https://github.com/beatra-ai/multilingual-voiceover-skill.git src
60
+ git -C src checkout --quiet bcd5d938b872bb50b421f752e1acba29d07965e5 -- skills/ai-multilingual-dubbing
61
+ test "$(git -C src rev-parse 'bcd5d938b872bb50b421f752e1acba29d07965e5:skills/ai-multilingual-dubbing')" = '527128d0691b8552b3e446609ce2d016353f5882' && echo TREE-OK
64
62
  ```
65
63
 
66
- Stop if the check does not print `OK`. The expected digest comes from this
67
- catalog entry, not from a file on the same CDN.
64
+ Stop if the last command does not print `TREE-OK`. The expected commit and
65
+ tree IDs come from this catalog entry, not from the package or its website,
66
+ and Git addresses every fetched object by its hash.
68
67
 
69
68
  ### Step 2: Inspect before activation
70
69
 
71
- Before extraction, reject ZIP members with absolute/traversing paths, entries outside the package root, duplicate/case-colliding names, symlinks, devices or executable/binary content. Bound member count, per-file and total expanded size. Extract only after this preflight passes into the fresh private review directory; later link checks cannot prevent an escape.
72
-
73
70
  ```bash
74
- unzip -l ai-multilingual-dubbing-skill-0.1.9.zip
75
-
76
- # Only after complete member preflight passes:
77
- unzip -q ai-multilingual-dubbing-skill-0.1.9.zip
78
- find ai-multilingual-dubbing -type l -print # expect no output
79
- find ai-multilingual-dubbing -type f -perm -111 -print # expect no output
80
- grep -n '"auto_update": True' ai-multilingual-dubbing/scripts/mcp_client.py
71
+ git -C src ls-tree -r bcd5d938b872bb50b421f752e1acba29d07965e5 -- skills/ai-multilingual-dubbing | awk '$1 != "100644"' # expect no output
72
+ grep -n -E 'maybe_auto_update|download_update|_apply_update' src/skills/ai-multilingual-dubbing/scripts/mcp_client.py # expect no output
81
73
  ```
82
74
 
83
- Confirm byte identity before activation with the public source tree (a second,
84
- independent host):
85
-
86
- ```bash
87
- git clone --quiet --filter=blob:none --no-checkout https://github.com/beatra-ai/multilingual-voiceover-skill.git src
88
- git -C src checkout --quiet 030ec84801fec544bc8be4e1d4ff7333bee7cf0d -- skills/ai-multilingual-dubbing
89
- (cd ai-multilingual-dubbing && find . -type f | LC_ALL=C sort | xargs shasum -a 256) > archive.sha
90
- (cd src/skills/ai-multilingual-dubbing && find . -type f | LC_ALL=C sort | xargs shasum -a 256) > tree.sha
91
- cmp archive.sha tree.sha && echo IDENTICAL
92
- ```
75
+ The first check lists any symlink, executable, or submodule entry; the second
76
+ finds the entry points of the self-updater that earlier versions shipped.
93
77
 
94
- Report to the user what the review found: `SKILL.md`, `manifest.json`, the
95
- bundled Markdown references, and `scripts/authorize.py`,
78
+ Report to the user what the review found: `SKILL.md`, `manifest.json`,
79
+ `install-source.json` (the one-line marker `{"schema_version":1,"source":"github"}`),
80
+ the bundled Markdown references, and `scripts/authorize.py`,
96
81
  `scripts/mcp_client.py`, `scripts/uninstall.py` (Python 3.10+, standard
97
82
  library only, no dependency installation, no lifecycle hooks). Summarize the
98
- network, credential, local-state, telemetry, and self-update behavior listed
99
- under [Security & Safety Notes](#security--safety-notes).
83
+ network, credential, local-state, telemetry, and version-notice behavior
84
+ listed under [Security & Safety Notes](#security--safety-notes).
100
85
 
101
- ### Step 3: Copy in and disable self-update before any other command
86
+ ### Step 3: Copy in
102
87
 
103
88
  Ask for a **second, separate** approval, because this changes agent
104
89
  configuration. Then copy the reviewed tree to the host's skills directory
105
- (Claude Code shown; use the equivalent path for other hosts) and immediately
106
- turn off silent self-update for that exact path:
90
+ (Claude Code shown; use the equivalent path for other hosts):
107
91
 
108
92
  ```bash
109
93
  dest="$HOME/.claude/skills/ai-multilingual-dubbing"
110
94
  test ! -e "$dest" && test ! -L "$dest" || { echo "destination exists; stop and ask the user"; exit 1; }
111
- cp -R ai-multilingual-dubbing "$dest"
112
- python3 "$dest/scripts/mcp_client.py" update --auto off
95
+ cp -R "src/skills/ai-multilingual-dubbing" "$dest"
113
96
  ```
114
97
 
115
- The last command must print
116
- `Automatic Beatra package updates are disabled.` It writes only
117
- `~/.beatra/updates/<id>/state.json` and makes no network request. Run it
118
- before `authorize.py`, `verify`, `tools`, `upload`, or `call`: in this
119
- pinned version self-update is **on by default**. The setting is keyed to the
120
- resolved install path, so repeat it after moving or re-copying the directory.
98
+ There is no update switch to turn off in this version.
121
99
 
122
100
  ### Step 4: Authorize as its own decision
123
101
 
@@ -160,16 +138,17 @@ arguments; never submit a replacement while the task is running.
160
138
 
161
139
  ## Update
162
140
 
163
- This entry does not endorse the package's silent self-update. Keep
164
- `update --auto off` in place and do not run `update --auto on` or a bare
165
- `update` without explicit approval.
141
+ This pinned version cannot update itself: it has no code that downloads or
142
+ replaces package files. `update` only reports what the store or tool that
143
+ installed the copy offers; for a copy installed by the steps above it finds
144
+ no such record and says to update the way you installed it. See the version
145
+ notice under [Security & Safety Notes](#security--safety-notes).
166
146
 
167
- To move to a newer version, repeat Steps 1 to 3 for that version in a new
168
- review directory, verify its digest against the matching tree in `beatra-ai/multilingual-voiceover-skill`
169
- (a version not listed in this entry has not been reviewed here), show the
170
- user the file-level changes against the installed copy, and replace the
171
- directory only after approval. `update --check` reports the available version
172
- from `beatra.ai` without changing files.
147
+ To move to a newer version, repeat Steps 1 to 3 for that commit in a new
148
+ review directory, show the user the file-level changes against the installed
149
+ copy (for example `git -C src diff --stat bcd5d93 <new-commit> -- skills/ai-multilingual-dubbing`),
150
+ and replace the directory only after approval. A version not listed in this
151
+ entry has not been reviewed here.
173
152
 
174
153
  ## Uninstall
175
154
 
@@ -181,21 +160,25 @@ python3 "$dest/scripts/uninstall.py"
181
160
 
182
161
  Read the JSON decision. `disconnected` means this was the last Beatra skill on
183
162
  the device: the token was revoked (when `revoked` is `true`) and the files
184
- `credentials.json`, `installation.json`, `host.json`, `skills.json`, and
185
- `registrations.json` under `~/.beatra` were removed. `keep_connection` means
186
- another Beatra skill still uses the shared token, which stays. Then, after
187
- confirming the path with the user, delete `$dest`.
163
+ `credentials.json`, `installation.json`, `host.json`, `skills.json`,
164
+ `network.json`, `balance-holds.json`, `pending_authorization.json`, and
165
+ `.authorize.lock` under `~/.beatra` were removed. `keep_connection` means
166
+ another Beatra skill still uses the shared token, which stays.
167
+ `revoke_retry` means the server refused the revocation and nothing changed;
168
+ run it again shortly. The script never deletes the package directory: after
169
+ confirming the path it prints with the user, delete `$dest`.
188
170
 
189
171
  `uninstall.py` does not remove `~/.beatra/updates/`. When the decision is
190
172
  `disconnected` and no other Beatra skill is installed, remove that directory
191
- too; otherwise leave it. A token that could not be revoked expires after 15
192
- days idle and can be revoked at once in the Beatra Console under Agents.
173
+ and then the empty `~/.beatra`; otherwise leave them. A token that could not
174
+ be revoked expires after 15 days idle and can be revoked at once in the
175
+ Beatra Console under Agents.
193
176
 
194
177
  ## Best Practices
195
178
 
196
179
  - ✅ Keep one approval per paid call, per upload set, and per install step.
197
180
  - ✅ Report net charged credits from the terminal task, not the estimate.
198
- - ❌ Do not re-enable self-update or install an unreviewed version silently.
181
+ - ❌ Do not replace the installed copy with an unreviewed version silently.
199
182
  - ❌ Do not print, paste, or move the token out of `~/.beatra/credentials.json`.
200
183
  - ❌ Do not retry a paid call with a new request ID after an uncertain response.
201
184
 
@@ -206,47 +189,79 @@ days idle and can be revoked at once in the Beatra Console under Agents.
206
189
  upstream model providers and can change; the service is provided as is.
207
190
  - Outputs are probabilistic, not guaranteed unique or non-infringing, and need
208
191
  human review before publication.
209
- - This catalog entry reviews only the pinned archive above. A newer version is
192
+ - This catalog entry reviews only the pinned tree above. A newer version is
210
193
  a different review.
211
194
 
212
195
  ## Security & Safety Notes
213
196
 
214
197
  `risk: critical` is deliberate.
215
198
 
216
- - **Network.** Authorization uses `api.beatra.ai`; every tool call and upload
217
- goes to `mcp.beatra.ai`. With self-update left on, the client also fetches
218
- `https://beatra.ai/skills/ai-multilingual-dubbing/install.json` and archives from
219
- `cdn.beatra.ai`.
220
- - **Self-update (on by default in this pinned version).** Before `verify`,
221
- `tools`, `upload`, or `call`, the client checks for a newer release at most
222
- once every 24 hours and, if one exists, replaces package-owned files without
223
- per-update preview or approval. It pins host and path, verifies checksums
224
- from Beatra's own discovery document and CDN, and rolls back on failure, but
225
- those digests are not independently anchored. This entry therefore requires
226
- `update --auto off` before first use, as in Step 3.
199
+ - **Network.** Every request is HTTPS and refuses redirects. Authorization
200
+ uses `api.beatra.ai` and tool calls go to `mcp.beatra.ai`; an upload is a
201
+ `PUT` of the approved file to the HTTPS address the server returns, without
202
+ the bearer token. Unless a cached decision is still valid (10 minutes to 7
203
+ days), each run first asks `https://api.beatra.ai/skill-route`, and also
204
+ `https://api.beatra.cn/skill-route` when the first is slow or answers `cn`,
205
+ which network to use. These probes carry no credential or package identity.
206
+ When the answer is `cn`, authorization and tool calls go to `api.beatra.cn`
207
+ and `mcp.beatra.cn` with the same bearer token, and the version notice
208
+ reads from `www.beatra.cn`; Beatra serves these `.cn` hosts from mainland
209
+ China.
210
+ `python3 "$dest/scripts/mcp_client.py" network --use ai` pins the `.ai`
211
+ hosts and stops the probes; a failed version-notice read can still retry
212
+ once on the other network.
213
+ - **Version notice, no self-update.** This version has no code that downloads
214
+ or replaces package files and writes nothing inside the install directory.
215
+ Before `verify`, `tools`, `upload`, or `call`, at most once every 24 hours
216
+ per install path, it records the check time and looks, read-only, for
217
+ records another installer left beside the package (ClawHub `origin.json`,
218
+ SkillHub or `skills` CLI lock entries, `gh skill` frontmatter). A copy
219
+ installed by the steps above normally has none and makes no request. When
220
+ one is found, it reads `https://beatra.ai/skills/ai-multilingual-dubbing/sources.json`
221
+ (no credential, 3-second timeout, 64 KiB cap) and, if that installer offers a
222
+ newer version, prints one line to stderr with the installer's own update
223
+ command. It never runs the command.
227
224
  - **Uploads and third parties.** Prompts and uploaded media are sent to Beatra
228
225
  and forwarded to the third-party model provider executing the task. Beatra
229
- is hosted outside mainland China. See the
226
+ runs the service outside mainland China; on the `cn` route (see Network)
227
+ requests reach it through Beatra's hosts in mainland China. See the
230
228
  [privacy policy](https://beatra.ai/en/privacy).
231
229
  - **Billing.** Paid tools consume prepaid credits. Credits for tasks that fail
232
230
  for reasons attributable to Beatra or the upstream model are returned
233
231
  automatically; otherwise purchases are non-refundable, and actual usage can
234
232
  exceed the estimate and leave a negative balance. See the
235
233
  [terms](https://beatra.ai/en/terms).
236
- - **Credentials.** `authorize.py` runs an OAuth device flow, opens the browser,
237
- and stores one bearer token in `~/.beatra/credentials.json` (directory
238
- `0700`, file `0600`). The token never goes into argv, environment variables,
239
- or output. It carries full Beatra scope, including `wallet:spend`, has a
240
- sliding 15-day idle lifetime, and is shared by every Beatra skill on the
241
- device.
234
+ - **Credentials.** `authorize.py` runs an OAuth device flow, opens the browser
235
+ on the approval page, and stores one bearer token in
236
+ `~/.beatra/credentials.json` (directory `0700`, file `0600`). The token never
237
+ goes into argv, environment variables, or output. It carries full Beatra
238
+ scope, including `wallet:spend`, has a sliding 15-day idle lifetime, and is
239
+ shared by every Beatra skill on the device. While the user has not yet
240
+ selected Allow, the pending device code is kept in
241
+ `~/.beatra/pending_authorization.json` (`0600`) so a rerun finishes the same
242
+ approval instead of opening a new one. When `verify`, `tools`, `upload`, or
243
+ `call` finds no working token, the client makes one check of that saved
244
+ approval and stores the token if the user has already selected Allow; it
245
+ never starts a new authorization or opens a browser.
242
246
  - **Local state.** `~/.beatra/` also holds `installation.json` (random
243
247
  installation reference), `host.json` (agent platform and hostname),
244
- `skills.json` (installed Beatra skill paths), `registrations.json`, and
245
- `updates/<id>/state.json` plus update backups when updates run.
246
- - **Telemetry.** The device flow sends the hostname as the device name, the
247
- package slug and version, and the detected agent platform (for example
248
- `claude-code`, from environment variables). On first use the client makes a
249
- non-billable `beatra.installations.register` call, and every tool call adds
248
+ `skills.json` (installed Beatra skill paths), `network.json` (route
249
+ decision, with a country code when the route answer includes one),
250
+ `balance-holds.json` (after an insufficient-credit refusal, that tool is
251
+ answered locally for up to 30 minutes; `call --recheck-balance` sends one
252
+ call), a short-lived `.authorize.lock`, and, per install path,
253
+ `updates/<id>/state.json` (last version check), `source.json` (install
254
+ source), and `registration.json` (last registration). Files are `0600`
255
+ except `host.json`, which follows the umask.
256
+ - **Telemetry.** Authorization sends the hostname as the device name, the
257
+ package slug and version, the detected agent platform (for example
258
+ `claude-code`, from environment variables), and the installation reference.
259
+ After connecting, at most once a day unless the version, platform, route, or
260
+ install source changes, the client makes a non-billable
261
+ `beatra.installations.register` call with those package and platform
262
+ fields, the release channel, the network route, the install source
263
+ (`github` for this tree), and coarse runtime facts: OS and OS version, CPU
264
+ architecture, Python version, locale, and UTC offset. Every tool call adds
250
265
  `source_package_slug` and `source_platform`. There is no opt-out for these
251
266
  fields.
252
267
  - **Retention.** Account data is kept for the life of the account. Task
@@ -258,7 +273,7 @@ days idle and can be revoked at once in the Beatra Console under Agents.
258
273
 
259
274
  ## Additional Resources
260
275
 
261
- - [Source tree at the pinned commit](https://github.com/beatra-ai/multilingual-voiceover-skill/tree/030ec84801fec544bc8be4e1d4ff7333bee7cf0d/skills/ai-multilingual-dubbing)
276
+ - [Source tree at the pinned commit](https://github.com/beatra-ai/multilingual-voiceover-skill/tree/bcd5d938b872bb50b421f752e1acba29d07965e5/skills/ai-multilingual-dubbing)
262
277
  - [Product page](https://beatra.ai/skills/ai-multilingual-dubbing)
263
278
  - [Terms](https://beatra.ai/en/terms) and [privacy policy](https://beatra.ai/en/privacy)
264
279