agentleFS
drinkspillerdrinkspiller/skills/install_skill_from_github/SKILL.md

install-skill-from-github

Skill1 starsChanged 6 days agoUnlicenseView on GitHub

Install and convert GitHub-hosted AI agent skills (Claude Code, Anthropic, community) into Gemini format. Use when the user asks to install a skill from GitHub, convert a .claude skill, port a Claude Code skill, or add an external skill to their Gemini configuration.

The file

We split this skill into the rules it gives an agent

7 rules. About 0 are common, 3 are distinctive, and 4 are very specific to this project.

  • ≈0

    Common · estimate

    Many files like this have a rule of this kind.

  • ≈3

    Distinctive · estimate

    This author's own choices. Worth a look.

  • 4

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Use the GitHub API or raw URLs to retrieve skill content:

    line 24
  2. Very specific:

    Every SKILL.md MUST have:

    line 95
  3. Very specific:

    When a skill references ADRs (Architecture Decision Records), adapt: - "ADR" → "Conductor track spec / project guidelines" - "architecture …

    line 122
  4. Very specific:

    When a skill references external tools, consider Google equivalents: - git bisect → works in Fig/hg too (adapt syntax) - npm test / jest → …

    line 129
  5. Distinctive:

    When a source skill uses hooks, convert them to explicit instructions:

    line 136
  6. Very specific:

    Before writing any file, run scripts/lint-check.sh to validate the change.

    line 145
  7. Distinctive:

    Create the skill directory and files:

    line 149

≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Install Skill from GitHub

Fetches, converts, and installs skills from GitHub repositories into Gemini format under configs/users/<username>/_agents/skills/.

Quick Reference

Target path:  configs/users/<username>/_agents/skills/<skill_name>/SKILL.md
              (configs/ is a SIBLING of google3/, not inside it)

Step 1 — Fetch the Skill

Use the GitHub API or raw URLs to retrieve skill content:

# List directory contents
https://api.github.com/repos/{owner}/{repo}/contents/{path}

# Fetch raw file
https://raw.githubusercontent.com/{owner}/{repo}/{branch}/{path}

For standalone repos (skill IS the repo), use the root: https://api.github.com/repos/{owner}/{repo}/contents/

Step 2 — Identify the Source Format

Source FormatIndicator
Claude Code skillHas SKILL.md with frontmatter, may have commands/
Claude project fileHas CLAUDE.md at repo root
Anthropic official skillUnder anthropics/skills repo
Community skillStandalone repo with SKILL.md or README.md

Step 3 — Convert to Gemini Format

Conversion Rules

Source FeatureGemini EquivalentAction
SKILL.md with YAMLSameKeep as-is; validate
: frontmatter (name, : : format :
: description) : : :
README.md as the skillMust be SKILL.mdRename, add YAML
: file : : frontmatter :
CLAUDE.md (projectNot a skill — becomesExtract relevant
: brain) : a rule or : instructions :
: : Conductor context : :
hooks / lifecycle events**Not supported inConvert hook logic to
: (PreToolUse, : Gemini skills** : explicit instructions :
: PostToolUse, etc.) : : in SKILL.md body :
Slash commands**Not nativelyConvert to trigger
: (/command) : supported** : phrases in the :
: : : description field :
commands/ directoryNot supportedInline command
: : : instructions into :
: : : SKILL.md body :
settings.json / toolNot supportedRemove; document as
: permissions : : manual config if :
: : : critical :
allowed-toolsNot supportedRemove
: frontmatter field : : :
disable-model-invocationNot supportedRemove
: frontmatter : : :
context: forkNot supportedRemove; note in
: frontmatter : : SKILL.md if isolation :
: : : matters :
!command dynamicNot supportedReplace with explicit
: injection syntax : : script references :
$1, $2 positionalNot supportedRewrite as natural
: arguments : : language prompts :
ADR referencesReplace withUpdate paths and
: : Conductor : terminology :
: : references : :
scripts/ directorySameCopy over
references/ directorySameCopy over
examples/ directorySameCopy over
resources/ or assets/SameCopy over
templates/ directorySameCopy over
LICENSE.txtKeep if presentCopy over

Frontmatter Validation

Every SKILL.md MUST have:

---
name: kebab-case-name        # Max 64 chars, gerund preferred
description: >               # Max 1024 chars, third-person
  What the skill does and when to use it. Include trigger
  keywords users might say.
---

Directory Structure

configs/users/<username>/_agents/skills/
└── my_skill/                 # snake_case directory name
    ├── SKILL.md              # Required — entry point
    ├── scripts/              # Optional — executable helpers
    ├── references/           # Optional — supplemental docs
    ├── templates/            # Optional — file templates
    └── resources/            # Optional — static assets

Step 4 — Adapt Content for Google/Gemini Context

Conductor Adaptation

When a skill references ADRs (Architecture Decision Records), adapt: - "ADR" → "Conductor track spec / project guidelines" - "architecture decision records" → "Conductor context (conductor/ directory)" - docs/adr/ paths → conductor/ directory references - "decision log" → "Conductor track plan"

Google3 Adaptation

When a skill references external tools, consider Google equivalents: - git bisect → works in Fig/hg too (adapt syntax) - npm test / jest → blaze test - curl → works as-is - File paths → use google3 conventions when relevant

Hook Conversion

When a source skill uses hooks, convert them to explicit instructions:

Before (Claude hook): json {"event": "PreToolUse", "tools": ["write_to_file"], "command": "scripts/lint-check.sh"}

After (Gemini instruction in SKILL.md): ```markdown

Pre-write Checklist

Before writing any file, run scripts/lint-check.sh to validate the change. ```

Step 5 — Write Files

Create the skill directory and files:

configs/users/<username>/_agents/skills/<skill_name>/SKILL.md
configs/users/<username>/_agents/skills/<skill_name>/scripts/...
configs/users/<username>/_agents/skills/<skill_name>/references/...

[!IMPORTANT] configs/ is a sibling of google3/, not inside it. The full path is: /google/src/cloud/<user>/<workspace>/configs/users/...

Step 6 — Verify

  • SKILL.md has valid YAML frontmatter with name and description
  • Directory name is snake_case
  • name field is kebab-case
  • description is third-person, includes trigger keywords
  • All referenced scripts/files exist
  • No Claude-specific features left unconverted (hooks, commands, etc.)
  • Content adapted for Google/Gemini context where relevant

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.