Skip to content
Merged
Show file tree
Hide file tree
Changes from 202 commits
Commits
Show all changes
205 commits
Select commit Hold shift + click to select a range
5160ed5
feat(resource): add ResourceKind interface, SkillKind/AgentKind imple…
runkids Mar 29, 2026
c049ccd
feat(config): add agents_source field and create agents directory on …
runkids Mar 29, 2026
ea055de
refactor(registry): rename SkillEntry to ResourceEntry and add unifie…
runkids Mar 29, 2026
9a4fbdc
feat(sync): add agent sync engine with merge, symlink, and copy modes
runkids Mar 29, 2026
ba1b03f
feat(install): add agent discovery, install flow, and --kind/--agent …
runkids Mar 29, 2026
949fd44
feat(check,trash): add agent drift detection and agent trash support
runkids Mar 29, 2026
e2101ab
feat(cli): add resource kind filter parsing for CLI commands
runkids Mar 29, 2026
12f8c52
feat: add .agentignore support and agent file validation
runkids Mar 29, 2026
6f2932c
feat(api): add agent support to overview, skills, and targets endpoints
runkids Mar 29, 2026
5536cac
feat(ui): add agent kind types to API client and KindBadge component
runkids Mar 29, 2026
47da532
feat(cli,api): add agent info to status, doctor, and trash handler
runkids Mar 29, 2026
9a053a3
feat(ui): add agent stat card, kind filter tabs, and kind fields to A…
runkids Mar 29, 2026
017dc22
feat: add --kind agent to enable/disable and agent path to TargetsPage
runkids Mar 29, 2026
4c43506
feat: agent detail endpoint, project reconcile, and TrashPage badge
runkids Mar 29, 2026
6659898
feat: add kind badge to SkillDetailPage and kind arg to audit command
runkids Mar 29, 2026
57cfab7
feat(cli): add kind filter to check and uninstall commands
runkids Mar 29, 2026
5dc981a
feat(audit): wire agent-only audit filtering via kind arg
runkids Mar 29, 2026
e29a42d
feat(cli): add kind arg to update command and kind field to diff output
runkids Mar 29, 2026
c176d89
feat(api): add kind field to sync, audit, check, update, and install …
runkids Mar 29, 2026
2f4021f
feat: add kind badge to list TUI and remaining frontend pages
runkids Mar 29, 2026
abd2328
feat(ui): add KindBadge to CollectPage and BatchUninstallPage
runkids Mar 29, 2026
2cb830f
feat(check): add remote update detection for tracked agents
runkids Mar 29, 2026
9896aa7
docs: add Agents concepts page to website documentation
runkids Mar 29, 2026
8ed32e2
feat(install): discover agents in tracked repos on clone and update
runkids Mar 30, 2026
f8c958d
test: add agent integration tests for install, check, enable, and uni…
runkids Mar 30, 2026
d759a7e
docs: add agent support to all command reference and getting-started …
runkids Mar 30, 2026
eff9647
refactor(ui): rename SkillsPage to ResourcesPage with Skills/Agents tabs
runkids Mar 30, 2026
c61033a
refactor(ui): use connected SegmentedControl style for Skills/Agents …
runkids Mar 30, 2026
e5d512f
refactor(ui): replace SegmentedControl with underline tabs for Skills…
runkids Mar 30, 2026
79b717e
fix(ui): use ss-segmented classes for resource tabs to inherit playfu…
runkids Mar 30, 2026
d3851b1
refactor(ui): underline tabs with playful theme support for resource …
runkids Mar 30, 2026
84c6031
fix(ui): remove redundant count subtitle from Resources page header
runkids Mar 30, 2026
273277c
fix(ui): use Layers icon for Resources header to avoid tab icon dupli…
runkids Mar 30, 2026
d690408
fix(ui): increase spacing between Resources header and tabs
runkids Mar 30, 2026
e4301f5
feat(ui,api): kind-first install flow for mixed repos + discover agents
runkids Mar 30, 2026
60489b3
fix(install): route agent installs to agents source directory
runkids Mar 30, 2026
a2d3b47
fix(install): discover agents in subdir URLs and fix single-item kind…
runkids Mar 30, 2026
da4f460
fix(ui): dynamic picker modal title based on resource kind
runkids Mar 30, 2026
9ffc7bb
fix(ui): center-align checkbox with skill name in picker modal
runkids Mar 30, 2026
6c339da
fix(ui): align checkbox with first text line and fix install summary …
runkids Mar 30, 2026
9be0ea0
fix: agent list metadata, detail lookup, card icon, and time format
runkids Mar 30, 2026
974c3d5
fix(ui): agent detail hides Files, tab persists to localStorage, fold…
runkids Mar 30, 2026
e6e41c1
fix(ui): use props instead of parent scope vars in FolderTreeView
runkids Mar 30, 2026
ca73b40
feat: warn when agents installed/synced but no targets support agents
runkids Mar 30, 2026
cb55ffe
feat(agents): add positional kind filter and wire agents into list, s…
runkids Apr 6, 2026
c2b9a15
feat(agents): wire kind filter into status, diff, doctor (Phase 3)
runkids Apr 6, 2026
95c46ca
feat(agents): wire backup/restore and update CLI help text (Phase 4)
runkids Apr 6, 2026
eceb9cc
test(agents): fill coverage gaps — project mode uninstall, trash empt…
runkids Apr 6, 2026
586f0f5
fix(agents): correct project-mode agent dispatch for all commands
runkids Apr 6, 2026
075c019
feat(agents): implement project-mode agent support for all commands
runkids Apr 6, 2026
43d6bd1
refactor(agents): simplify — extract shared helpers, fix path bug, us…
runkids Apr 6, 2026
b93518e
test(e2e): add agents runbook and fix all 33 runbooks to 361/361 pass
runkids Apr 6, 2026
30f8fb0
feat(agents): add project-mode backup and restore for agents
runkids Apr 7, 2026
be962fd
feat(tui): add k:kind filter tag for agent/skill filtering in list
runkids Apr 7, 2026
3c3139f
feat(tui): pass agentsSourcePath and route actions per kind in list TUI
runkids Apr 7, 2026
a941b61
feat(tui): support agent content viewing in list detail panel
runkids Apr 7, 2026
dc4ef27
feat(tui): add agent badge and correct restore routing in trash TUI
runkids Apr 7, 2026
11aebd2
feat(tui): show agent badge and route agent restore in backup restore…
runkids Apr 7, 2026
98bd7d7
feat(tui): show agent diffs with [A] badge in diff TUI
runkids Apr 7, 2026
031306a
test(tui): add integration tests for agent TUI features
runkids Apr 7, 2026
5f7d9ad
fix(ui): resolve TypeScript errors — add ResourceTab type, useSearchP…
runkids Apr 7, 2026
91057c1
feat(install): detect and install agents from pure-agent repos
runkids Apr 7, 2026
9f77ac0
feat(install): add TUI multi-select and batch progress for agent install
runkids Apr 7, 2026
e2a3d70
fix: install agents from mixed repos after skills
runkids Apr 7, 2026
73d4d32
feat(sync): warn when targets are skipped for agents (no agents path)
runkids Apr 7, 2026
de49f31
test: add E2E test for mixed-repo install then sync to correct targets
runkids Apr 7, 2026
9d934f8
fix: pass AgentsSource to Config in project mode install
runkids Apr 7, 2026
5afaf57
feat(tui): add tab switching between skills/agents in list TUI
runkids Apr 7, 2026
3241159
style(sync): unify summary format and headers across skills, agents, …
runkids Apr 7, 2026
34c275a
fix(sync): remove extra indent between checkmark and path in extras o…
runkids Apr 7, 2026
49d3393
feat(sync): skip extras 'agents' targets that overlap with agents sync
runkids Apr 7, 2026
ebcfaf6
feat(agents): add --group support, fix nested discovery, and improve …
runkids Apr 7, 2026
dad90d7
feat: add MetadataStore core types and CRUD operations
runkids Apr 7, 2026
e9eee35
feat: add MetadataStore Load/Save with atomic writes
runkids Apr 7, 2026
fa5679d
feat: add MetadataStore helpers (SetFromSource, ComputeEntryHashes, R…
runkids Apr 7, 2026
ce6be17
feat: add migration from old sidecar + registry to .metadata.json
runkids Apr 8, 2026
5310297
refactor: mark legacy meta functions as deprecated, skip .metadata.js…
runkids Apr 8, 2026
1f1790b
refactor: replace Registry with MetadataStore in reconcile, server, i…
runkids Apr 8, 2026
ad05ed9
refactor: replace ReadMeta in update handlers with MetadataStore
runkids Apr 8, 2026
e62f729
refactor: partial uninstall migration to MetadataStore
runkids Apr 8, 2026
d0a1df3
refactor: replace ReadMeta in server handler_skills and handler_update
runkids Apr 8, 2026
ed1beb1
refactor: replace all remaining ReadMeta/LoadRegistry with MetadataStore
runkids Apr 8, 2026
e91890d
test: fix all integration tests for centralized .metadata.json format
runkids Apr 8, 2026
424a9df
chore: remove debug test files and local metadata
runkids Apr 8, 2026
34b6c2a
test: fix remaining unit tests for centralized metadata store keys
runkids Apr 8, 2026
2acfec8
refactor: simplify metadata — extract helpers, remove dual-write, add…
runkids Apr 8, 2026
9025fb3
docs: update website docs for centralized .metadata.json format
runkids Apr 8, 2026
7290884
fix: use full-path metadata keys to prevent grouped skill collisions
runkids Apr 8, 2026
4af128f
fix: migrate metadata consumers from Get(basename) to GetByPath
runkids Apr 8, 2026
b526657
fix: rewrite agent update to use discovery + single-file installer
runkids Apr 8, 2026
ff032b3
test: update integration tests for full-path metadata keys
runkids Apr 8, 2026
0244abb
refactor: consolidate reconcile walk logic into shared core
runkids Apr 8, 2026
67c7010
refactor: remove dead MetadataEntry.Name field and add LoadMetadataOrNew
runkids Apr 8, 2026
7552c76
refactor: eliminate sidecar reads and use centralized metadata store
runkids Apr 8, 2026
19d88ce
chore: update schema and red team scripts for centralized metadata
runkids Apr 8, 2026
f95a113
test: migrate all test metadata to centralized store format
runkids Apr 8, 2026
d16c4f3
fix: correct metadata store routing, corruption handling, and lookup …
runkids Apr 8, 2026
585b3cd
feat(tui): add [S]/[A] kind prefix in All tab and group by kind
runkids Apr 8, 2026
27f352e
fix: resolve relative paths in project mode extras and agent targets
runkids Apr 8, 2026
43c5154
Flatten nested agent sync names
runkids Apr 8, 2026
8dff3df
refactor: pass trash dir to cmdUninstallAgents and update help text
runkids Apr 8, 2026
eadfcf3
refactor: replace positional "all" keyword with --all flag for kind f…
runkids Apr 8, 2026
525ae0b
refactor: status always shows both skills and agents
runkids Apr 8, 2026
89d40af
feat(diff-tui): single-line items with group headers
runkids Apr 8, 2026
a726e36
refactor: redesign status output — unified layout with agents in targets
runkids Apr 8, 2026
bc31eb2
fix: remove leading spaces from target name in status output
runkids Apr 8, 2026
c6564c2
fix: remove leading spaces from ui.Status and Extras output
runkids Apr 8, 2026
1ff4360
fix: keep (project) label on Source header only
runkids Apr 8, 2026
4a84796
docs: document agents_source config field
runkids Apr 8, 2026
8d90949
docs: update status.md for unified layout with agents in targets
runkids Apr 8, 2026
6abfa47
refactor: integrate agent checks into doctor targets section
runkids Apr 8, 2026
fa08916
fix: merge doctor extras check into single line per extra
runkids Apr 8, 2026
1dbfc84
fix: show [merge] mode in agent sub-items for status and doctor
runkids Apr 8, 2026
2d1a370
fix: use merged instead of synced for agent status
runkids Apr 8, 2026
baea54d
docs: update status, doctor, diff docs for unified agent layout
runkids Apr 8, 2026
36ee2fe
fix: tone down doctor target colors — only status word is colored
runkids Apr 8, 2026
693f75c
refactor: deduplicate agent path resolution and add agent backup to s…
runkids Apr 8, 2026
9eaaae5
feat(backup): auto backup agents before sync in global and project mode
runkids Apr 8, 2026
6e9177a
style: fix gofmt alignment in test files
runkids Apr 8, 2026
4426ca5
fix: resolve macOS /var → /private/var symlink in agent sync test
runkids Apr 8, 2026
081348d
refactor(collect): unify skills/agents flow with collectPlan + generics
runkids Apr 8, 2026
f5af6c3
feat(ui): unify skills/agents under /resources route and API
runkids Apr 8, 2026
3db5e02
feat(ui): redesign Targets page with equal Skills/Agents sections and…
runkids Apr 8, 2026
22e7028
docs: update target/filtering docs for agent filters and metadata.tar…
runkids Apr 8, 2026
5836a88
feat: add agent filter support to Filter Studio, targets CLI, and ove…
runkids Apr 8, 2026
2a91a72
fix(server): sync matrix agent handling and stale test routes
runkids Apr 8, 2026
30da704
fix(sync): pass -g flag to cmdSyncExtras in global --all mode
runkids Apr 8, 2026
d2bf6a0
docs: add agent management to README for v0.19.0
runkids Apr 8, 2026
2475acd
feat(ui): add agent support to batch uninstall and trash pages
runkids Apr 9, 2026
6d1f675
fix(sync): strip .md extension in agent filter matching and add tests
runkids Apr 9, 2026
baf6b18
feat(audit): add Kind field to Result, Noun helpers to kind_filter, r…
runkids Apr 9, 2026
c6f24ab
feat(audit): dynamize skill/agent terminology in CLI output
runkids Apr 9, 2026
e1c94b5
feat(server): add ?kind=agents param to audit API handlers
runkids Apr 9, 2026
86461ec
feat(audit): add Skills/Agents tab switching to TUI
runkids Apr 9, 2026
833fc86
feat(ui): add Skills/Agents tab bar to audit page
runkids Apr 9, 2026
26c5050
test(audit): verify agents/skills audit uses correct terminology
runkids Apr 9, 2026
1b9ba78
fix(audit): scan agents as individual files, not directories
runkids Apr 9, 2026
353f0cb
fix(ui): match audit tab style to resources page
runkids Apr 9, 2026
4034747
fix(audit): scan all agents including disabled ones
runkids Apr 9, 2026
91eabf3
feat(ui): cache audit results with React Query
runkids Apr 9, 2026
01a6f66
fix(ui): exclude _cross-skill from audit card count and show separately
runkids Apr 9, 2026
e1c6549
fix(ui): fix audit summary mixing agent counts with finding counts
runkids Apr 9, 2026
1249062
fix(ui): audit card icon color follows max severity
runkids Apr 9, 2026
486f135
fix(audit): exclude _cross-skill from TUI tab counts
runkids Apr 9, 2026
4c0674d
fix(audit): set agentsSourcePath in project mode for TUI tab
runkids Apr 9, 2026
33cbd17
fix(audit): show 'No skills/agents' instead of 'No items' in TUI
runkids Apr 9, 2026
ff1aedf
fix(audit): group agents by directory in TUI
runkids Apr 9, 2026
ed924c9
fix(list): fix tab bar clipped off screen in split layout
runkids Apr 9, 2026
f0f371c
fix(list): group agents by directory in TUI
runkids Apr 9, 2026
aaabc3a
refactor: simplify audit code — constants, dedup helpers, cache pattern
runkids Apr 9, 2026
3350920
feat(server): add computeAgentTargetDiff for agent diff in UI
runkids Apr 9, 2026
55e2e0e
feat(server): include agent diffs in handleDiff and handleDiffStream
runkids Apr 9, 2026
d1ac3dd
feat(server): support kind param in POST /api/sync
runkids Apr 9, 2026
dfd69b7
feat(ui): add kind param to sync API client
runkids Apr 9, 2026
3dfbff7
feat(ui): add sync scope control and kind-separated summary
runkids Apr 9, 2026
568d2b7
fix: address code review findings
runkids Apr 9, 2026
294be5f
docs(ui): update sync page and API description for kind param
runkids Apr 9, 2026
d4bd0a6
docs(sync,diff): fix agent sync description and add agent diff section
runkids Apr 9, 2026
a73d55d
refactor: extract agent helpers and simplify duplicated patterns
runkids Apr 9, 2026
4834e45
feat(server): extend collect scan to support kind=agent parameter
runkids Apr 9, 2026
4b37f1f
feat(server): extend collect endpoint to pull agents via kind field
runkids Apr 9, 2026
bf2aff0
feat(ui): extend collect API client with kind parameter
runkids Apr 9, 2026
35fcb74
feat(ui): add SegmentedControl for agent scope on Collect page
runkids Apr 9, 2026
b8a189b
Improve resource install agent support
runkids Apr 9, 2026
7e30699
feat: add tracked agent repo discovery and install support
runkids Apr 9, 2026
b23425a
feat(cli): tracked agent repo support in install, check, update, doctor
runkids Apr 9, 2026
40dca83
fix(cli): agent diff drift detection and sync prune when source empty
runkids Apr 9, 2026
da000c4
feat(server): agent tracked repo install, prune-on-empty, audit guards
runkids Apr 9, 2026
5c99a1c
feat(ui): audit cache invalidation, agent target display, UX polish
runkids Apr 9, 2026
92d5fc6
fix(agents): exclude convention files and respect agents/ subdir in t…
runkids Apr 9, 2026
3c4d057
refactor(ui): centralize display name formatting via resourceNames ut…
runkids Apr 9, 2026
0e314e1
fix(ui): apply Track badge and name formatting to sticky folder header
runkids Apr 9, 2026
cbbfcde
fix(ui): improve Sync page stats layout and ignored section grouping
runkids Apr 9, 2026
7a319fa
fix(ui): remove duplicate Track badge from card view
runkids Apr 9, 2026
8970a5e
fix(ui): sort table view by group/repo before name
runkids Apr 9, 2026
0838ee6
fix(ui): replace Track badge with GitBranch icon in tree view
runkids Apr 9, 2026
abeb5b9
fix(ui): unify resource terminology and compact action bars
runkids Apr 9, 2026
379407e
fix(ui): use GitBranch icon instead of folder for tracked repos in tr…
runkids Apr 9, 2026
0efdb64
feat(ui): add .agentignore tab to Config page
runkids Apr 9, 2026
3df973c
feat(ui): redesign UpdatePage with selecting/updating/done phases
runkids Apr 9, 2026
49dcbd0
fix(doctor): exclude disabled agents from drift count
runkids Apr 9, 2026
7537872
fix(ui): address spec compliance issues in UpdatePage
runkids Apr 9, 2026
03a7b7a
refactor(ui): fix quality issues in UpdatePage — EventSource leak, de…
runkids Apr 9, 2026
17ab4aa
feat(ui): add skills/agents tabs and group-based sort to UpdatePage
runkids Apr 10, 2026
c501e55
fix(ui): propagate tracked repo check status to all items in the repo
runkids Apr 10, 2026
8d8434d
fix(ui): remove pop-in check progress bar to avoid layout shift
runkids Apr 10, 2026
275fe3e
test(testutil): add RunCLIEnv helper for env-var-based CLI tests
runkids Apr 10, 2026
36e2247
feat(theme): add internal/theme package with palettes and detection
runkids Apr 10, 2026
47fe1b8
refactor(tui): migrate list TUIs to theme package
runkids Apr 10, 2026
5b35a0e
refactor(ui): migrate plain CLI output to theme.ANSI()
runkids Apr 10, 2026
8955ce7
refactor(tui): migrate remaining TUIs to theme package
runkids Apr 10, 2026
ea2abf0
refactor(tui): delete legacy tui_colors.go and add doctor theme check
runkids Apr 10, 2026
526fbbd
fix(ui): add missing 'warning' variant to Button component
runkids Apr 10, 2026
ce7c7d1
fix(list): group TUI entries by tracked repo root and local top dir
runkids Apr 10, 2026
788f9bc
feat(agents): JSON output + audit gate for install/update
runkids Apr 10, 2026
806045d
docs(agents): expand docs + skillshare SKILL.md for agent workflows
runkids Apr 10, 2026
072d8b9
fix(install): resolve blob URLs pointing at SKILL.md to the skill dir…
runkids Apr 10, 2026
f3176da
fix(install): include root skill in individual selection for orchestr…
runkids Apr 10, 2026
50b0aba
fix(install): install orchestrator children as independent skills
runkids Apr 10, 2026
4e200e3
fix(install): validate git source in InferTrackedKind before clone at…
runkids Apr 10, 2026
6eb054c
test(e2e): add issue #124 orchestrator install runbook
runkids Apr 10, 2026
d892eca
feat(install): explicit SKILL.md URLs resolve to single skill + radio…
runkids Apr 10, 2026
f2a6a39
chore: release v0.19.0
runkids Apr 10, 2026
5476ec8
fix(tests): remove unused os import in install_online_test
runkids Apr 10, 2026
953db06
ci: bump online test timeout to 600s for antigravity audit tests
runkids Apr 10, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .mdproof/lessons-learned.md
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,13 @@
- **Fix**: Use `>/dev/null 2>&1` (redirect both stdout AND stderr) for cleanup commands in steps that need pure JSON output
- **Runbooks affected**: extras_flatten_runbook.md

### [gotcha] chmod 0444 does not block writes when running as root

- **Context**: `TestLog_SyncPartialStatus` used `os.Chmod(dir, 0444)` to make a target directory read-only, expecting sync to fail on that target and log `"status":"partial"`
- **Discovery**: The devcontainer runs as root. Root ignores POSIX permission bits — `chmod 0444` has no effect. The "broken" target synced successfully, so the oplog recorded `"status":"ok"` instead of `"partial"`
- **Fix**: Use a **dangling symlink** instead: `os.Symlink("/nonexistent/path", targetPath)`. This makes `os.Stat` return "not exist" (passes config validation) but `os.MkdirAll` fails because the symlink entry blocks directory creation. Works regardless of UID
- **Runbooks affected**: `tests/integration/log_test.go` (`TestLog_SyncPartialStatus`)

### [gotcha] Full-directory mdproof runs cause inter-runbook state leakage

- **Context**: Running `mdproof --report json /path/to/tests/` executes all runbooks sequentially in the same environment (same ssenv). Earlier runbooks install skills, modify config, fill trash — this state persists for later runbooks
Expand Down
21 changes: 15 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
</p>

<p align="center">
<strong>One source of truth for AI CLI skills, rules, commands & more. Sync everywhere with one command — from personal to organization-wide.</strong><br>
<strong>One source of truth for AI CLI skills, agents, rules, commands & more. Sync everywhere with one command — from personal to organization-wide.</strong><br>
Codex, Claude Code, OpenClaw, OpenCode & 50+ more.
</p>

Expand All @@ -40,7 +40,7 @@
</p>

> [!NOTE]
> **Latest**: [v0.18.3](https://github.com/runkids/skillshare/releases/tag/v0.18.3) — enable/disable skills, skills sub-key config, upgrade auto-sudo. [All releases →](https://github.com/runkids/skillshare/releases)
> **Latest**: [v0.19.0](https://github.com/runkids/skillshare/releases/tag/v0.19.0) — agent management, filter studio, unified resources UI. [All releases →](https://github.com/runkids/skillshare/releases)

## Why skillshare

Expand All @@ -50,6 +50,7 @@ You edit in one, forget to copy to another, and lose track of what's where.
skillshare fixes this:

- **One source, every agent** — sync to Claude, Cursor, Codex & 50+ more with `skillshare sync`
- **Agent management** — sync custom agents alongside skills to agent-capable targets
- **More than skills** — manage rules, commands, prompts & any file-based resource with [extras](https://skillshare.runkids.cc/docs/reference/targets/configuration#extras)
- **Install from anywhere** — GitHub, GitLab, Bitbucket, Azure DevOps, or any self-hosted Git
- **Built-in security** — audit skills for prompt injection and data exfiltration before use
Expand All @@ -68,6 +69,7 @@ skillshare fixes this:
┌─────────────────────────────────────────────────────────────┐
│ Source Directory │
│ ~/.config/skillshare/skills/ ← skills (SKILL.md) │
│ ~/.config/skillshare/agents/ ← agents │
│ ~/.config/skillshare/extras/ ← rules, commands, etc. │
└─────────────────────────────────────────────────────────────┘
│ sync
Expand All @@ -78,10 +80,10 @@ skillshare fixes this:
└───────────┘ └───────────┘ └───────────┘
```

| Platform | Skills Source | Extras Source | Link Type |
|----------|---------------|---------------|-----------|
| macOS/Linux | `~/.config/skillshare/skills/` | `~/.config/skillshare/extras/` | Symlinks |
| Windows | `%AppData%\skillshare\skills\` | `%AppData%\skillshare\extras\` | NTFS Junctions (no admin required) |
| Platform | Skills Source | Agents Source | Extras Source | Link Type |
|----------|---------------|---------------|---------------|-----------|
| macOS/Linux | `~/.config/skillshare/skills/` | `~/.config/skillshare/agents/` | `~/.config/skillshare/extras/` | Symlinks |
| Windows | `%AppData%\skillshare\skills\` | `%AppData%\skillshare\agents\` | `%AppData%\skillshare\extras\` | NTFS Junctions (no admin required) |

| | Imperative (install-per-command) | Declarative (skillshare) |
|---|---|---|
Expand Down Expand Up @@ -180,6 +182,13 @@ skillshare audit
skillshare init -p && skillshare sync
```

**Agents** —sync custom agents to agent-capable targets

```bash
skillshare sync agents # sync agents only
skillshare sync --all # sync skills + agents + extras together
```

**Extras** —manage rules, commands, prompts & more

```bash
Expand Down
Loading
Loading