From 14cac57c3ee41843afaff0d4373ee31c6acf81e5 Mon Sep 17 00:00:00 2001 From: Kevin Veen-Birkenbach Date: Sun, 1 Nov 2026 15:18:15 +0100 Subject: [PATCH] docs(org): give hotfix gates the next free slot Operator rule: a hotfix gate (a branch from the default branch that fixes it) takes the next free gate or test slot before every other line; everything else keeps its WSJF rank, and a running gate is never cut short for a hotfix. Written into the chair's queue in kvb-org-organize and the grant step of kvb-org-wsjf. Co-Authored-By: Claude Opus 5.5 (1M context) --- skills/kvb-org-organize/SKILL.md | 9 ++++++--- skills/kvb-org-wsjf/SKILL.md | 5 ++++- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/skills/kvb-org-organize/SKILL.md b/skills/kvb-org-organize/SKILL.md index b1db830..9d6df63 100644 --- a/skills/kvb-org-organize/SKILL.md +++ b/skills/kvb-org-organize/SKILL.md @@ -76,9 +76,12 @@ records the result. - Before starting anything that consumes shared capacity (gates, deploys, iteration loops, swarm or cloud resources, cleanup of shared data), an agent sends the chair what, where, for how long and its expected disk need, waits - for the grant, and reports the release. The chair keeps one queue, ordered - by the WSJF rank of the `kvb-org-wsjf` skill (it asks its subordinates for - the Fibonacci estimates), answers every request with its position, enforces the limits the operator set, + for the grant, and reports the release. The chair keeps one queue: a + hotfix gate (a branch from the default branch that fixes it) takes the next + free gate or test slot before every other line, the rest follows the WSJF + rank of the `kvb-org-wsjf` skill (it asks its subordinates for the Fibonacci + estimates); a running gate is never cut short for a hotfix. It answers + every request with its position, enforces the limits the operator set, checks every grant with `watch.py admit --need-gb ` (or `--kind `; test kinds also need CPU and RAM below the configured limits). - A running job (deploy, gate, test, swarm run, build) is never cut short to diff --git a/skills/kvb-org-wsjf/SKILL.md b/skills/kvb-org-wsjf/SKILL.md index 81b80ab..d842107 100644 --- a/skills/kvb-org-wsjf/SKILL.md +++ b/skills/kvb-org-wsjf/SKILL.md @@ -31,7 +31,10 @@ rasci.py wsjf [--all] 3. **Rank**: WSJF = median business value / median complexity, highest first. An operator's pin (`rasci.py set --prio `) outranks every score; unestimated tasks come last and are named under `unestimated:`. -4. **Grant in rank order**: the chair hands out capacity by this rank. +4. **Grant in rank order**: the chair hands out capacity by this rank, except + that a hotfix gate (a branch from the default branch that fixes it) takes + the next free gate or test slot before every ranked task; a running gate + is never cut short for it. ## Rules