Skill: orangon/along-plan (version 1.0.0)

--- name: along-plan description: "Read-only exploration and planning skill for safe code analysis. This skill should be used when the user asks to enter plan mode, analyze before changing, create a plan first, or wants a safe exploration phase before making edits. Enforces read-only tool access, produces a numbered plan under a Plan: header, and tracks step completion with [DONE:n] markers during execution." --- # Along Plan ## Explore - Only use `read`, `grep`, `glob`, `bash` (bash restricted to safe commands — see `references/safe-commands.md`) - Do NOT use `edit` or `write`, except to save the plan document (see below) Output the plan under an exact `Plan:` header: ``` Plan: 1. Step one 2. Step two 3. Step three ``` Then save it to `docs/plan-<topic>.md` or `doc/plan-<topic>.md`(whichever exists) using `write`: ```markdown # Plan: <topic> ## TODO - [ ] 1. Step one - [ ] 2. Step two ## Acceptance Criteria - Observable outcome that confirms the plan succeeded - Edge cases or constraints that must hold ``` - `references/safe-commands.md` — bash allowlist/blocklist for plan mode

path: references/safe-commands.md
content: # Bash Command Safety Reference for Plan Mode

In plan mode, bash is restricted to read-only commands only.
A command is safe only when it matches a SAFE pattern AND does NOT match a DESTRUCTIVE pattern.

---

## SAFE Commands (Allowed)

These command prefixes are allowed in plan mode:

### File Reading
- `cat`, `head`, `tail`, `less`, `more`, `bat`
- `file`, `stat`, `wc`

### Search & Navigation
- `grep`, `rg` (ripgrep), `fd`, `find`
- `ls`, `exa`, `tree`, `pwd`

### Text Processing (read-only)
- `echo`, `printf`
- `sort`, `uniq`, `diff`
- `awk`, `sed -n` (sed with -n flag only — no writes)
- `jq`

### System Info
- `uname`, `whoami`, `id`, `date`, `cal`, `uptime`
- `env`, `printenv`
- `ps`, `top`, `htop`, `free`
- `du`, `df`
- `which`, `whereis`, `type`

### Git (read-only)
- `git status`
- `git log`
- `git diff`
- `git show`
- `git branch` (listing only)
- `git remote`
- `git config --get`
- `git ls-files`, `git ls-tree`

### Package Info (read-only)
- `npm list`, `npm ls`, `npm view`, `npm info`, `npm search`, `npm outdated`, `npm audit`
- `yarn list`, `yarn info`, `yarn why`, `yarn audit`

### Network (read-only)
- `curl` (GET requests)
- `wget -O -` (output to stdout only)

### Version Checks
- `node --version`, `python --version`, any `--version` flag

---

## DESTRUCTIVE Commands (Blocked)

These patterns are always blocked, even if they appear inside a safe-looking command:

### File System Mutations
- `rm`, `rmdir`
- `mv`, `cp`
- `mkdir`, `touch`
- `chmod`, `chown`, `chgrp`
- `ln`, `tee`, `truncate`, `dd`, `shred`
- Any redirection: `>file`, `>>file` (output redirect)

### Package Management (writes)
- `npm install/uninstall/update/ci/link/publish`
- `yarn add/remove/install/publish`
- `pnpm add/remove/install/publish`
- `pip install/uninstall`
- `apt/apt-get install/remove/purge/update/upgrade`
- `brew install/uninstall/upgrade`

### Git (writes)
- `git add`, `git commit`, `git push`, `git pull`
- `git merge`, `git rebase`, `git reset`
- `git checkout` (switching branches)
- `git branch -d` / `git branch -D`
- `git stash`, `git cherry-pick`, `git revert`
- `git tag`, `git init`, `git clone`

### System Control
- `sudo`, `su`
- `kill`, `pkill`, `killall`
- `reboot`, `shutdown`
- `systemctl start/stop/restart/enable/disable`
- `service <name> start/stop/restart`

### Editors (interactive)
- `vim`, `vi`, `nano`, `emacs`, `code`, `subl`

---

## Decision Rule

```
isSafe = NOT any(DESTRUCTIVE_PATTERN matches command)
       AND any(SAFE_PATTERN matches command)
```

When unsure: do NOT run the command. Describe what it would show instead.


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)