Shared Agents

sa sync · pull team repo

Skills and rules

Skills and rules

Shared Agents distributes skills (agent workflows) and rules (standing instructions) from Core and your private team repo into each supported IDE.

Skills

Skills live as SKILL.md files in directories under:

SourcePathVisibility
Core$SHARED_AGENTS_HOME/skills/<name>/Public GitHub
Team$SHARED_AGENTS_HOME/team/skills/<name>/Private team repo

After sa sync, symlinks point tool skill dirs (e.g. ~/.agents/skills, ~/.claude/skills) at these folders.

Create a team skill

sa skill new                 # interactive wizard
sa skill list
sa skill rm [name]           # picker if name omitted

# Non-interactive
sa skill new --name my-skill --description "When user asks about …"
sa skill rm my-skill -y --no-git

Wizard writes team/skills/<name>/SKILL.md, then offers commit + push to the team remote.

Core skills (contributors)

Add under skills/<name>/SKILL.md in the public repo. Keep content OSS-safe (no secrets, no client-specific paths). See Contributing.


Rules

SourcePathFormat
Core$SHARED_AGENTS_HOME/rules/.mdc files
Team$SHARED_AGENTS_HOME/team/rules/flat *.mdc

No pending/review workflow for rules (unlike learnings). Edit → commit/push team repo → teammates sa sync.

How rules reach each tool

Adapter typeDelivery
CursorSymlinks → ~/.cursor/rules/
AGENTS.md / CLAUDE.md toolsMerged <!-- shared-agents:team-rules:begin/end --> block
Dedicated target file (Cursor)Existing non-symlink files are not overwritten

Optional frontmatter in team rules:

targets: [zed, claude-code, cursor]

Empty targets = all adapters.

Create a team rule

sa rule new                  # slug, title, description, targets, body
sa rule list
sa rule rm [slug]

sa rule new --name my-rule --description "…" --targets cursor,zed
sa rule rm my-rule --no-git

Sync vs install

CommandSkills & rules
sa syncPull Git + refresh symlinks / marker blocks (daily)
sa installFirst-time hooks, base <!-- shared-agents:begin --> blocks, new tool

Run sa install when you add a new AI tool. Run sa sync after teammates push team content.


Repair

If Cursor rules exist as regular files instead of symlinks:

sa doctor --fix

See also