oasr 0.5.1__tar.gz → 0.6.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {oasr-0.5.1 → oasr-0.6.0}/CHANGELOG.md +69 -0
- {oasr-0.5.1 → oasr-0.6.0}/PKG-INFO +51 -21
- {oasr-0.5.1 → oasr-0.6.0}/README.md +49 -20
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/.INDEX.md +2 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/CLONE.md +4 -0
- oasr-0.6.0/docs/commands/COMPLETION.md +324 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/CONFIG.md +117 -33
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/EXEC.md +36 -1
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/HELP.md +1 -0
- oasr-0.6.0/docs/commands/PROFILE.md +25 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/UPDATE.md +3 -2
- {oasr-0.5.1 → oasr-0.6.0}/docs/configuration/README.md +17 -3
- {oasr-0.5.1 → oasr-0.6.0}/docs/configuration/environment-variables.md +1 -1
- {oasr-0.5.1 → oasr-0.6.0}/docs/configuration/profiles.md +34 -2
- {oasr-0.5.1 → oasr-0.6.0}/pyproject.toml +2 -1
- {oasr-0.5.1 → oasr-0.6.0}/src/agents/base.py +17 -3
- {oasr-0.5.1 → oasr-0.6.0}/src/agents/claude.py +12 -2
- {oasr-0.5.1 → oasr-0.6.0}/src/agents/codex.py +12 -2
- {oasr-0.5.1 → oasr-0.6.0}/src/agents/copilot.py +12 -2
- {oasr-0.5.1 → oasr-0.6.0}/src/agents/opencode.py +12 -2
- {oasr-0.5.1 → oasr-0.6.0}/src/cli.py +8 -2
- oasr-0.6.0/src/commands/completion.py +345 -0
- oasr-0.6.0/src/commands/config.py +462 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/exec.py +21 -1
- oasr-0.6.0/src/commands/profile.py +84 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/update.py +89 -7
- oasr-0.6.0/src/completions/__init__.py +1 -0
- oasr-0.6.0/src/completions/bash.sh +210 -0
- oasr-0.6.0/src/completions/fish.fish +134 -0
- oasr-0.6.0/src/completions/powershell.ps1 +184 -0
- oasr-0.6.0/src/completions/zsh.sh +285 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/config/__init__.py +11 -0
- oasr-0.6.0/src/config/defaults.py +23 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/config/schema.py +3 -29
- oasr-0.6.0/src/policy/defaults.py +11 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/policy/profile.py +5 -7
- oasr-0.6.0/src/profiles/__init__.py +23 -0
- oasr-0.6.0/src/profiles/builtins.py +63 -0
- oasr-0.6.0/src/profiles/loader.py +74 -0
- oasr-0.6.0/src/profiles/paths.py +22 -0
- oasr-0.6.0/src/profiles/registry.py +19 -0
- oasr-0.6.0/src/profiles/summary.py +23 -0
- oasr-0.6.0/src/profiles/validation.py +34 -0
- oasr-0.6.0/tests/test_completion.py +253 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_config.py +31 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_config_command.py +35 -3
- oasr-0.6.0/tests/test_e2e_commands.py +144 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_exec.py +178 -3
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_policy_profile.py +1 -1
- oasr-0.6.0/tests/test_profile_command.py +78 -0
- {oasr-0.5.1 → oasr-0.6.0}/uv.lock +1 -1
- oasr-0.5.1/src/commands/config.py +0 -215
- oasr-0.5.1/src/config/defaults.py +0 -40
- oasr-0.5.1/src/policy/defaults.py +0 -27
- {oasr-0.5.1 → oasr-0.6.0}/.gitignore +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/CONTRIBUTING.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/LICENSE +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/NOTICE +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.INDEX.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/adapter.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/add-glob.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/add-remote.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/add.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/find-add.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/find.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/help.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/info.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/list.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/rm-glob.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/rm.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/status.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/sync-update.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/sync.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/.images/use.png +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/QUICKSTART.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/ADAPTER.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/ADD.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/CLEAN.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/DIFF.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/FIND.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/INFO.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/LIST.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/REGISTRY.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/RM.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/ROOT.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/STATUS.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/SYNC.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/USE.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/commands/VALIDATE.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/config.example.toml +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/configuration/.INDEX +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/configuration/adapter.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/configuration/agent.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/configuration/examples/ci-cd.toml +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/configuration/examples/development.toml +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/configuration/examples/minimal.toml +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/configuration/examples/production.toml +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/configuration/precedence.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/configuration/validation.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/validation/.INDEX.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/validation/ERRORS.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/validation/INFO.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/validation/RULES.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/docs/validation/WARNINGS.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/install.ps1 +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/install.sh +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/llms.txt +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/scripts/README.md +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/scripts/fix.sh +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/scripts/lint.sh +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/scripts/test.sh +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/__init__.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/__main__.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/adapter.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/adapters/__init__.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/adapters/base.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/adapters/claude.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/adapters/codex.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/adapters/copilot.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/adapters/cursor.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/adapters/windsurf.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/agents/__init__.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/agents/registry.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/__init__.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/adapter.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/add.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/clean.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/clone.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/diff.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/find.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/help.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/info.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/list.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/registry.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/rm.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/status.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/sync.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/use.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/commands/validate.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/config/env.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/discovery.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/manifest.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/policy/__init__.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/policy/enforcement.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/registry.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/remote.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/skillcopy/__init__.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/skillcopy/local.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/skillcopy/remote.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/tracking.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/src/validate.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/conftest.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_adapters.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_agents.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_clone.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_config_env.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_config_integration.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_copy.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_help.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_list.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_multi_skill.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_policy_enforcement.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_remote.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_tracking.py +0 -0
- {oasr-0.5.1 → oasr-0.6.0}/tests/test_use_glob.py +0 -0
|
@@ -4,6 +4,75 @@ All notable changes to this project will be documented in this file.
|
|
|
4
4
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
5
5
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [0.6.0] - 2026-02-03
|
|
8
|
+
|
|
9
|
+
### Added
|
|
10
|
+
- **🧭 Profile selection command** — New `oasr profile` command with interactive selector or explicit profile selection.
|
|
11
|
+
- **📄 Profile file support** — Auto-load `~/.oasr/profile/*.toml` profiles with inline config overrides.
|
|
12
|
+
- **🔧 Config subcommands** — `oasr config agent|validation|adapter|oasr|profiles` for focused views.
|
|
13
|
+
- **✅ Config validation and reference** — `oasr config validate` and `oasr config man` helpers.
|
|
14
|
+
- **Default profiles** — New built-ins: `strict`, `dev`, `unsafe`.
|
|
15
|
+
|
|
16
|
+
### Changed
|
|
17
|
+
- **Profiles subsystem** — New `profiles` subpackage with loaders, validation, and summary helpers.
|
|
18
|
+
- **Config listing** — Lists profiles with compact capability summaries and completions setting.
|
|
19
|
+
|
|
20
|
+
### Documentation
|
|
21
|
+
- **Config + profile docs** — Updated configuration guides and new `docs/commands/PROFILE.md`.
|
|
22
|
+
|
|
23
|
+
## [0.5.2] - 2026-02-02
|
|
24
|
+
|
|
25
|
+
### Added
|
|
26
|
+
- **⌨️ Shell Completion Support** — Intelligent tab completion for all major shells
|
|
27
|
+
- Cross-platform support: Bash, Zsh, Fish, PowerShell
|
|
28
|
+
- `oasr completion install` — Auto-detect shell and install completions
|
|
29
|
+
- `oasr completion <shell>` — Output completion script for specific shell
|
|
30
|
+
- Dynamic completions: skill names, agents, profiles fetched live from registry
|
|
31
|
+
- Command, subcommand, and flag completion for all OASR commands
|
|
32
|
+
- Smart shell detection (platform + $SHELL environment variable)
|
|
33
|
+
- Installation paths: `~/.bash_completion.d/`, `~/.zsh/completion/`, `~/.config/fish/completions/`, `~/.config/powershell/`
|
|
34
|
+
- Backup mechanism: existing completions backed up before overwrite
|
|
35
|
+
- `--force` and `--dry-run` flags for installation control
|
|
36
|
+
- `oasr completion uninstall` — Remove installed completions
|
|
37
|
+
- Configuration support: `oasr.completions` config option
|
|
38
|
+
- **🧪 Comprehensive E2E Tests** — 16 new end-to-end tests covering all commands
|
|
39
|
+
- Registry subcommands (list, sync, prune)
|
|
40
|
+
- Diff, sync, info, validate, clean commands
|
|
41
|
+
- Adapter, find, help commands
|
|
42
|
+
- Total test count: 282 tests (all passing)
|
|
43
|
+
- Ensures no regressions in existing functionality
|
|
44
|
+
- **⚠️ Exec Unsafe Pass-through** — Optional unsafe mode forwarding for agent CLIs
|
|
45
|
+
- `oasr exec --unsafe` forwards `--skip-git-repo-check` to Codex
|
|
46
|
+
- `oasr exec --unsafe` forwards `--dangerously-skip-permissions` to Claude
|
|
47
|
+
- Unsupported agents (Copilot/OpenCode) emit a warning with guidance
|
|
48
|
+
|
|
49
|
+
### Documentation
|
|
50
|
+
- **[docs/commands/COMPLETION.md](docs/commands/COMPLETION.md)**: Complete completion command reference
|
|
51
|
+
- Installation instructions for all shells
|
|
52
|
+
- Shell-specific configuration notes
|
|
53
|
+
- Troubleshooting guide
|
|
54
|
+
- Examples and usage patterns
|
|
55
|
+
- **[README.md](README.md)**: Added Shell Completions section with quickstart
|
|
56
|
+
- **[docs/commands/.INDEX.md](docs/commands/.INDEX.md)**: Added completion to command index
|
|
57
|
+
- **[docs/commands/EXEC.md](docs/commands/EXEC.md)**: Documented `--unsafe` and trusted directory guidance
|
|
58
|
+
|
|
59
|
+
### Technical
|
|
60
|
+
- **New module**: `src/commands/completion.py` (259 lines) with shell detection and installation
|
|
61
|
+
- **Completion scripts**: 4 shell-specific scripts (~691 lines total)
|
|
62
|
+
- `src/completions/bash.sh` (197 lines)
|
|
63
|
+
- `src/completions/zsh.sh` (259 lines) with descriptions
|
|
64
|
+
- `src/completions/fish.fish` (120 lines) with native Fish syntax
|
|
65
|
+
- `src/completions/powershell.ps1` (115 lines) with ArgumentCompleter
|
|
66
|
+
- **45 new tests**: 29 completion tests + 16 E2E tests
|
|
67
|
+
- **Dynamic completion**: Scripts invoke `oasr` commands for live data (registry list, config keys)
|
|
68
|
+
- **Cross-platform**: Handles Windows, macOS, Linux path conventions
|
|
69
|
+
|
|
70
|
+
### Quality of Life
|
|
71
|
+
- Tab completion reduces typing and prevents typos
|
|
72
|
+
- Discovery: see available skills, agents, and profiles at your fingertips
|
|
73
|
+
- Professional UX: OASR now feels like a polished CLI tool
|
|
74
|
+
- Backward compatible: no changes to existing commands
|
|
75
|
+
|
|
7
76
|
## [0.5.1] - 2026-02-02
|
|
8
77
|
|
|
9
78
|
### Added
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: oasr
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.6.0
|
|
4
4
|
Summary: CLI for managing agent skills across IDE integrations
|
|
5
5
|
Project-URL: Homepage, https://github.com/jgodau/asr
|
|
6
6
|
Project-URL: Repository, https://github.com/jgodau/asr
|
|
@@ -210,6 +210,7 @@ Classifier: Topic :: Software Development :: Build Tools
|
|
|
210
210
|
Classifier: Topic :: Software Development :: Libraries :: Application Frameworks
|
|
211
211
|
Requires-Python: >=3.10
|
|
212
212
|
Requires-Dist: pyyaml>=6.0
|
|
213
|
+
Requires-Dist: questionary>=2.0.1
|
|
213
214
|
Requires-Dist: tomli-w>=1.0.0
|
|
214
215
|
Requires-Dist: tomli>=2.0.0; python_version < '3.11'
|
|
215
216
|
Provides-Extra: dev
|
|
@@ -219,7 +220,7 @@ Description-Content-Type: text/markdown
|
|
|
219
220
|
|
|
220
221
|
# OASR
|
|
221
222
|
|
|
222
|
-
**Open Agent Skill Registry** —
|
|
223
|
+
**Open Agent Skill Registry** — Register, sync, and reuse AI agent skills across IDEs with a single source of truth.
|
|
223
224
|
|
|
224
225
|
---
|
|
225
226
|
|
|
@@ -229,16 +230,22 @@ You've built useful skills for your AI coding assistant. They work great in Curs
|
|
|
229
230
|
|
|
230
231
|
Each tool expects skills in different locations with different formats:
|
|
231
232
|
|
|
232
|
-
- Cursor: `.cursor/
|
|
233
|
-
- Windsurf: `.windsurf/
|
|
233
|
+
- Cursor: `.cursor/commands/`
|
|
234
|
+
- Windsurf: `.windsurf/workflows/`
|
|
234
235
|
- Claude: `.claude/commands/`
|
|
235
|
-
- Copilot: `.github
|
|
236
|
+
- Copilot: `.github/prompts/`
|
|
236
237
|
|
|
237
238
|
So you copy your skills everywhere. Then you improve one. Now the copies are stale. You forget which version is current. Some break silently. This is **skill drift**.
|
|
238
239
|
|
|
239
240
|
## The Solution
|
|
240
241
|
|
|
241
|
-
ASR keeps your skills in
|
|
242
|
+
ASR keeps your skills in a registry, syncs local and remote sources, and generates thin adapters for each IDE.
|
|
243
|
+
It also lets you execute skills safely with policy profiles.
|
|
244
|
+
|
|
245
|
+
Key capabilities:
|
|
246
|
+
- Register skills once (local folders or GitHub/GitLab URLs)
|
|
247
|
+
- Sync and track drift across sources
|
|
248
|
+
- Generate IDE adapters and run skills via `oasr exec`
|
|
242
249
|
|
|
243
250
|
```text
|
|
244
251
|
┌─────────────────────────────────────────────────────────┐
|
|
@@ -267,12 +274,15 @@ No copying. No drift. One source of truth.
|
|
|
267
274
|
|
|
268
275
|
```bash
|
|
269
276
|
# Register local skills
|
|
270
|
-
oasr add ~/skills/git-commit
|
|
271
|
-
oasr add ~/skills/code-review
|
|
277
|
+
oasr registry add ~/skills/git-commit
|
|
278
|
+
oasr registry add ~/skills/code-review
|
|
279
|
+
|
|
280
|
+
# List registered skills
|
|
281
|
+
oasr registry list
|
|
272
282
|
|
|
273
283
|
# Register remote skills from GitHub/GitLab
|
|
274
|
-
oasr add https://github.com/user/skills-repo/tree/main/my-skill
|
|
275
|
-
oasr add https://gitlab.com/org/project/tree/main/cool-skill
|
|
284
|
+
oasr registry add https://github.com/user/skills-repo/tree/main/my-skill
|
|
285
|
+
oasr registry add https://gitlab.com/org/project/tree/main/cool-skill
|
|
276
286
|
|
|
277
287
|
# Generate adapters for a project
|
|
278
288
|
oasr adapter --output-dir ~/projects/my-app
|
|
@@ -294,16 +304,16 @@ ASR supports registering skills directly from GitHub and GitLab repositories:
|
|
|
294
304
|
|
|
295
305
|
```bash
|
|
296
306
|
# Add a skill from GitHub
|
|
297
|
-
oasr add https://github.com/user/repo/tree/main/skills/my-skill
|
|
307
|
+
oasr registry add https://github.com/user/repo/tree/main/skills/my-skill
|
|
298
308
|
|
|
299
309
|
# Add a skill from GitLab
|
|
300
|
-
oasr add https://gitlab.com/org/project/tree/dev/cool-skill
|
|
310
|
+
oasr registry add https://gitlab.com/org/project/tree/dev/cool-skill
|
|
301
311
|
|
|
302
312
|
# Sync remote skills (check for updates)
|
|
303
|
-
oasr sync
|
|
313
|
+
oasr registry sync
|
|
304
314
|
|
|
305
315
|
# Use remote skills
|
|
306
|
-
oasr
|
|
316
|
+
oasr clone my-skill -d ./output
|
|
307
317
|
```
|
|
308
318
|
|
|
309
319
|
**Authentication** (optional, for private repos and higher rate limits):
|
|
@@ -313,7 +323,27 @@ export GITHUB_TOKEN=ghp_your_token_here
|
|
|
313
323
|
export GITLAB_TOKEN=glpat_your_token_here
|
|
314
324
|
```
|
|
315
325
|
|
|
316
|
-
Remote skills are fetched on-demand during `adapter` and `
|
|
326
|
+
Remote skills are fetched on-demand during `adapter` and `clone` operations. The registry stores the URL, and `oasr registry sync` checks if the remote source has changed.
|
|
327
|
+
|
|
328
|
+
---
|
|
329
|
+
|
|
330
|
+
## Shell Completions
|
|
331
|
+
|
|
332
|
+
OASR supports intelligent tab completion for Bash, Zsh, Fish, and PowerShell:
|
|
333
|
+
|
|
334
|
+
```bash
|
|
335
|
+
# Install for your current shell
|
|
336
|
+
oasr completion install
|
|
337
|
+
|
|
338
|
+
# Now try it:
|
|
339
|
+
oasr <TAB> # Complete commands
|
|
340
|
+
oasr info <TAB> # Complete skill names
|
|
341
|
+
oasr exec --<TAB> # Complete flags
|
|
342
|
+
```
|
|
343
|
+
|
|
344
|
+
Completions are **dynamic** — skill names, agents, and profiles are fetched live from your registry.
|
|
345
|
+
|
|
346
|
+
See [`oasr completion --help`](docs/commands/COMPLETION.md) for details.
|
|
317
347
|
|
|
318
348
|
---
|
|
319
349
|
|
|
@@ -325,7 +355,7 @@ Remote skills are fetched on-demand during `adapter` and `use` operations. The r
|
|
|
325
355
|
|
|
326
356
|
---
|
|
327
357
|
|
|
328
|
-
## Supported `
|
|
358
|
+
## Supported `oasr adapter` IDEs
|
|
329
359
|
|
|
330
360
|
| IDE | Adapter | Output |
|
|
331
361
|
|----------------|------------|-------------------------------|
|
|
@@ -347,11 +377,11 @@ See [LICENSE](LICENSE).
|
|
|
347
377
|
|
|
348
378
|
| Command | Screenshot |
|
|
349
379
|
|---------|-----------|
|
|
350
|
-
| **oasr list** |  |
|
|
351
|
-
| **oasr add** (local) |  |
|
|
352
|
-
| **oasr add** (remote) |  |
|
|
353
|
-
| **oasr sync** |  |
|
|
354
|
-
| **oasr
|
|
380
|
+
| **oasr registry list** |  |
|
|
381
|
+
| **oasr registry add** (local) |  |
|
|
382
|
+
| **oasr registry add** (remote) |  |
|
|
383
|
+
| **oasr registry sync** |  |
|
|
384
|
+
| **oasr registry -v** |  |
|
|
355
385
|
| **oasr find** |  |
|
|
356
386
|
| **oasr adapter** |  |
|
|
357
387
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# OASR
|
|
2
2
|
|
|
3
|
-
**Open Agent Skill Registry** —
|
|
3
|
+
**Open Agent Skill Registry** — Register, sync, and reuse AI agent skills across IDEs with a single source of truth.
|
|
4
4
|
|
|
5
5
|
---
|
|
6
6
|
|
|
@@ -10,16 +10,22 @@ You've built useful skills for your AI coding assistant. They work great in Curs
|
|
|
10
10
|
|
|
11
11
|
Each tool expects skills in different locations with different formats:
|
|
12
12
|
|
|
13
|
-
- Cursor: `.cursor/
|
|
14
|
-
- Windsurf: `.windsurf/
|
|
13
|
+
- Cursor: `.cursor/commands/`
|
|
14
|
+
- Windsurf: `.windsurf/workflows/`
|
|
15
15
|
- Claude: `.claude/commands/`
|
|
16
|
-
- Copilot: `.github
|
|
16
|
+
- Copilot: `.github/prompts/`
|
|
17
17
|
|
|
18
18
|
So you copy your skills everywhere. Then you improve one. Now the copies are stale. You forget which version is current. Some break silently. This is **skill drift**.
|
|
19
19
|
|
|
20
20
|
## The Solution
|
|
21
21
|
|
|
22
|
-
ASR keeps your skills in
|
|
22
|
+
ASR keeps your skills in a registry, syncs local and remote sources, and generates thin adapters for each IDE.
|
|
23
|
+
It also lets you execute skills safely with policy profiles.
|
|
24
|
+
|
|
25
|
+
Key capabilities:
|
|
26
|
+
- Register skills once (local folders or GitHub/GitLab URLs)
|
|
27
|
+
- Sync and track drift across sources
|
|
28
|
+
- Generate IDE adapters and run skills via `oasr exec`
|
|
23
29
|
|
|
24
30
|
```text
|
|
25
31
|
┌─────────────────────────────────────────────────────────┐
|
|
@@ -48,12 +54,15 @@ No copying. No drift. One source of truth.
|
|
|
48
54
|
|
|
49
55
|
```bash
|
|
50
56
|
# Register local skills
|
|
51
|
-
oasr add ~/skills/git-commit
|
|
52
|
-
oasr add ~/skills/code-review
|
|
57
|
+
oasr registry add ~/skills/git-commit
|
|
58
|
+
oasr registry add ~/skills/code-review
|
|
59
|
+
|
|
60
|
+
# List registered skills
|
|
61
|
+
oasr registry list
|
|
53
62
|
|
|
54
63
|
# Register remote skills from GitHub/GitLab
|
|
55
|
-
oasr add https://github.com/user/skills-repo/tree/main/my-skill
|
|
56
|
-
oasr add https://gitlab.com/org/project/tree/main/cool-skill
|
|
64
|
+
oasr registry add https://github.com/user/skills-repo/tree/main/my-skill
|
|
65
|
+
oasr registry add https://gitlab.com/org/project/tree/main/cool-skill
|
|
57
66
|
|
|
58
67
|
# Generate adapters for a project
|
|
59
68
|
oasr adapter --output-dir ~/projects/my-app
|
|
@@ -75,16 +84,16 @@ ASR supports registering skills directly from GitHub and GitLab repositories:
|
|
|
75
84
|
|
|
76
85
|
```bash
|
|
77
86
|
# Add a skill from GitHub
|
|
78
|
-
oasr add https://github.com/user/repo/tree/main/skills/my-skill
|
|
87
|
+
oasr registry add https://github.com/user/repo/tree/main/skills/my-skill
|
|
79
88
|
|
|
80
89
|
# Add a skill from GitLab
|
|
81
|
-
oasr add https://gitlab.com/org/project/tree/dev/cool-skill
|
|
90
|
+
oasr registry add https://gitlab.com/org/project/tree/dev/cool-skill
|
|
82
91
|
|
|
83
92
|
# Sync remote skills (check for updates)
|
|
84
|
-
oasr sync
|
|
93
|
+
oasr registry sync
|
|
85
94
|
|
|
86
95
|
# Use remote skills
|
|
87
|
-
oasr
|
|
96
|
+
oasr clone my-skill -d ./output
|
|
88
97
|
```
|
|
89
98
|
|
|
90
99
|
**Authentication** (optional, for private repos and higher rate limits):
|
|
@@ -94,7 +103,27 @@ export GITHUB_TOKEN=ghp_your_token_here
|
|
|
94
103
|
export GITLAB_TOKEN=glpat_your_token_here
|
|
95
104
|
```
|
|
96
105
|
|
|
97
|
-
Remote skills are fetched on-demand during `adapter` and `
|
|
106
|
+
Remote skills are fetched on-demand during `adapter` and `clone` operations. The registry stores the URL, and `oasr registry sync` checks if the remote source has changed.
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
## Shell Completions
|
|
111
|
+
|
|
112
|
+
OASR supports intelligent tab completion for Bash, Zsh, Fish, and PowerShell:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# Install for your current shell
|
|
116
|
+
oasr completion install
|
|
117
|
+
|
|
118
|
+
# Now try it:
|
|
119
|
+
oasr <TAB> # Complete commands
|
|
120
|
+
oasr info <TAB> # Complete skill names
|
|
121
|
+
oasr exec --<TAB> # Complete flags
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
Completions are **dynamic** — skill names, agents, and profiles are fetched live from your registry.
|
|
125
|
+
|
|
126
|
+
See [`oasr completion --help`](docs/commands/COMPLETION.md) for details.
|
|
98
127
|
|
|
99
128
|
---
|
|
100
129
|
|
|
@@ -106,7 +135,7 @@ Remote skills are fetched on-demand during `adapter` and `use` operations. The r
|
|
|
106
135
|
|
|
107
136
|
---
|
|
108
137
|
|
|
109
|
-
## Supported `
|
|
138
|
+
## Supported `oasr adapter` IDEs
|
|
110
139
|
|
|
111
140
|
| IDE | Adapter | Output |
|
|
112
141
|
|----------------|------------|-------------------------------|
|
|
@@ -128,11 +157,11 @@ See [LICENSE](LICENSE).
|
|
|
128
157
|
|
|
129
158
|
| Command | Screenshot |
|
|
130
159
|
|---------|-----------|
|
|
131
|
-
| **oasr list** |  |
|
|
132
|
-
| **oasr add** (local) |  |
|
|
133
|
-
| **oasr add** (remote) |  |
|
|
134
|
-
| **oasr sync** |  |
|
|
135
|
-
| **oasr
|
|
160
|
+
| **oasr registry list** |  |
|
|
161
|
+
| **oasr registry add** (local) |  |
|
|
162
|
+
| **oasr registry add** (remote) |  |
|
|
163
|
+
| **oasr registry sync** |  |
|
|
164
|
+
| **oasr registry -v** |  |
|
|
136
165
|
| **oasr find** |  |
|
|
137
166
|
| **oasr adapter** |  |
|
|
138
167
|
|
|
@@ -7,8 +7,10 @@
|
|
|
7
7
|
- [oasr diff](DIFF.md) - Show status of tracked skills
|
|
8
8
|
- [oasr sync](SYNC.md) - Refresh outdated tracked skills
|
|
9
9
|
- [oasr config](CONFIG.md) - Manage configuration (NEW in v0.4.0)
|
|
10
|
+
- [oasr profile](PROFILE.md) - Select execution profile (NEW in v0.6.0)
|
|
10
11
|
- [oasr clone](CLONE.md) - Clone skill(s) to target directory (NEW in v0.4.0)
|
|
11
12
|
- [oasr exec](EXEC.md) - Execute skills as CLI tools (NEW in v0.4.0)
|
|
13
|
+
- [oasr completion](COMPLETION.md) - Shell tab completion (NEW in v0.6.0)
|
|
12
14
|
- [oasr find](FIND.md) - Find/discover skills in your file system
|
|
13
15
|
- [oasr validate](VALIDATE.md) - Validate a skill
|
|
14
16
|
- [oasr adapter](ADAPTER.md) - Generate IDE/Tooling adapters
|
|
@@ -11,6 +11,7 @@ Clone skills from the registry to a target directory. Supports glob patterns and
|
|
|
11
11
|
oasr clone skill-name
|
|
12
12
|
oasr clone skill-name -d /path/to/project
|
|
13
13
|
oasr clone "git-*" # Glob pattern
|
|
14
|
+
oasr clone "*" # Clone all skills (quote to avoid shell expansion)
|
|
14
15
|
oasr clone skill-one skill-two # Multiple skills
|
|
15
16
|
```
|
|
16
17
|
|
|
@@ -28,8 +29,11 @@ Clone multiple skills matching a pattern:
|
|
|
28
29
|
```bash
|
|
29
30
|
oasr clone "python-*" # All Python-related skills
|
|
30
31
|
oasr clone "*-api" # All API-related skills
|
|
32
|
+
oasr clone "*" # All skills in registry
|
|
31
33
|
```
|
|
32
34
|
|
|
35
|
+
> **Note:** Always quote `*` or glob patterns to prevent your shell from expanding them before OASR receives the pattern.
|
|
36
|
+
|
|
33
37
|
### Remote Skill Fetching
|
|
34
38
|
|
|
35
39
|
Remote skills are automatically fetched during clone:
|