oasr 0.5.0__tar.gz → 0.5.2__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.
Files changed (152) hide show
  1. {oasr-0.5.0 → oasr-0.5.2}/CHANGELOG.md +86 -0
  2. {oasr-0.5.0 → oasr-0.5.2}/PKG-INFO +21 -1
  3. {oasr-0.5.0 → oasr-0.5.2}/README.md +20 -0
  4. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/.INDEX.md +1 -0
  5. oasr-0.5.2/docs/commands/COMPLETION.md +324 -0
  6. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/CONFIG.md +20 -1
  7. oasr-0.5.2/docs/configuration/.INDEX +58 -0
  8. oasr-0.5.2/docs/configuration/README.md +226 -0
  9. oasr-0.5.2/docs/configuration/adapter.md +72 -0
  10. oasr-0.5.2/docs/configuration/agent.md +196 -0
  11. oasr-0.5.2/docs/configuration/environment-variables.md +371 -0
  12. oasr-0.5.2/docs/configuration/examples/ci-cd.toml +71 -0
  13. oasr-0.5.2/docs/configuration/examples/development.toml +70 -0
  14. oasr-0.5.2/docs/configuration/examples/minimal.toml +12 -0
  15. oasr-0.5.2/docs/configuration/examples/production.toml +61 -0
  16. oasr-0.5.2/docs/configuration/precedence.md +307 -0
  17. oasr-0.5.2/docs/configuration/profiles.md +393 -0
  18. oasr-0.5.2/docs/configuration/validation.md +97 -0
  19. {oasr-0.5.0 → oasr-0.5.2}/pyproject.toml +1 -1
  20. {oasr-0.5.0 → oasr-0.5.2}/src/cli.py +6 -1
  21. oasr-0.5.2/src/commands/completion.py +345 -0
  22. {oasr-0.5.0 → oasr-0.5.2}/src/commands/config.py +78 -26
  23. {oasr-0.5.0 → oasr-0.5.2}/src/commands/exec.py +22 -10
  24. oasr-0.5.2/src/completions/__init__.py +1 -0
  25. oasr-0.5.2/src/completions/bash.sh +197 -0
  26. oasr-0.5.2/src/completions/fish.fish +120 -0
  27. oasr-0.5.2/src/completions/powershell.ps1 +115 -0
  28. oasr-0.5.2/src/completions/zsh.sh +259 -0
  29. {oasr-0.5.0 → oasr-0.5.2}/src/config/__init__.py +27 -18
  30. oasr-0.5.2/src/config/env.py +248 -0
  31. {oasr-0.5.0 → oasr-0.5.2}/src/config/schema.py +38 -0
  32. oasr-0.5.2/tests/test_completion.py +253 -0
  33. {oasr-0.5.0 → oasr-0.5.2}/tests/test_config_command.py +9 -9
  34. oasr-0.5.2/tests/test_config_env.py +308 -0
  35. oasr-0.5.2/tests/test_config_integration.py +148 -0
  36. oasr-0.5.2/tests/test_e2e_commands.py +144 -0
  37. {oasr-0.5.0 → oasr-0.5.2}/tests/test_exec.py +1 -1
  38. {oasr-0.5.0 → oasr-0.5.2}/tests/test_policy_profile.py +0 -3
  39. {oasr-0.5.0 → oasr-0.5.2}/uv.lock +1 -1
  40. {oasr-0.5.0 → oasr-0.5.2}/.gitignore +0 -0
  41. {oasr-0.5.0 → oasr-0.5.2}/CONTRIBUTING.md +0 -0
  42. {oasr-0.5.0 → oasr-0.5.2}/LICENSE +0 -0
  43. {oasr-0.5.0 → oasr-0.5.2}/NOTICE +0 -0
  44. {oasr-0.5.0 → oasr-0.5.2}/docs/.INDEX.md +0 -0
  45. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/adapter.png +0 -0
  46. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/add-glob.png +0 -0
  47. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/add-remote.png +0 -0
  48. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/add.png +0 -0
  49. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/find-add.png +0 -0
  50. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/find.png +0 -0
  51. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/help.png +0 -0
  52. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/info.png +0 -0
  53. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/list.png +0 -0
  54. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/rm-glob.png +0 -0
  55. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/rm.png +0 -0
  56. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/status.png +0 -0
  57. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/sync-update.png +0 -0
  58. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/sync.png +0 -0
  59. {oasr-0.5.0 → oasr-0.5.2}/docs/.images/use.png +0 -0
  60. {oasr-0.5.0 → oasr-0.5.2}/docs/QUICKSTART.md +0 -0
  61. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/ADAPTER.md +0 -0
  62. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/ADD.md +0 -0
  63. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/CLEAN.md +0 -0
  64. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/CLONE.md +0 -0
  65. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/DIFF.md +0 -0
  66. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/EXEC.md +0 -0
  67. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/FIND.md +0 -0
  68. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/HELP.md +0 -0
  69. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/INFO.md +0 -0
  70. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/LIST.md +0 -0
  71. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/REGISTRY.md +0 -0
  72. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/RM.md +0 -0
  73. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/ROOT.md +0 -0
  74. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/STATUS.md +0 -0
  75. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/SYNC.md +0 -0
  76. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/UPDATE.md +0 -0
  77. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/USE.md +0 -0
  78. {oasr-0.5.0 → oasr-0.5.2}/docs/commands/VALIDATE.md +0 -0
  79. {oasr-0.5.0 → oasr-0.5.2}/docs/config.example.toml +0 -0
  80. {oasr-0.5.0 → oasr-0.5.2}/docs/validation/.INDEX.md +0 -0
  81. {oasr-0.5.0 → oasr-0.5.2}/docs/validation/ERRORS.md +0 -0
  82. {oasr-0.5.0 → oasr-0.5.2}/docs/validation/INFO.md +0 -0
  83. {oasr-0.5.0 → oasr-0.5.2}/docs/validation/RULES.md +0 -0
  84. {oasr-0.5.0 → oasr-0.5.2}/docs/validation/WARNINGS.md +0 -0
  85. {oasr-0.5.0 → oasr-0.5.2}/install.ps1 +0 -0
  86. {oasr-0.5.0 → oasr-0.5.2}/install.sh +0 -0
  87. {oasr-0.5.0 → oasr-0.5.2}/llms.txt +0 -0
  88. {oasr-0.5.0 → oasr-0.5.2}/scripts/README.md +0 -0
  89. {oasr-0.5.0 → oasr-0.5.2}/scripts/fix.sh +0 -0
  90. {oasr-0.5.0 → oasr-0.5.2}/scripts/lint.sh +0 -0
  91. {oasr-0.5.0 → oasr-0.5.2}/scripts/test.sh +0 -0
  92. {oasr-0.5.0 → oasr-0.5.2}/src/__init__.py +0 -0
  93. {oasr-0.5.0 → oasr-0.5.2}/src/__main__.py +0 -0
  94. {oasr-0.5.0 → oasr-0.5.2}/src/adapter.py +0 -0
  95. {oasr-0.5.0 → oasr-0.5.2}/src/adapters/__init__.py +0 -0
  96. {oasr-0.5.0 → oasr-0.5.2}/src/adapters/base.py +0 -0
  97. {oasr-0.5.0 → oasr-0.5.2}/src/adapters/claude.py +0 -0
  98. {oasr-0.5.0 → oasr-0.5.2}/src/adapters/codex.py +0 -0
  99. {oasr-0.5.0 → oasr-0.5.2}/src/adapters/copilot.py +0 -0
  100. {oasr-0.5.0 → oasr-0.5.2}/src/adapters/cursor.py +0 -0
  101. {oasr-0.5.0 → oasr-0.5.2}/src/adapters/windsurf.py +0 -0
  102. {oasr-0.5.0 → oasr-0.5.2}/src/agents/__init__.py +0 -0
  103. {oasr-0.5.0 → oasr-0.5.2}/src/agents/base.py +0 -0
  104. {oasr-0.5.0 → oasr-0.5.2}/src/agents/claude.py +0 -0
  105. {oasr-0.5.0 → oasr-0.5.2}/src/agents/codex.py +0 -0
  106. {oasr-0.5.0 → oasr-0.5.2}/src/agents/copilot.py +0 -0
  107. {oasr-0.5.0 → oasr-0.5.2}/src/agents/opencode.py +0 -0
  108. {oasr-0.5.0 → oasr-0.5.2}/src/agents/registry.py +0 -0
  109. {oasr-0.5.0 → oasr-0.5.2}/src/commands/__init__.py +0 -0
  110. {oasr-0.5.0 → oasr-0.5.2}/src/commands/adapter.py +0 -0
  111. {oasr-0.5.0 → oasr-0.5.2}/src/commands/add.py +0 -0
  112. {oasr-0.5.0 → oasr-0.5.2}/src/commands/clean.py +0 -0
  113. {oasr-0.5.0 → oasr-0.5.2}/src/commands/clone.py +0 -0
  114. {oasr-0.5.0 → oasr-0.5.2}/src/commands/diff.py +0 -0
  115. {oasr-0.5.0 → oasr-0.5.2}/src/commands/find.py +0 -0
  116. {oasr-0.5.0 → oasr-0.5.2}/src/commands/help.py +0 -0
  117. {oasr-0.5.0 → oasr-0.5.2}/src/commands/info.py +0 -0
  118. {oasr-0.5.0 → oasr-0.5.2}/src/commands/list.py +0 -0
  119. {oasr-0.5.0 → oasr-0.5.2}/src/commands/registry.py +0 -0
  120. {oasr-0.5.0 → oasr-0.5.2}/src/commands/rm.py +0 -0
  121. {oasr-0.5.0 → oasr-0.5.2}/src/commands/status.py +0 -0
  122. {oasr-0.5.0 → oasr-0.5.2}/src/commands/sync.py +0 -0
  123. {oasr-0.5.0 → oasr-0.5.2}/src/commands/update.py +0 -0
  124. {oasr-0.5.0 → oasr-0.5.2}/src/commands/use.py +0 -0
  125. {oasr-0.5.0 → oasr-0.5.2}/src/commands/validate.py +0 -0
  126. {oasr-0.5.0 → oasr-0.5.2}/src/config/defaults.py +0 -0
  127. {oasr-0.5.0 → oasr-0.5.2}/src/discovery.py +0 -0
  128. {oasr-0.5.0 → oasr-0.5.2}/src/manifest.py +0 -0
  129. {oasr-0.5.0 → oasr-0.5.2}/src/policy/__init__.py +0 -0
  130. {oasr-0.5.0 → oasr-0.5.2}/src/policy/defaults.py +0 -0
  131. {oasr-0.5.0 → oasr-0.5.2}/src/policy/enforcement.py +0 -0
  132. {oasr-0.5.0 → oasr-0.5.2}/src/policy/profile.py +0 -0
  133. {oasr-0.5.0 → oasr-0.5.2}/src/registry.py +0 -0
  134. {oasr-0.5.0 → oasr-0.5.2}/src/remote.py +0 -0
  135. {oasr-0.5.0 → oasr-0.5.2}/src/skillcopy/__init__.py +0 -0
  136. {oasr-0.5.0 → oasr-0.5.2}/src/skillcopy/local.py +0 -0
  137. {oasr-0.5.0 → oasr-0.5.2}/src/skillcopy/remote.py +0 -0
  138. {oasr-0.5.0 → oasr-0.5.2}/src/tracking.py +0 -0
  139. {oasr-0.5.0 → oasr-0.5.2}/src/validate.py +0 -0
  140. {oasr-0.5.0 → oasr-0.5.2}/tests/conftest.py +0 -0
  141. {oasr-0.5.0 → oasr-0.5.2}/tests/test_adapters.py +0 -0
  142. {oasr-0.5.0 → oasr-0.5.2}/tests/test_agents.py +0 -0
  143. {oasr-0.5.0 → oasr-0.5.2}/tests/test_clone.py +0 -0
  144. {oasr-0.5.0 → oasr-0.5.2}/tests/test_config.py +0 -0
  145. {oasr-0.5.0 → oasr-0.5.2}/tests/test_copy.py +0 -0
  146. {oasr-0.5.0 → oasr-0.5.2}/tests/test_help.py +0 -0
  147. {oasr-0.5.0 → oasr-0.5.2}/tests/test_list.py +0 -0
  148. {oasr-0.5.0 → oasr-0.5.2}/tests/test_multi_skill.py +0 -0
  149. {oasr-0.5.0 → oasr-0.5.2}/tests/test_policy_enforcement.py +0 -0
  150. {oasr-0.5.0 → oasr-0.5.2}/tests/test_remote.py +0 -0
  151. {oasr-0.5.0 → oasr-0.5.2}/tests/test_tracking.py +0 -0
  152. {oasr-0.5.0 → oasr-0.5.2}/tests/test_use_glob.py +0 -0
@@ -4,6 +4,92 @@ 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.5.2] - 2026-02-02
8
+
9
+ ### Added
10
+ - **⌨️ Shell Completion Support** — Intelligent tab completion for all major shells
11
+ - Cross-platform support: Bash, Zsh, Fish, PowerShell
12
+ - `oasr completion install` — Auto-detect shell and install completions
13
+ - `oasr completion <shell>` — Output completion script for specific shell
14
+ - Dynamic completions: skill names, agents, profiles fetched live from registry
15
+ - Command, subcommand, and flag completion for all OASR commands
16
+ - Smart shell detection (platform + $SHELL environment variable)
17
+ - Installation paths: `~/.bash_completion.d/`, `~/.zsh/completion/`, `~/.config/fish/completions/`, `~/.config/powershell/`
18
+ - Backup mechanism: existing completions backed up before overwrite
19
+ - `--force` and `--dry-run` flags for installation control
20
+ - `oasr completion uninstall` — Remove installed completions
21
+ - Configuration support: `oasr.completions` config option
22
+ - **🧪 Comprehensive E2E Tests** — 16 new end-to-end tests covering all commands
23
+ - Registry subcommands (list, sync, prune)
24
+ - Diff, sync, info, validate, clean commands
25
+ - Adapter, find, help commands
26
+ - Total test count: 282 tests (all passing)
27
+ - Ensures no regressions in existing functionality
28
+
29
+ ### Documentation
30
+ - **[docs/commands/COMPLETION.md](docs/commands/COMPLETION.md)**: Complete completion command reference
31
+ - Installation instructions for all shells
32
+ - Shell-specific configuration notes
33
+ - Troubleshooting guide
34
+ - Examples and usage patterns
35
+ - **[README.md](README.md)**: Added Shell Completions section with quickstart
36
+ - **[docs/commands/.INDEX.md](docs/commands/.INDEX.md)**: Added completion to command index
37
+
38
+ ### Technical
39
+ - **New module**: `src/commands/completion.py` (259 lines) with shell detection and installation
40
+ - **Completion scripts**: 4 shell-specific scripts (~691 lines total)
41
+ - `src/completions/bash.sh` (197 lines)
42
+ - `src/completions/zsh.sh` (259 lines) with descriptions
43
+ - `src/completions/fish.fish` (120 lines) with native Fish syntax
44
+ - `src/completions/powershell.ps1` (115 lines) with ArgumentCompleter
45
+ - **45 new tests**: 29 completion tests + 16 E2E tests
46
+ - **Dynamic completion**: Scripts invoke `oasr` commands for live data (registry list, config keys)
47
+ - **Cross-platform**: Handles Windows, macOS, Linux path conventions
48
+
49
+ ### Quality of Life
50
+ - Tab completion reduces typing and prevents typos
51
+ - Discovery: see available skills, agents, and profiles at your fingertips
52
+ - Professional UX: OASR now feels like a polished CLI tool
53
+ - Backward compatible: no changes to existing commands
54
+
55
+ ## [0.5.1] - 2026-02-02
56
+
57
+ ### Added
58
+ - **🌍 Environment Variable Support** — Full OASR_* environment variable support for all configuration
59
+ - Naming convention: `OASR_<SECTION>_<KEY>` (e.g., `OASR_AGENT`, `OASR_PROFILE`)
60
+ - Type-aware parsing: bool, int, list (comma-separated), string
61
+ - Clear precedence: CLI flags > env vars > config file > defaults
62
+ - 17 documented environment variables
63
+ - **✅ Enhanced Config Validation** — Early validation with helpful error messages
64
+ - `oasr config set` validates agent names against available drivers
65
+ - Profile reference validation (checks if profile exists)
66
+ - `--force` flag to bypass validation when needed
67
+ - Dotted notation support: `validation.strict`, `adapter.default`
68
+ - Suggestions in error messages: "Invalid agent 'foo'. Valid agents: codex, copilot..."
69
+ - **📚 Configuration Documentation Restructure** — Progressive disclosure documentation
70
+ - New `docs/configuration/` directory with 12 files (~37KB)
71
+ - Navigation manifest: `.INDEX` file for documentation structure
72
+ - 7 detailed guides: Overview, Agent, Profiles, Validation, Adapter, Env Vars, Precedence
73
+ - 4 example configs: Minimal, Development, CI/CD, Production
74
+ - Easy-to-find specific information with cross-references
75
+
76
+ ### Changed
77
+ - **Config loading**: Now accepts `cli_overrides` parameter for precedence merging
78
+ - **Config command**: Enhanced validation and better error messages
79
+ - **Documentation**: `docs/commands/CONFIG.md` updated with pointers to new structure
80
+
81
+ ### Technical
82
+ - **New module**: `src/config/env.py` with parsing, type coercion, and merging logic
83
+ - **50 new tests**: 40 env var tests + 10 integration tests (287 total tests passing)
84
+ - **Backward compatible**: All existing functionality preserved
85
+ - **Type safety**: Enhanced type checking and validation throughout
86
+
87
+ ### Documentation
88
+ - **[docs/configuration/](docs/configuration/README.md)**: New comprehensive configuration guide
89
+ - **[Environment Variables](docs/configuration/environment-variables.md)**: Complete OASR_* reference
90
+ - **[Precedence](docs/configuration/precedence.md)**: Detailed precedence rules and examples
91
+ - **[Examples](docs/configuration/examples/)**: 4 ready-to-use configuration examples
92
+
7
93
  ## [0.5.0] - 2026-02-02
8
94
 
9
95
  ### Added
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: oasr
3
- Version: 0.5.0
3
+ Version: 0.5.2
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
@@ -317,6 +317,26 @@ Remote skills are fetched on-demand during `adapter` and `use` operations. The r
317
317
 
318
318
  ---
319
319
 
320
+ ## Shell Completions
321
+
322
+ OASR supports intelligent tab completion for Bash, Zsh, Fish, and PowerShell:
323
+
324
+ ```bash
325
+ # Install for your current shell
326
+ oasr completion install
327
+
328
+ # Now try it:
329
+ oasr <TAB> # Complete commands
330
+ oasr info <TAB> # Complete skill names
331
+ oasr exec --<TAB> # Complete flags
332
+ ```
333
+
334
+ Completions are **dynamic** — skill names, agents, and profiles are fetched live from your registry.
335
+
336
+ See [`oasr completion --help`](docs/commands/COMPLETION.md) for details.
337
+
338
+ ---
339
+
320
340
  ## Documentation
321
341
 
322
342
  - **[Quickstart](docs/QUICKSTART.md)** — Installation and first steps
@@ -98,6 +98,26 @@ Remote skills are fetched on-demand during `adapter` and `use` operations. The r
98
98
 
99
99
  ---
100
100
 
101
+ ## Shell Completions
102
+
103
+ OASR supports intelligent tab completion for Bash, Zsh, Fish, and PowerShell:
104
+
105
+ ```bash
106
+ # Install for your current shell
107
+ oasr completion install
108
+
109
+ # Now try it:
110
+ oasr <TAB> # Complete commands
111
+ oasr info <TAB> # Complete skill names
112
+ oasr exec --<TAB> # Complete flags
113
+ ```
114
+
115
+ Completions are **dynamic** — skill names, agents, and profiles are fetched live from your registry.
116
+
117
+ See [`oasr completion --help`](docs/commands/COMPLETION.md) for details.
118
+
119
+ ---
120
+
101
121
  ## Documentation
102
122
 
103
123
  - **[Quickstart](docs/QUICKSTART.md)** — Installation and first steps
@@ -9,6 +9,7 @@
9
9
  - [oasr config](CONFIG.md) - Manage configuration (NEW in v0.4.0)
10
10
  - [oasr clone](CLONE.md) - Clone skill(s) to target directory (NEW in v0.4.0)
11
11
  - [oasr exec](EXEC.md) - Execute skills as CLI tools (NEW in v0.4.0)
12
+ - [oasr completion](COMPLETION.md) - Shell tab completion (NEW in v0.5.2)
12
13
  - [oasr find](FIND.md) - Find/discover skills in your file system
13
14
  - [oasr validate](VALIDATE.md) - Validate a skill
14
15
  - [oasr adapter](ADAPTER.md) - Generate IDE/Tooling adapters
@@ -0,0 +1,324 @@
1
+ # `oasr completion`
2
+
3
+ Enable shell tab completion for OASR commands, subcommands, and dynamic resources (skills, agents, profiles).
4
+
5
+ ---
6
+
7
+ ## Overview
8
+
9
+ The `oasr completion` command provides intelligent tab completion across all major shells:
10
+
11
+ - **Bash** — Traditional completion with dynamic skill/agent/profile suggestions
12
+ - **Zsh** — Rich completions with descriptions and type hints
13
+ - **Fish** — Native Fish completions with helper functions
14
+ - **PowerShell** — ArgumentCompleter with tooltips
15
+
16
+ Completions are **dynamic**: skill names, agents, and profiles are fetched live from your registry.
17
+
18
+ ---
19
+
20
+ ## Usage
21
+
22
+ ```bash
23
+ # Output completion script for current shell (auto-detected)
24
+ oasr completion
25
+
26
+ # Output for specific shell
27
+ oasr completion bash
28
+ oasr completion zsh
29
+ oasr completion fish
30
+ oasr completion powershell
31
+
32
+ # Install to standard location for current shell
33
+ oasr completion install
34
+
35
+ # Install for specific shell
36
+ oasr completion install bash
37
+ oasr completion install --force # Overwrite existing
38
+
39
+ # Uninstall
40
+ oasr completion uninstall
41
+
42
+ # Dry run (show what would be done)
43
+ oasr completion install --dry-run
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Installation
49
+
50
+ ### Automatic (Recommended)
51
+
52
+ ```bash
53
+ # Auto-detect shell and install
54
+ oasr completion install
55
+
56
+ # Restart your shell or source the completion file
57
+ # Bash:
58
+ source ~/.bash_completion.d/oasr
59
+
60
+ # Zsh:
61
+ source ~/.zsh/completion/_oasr
62
+
63
+ # Fish: (automatically loaded)
64
+
65
+ # PowerShell: (add to profile if not present)
66
+ . ~/.config/powershell/oasr_completion.ps1
67
+ ```
68
+
69
+ ### Manual Installation
70
+
71
+ If you prefer manual control, output the script and place it yourself:
72
+
73
+ ```bash
74
+ # Bash
75
+ oasr completion bash > ~/.bash_completion.d/oasr
76
+ source ~/.bash_completion.d/oasr
77
+
78
+ # Zsh
79
+ oasr completion zsh > ~/.zsh/completion/_oasr
80
+ # Add to ~/.zshrc:
81
+ # fpath=(~/.zsh/completion $fpath)
82
+ # autoload -Uz compinit && compinit
83
+
84
+ # Fish
85
+ oasr completion fish > ~/.config/fish/completions/oasr.fish
86
+
87
+ # PowerShell
88
+ oasr completion powershell > ~/.config/powershell/oasr_completion.ps1
89
+ # Add to $PROFILE:
90
+ # . ~/.config/powershell/oasr_completion.ps1
91
+ ```
92
+
93
+ ---
94
+
95
+ ## What Gets Completed
96
+
97
+ ### Commands & Subcommands
98
+
99
+ ```bash
100
+ oasr <TAB>
101
+ # Shows: add, adapter, clean, clone, completion, config, diff, exec, find, help, info, list, registry, rm, status, sync, update, use, validate
102
+
103
+ oasr registry <TAB>
104
+ # Shows: add, list, prune, rm, sync, validate
105
+
106
+ oasr config <TAB>
107
+ # Shows: get, list, set, unset, validate
108
+ ```
109
+
110
+ ### Dynamic Resources
111
+
112
+ ```bash
113
+ # Skill names (from your registry)
114
+ oasr info <TAB>
115
+ # Shows: git-commit, code-review, doc-generator, ...
116
+
117
+ oasr exec <TAB>
118
+ # Shows: git-commit, code-review, doc-generator, ...
119
+
120
+ # Agent types
121
+ oasr config set agent <TAB>
122
+ # Shows: codex, copilot, claude, openai, gemini
123
+
124
+ # Profiles
125
+ oasr exec --profile <TAB>
126
+ # Shows: safe, default, permissive, ...
127
+
128
+ # Config keys
129
+ oasr config get <TAB>
130
+ # Shows: agent, profile, validation.strict, adapter.default, ...
131
+ ```
132
+
133
+ ### Flags & Options
134
+
135
+ All commands provide flag completion:
136
+
137
+ ```bash
138
+ oasr add --<TAB>
139
+ # Shows: --source, --no-track, --help
140
+
141
+ oasr exec --<TAB>
142
+ # Shows: --profile, --yes, --confirm, --help
143
+
144
+ oasr adapter --<TAB>
145
+ # Shows: --output-dir, --adapter, --force, --help
146
+ ```
147
+
148
+ ---
149
+
150
+ ## Configuration
151
+
152
+ ### Enable/Disable via Config
153
+
154
+ ```toml
155
+ # ~/.config/oasr/config.toml
156
+ [oasr]
157
+ completions = true # Enable (default)
158
+ # completions = false # Disable
159
+ ```
160
+
161
+ Or via environment variable:
162
+
163
+ ```bash
164
+ export OASR_OASR_COMPLETIONS=true
165
+ ```
166
+
167
+ When disabled, `oasr completion install` will skip installation.
168
+
169
+ ### Installation Paths
170
+
171
+ Completions are installed to standard shell-specific locations:
172
+
173
+ | Shell | Path |
174
+ |-------------|-------------------------------------------|
175
+ | Bash | `~/.bash_completion.d/oasr` |
176
+ | Zsh | `~/.zsh/completion/_oasr` |
177
+ | Fish | `~/.config/fish/completions/oasr.fish` |
178
+ | PowerShell | `~/.config/powershell/oasr_completion.ps1` |
179
+
180
+ ### Backup on Overwrite
181
+
182
+ If you run `oasr completion install` and a completion file already exists, it will:
183
+
184
+ 1. **Without `--force`**: Prompt for confirmation
185
+ 2. **With `--force`**: Create a backup at `<path>.backup` before overwriting
186
+
187
+ ---
188
+
189
+ ## Shell-Specific Notes
190
+
191
+ ### Bash
192
+
193
+ - Requires `bash-completion` package on most systems
194
+ - Sources files from `~/.bash_completion.d/` automatically (if configured)
195
+ - Add to `~/.bashrc` if not auto-loaded:
196
+ ```bash
197
+ [ -f ~/.bash_completion.d/oasr ] && source ~/.bash_completion.d/oasr
198
+ ```
199
+
200
+ ### Zsh
201
+
202
+ - Uses `#compdef` directive for native Zsh completion system
203
+ - Provides rich descriptions for subcommands
204
+ - Add to `~/.zshrc` if not auto-loaded:
205
+ ```zsh
206
+ fpath=(~/.zsh/completion $fpath)
207
+ autoload -Uz compinit && compinit
208
+ ```
209
+
210
+ ### Fish
211
+
212
+ - Uses native `complete -c` syntax
213
+ - Automatically loaded from `~/.config/fish/completions/`
214
+ - No additional configuration needed
215
+
216
+ ### PowerShell
217
+
218
+ - Uses `Register-ArgumentCompleter` API
219
+ - Provides tooltips for commands
220
+ - Add to PowerShell profile:
221
+ ```powershell
222
+ . ~/.config/powershell/oasr_completion.ps1
223
+ ```
224
+ - Find profile location: `echo $PROFILE`
225
+
226
+ ---
227
+
228
+ ## Troubleshooting
229
+
230
+ ### Completions Not Working
231
+
232
+ 1. **Verify installation**:
233
+ ```bash
234
+ oasr completion install
235
+ ```
236
+
237
+ 2. **Check shell detection**:
238
+ ```bash
239
+ oasr completion # Should output script for current shell
240
+ ```
241
+
242
+ 3. **Restart shell** or source the completion file manually
243
+
244
+ 4. **Check shell configuration**:
245
+ - Bash: `~/.bashrc` should source `~/.bash_completion.d/oasr`
246
+ - Zsh: `~/.zshrc` should have `fpath` and `compinit`
247
+ - Fish: Automatically loaded
248
+ - PowerShell: `$PROFILE` should source the completion script
249
+
250
+ ### Dynamic Completions Slow
251
+
252
+ If skill/agent/profile completions are slow:
253
+
254
+ - Dynamic completions call `oasr` commands (e.g., `oasr registry list --quiet`)
255
+ - Large registries may cause slight delays
256
+ - Completions are generated on-demand (not cached)
257
+
258
+ ### Wrong Shell Detected
259
+
260
+ Specify the shell explicitly:
261
+
262
+ ```bash
263
+ oasr completion install zsh
264
+ ```
265
+
266
+ Or set `$SHELL` environment variable:
267
+
268
+ ```bash
269
+ export SHELL=/bin/zsh
270
+ oasr completion install
271
+ ```
272
+
273
+ ---
274
+
275
+ ## Examples
276
+
277
+ ### Install for Current Shell
278
+
279
+ ```bash
280
+ $ oasr completion install
281
+ Installing completion for zsh...
282
+ Completion installed to: /home/user/.zsh/completion/_oasr
283
+
284
+ To activate:
285
+ source ~/.zsh/completion/_oasr
286
+ # Or restart your shell
287
+ ```
288
+
289
+ ### Generate Script for Manual Review
290
+
291
+ ```bash
292
+ $ oasr completion bash > /tmp/oasr_completion.bash
293
+ $ less /tmp/oasr_completion.bash
294
+ # Review script before installing
295
+ $ cp /tmp/oasr_completion.bash ~/.bash_completion.d/oasr
296
+ ```
297
+
298
+ ### Install with Dry Run
299
+
300
+ ```bash
301
+ $ oasr completion install --dry-run
302
+ [DRY RUN] Would install completion for zsh
303
+ [DRY RUN] Target path: /home/user/.zsh/completion/_oasr
304
+ [DRY RUN] File exists: False
305
+ [DRY RUN] Would create directory: /home/user/.zsh/completion
306
+ [DRY RUN] Would write 259 bytes
307
+ ```
308
+
309
+ ### Force Overwrite
310
+
311
+ ```bash
312
+ $ oasr completion install --force
313
+ Backing up existing completion to: /home/user/.zsh/completion/_oasr.backup
314
+ Installing completion for zsh...
315
+ Completion installed to: /home/user/.zsh/completion/_oasr
316
+ ```
317
+
318
+ ---
319
+
320
+ ## See Also
321
+
322
+ - [`oasr config`](CONFIG.md) — Configure completion behavior
323
+ - [`oasr help`](HELP.md) — Get help on commands
324
+ - [Commands Index](.INDEX.md) — All available commands
@@ -1,6 +1,25 @@
1
1
  # `oasr config`
2
2
 
3
- Manage OASR configuration settings. Configure default agent, validation rules, and adapter preferences.
3
+ Manage OASR configuration settings.
4
+
5
+ > **Note:** For comprehensive configuration documentation, see [`docs/configuration/`](../configuration/README.md)
6
+
7
+ ## Quick Reference
8
+
9
+ ```bash
10
+ oasr config set <key> <value> # Set a config value
11
+ oasr config get <key> # Get a config value
12
+ oasr config list # Show all configuration
13
+ oasr config path # Show config file location
14
+ ```
15
+
16
+ **See also:**
17
+ - [Configuration Overview](../configuration/README.md) - Complete config guide
18
+ - [Environment Variables](../configuration/environment-variables.md) - OASR_* reference
19
+ - [Agent Configuration](../configuration/agent.md) - Agent settings
20
+ - [Policy Profiles](../configuration/profiles.md) - Execution policies
21
+
22
+ ---
4
23
 
5
24
  ## Usage
6
25
 
@@ -0,0 +1,58 @@
1
+ [[doc]]
2
+ path = "README.md"
3
+ title = "Configuration Overview"
4
+ description = "Getting started with OASR configuration - quick start and common scenarios"
5
+
6
+ [[doc]]
7
+ path = "agent.md"
8
+ title = "Agent Configuration"
9
+ description = "Configure default agent and agent-specific settings"
10
+
11
+ [[doc]]
12
+ path = "profiles.md"
13
+ title = "Policy Profiles"
14
+ description = "Execution policy profiles for security and isolation"
15
+
16
+ [[doc]]
17
+ path = "validation.md"
18
+ title = "Validation Settings"
19
+ description = "Skill validation and reference display settings"
20
+
21
+ [[doc]]
22
+ path = "adapter.md"
23
+ title = "Adapter Configuration"
24
+ description = "IDE adapter targets and settings"
25
+
26
+ [[doc]]
27
+ path = "environment-variables.md"
28
+ title = "Environment Variables"
29
+ description = "Complete OASR_* environment variable reference"
30
+
31
+ [[doc]]
32
+ path = "precedence.md"
33
+ title = "Configuration Precedence"
34
+ description = "Understanding how CLI flags, env vars, config file, and defaults interact"
35
+
36
+ [[section]]
37
+ name = "Examples"
38
+ description = "Ready-to-use configuration examples for common scenarios"
39
+
40
+ [[example]]
41
+ path = "examples/development.toml"
42
+ title = "Development Configuration"
43
+ description = "Permissive config for local development"
44
+
45
+ [[example]]
46
+ path = "examples/ci-cd.toml"
47
+ title = "CI/CD Configuration"
48
+ description = "Config for continuous integration pipelines"
49
+
50
+ [[example]]
51
+ path = "examples/production.toml"
52
+ title = "Production Configuration"
53
+ description = "Hardened config for production environments"
54
+
55
+ [[example]]
56
+ path = "examples/minimal.toml"
57
+ title = "Minimal Configuration"
58
+ description = "Bare minimum config to get started"