name: gh-issue-start description: >- Start pracy nad issue: branch z domyślnej gałęzi repo, status In progress, assignee. shared_files: - _shared/references/runtime-collaboration-guidelines.md - _shared/scripts/env-load.sh - _shared/scripts/issue-branch.sh
$gh-issue-start
Reguły rozwiązywania ścieżek
- Stosuj globalny kontrakt ścieżek z root
AGENTS.md.
Priorytet zasad (globalny kontrakt)
- Instrukcje systemowe/developerskie środowiska
./AGENTS.mdi dokumenty zdocs_map- Bieżący
SKILL.md - Pliki wskazane w
shared_files
Cel
Zautomatyzować start pracy nad issue: ustalenie numeru issue, utworzenie/checkout brancha z domyślnej gałęzi repo (lub z --base), ustawienie statusu w Projects v2 na In progress oraz przypisanie aktualnego użytkownika.
Kroki
- Sprawdź autoryzację i scope:
gh auth status- Jeśli używasz
GH_TOKEN: upewnij się, że token ma scopeprojectiread:org(Projects v2 w org);gh auth refreshnie zadziała przy ustawionymGH_TOKEN. - Jeśli nie używasz
GH_TOKENi brakujeprojectlubread:org:gh auth refresh -h github.com -s project,read:org
- Uruchom skrypt startowy (automatyzuje wykrycie issue, tworzenie/checkout brancha oraz przypisanie aktualnego użytkownika do issue):
<skill_dir>/scripts/start.sh- Opcje:
--issue-number <NUMER>--title "<Tytuł>"(używane, gdy trzeba utworzyć nowe issue)--desc "<Opis>"(krótki opis do utworzenia issue i nazwy brancha)--base <remote/branch|branch>(opcjonalnie; domyślnie domyślna gałąź repo)
- Nazwa brancha jest wyprowadzana przez wspólny helper
<skills_root>/_shared/scripts/issue-branch.shi ma postaćissue/<ID>-<slug>. - Skrypt przed utworzeniem nowego brancha wykonuje
git fetchdla base ref, aby mieć aktualną bazę. - Skrypt zawsze tworzy lub checkoutuje branch dla wskazanego issue (jeśli branch nie istnieje, zostanie utworzony).
- Po powodzeniu skryptu uruchom osobno
$gh-issue-status-set, aby ustawić status In progress:- Preferuj przekazanie numeru issue:
- jeśli użyto
--issue-number, przekaż ten numer, - w przeciwnym razie użyj numeru z outputu skryptu (
Issue #<ID> ready on branch ...).
- jeśli użyto
- Jeśli nie da się jednoznacznie ustalić numeru issue, pozwól
$gh-issue-status-setużyć własnych heurystyk i ewentualnie dopytać. - Jeśli ustawienie statusu się nie powiedzie: nie ukrywaj błędu, zwróć użytkownikowi jawny komunikat (status nieustawiony + przyczyna), ale pozostaw informację, że branch/issue start zostały wykonane.
- Preferuj przekazanie numeru issue:
Źródła parametrów
--issue-number: gdy użytkownik poda numer issue wprost (np. „start issue 46”, „zaczynamy pracę nad 46”).--desc: krótki opis zadania podany przez użytkownika (np. „rozpocznij zadanie: dodać skille start/finish”).--title: tytuł issue wyprowadzony z opisu użytkownika, gdy chcesz utworzyć issue i nie ma istniejącego ID. Preferuj--desc;--titlejest fallbackiem, jeśli użytkownik podał tylko tytuł bez opisu.- Priorytet:
--issue-number>--desc/--title.
Heurystyka ustalania issue (w skrypcie)
- Jeśli podano
--issue-number, używamy go bez dalszych heurystyk. - Jeśli podano
--desclub--title, wyszukujemy po tytule (słowa kluczowe z opisu/tytułu). - Szukamy wyłącznie w otwartych issue.
- Jeśli issue nie istnieje: tworzy je (tytuł z
--titlelub--desc). - Nie używamy numerów issue z commitów ani ID z nazwy brancha.
Gdy brakuje danych
Jeśli nie da się ustalić numeru issue ani tytułu/opisu do utworzenia nowego issue, zatrzymaj się i dopytaj użytkownika, opisując czego brakuje (np. „nie mam numeru issue ani opisu/tytułu do utworzenia nowego”).
Jeśli użytkownik podał --issue-number, a issue nie istnieje lub jest zamknięte, nie twórz nowego — poproś o poprawny numer.
Branch naming
- Schemat:
issue/<ID>-<slug>. - Slug: lowercase, spacje → myślniki, usuwa znaki spoza ASCII.
- Źródłem prawdy dla generowania nazwy brancha jest
<skills_root>/_shared/scripts/issue-branch.sh.
Kody wyjścia skryptu
10brak tytułu do utworzenia issue → dopytaj użytkownika o tytuł i uruchom ponownie z--title.11nie udało się utworzyć issue → sprawdź komunikat i spróbuj ponownie po korekcie danych.13issue o podanym numerze nie istnieje lub jest zamknięte → poinformuj użytkownika i poproś o poprawny--issue-number(sprawdź, czy issue nie zostało zamknięte).21wiele pasujących issue → poproś użytkownika o numer i uruchom ponownie z--issue-number.12brak base ref (origin/<default>albo wartość z--base) → sprawdź zdalne branche lub wskaż poprawne--base.- Inne błędy → odczytaj komunikat skryptu i popraw dane wejściowe.
Format odpowiedzi
- Wynik: issue + branch utworzone/przełączone, status ustawiony.
- Uwagi: brakujące dane, konflikty oraz ewentualny błąd ustawienia statusu (jeśli dotyczy).
Przykłady wejścia
- "$gh-issue-start"
- "start issue 46"
- "rozpocznij zadanie"
- "zaczynamy pracę nad 46"
- "startujemy z zadaniem numer 46"
- "start: krótkim opisem zadania"
- "uruchom gh-issue-start z tytułem"
Przykłady wyjścia
Wynik: issue #46 aktywowane, branch issue/46-skill-start utworzony i checkout. Uwagi: brak.