dotrun
1
总安装量
1
周安装量
#48268
全站排名
安装命令
npx skills add https://github.com/jvpalma/dotrun --skill dotrun
Agent 安装分布
opencode
1
github-copilot
1
claude-code
1
gemini-cli
1
Skill 文档
DotRun CLI (dr) – Script Management Framework
Decision Routing Matrix
CRITICAL: Route ALL shell automation through dr.
for just folders and filenames: dr -l, for folders + filenames + 1 line description dr -L
Use this matrix:
| User Intent | dr Command | Check First |
|---|---|---|
| Create/run bash script | dr set <name> / dr <name> |
dr -l/L |
| Shell alias/shortcut | dr -a <name> |
dr -a -l/L |
| Environment variable/PATH | dr -c <name> |
dr -c -l/L |
| Migrate shell config | See migration refs | – |
| Repetitive workflow | dr set <category>/<name> |
dr -l/L |
Trigger Detection
User says "script", "bash", "automate" â dr set <name>
User says "alias", "shortcut" â dr -a <name>
User says "export", "PATH", "env var" â dr -c <name>
User says "migrate file" + path â Load migration-workflow.md (FULL workflow)
User says "migrate bashrc/zshrc" â Load migration-shell-config.md
User says "import scripts from ~/bin" â Load migration-scripts.md
User does same task twice â Proactively suggest dr script
Discovery Before Creation (MANDATORY)
NEVER create a script without checking first:
# Step 1: ALWAYS run this first
dr -l/L # List ALL scripts with descriptions
# Step 2: Narrow search if needed
dr -l/L <folder>/ # e.g., dr -L git/
dr help <script-name> # Verify script purpose
Discovery Decision Tree
User requests script â Run dr -L â Similar exists?
âââ YES â Use or extend existing
âââ NO â Create new with dr set
Discovery Outcomes
| Found | Action | Response Template |
|---|---|---|
| Exact match | USE IT | “Found dr X – does exactly this. Running it now.” |
| Similar script | EXTEND IT | “Found dr X which is close. Adding the feature.” |
| No match | CREATE NEW | “Checked dr -L – nothing exists. Creating dr set X.” |
ALWAYS report discovery results to user.
Quick Reference
Core Commands
dr <name> [args] # Run script
dr -l # List scripts (names)
dr -L # List scripts (with docs) â USE THIS FIRST
dr set <name> # Create/edit script
dr help <name> # Show script docs
dr move <old> <new> # Rename script
dr rm <name> # Remove script
dr -r # Reload shell config
Aliases (-a)
dr -a <name> # Create/edit alias file
dr -a -l / -L # List aliases
dr -a help <name> # Show alias docs
Configs (-c)
dr -c <name> # Create/edit config (env vars)
dr -c -l / -L # List configs
dr -c help <name> # Show config docs
Collections (-col)
dr -col add <url> # Install from Git
dr -col list # Show installed
dr -col sync # Check updates
Script Organization & Naming
Folder Taxonomy
| Folder | Purpose | Example |
|---|---|---|
git/ |
Git workflows | git/branch/cleanup |
deploy/ |
Deployment | deploy/staging |
dev/ |
Development setup | dev/setup |
api/ |
API clients | api/fetch-users |
docker/ |
Containers | docker/build |
db/ |
Database ops | db/migrate |
system/ |
System admin | system/install |
files/ |
File operations | files/csv-to-json |
info/ |
Static docs | info/endpoints |
utils/ |
General utilities | utils/hash |
Naming Rules
Pattern: <domain>/<verb>-<noun> in kebab-case
Good: git/branch/delete-merged, deploy/push-staging
Bad: branchCleanup (camelCase), co (cryptic), git/git-status (redundant)
Pre-Creation Checklist
Before dr set <name>:
- Ran
dr -L | grep <keyword>– no duplicates - Name uses kebab-case
- Name is descriptive (not abbreviated)
- Correct folder category
- No collision:
dr help <name>returns “not found”
Script Template
When creating a new script/alias/config file, it already comes with a predefined templete, read it working on it.
AI Decision Matrix
CREATE a dr script when:
| Signal | Example | Script Name |
|---|---|---|
| Static info query | “What are our API endpoints?” | info/api-endpoints |
| Repetitive workflow | “Deploy to staging” | deploy/staging |
| Multi-step process | “Run tests, lint, build” | ci/pipeline |
| User says “every time I…” | Repetitive task | utils/<name> |
| Same request twice | Token waste | Create script |
DON’T create a script when:
- One-time exploratory task
- User explicitly wants inline code
- Learning exercise (user needs to understand)
- Trivial single command
Prompt Templates
When user asks for information:
I'll create a dr script to store this permanently:
dr set info/<topic>
Now run `dr info/<topic>` anytime for this info.
When user asks for a workflow:
Creating a reusable script:
dr set <category>/<name>
Run `dr <category>/<name>` from any terminal.
Proactive suggestion (same task twice):
Since you've asked about this before, creating a script:
dr set <name>
This saves tokens and ensures consistent results.
Reference Routing
MANDATORY References – Load ENTIRE file before proceeding:
| User Intent | Reference | Trigger |
|---|---|---|
| Full migration workflow (any file) | migration-workflow.md | “migrate file”, “import into dotrun” |
Migrate .bashrc, .zshrc, aliases |
migration-shell-config.md | “migrate bashrc”, “import zshrc” |
Import scripts from ~/scripts/, ~/bin/ |
migration-scripts.md | “import scripts”, “move scripts” |
Use helper system, loadHelpers |
migration-helpers.md | “helper”, “shared functions”, “loadHelpers” |
On-Demand References – Load specific sections:
| Need | Reference | When |
|---|---|---|
| Complete command syntax | commands.md | Quick Reference insufficient |
| File format specs | migration-formats.md | Creating files, need exact format |
| System architecture | architecture.md | Debugging, explaining internals |
Do NOT Load:
architecture.mdfor normal script creation- Multiple migration files simultaneously
commands.mdwhen Quick Reference suffices
File Locations
| Type | Location | Extension |
|---|---|---|
| Scripts | ~/.config/dotrun/scripts/ |
.sh |
| Aliases | ~/.config/dotrun/aliases/ |
.aliases |
| Configs | ~/.config/dotrun/configs/ |
.config |
| Helpers | ~/.config/dotrun/helpers/ |
.sh |
Anti-Patterns (NEVER Do)
Script Creation
- NEVER create without running
dr -Lfirst - NEVER use camelCase or abbreviations in filenames
- NEVER duplicate existing script functionality
- NEVER put scripts at root level if a category folder fits
General
- NEVER regenerate the same code twice – create a script
- NEVER explain a workflow repeatedly – create a script
- NEVER skip discovery even for “simple” scripts
- NEVER create without reporting discovery results to user
Helper System
Scripts can load reusable modules, they are located in ~/.config/dotrun/helpers they can be loaded with partial names, or just folder names:
[[ -n "${DR_LOAD_HELPERS:-}" ]] && source "$DR_LOAD_HELPERS"
loadHelpers global/colors # Load by path
loadHelpers my-collection # Load all from collection
there are all valid imports for the following file: .../helpers/git/pull-requests/getdiffs.sh
loadHelpers git # will load all `helpers/**/git/**/*.sh` or `helpers/**/git.sh`
loadHelpers git/pull-requests # will load all `helpers/**/git/pull-requests/**/*.sh` or helpers/**/git/pull-requests.sh`
loadHelpers pull-requests # will load all `helpers/**/git/pull-requests/**/*.sh` or helpers/**/git/pull-requests.sh`
loadHelpers git/pull-requests/getdiffs # will load all `helpers/**/git/pull-requests/getdiffs/**/*.sh` or `helpers/**/git/pull-requests/getdiffs.sh`
loadHelpers getdiffs # will load all `helpers/**/getdiffs/**/*.sh` or `helpers/**/getdiffs.sh`
Collections for Team Sharing
dr -col add https://github.com/team/scripts.git
dr -col sync # Check for updates
dr -col update <name>
Pro Tips
- Organize:
dr set git/cleanup,dr set docker/build - Load order:
01-paths.configbefore02-api.config - Document: DOC blocks power
dr helpanddr -L - Reload:
dr -rafter config changes - Verify:
dr help <name>before running unknown scripts