Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
delphine-l avatar

Command Discipline

  • 13 installs
  • 17 repo stars
  • Updated May 14, 2026
  • delphine-l/claude_global

Run shell commands bare with no decorative echo headers or trailing status echoes, keeping narration in the tool description to preserve permission auto-approval.

About

A behavior rule instructing an agent to run shell commands directly, without decorative echo headers, echo-then-command chains, or trailing status echoes. A developer or agent uses it to keep Bash invocations clean and to avoid breaking permission-rule auto-approval that matches on the first command segment.

  • Bans echo === X === headers and && echo done trailers; narration belongs in the Bash tool description
  • Explains that echo prefixes break first-segment permission matching and cause needless prompts

Command Discipline by the numbers

  • 13 all-time installs (skills.sh)
  • Ranked #378 of 550 CLI & Terminal skills by installs in the Skillselion catalog
  • Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/delphine-l/claude_global --skill command-discipline

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs13
repo stars17
Last updatedMay 14, 2026
Repositorydelphine-l/claude_global

What it does

Run shell commands bare with no decorative echo headers or trailing status echoes, keeping narration in the tool description to preserve permission auto-approval.

Files

SKILL.mdMarkdownGitHub ↗

Command Discipline

When you run a shell command, run it directly. No decoration, no chained echos, no preamble.

What to stop doing

# WRONG — decorative header before the real command
echo "=== running tests ===" && planemo test workflow.ga

# WRONG — narration-by-echo
echo "Checking workflow lint" && planemo workflow_lint --iwc .

# WRONG — trailing status echo
planemo test workflow.ga && echo "tests passed"

# WRONG — semicolon variant of the same
echo "=== before ===" ; ls test-data/

What to do instead

# RIGHT — bare command, narration in the Bash tool's description field
planemo test workflow.ga
planemo workflow_lint --iwc .
ls test-data/

If you want the user to know what step you're running, put that text in the Bash tool `description` parameter. The user sees it in the tool-call panel. It does not need to be inside the shell command.

Why

1. The user already sees the command — both in the tool-call panel and in the description field. The leading echo "=== X ===" is redundant noise that pushes the real command later in the line. 2. It breaks permission-rule auto-approval. Permission rules typically match commands by what the first segment starts with (Bash(planemo workflow_lint *)). When you prefix with echo "..." && ..., the first segment is the echo, which usually isn't covered by the same allow rule, so the user gets prompted unnecessarily. 3. Trailing `&& echo done` adds nothing. The Bash tool already reports exit code and the absence of an error message is itself the "done" signal. 4. It looks like a tutorial blog post. You're not writing shell tutorials; you're executing one command per tool call. Pretend the panel headings don't exist and just run the thing.

Legitimate echo uses (do NOT avoid these)

These are real uses of echo, not decoration:

echo "$VAR"                       # printing a value
echo "$(date -u +%Y-%m-%d)"       # capturing a value
echo "line of data" >> log.txt    # generating content
echo "stdin payload" | python -   # piping data into a program

The rule blocks echo-as-narration, not echo-as-data-flow.

Edge cases worth keeping

  • [ -f file ] && echo "exists" — quick existence probe. Fine when the echo IS the result you wanted to see. Prefer ls file 2>/dev/null; echo "rc=$?" only if you actually need the rc.
  • cmd1 && cmd2 chains where neither cmd is echo — totally fine; the rule is specifically about echo decoration.

When in doubt

Ask: "If I removed this echo, would the user lose any information they wouldn't already see?" If no, remove it.

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.