Minimizing Ty Ecosystem Changes
astral-sh/ruff
A skill your agent uses when a user says "minimize this ty ecosystem change", "reproduce this ecosystem result", "investigate a primer difference", "investigate a mypyprimer difference"…
Lift a proven skill from a host repo (e.g. An agent skill from garrytan/gbrain.
$ npx skills add garrytan/gbrain --skill skillpack-harvest -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install garrytan/gbrain skillpack-harvest --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/garrytan/gbrain.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/skillpack-harvest .claude/skills/skillpack-harvest && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "skillpack-harvest" agent skill from https://github.com/garrytan/gbrain/tree/master/skills/skillpack-harvest into .claude/skills/skillpack-harvest/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skillpack-harvest", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/garrytan/gbrain/tree/master/skills/skillpack-harvestType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add garrytan/gbrain --skill skillpack-harvest -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install garrytan/gbrain skillpack-harvest --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/garrytan/gbrain.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/skillpack-harvest .agents/skills/skillpack-harvest && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "skillpack-harvest" agent skill from https://github.com/garrytan/gbrain/tree/master/skills/skillpack-harvest into .agents/skills/skillpack-harvest/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skillpack-harvest", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add garrytan/gbrain --skill skillpack-harvest -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install garrytan/gbrain skillpack-harvest --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/garrytan/gbrain.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/skillpack-harvest .cursor/skills/skillpack-harvest && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "skillpack-harvest" agent skill from https://github.com/garrytan/gbrain/tree/master/skills/skillpack-harvest into .cursor/skills/skillpack-harvest/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skillpack-harvest", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/garrytan/gbrain.git --path skills/skillpack-harvest--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add garrytan/gbrain --skill skillpack-harvest -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install garrytan/gbrain skillpack-harvest --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/garrytan/gbrain.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/skillpack-harvest .gemini/skills/skillpack-harvest && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "skillpack-harvest" agent skill from https://github.com/garrytan/gbrain/tree/master/skills/skillpack-harvest into .gemini/skills/skillpack-harvest/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skillpack-harvest", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install garrytan/gbrain skillpack-harvestInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add garrytan/gbrain --skill skillpack-harvest -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/garrytan/gbrain.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/skillpack-harvest .github/skills/skillpack-harvest && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "skillpack-harvest" agent skill from https://github.com/garrytan/gbrain/tree/master/skills/skillpack-harvest into .github/skills/skillpack-harvest/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skillpack-harvest", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add garrytan/gbrain --skill skillpack-harvest -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install garrytan/gbrain skillpack-harvest --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/garrytan/gbrain.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/skillpack-harvest .opencode/skills/skillpack-harvest && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "skillpack-harvest" agent skill from https://github.com/garrytan/gbrain/tree/master/skills/skillpack-harvest into .opencode/skills/skillpack-harvest/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "skillpack-harvest", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skillpack-harvestLift a proven skill from a host repo (e.g. An agent skill from garrytan/gbrain.
Skillpack Harvest is an agent skill from garrytan/gbrain. Lift a proven skill from a host repo (e.g. your OpenClaw fork) back into gbrain's bundle so other clients can scaffold it. Editorial workflow: the CLI does the file copy + privacy lint; this skill drives the judgment-heavy genericization (scrub real names, generalize triggers, lift fork-specific conventions to references).
Its SKILL.md is about 2.8k tokens, which your agent loads only when the skill is triggered. The skill folder holds 1 other file.
It sits in Development, covering Linting and formatting. The repository describes itself as: Garry's Opinionated OpenClaw/Hermes Agent Brain. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit f250a51. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
bungitFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Skillpack Harvest loads about 2.8k tokens when it runs. Until then it costs about 86 tokens; SKILL.md has 1,416 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from garrytan/gbrain at commit f250a51, republished under its MIT licence (© garrytan). 1,416 words, ~2,757 tokens.
.claude/skills/skillpack-harvest/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Convention: see _brain-filing-rules.md for file placement rules. This skill writes into gbrain's own tree, not the brain repo's notes.
This skill is the inverse of gbrain skillpack scaffold. Scaffold ships
skills downstream (gbrain → host). Harvest lifts proven patterns
upstream (host → gbrain) so they become references every other client
can scaffold.
A harvest is "properly done" when:
gbrain skillpack harvest --dry-run previewed the file set.gbrain skillpack harvest <slug> --from <host> succeeded
with status: harvested (no privacy-lint hits).bun test test/skills-conformance.test.ts passes on the new
skills/<slug>/SKILL.md.If any of these is incomplete, the skill is NOT yet harvested — the files may sit in gbrain's working tree, but they're not landed.
This skill produces three artifacts in gbrain's working tree:
skills/<harvested-slug>/SKILL.md (and any sibling files like
routing-eval.jsonl)src/commands/<slug>.ts) when the host SKILL.md declared them
in frontmatter sources:openclaw.plugin.json with the new slug added to
skills: (sorted)The session output to the user is a one-line success summary plus
a list of files written. JSON mode (--json) returns the full
HarvestResult shape for machine consumption.
Follow the agent operator protocol for any gbrain error code, exit code, [AGENT] block or notice block. Specific to this skill:
lint_failed: the privacy linter caught a real name or private detail; go back to Phase 3 and replace it with placeholders (alice-example, acme-example, fund-a).gbrain skillpack check --strict reports drift after the harvest: regenerate the bundle and re-run; never ship a drifting skillpack.git checkout away, but you
shouldn't need to.--no-lint without justification. The lint exists
for a reason. If you bypass it, document why in the commit.rm -rf the source after harvesting.Do NOT invoke when:
Before running this skill, confirm:
The skill is mature. Recent routing-eval.jsonl cases pass; the
skill has been used in production at least a few times.
The skill is generalizable. Strip-test in your head: replace every fork-specific name. Does it still make sense as a skill?
The user owns the gbrain checkout. The harvest writes into gbrain's working tree. They'll review and commit. Don't harvest into a checkout the user doesn't intend to commit from.
Ask the user:
~/git/agent-fork, not ~/git/agent-fork/skills/foo.)sources: array.)Run the CLI with --dry-run:
gbrain skillpack harvest <slug> --from <host-repo-root> --dry-runThe output shows:
Do not skip the dry-run. The privacy linter only runs on a real harvest, but the dry-run preview lets you see the files before they land. Spot-check the SKILL.md and any paired source for things the linter might miss (proper nouns, internal project names, etc.).
Before running the real harvest, walk the host's skills/<slug>/
files and apply this checklist. If anything matches, edit the host
file FIRST, then run harvest.
Fork-specific names → generic phrasing
<personal-fork-name> → your OpenClaw (or OpenClaw deployment);
any pet name for the user's private agent gets the same treatmentgarry, jane, etc.) → the user /
you / a generic placeholderReal entities → placeholders
alice-example, acme-example, fund-a, etc.)example@example.com#some-channel or stripFork-specific conventions → references
<host-repo>/docs/... files → either lift the doc
into gbrain OR replace with a generic placeholder explanation<host-repo>/skills/<other-fork-only-skill> → either
decide to harvest that one too, or replace with a generic
pattern referenceTriggers array generalizes
triggers:. None should
reference the user's name, fork name, or internal tools.routing-eval.jsonl examples are scrubbed
skills/<slug>/routing-eval.jsonl. Every intent field
gets the same scrub as triggers:.Code comments + log strings
Once Phase 3 is complete, run the real harvest:
gbrain skillpack harvest <slug> --from <host-repo-root>Default behavior:
~/.gbrain/harvest-private-patterns.txt
(plus built-in defaults — the canonical private fork name, email
addresses, Slack channels; see src/core/skillpack/harvest-lint.ts)openclaw.plugin.json updated to add the slug, sortedOutcomes:
harvested — success, manifest updated, files in gbrain's treelint_failed — privacy linter caught something. Go back to Phase 3,
scrub the host file, retry.slug_collision — gbrain already has a skill at that slug. Either
use a different slug, or pass --overwrite-local if you really
mean to replace.After a successful harvest:
bun test test/skills-conformance.test.ts — confirms the new
SKILL.md meets the frontmatter contract.gbrain skillpack check --strict — confirms no drift between
bundle and gbrain's own checkout.gbrain skillpack list — confirms the slug shows up in the bundle.cd <gbrainRoot> && git diff -- skills/<slug>/If other gbrain clients should pick up the new skill:
CHANGELOG.md under "Skills added" for the next release--no-lintThe privacy linter is the safety net. The editorial pass is the
primary defense. If you've completed Phase 3 thoroughly and the
linter is still firing on a false positive, use --no-lint:
gbrain skillpack harvest <slug> --from <host-repo-root> --no-lintDocument the bypass in the commit message. Future maintainers should be able to see WHY the lint was bypassed (e.g. "the fork name appears in a citation, not a real reference — verified manually").
Never bypass the linter on a casual basis. The whole point of the default-on lint is that real names occasionally slip through the editorial pass.
skills/<slug>/
stays in place.--all (no batch harvest). One skill at a
time keeps the editorial review tractable.skills/<slug>/ — every file in the host skill dir
(copy)src/commands/<slug>.ts if the host SKILL.md declares it
in frontmatter)openclaw.plugin.json — adds the slug to skills:
array, sorted alphabetically, without removing OpenClaw-native plugin fields
like id, configSchema, or contracts© garrytan, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/skillpack-harvest of garrytan/gbrain.
Open the folder on GitHubat commit f250a51
Skillpack Harvest next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Skillpack Harvest this skillgarrytan/gbrain | 31k | — | ~2.8k | Automated safety check: Pass | MIT | |
| Minimizing Ty Ecosystem Changesastral-sh/ruff | 50k | — | ~4.6k | Automated safety check: Pass | MIT | |
| Install Anti-Slop Oxlint Rulesdmmulroy/anti-slop | 5.4k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Babysit PR To Pass CIsgl-project/sglang | 37k | 2 repos | ~3k | Automated safety check: Pass | Apache-2.0 | |
| Rust Best Practicesfarm-fe/farm | 5.6k | 3 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Summarise Ecosystem Resultsastral-sh/ruff | 50k | — | ~2.2k | Automated safety check: Pass | MIT |
astral-sh/ruff
A skill your agent uses when a user says "minimize this ty ecosystem change", "reproduce this ecosystem result", "investigate a primer difference", "investigate a mypyprimer difference"…
dmmulroy/anti-slop
Installs, updates or migrates the vendored anti-slop Oxlint plugin in a repository, keeping local rule changes and the plugin's license and provenance files.
sgl-project/sglang
Start and persistently pursue a goal to babysit an SGLang pull request until selected GitHub Actions workflows pass on the latest PR head.
farm-fe/farm
Guide for writing idiomatic Rust code based on Apollo GraphQL's best practices handbook.
astral-sh/ruff
A skill your agent uses when a user says "summarise ecosystem results", "summarize this ty ecosystem report", "what changed in this ecosystem run?", or asks to summarise or summarize ty ecosystem…
chromedp/chromedp
This skill should be used when the user is writing Go code and needs guidance on Go-specific pedantry: error wrapping with fmt.Errorf and %w, interface design (accept interfaces return structs)…
garrytan/gbrain
Traces a factual error the user points out back to its source (a brain page, a memory file, SOUL.md or USER.md, or a hallucination) and fixes that source instead of just noting the correction.
garrytan/gbrain
Searches and writes a company-wide knowledge brain through the gbrain CLI, so durable decisions and facts about people, projects and history stay findable beyond one session.
garrytan/gbrain
Ingest links, articles, tweets, and ideas into the brain. An agent skill from garrytan/gbrain.
garrytan/gbrain
Sends what your notes already know about a topic to Perplexity, so the cited web search reports only what is new, such as entity updates or deal changes.
garrytan/gbrain
Migrate a brain from gbrain-base (or any pack) to gbrain-base-v2's 14-canonical-type taxonomy via gbrain onboard --check + the unify-types Minion handler.
garrytan/gbrain
Run gbrain skillpack-check to produce an agent-readable JSON health report for the gbrain install.
Categories
Lift a proven skill from a host repo (e.g. An agent skill from garrytan/gbrain. Skillpack Harvest is an agent skill from garrytan/gbrain.g.
Skillpack Harvest fits situations like: tasks that involve Linting and formatting.
Run `npx skills add garrytan/gbrain --skill skillpack-harvest -a claude-code`. Or copy the skill folder (skills/skillpack-harvest in garrytan/gbrain) into .claude/skills/skillpack-harvest in your project. Claude Code loads it when a task matches its description.
Run `npx skills add garrytan/gbrain --skill skillpack-harvest -a codex`. Or copy the skill folder (skills/skillpack-harvest in garrytan/gbrain) into .agents/skills/skillpack-harvest in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add garrytan/gbrain --skill skillpack-harvest -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/skillpack-harvest, .gemini/skills/skillpack-harvest, .github/skills/skillpack-harvest and .opencode/skills/skillpack-harvest in your project.
Going by SKILL.md and its folder, Skillpack Harvest needs the command-line tools its instructions call (bun and git).
SKILL.md contains no URLs. Its commands use git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Skillpack Harvest is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.8k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Skillpack Harvest: Minimizing Ty Ecosystem Changes (astral-sh/ruff, 50k stars), Install Anti-Slop Oxlint Rules (dmmulroy/anti-slop, 5.4k stars), Babysit PR To Pass CI (sgl-project/sglang, 37k stars) and Rust Best Practices (farm-fe/farm, 5.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
garrytan (a GitHub user) maintains it in garrytan/gbrain, which has 30,736 GitHub stars. The repository holds 47 skills in this directory. The repository was last updated on October 10, 2026.
Source: garrytan/gbrain on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.