Agent skill
add-command
Add support for a new CLI command. Use when implementing a handler or adding to SIMPLE_SAFE.
Install this agent skill to your Project
npx add-skill https://github.com/ldayton/Dippy/tree/main/.claude/skills/add-command
SKILL.md
Add support for $ARGUMENTS in Dippy.
1. Research
tldr pages:
ls ~/source/tldr/pages/*/$ARGUMENTS*.md
cat ~/source/tldr/pages/*/$ARGUMENTS.md
CLI docs:
$ARGUMENTS --help
man $ARGUMENTS
Note which operations are read-only vs mutations.
2. Decide: Handler or SIMPLE_SAFE?
- SIMPLE_SAFE: Always safe regardless of arguments (read-only, no destructive flags). Go to step 3A.
- Handler: Needs subcommand/flag analysis. Go to step 3B.
3A. SIMPLE_SAFE Path
Add to SIMPLE_SAFE in src/dippy/core/allowlists.py and add tests to tests/test_simple.py in the appropriate category. Skip to step 5.
3B. Handler Path
Create tests/cli/test_$ARGUMENTS.py:
"""Test cases for $ARGUMENTS."""
import pytest
from conftest import is_approved, needs_confirmation
TESTS = [
# Safe operations
("$ARGUMENTS <safe-subcommand>", True),
("$ARGUMENTS --help", True),
# Unsafe operations
("$ARGUMENTS <unsafe-subcommand>", False),
]
@pytest.mark.parametrize("command,expected", TESTS)
def test_command(check, command: str, expected: bool):
result = check(command)
if expected:
assert is_approved(result), f"Expected approve: {command}"
else:
assert needs_confirmation(result), f"Expected confirm: {command}"
4. Implement Handler
Create src/dippy/cli/$ARGUMENTS.py:
"""$ARGUMENTS handler for Dippy."""
from dippy.cli import Classification, HandlerContext
COMMANDS = ["$ARGUMENTS"]
SAFE_ACTIONS = frozenset({"list", "show", "status"})
def classify(ctx: HandlerContext) -> Classification:
tokens = ctx.tokens
action = tokens[1] if len(tokens) > 1 else None
if action in SAFE_ACTIONS:
return Classification("allow", description=f"$ARGUMENTS {action}")
return Classification("ask", description="$ARGUMENTS")
For handler patterns (nested subcommands, flag-checking, delegation), see patterns.md.
5. Iterate
just test
Fix failures until tests pass.
6. Verify
just check MUST pass before you're done.
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
release
Create a release PR with version bump and changelog
debug
Debug incorrect Dippy approval or block behavior
verify-counts
Verify numerical claims in documentation are still accurate
check-coverage
Ensure comprehensive test coverage for a CLI handler. Use when adding a new command or auditing existing handler coverage.
release
Create a release PR with version bump and changelog
verify-counts
Verify numerical claims in documentation are still accurate
Didn't find tool you were looking for?