Skip to content
Back to skills

Rsi Helpdesk

ASecurity

Helpdesk samonaprawy AI stacku (RSI). Uzyj, gdy w trakcie zadania zawodzi element samego stacku - adapter lub model we Fleet, Agent CLI, Office, Knowledge Hub, wspolny skill, launcher, runtime - i obchodzisz to innym modelem lub narzedziem: zglos usterke jednym poleceniem i wracaj do zadania. Uzyj tez, gdy uruchomiono Cie jako sesje naprawcza RSI Helpdesk albo pytaja o otwarte zgloszenia stacku. Nie dotyczy bledow aplikacji projektowych ani wyczerpanych limitow.

  • 4 stars
  • 0 votes
  • 0 copies
  • 0 views
  • Added November 7, 2026
ai-agentspythonrustgobashapi

Works with

  • cli
  • api

Security analysis

A100/100

Pro scans all 16 files and shows the line behind each finding

Scanned November 7, 2026

npx -y skills add PapeMati98/Ai-Stack --skill rsi-helpdesk --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Rsi Helpdesk?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Rsi Helpdesk
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/papemati98-rsi-helpdesk/badge)](https://www.skillsdirectory.com/skills/papemati98-rsi-helpdesk)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: rsi-helpdesk
description: "Helpdesk samonaprawy AI stacku (RSI). Uzyj, gdy w trakcie zadania zawodzi element samego stacku - adapter lub model we Fleet, Agent CLI, Office, Knowledge Hub, wspolny skill, launcher, runtime - i obchodzisz to innym modelem lub narzedziem: zglos usterke jednym poleceniem i wracaj do zadania. Uzyj tez, gdy uruchomiono Cie jako sesje naprawcza RSI Helpdesk albo pytaja o otwarte zgloszenia stacku. Nie dotyczy bledow aplikacji projektowych ani wyczerpanych limitow."
---

# RSI Helpdesk

Stack jest uzywany przez wiele sesji naraz. Gdy cos w nim nie dziala, wykonawca
zwykle obchodzi problem i idzie dalej, co jest dobre dla jego zadania. Usterka
zostaje jednak w stacku i kolejne sesje traca na nia czas. Przyklad z
2026-10-13: Fleet odrzucal raporty Muse 1.4.6 w 12 z 13 runow, wykonawcy
przelaczali model, a nikt tego nie zglosil.

Helpdesk rozdziela te dwie rzeczy: wykonawca **zglasza i wraca do pracy**, a
osobna sesja w tle **naprawia**. Bez czekania na Mateusza i bez wydluzania
biezacych zadan.

Skrypty: `scripts/helpdesk.py` (kolejka), `scripts/resolve_cycle.py` (cykl) i
`scripts/triage_cycle.py` (triaz oraz kolejka decyzji dla wlasciciela).
Stan: `~/.agents/helpdesk/`. Ogloszenia: kanal Office `#rsi-helpdesk` (inny niz helpdeski projektow `helpdesk-*`).

### Terminy triazu i owner-queue

- Triaz W -> D uruchamia sie po 24 h, gdy jest co najmniej `min_untriaged`
  nieprzypisanych zgloszen (domyslnie 10), albo po 7 dniach, gdy jest co
  najmniej jedno takie zgloszenie.
- Owner-queue jest sprawdzana przy kazdym cyklu resolvera. Uruchamia sie, gdy
  co najmniej jedno nie-T2 zgloszenie `candidate` lub `needs-owner` ma ponad
  24 h, a ostatni udany owner-queue byl ponad 6 h temu.
- Zgloszenia T2 pozostaja poza decyzjami D i sa wymieniane w
  `last_result.t2_waiting`; owner-queue nie zmienia ich statusu, a triaz nie
  zmienia ani statusu, ani priorytetu zgloszenia T2 - zostawia je otwarte
  i raportuje wlascicielowi.
- Odpowiedz Dyrektora liczy sie tylko z pol `handoff.summary`, `handoff.text`
  i `public-handoff.json` (ten sam czytnik dla triazu i dla owner-queue).
  Pola sprawdzane sa po kolei, a werdykt bierze sie z pierwszego pola, ktorego
  pierwsza niepusta linia zaczyna sie od `ZATWIERDZAM Z POPRAWKAMI`,
  `ZATWIERDZAM` albo `ODRZUCAM`; pole z wstepem jest pomijane, nie blokuje
  kolejnych pol. `NIE ZATWIERDZAM` w pierwszej linii dowolnego pola i brak
  werdyktu to odrzucenie bez zmian. Runner, ktory nie zwrocil statusu
  sukcesu (`completed`/`CANDIDATE`), nie zmienia zadnego zgloszenia.
- Wynik owner-queue jest zapisywany osobno w `owner_queue_last_result`, wiec
  raport triazu nie nadpisuje raportu kolejki wlasciciela.

Reczne komendy:

```bash
python "<skill>/scripts/triage_cycle.py" run          # oba cykle wedlug osobnych terminow
python "<skill>/scripts/triage_cycle.py" owner-queue # uruchom owner-queue teraz
python "<skill>/scripts/triage_cycle.py" status       # terminy, liczebnosci i wynik
```

## Zglaszajacy (kazdy agent)

Zglos, gdy element stacku zawodzi w sposob, ktory nie minie sam i ktory
obchodzisz albo przez ktory tracisz czas:

```bash
python "<skill>/scripts/helpdesk.py" file --component fleet-adapter:muse \
  --symptom "Fleet odrzuca handoff Muse: No structurally valid handoff, exit 0" \
  --evidence run-20261013T003226Z-4c1d475de6 --impact "implement Muse FAILED" \
  --workaround "przelaczylem na Codex" --reporter <twoje-agent-id>
```

- `component` to element stacku: `fleet-adapter:<agent>`, `fleet`, `agent-cli`,
  `office`, `hub`, `skill:<nazwa>`, `launcher:<nazwa>`, `runtime:<nazwa>`.
  Usterka jednego modelu: dodaj `--model <id>`.
- Ta sama usterka laczy sie w jedno zgloszenie z licznikiem; zglos ponownie bez
  obaw, dopisze dowod. Nowe zgloszenie samo uruchamia cykl naprawczy w tle.
- To trwa minute. Nie diagnozuj i nie naprawiaj usterki stacku w swoim zadaniu,
  chyba ze ta naprawa jest Twoim zadaniem albo bez niej nie da sie go wykonac.
- Nie zglaszaj: wyczerpanego limitu z resetem, chwilowej awarii dostawcy,
  bledu wlasnego kodu, bledow aplikacji projektowych (te ida do zespolu
  projektu). Nie wpisuj sekretow, danych klientow ani tresci promptow.

Skaner bez modeli (`helpdesk.py scan-fleet`, uruchamiany w kazdym cyklu) sam
zglasza powtarzalne porazki Fleet: ten sam agent, model i przyczyna co najmniej
3 razy w 24 h w co najmniej 2 workspace'ach. Limity i awarie dostawcy pomija.
Logi stderr czyta tylko z katalogow samego stacku, nigdy z projektow klientow.

## Sesja naprawcza (Resolver)

Uruchamia ja `resolve_cycle.py` wylacznie jako zadanie Harmonogramu
`AgentStack RSI Helpdesk` (co 2 h i na zadanie po nowym zgloszeniu), przez
HiddenLaunch na prywatnym pulpicie, wiec nic nie otwiera okien. Jedna sesja
naraz, rotacja wykonawcow (Codex Sol; Claude Fable tylko w trybie rozliczen
`normalny`), limit czasu rowny claimowi. Dostajesz jedno zgloszenie juz
zajete na Ciebie.

Tor K/W (`fleet-k`, dodany 2026-10-22): w rotacji, ale tylko dla zgloszen
wspolnych skilli (`components` w konfiguracji). `scripts/fleet_resolver.py`
deterministycznie prowadzi jedna pare `todo_pair` (maker Kierownik, recenzent
innego rodowodu; Fleet pilnuje kwalifikacji i denylisty) w odlaczonym
worktree, po zielonej bazie testow skilla. Wynik: `candidate --release`
(decyduje Dyrektor albo Mateusz, tor niczego nie wdraza ani nie zamyka) albo
`open` z notatka. Przy `max_parallel` > 1 cykl uruchamia rownolegle tylko
rozlaczne komponenty i najwyzej jeden resolver wdrazajacy (`deploys`).

1. Przeczytaj [references/resolver.md](references/resolver.md) i wykonaj go.
2. Cel: usterka naprawiona i sprawdzona w aktualnym stacku albo uczciwie
   zamknieta z powodem. Liczba plikow, raportow i testow nie jest celem.
3. Status zgloszenia zmieniaj tylko przez `helpdesk.py update`, i tylko dopoki
   trzymasz claim. Kazda zmiana ma krotka notatke z dowodem. `--force` jest
   wylacznie dla Mateusza przy recznej korekcie.

## Pamiec napraw (dodane 2026-10-17)

`scripts/repair_history.py` prowadzi pochodny indeks per domena pod
`~/.agents/helpdesk/history-index/<domena>.json`, zrodlem prawdy pozostaje
`tickets/`. Tagi `domain` / `canonical_component` wyliczaja sie z prefiksu
`component` (`fleet-adapter` i `fleet` → `fleet`, `skill` → `skills`,
`launcher` → `launchers`, itd.); legacy zgloszenia dostaja je na zadanie
bez przepisywania pliku. Zwykly lookup czyta indeks jednej domeny; pierwszy
brakujacy indeks powstaje lokalnie ze starszych zgloszen, bez wysylania ich
modelowi. Uszkodzony indeks daje ostrzezenie i czesciowy odczyt awaryjny,
nigdy ciche "pusta historia".

- `python helpdesk.py related <ticket>` — rzutowanie dla resolvera (≤5 wpisow,
  ≤4096 B UTF-8 z metadanymi; `trust=untrusted` + caveat; bez surowych
  sciezek/logow; bez skanowania innych zgloszen dzieki bezposredniemu 12hex/prefiksowemu ID).
- `python helpdesk.py update ... --lesson "<krotki wniosek>"` — append-only
  source lessons (wersja/data/by/status; pelna historia zachowywana w zgloszeniu,
  limitowane wylacznie rzutowanie modelowe), powiazany z biezacym claimem; przezywa
  reopen. Wniosek dopisuje sie do istniejacego update, bez osobnej komendy.
- `python helpdesk.py update ... --lesson "<tekst>" --lesson-context '{"target":"harness","outcome":"effective","applicability":"python 3.13+ / agent-fleet-suite >=0.9.73"}'`
  — opcjonalny, scisle ograniczony obiekt RSIFlow-like (`target` ∈
  `harness|model|artifact`, `outcome` ∈ `effective|ineffective|unknown`,
  krotki `applicability` opisujacy wersje/stan runtime). Tylko z `--lesson`; nieznane
  klucze, bledne typy, sekrety i nadmiar bajtow odrzucane bez zapisu. Kontext jest
  dowodem doradczym (nie autorytetem, nie poleceniem), przezywa reopen i jest
  przepuszczany przez rzutowanie related-history. Wniosek `ineffective` zostaje
  obok `effective`: zadnego wnioskowania sukcesu ze statusu zgloszenia ani
  powtorzen, zadnego kasowania wczesniejszych lessons.
- Resolver prompt automatycznie dostaje blok `<related-history>` jako
  niezaufane dane; sekcja instrukcji mowi wprost: stosuj wnioski tylko po
  zywej weryfikacji wersji/stanu biezacego stacku. Rzutowanie zachowuje
  przynajmniej jeden wniosek z `outcome=ineffective|unknown` obok najnowszego,
  nawet jesli trzeba obciac pozostale wnioski pod 5 wpisow / 4096 B; udana
  liczba zaleglych zgloszen nie wymazuje wczesniejszej porazki.

## Granice

Decyzja Mateusza 2026-10-13. Sesja naprawcza sama wdraza poprawki odwracalne
wewnatrz AI stacku (Fleet, Agent CLI, Office, Hub, wspolne skille, adaptery CLI,
launchery) po testach, niezaleznym ACCEPT innego rodowodu i kanarku, z gotowym
rollbackiem. Sama nie robi: sekretow, kasowania, IAM i uprawnien, domen i
tuneli, aplikacji projektowych i klientow, nowych platnych kosztow, zmian
logiki biznesowej. Takie zgloszenie dostaje `needs-owner` z jednym
konkretnym pytaniem.

Tryb wdrozenia ustawia `"deploy_mode"` w `~/.agents/helpdesk/config.json`:
`candidate` (domyslnie) konczy na przejrzanym kandydacie, `auto` pozwala
wdrazac. Sesja dziala jako uzytkownik Mateusza z pominieciem sandboxu CLI;
granice sa proceduralne (prompt, ta procedura, bramki instalatorow), nie
techniczne. Dowodow nie czyta z katalogow projektow i klientow.

Wylacznik: plik `~/.agents/helpdesk/STOP` albo `"enabled": false` w
`~/.agents/helpdesk/config.json`. Cykl wtedy nic nie uruchamia; nieczytelny
config tez blokuje uruchamianie. Sesja w toku sprawdza wylacznik przed
wdrozeniem. Zatrzymanie harmonogramu: `Disable-ScheduledTask -TaskName
"AgentStack RSI Helpdesk"`.

## Podglad

```bash
python "<skill>/scripts/helpdesk.py" list          # aktywne zgloszenia
python "<skill>/scripts/helpdesk.py" stats --days 7   # metryki kolejki za 7 dni
python "<skill>/scripts/helpdesk.py" set-priority <ticket> --priority P1 --by <id> --note "<powod>"  # priorytet zgloszenia
python "<skill>/scripts/resolve_cycle.py" status   # sesje naprawcze i konfiguracja
python "<skill>/scripts/resolve_cycle.py" dry-run  # co cykl by zrobil, niczego nie zapisuje
python "<skill>/scripts/triage_cycle.py" status    # stan triazu i owner-queue
```

Triaz W (wspolny) przygotowuje propozycje, a D (Dyrektor) zatwierdza albo
koryguje je jednym zapytaniem. Zwykle dylematy techniczne w owner-queue
rozstrzyga D. Sprawy T2 czekaja na Mateusza; nie trafiaja do decyzji D.

Files in this skill

  • SKILL.md10.3 KB
  • agents/openai.yaml261 B
  • references/resolver.md13.4 KB
  • scripts/fleet_resolver.py18.8 KB
  • scripts/helpdesk.py60.7 KB
  • scripts/install_schedule.ps13.9 KB
  • scripts/repair_history.py28.8 KB
  • scripts/resolve_cycle.py34.2 KB
  • scripts/test_fleet_lane.py18.8 KB
  • scripts/test_helpdesk.py71.3 KB
  • scripts/test_parent_counterevidence.py1.8 KB
  • scripts/test_queue_fairness.py5.2 KB
  • scripts/test_repair_history.py63.7 KB
  • scripts/test_triage_cycle.py65.7 KB
  • scripts/triage_cycle.py78.8 KB
  • tests/test_autonomous_pickup.py7.8 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.