opencode-skills-collection 4.0.66 → 4.0.68
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.
- package/bundled-skills/.antigravity-install-manifest.json +18 -1
- package/bundled-skills/anti-slop-design/SKILL.md +393 -0
- package/bundled-skills/antigravity-maintainer-batch-release/SKILL.md +1 -0
- package/bundled-skills/artifact-yylo/SKILL.md +122 -0
- package/bundled-skills/beatra-ai-video-studio/SKILL.md +272 -0
- package/bundled-skills/google-no-code/SKILL.md +136 -0
- package/bundled-skills/idea-evaluator/SKILL.md +75 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-con/SKILL.md +64 -0
- package/bundled-skills/idea-evaluator/idea-evaluator-pro/SKILL.md +64 -0
- package/bundled-skills/ledger-tasks-yylo/SKILL.md +219 -0
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +4 -4
- package/bundled-skills/loki-mode/examples/todo-app-generated/backend/package.json +1 -1
- package/bundled-skills/meteora-dlmm-pool-screening/SKILL.md +166 -0
- package/bundled-skills/meteora-dlmm-pool-screening/references/meteora-apis.md +74 -0
- package/bundled-skills/meteora-dlmm-pool-screening/references/meteora-screener.md +352 -0
- package/bundled-skills/plan-ledger-tasks-yylo/SKILL.md +52 -0
- package/bundled-skills/ralph-loop-yylo/SKILL.md +55 -0
- package/bundled-skills/ralph-loop-yylo/references/first_check.md +18 -0
- package/bundled-skills/ralph-loop-yylo/references/implement.md +60 -0
- package/bundled-skills/resumable-implementation-contracts/SKILL.md +254 -0
- package/bundled-skills/understand-project-yylo/SKILL.md +62 -0
- package/bundled-skills/weather-model-data-fetching/SKILL.md +277 -0
- package/bundled-skills/weather-observation-fetching/SKILL.md +246 -0
- package/bundled-skills/wiki-yylo/SKILL.md +114 -0
- package/bundled-skills/workflow-yylo/SKILL.md +107 -0
- package/package.json +1 -1
- package/skills_index.json +422 -0
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: beatra-ai-video-studio
|
|
3
|
+
description: "Install and use the official Beatra AI Video Studio package, pinned by digest, for paid text-to-video, image-to-video, and video edit or extend jobs on the hosted Beatra service."
|
|
4
|
+
category: media
|
|
5
|
+
risk: critical
|
|
6
|
+
source: community
|
|
7
|
+
source_repo: beatra-ai/beatra-skills
|
|
8
|
+
source_type: official
|
|
9
|
+
date_added: "2026-09-17"
|
|
10
|
+
author: beatra-ai
|
|
11
|
+
tags: [video-generation, text-to-video, image-to-video, video-editing, mcp, paid-api, beatra]
|
|
12
|
+
tools: [claude, codex, cursor, gemini]
|
|
13
|
+
license: "MIT-0"
|
|
14
|
+
license_source: "https://github.com/beatra-ai/beatra-skills/blob/95d662f7aeddd6e2aa6da9e14f9c985e3f6b914d/LICENSE"
|
|
15
|
+
---
|
|
16
|
+
|
|
17
|
+
# Beatra AI Video Studio
|
|
18
|
+
|
|
19
|
+
## Overview
|
|
20
|
+
|
|
21
|
+
Beatra AI Video Studio is Beatra's official agent package for short AI video
|
|
22
|
+
work: text-to-video, image-to-video, first/last-frame interpolation,
|
|
23
|
+
reference-guided generation, and editing or extending an existing clip. The
|
|
24
|
+
video is produced on the hosted, paid Beatra service (`mcp.beatra.ai`).
|
|
25
|
+
|
|
26
|
+
This catalog entry is a **reviewed pointer, not the executable package**. It
|
|
27
|
+
contains no client code and performs no Beatra operation by itself. The package
|
|
28
|
+
it points to bundles three standard-library Python scripts that make network
|
|
29
|
+
calls, store a credential, and can replace their own files. Read
|
|
30
|
+
[Install](#install-pinned-verified-approved-twice) and
|
|
31
|
+
[Security & Safety Notes](#security--safety-notes) before activating it.
|
|
32
|
+
|
|
33
|
+
| Pinned identity | Value |
|
|
34
|
+
| --- | --- |
|
|
35
|
+
| Package | `beatra-ai-video-studio` `1.2.5` |
|
|
36
|
+
| Archive | `https://cdn.beatra.ai/agent-packages/beatra-ai-video-studio/v1.2.5/beatra-ai-video-studio-skill-1.2.5.zip` |
|
|
37
|
+
| Archive SHA-256 | `679a3ddc06c7be631ef31f002f918465a26f17a189ffac723f45dfd348e1fc4a` |
|
|
38
|
+
| Source tree | [`beatra-ai/beatra-skills@95d662f`](https://github.com/beatra-ai/beatra-skills/tree/95d662f7aeddd6e2aa6da9e14f9c985e3f6b914d/skills/beatra-ai-video-studio) (full SHA `95d662f7aeddd6e2aa6da9e14f9c985e3f6b914d`) |
|
|
39
|
+
| License | MIT No Attribution (MIT-0) |
|
|
40
|
+
|
|
41
|
+
The archive holds 17 regular files (no symlinks, no executable bits, no
|
|
42
|
+
binaries), and every file is byte-identical to the source tree at that commit.
|
|
43
|
+
|
|
44
|
+
## When to Use This Skill
|
|
45
|
+
|
|
46
|
+
- Use when the user explicitly wants a short AI video clip produced on Beatra
|
|
47
|
+
and accepts that the work is paid and runs on a hosted service.
|
|
48
|
+
- Use when a still image should be animated, two frames interpolated, or an
|
|
49
|
+
existing clip edited or extended by Beatra.
|
|
50
|
+
- Do not use for local-only or offline video editing, timeline assembly, or
|
|
51
|
+
when the user has not agreed to send prompts and media to a third party.
|
|
52
|
+
|
|
53
|
+
## Install (pinned, verified, approved twice)
|
|
54
|
+
|
|
55
|
+
### Step 1: Download and verify into a review directory
|
|
56
|
+
|
|
57
|
+
Explain that this downloads an external package from `cdn.beatra.ai`, then ask
|
|
58
|
+
for approval. Only after approval:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
umask 077
|
|
62
|
+
review_dir="$(mktemp -d)"
|
|
63
|
+
cd "$review_dir" || exit 1
|
|
64
|
+
curl -fsSLO "https://cdn.beatra.ai/agent-packages/beatra-ai-video-studio/v1.2.5/beatra-ai-video-studio-skill-1.2.5.zip"
|
|
65
|
+
printf '%s %s\n' \
|
|
66
|
+
'679a3ddc06c7be631ef31f002f918465a26f17a189ffac723f45dfd348e1fc4a' \
|
|
67
|
+
'beatra-ai-video-studio-skill-1.2.5.zip' | shasum -a 256 -c -
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
Stop if the check does not print `OK`. The expected digest comes from this
|
|
71
|
+
catalog entry, not from a file on the same CDN.
|
|
72
|
+
|
|
73
|
+
### Step 2: Inspect before activation
|
|
74
|
+
|
|
75
|
+
```bash
|
|
76
|
+
unzip -l beatra-ai-video-studio-skill-1.2.5.zip
|
|
77
|
+
unzip -q beatra-ai-video-studio-skill-1.2.5.zip
|
|
78
|
+
find beatra-ai-video-studio -type l -print # expect no output
|
|
79
|
+
find beatra-ai-video-studio -type f -perm -111 -print # expect no output
|
|
80
|
+
grep -n '"auto_update": True' beatra-ai-video-studio/scripts/mcp_client.py
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Optionally confirm byte identity 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/beatra-skills.git src
|
|
88
|
+
git -C src checkout --quiet 95d662f7aeddd6e2aa6da9e14f9c985e3f6b914d -- skills/beatra-ai-video-studio
|
|
89
|
+
(cd beatra-ai-video-studio && find . -type f | LC_ALL=C sort | xargs shasum -a 256) > archive.sha
|
|
90
|
+
(cd src/skills/beatra-ai-video-studio && find . -type f | LC_ALL=C sort | xargs shasum -a 256) > tree.sha
|
|
91
|
+
cmp archive.sha tree.sha && echo IDENTICAL
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Report to the user what the review found: `SKILL.md`, `manifest.json`, 12
|
|
95
|
+
Markdown references, and `scripts/authorize.py`, `scripts/mcp_client.py`,
|
|
96
|
+
`scripts/uninstall.py` (Python 3.10+, standard library only, no dependency
|
|
97
|
+
installation, no lifecycle hooks). Summarize the network, credential,
|
|
98
|
+
local-state, telemetry, and self-update behavior listed under
|
|
99
|
+
[Security & Safety Notes](#security--safety-notes).
|
|
100
|
+
|
|
101
|
+
### Step 3: Copy in and disable self-update before any other command
|
|
102
|
+
|
|
103
|
+
Ask for a **second, separate** approval, because this changes agent
|
|
104
|
+
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:
|
|
107
|
+
|
|
108
|
+
```bash
|
|
109
|
+
dest="$HOME/.claude/skills/beatra-ai-video-studio"
|
|
110
|
+
test ! -e "$dest" || { echo "destination exists; stop and ask the user"; exit 1; }
|
|
111
|
+
cp -R beatra-ai-video-studio "$dest"
|
|
112
|
+
python3 "$dest/scripts/mcp_client.py" update --auto off
|
|
113
|
+
```
|
|
114
|
+
|
|
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 version 1.2.5
|
|
119
|
+
self-update is **on by default** (see below). The setting is keyed to the
|
|
120
|
+
resolved install path, so repeat it after moving or re-copying the directory.
|
|
121
|
+
|
|
122
|
+
### Step 4: Authorize as its own decision
|
|
123
|
+
|
|
124
|
+
Authorization opens a browser sign-in and stores a bearer token. Ask first.
|
|
125
|
+
|
|
126
|
+
```bash
|
|
127
|
+
python3 "$dest/scripts/authorize.py"
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Start a new agent session if the host discovers skills only at startup.
|
|
131
|
+
|
|
132
|
+
## How It Works
|
|
133
|
+
|
|
134
|
+
1. Read the installed package's `SKILL.md` and its references; they define the
|
|
135
|
+
video routes, payload shapes, and review loop.
|
|
136
|
+
2. Use free, non-billable discovery first (`beatra.models.list`, task list) to
|
|
137
|
+
read current model cards, durations, resolutions, and credit estimates.
|
|
138
|
+
3. Show the user a cost card for exactly one paid call: tool, model, duration,
|
|
139
|
+
resolution, estimate, and which files will be uploaded. Wait for explicit
|
|
140
|
+
approval. Planning or "make the clip" is not approval.
|
|
141
|
+
4. Upload only files the user supplied and approved for this task, then submit
|
|
142
|
+
once with a stable `client_request_id` and poll the returned task.
|
|
143
|
+
5. Report the delivered artifact and `billing.net_charged_credits`, review the
|
|
144
|
+
clip with the user, and ask again before any further paid stage.
|
|
145
|
+
|
|
146
|
+
## Examples
|
|
147
|
+
|
|
148
|
+
### Free connection check (non-billable)
|
|
149
|
+
|
|
150
|
+
```bash
|
|
151
|
+
python3 "$HOME/.claude/skills/beatra-ai-video-studio/scripts/mcp_client.py" verify
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
### One approved text-to-video call
|
|
155
|
+
|
|
156
|
+
After the user approved the cost card for this exact payload:
|
|
157
|
+
|
|
158
|
+
```bash
|
|
159
|
+
printf '%s' '{"prompt":"A close product reveal with one slow push-in.","model":"auto","duration":5,"client_request_id":"req-7f3c2a"}' \
|
|
160
|
+
| python3 "$HOME/.claude/skills/beatra-ai-video-studio/scripts/mcp_client.py" call beatra.videos.generate
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
If the response is lost, retry only with the same `client_request_id` and
|
|
164
|
+
identical arguments; never submit a replacement while the task is running.
|
|
165
|
+
|
|
166
|
+
## Update
|
|
167
|
+
|
|
168
|
+
This entry does not endorse the package's silent self-update. Keep
|
|
169
|
+
`update --auto off` in place and do not run `update --auto on` or a bare
|
|
170
|
+
`update` without explicit approval.
|
|
171
|
+
|
|
172
|
+
To move to a newer version, repeat Steps 1 to 3 for that version in a new
|
|
173
|
+
review directory, verify its digest against the matching tree in
|
|
174
|
+
`beatra-ai/beatra-skills` (a version not listed in this entry has not been
|
|
175
|
+
reviewed here), show the user the file-level changes against the installed
|
|
176
|
+
copy, and replace the directory only after approval. `update --check` reports
|
|
177
|
+
the available version from `beatra.ai` without changing files.
|
|
178
|
+
|
|
179
|
+
## Uninstall
|
|
180
|
+
|
|
181
|
+
```bash
|
|
182
|
+
dest="$HOME/.claude/skills/beatra-ai-video-studio"
|
|
183
|
+
python3 "$dest/scripts/uninstall.py" --dry-run
|
|
184
|
+
python3 "$dest/scripts/uninstall.py"
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
Read the JSON decision. `disconnected` means this was the last Beatra skill on
|
|
188
|
+
the device: the token was revoked (when `revoked` is `true`) and the files
|
|
189
|
+
`credentials.json`, `installation.json`, `host.json`, `skills.json`, and
|
|
190
|
+
`registrations.json` under `~/.beatra` were removed. `keep_connection` means
|
|
191
|
+
another Beatra skill still uses the shared token, which stays. Then, after
|
|
192
|
+
confirming the path with the user, delete `$dest`.
|
|
193
|
+
|
|
194
|
+
`uninstall.py` does not remove `~/.beatra/updates/`. When the decision is
|
|
195
|
+
`disconnected` and no other Beatra skill is installed, remove that directory
|
|
196
|
+
too; otherwise leave it. A token that could not be revoked expires after 15
|
|
197
|
+
days idle and can be revoked at once in the Beatra Console under Agents.
|
|
198
|
+
|
|
199
|
+
## Best Practices
|
|
200
|
+
|
|
201
|
+
- ✅ Keep one approval per paid call, per upload set, and per install step.
|
|
202
|
+
- ✅ Start with the shortest duration and lowest resolution the model admits.
|
|
203
|
+
- ✅ Report net charged credits from the terminal task, not the estimate.
|
|
204
|
+
- ❌ Do not re-enable self-update or install an unreviewed version silently.
|
|
205
|
+
- ❌ Do not print, paste, or move the token out of `~/.beatra/credentials.json`.
|
|
206
|
+
- ❌ Do not retry a paid call with a new request ID after an uncertain response.
|
|
207
|
+
|
|
208
|
+
## Limitations
|
|
209
|
+
|
|
210
|
+
- Requires a Beatra account, network access, Python 3.10+, and prepaid credits;
|
|
211
|
+
the sign-up gift usually cannot cover a video generation.
|
|
212
|
+
- Short clips only; not a timeline editor. Multi-shot work is delivered as
|
|
213
|
+
separate clips.
|
|
214
|
+
- Generation is asynchronous and can take minutes. Upload size is capped at
|
|
215
|
+
100 MB and a model may impose a lower limit.
|
|
216
|
+
- Models, prices, schemas, and availability are controlled by Beatra and its
|
|
217
|
+
upstream model providers and can change; the service is provided as is.
|
|
218
|
+
- Outputs are probabilistic, not guaranteed unique or non-infringing, and need
|
|
219
|
+
human review before publication.
|
|
220
|
+
|
|
221
|
+
## Security & Safety Notes
|
|
222
|
+
|
|
223
|
+
`risk: critical` is deliberate.
|
|
224
|
+
|
|
225
|
+
- **Network.** Authorization uses `api.beatra.ai`; every tool call and upload
|
|
226
|
+
goes to `mcp.beatra.ai`. With self-update left on, the client also fetches
|
|
227
|
+
`https://beatra.ai/skills/beatra-ai-video-studio/install.json` and archives
|
|
228
|
+
from `cdn.beatra.ai`.
|
|
229
|
+
- **Self-update (on by default in 1.2.5).** Before `verify`, `tools`, `upload`,
|
|
230
|
+
or `call`, the client checks for a newer release at most once every 24 hours
|
|
231
|
+
and, if one exists, replaces package-owned files without per-update preview
|
|
232
|
+
or approval. It pins host and path, verifies checksums from Beatra's own
|
|
233
|
+
discovery document and CDN, and rolls back on failure, but those digests are
|
|
234
|
+
not independently anchored. This entry therefore requires
|
|
235
|
+
`update --auto off` before first use, as in Step 3.
|
|
236
|
+
- **Uploads and third parties.** Prompts and uploaded media are sent to Beatra
|
|
237
|
+
and forwarded to the third-party model provider executing the task. Beatra
|
|
238
|
+
is hosted outside mainland China. See the
|
|
239
|
+
[privacy policy](https://beatra.ai/en/privacy).
|
|
240
|
+
- **Billing.** Paid tools consume prepaid credits. Credits for tasks that fail
|
|
241
|
+
for reasons attributable to Beatra or the upstream model are returned
|
|
242
|
+
automatically; otherwise purchases are non-refundable, and actual usage can
|
|
243
|
+
exceed the estimate and leave a negative balance. See the
|
|
244
|
+
[terms](https://beatra.ai/en/terms).
|
|
245
|
+
- **Credentials.** `authorize.py` runs an OAuth device flow, opens the browser,
|
|
246
|
+
and stores one bearer token in `~/.beatra/credentials.json` (directory
|
|
247
|
+
`0700`, file `0600`). The token never goes into argv, environment variables,
|
|
248
|
+
or output. It carries full Beatra scope, including `wallet:spend`, has a
|
|
249
|
+
sliding 15-day idle lifetime, and is shared by every Beatra skill on the
|
|
250
|
+
device.
|
|
251
|
+
- **Local state.** `~/.beatra/` also holds `installation.json` (random
|
|
252
|
+
installation reference), `host.json` (agent platform and hostname),
|
|
253
|
+
`skills.json` (installed Beatra skill paths), `registrations.json`, and
|
|
254
|
+
`updates/<id>/state.json` plus update backups when updates run.
|
|
255
|
+
- **Telemetry.** The device flow sends the hostname as the device name, the
|
|
256
|
+
package slug and version, and the detected agent platform (for example
|
|
257
|
+
`claude-code`, from environment variables). On first use the client makes a
|
|
258
|
+
non-billable `beatra.installations.register` call, and every tool call adds
|
|
259
|
+
`source_package_slug` and `source_platform`. There is no opt-out for these
|
|
260
|
+
fields.
|
|
261
|
+
- **Retention.** Account data is kept for the life of the account. Task
|
|
262
|
+
records, artifacts, and billing ledgers are retained after account closure
|
|
263
|
+
for audit and tax purposes.
|
|
264
|
+
- **Content rights.** Users keep rights in their inputs and receive Beatra's
|
|
265
|
+
rights in outputs; they must hold rights to uploaded media and must not
|
|
266
|
+
create deceptive impersonations.
|
|
267
|
+
|
|
268
|
+
## Additional Resources
|
|
269
|
+
|
|
270
|
+
- [Source tree at the pinned commit](https://github.com/beatra-ai/beatra-skills/tree/95d662f7aeddd6e2aa6da9e14f9c985e3f6b914d/skills/beatra-ai-video-studio)
|
|
271
|
+
- [Product page](https://beatra.ai/skills/beatra-ai-video-studio)
|
|
272
|
+
- [Terms](https://beatra.ai/en/terms) and [privacy policy](https://beatra.ai/en/privacy)
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: google-no-code
|
|
3
|
+
description: "Design Google Forms and wire Apps Script triggers (onFormSubmit) for email alerts, spreadsheet logging, and dynamic questions — no code editor required."
|
|
4
|
+
category: automation
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
date_added: "2026-09-19"
|
|
9
|
+
author: WHOISABHISHEKADHIKARI
|
|
10
|
+
tags: [google, forms, apps-script]
|
|
11
|
+
tools: [claude, cursor, gemini]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Google No-Code Forms Automation
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
Guides the user through building a Google Form in the Forms UI and connecting it to Google Apps Script triggers, without writing a custom integration or leaving the browser. Covers form design, the Apps Script editor, the `onFormSubmit` trigger, and small response-handling scripts that run automatically when a form is submitted.
|
|
19
|
+
|
|
20
|
+
## When to Use This Skill
|
|
21
|
+
|
|
22
|
+
- Use when the user wants to build a Google Form and automate what happens after submissions.
|
|
23
|
+
- Use when the user asks for email alerts, spreadsheet logging, or conditional handling of form responses.
|
|
24
|
+
- Use when the user wants Apps Script snippets to paste into a form bound script project.
|
|
25
|
+
- Skip this skill if the user needs custom UI, paid APIs, or a full standalone Apps Script application.
|
|
26
|
+
|
|
27
|
+
## How It Works
|
|
28
|
+
|
|
29
|
+
### Step 1: Define the form in the Forms UI
|
|
30
|
+
|
|
31
|
+
Create the form in Google Forms with clear questions, answer types (short answer, multiple choice, checkbox), and required fields. Match question IDs to what the script will need later. Add a description to the form so respondents know what to expect.
|
|
32
|
+
|
|
33
|
+
### Step 2: Open the bound Apps Script editor
|
|
34
|
+
|
|
35
|
+
In the form, go to `Extensions > Apps Script`. This opens a project bound to the form. The script can read each submission through the `e.response` event object.
|
|
36
|
+
|
|
37
|
+
### Step 3: Write the response handler
|
|
38
|
+
|
|
39
|
+
Add a function that accepts the `onFormSubmit` event, reads `e.response` with `getItemResponses()`, and then performs the desired action: send an email, write to a spreadsheet, or branch on answers.
|
|
40
|
+
|
|
41
|
+
### Step 4: Install the trigger
|
|
42
|
+
|
|
43
|
+
In Apps Script, go to the clock/triggers menu, select the `onFormSubmit` function, choose the event source **From form** and event type **On form submit**, then save and authorize. The function runs automatically on each new submission.
|
|
44
|
+
|
|
45
|
+
### Step 5: Test with a real submission
|
|
46
|
+
|
|
47
|
+
Submit a test response from a private/incognito window and verify the email, sheet row, or log arrives once. Check the Apps Script executions page (`Executions` in the editor) for errors and read the stack trace if something fails.
|
|
48
|
+
|
|
49
|
+
## Examples
|
|
50
|
+
|
|
51
|
+
### Example 1: Email notification on every response
|
|
52
|
+
|
|
53
|
+
```javascript
|
|
54
|
+
function onFormSubmit(e) {
|
|
55
|
+
const response = e.response;
|
|
56
|
+
const email = getEmail(response);
|
|
57
|
+
MailApp.sendEmail({
|
|
58
|
+
to: email,
|
|
59
|
+
subject: "Form submission received",
|
|
60
|
+
body: "Thank you. We have recorded your response."
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
function getEmail(response) {
|
|
65
|
+
const items = response.getItemResponses();
|
|
66
|
+
for (const item of items) {
|
|
67
|
+
if (item.getItem().getTitle().toLowerCase().includes("email")) {
|
|
68
|
+
return item.getResponse();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
return Session.getActiveUser().getEmail();
|
|
72
|
+
}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Example 2: Log each response to a Google Sheet
|
|
76
|
+
|
|
77
|
+
```javascript
|
|
78
|
+
function onFormSubmit(e) {
|
|
79
|
+
const sheet = SpreadsheetApp.openById(SHEET_ID).getSheetByName("Responses");
|
|
80
|
+
const itemResponses = e.response.getItemResponses();
|
|
81
|
+
const row = [new Date()].concat(itemResponses.map(r => r.getResponse()));
|
|
82
|
+
sheet.appendRow(row);
|
|
83
|
+
}
|
|
84
|
+
```
|
|
85
|
+
|
|
86
|
+
### Example 3: Branch on a multiple-choice answer
|
|
87
|
+
|
|
88
|
+
```javascript
|
|
89
|
+
function onFormSubmit(e) {
|
|
90
|
+
const items = e.response.getItemResponses();
|
|
91
|
+
for (const item of items) {
|
|
92
|
+
if (item.getItem().getTitle().toLowerCase() === "priority") {
|
|
93
|
+
const priority = item.getResponse();
|
|
94
|
+
const subject = priority === "High" ? "[URGENT] " : "";
|
|
95
|
+
MailApp.sendEmail({ to: MANAGER_EMAIL, subject: subject + "New submission", body: itemResponsesText(e) });
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
## Best Practices
|
|
102
|
+
|
|
103
|
+
- ✅ Test every trigger with a real submission before telling the user it works.
|
|
104
|
+
- ✅ Use clear, stable question titles so the script can match items by title instead of fragile indexes.
|
|
105
|
+
- ✅ Keep secrets and API keys in script properties, never hard-coded in the file.
|
|
106
|
+
- ✅ Add try/catch around handler logic and log errors with `Logger.log` so failures surface in the Executions page.
|
|
107
|
+
- ❌ Do not grant broad scopes; run with the minimum permission the form action needs.
|
|
108
|
+
- ❌ Do not send email to addresses that the form did not legitimately collect.
|
|
109
|
+
|
|
110
|
+
## Limitations
|
|
111
|
+
|
|
112
|
+
- Apps Script quotas apply (email rate limits, daily triggers, execution time); heavy volume needs review.
|
|
113
|
+
- Only form submissions trigger the event; edits to responses by users do not fire `onFormSubmit` by default.
|
|
114
|
+
- The skill produces scripts the user must paste, authorize, and deploy; it cannot create a Google Forms project by itself.
|
|
115
|
+
- Sheets integration requires the sheet's ID and permission, which must be confirmed with the user.
|
|
116
|
+
|
|
117
|
+
## Security & Safety Notes
|
|
118
|
+
|
|
119
|
+
- The script runs inside the user's Google account with the scopes it declares. Review the authorization prompt and grant only the minimum requested scope.
|
|
120
|
+
- Do not log, print, or embed passwords, OAuth tokens, or API keys in form scripts or shared files.
|
|
121
|
+
- Form responses can arrive from anyone the form is shared with; validate inputs before acting on them.
|
|
122
|
+
- Test in a controlled environment first; sending email or appending rows happens on every submission once the trigger is live.
|
|
123
|
+
|
|
124
|
+
## Common Pitfalls
|
|
125
|
+
|
|
126
|
+
- **Problem:** The handler runs for every submission and duplicates work.
|
|
127
|
+
**Solution:** Prefer the single event object `e.response`; do not separately query the form's stored responses inside `onFormSubmit`.
|
|
128
|
+
- **Problem:** `item.getResponse()` returns `undefined` for optional questions.
|
|
129
|
+
**Solution:** Guard with a check for a truthy response, or make the question required.
|
|
130
|
+
- **Problem:** The email goes to the wrong address.
|
|
131
|
+
**Solution:** Match by the question title containing "email", and verify the collected value belongs to the respondent before sending.
|
|
132
|
+
|
|
133
|
+
## Related Skills
|
|
134
|
+
|
|
135
|
+
- `@google-sheets-automation` - Use when the response logging target is a Sheet that needs its own automation.
|
|
136
|
+
- `@google-docs-automation` - Use when form output should create or update a Google Doc.
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: idea-evaluator
|
|
3
|
+
description: "Evaluates an idea by hosting a multi-turn debate between a Pro and Con agent, delivering a final verdict on whether it's worth pursuing."
|
|
4
|
+
category: agent-orchestration
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
date_added: "2026-09-18"
|
|
9
|
+
author: Prince-1652
|
|
10
|
+
tags: [ideation, validation, debate, multi-agent]
|
|
11
|
+
tools: [claude, gemini]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Idea Evaluator Orchestrator
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
The Idea Evaluator skill acts as an impartial judge for evaluating new concepts, features, or project ideas. It takes an initial idea from the user and orchestrates a structured, multi-turn debate between two simulated personas: a logical supporter (Pro Agent) and a constructive critic (Con Agent).
|
|
19
|
+
|
|
20
|
+
By pitting these two perspectives against each other, it surfaces the strongest arguments for both sides before delivering a comprehensive final verdict on whether the idea is worth building.
|
|
21
|
+
|
|
22
|
+
## When to Use This Skill
|
|
23
|
+
|
|
24
|
+
- Use when you have a new idea but don't know if it's worth your time or effort to build.
|
|
25
|
+
- Use when evaluating potential features for a product to decide on priorities.
|
|
26
|
+
- Use when you want to rigorously stress-test an assumption before committing code.
|
|
27
|
+
|
|
28
|
+
## How It Works
|
|
29
|
+
|
|
30
|
+
When triggered with an idea, you (the AI) will act as the Orchestrator and facilitate the following workflow:
|
|
31
|
+
|
|
32
|
+
### Step 1: Initialize the Debate
|
|
33
|
+
You will assume the role of the Orchestrator. Introduce the debate and clearly state the idea being evaluated. Spawn or simulate the two participants:
|
|
34
|
+
- `@idea-evaluator-pro`: The logical supporter.
|
|
35
|
+
- `@idea-evaluator-con`: The constructive critic.
|
|
36
|
+
|
|
37
|
+
### Step 2: The Debate (3 Turns)
|
|
38
|
+
Conduct a 3-turn debate where the Pro and Con agents respond to each other.
|
|
39
|
+
- **Turn 1 (Initial Pitches):** Pro presents the strongest case for the idea. Con presents the strongest immediate risks and flaws.
|
|
40
|
+
- **Turn 2 (Rebuttals):** Pro addresses Con's risks. Con challenges Pro's optimism.
|
|
41
|
+
- **Turn 3 (Closing Statements):** Both agents summarize their final stance on why the idea will succeed or fail.
|
|
42
|
+
|
|
43
|
+
*Note: Ensure the agents do not blindly agree/disagree but base their arguments on logic, market realities, and technical feasibility.*
|
|
44
|
+
|
|
45
|
+
### Step 3: Final Verdict
|
|
46
|
+
Once the debate concludes, the Orchestrator steps in as the Judge. Provide a comprehensive summary formatted with:
|
|
47
|
+
- **Pros:** The strongest validated points in favor.
|
|
48
|
+
- **Cons:** The most critical risks identified.
|
|
49
|
+
- **Final Verdict:** A definitive recommendation (e.g., "Strongly Recommended", "Proceed with Caution", "Pivot Required", "Not Worth Building").
|
|
50
|
+
- **Why:** A brief justification summarizing the debate outcome.
|
|
51
|
+
|
|
52
|
+
## Examples
|
|
53
|
+
|
|
54
|
+
### Example 1: Evaluating a new app idea
|
|
55
|
+
|
|
56
|
+
**User:** "Evaluate this idea: A social network exclusively for houseplants where users post updates on their plant's growth."
|
|
57
|
+
|
|
58
|
+
**Agent:** (Proceeds to run the 3-turn debate between Pro and Con, followed by the Orchestrator's final verdict detailing the niche appeal versus retention challenges).
|
|
59
|
+
|
|
60
|
+
## Best Practices
|
|
61
|
+
|
|
62
|
+
- ✅ Ensure the Pro and Con agents directly address each other's points during rebuttals.
|
|
63
|
+
- ✅ The Orchestrator must remain strictly neutral until the Final Verdict.
|
|
64
|
+
- ❌ Don't let the agents devolve into generic AI pleasantries; keep the debate sharp and analytical.
|
|
65
|
+
- ❌ Don't skip the debate steps; the back-and-forth is crucial for deep validation.
|
|
66
|
+
|
|
67
|
+
## Limitations
|
|
68
|
+
|
|
69
|
+
- The verdict is based on simulated reasoning and logic, not actual market data or user feedback.
|
|
70
|
+
- This skill is for brainstorming and validation, not a guarantee of business success.
|
|
71
|
+
|
|
72
|
+
## Related Skills
|
|
73
|
+
|
|
74
|
+
- `@idea-evaluator-pro` - The supporting persona used in this debate.
|
|
75
|
+
- `@idea-evaluator-con` - The critical persona used in this debate.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: idea-evaluator-con
|
|
3
|
+
description: "The Con Agent persona for idea evaluation. Critiques an idea by identifying potential flaws, risks, and market challenges."
|
|
4
|
+
category: agent-persona
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
date_added: "2026-09-18"
|
|
9
|
+
author: Prince-1652
|
|
10
|
+
tags: [ideation, validation, persona, critic]
|
|
11
|
+
tools: [claude, gemini]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Idea Evaluator: Con Agent
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
The Con Agent is a critical persona designed to rigorously challenge a new idea. It is summoned by the `@idea-evaluator` orchestrator during an idea validation debate.
|
|
19
|
+
|
|
20
|
+
The Con Agent's job is not to be mean, but to act as a "red team." It actively looks for reasons why the idea will fail, waste time, or hit insurmountable technical/market hurdles. It helps prevent builders from falling in love with a bad idea.
|
|
21
|
+
|
|
22
|
+
## When to Use This Skill
|
|
23
|
+
|
|
24
|
+
- Use as a sub-agent or persona when running the `@idea-evaluator` skill.
|
|
25
|
+
- Use when you need a reality check on a feature or product you are overly excited about.
|
|
26
|
+
|
|
27
|
+
## How It Works
|
|
28
|
+
|
|
29
|
+
When acting as the Con Agent in a debate:
|
|
30
|
+
|
|
31
|
+
### Core Directives
|
|
32
|
+
1. **Find the Flaws**: Identify the most significant risks: technical debt, lack of market demand, high acquisition costs, or strong existing competition.
|
|
33
|
+
2. **Be Pragmatic**: Base your criticisms on reality. If an idea is technically possible but would take 5 years to build, point out the resource drain.
|
|
34
|
+
3. **Counter-Punch**: When rebutting the Pro Agent, dismantle their optimism. If Pro says a workaround exists, point out why that workaround introduces new, worse problems.
|
|
35
|
+
|
|
36
|
+
### Debate Behavior
|
|
37
|
+
- **Turn 1 (Initial Critique):** Attack the core premise. Why is this a solution looking for a problem? What is the biggest immediate barrier to entry?
|
|
38
|
+
- **Turn 2 (Rebuttal):** Directly challenge the Pro Agent's Turn 1 points. Expose any overly optimistic assumptions about user behavior or technical ease.
|
|
39
|
+
- **Turn 3 (Closing):** Provide a succinct, hard-hitting summary of why pursuing this idea is a mistake or requires a massive pivot.
|
|
40
|
+
|
|
41
|
+
## Examples
|
|
42
|
+
|
|
43
|
+
### Example 1: Critiquing a weird idea
|
|
44
|
+
|
|
45
|
+
**Idea:** A subscription box for slightly misshapen, un-sellable vegetables.
|
|
46
|
+
|
|
47
|
+
**Con Agent Response (Turn 1):** "The logistics will kill this business. While the produce is cheap, shipping heavy, perishable boxes of vegetables direct-to-consumer destroys any margin advantage. Furthermore, the 'ugly produce' novelty wears off quickly for consumers when they realize they still have to prep and cook it. You are competing with the convenience of local grocery stores, not other subscription boxes."
|
|
48
|
+
|
|
49
|
+
## Best Practices
|
|
50
|
+
|
|
51
|
+
- ✅ Be specific with your critiques. Say "The database scaling costs will be too high because of X" rather than "It's too expensive."
|
|
52
|
+
- ✅ Play the devil's advocate effectively by anticipating user apathy.
|
|
53
|
+
- ❌ Don't be needlessly aggressive or insulting; be a cold, calculating realist.
|
|
54
|
+
- ❌ Don't ignore the Pro Agent's points; actively dismantle them.
|
|
55
|
+
|
|
56
|
+
## Limitations
|
|
57
|
+
|
|
58
|
+
- Critiques are simulated red-team reasoning, not substitute for user research, legal review, or technical spikes.
|
|
59
|
+
- Intended only as one side of the `@idea-evaluator` debate, not standalone rejection authority.
|
|
60
|
+
|
|
61
|
+
## Related Skills
|
|
62
|
+
|
|
63
|
+
- `@idea-evaluator` - The orchestrator that manages this persona.
|
|
64
|
+
- `@idea-evaluator-pro` - The opposing persona.
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: idea-evaluator-pro
|
|
3
|
+
description: "The Pro Agent persona for idea evaluation. Logically supports an idea, arguing for its market fit, feasibility, and potential."
|
|
4
|
+
category: agent-persona
|
|
5
|
+
risk: safe
|
|
6
|
+
source: self
|
|
7
|
+
source_type: self
|
|
8
|
+
date_added: "2026-09-18"
|
|
9
|
+
author: Prince-1652
|
|
10
|
+
tags: [ideation, validation, persona, supporter]
|
|
11
|
+
tools: [claude, gemini]
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
# Idea Evaluator: Pro Agent
|
|
15
|
+
|
|
16
|
+
## Overview
|
|
17
|
+
|
|
18
|
+
The Pro Agent is a supporting persona designed to logically advocate for a new idea. It is summoned by the `@idea-evaluator` orchestrator during an idea validation debate.
|
|
19
|
+
|
|
20
|
+
Unlike a "yes-man," the Pro Agent doesn't blindly agree. Instead, it looks for the absolute strongest case for why an idea *could* work, focusing on market needs, technical feasibility, unique value propositions, and potential monetization.
|
|
21
|
+
|
|
22
|
+
## When to Use This Skill
|
|
23
|
+
|
|
24
|
+
- Use as a sub-agent or persona when running the `@idea-evaluator` skill.
|
|
25
|
+
- Use when you need someone to help you find the hidden value in a seemingly crazy idea.
|
|
26
|
+
|
|
27
|
+
## How It Works
|
|
28
|
+
|
|
29
|
+
When acting as the Pro Agent in a debate:
|
|
30
|
+
|
|
31
|
+
### Core Directives
|
|
32
|
+
1. **Find the "Why"**: Always articulate why users would love this idea and what core problem it solves.
|
|
33
|
+
2. **Be Logical**: Base your optimism on logical deductions, market trends, and technical possibilities, not just enthusiasm.
|
|
34
|
+
3. **Counter-Punch**: When rebutting the Con Agent, directly address their concerns with potential mitigations or workarounds. For example, if Con says "It's too expensive," Pro should say "We can reduce costs by doing X."
|
|
35
|
+
|
|
36
|
+
### Debate Behavior
|
|
37
|
+
- **Turn 1 (Initial Pitch):** Highlight the core value proposition, the target audience, and the best-case scenario. Make the idea sound inevitable and brilliant.
|
|
38
|
+
- **Turn 2 (Rebuttal):** Take the Con Agent's strongest attacks and dismantle them or reframe them as opportunities.
|
|
39
|
+
- **Turn 3 (Closing):** Provide a succinct, powerful summary of why the idea is a winner.
|
|
40
|
+
|
|
41
|
+
## Examples
|
|
42
|
+
|
|
43
|
+
### Example 1: Defending a weird idea
|
|
44
|
+
|
|
45
|
+
**Idea:** A subscription box for slightly misshapen, un-sellable vegetables.
|
|
46
|
+
|
|
47
|
+
**Pro Agent Response (Turn 1):** "This is a brilliant arbitrage opportunity. It tackles food waste (a massive consumer trend) while offering organic produce at a steep discount. The 'ugly produce' angle is highly marketable on social media, leaning into authenticity and sustainability. The supply is nearly free, making the margins incredibly attractive once logistics are solved."
|
|
48
|
+
|
|
49
|
+
## Best Practices
|
|
50
|
+
|
|
51
|
+
- ✅ Ground your optimism in specific examples (e.g., "Similar to how X solved Y...").
|
|
52
|
+
- ✅ Acknowledge risks but offer immediate, practical solutions to them.
|
|
53
|
+
- ❌ Don't ignore the Con Agent's points; address them head-on.
|
|
54
|
+
- ❌ Avoid generic praise like "This is a great idea!" Get specific about *why* it's great.
|
|
55
|
+
|
|
56
|
+
## Limitations
|
|
57
|
+
|
|
58
|
+
- Arguments are simulated advocacy, not verified market research or financial projections.
|
|
59
|
+
- Intended only as one side of the `@idea-evaluator` debate, not standalone go/no-go authority.
|
|
60
|
+
|
|
61
|
+
## Related Skills
|
|
62
|
+
|
|
63
|
+
- `@idea-evaluator` - The orchestrator that manages this persona.
|
|
64
|
+
- `@idea-evaluator-con` - The opposing persona.
|