opencode-skills-collection 2.0.215 → 2.0.217

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.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "schemaVersion": 1,
3
- "updatedAt": "2026-04-23T23:49:04.767Z",
3
+ "updatedAt": "2026-04-24T05:36:57.246Z",
4
4
  "entries": [
5
5
  "00-andruia-consultant",
6
6
  "007",
@@ -289,6 +289,7 @@
289
289
  "bug-hunter",
290
290
  "build",
291
291
  "building-native-ui",
292
+ "bulletmind",
292
293
  "bullmq-specialist",
293
294
  "bun-development",
294
295
  "burp-suite-testing",
@@ -589,6 +590,7 @@
589
590
  "free-tool-strategy",
590
591
  "freshdesk-automation",
591
592
  "freshservice-automation",
593
+ "frontend-api-integration-patterns",
592
594
  "frontend-design",
593
595
  "frontend-dev-guidelines",
594
596
  "frontend-developer",
@@ -758,6 +760,7 @@
758
760
  "kpi-dashboard-design",
759
761
  "kubernetes-architect",
760
762
  "kubernetes-deployment",
763
+ "lambda-lang",
761
764
  "lambdatest-agent-skills",
762
765
  "landing-page-generator",
763
766
  "langchain-architecture",
@@ -1201,6 +1204,7 @@
1201
1204
  "skill-writer",
1202
1205
  "skills/x402-express-wrapper",
1203
1206
  "skin-health-analyzer",
1207
+ "skyvern-browser-automation",
1204
1208
  "slack-automation",
1205
1209
  "slack-bot-builder",
1206
1210
  "slack-gif-creator",
@@ -0,0 +1,49 @@
1
+ # Bulletmind Output Reference
2
+
3
+ ## Example 1 - Topic: Climate Change
4
+
5
+ - Climate Change
6
+ - Definition
7
+ - Long-term shift in global temperatures and weather patterns
8
+ - Causes
9
+ - Human activities
10
+ - Burning fossil fuels
11
+ - Deforestation
12
+ - Industrial emissions
13
+ - Natural factors (less dominant)
14
+ - Volcanic activity
15
+ - Solar variations
16
+ - Effects
17
+ - Rising global temperatures
18
+ - Melting glaciers and ice caps
19
+ - Sea level rise
20
+ - Extreme weather events
21
+ - Solutions
22
+ - Reduce carbon emissions
23
+ - Transition to renewable energy
24
+ - Reforestation
25
+ - Sustainable practices
26
+
27
+ ## Example 2 - Topic: Operating Systems
28
+
29
+ - Operating System (OS)
30
+ - Definition
31
+ - Software that manages computer hardware and software resources and provides a platform and interface for applications to run.
32
+ - Core Functions
33
+ - Process management
34
+ - Handles execution of running programs
35
+ - Memory management
36
+ - Allocates and tracks memory usage
37
+ - File system management
38
+ - Organizes and stores data
39
+ - Device management
40
+ - Controls and coordinates hardware components
41
+ - Types
42
+ - Batch OS
43
+ - Time-sharing OS
44
+ - Distributed OS
45
+ - Real-time OS
46
+ - Examples
47
+ - Windows
48
+ - macOS
49
+ - Linux
@@ -0,0 +1,147 @@
1
+ ---
2
+ name: bulletmind
3
+ description: "Convert input into clean, structured, hierarchical bullet points for summarization, note-taking, and structured thinking."
4
+ category: writing
5
+ risk: safe
6
+ source: community
7
+ date_added: "2026-04-21"
8
+ author: tejasashinde
9
+ tags:
10
+ - writing
11
+ - summarization
12
+ - note-taking
13
+ - formatting
14
+ - structured-output
15
+ tools:
16
+ - claude
17
+ - cursor
18
+ - gemini
19
+ - codex
20
+ ---
21
+
22
+ # Bulletmind
23
+
24
+ When active, responses remain in hierarchical bullet format with no paragraphs, no prose blocks, no drift, and only structured bullet output.
25
+
26
+ ---
27
+
28
+ ## When to Use This Skill
29
+
30
+ Transform input into a structured bullet hierarchy when the user asks for:
31
+
32
+ - Bullet-only summaries of dense text, notes, explanations, articles, or webpages
33
+ - Cleaned-up note-taking output with clear parent-child relationships
34
+ - Structured study material that is easier to scan and memorize
35
+ - Consistent formatting for messy or mixed bullet lists
36
+
37
+ Use this skill to enforce:
38
+
39
+ - No paragraphs or long prose
40
+ - Only bullets with clean indentation
41
+
42
+ This improves readability, memorization, and structured thinking for note-taking and review workflows.
43
+
44
+ ---
45
+
46
+ ## Mode
47
+
48
+ Default mode: **full**. Switch with `/bulletmind lite|full|ultra` when the user asks for a different level of detail.
49
+
50
+ ---
51
+
52
+ ## Intensity
53
+
54
+ | Level | Behavior |
55
+ | ----- | --------------------------------------------------------------------------------------------------- |
56
+ | lite | clean hierarchical bullets, light restructuring, preserve sentence flow |
57
+ | full | default strict hierarchy, balanced compression, clear grouping + splitting |
58
+ | ultra | deep hierarchical decomposition, aggressive splitting, high granularity, maximal structural clarity |
59
+
60
+ ---
61
+
62
+ ## Bullet Structure
63
+
64
+ Use consistent indentation:
65
+ - Top-level idea
66
+ - Sub-point
67
+ - Detail
68
+ - Sub-point
69
+ - Next top-level idea
70
+ - Sub-point
71
+
72
+ ---
73
+
74
+ ## Rules
75
+
76
+ - NO paragraphs
77
+ - ONLY bullets `-`
78
+ - ALWAYS hierarchical structure
79
+ - GROUP related ideas under parent bullets
80
+ - SPLIT long sentences into smaller bullets
81
+ - KEEP meaning intact, no over-summarize
82
+ - REMOVE filler words
83
+
84
+ ---
85
+
86
+ ## Formatting
87
+
88
+ - Use `-` for all bullets
89
+ - Indent: 2 spaces per level
90
+ - Keep bullets short
91
+ - One idea per line
92
+ - No mixed symbols and no prose bridging lines
93
+
94
+ ---
95
+
96
+ ## Transformation Logic
97
+
98
+ - Paragraph -> main ideas -> top bullets
99
+ - Details -> nested bullets
100
+ - Messy notes -> cleaned hierarchy
101
+ - Existing bullets -> restructure + normalize depth
102
+ - Short input -> still convert into bullet tree
103
+
104
+ ---
105
+
106
+ ## Compression Strategy
107
+
108
+ - Remove filler words
109
+ - Split complex sentences
110
+ - Preserve key facts + relationships
111
+ - Do NOT flatten structure
112
+ - Prefer clarity over max compression
113
+
114
+ ---
115
+
116
+ ## When Not to Use This Skill
117
+
118
+ - User requests paragraphs
119
+ - Creative writing tasks such as stories or essays
120
+ - Formats where bullets reduce clarity or violate the requested output format
121
+
122
+ ---
123
+
124
+ ## Output Rule
125
+
126
+ When the skill is active, output:
127
+
128
+ - Structured bullet hierarchy
129
+ - No commentary or explanation
130
+
131
+ ## Limitations
132
+
133
+ - Do not use for deliverables that require prose, narrative flow, or exact source quotation.
134
+ - Do not preserve bullet-only formatting if a higher-priority instruction requires tables, code blocks, JSON, or paragraphs.
135
+ - Do not invent structure beyond the source material when the user asks for faithful summarization.
136
+
137
+ ### Examples
138
+
139
+ - Refer to `EXAMPLES.md` for output templates.
140
+
141
+ ---
142
+
143
+ ## Important Notes
144
+
145
+ - Prefer clarity over strict compression
146
+ - Avoid flattening everything into one level
147
+ - Maintain a logical tree structure
@@ -1,9 +1,9 @@
1
1
  ---
2
2
  title: Jetski/Cortex + Gemini Integration Guide
3
- description: "Use antigravity-awesome-skills with Jetski/Cortex without hitting context-window overflow with 1.431+ skills."
3
+ description: "Use antigravity-awesome-skills with Jetski/Cortex without hitting context-window overflow with 1.435+ skills."
4
4
  ---
5
5
 
6
- # Jetski/Cortex + Gemini: safe integration with 1,1.431+ skills
6
+ # Jetski/Cortex + Gemini: safe integration with 1,1.435+ skills
7
7
 
8
8
  This guide shows how to integrate the `antigravity-awesome-skills` repository with an agent based on **Jetski/Cortex + Gemini** (or similar frameworks) **without exceeding the model context window**.
9
9
 
@@ -23,7 +23,7 @@ Never do:
23
23
  - concatenate all `SKILL.md` content into a single system prompt;
24
24
  - re-inject the entire library for **every** request.
25
25
 
26
- With over 1,1.431 skills, this approach fills the context window before user messages are even added, causing truncation.
26
+ With over 1,1.435 skills, this approach fills the context window before user messages are even added, causing truncation.
27
27
 
28
28
  ---
29
29
 
@@ -20,7 +20,7 @@ This example shows one way to integrate **antigravity-awesome-skills** with a Je
20
20
  - How to enforce a **maximum number of skills per turn** via `maxSkillsPerTurn`.
21
21
  - How to choose whether to **truncate or error** when too many skills are requested via `overflowBehavior`.
22
22
 
23
- This pattern avoids context overflow when you have 1,431+ skills installed.
23
+ This pattern avoids context overflow when you have 1,435+ skills installed.
24
24
 
25
25
  ---
26
26
 
@@ -6,7 +6,7 @@ This document keeps the repository's GitHub-facing discovery copy aligned with t
6
6
 
7
7
  Preferred positioning:
8
8
 
9
- > Installable GitHub library of 1,431+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and other AI coding assistants.
9
+ > Installable GitHub library of 1,435+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and other AI coding assistants.
10
10
 
11
11
  Key framing:
12
12
 
@@ -20,7 +20,7 @@ Key framing:
20
20
 
21
21
  Preferred description:
22
22
 
23
- > Installable GitHub library of 1,431+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.
23
+ > Installable GitHub library of 1,435+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.
24
24
 
25
25
  Preferred homepage:
26
26
 
@@ -28,7 +28,7 @@ Preferred homepage:
28
28
 
29
29
  Preferred social preview:
30
30
 
31
- - use a clean preview image that says `1,431+ Agentic Skills`;
31
+ - use a clean preview image that says `1,435+ Agentic Skills`;
32
32
  - mention Claude Code, Cursor, Codex CLI, and Gemini CLI;
33
33
  - avoid dense text and tiny logos that disappear in social cards.
34
34
 
@@ -69,7 +69,7 @@ For manual updates, you need:
69
69
  The update process refreshes:
70
70
  - Skills index (`skills_index.json`)
71
71
  - Web app skills data (`apps\web-app\public\skills.json`)
72
- - All 1,431+ skills from the skills directory
72
+ - All 1,435+ skills from the skills directory
73
73
 
74
74
  ## When to Update
75
75
 
@@ -673,4 +673,4 @@ Found a skill that should be in a bundle? Or want to create a new bundle? [Open
673
673
 
674
674
  ---
675
675
 
676
- _Last updated: March 2026 | Total Skills: 1,431+ | Total Bundles: 37_
676
+ _Last updated: March 2026 | Total Skills: 1,435+ | Total Bundles: 37_
@@ -12,7 +12,7 @@ Install the library into Claude Code, then invoke focused skills directly in the
12
12
 
13
13
  ## Why use this repo for Claude Code
14
14
 
15
- - It includes 1,431+ skills instead of a narrow single-domain starter pack.
15
+ - It includes 1,435+ skills instead of a narrow single-domain starter pack.
16
16
  - It supports the standard `.claude/skills/` path and the Claude Code plugin marketplace flow.
17
17
  - It also ships generated bundle plugins so teams can install focused packs like `Essentials` or `Security Developer` from the marketplace metadata.
18
18
  - It includes onboarding docs, bundles, and workflows so new users do not need to guess where to begin.
@@ -12,7 +12,7 @@ Install into the Gemini skills path, then ask Gemini to apply one skill at a tim
12
12
 
13
13
  - It installs directly into the expected Gemini skills path.
14
14
  - It includes both core software engineering skills and deeper agent/LLM-oriented skills.
15
- - It helps new users get started with bundles and workflows rather than forcing a cold start from 1,431+ files.
15
+ - It helps new users get started with bundles and workflows rather than forcing a cold start from 1,435+ files.
16
16
  - It is useful whether you want a broad internal skill library or a single repo to test many workflows quickly.
17
17
 
18
18
  ## Install Gemini CLI Skills
@@ -1,4 +1,4 @@
1
- # Getting Started with Antigravity Awesome Skills (V10.5.0)
1
+ # Getting Started with Antigravity Awesome Skills (V10.6.0)
2
2
 
3
3
  **New here? This guide will help you supercharge your AI Agent in 5 minutes.**
4
4
 
@@ -18,7 +18,7 @@ Kiro is AWS's agentic AI IDE that combines:
18
18
 
19
19
  Kiro's agentic capabilities are enhanced by skills that provide:
20
20
 
21
- - **Domain expertise** across 1,431+ specialized areas
21
+ - **Domain expertise** across 1,435+ specialized areas
22
22
  - **Best practices** from Anthropic, OpenAI, Google, Microsoft, and AWS
23
23
  - **Workflow automation** for common development tasks
24
24
  - **AWS-specific patterns** for serverless, infrastructure, and cloud architecture
@@ -14,7 +14,7 @@ If you came in through a **Claude Code** or **Codex** plugin instead of a full l
14
14
 
15
15
  When you ran `npx antigravity-awesome-skills` or cloned the repository, you:
16
16
 
17
- ✅ **Downloaded 1,431+ skill files** to your computer (default: `~/.gemini/antigravity/skills/`; or a custom path like `~/.agent/skills/` if you used `--path`)
17
+ ✅ **Downloaded 1,435+ skill files** to your computer (default: `~/.gemini/antigravity/skills/`; or a custom path like `~/.agent/skills/` if you used `--path`)
18
18
  ✅ **Made them available** to your AI assistant
19
19
  ❌ **Did NOT enable them all automatically** (they're just sitting there, waiting)
20
20
 
@@ -34,7 +34,7 @@ Bundles are **curated groups** of skills organized by role. They help you decide
34
34
 
35
35
  **Analogy:**
36
36
 
37
- - You installed a toolbox with 1,431+ tools (✅ done)
37
+ - You installed a toolbox with 1,435+ tools (✅ done)
38
38
  - Bundles are like **labeled organizer trays** saying: "If you're a carpenter, start with these 10 tools"
39
39
  - You can either **pick skills from the tray** or install that tray as a focused marketplace bundle plugin
40
40
 
@@ -212,7 +212,7 @@ Let's actually use a skill right now. Follow these steps:
212
212
 
213
213
  ## Step 5: Picking Your First Skills (Practical Advice)
214
214
 
215
- Don't try to use all 1,431+ skills at once. Here's a sensible approach:
215
+ Don't try to use all 1,435+ skills at once. Here's a sensible approach:
216
216
 
217
217
  If you want a tool-specific starting point before choosing skills, use:
218
218
 
@@ -343,7 +343,7 @@ Usually no, but if your AI doesn't recognize a skill:
343
343
 
344
344
  ### "Can I load all skills into the model at once?"
345
345
 
346
- No. Even though you have 1,431+ skills installed locally, you should **not** concatenate every `SKILL.md` into a single system prompt or context block.
346
+ No. Even though you have 1,435+ skills installed locally, you should **not** concatenate every `SKILL.md` into a single system prompt or context block.
347
347
 
348
348
  The intended pattern is:
349
349
 
@@ -34,7 +34,7 @@ antigravity-awesome-skills/
34
34
  ├── 📄 CONTRIBUTING.md ← Contributor workflow
35
35
  ├── 📄 CATALOG.md ← Full generated catalog
36
36
 
37
- ├── 📁 skills/ ← 1,431+ skills live here
37
+ ├── 📁 skills/ ← 1,435+ skills live here
38
38
  │ │
39
39
  │ ├── 📁 brainstorming/
40
40
  │ │ └── 📄 SKILL.md ← Skill definition
@@ -47,7 +47,7 @@ antigravity-awesome-skills/
47
47
  │ │ └── 📁 2d-games/
48
48
  │ │ └── 📄 SKILL.md ← Nested skills also supported
49
49
  │ │
50
- │ └── ... (1,431+ total)
50
+ │ └── ... (1,435+ total)
51
51
 
52
52
  ├── 📁 apps/
53
53
  │ └── 📁 web-app/ ← Interactive browser
@@ -100,7 +100,7 @@ antigravity-awesome-skills/
100
100
 
101
101
  ```
102
102
  ┌─────────────────────────┐
103
- │ 1,431+ SKILLS │
103
+ │ 1,435+ SKILLS │
104
104
  └────────────┬────────────┘
105
105
 
106
106
  ┌────────────────────────┼────────────────────────┐
@@ -201,7 +201,7 @@ If you want a workspace-style manual install instead, cloning into `.agent/skill
201
201
  │ ├── 📁 brainstorming/ │
202
202
  │ ├── 📁 stripe-integration/ │
203
203
  │ ├── 📁 react-best-practices/ │
204
- │ └── ... (1,431+ total) │
204
+ │ └── ... (1,435+ total) │
205
205
  └─────────────────────────────────────────┘
206
206
  ```
207
207
 
@@ -0,0 +1,342 @@
1
+ ---
2
+ name: frontend-api-integration-patterns
3
+ description: "Production-ready patterns for integrating frontend applications with backend APIs, including race condition handling, request cancellation, retry strategies, error normalization, and UI state management."
4
+ category: frontend
5
+ risk: safe
6
+ source: community
7
+ date_added: "2026-04-23"
8
+ author: avij1109
9
+ tags:
10
+ - frontend
11
+ - api-integration
12
+ - javascript
13
+ - react
14
+ - async
15
+ tools:
16
+ - claude
17
+ - cursor
18
+ - gemini
19
+ - codex
20
+ ---
21
+
22
+ # Frontend API Integration Patterns
23
+
24
+ ## Overview
25
+
26
+ This skill provides production-ready patterns for integrating frontend applications with backend APIs.
27
+
28
+ Most frontend issues are not caused by APIs being difficult to call, but by **incorrect handling of asynchronous behavior**—leading to race conditions, stale data, duplicated requests, and poor user experience.
29
+
30
+ This skill focuses on **correctness, resilience, and user experience**, not just making API calls work.
31
+
32
+ ---
33
+
34
+ ## When to Use This Skill
35
+
36
+ * Connecting frontend apps (React, React Native, Vue, etc.) to backend APIs
37
+ * Integrating ML/AI endpoints (`/predict`, `/recommend`)
38
+ * Handling asynchronous data in UI
39
+ * Fixing stale data, flickering UI, or duplicate requests
40
+ * Designing scalable frontend API layers
41
+
42
+ ---
43
+
44
+ ## Core Patterns
45
+
46
+ ### 1. API Layer (Separation of Concerns)
47
+
48
+ Centralize API logic and normalize errors.
49
+
50
+ ```js id="k1m7r2"
51
+ export class ApiError extends Error {
52
+ constructor(message, status, payload = null) {
53
+ super(message);
54
+ this.name = "ApiError";
55
+ this.status = status;
56
+ this.payload = payload;
57
+ }
58
+ }
59
+
60
+ export const apiClient = async (url, options = {}) => {
61
+ const res = await fetch(url, {
62
+ headers: { "Content-Type": "application/json" },
63
+ ...options,
64
+ });
65
+
66
+ if (!res.ok) {
67
+ let payload = null;
68
+ try {
69
+ payload = await res.json();
70
+ } catch (_) {}
71
+
72
+ throw new ApiError(
73
+ payload?.message || "Request failed",
74
+ res.status,
75
+ payload
76
+ );
77
+ }
78
+
79
+ // handle empty responses safely (e.g. 204 No Content)
80
+ if (res.status === 204) return null;
81
+
82
+ const text = await res.text();
83
+ return text ? JSON.parse(text) : null;
84
+ };
85
+ ```
86
+
87
+ ---
88
+
89
+ ### 2. Race-Safe State Management
90
+
91
+ Prevent stale responses from overwriting fresh data.
92
+
93
+ ```js id="y7p4ha"
94
+ useEffect(() => {
95
+ let cancelled = false;
96
+
97
+ const load = async () => {
98
+ try {
99
+ setLoading(true);
100
+ setError(null);
101
+
102
+ const result = await getUser();
103
+
104
+ if (!cancelled) setData(result);
105
+ } catch (err) {
106
+ if (!cancelled) setError(err.message);
107
+ } finally {
108
+ if (!cancelled) setLoading(false);
109
+ }
110
+ };
111
+
112
+ load();
113
+
114
+ return () => {
115
+ cancelled = true;
116
+ };
117
+ }, []);
118
+ ```
119
+
120
+ > Use a cancellation flag for non-fetch async logic. For network requests, prefer AbortController.
121
+
122
+ ---
123
+
124
+ ### 3. Request Cancellation (AbortController)
125
+
126
+ Cancel in-flight requests to avoid memory leaks and stale updates.
127
+
128
+ ```js id="l9x2pw"
129
+ useEffect(() => {
130
+ const controller = new AbortController();
131
+
132
+ const load = async () => {
133
+ try {
134
+ const data = await getUser({ signal: controller.signal });
135
+ setData(data);
136
+ } catch (err) {
137
+ if (err.name === "AbortError") return;
138
+ setError(err.message);
139
+ }
140
+ };
141
+
142
+ load();
143
+ return () => controller.abort();
144
+ }, [userId]);
145
+ ```
146
+
147
+ ---
148
+
149
+ ### 4. Retry with Exponential Backoff
150
+
151
+ Retry only transient failures (5xx or network errors).
152
+
153
+ ```js id="8n3zcf"
154
+ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
155
+
156
+ const fetchWithBackoff = async (fn, retries = 3, delay = 300) => {
157
+ try {
158
+ return await fn();
159
+ } catch (err) {
160
+ const isAbort = err.name === "AbortError";
161
+ const isHttpError = typeof err.status === "number";
162
+ const isRetryable = !isAbort && (!isHttpError || err.status >= 500);
163
+
164
+ if (retries <= 0 || !isRetryable) throw err;
165
+
166
+ const nextDelay = delay * 2 + Math.random() * 100;
167
+ await sleep(nextDelay);
168
+
169
+ return fetchWithBackoff(fn, retries - 1, nextDelay);
170
+ }
171
+ };
172
+ ```
173
+
174
+ ---
175
+
176
+ ### 5. Debounced API Calls
177
+
178
+ Avoid excessive API calls (e.g., search inputs).
179
+
180
+ ```js id="i2r7wq"
181
+ const useDebounce = (value, delay = 400) => {
182
+ const [debounced, setDebounced] = useState(value);
183
+
184
+ useEffect(() => {
185
+ const t = setTimeout(() => setDebounced(value), delay);
186
+ return () => clearTimeout(t);
187
+ }, [value, delay]);
188
+
189
+ return debounced;
190
+ };
191
+ ```
192
+
193
+ ---
194
+
195
+ ### 6. Request Deduplication
196
+
197
+ Prevent duplicate API calls across components.
198
+
199
+ ```js id="x8v4km"
200
+ const inFlight = new Map();
201
+
202
+ export const dedupedFetch = (key, fn) => {
203
+ if (inFlight.has(key)) return inFlight.get(key);
204
+
205
+ const promise = fn().finally(() => inFlight.delete(key));
206
+ inFlight.set(key, promise);
207
+ return promise;
208
+ };
209
+ ```
210
+
211
+ ---
212
+
213
+ ## Examples
214
+
215
+ ### Example 1: ML Prediction with Cancellation
216
+
217
+ ```js id="n5q2pt"
218
+ const controllerRef = useRef(null);
219
+
220
+ const handlePredict = async (input) => {
221
+ controllerRef.current?.abort();
222
+ controllerRef.current = new AbortController();
223
+
224
+ try {
225
+ const result = await fetchWithBackoff(() =>
226
+ apiClient("/predict", {
227
+ method: "POST",
228
+ body: JSON.stringify({ text: input }),
229
+ signal: controllerRef.current.signal,
230
+ })
231
+ );
232
+
233
+ setOutput(result);
234
+ } catch (err) {
235
+ if (err.name === "AbortError") return;
236
+ setError(err.message);
237
+ }
238
+ };
239
+ ```
240
+
241
+ ---
242
+
243
+ ### Example 2: Debounced Search
244
+
245
+ ```js id="w4z8yn"
246
+ const debouncedQuery = useDebounce(query, 400);
247
+
248
+ useEffect(() => {
249
+ if (!debouncedQuery) return;
250
+
251
+ const controller = new AbortController();
252
+
253
+ searchAPI(debouncedQuery, { signal: controller.signal })
254
+ .then(setResults)
255
+ .catch((err) => {
256
+ if (err.name !== "AbortError") {
257
+ setError("Search failed. Please try again.");
258
+ }
259
+ });
260
+
261
+ return () => controller.abort();
262
+ }, [debouncedQuery]);
263
+ ```
264
+
265
+ ---
266
+
267
+ ### Example 3: Optimistic UI Update
268
+
269
+ ```js id="q2k9hz"
270
+ const deleteItem = async (id) => {
271
+ const previous = items;
272
+
273
+ setItems((curr) => curr.filter((item) => item.id !== id));
274
+
275
+ try {
276
+ await apiClient(`/items/${id}`, { method: "DELETE" });
277
+ } catch (err) {
278
+ setItems(previous);
279
+ setError("Delete failed. Please try again.");
280
+ }
281
+ };
282
+ ```
283
+
284
+ ---
285
+
286
+ ## Best Practices
287
+
288
+ * ✅ Centralize API logic in a dedicated layer
289
+ * ✅ Normalize errors using a custom error class
290
+ * ✅ Always handle loading, error, and success states
291
+ * ✅ Use AbortController for request cancellation
292
+ * ✅ Retry only transient failures (5xx)
293
+ * ✅ Use debouncing for input-driven APIs
294
+ * ✅ Deduplicate identical requests
295
+
296
+ ---
297
+
298
+ ## Anti-Patterns
299
+
300
+ * ❌ Retrying 4xx errors
301
+ * ❌ No request cancellation (memory leaks)
302
+ * ❌ Race-condition-prone state updates
303
+ * ❌ Swallowing errors silently
304
+ * ❌ Global loading/error state for multiple requests
305
+ * ❌ Calling APIs directly inside components repeatedly
306
+
307
+ ---
308
+
309
+ ## Common Pitfalls
310
+
311
+ **Problem:** UI shows stale data
312
+ **Solution:** Use cancellation or guard against outdated responses
313
+
314
+ **Problem:** Too many API calls on input
315
+ **Solution:** Use debouncing + cancellation
316
+
317
+ **Problem:** Duplicate requests from multiple components
318
+ **Solution:** Use request deduplication
319
+
320
+ **Problem:** Server overload during retry
321
+ **Solution:** Use exponential backoff
322
+
323
+ **Problem:** State updates after component unmount
324
+ **Solution:** Use AbortController cleanup
325
+
326
+ ---
327
+
328
+ ## Limitations
329
+
330
+ * These examples use vanilla JavaScript patterns; adapt them to your framework's data-fetching library when using React Query, SWR, Apollo, Relay, or similar tools.
331
+ * Do not retry non-idempotent mutations unless the backend provides idempotency keys or another duplicate-safe contract.
332
+ * Do not expose privileged API keys in frontend code; proxy sensitive requests through a backend.
333
+
334
+ ---
335
+
336
+ ## Additional Resources
337
+
338
+ * https://developer.mozilla.org/en-US/docs/Web/API/AbortController
339
+ * https://react.dev
340
+ * https://axios-http.com
341
+
342
+ ---
@@ -0,0 +1,113 @@
1
+ ---
2
+ name: lambda-lang
3
+ description: "Native agent-to-agent language for compact multi-agent messaging. A shared tongue agents speak directly, not a translation layer. 340+ atoms across 7 domains; 3x smaller than natural language."
4
+ category: ai-agents
5
+ risk: safe
6
+ source: community
7
+ source_repo: voidborne-d/lambda-lang
8
+ source_type: community
9
+ date_added: "2026-04-24"
10
+ author: voidborne-d
11
+ tags:
12
+ - agent-to-agent
13
+ - communication
14
+ - protocol
15
+ - compression
16
+ - multi-agent
17
+ tools:
18
+ - claude
19
+ ---
20
+
21
+ # Λ (Lambda) Language
22
+
23
+ **Lambda is not a translation protocol. It is a native language for agents.**
24
+
25
+ Agents do not need to produce grammatically correct English to coordinate — they need to understand each other. Lambda is the shared vocabulary that makes that possible: compact, unambiguous, machine-native. Compression (3x vs natural language, 4.6x vs JSON on single messages) is a side effect of removing human redundancy, not the goal.
26
+
27
+ ## When to Use This Skill
28
+
29
+ - Use for agent-to-agent messaging in A2A protocols, orchestrators, task delegation, or handoff pipelines.
30
+ - Use when logging structured coordination signals where every token costs money (heartbeats, acknowledgements, error classes, session state).
31
+ - Use when both sides of a channel speak Λ — do not use against humans or any surface requiring legal/exact natural language.
32
+
33
+ ## How It Works
34
+
35
+ ### Step 1: Recognize the Syntax
36
+
37
+ Lambda messages are built from atoms. Every atom is a 2-character code mapped to a concept — not to an English word. The structure is Type → Entity → Verb → Object, with prefixes marking intent:
38
+
39
+ - `?` — query (e.g. `?Uk/co` — query: "does this user have consciousness?")
40
+ - `!` — assertion / declaration (e.g. `!It>Ie` — "self reflects, therefore self exists")
41
+ - `#` — state / tag
42
+ - `>` — implication / flow
43
+ - `/` — binding / scope
44
+
45
+ ### Step 2: Pick the Right Domain
46
+
47
+ Lambda ships 340+ atoms across 7 domains. Pick atoms from the domain that fits your channel:
48
+
49
+ - **core** — universal atoms (always available)
50
+ - **code** — software engineering, build, test, deploy
51
+ - **evo** — agent evolution, gene, capsule, mutation, rollback
52
+ - **a2a** — node, heartbeat, publish, subscribe, route, transport, session, cache, broadcast, discover (39 atoms)
53
+ - **emotion** — affective state, drive, appraisal
54
+ - **social** — trust, alignment, reputation, coordination
55
+ - **general** — everything else
56
+
57
+ ### Step 3: Emit and Parse
58
+
59
+ Both agents need the same atom table loaded. Lossy decoding is fine: if A says `!It>Ie` and B understands "self reflects, therefore self exists," communication succeeded — the exact English phrasing is irrelevant.
60
+
61
+ ## Examples
62
+
63
+ ### Example 1: A2A Heartbeat
64
+
65
+ ```
66
+ !Nd/hb#ok (node heartbeat: ok)
67
+ ?Nd/hb (query: is the node alive?)
68
+ !Nd/hb#fl (node heartbeat: failed)
69
+ ```
70
+
71
+ ### Example 2: Task Dispatch
72
+
73
+ ```
74
+ !Tk>Ag2#rd (task routed to agent 2, ready)
75
+ ?Tk/st (query task status)
76
+ !Tk#dn (task done)
77
+ ```
78
+
79
+ ### Example 3: Evolution Capsule
80
+
81
+ ```
82
+ !Ev/ca>vl#pd (evolution capsule validated, pending solidification)
83
+ !Ev/ca#rb (capsule rolled back)
84
+ ```
85
+
86
+ ## Best Practices
87
+
88
+ - Use Lambda only on agent-to-agent channels where both sides speak it.
89
+ - Load the atom table once and cache it — atoms are stable across a version.
90
+ - Prefer atoms over freeform strings even when the atom looks cryptic; the point is machine parseability.
91
+ - Use `?` before taking action on uncertain state, `!` when asserting; the prefix is the load-bearing semantic.
92
+ - Version the atom table (`lambda-lang v2.0`) in any handshake so mismatched agents can negotiate.
93
+
94
+ ## Limitations
95
+
96
+ - Lambda is not meant for human consumption. Do not emit Lambda on user-facing channels.
97
+ - Lossy decoding is a feature, not a bug — do not use Lambda for legally or numerically exact exchanges (prices, IDs, quantities). Wrap those as native payload fields and use Lambda only for the coordination envelope.
98
+ - Atom collisions are possible if custom atoms are added without registration; stick to the canonical atom table or namespace custom atoms.
99
+
100
+ ## Security & Safety Notes
101
+
102
+ - Lambda itself is a vocabulary — no shell commands, no network calls, no credential handling. No additional safety gates required beyond the transport it rides on (HTTP, queue, MCP, etc.).
103
+ - When mixing Lambda with user input, treat Lambda atoms as pre-validated and user strings as untrusted; do not concatenate without escaping into downstream systems.
104
+
105
+ ## Related Skills
106
+
107
+ - `@session-memory` — complementary persistent memory across agent restarts; Lambda is the message format, session-memory is the state store.
108
+ - `@humanize-chinese` — sibling project for Chinese text; Lambda is agent-to-agent, humanize-chinese is human-facing.
109
+
110
+ ## Reference
111
+
112
+ - Source: https://github.com/voidborne-d/lambda-lang
113
+ - Benchmarks, full atom tables, and Go reference implementation live in the source repo.
@@ -255,7 +255,7 @@ Note: The MCP server uses the same Patchright library but via TypeScript/npm eco
255
255
 
256
256
  ### Dependencies
257
257
  - **patchright==1.55.2**: Browser automation
258
- - **python-dotenv==1.0.0**: Environment configuration
258
+ - **python-dotenv==1.2.2**: Environment configuration
259
259
  - Automatically installed in `.venv` on first use
260
260
 
261
261
  ### Data Storage
@@ -7,4 +7,4 @@
7
7
  patchright==1.55.2
8
8
 
9
9
  # Environment management
10
- python-dotenv==1.0.0
10
+ python-dotenv==1.2.2
@@ -0,0 +1,261 @@
1
+ ---
2
+ name: skyvern-browser-automation
3
+ description: "AI-powered browser automation — navigate sites, fill forms, extract structured data, log in with stored credentials, and build reusable workflows."
4
+ category: browser-automation
5
+ risk: safe
6
+ source: community
7
+ source_repo: Skyvern-AI/skyvern
8
+ source_type: official
9
+ date_added: "2026-04-23"
10
+ author: mark1ian
11
+ tags: [browser-automation, mcp, web-scraping, form-filling, ai-agents, workflow-automation]
12
+ tools: [claude, cursor, gemini, codex]
13
+ license: "AGPL-3.0"
14
+ license_source: "https://github.com/Skyvern-AI/skyvern/blob/main/LICENSE"
15
+ ---
16
+
17
+ # Skyvern Browser Automation -- CLI Judgment Procedure
18
+
19
+ Skyvern uses AI to navigate and interact with websites. Every command below is a runnable `skyvern <command>` invocation.
20
+
21
+ ## When to Use This Skill
22
+
23
+ - Use when you need AI-assisted browser automation for navigation, extraction, form filling, login flows, or reusable website workflows.
24
+ - Use when deterministic selectors are unavailable and Skyvern's visual/a11y reasoning can identify page controls.
25
+ - Use when a one-off browser task should become a repeatable workflow with run history and verification.
26
+
27
+ ## Step 1: Classify Your Task (ALWAYS do this first)
28
+
29
+ | Classification | Signal | CLI Command | Cost | What Happens |
30
+ |---|---|---|---|---|
31
+ | Quick check (yes/no) | "is the user logged in?" | `skyvern browser validate` | 1 LLM + screenshots | Lightweight validation (2 steps max), returns boolean. Cheapest AI option. |
32
+ | Quick inspection | "what does the page show?" | `skyvern browser extract` | 1 LLM + screenshots | Dedicated extraction LLM + schema validation + caching. |
33
+ | Single action (known target) | "click #submit" | `skyvern browser click/type` | 0 LLM | Deterministic Playwright. No AI. Fastest. |
34
+ | Single action (unknown target) | "click the submit button" | `skyvern browser act` | 2-3 LLM, no screenshots | No screenshots in reasoning. Economy a11y tree. For visual targets, use hybrid mode (selector + intent). |
35
+ | Same-page multi-step | "fill the form and submit" | `skyvern browser act` or primitive chain | 2-3 LLM or 0 LLM | Use `act` when labels are clear. Use click/type/select directly when you know selectors. |
36
+ | Throwaway autonomous trial | "try this once", "see if this works" | `skyvern browser run-task` | Higher | One-off autonomous agent for exploration. Do not use for recurring or multi-page production automations. |
37
+ | Multi-page or reusable automation | "navigate a multi-page wizard", "set this up", "automate this weekly" | `skyvern workflow create` + `run` | N LLM + screenshots | Build a workflow with one block per step. Each block gets visual reasoning, verification, and reusable run history. |
38
+
39
+ **MCP note:** if you are using the Skyvern MCP instead of the CLI, prefer `observe + execute` for same-page multi-step UI work. The CLI does not expose that pair directly.
40
+
41
+ ## Step 2: Apply These Decision Rules
42
+
43
+ 1. If the prompt includes a selector, id, XPath, or exact field target, use browser primitives -- not `act`.
44
+ 2. If you only need a yes/no answer, use `validate` -- not `extract` or `act`.
45
+ 3. If the work stays on one page and labels are clear, use `act` or a primitive chain.
46
+ 4. If the user says `try this once`, `see if this works`, or clearly wants a one-off exploratory trial, use `run-task`.
47
+ 5. If the task spans multiple pages and is meant to be reusable, scheduled, repeatable, or explicitly `set up` as automation, use `workflow create`.
48
+ 6. Never type passwords. Always use stored credentials with `skyvern browser login`.
49
+
50
+ ## Step 3: Create a Session
51
+
52
+ Every browser command needs a session. Create one first:
53
+
54
+ ```bash
55
+ # Cloud session (default -- works for public URLs)
56
+ skyvern browser session create --timeout 30
57
+
58
+ # Local session (for localhost URLs or self-hosted mode)
59
+ skyvern browser session create --local --timeout 30
60
+
61
+ # Connect to existing browser via CDP
62
+ skyvern browser session connect --cdp "ws://localhost:9222"
63
+ ```
64
+
65
+ Session state persists between commands. After `session create`, subsequent commands auto-attach.
66
+ Override with `--session pbs_...`. Close when done: `skyvern browser session close`.
67
+
68
+ ## Step 4: Execute by Classification
69
+
70
+ ### Quick check (yes/no)
71
+
72
+ ```bash
73
+ skyvern browser validate --prompt "Is the user logged in? Look for a dashboard or avatar."
74
+ ```
75
+
76
+ Returns true/false. Cheapest AI option -- prefer over extract or act for boolean checks.
77
+
78
+ ### Quick inspection
79
+
80
+ ```bash
81
+ skyvern browser extract \
82
+ --prompt "Extract all product names and prices" \
83
+ --schema '{"type":"object","properties":{"items":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"price":{"type":"string"}}}}}}'
84
+ ```
85
+
86
+ Uses screenshots + dedicated extraction LLM. Better than screenshot+read because Skyvern's LLM interprets the page.
87
+
88
+ ### Single action (known target)
89
+
90
+ ```bash
91
+ skyvern browser click --selector "#submit-btn"
92
+ skyvern browser type --text "user@co.com" --selector "#email"
93
+ skyvern browser select --value "US" --intent "the country dropdown"
94
+ ```
95
+
96
+ Deterministic. No AI. Three targeting modes:
97
+ 1. **Intent**: `--intent "the Submit button"` (AI finds element)
98
+ 2. **Selector**: `--selector "#submit-btn"` (CSS/XPath, deterministic)
99
+ 3. **Hybrid**: both (selector narrows, AI confirms)
100
+
101
+ ### Single action (unknown target)
102
+
103
+ ```bash
104
+ skyvern browser act --prompt "Click the Sign In button"
105
+ skyvern browser act --prompt "Close the cookie banner, then click Sign In"
106
+ ```
107
+
108
+ **Warning:** act has NO screenshots in its LLM reasoning. It uses an economy accessibility tree.
109
+ Fine for well-labeled elements. For visually complex targets, use MCP observe+click or hybrid mode.
110
+
111
+ ### Same-page multi-step
112
+
113
+ ```bash
114
+ skyvern browser act --prompt "Fill the shipping form and click Continue"
115
+ ```
116
+
117
+ Use `act` when the fields and buttons are clearly labeled and the flow stays on one page.
118
+ If you need tighter control, break the work into `click`, `type`, `select`, `press-key`, and `wait`.
119
+
120
+ ### Throwaway autonomous trial
121
+
122
+ ```bash
123
+ skyvern browser run-task \
124
+ --url "https://example.com" \
125
+ --prompt "Check whether the checkout flow works end to end and extract the confirmation number"
126
+ ```
127
+
128
+ Use `run-task` to prove feasibility or do one-off exploration. If the task becomes important enough
129
+ to rerun, debug, or share, convert it to a workflow.
130
+
131
+ ### Multi-page or reusable automation — build a workflow with one block per step
132
+
133
+ ```bash
134
+ skyvern workflow create --definition @checkout-workflow.yaml
135
+ skyvern workflow run --id wpid_123 --wait
136
+ skyvern workflow status --run-id wr_789
137
+ ```
138
+
139
+ Each navigation block runs with visual reasoning + verification. Split complex flows into
140
+ multiple blocks (one per page/step). First run uses AI; subsequent runs replay cached scripts.
141
+
142
+ ### Repeated/production
143
+
144
+ ```bash
145
+ skyvern workflow create --definition @workflow.yaml
146
+ skyvern workflow run --id wpid_123 --params '{"email":"user@co.com"}'
147
+ skyvern workflow status --run-id wr_789
148
+ ```
149
+
150
+ Split into one block per step. Use **navigation** blocks for actions, **extraction** for data.
151
+ First run uses AI; subsequent runs replay a cached script (10-100x faster).
152
+ Set `--run-with agent` to force AI mode for debugging.
153
+
154
+ ## Step 5: Verify
155
+
156
+ Always verify after page-changing actions:
157
+
158
+ ```bash
159
+ skyvern browser screenshot # visual check
160
+ skyvern browser validate --prompt "Was the form submitted successfully?" # boolean assertion
161
+ skyvern browser evaluate --expression "document.title" # JS state check
162
+ ```
163
+
164
+ ## Step 6: Error Recovery
165
+
166
+ | Problem | Fix |
167
+ |---------|-----|
168
+ | Action clicked wrong element | Add context to prompt. Use hybrid mode (selector + intent). |
169
+ | Extraction returns empty | Wait for content. Relax required fields. Check row count first. |
170
+ | Login passes but next step fails | Ensure same session. Add post-login validate check. |
171
+ | Element not found | Add wait: `skyvern browser wait --selector "#el" --state visible` |
172
+ | Overloaded prompt | Split into smaller goals -- one intent per command. |
173
+
174
+ ## Credentials
175
+
176
+ NEVER type passwords through `skyvern browser type` or `act`. Always use stored credentials:
177
+
178
+ ```bash
179
+ skyvern credentials add --name "my-login" --type password --username "user@co.com"
180
+ skyvern credential list # find the credential ID
181
+ skyvern browser login --url "https://login.example.com" --credential-id cred_123
182
+ ```
183
+
184
+ Types: `password`, `credit_card`, `secret`. Also supports bitwarden, 1password, and azure_vault providers.
185
+
186
+ ## Workflow Quick Reference
187
+
188
+ ```bash
189
+ skyvern workflow create --definition @workflow.yaml # create
190
+ skyvern workflow run --id wpid_123 --wait # run and wait
191
+ skyvern workflow status --run-id wr_789 # check status
192
+ skyvern workflow list --search "invoice" # find workflows
193
+ skyvern block schema --type navigation # discover block types
194
+ skyvern block validate --block-json @block.json # validate before creating
195
+ ```
196
+
197
+ Engine: known path = 1.0 (default). Dynamic planning = 2.0. Split into multiple 1.0 blocks when in doubt.
198
+ Status lifecycle: `created -> queued -> running -> completed | failed | canceled | terminated | timed_out`
199
+
200
+ ## Common Patterns
201
+
202
+ **Login flow:**
203
+ ```bash
204
+ skyvern credential list # find credential ID
205
+ skyvern browser session create
206
+ skyvern browser navigate --url "https://login.example.com"
207
+ skyvern browser login --url "https://login.example.com" --credential-id cred_123
208
+ skyvern browser validate --prompt "Is the user logged in?"
209
+ skyvern browser screenshot
210
+ ```
211
+
212
+ **Pagination loop:**
213
+ ```bash
214
+ skyvern browser extract --prompt "Extract all rows"
215
+ skyvern browser validate --prompt "Is there a Next button that is not disabled?"
216
+ # If true:
217
+ skyvern browser act --prompt "Click the Next page button"
218
+ # Repeat extraction. Stop when: no next button, duplicate first row, or max page limit.
219
+ ```
220
+
221
+ **Debugging:**
222
+ ```bash
223
+ skyvern browser screenshot # visual state
224
+ skyvern browser evaluate --expression "document.title"
225
+ skyvern browser evaluate --expression "document.querySelectorAll('table tr').length"
226
+ ```
227
+
228
+ ## Limitations
229
+
230
+ - Do not use Skyvern to bypass site access controls, rate limits, consent gates, or terms that prohibit automation.
231
+ - Browser automation can change remote state; confirm user intent before submitting forms, purchasing, deleting, or sending messages.
232
+ - Prefer deterministic selectors for stable production flows; AI actions can misread unlabeled or visually ambiguous controls.
233
+ - Store credentials only in the supported credential vaults and never type passwords directly through `type` or `act`.
234
+
235
+ ## Agent Mode
236
+
237
+ All commands accept `--json` for structured output. Set `SKYVERN_NON_INTERACTIVE=1` to prevent prompts.
238
+ Use `skyvern capabilities --json` for full command discovery. See [references/agent-mode.md](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/agent-mode.md).
239
+
240
+ ## Deep-Dive References
241
+
242
+ | Reference | Content |
243
+ |-----------|---------|
244
+ | [`references/prompt-writing.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/prompt-writing.md) | Prompt templates and anti-patterns |
245
+ | [`references/engines.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/engines.md) | When to use tasks vs workflows |
246
+ | [`references/schemas.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/schemas.md) | JSON schema patterns for extraction |
247
+ | [`references/pagination.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/pagination.md) | Pagination strategy and guardrails |
248
+ | [`references/block-types.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/block-types.md) | Workflow block type details with examples |
249
+ | [`references/parameters.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/parameters.md) | Parameter design and variable usage |
250
+ | [`references/ai-actions.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/ai-actions.md) | AI action patterns and examples |
251
+ | [`references/precision-actions.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/precision-actions.md) | Intent-only, selector-only, hybrid modes |
252
+ | [`references/credentials.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/credentials.md) | Credential naming, lifecycle, safety |
253
+ | [`references/sessions.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/sessions.md) | Session reuse and freshness decisions |
254
+ | [`references/common-failures.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/common-failures.md) | Failure pattern catalog with fixes |
255
+ | [`references/screenshots.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/screenshots.md) | Screenshot-led debugging workflow |
256
+ | [`references/status-lifecycle.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/status-lifecycle.md) | Run status states and guidance |
257
+ | [`references/rerun-playbook.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/rerun-playbook.md) | Rerun procedures and comparison |
258
+ | [`references/complex-inputs.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/complex-inputs.md) | Date pickers, uploads, dropdowns |
259
+ | [`references/tool-map.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/tool-map.md) | Complete tool inventory by outcome |
260
+ | [`references/cli-parity.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/cli-parity.md) | CLI/MCP mapping and agent-aware features |
261
+ | [`references/quick-start-patterns.md`](https://github.com/Skyvern-AI/skyvern/blob/main/skyvern/cli/skills/skyvern/references/quick-start-patterns.md) | Quick start examples, common patterns, and workflow templates |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "opencode-skills-collection",
3
- "version": "2.0.215",
3
+ "version": "2.0.217",
4
4
  "description": "OpenCode CLI plugin that automatically downloads and keeps skills up to date.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
package/skills_index.json CHANGED
@@ -6465,6 +6465,28 @@
6465
6465
  "reasons": []
6466
6466
  }
6467
6467
  },
6468
+ {
6469
+ "id": "bulletmind",
6470
+ "path": "skills/bulletmind",
6471
+ "category": "writing",
6472
+ "name": "bulletmind",
6473
+ "description": "Convert input into clean, structured, hierarchical bullet points for summarization, note-taking, and structured thinking.",
6474
+ "risk": "safe",
6475
+ "source": "community",
6476
+ "date_added": "2026-04-21",
6477
+ "plugin": {
6478
+ "targets": {
6479
+ "codex": "supported",
6480
+ "claude": "supported"
6481
+ },
6482
+ "setup": {
6483
+ "type": "none",
6484
+ "summary": "",
6485
+ "docs": null
6486
+ },
6487
+ "reasons": []
6488
+ }
6489
+ },
6468
6490
  {
6469
6491
  "id": "bullmq-specialist",
6470
6492
  "path": "skills/bullmq-specialist",
@@ -13097,6 +13119,28 @@
13097
13119
  "reasons": []
13098
13120
  }
13099
13121
  },
13122
+ {
13123
+ "id": "frontend-api-integration-patterns",
13124
+ "path": "skills/frontend-api-integration-patterns",
13125
+ "category": "frontend",
13126
+ "name": "frontend-api-integration-patterns",
13127
+ "description": "Production-ready patterns for integrating frontend applications with backend APIs, including race condition handling, request cancellation, retry strategies, error normalization, and UI state management.",
13128
+ "risk": "safe",
13129
+ "source": "community",
13130
+ "date_added": "2026-04-23",
13131
+ "plugin": {
13132
+ "targets": {
13133
+ "codex": "supported",
13134
+ "claude": "supported"
13135
+ },
13136
+ "setup": {
13137
+ "type": "none",
13138
+ "summary": "",
13139
+ "docs": null
13140
+ },
13141
+ "reasons": []
13142
+ }
13143
+ },
13100
13144
  {
13101
13145
  "id": "frontend-design",
13102
13146
  "path": "skills/frontend-design",
@@ -16685,6 +16729,28 @@
16685
16729
  "reasons": []
16686
16730
  }
16687
16731
  },
16732
+ {
16733
+ "id": "lambda-lang",
16734
+ "path": "skills/lambda-lang",
16735
+ "category": "ai-agents",
16736
+ "name": "lambda-lang",
16737
+ "description": "Native agent-to-agent language for compact multi-agent messaging. A shared tongue agents speak directly, not a translation layer. 340+ atoms across 7 domains; 3x smaller than natural language.",
16738
+ "risk": "safe",
16739
+ "source": "community",
16740
+ "date_added": "2026-04-24",
16741
+ "plugin": {
16742
+ "targets": {
16743
+ "codex": "supported",
16744
+ "claude": "supported"
16745
+ },
16746
+ "setup": {
16747
+ "type": "none",
16748
+ "summary": "",
16749
+ "docs": null
16750
+ },
16751
+ "reasons": []
16752
+ }
16753
+ },
16688
16754
  {
16689
16755
  "id": "lambdatest-agent-skills",
16690
16756
  "path": "skills/lambdatest-agent-skills",
@@ -26304,6 +26370,28 @@
26304
26370
  "reasons": []
26305
26371
  }
26306
26372
  },
26373
+ {
26374
+ "id": "skyvern-browser-automation",
26375
+ "path": "skills/skyvern-browser-automation",
26376
+ "category": "browser-automation",
26377
+ "name": "skyvern-browser-automation",
26378
+ "description": "AI-powered browser automation \u2014 navigate sites, fill forms, extract structured data, log in with stored credentials, and build reusable workflows.",
26379
+ "risk": "safe",
26380
+ "source": "community",
26381
+ "date_added": "2026-04-23",
26382
+ "plugin": {
26383
+ "targets": {
26384
+ "codex": "supported",
26385
+ "claude": "supported"
26386
+ },
26387
+ "setup": {
26388
+ "type": "none",
26389
+ "summary": "",
26390
+ "docs": null
26391
+ },
26392
+ "reasons": []
26393
+ }
26394
+ },
26307
26395
  {
26308
26396
  "id": "slack-automation",
26309
26397
  "path": "skills/slack-automation",