# Pravidla (https://docs.vitrinka.ai/cs/pm/rules)



## Co je pravidlo [#shape]

Pravidlo určuje **spouštěč** (událost úkolu nebo časový plán), **podmínky** a **akce**. Nastavíte ho přes API nebo nástroje MCP. Server pravidlo ověřuje podle zveřejněného JSON schématu.

```json
{
  "trigger": { "kind": "event", "event": "updated" },
  "conditions": [ { "field": "group", "op": "in", "value": ["completed"] } ],
  "actions": [ { "kind": "add_label", "value": "archived" } ]
}
```

Akce jsou `set_status`, `set_group`, `set_priority`, `comment`, `add_label`, `remove_label` a `assign`. Další tři pracují na úrovni projektu nebo přes Eve: `tick_date_gates` pojmenovává checklistové pole a odškrtne jeho dosažené položky typu `date`, `brief` požádá Eve o brief a `eve_flow` předá úkol toku Eve (`pm-distill` · `pm-summarize`); `brief` a `tick_date_gates` berou časový spouštěč, žádné podmínky a stojí samostatně. Štítky začínající `eve-` jsou vyhrazené: uživatelské pravidlo je nemůže přidat ani odebrat. Schéma se servíruje na `GET /api/v1/rules/schema`.

## Výchozí pravidla [#builtins]

Jedenáct pravidel platí pro celý workspace a jsou zapnutá od začátku. Sedm funguje bez AI backendu; čtyři předávají práci Eve a bez backendu zůstávají nečinná:

| Pravidlo                 | Co dělá                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| ------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `stale-nudge`            | Přidá komentář a štítek `stale` k nezahájeným nebo rozpracovaným úkolům bez aktualizace po dobu 14 dnů.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `auto-archive-completed` | Přidá štítek `archived` k dokončeným úkolům bez aktualizace po dobu 30 dnů.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| `due-tomorrow-reminder`  | Přidá komentář a štítek `due-soon` k otevřeným úkolům s termínem do jednoho dne.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                              |
| `merged-pr-completes`    | Sloučený pull request, který si úkol nárokuje, ho dokončí: `vt-<id>` úkolu ve větvi nebo názvu PR, uzavírací klíčové slovo v jeho těle (`Closes vt-12`) nebo PR připojený ručně. Spustí se jednou, při sloučení nebo když člověk připojí už sloučený PR: úkol znovu otevřený poté zůstane otevřený i přes pozdější přílohy a aktualizace PR, a dokončí jen práci, kterou nic dalšího nedrží: dokud je otevřená některá položka checklistu (brána, akce, krok) nebo jiný pull request, který si úkol nárokuje, sloučení se jen zapíše k jeho referenci a úkol zůstane otevřený pro toho, kdo dokončí zbytek. PR, který úkol jen zmiňuje, ho propojí, ale nikdy nedokončí — stejně jako klíč nebo klíčové slovo v PR z repozitáře mimo ty, které projekt uvádí. |
| `run-starts-work`        | Živý běh zahájený na úkolu v backlogu nebo nezahájeném úkolu ho označí jako rozpracovaný ([pracovní smyčka](/cs/pm/work-loop)).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| `open-pr-reviews`        | Otevřený pull request, který si úkol nárokuje, ho označí jako v review. PR, který úkol v těle jen zmiňuje, ho propojí, ale nikdy nezmění jeho stav.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           |
| `gate-date-reached`      | Každou hodinu odškrtne položky typu `date` v checklistu bran epicu, jejichž den nastal (kalendář UTC), s důkazem `reached <date>`.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            |
| `morning-brief`          | Jednou denně, při prvním průchodu po 05:00 UTC, požádá Eve o komentář a návrhy plánu pro každý projekt ([brief](/cs/pm/brief#morning)).                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       |
| `morning-ws-brief`       | Stejný průchod požádá Eve o komentář pro domovskou stránku workspace.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         |
| `eve-distill`            | Přidání štítku předá úkol jednou toku Eve pro výtah.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          |
| `eve-summarize`          | Dokud štítek platí, změny úkolu se slučují do shrnutí od Eve, s denním stropem na projekt.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |

Server při startu aktualizuje definice výchozích pravidel podle názvu a zachová, zda je správce zapnul nebo vypnul. Vypnutí výchozího pravidla platí pro celý workspace.

## Jak se pravidla spouštějí [#runner]

Při změně úkolu systém vyhodnotí odpovídající pravidla. Dvojici `(rule, event)` zaznamená před provedením, aby se akce neopakovala po restartu. Akce mají autora `rule:<name>` a nespouštějí další reakci na vlastní změny.

## Vyzkoušení před zapnutím [#dryrun]

Zkušební spuštění vyhodnotí pravidlo nad nedávnou historií úkolů, případně u časového plánu nad aktuálními úkoly, ale neprovede jeho akce. V rámci uloženého pravidla můžete vyzkoušet i dosud neuloženou definici. Před zapnutím zkontrolujte, na které úkoly se pravidlo vztahuje.

```bash
curl -sS -X POST -H "Authorization: Bearer $VITRINKA_TOKEN" \
  "$VITRINKA_URL/api/v1/rules/12/dry-run" -d '{"events": 200}'
```

## Kdo smí co [#permissions]

Pravidla zapisuje a zapíná správce, protože mohou měnit úkoly celého týmu. Každý člen je může číst a vyzkoušet v rámci projektu; pro zkoušku pravidla platného v celém workspace musí vybrat konkrétní projekt. Agenti používají `create {kind: "rule"}` a `dry_run_rule`. S návrhem definice může pomoci [Eve](/cs/pm/eve).
