chore: import upstream snapshot with attribution
Publish OpenClaw Skills / publish (push) Has been cancelled
Audit / Security Audit (push) Has been cancelled
Automation / Gemini Review (push) Has been cancelled
CI / Detect Changes (push) Has been cancelled
CI / Test (macos-latest) (push) Has been cancelled
CI / Test (ubuntu-latest) (push) Has been cancelled
CI / Nix (push) Has been cancelled
CI / Lint (push) Has been cancelled
CI / Cargo Deny (push) Has been cancelled
CI / Verify Skills (push) Has been cancelled
CI / Lint Skills (push) Has been cancelled
CI / Build (Linux x86_64) (push) Has been cancelled
CI / Build (macos-latest, aarch64-apple-darwin) (push) Has been cancelled
CI / Build (macos-latest, x86_64-apple-darwin) (push) Has been cancelled
CI / Build (ubuntu-latest, aarch64-unknown-linux-gnu) (push) Has been cancelled
CI / Build (windows-latest, x86_64-pc-windows-msvc) (push) Has been cancelled
CI / API Smoketest (push) Has been cancelled
Policy / Policy Check (push) Has been cancelled
Release (Changeset) / Release (push) Has been cancelled
Automation / Gemini Reviewed (push) Has been cancelled
Coverage / Coverage (push) Has been cancelled
Automation / Format (push) Has been cancelled
Automation / File Labeler (push) Has been cancelled

This commit is contained in:
wehub-resource-sync
2026-07-13 12:38:06 +08:00
commit 76a9e7a0cc
222 changed files with 47091 additions and 0 deletions
+101
View File
@@ -0,0 +1,101 @@
---
description: Writing and editing VHS `.tape` files for terminal demo GIFs
---
# VHS Tape Files
[VHS](https://github.com/charmbracelet/vhs) records terminal sessions into GIFs/MP4s/WebMs from `.tape` scripts. Run with `vhs demo.tape`.
## Critical Syntax Rules
### Type command and inline directives
`Type`, `Sleep`, `Enter` are **separate directives on the same line**, delimited by the closing `"` of the `Type` string. The most common bug is forgetting to close the `Type` string, which causes `Sleep`/`Enter` to be typed literally into the terminal.
```
# ✅ CORRECT — closing " before Sleep
Type "echo hello" Sleep 300ms Enter
# ❌ WRONG — Sleep and Enter are typed as literal text
Type "echo hello Sleep 300ms Enter
```
### Type with @speed override
Override typing speed per-command with `@<time>` immediately after `Type` (no space):
```
Type@80ms '{"pageSize": 2}' Sleep 100ms
```
### Quoting
- Double quotes `"..."` are the standard Type delimiter
- Single quotes `'...'` also work and are useful when the typed content contains double quotes (e.g. JSON)
- Escape quotes inside strings with backticks: `` Type `VAR="value"` ``
- When building shell commands with nested quotes, split across multiple `Type` lines:
```
Type "gws drive files list --params '" Sleep 100ms
Type@80ms '{"pageSize": 2, "fields": "nextPageToken,files(id)"}' Sleep 100ms
Type "' --page-all" Sleep 300ms Enter
```
> **Pitfall**: Every `Type` line that is followed by `Sleep` or `Enter` on the same line MUST close its string first. Audit each line to ensure the quote is closed before any directive.
## Settings (top of file only)
Settings must appear before any non-setting command (except `Output`). `TypingSpeed` is the only setting that can be changed mid-tape.
```
Output demo.gif
Set Shell "bash"
Set FontSize 14
Set Width 1200
Set Height 1200
Set Theme "Catppuccin Mocha"
Set WindowBar Colorful
Set WindowBarSize 40
Set TypingSpeed 40ms
Set Padding 20
```
## Common Commands
| Command | Example | Notes |
|---|---|---|
| `Output` | `Output demo.gif` | `.gif`, `.mp4`, `.webm` |
| `Type` | `Type "ls -la"` | Type characters |
| `Type@<time>` | `Type@80ms "slow"` | Override typing speed |
| `Sleep` | `Sleep 2s`, `Sleep 300ms` | Pause recording |
| `Enter` | `Enter` | Press enter |
| `Hide` / `Show` | `Hide` ... `Show` | Hide setup commands |
| `Ctrl+<key>` | `Ctrl+C` | Key combos |
| `Tab`, `Space`, `Backspace` | `Tab 2` | Optional repeat count |
| `Up`, `Down`, `Left`, `Right` | `Up 3` | Arrow keys |
| `Wait` | `Wait /pattern/` | Wait for regex on screen |
| `Screenshot` | `Screenshot out.png` | Capture frame |
| `Env` | `Env FOO "bar"` | Set env var |
| `Source` | `Source other.tape` | Include another tape |
| `Require` | `Require jq` | Assert program exists |
## Hide/Show for Setup
Use `Hide`/`Show` to run setup commands (e.g. setting `$PATH`, clearing screen) without recording them:
```
Hide
Type "export PATH=$PWD/target/release:$PATH" Enter
Type "clear" Enter
Sleep 2s
Show
```
## Checklist When Editing Tape Files
1. **Every `Type` string must be closed** before `Sleep`/`Enter` on the same line
2. **Multi-line Type sequences** that build a single shell command: ensure the final line closes its string and includes `Enter`
3. **Sleep durations** after commands should be long enough for the command to finish (network calls may need 8s+)
4. **Settings go at the top** — only `TypingSpeed` can appear later
5. **Test locally** with `vhs <file>.tape` before committing
+73
View File
@@ -0,0 +1,73 @@
---
description: Verify all skills/*/SKILL.md files against actual CLI output for accuracy
---
# Verify Skills
Ensure every `skills/*/SKILL.md` file is accurate and optimized for AI agent consumption.
## Steps
1. **List all skill files**
```bash
find skills -name SKILL.md | sort
```
2. **Get top-level help for every service**
// turbo
```bash
for svc in drive sheets gmail calendar admin admin-reports docs slides tasks people chat vault groupssettings reseller licensing apps-script; do
echo "=== $svc ==="
./target/debug/gws $svc --help 2>&1
echo
done
```
3. **Get sub-resource help for key services** (spot-check method names used in examples)
// turbo
```bash
./target/debug/gws drive files --help 2>&1
./target/debug/gws gmail users messages --help 2>&1
./target/debug/gws sheets spreadsheets --help 2>&1
./target/debug/gws sheets spreadsheets values --help 2>&1
./target/debug/gws calendar events --help 2>&1
./target/debug/gws people people --help 2>&1
./target/debug/gws chat spaces --help 2>&1
./target/debug/gws vault matters --help 2>&1
./target/debug/gws admin users --help 2>&1
./target/debug/gws tasks tasks --help 2>&1
```
4. **For each SKILL.md, verify the following against the CLI `--help` output:**
- [ ] **Resource names** match exactly (e.g., `files`, `spreadsheets`, `users`)
- [ ] **Method names** match exactly (e.g., `list`, `insert`, `batchUpdate`, `getContent`)
- [ ] **Nested resource paths** are correct (e.g., `spreadsheets values get`, not `values get`)
- [ ] **Alias** mentioned in the file matches `services.rs` (e.g., `gws script` for apps-script)
- [ ] **API version** in the header is correct
- [ ] **Example commands** use valid `--params` and `--json` flag syntax
- [ ] **No OAuth scopes section** — scopes should not be listed in skill files
- [ ] **Tips section** contains accurate, actionable advice
5. **Cross-check `shared/SKILL.md`** covers:
- [ ] `--fields` / field mask syntax
- [ ] CLI syntax (`--params`, `--json`, `--output`, `--upload`, `--page-all`, `--page-limit`, `--page-delay`)
- [ ] Authentication (`GOOGLE_WORKSPACE_CLI_CREDENTIALS`, `GOOGLE_WORKSPACE_API_KEY`)
- [ ] Auto-pagination (`--page-all`) with NDJSON output
- [ ] `gws schema <method>` introspection
- [ ] Error handling JSON structure
- [ ] Binary download with `--output`
- [ ] Version override (`--api-version`, colon syntax)
6. **Fix any issues found** — update the SKILL.md files directly.
7. **Rebuild and re-verify** if any examples were changed.
// turbo
```bash
cargo build 2>&1
```