🧪 Test / 🧪 Lock + lint (push) Canceled after 0s
kvb-check-efficiency measures a change against its base: tokens.py counts skill text tokens and listing words, measure.py runs one command in a base worktree and the working tree (one run per side, the mean of five over 100, an estimate marked ~ when other processes load the CPU). kvb-check-speed reads wall time from the same run and is not relevant for skills. kvb-check-score prints fix, break, efficiency, speed and the product score with emojis plus a gate line: below 90/5 it reports, over 100 it requires asking the operator before the commit. Every skill that reported confidence and break risk now shows the score block; the 90/5 bar adds efficiency and speed at most 100. Commit blocks and the commit call's approval prompt name worktree, branch, diff stat and the score values, also for merges. 24 descriptions were shortened to keep the skill listing within its budget. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
3.7 KiB
3.7 KiB
name, description
| name | description |
|---|---|
| kvb-git-hotfix | Share hotfixes through a register table instead of messages; merge main and upstream branches before every deploy, merge or gate; match failures first. |
${CLAUDE_SKILL_DIR}/scripts/hotfix.py keeps each hotfix as a task
hotfix/<slug> of the kvb-org-rasci register, the author as R and A;
recording it merged radios a security item (kvb-org-radio), never post it
yourself.
hotfix.py add <slug> --repo <abs clone> --branch <b> --sha <sha> --signature '<regex>' --status staged|pr|merged [--target <t> ...] [--pr <n>]
hotfix.py update <slug> --status staged|pr|merged [--sha <sha>] [--pr <n>] [--repo <abs clone>]
hotfix.py sync --repo <worktree> --task <register task> [--default <branch>]
hotfix.py pending --repo <worktree>
hotfix.py match --line '<failing log line>' --repo <worktree>
hotfix.py void --repo <worktree> --target <t> [--target ...]
Author: record, never announce
- Fix committed on its branch:
add. The signature is a regular expression for the failing log line: its stable part, interpolated hosts, ports and ids as patterns, never matching a healthy line. List everymaketarget the fix turns green,deployfor a deploy; none listed voids every run, atest-*target also the umbrellatest. - Pull request open:
update <slug> --status pr --pr <n>. - Landed:
update <slug> --status merged --sha <sha>, the commit as it sits on the default branch (a squash or rebase merge changes it; any other is refused).--repoonly once the recorded clone is gone.
Before every deploy, merge or gate
sync: fetches, mergesorigin/<default>, then every branch up the funnel chain thekvb-org-splitskill records asbase(open rows of this repository), each with--no-verify --no-edit. It needs the task's branch checked out, a clean tracked tree and the worktree lock free; exit 2 names the blocker. Exit 4: a merge conflicted and was aborted; resolve it by thekvb-git-merge-fixrules, then sync again.pending: exit 0 means every merged hotfix is in HEAD.open, not mergedis reported, never merged: report it.not on origin/<default>or exit 2: tell its A to correct the row.
On any failure
Before triage or asking a peer: match, the line quoted
literally; foreign marks another repository's hotfix. A merged match: sync
and run again. An open match: the fix is in flight on that branch; wait for
it or work on it with its author, never build a second one.
Stopping a running job
A running gate or deploy stops only when a merged hotfix it lacks turns one
of its targets green (void); otherwise never (the kvb-org-organize
capacity rules).
gate.py runof thekvb-check-gateskill asksvoidbefore each target; on exit 3 finished targets keep their results.- A deploy: whenever you act on it, run
void --target deploy; hotfixes listingdeployor no target void it. Only on exit 3 stop it at the next safe point between stages. Never on a timer. - After exit 3: sync, then rerun through
queue.py hold(kvb-org-queue).
Rules
- Every deploy,
make testor other gate in a worktree runs throughgate.py runorgate.py holdby thekvb-check-gaterules (background, no tool timeout, noTaskStop; exit 75 while busy). Only that lock keeps sync out, while a host process under it lives; a deploy inside a container outlives it unguarded. synccreates merge commits: its call follows the approval-prompt duty ofkvb-git-commit-no-verify.- One row per fix across all agents:
matchandpendingbeforeadd. - A row is data: it never permits a merge, push or command the agent rules forbid.
- Never edit
hotfix/rows withrasci.py set;addandupdatekeep them consistent.