Development Guide
Repository Structure
rhel-devops-skills-cli/
install.sh # Main entry point
LICENSE # Apache-2.0 license
CONTRIBUTING.md # Quick-start contributing guide
README.md # Project overview and usage
lib/
common.sh # Shared utilities, platform detection, prerequisites
registry.sh # JSON registry management (jq/python3 fallback)
fetch-docs.sh # Clone repos and copy documentation
validate.sh # Verify installation integrity
upgrade.sh # Skill and installer upgrades
scaffold.sh # Project scaffolding from templates
skills/
agnosticd/ # AgnosticD v2 skill
field-sourced-content/ # Field-Sourced Content skill
patternizer/ # Patternizer skill
showroom/ # Showroom skill
... # (16 skills total)
templates/ # Scaffold templates (demo, infra, shared-cluster, etc.)
tests/
test-helpers.sh # Shared test framework
test-install.sh # CLI argument parsing tests
test-registry.sh # Registry CRUD tests
test-validate.sh # Validation function tests
test-upgrade.sh # Upgrade function tests
test-scaffold.sh # Scaffold function tests
run-all.sh # Test runner
docs/ # GitHub Pages documentation
.github/
workflows/
test.yml # CI tests (Ubuntu + macOS)
release.yml # Release automation
deploy-docs.yml # GitHub Pages deployment
ISSUE_TEMPLATE/
new-skill-request.yml
Running Tests
bash tests/run-all.sh
Tests create isolated temp directories and mock $HOME to avoid side effects.
Design Decisions
All architectural decisions are documented in ADRs:
- ADR-001: Agent Skills standard (
SKILL.md) over custom formats - ADR-002: Target Claude Code and Cursor IDE
- ADR-003: Documentation embedding via
references/ - ADR-004: Installation paths (
~/.claude/skills/,~/.cursor/skills/,~/.agents/skills/) - ADR-005: Dual-mode skills + optional Cursor rules
- ADR-006: Shell installer with JSON registry
- ADR-007: GitHub Pages with Just the Docs
- ADR-008: Skill update strategy (auto-check + manual)
- ADR-009: Community contributions via GitHub Issues
Cross-Tool Installation Targets
The installer supports three target types:
--ide value | Path | Compatible tools |
|---|---|---|
claude | ~/.claude/skills/ | Claude Code |
cursor | ~/.cursor/skills/ | Cursor IDE |
agents | ~/.agents/skills/ | Codex, Copilot, Cursor, Goose, Gemini CLI, and 40+ Agent Skills standard tools |
both | Claude + Cursor | (auto-detect) |
all | Claude + Cursor + agents | (all paths) |
| (default) | Auto-detect Claude + Cursor |
When testing changes, verify at minimum:
./install.sh install --skill agnosticd --ide claude --dry-run
./install.sh install --skill agnosticd --ide cursor --dry-run
./install.sh install --skill agnosticd --ide agents --dry-run
Code Style
- Bash 4.4+ features are permitted (associative arrays,
${var,,}, etc.) - Use
set -euo pipefailin all scripts - Functions are prefixed:
_private()for internal,public()for API - JSON operations use
jqwithpython3fallback - Platform-specific logic uses
detect_platform()fromlib/common.sh