Przejdź do treści
Biblioteka skilli
Programowanie · Budowanie i kod

add-command

/add-command

Dodaje obsługę nowego polecenia CLI, pisze jego handler i wpisuje je na listę SIMPLE_SAFE.

Repozytorium
dippy ↗
Licencja
MIT
Ostatnia zmiana repozytorium
12.06.2026

Ocena i bezpieczeństwo

95/ 100Klasa: dobry
Format25 / 25
Frontmatter z nazwą i opisem, poprawna nazwa, opis do 1024 znaków, nazwa zgodna z folderem.
Odkrywalność25 / 25
Opis mówi, kiedy użyć skilla, ma sensowną długość i jest w 3. osobie.
Treść30 / 35
Co najmniej 150 słów i do 500 linii, nagłówki, listy kroków, przykłady albo kod.
Higiena15 / 15
Bez zaślepek typu TODO, bez ścieżek Windows, z licencją.
Ryzykobrak sygnałów w skanie
Pliki w paczce
2
Skrypty
0
Komentarze HTML
0
Adresy URL w SKILL.md
0
Przestarzałość

Brak sygnałów. Repozytorium zmienione 12.06.2026, bez odwołań do wycofanych modeli i API.

Licencja

MIT, otwarta: można używać i zmieniać, z zachowaniem informacji o autorze.

Co robi i kiedy

Dodaje obsługę nowego polecenia CLI, pisze jego handler i wpisuje je na listę SIMPLE_SAFE.

Argumenty

/add-command <command>
Oryginalny opis (EN)

Add support for a new CLI command. Use when implementing a handler or adding to SIMPLE_SAFE.

Jak działa

  1. 1. Research
  2. 2. Decide: Handler or SIMPLESAFE?
  3. 3A. SIMPLESAFE Path
  4. 3B. Handler Path
  5. 4. Implement Handler
  6. 5. Iterate
  7. 6. Verify
Sekcje z nagłówków SKILL.md, w oryginale · 90 linii, 230 słów
Podgląd SKILL.md
---
name: add-command
description: Add support for a new CLI command. Use when implementing a handler or adding to SIMPLE_SAFE.
argument-hint: <command>
disable-model-invocation: true
---

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`:

```python
"""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`:

```python
"""$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](patterns.md).

## 5. Iterate

```
just test
```

Fix failures until tests pass.

## 6. Verify

`just check` MUST pass before you're done.
Pliki w paczce (2)
  • SKILL.md 2 KB
  • patterns.md 2 KB

Wersje

RepozytoriumWynikLicencja
Ta strona · ldayton/dippy95MIT
proteanhq/protean100Apache-2.0
doist/todoist-cli100MIT
coralogix/cx-cli100Apache-2.0
GO-VIRTUAL-bv/tile38.go100MPL-2.0

Migawka bazy z 28.10.2026 · wersja paczki bc5704e32c18 (skrót SHA-256 całej paczki)

Zgłoś problem z tym skillem: szkodliwa treść, błędny opis albo prośba autora o usunięcie.

Podobne skille

  • 100check-coverage
    Zapewnia pokrycie testami handlera polecenia CLI przy dodawaniu nowego polecenia lub audycie istniejącego pokrycia.
  • 100add-tauri-command
    Dodaje polecenie Tauri do MooshieUI od początku do końca: handler w Rust, rejestrację w lib.rs i opakowanie ipcInvoke w TypeScript.
  • 100cli-commands
    Dodaje lub zmienia polecenia CLI but w katalogu crates/but/src.
  • 100new-command-docs
    Aktualizuje dokumentację repozytorium ArcKit po dodaniu nowego polecenia: liczniki poleceń, README, macierz zależności, docs/index.html i tabele poleceń.
  • 100add-use-case
    Buduje w Protean kompletny pionowy wycinek: definicja komendy, handler, zmiana agregatu, zgłoszenie zdarzenia i reakcja handlera zdarzenia, czyli najczęstszy przepływ dodawania nowej funkcji.
  • 95webiny-cli-extensions
    Dodaje własne polecenia do CLI Webiny: migracje danych, generatory kodu, skrypty wdrożeniowe i eksport treści.

Uwagi i zgłoszenia

Wiadomość trafi do Bartosza Sokolińskiego. Adres e-mail jest potrzebny tylko do odpowiedzi. Szczegóły w polityce prywatności.