From dso
Auto-discover and display all plugin scripts and skills available in this workflow plugin.
npx claudepluginhub navapbc/digital-service-orchestra --plugin dso-devThis skill is limited to using the following tools:
Auto-discovers all available scripts and skills in the workflow plugin at invocation time. No hardcoded lists — everything is resolved dynamically.
Provides Ktor server patterns for routing DSL, plugins (auth, CORS, serialization), Koin DI, WebSockets, services, and testApplication testing.
Conducts multi-source web research with firecrawl and exa MCPs: searches, scrapes pages, synthesizes cited reports. For deep dives, competitive analysis, tech evaluations, or due diligence.
Provides demand forecasting, safety stock optimization, replenishment planning, and promotional lift estimation for multi-location retailers managing 300-800 SKUs.
Auto-discovers all available scripts and skills in the workflow plugin at invocation time. No hardcoded lists — everything is resolved dynamically.
/dso:quick-ref # Show all scripts and skills
/dso:quick-ref scripts # Show only scripts
/dso:quick-ref skills # Show only skills
REPO_ROOT="$(git rev-parse --show-toplevel)"
PLUGIN_ROOT="${CLAUDE_PLUGIN_ROOT}"
List all .sh files in the plugin scripts/ directory and extract the first comment line (after the shebang and filename comment) as a description.
scripts_dir="${PLUGIN_ROOT}/scripts"
for script in "$scripts_dir"/*.sh; do
name="$(basename "$script")"
# Extract the description: second comment line (first after #!/... line)
desc="$(sed -n '2s/^# *//p' "$script")"
# If line 2 is a filename echo, try line 3
if [[ "$desc" == *"$name"* ]] || [[ -z "$desc" ]]; then
desc="$(sed -n '3s/^# *//p' "$script")"
fi
echo "| $name | $desc |"
done
Present the results as a markdown table:
| Script | Description |
|---|---|
| (auto-discovered at invocation time) | (first comment line) |
List all skills by scanning for SKILL.md files under the plugin skills/ directory.
skills_dir="${PLUGIN_ROOT}/skills"
for skill_file in "$skills_dir"/*/SKILL.md; do
skill_dir="$(dirname "$skill_file")"
skill_name="$(basename "$skill_dir")"
# Extract description from YAML frontmatter
desc="$(sed -n '/^description:/s/^description: *//p' "$skill_file")"
# Check if user-invocable
invocable="$(sed -n '/^user-invocable:/s/^user-invocable: *//p' "$skill_file")"
echo "| /$skill_name | $desc | $invocable |"
done
Present the results as a markdown table:
| Skill | Description | User-Invocable |
|---|---|---|
| (auto-discovered at invocation time) | (from frontmatter) | (true/false) |
Combine the two tables with section headers and present to the user. If the user passed scripts or skills as an argument, show only the relevant section.