@google/gemini-cli-core 0.55.0 → 0.55.1
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/dist/docs/behavioral-evals.md +185 -0
- package/dist/docs/changelogs/index.md +18 -0
- package/dist/docs/changelogs/latest.md +59 -31
- package/dist/docs/changelogs/preview.md +45 -3
- package/dist/docs/sidebar.json +4 -0
- package/dist/google-gemini-cli-core-0.56.0-nightly.20260806.g761f604c1.tgz +0 -0
- package/dist/src/agents/agentLoader.d.ts +18 -18
- package/dist/src/generated/git-commit.d.ts +2 -2
- package/dist/src/generated/git-commit.js +2 -2
- package/dist/src/mcp/oauth-provider.js +10 -7
- package/dist/src/mcp/oauth-provider.js.map +1 -1
- package/dist/src/mcp/oauth-provider.test.js +147 -0
- package/dist/src/mcp/oauth-provider.test.js.map +1 -1
- package/dist/src/skills/builtin/antigravity-support/SKILL.md +55 -18
- package/dist/src/skills/builtin/skill-creator/SKILL.md +221 -84
- package/dist/src/utils/oauth-flow.d.ts +6 -0
- package/dist/src/utils/oauth-flow.js +33 -2
- package/dist/src/utils/oauth-flow.js.map +1 -1
- package/dist/src/utils/oauth-flow.test.js +81 -0
- package/dist/src/utils/oauth-flow.test.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: skill-creator
|
|
3
|
-
description:
|
|
3
|
+
description:
|
|
4
|
+
Guide for creating effective skills. This skill should be used when users want
|
|
5
|
+
to create a new skill (or update an existing skill) that extends Gemini CLI's
|
|
6
|
+
capabilities with specialized knowledge, workflows, or tool integrations.
|
|
4
7
|
---
|
|
5
8
|
|
|
6
9
|
# Skill Creator
|
|
@@ -9,22 +12,33 @@ This skill provides guidance for creating effective skills.
|
|
|
9
12
|
|
|
10
13
|
## About Skills
|
|
11
14
|
|
|
12
|
-
Skills are modular, self-contained packages that extend Gemini CLI's
|
|
15
|
+
Skills are modular, self-contained packages that extend Gemini CLI's
|
|
16
|
+
capabilities by providing specialized knowledge, workflows, and tools. Think of
|
|
17
|
+
them as "onboarding guides" for specific domains or tasks—they transform Gemini
|
|
18
|
+
CLI from a general-purpose agent into a specialized agent equipped with
|
|
19
|
+
procedural knowledge that no model can fully possess.
|
|
13
20
|
|
|
14
21
|
### What Skills Provide
|
|
15
22
|
|
|
16
23
|
1. Specialized workflows - Multi-step procedures for specific domains
|
|
17
|
-
2. Tool integrations - Instructions for working with specific file formats or
|
|
24
|
+
2. Tool integrations - Instructions for working with specific file formats or
|
|
25
|
+
APIs
|
|
18
26
|
3. Domain expertise - Company-specific knowledge, schemas, business logic
|
|
19
|
-
4. Bundled resources - Scripts, references, and assets for complex and
|
|
27
|
+
4. Bundled resources - Scripts, references, and assets for complex and
|
|
28
|
+
repetitive tasks
|
|
20
29
|
|
|
21
30
|
## Core Principles
|
|
22
31
|
|
|
23
32
|
### Concise is Key
|
|
24
33
|
|
|
25
|
-
The context window is a public good. Skills share the context window with
|
|
34
|
+
The context window is a public good. Skills share the context window with
|
|
35
|
+
everything else Gemini CLI needs: system prompt, conversation history, other
|
|
36
|
+
Skills' metadata, and the actual user request.
|
|
26
37
|
|
|
27
|
-
**Default assumption: Gemini CLI is already very smart.** Only add context
|
|
38
|
+
**Default assumption: Gemini CLI is already very smart.** Only add context
|
|
39
|
+
Gemini CLI doesn't already have. Challenge each piece of information: "Does
|
|
40
|
+
Gemini CLI really need this explanation?" and "Does this paragraph justify its
|
|
41
|
+
token cost?"
|
|
28
42
|
|
|
29
43
|
Prefer concise examples over verbose explanations.
|
|
30
44
|
|
|
@@ -32,13 +46,19 @@ Prefer concise examples over verbose explanations.
|
|
|
32
46
|
|
|
33
47
|
Match the level of specificity to the task's fragility and variability:
|
|
34
48
|
|
|
35
|
-
**High freedom (text-based instructions)**: Use when multiple approaches are
|
|
49
|
+
**High freedom (text-based instructions)**: Use when multiple approaches are
|
|
50
|
+
valid, decisions depend on context, or heuristics guide the approach.
|
|
36
51
|
|
|
37
|
-
**Medium freedom (pseudocode or scripts with parameters)**: Use when a preferred
|
|
52
|
+
**Medium freedom (pseudocode or scripts with parameters)**: Use when a preferred
|
|
53
|
+
pattern exists, some variation is acceptable, or configuration affects behavior.
|
|
38
54
|
|
|
39
|
-
**Low freedom (specific scripts, few parameters)**: Use when operations are
|
|
55
|
+
**Low freedom (specific scripts, few parameters)**: Use when operations are
|
|
56
|
+
fragile and error-prone, consistency is critical, or a specific sequence must be
|
|
57
|
+
followed.
|
|
40
58
|
|
|
41
|
-
Think of Gemini CLI as exploring a path: a narrow bridge with cliffs needs
|
|
59
|
+
Think of Gemini CLI as exploring a path: a narrow bridge with cliffs needs
|
|
60
|
+
specific guardrails (low freedom), while an open field allows many routes (high
|
|
61
|
+
freedom).
|
|
42
62
|
|
|
43
63
|
### Anatomy of a Skill
|
|
44
64
|
|
|
@@ -61,45 +81,75 @@ skill-name/
|
|
|
61
81
|
|
|
62
82
|
Every SKILL.md consists of:
|
|
63
83
|
|
|
64
|
-
- **Frontmatter** (YAML): Contains `name` and `description` fields. These are
|
|
65
|
-
|
|
84
|
+
- **Frontmatter** (YAML): Contains `name` and `description` fields. These are
|
|
85
|
+
the only fields that Gemini CLI reads to determine when the skill gets used,
|
|
86
|
+
thus it is very important to be clear and comprehensive in describing what the
|
|
87
|
+
skill is, and when it should be used.
|
|
88
|
+
- **Body** (Markdown): Instructions and guidance for using the skill. Only
|
|
89
|
+
loaded AFTER the skill triggers (if at all).
|
|
66
90
|
|
|
67
91
|
#### Bundled Resources (optional)
|
|
68
92
|
|
|
69
93
|
##### Scripts (`scripts/`)
|
|
70
94
|
|
|
71
|
-
Executable code (Node.js/Python/Bash/etc.) for tasks that require deterministic
|
|
95
|
+
Executable code (Node.js/Python/Bash/etc.) for tasks that require deterministic
|
|
96
|
+
reliability or are repeatedly rewritten.
|
|
72
97
|
|
|
73
|
-
- **When to include**: When the same code is being rewritten repeatedly or
|
|
98
|
+
- **When to include**: When the same code is being rewritten repeatedly or
|
|
99
|
+
deterministic reliability is needed
|
|
74
100
|
- **Example**: `scripts/rotate_pdf.cjs` for PDF rotation tasks
|
|
75
|
-
- **Benefits**: Token efficient, deterministic, may be executed without loading
|
|
76
|
-
|
|
77
|
-
- **
|
|
101
|
+
- **Benefits**: Token efficient, deterministic, may be executed without loading
|
|
102
|
+
into context
|
|
103
|
+
- **Agentic Ergonomics**: Scripts must output LLM-friendly stdout. Suppress
|
|
104
|
+
standard tracebacks. Output clear, concise success/failure messages, and
|
|
105
|
+
paginate or truncate outputs (e.g., "Success: First 50 lines of processed
|
|
106
|
+
file...") to prevent context window overflow.
|
|
107
|
+
- **Note**: Scripts may still need to be read by Gemini CLI for patching or
|
|
108
|
+
environment-specific adjustments
|
|
78
109
|
|
|
79
110
|
##### References (`references/`)
|
|
80
111
|
|
|
81
|
-
Documentation and reference material intended to be loaded as needed into
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
- **
|
|
85
|
-
|
|
86
|
-
- **
|
|
87
|
-
|
|
112
|
+
Documentation and reference material intended to be loaded as needed into
|
|
113
|
+
context to inform Gemini CLI's process and thinking.
|
|
114
|
+
|
|
115
|
+
- **When to include**: For documentation that Gemini CLI should reference while
|
|
116
|
+
working
|
|
117
|
+
- **Examples**: `references/finance.md` for financial schemas,
|
|
118
|
+
`references/mnda.md` for company NDA template, `references/policies.md` for
|
|
119
|
+
company policies, `references/api_docs.md` for API specifications
|
|
120
|
+
- **Use cases**: Database schemas, API documentation, domain knowledge, company
|
|
121
|
+
policies, detailed workflow guides
|
|
122
|
+
- **Benefits**: Keeps SKILL.md lean, loaded only when Gemini CLI determines it's
|
|
123
|
+
needed
|
|
124
|
+
- **Best practice**: If files are large (>10k words), include grep search
|
|
125
|
+
patterns in SKILL.md
|
|
88
126
|
- **Avoid duplication**: Information should live in either SKILL.md or
|
|
89
|
-
references files, not both. Prefer references files for detailed information
|
|
127
|
+
references files, not both. Prefer references files for detailed information
|
|
128
|
+
unless it's truly core to the skill—this keeps SKILL.md lean while making
|
|
129
|
+
information discoverable without hogging the context window. Keep only
|
|
130
|
+
essential procedural instructions and workflow guidance in SKILL.md; move
|
|
131
|
+
detailed reference material, schemas, and examples to references files.
|
|
90
132
|
|
|
91
133
|
##### Assets (`assets/`)
|
|
92
134
|
|
|
93
|
-
Files not intended to be loaded into context, but rather used within the output
|
|
135
|
+
Files not intended to be loaded into context, but rather used within the output
|
|
136
|
+
Gemini CLI produces.
|
|
94
137
|
|
|
95
|
-
- **When to include**: When the skill needs files that will be used in the final
|
|
96
|
-
|
|
97
|
-
- **
|
|
98
|
-
|
|
138
|
+
- **When to include**: When the skill needs files that will be used in the final
|
|
139
|
+
output
|
|
140
|
+
- **Examples**: `assets/logo.png` for brand assets, `assets/slides.pptx` for
|
|
141
|
+
PowerPoint templates, `assets/frontend-template/` for HTML/React boilerplate,
|
|
142
|
+
`assets/font.ttf` for typography
|
|
143
|
+
- **Use cases**: Templates, images, icons, boilerplate code, fonts, sample
|
|
144
|
+
documents that get copied or modified
|
|
145
|
+
- **Benefits**: Separates output resources from documentation, enables Gemini
|
|
146
|
+
CLI to use files without loading them into context
|
|
99
147
|
|
|
100
148
|
#### What to Not Include in a Skill
|
|
101
149
|
|
|
102
|
-
A skill should only contain essential files that directly support its
|
|
150
|
+
A skill should only contain essential files that directly support its
|
|
151
|
+
functionality. Do NOT create extraneous documentation or auxiliary files,
|
|
152
|
+
including:
|
|
103
153
|
|
|
104
154
|
- README.md
|
|
105
155
|
- INSTALLATION_GUIDE.md
|
|
@@ -107,7 +157,10 @@ A skill should only contain essential files that directly support its functional
|
|
|
107
157
|
- CHANGELOG.md
|
|
108
158
|
- etc.
|
|
109
159
|
|
|
110
|
-
The skill should only contain the information needed for an AI agent to do the
|
|
160
|
+
The skill should only contain the information needed for an AI agent to do the
|
|
161
|
+
job at hand. It should not contain auxiliary context about the process that went
|
|
162
|
+
into creating it, setup and testing procedures, user-facing documentation, etc.
|
|
163
|
+
Creating additional documentation files just adds clutter and confusion.
|
|
111
164
|
|
|
112
165
|
### Progressive Disclosure Design Principle
|
|
113
166
|
|
|
@@ -115,13 +168,21 @@ Skills use a three-level loading system to manage context efficiently:
|
|
|
115
168
|
|
|
116
169
|
1. **Metadata (name + description)** - Always in context (~100 words)
|
|
117
170
|
2. **SKILL.md body** - When skill triggers (<5k words)
|
|
118
|
-
3. **Bundled resources** - As needed by Gemini CLI (Unlimited because scripts
|
|
171
|
+
3. **Bundled resources** - As needed by Gemini CLI (Unlimited because scripts
|
|
172
|
+
can be executed without reading into context window)
|
|
119
173
|
|
|
120
174
|
#### Progressive Disclosure Patterns
|
|
121
175
|
|
|
122
|
-
Keep SKILL.md body to the essentials and under 500 lines to minimize context
|
|
176
|
+
Keep SKILL.md body to the essentials and under 500 lines to minimize context
|
|
177
|
+
bloat. Split content into separate files when approaching this limit. When
|
|
178
|
+
splitting out content into other files, it is very important to reference them
|
|
179
|
+
from SKILL.md and describe clearly when to read them, to ensure the reader of
|
|
180
|
+
the skill knows they exist and when to use them.
|
|
123
181
|
|
|
124
|
-
**Key principle:** When a skill supports multiple variations, frameworks, or
|
|
182
|
+
**Key principle:** When a skill supports multiple variations, frameworks, or
|
|
183
|
+
options, keep only the core workflow and selection guidance in SKILL.md. Move
|
|
184
|
+
variant-specific details (patterns, examples, configuration) into separate
|
|
185
|
+
reference files.
|
|
125
186
|
|
|
126
187
|
**Pattern 1: High-level guide with references**
|
|
127
188
|
|
|
@@ -143,7 +204,8 @@ Gemini CLI loads FORMS.md, REFERENCE.md, or EXAMPLES.md only when needed.
|
|
|
143
204
|
|
|
144
205
|
**Pattern 2: Domain-specific organization**
|
|
145
206
|
|
|
146
|
-
For Skills with multiple domains, organize content by domain to avoid loading
|
|
207
|
+
For Skills with multiple domains, organize content by domain to avoid loading
|
|
208
|
+
irrelevant context:
|
|
147
209
|
|
|
148
210
|
```
|
|
149
211
|
bigquery-skill/
|
|
@@ -157,7 +219,8 @@ bigquery-skill/
|
|
|
157
219
|
|
|
158
220
|
When a user asks about sales metrics, Gemini CLI only reads sales.md.
|
|
159
221
|
|
|
160
|
-
Similarly, for skills supporting multiple frameworks or variants, organize by
|
|
222
|
+
Similarly, for skills supporting multiple frameworks or variants, organize by
|
|
223
|
+
variant:
|
|
161
224
|
|
|
162
225
|
```
|
|
163
226
|
cloud-deploy/
|
|
@@ -183,15 +246,20 @@ Use pandas for loading and basic queries. See [PANDAS.md](PANDAS.md).
|
|
|
183
246
|
|
|
184
247
|
## Advanced Operations
|
|
185
248
|
|
|
186
|
-
For massive files that exceed memory, see [STREAMING.md](STREAMING.md). For
|
|
249
|
+
For massive files that exceed memory, see [STREAMING.md](STREAMING.md). For
|
|
250
|
+
timestamp normalization, see [TIMESTAMPS.md](TIMESTAMPS.md).
|
|
187
251
|
|
|
188
|
-
Gemini CLI reads REDLINING.md or OOXML.md only when the user needs those
|
|
252
|
+
Gemini CLI reads REDLINING.md or OOXML.md only when the user needs those
|
|
253
|
+
features.
|
|
189
254
|
```
|
|
190
255
|
|
|
191
256
|
**Important guidelines:**
|
|
192
257
|
|
|
193
|
-
- **Avoid deeply nested references** - Keep references one level deep from
|
|
194
|
-
|
|
258
|
+
- **Avoid deeply nested references** - Keep references one level deep from
|
|
259
|
+
SKILL.md. All reference files should link directly from SKILL.md.
|
|
260
|
+
- **Structure longer reference files** - For files longer than 100 lines,
|
|
261
|
+
include a table of contents at the top so Gemini CLI can see the full scope
|
|
262
|
+
when previewing.
|
|
195
263
|
|
|
196
264
|
## Skill Creation Process
|
|
197
265
|
|
|
@@ -205,66 +273,93 @@ Skill creation involves these steps:
|
|
|
205
273
|
6. Install and reload the skill
|
|
206
274
|
7. Iterate based on real usage
|
|
207
275
|
|
|
208
|
-
Follow these steps in order, skipping only if there is a clear reason why they
|
|
276
|
+
Follow these steps in order, skipping only if there is a clear reason why they
|
|
277
|
+
are not applicable.
|
|
209
278
|
|
|
210
279
|
### Skill Naming
|
|
211
280
|
|
|
212
|
-
- Use lowercase letters, digits, and hyphens only; normalize user-provided
|
|
213
|
-
|
|
281
|
+
- Use lowercase letters, digits, and hyphens only; normalize user-provided
|
|
282
|
+
titles to hyphen-case (e.g., "Plan Mode" -> `plan-mode`).
|
|
283
|
+
- When generating names, generate a name under 64 characters (letters, digits,
|
|
284
|
+
hyphens).
|
|
214
285
|
- Prefer short, verb-led phrases that describe the action.
|
|
215
|
-
- Namespace by tool when it improves clarity or triggering (e.g.,
|
|
286
|
+
- Namespace by tool when it improves clarity or triggering (e.g.,
|
|
287
|
+
`gh-address-comments`, `linear-address-issue`).
|
|
216
288
|
- Name the skill folder exactly after the skill name.
|
|
217
289
|
|
|
218
290
|
### Step 1: Understanding the Skill with Concrete Examples
|
|
219
291
|
|
|
220
|
-
Skip this step only when the skill's usage patterns are already clearly
|
|
292
|
+
Skip this step only when the skill's usage patterns are already clearly
|
|
293
|
+
understood. It remains valuable even when working with an existing skill.
|
|
221
294
|
|
|
222
|
-
To create an effective skill, clearly understand concrete examples of how the
|
|
295
|
+
To create an effective skill, clearly understand concrete examples of how the
|
|
296
|
+
skill will be used. This understanding can come from either direct user examples
|
|
297
|
+
or generated examples that are validated with user feedback.
|
|
223
298
|
|
|
224
299
|
For example, when building an image-editor skill, relevant questions include:
|
|
225
300
|
|
|
226
|
-
- "What functionality should the image-editor skill support? Editing, rotating,
|
|
301
|
+
- "What functionality should the image-editor skill support? Editing, rotating,
|
|
302
|
+
anything else?"
|
|
227
303
|
- "Can you give some examples of how this skill would be used?"
|
|
228
|
-
- "I can imagine users asking for things like 'Remove the red-eye from this
|
|
304
|
+
- "I can imagine users asking for things like 'Remove the red-eye from this
|
|
305
|
+
image' or 'Rotate this image'. Are there other ways you imagine this skill
|
|
306
|
+
being used?"
|
|
229
307
|
- "What would a user say that should trigger this skill?"
|
|
230
308
|
|
|
231
|
-
**Avoid interrogation loops:** Do not ask more than one or two clarifying
|
|
309
|
+
**Avoid interrogation loops:** Do not ask more than one or two clarifying
|
|
310
|
+
questions at a time. Bias toward action: propose a concrete list of features or
|
|
311
|
+
examples based on your initial understanding, and ask the user to refine them.
|
|
232
312
|
|
|
233
|
-
Conclude this step when there is a clear sense of the functionality the skill
|
|
313
|
+
Conclude this step when there is a clear sense of the functionality the skill
|
|
314
|
+
should support.
|
|
234
315
|
|
|
235
316
|
### Step 2: Planning the Reusable Skill Contents
|
|
236
317
|
|
|
237
318
|
To turn concrete examples into an effective skill, analyze each example by:
|
|
238
319
|
|
|
239
320
|
1. Considering how to execute on the example from scratch
|
|
240
|
-
2. Identifying what scripts, references, and assets would be helpful when
|
|
321
|
+
2. Identifying what scripts, references, and assets would be helpful when
|
|
322
|
+
executing these workflows repeatedly
|
|
241
323
|
|
|
242
|
-
Example: When building a `pdf-editor` skill to handle queries like "Help me
|
|
324
|
+
Example: When building a `pdf-editor` skill to handle queries like "Help me
|
|
325
|
+
rotate this PDF," the analysis shows:
|
|
243
326
|
|
|
244
327
|
1. Rotating a PDF requires re-writing the same code each time
|
|
245
328
|
2. A `scripts/rotate_pdf.cjs` script would be helpful to store in the skill
|
|
246
329
|
|
|
247
|
-
Example: When designing a `frontend-webapp-builder` skill for queries like
|
|
330
|
+
Example: When designing a `frontend-webapp-builder` skill for queries like
|
|
331
|
+
"Build me a todo app" or "Build me a dashboard to track my steps," the analysis
|
|
332
|
+
shows:
|
|
248
333
|
|
|
249
334
|
1. Writing a frontend webapp requires the same boilerplate HTML/React each time
|
|
250
|
-
2. An `assets/hello-world/` template containing the boilerplate HTML/React
|
|
335
|
+
2. An `assets/hello-world/` template containing the boilerplate HTML/React
|
|
336
|
+
project files would be helpful to store in the skill
|
|
251
337
|
|
|
252
|
-
Example: When building a `big-query` skill to handle queries like "How many
|
|
338
|
+
Example: When building a `big-query` skill to handle queries like "How many
|
|
339
|
+
users have logged in today?" the analysis shows:
|
|
253
340
|
|
|
254
|
-
1. Querying BigQuery requires re-discovering the table schemas and relationships
|
|
255
|
-
|
|
341
|
+
1. Querying BigQuery requires re-discovering the table schemas and relationships
|
|
342
|
+
each time
|
|
343
|
+
2. A `references/schema.md` file documenting the table schemas would be helpful
|
|
344
|
+
to store in the skill
|
|
256
345
|
|
|
257
|
-
To establish the skill's contents, analyze each concrete example to create a
|
|
346
|
+
To establish the skill's contents, analyze each concrete example to create a
|
|
347
|
+
list of the reusable resources to include: scripts, references, and assets.
|
|
258
348
|
|
|
259
349
|
### Step 3: Initializing the Skill
|
|
260
350
|
|
|
261
351
|
At this point, it is time to actually create the skill.
|
|
262
352
|
|
|
263
|
-
Skip this step only if the skill being developed already exists, and iteration
|
|
353
|
+
Skip this step only if the skill being developed already exists, and iteration
|
|
354
|
+
or packaging is needed. In this case, continue to the next step.
|
|
264
355
|
|
|
265
|
-
When creating a new skill from scratch, always run the `init_skill.cjs` script.
|
|
356
|
+
When creating a new skill from scratch, always run the `init_skill.cjs` script.
|
|
357
|
+
The script conveniently generates a new template skill directory that
|
|
358
|
+
automatically includes everything a skill requires, making the skill creation
|
|
359
|
+
process much more efficient and reliable.
|
|
266
360
|
|
|
267
|
-
**Note:** Use the absolute path to the script as provided in the
|
|
361
|
+
**Note:** Use the absolute path to the script as provided in the
|
|
362
|
+
`available_resources` section.
|
|
268
363
|
|
|
269
364
|
Usage:
|
|
270
365
|
|
|
@@ -277,30 +372,48 @@ The script:
|
|
|
277
372
|
- Creates the skill directory at the specified path
|
|
278
373
|
- Generates a SKILL.md template with proper frontmatter and TODO placeholders
|
|
279
374
|
- Creates example resource directories: `scripts/`, `references/`, and `assets/`
|
|
280
|
-
- Adds example files (`scripts/example_script.cjs`,
|
|
375
|
+
- Adds example files (`scripts/example_script.cjs`,
|
|
376
|
+
`references/example_reference.md`, `assets/example_asset.txt`) that can be
|
|
377
|
+
customized or deleted
|
|
281
378
|
|
|
282
|
-
After initialization, customize or remove the generated SKILL.md and example
|
|
379
|
+
After initialization, customize or remove the generated SKILL.md and example
|
|
380
|
+
files as needed.
|
|
283
381
|
|
|
284
382
|
### Step 4: Edit the Skill
|
|
285
383
|
|
|
286
|
-
When editing the (newly-generated or existing) skill, remember that the skill is
|
|
384
|
+
When editing the (newly-generated or existing) skill, remember that the skill is
|
|
385
|
+
being created for another instance of Gemini CLI to use. Include information
|
|
386
|
+
that would be beneficial and non-obvious to Gemini CLI. Consider what procedural
|
|
387
|
+
knowledge, domain-specific details, or reusable assets would help another Gemini
|
|
388
|
+
CLI instance execute these tasks more effectively.
|
|
287
389
|
|
|
288
390
|
#### Learn Proven Design Patterns
|
|
289
391
|
|
|
290
392
|
Consult these helpful guides based on your skill's needs:
|
|
291
393
|
|
|
292
|
-
- **Multi-step processes**: See references/workflows.md for sequential workflows
|
|
293
|
-
|
|
394
|
+
- **Multi-step processes**: See references/workflows.md for sequential workflows
|
|
395
|
+
and conditional logic
|
|
396
|
+
- **Specific output formats or quality standards**: See
|
|
397
|
+
references/output-patterns.md for template and example patterns
|
|
294
398
|
|
|
295
399
|
These files contain established best practices for effective skill design.
|
|
296
400
|
|
|
297
401
|
#### Start with Reusable Skill Contents
|
|
298
402
|
|
|
299
|
-
To begin implementation, start with the reusable resources identified above:
|
|
403
|
+
To begin implementation, start with the reusable resources identified above:
|
|
404
|
+
`scripts/`, `references/`, and `assets/` files. Note that this step may require
|
|
405
|
+
user input. For example, when implementing a `brand-guidelines` skill, the user
|
|
406
|
+
may need to provide brand assets or templates to store in `assets/`, or
|
|
407
|
+
documentation to store in `references/`.
|
|
300
408
|
|
|
301
|
-
Added scripts must be tested by actually running them to ensure there are no
|
|
409
|
+
Added scripts must be tested by actually running them to ensure there are no
|
|
410
|
+
bugs and that the output matches what is expected. If there are many similar
|
|
411
|
+
scripts, only a representative sample needs to be tested to ensure confidence
|
|
412
|
+
that they all work while balancing time to completion.
|
|
302
413
|
|
|
303
|
-
Any example files and directories not needed for the skill should be deleted.
|
|
414
|
+
Any example files and directories not needed for the skill should be deleted.
|
|
415
|
+
The initialization script creates example files in `scripts/`, `references/`,
|
|
416
|
+
and `assets/` to demonstrate structure, but most skills won't need all of them.
|
|
304
417
|
|
|
305
418
|
#### Update SKILL.md
|
|
306
419
|
|
|
@@ -311,11 +424,17 @@ Any example files and directories not needed for the skill should be deleted. Th
|
|
|
311
424
|
Write the YAML frontmatter with `name` and `description`:
|
|
312
425
|
|
|
313
426
|
- `name`: The skill name
|
|
314
|
-
- `description`: This is the primary triggering mechanism for your skill, and
|
|
315
|
-
|
|
316
|
-
-
|
|
317
|
-
|
|
318
|
-
-
|
|
427
|
+
- `description`: This is the primary triggering mechanism for your skill, and
|
|
428
|
+
helps Gemini CLI understand when to use the skill.
|
|
429
|
+
- Include both what the Skill does and specific triggers/contexts for when to
|
|
430
|
+
use it.
|
|
431
|
+
- **Must be a single-line string** (e.g., `description: Data ingestion...`).
|
|
432
|
+
Quotes are optional.
|
|
433
|
+
- Include all "when to use" information here - Not in the body. The body is
|
|
434
|
+
only loaded after triggering, so "When to Use This Skill" sections in the
|
|
435
|
+
body are not helpful to Gemini CLI.
|
|
436
|
+
- Example:
|
|
437
|
+
`description: Data ingestion, cleaning, and transformation for tabular data. Use when Gemini CLI needs to work with CSV/TSV files to analyze large datasets, normalize schemas, or merge sources.`
|
|
319
438
|
|
|
320
439
|
Do not include any other fields in YAML frontmatter.
|
|
321
440
|
|
|
@@ -325,9 +444,13 @@ Write instructions for using the skill and its bundled resources.
|
|
|
325
444
|
|
|
326
445
|
### Step 5: Packaging a Skill
|
|
327
446
|
|
|
328
|
-
Once development of the skill is complete, it must be packaged into a
|
|
447
|
+
Once development of the skill is complete, it must be packaged into a
|
|
448
|
+
distributable .skill file that gets shared with the user. The packaging process
|
|
449
|
+
automatically validates the skill first (checking YAML and ensuring no TODOs
|
|
450
|
+
remain) to ensure it meets all requirements:
|
|
329
451
|
|
|
330
|
-
**Note:** Use the absolute path to the script as provided in the
|
|
452
|
+
**Note:** Use the absolute path to the script as provided in the
|
|
453
|
+
`available_resources` section.
|
|
331
454
|
|
|
332
455
|
```bash
|
|
333
456
|
node <path-to-skill-creator>/scripts/package_skill.cjs <path/to/skill-folder>
|
|
@@ -342,20 +465,28 @@ node <path-to-skill-creator>/scripts/package_skill.cjs <path/to/skill-folder> ./
|
|
|
342
465
|
The packaging script will:
|
|
343
466
|
|
|
344
467
|
1. **Validate** the skill automatically, checking:
|
|
468
|
+
|
|
345
469
|
- YAML frontmatter format and required fields
|
|
346
470
|
- Skill naming conventions and directory structure
|
|
347
471
|
- Description completeness and quality
|
|
348
472
|
- File organization and resource references
|
|
349
473
|
|
|
350
|
-
2. **Package** the skill if validation passes, creating a .skill file named
|
|
474
|
+
2. **Package** the skill if validation passes, creating a .skill file named
|
|
475
|
+
after the skill (e.g., `my-skill.skill`) that includes all files and
|
|
476
|
+
maintains the proper directory structure for distribution. The .skill file is
|
|
477
|
+
a zip file with a .skill extension.
|
|
351
478
|
|
|
352
|
-
If validation fails, the script will report the errors and exit without creating
|
|
479
|
+
If validation fails, the script will report the errors and exit without creating
|
|
480
|
+
a package. Fix any validation errors and run the packaging command again.
|
|
353
481
|
|
|
354
482
|
### Step 6: Installing and Reloading a Skill
|
|
355
483
|
|
|
356
|
-
Once the skill is packaged into a `.skill` file, offer to install it for the
|
|
484
|
+
Once the skill is packaged into a `.skill` file, offer to install it for the
|
|
485
|
+
user. Ask whether they would like to install it locally in the current folder
|
|
486
|
+
(workspace scope) or at the user level (user scope).
|
|
357
487
|
|
|
358
|
-
If the user agrees to an installation, perform it immediately using the
|
|
488
|
+
If the user agrees to an installation, perform it immediately using the
|
|
489
|
+
`run_shell_command` tool:
|
|
359
490
|
|
|
360
491
|
- **Locally (workspace scope)**:
|
|
361
492
|
```bash
|
|
@@ -366,13 +497,19 @@ If the user agrees to an installation, perform it immediately using the `run_she
|
|
|
366
497
|
gemini skills install <path/to/skill-name.skill> --scope user
|
|
367
498
|
```
|
|
368
499
|
|
|
369
|
-
**Important:** After the installation is complete, notify the user that they
|
|
500
|
+
**Important:** After the installation is complete, notify the user that they
|
|
501
|
+
MUST manually execute the `/skills reload` command in their interactive Gemini
|
|
502
|
+
CLI session to enable the new skill. They can then verify the installation by
|
|
503
|
+
running `/skills list`.
|
|
370
504
|
|
|
371
|
-
Note: You (the agent) cannot execute the `/skills reload` command yourself; it
|
|
505
|
+
Note: You (the agent) cannot execute the `/skills reload` command yourself; it
|
|
506
|
+
must be done by the user in an interactive instance of Gemini CLI. Do not
|
|
507
|
+
attempt to run it on their behalf.
|
|
372
508
|
|
|
373
509
|
### Step 7: Iterate
|
|
374
510
|
|
|
375
|
-
After testing the skill, users may request improvements. Often this happens
|
|
511
|
+
After testing the skill, users may request improvements. Often this happens
|
|
512
|
+
right after using the skill, with fresh context of how the skill performed.
|
|
376
513
|
|
|
377
514
|
**Iteration workflow:**
|
|
378
515
|
|
|
@@ -47,6 +47,12 @@ export interface OAuthTokenResponse {
|
|
|
47
47
|
}
|
|
48
48
|
/** The path the local callback server listens on. */
|
|
49
49
|
export declare const REDIRECT_PATH = "/oauth/callback";
|
|
50
|
+
/**
|
|
51
|
+
* Helper to determine the redirect URI, taking Google Cloud Workstations proxy into account.
|
|
52
|
+
*/
|
|
53
|
+
export declare function getRedirectUri(config: {
|
|
54
|
+
redirectUri?: string;
|
|
55
|
+
}, redirectPort: number): string;
|
|
50
56
|
/**
|
|
51
57
|
* Generate PKCE parameters for OAuth flow.
|
|
52
58
|
*
|
|
@@ -15,6 +15,37 @@ import { URL } from 'node:url';
|
|
|
15
15
|
import { debugLogger } from './debugLogger.js';
|
|
16
16
|
/** The path the local callback server listens on. */
|
|
17
17
|
export const REDIRECT_PATH = '/oauth/callback';
|
|
18
|
+
/**
|
|
19
|
+
* Helper to determine the redirect URI, taking Google Cloud Workstations proxy into account.
|
|
20
|
+
*/
|
|
21
|
+
export function getRedirectUri(config, redirectPort) {
|
|
22
|
+
if (process.env['GOOGLE_CLOUD_WORKSTATIONS'] === 'true' &&
|
|
23
|
+
process.env['WEB_HOST']) {
|
|
24
|
+
if (config.redirectUri) {
|
|
25
|
+
try {
|
|
26
|
+
const parsed = new URL(config.redirectUri);
|
|
27
|
+
if (parsed.hostname === 'localhost' ||
|
|
28
|
+
parsed.hostname === '127.0.0.1' ||
|
|
29
|
+
parsed.hostname === '[::1]') {
|
|
30
|
+
const port = String(redirectPort);
|
|
31
|
+
parsed.protocol = 'https:';
|
|
32
|
+
parsed.hostname = `${port}-${process.env['WEB_HOST']}`;
|
|
33
|
+
parsed.port = '';
|
|
34
|
+
return parsed.toString();
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
catch {
|
|
38
|
+
// Fall back to returning config.redirectUri as-is if parsing fails
|
|
39
|
+
}
|
|
40
|
+
return config.redirectUri;
|
|
41
|
+
}
|
|
42
|
+
return `https://${redirectPort}-${process.env['WEB_HOST']}${REDIRECT_PATH}`;
|
|
43
|
+
}
|
|
44
|
+
if (config.redirectUri) {
|
|
45
|
+
return config.redirectUri;
|
|
46
|
+
}
|
|
47
|
+
return `http://localhost:${redirectPort}${REDIRECT_PATH}`;
|
|
48
|
+
}
|
|
18
49
|
const HTTP_OK = 200;
|
|
19
50
|
/**
|
|
20
51
|
* Generate PKCE parameters for OAuth flow.
|
|
@@ -190,7 +221,7 @@ export function getPortFromUrl(urlString) {
|
|
|
190
221
|
* @returns The authorization URL
|
|
191
222
|
*/
|
|
192
223
|
export function buildAuthorizationUrl(config, pkceParams, redirectPort, resource) {
|
|
193
|
-
const redirectUri = config
|
|
224
|
+
const redirectUri = getRedirectUri(config, redirectPort);
|
|
194
225
|
const params = new URLSearchParams({
|
|
195
226
|
client_id: config.clientId,
|
|
196
227
|
response_type: 'code',
|
|
@@ -313,7 +344,7 @@ async function parseTokenEndpointResponse(response, operationName, defaultErrorC
|
|
|
313
344
|
* @returns The token response
|
|
314
345
|
*/
|
|
315
346
|
export async function exchangeCodeForToken(config, code, codeVerifier, redirectPort, resource) {
|
|
316
|
-
const redirectUri = config
|
|
347
|
+
const redirectUri = getRedirectUri(config, redirectPort);
|
|
317
348
|
const params = new URLSearchParams({
|
|
318
349
|
grant_type: 'authorization_code',
|
|
319
350
|
code,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth-flow.js","sourceRoot":"","sources":["../../../src/utils/oauth-flow.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"oauth-flow.js","sourceRoot":"","sources":["../../../src/utils/oauth-flow.ts"],"names":[],"mappings":"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"}
|