TaskSkills

Skill packs from git

Import a GitHub repository of SKILL.md files as account or project skills — with a plan that shows what lands and what is excluded and why, provenance on every skill, and pinned or tracked updates.

Updated 9/15/2026

A pack is a GitHub repository that carries SKILL.md files — yours, or one somebody published. Registering it does not import anything: it shows you the plan first, and you import from that.

Register a pack

Skills → Packs → Register a pack (an owner or admin). You give:

FieldWhat it does
Repository URLhttps://github.com/<owner>/<repo> — github.com only for now
Branch, tag or commitwhat to import (main by default)
UpdatesPinned — we tell you when upstream moves and you import; Tracked — upstream changes are imported automatically every 15 minutes
TrustInternal for your own repository, Third-party for anyone else's
Credentialnone for a public repository; a GitHub connection of this account for a private one
Advancedskill_globs (only these directories), exclude (never these), field_overrides (map their frontmatter keys onto ours)

A pack registered from a project page lands its skills in that project; from the account settings, in the account.

The plan

Fetch the plan resolves the ref to a commit and reads the tree. Every SKILL.md is listed under one of two headings:

  • Eligible — it would import. Each row shows the path, whether the skill writes (side effects) and how many secrets it references.
  • Excluded, with the reason:
ReasonWhy
Personal scopeits frontmatter says scope: personal (or similar) — a pack imports team skills only
Private / agent-onlymarked private, or the body carries THE-AGENT-ONLY
Name already takena skill with that name already resolves in the target scope; a pack never overwrites
Binary sidecara file next to SKILL.md is not text; sidecars are text only
Malformed SKILL.mdthe frontmatter does not parse, or a required field cannot be derived
Needs a bindingkind: mcp_tool, composition, integration_action or model_call — those need a binding a pack cannot carry
Over the size capthe body or the sidecars exceed the limits
Denylisted herethe name is on this account's skill denylist

Nothing is silently dropped. Tick the eligible skills you want and Import selected, or Import all.

What we read from their frontmatter

Packs are written for many tools, so the importer understands a few dialects. Their key → ours:

TheirsOurs
when-to-use, usage, triggerswhen_to_use
visibilityscope
agent_only, agent-onlyprivate
side_effects, readonlyeffects
declared_creds, declaredCredsenv
required_capabilities, requiredCapabilitiescapabilities
allowed-toolsallowed_tools

A missing description is taken from the first line of prose; a missing name from the directory. $UPPER_SNAKE references in the body are recorded as the secrets the skill expects. Keys we do not recognise are kept and shown on the skill page, never enforced. A body that is exactly one fenced typescript or python block with kind: script imports as a script skill; everything else is a prompt skill.

After import

Each imported skill is a normal skill of the account or project: it resolves, forks and archives like any other, and its page carries a provenance line — From pack … @ commit · path — linking the file in the repository. Re-importing the same commit changes nothing; a changed file becomes a new revision (the old one is kept); a file removed upstream archives the skill.

Updates

  • Pinned: the sync checks the ref every 15 minutes and marks the pack update available when upstream moved; the pack page names both commits. Fetch the plan, review, import.
  • Tracked: upstream changes are imported at the next sync; the skills' revisions record which commit each came from.

A fetch that fails (a revoked credential, a deleted repository) is recorded on the pack — nothing is archived on an error.

Private repositories

Add a GitHub connection under Connections and pick it as the pack's credential. The token never leaves our fetch path and is never shown in an error.

Removing a pack

Remove pack archives every skill the pack imported and keeps their revisions; agents stop resolving them at once. Registering the same repository again brings them back on the next import.

What this does not do

  • github.com repositories only; a private one needs a GitHub connection of the account.
  • A pack never overwrites a skill whose name is already taken in the target scope — it is excluded, not merged.
  • Skills that need a binding (MCP tool, composition, integration action, model call) and personal or private skills do not import.
  • Tracked packs follow upstream every 15 minutes; a failed fetch archives nothing.

Ask Zero

Ask a question about connect0 and get an answer grounded in the docs, with links to the sources. Signed in? Zero answers with your account in mind.