Guide · Agent skill
How to use the Skillpack Harvest agent skill
Updated · written with AI from the project's own documentation and checked against our catalogue data
The skillpack-harvest skill guides an AI agent through copying a skill that works well in your private setup, such as a personal OpenClaw fork, into the public gbrain project so other gbrain users can reuse it. It is for maintainers of gbrain or its forks, and for developers who keep a private agent fork and want to contribute generalized skills back. After this guide you will know how to install the skill, how to trigger it, what the harvest steps are, and what to check before anything is committed.
Quick start
- 1Download and unzip. Download the skillpack-harvest ZIP from the directory page and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder. In the Claude apps, you can upload the ZIP under Settings → Capabilities → Skills instead.
- 2Check the requirements. Make sure you have the gbrain CLI with the skillpack harvest command, Bun, a local gbrain git checkout, and a host repository that contains the skill.
- 3Ask for a dry run. Ask the agent to harvest your skill by name. It will plan the slug and host path, then run the dry run to preview the file set.
- 4Complete the editorial pass. Let the agent replace names, real entities and internal channels with placeholders in the host files, then check triggers and routing-eval examples.
- 5Run the real harvest. Once the checklist is done, the agent runs the real harvest and checks for status harvested with no privacy-lint hits.
- 6Test and review. Run the conformance test with Bun, then review the diff in gbrain. Commit only after you approve the changes.
What the skill makes the agent do
Harvest lifts a proven skill from a host repository into gbrain's bundle. The gbrain CLI does the file copy and the privacy lint. The agent handles the judgment-heavy part: replacing real names, people, companies and internal channels with generic placeholders, generalizing trigger phrases, and moving fork-specific conventions into references.
The skill is the reverse of gbrain's scaffold command. Scaffold ships skills downstream from gbrain to a host. Harvest sends proven patterns upstream from a host to gbrain, so other clients can scaffold them.
- Copies the skill into gbrain's working tree under skills/<slug>/
- Can include paired source files listed in the host SKILL.md frontmatter sources: array
- Adds the new slug to skills: in openclaw.plugin.json (sorted)
- Runs a dry-run preview and a privacy lint before the real harvest
- Leaves the result uncommitted until you review the diff and approve the commit
Install the skill in Claude
Download the skillpack-harvest ZIP from the directory page. Unzip it into your user skills folder, ~/.claude/skills/, or into a project's .claude/skills/ folder if you want the skill available only in that project.
In the Claude apps you can instead upload the ZIP under Settings → Capabilities → Skills.
- Personal install: unzip into ~/.claude/skills/
- Project install: unzip into .claude/skills/ inside the project
- App install: upload the ZIP under Settings → Capabilities → Skills
Trigger the skill with natural requests
You do not need a special command. Ask in plain language, and the agent will match your request against the skill's trigger phrases. Name the skill you want to harvest, and the agent will ask for the slug and the host repository path if it does not already have them.
The source lists these trigger phrases: "harvest this skill", "harvest my skill", "publish this skill to gbrain", "lift this skill", "share this skill", "promote this skill", "promote my skill", "skill upstream", "into the gbrain core" and "gbrain bundle".
- "Harvest my skill called invoice-triage from ~/git/agent-fork into gbrain."
- "Promote this skill to gbrain. Start with the dry run."
- "Share this skill upstream, but scrub my names and company first."
Run a harvest, step by step
Phase 1 is planning. The agent asks for a kebab-case slug that is unique in the gbrain bundle, the path to the host repository root (not the skill folder), and whether paired source files should come along.
Phase 2 is the dry run. It shows which files would land in gbrain's tree and whether paired sources are included. Phase 3 is the editorial pass, where the agent walks the host's skill files and applies a checklist. Phase 4 is the real harvest, which runs only after Phase 3 is complete.
- Phase 3 covers names, real entities, email addresses, Slack channels and ticket IDs
- It also checks that triggers do not mention your name, fork name or internal tools
- routing-eval.jsonl intent fields get the same scrub as triggers
- Comments and log strings in paired source files are checked for private details
gbrain skillpack harvest <slug> --from <host-repo-root> --dry-runSafety notes: scripts and network
This skill is marked as mutating and runs scripts, so it changes files in your gbrain checkout. The source says harvest is a copy, so the host keeps its skill. It does not declare network use. Harvest writes into gbrain's working tree, and nothing counts as landed until the user has reviewed the diff and approved the commit.
If the harvest finishes with status harvested and the privacy lint reports no hits, the skill still is not done until the conformance test passes and the user has approved the commit.
- Files land in the working tree, so a git checkout can undo them if you change your mind
- Do not run the harvest into a gbrain checkout you do not intend to commit from
- Do not remove the source skill after harvesting
- Harvesting with --no-lint is discouraged; if you must, document the reason in the commit
Tips and common mistakes
Harvest a skill only after it has proven itself. The source asks that recent routing-eval cases pass and that the skill has been used in production a few times. Harvesting a skill that is still changing causes repeated re-harvests and churn in gbrain's bundle.
If the linter catches a real name or private detail, go back to Phase 3 and replace it with placeholders such as alice-example, acme-example or fund-a. Do not rely on the linter alone, because its default regex set does not catch every proper noun.
- Run the dry run every time, even for small edits
- Strip-test the skill in your head: would it still make sense with every fork-specific name replaced?
- If skillpack check --strict reports drift after harvesting, regenerate the bundle and re-run rather than shipping a drifting skillpack
- Batch harvesting several skills at once is not supported
Test the harvested skill
After the real harvest, the source requires that the conformance test pass on the new SKILL.md. Bun is needed to run the test file test/skills-conformance.test.ts inside the gbrain checkout. If the test fails, fix the file and run the check again before asking for commit approval.
bun test test/skills-conformance.test.tsWhat people use it for
- Sharing a battle-tested skill from a private OpenClaw fork with other gbrain users
- Generalizing a personal workflow skill so its triggers and examples fit any team
- Contributing a generalized skill from a downstream fork back to the gbrain bundle
- Reviewing a skill's privacy risks before a public commit
Frequently asked questions
Is the skillpack-harvest skill free?
The skill is published under the MIT licence. Its source describes the work it does, but it does not list any price, so check the directory page for current terms.
What do I need to use the skillpack-harvest skill?
You need the gbrain CLI with the skillpack harvest command, Bun to run the conformance test file, a local gbrain git checkout, and a host repository that contains the skill. The skill runs scripts and does not declare network use.
How do I install the skillpack-harvest skill?
Download the ZIP from the directory page and unzip it into ~/.claude/skills/ for personal use or into .claude/skills/ for one project. You can also upload the ZIP in the Claude apps under Settings → Capabilities → Skills.
Should I use harvest or a gist to share a skill?
Use a gist for a one-off draft. Harvest is for a stable, generalizable skill that works in production and needs a gbrain checkout, because it writes into the gbrain bundle and goes through review.
What happens if the privacy lint fails?
The status will show lint_failed and the linter found a real name or private detail. Go back to the editorial pass, replace the item with a placeholder such as alice-example or acme-example, and run the harvest again.
Can the skill harvest several skills at once?
No. The source says batch harvesting is not supported because the editorial review for each skill is real work, so harvest one skill at a time.
New agent skills, repos and AI tools — every week
The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.
Our verdict
Use this skill if you maintain gbrain or a fork and want to share a mature, generalizable skill upstream with a careful review step. Pick something else if you only want to share a rough draft, which a gist handles better, or if the skill depends on private content that cannot be replaced with placeholders.
Download the skill