The release manager's verbs: rule INTAKE/REVERSION/DISCHARGE requests, report STATUS and BURN-DOWN, check READY.
Install
npx skillscat add yotamleo-org/himmel/release-manager Install via the SkillsCat registry.
release-manager — every placement into a release is a reasoned ruling (HIMMEL-6796)
For the release-manager session only (HIMMEL_RELEASE_MANAGER=1, armed fromdocs/handover/rm-brief-template.md). Every verb is a thin procedure overjira release; the engine holds the formulas, the signatures and the checks,
so the board, the tick and this skill count the same way. Run the CLI by its
absolute path from the primary checkout:node <repo>/scripts/jira/dist/index.js release <sub> <R> ….
There are no count gates: a ruling never cites a quota, a cap or a depth
(decision 104). It weighs effort and delivery, and the sector and dependency
chain (decision 100), and names its ground.
Grounds and classes
- Ground (
--ground):critical,regression,broken-operator-flow,chain:<name>,receipt,defer:<why>,resequence:<why>(a move within
the release),resolved:<resolution>(a DISCHARGE). A ground explains the
ruling; it never authorizes a placement by itself. - Class is derived by the engine from the target version:
current(the
active version),next(a later version of the release),backlog. - Sector (
--sector) is required. A ticket with no sector: ask the chief
to set it, then rule. - Emergencies are always current (decision 109): an evidenced emergency is
placed under the standing recordO-<R>-emergency. Record its class and
sector; only an operator record moves it out.
INTAKE / REVERSION / DISCHARGE — one procedure for every request
The chief writes the request and sends REQ <id>. Then:
release claim <R>— claims every open request, and any claimed by an
older lease epoch. One line per request.Per request,
release rule <R> --req <Q-id> --outcome <O> --op <kind> --from <v|backlog> --to <v|backlog> --sector <s> --ground <g> --reason-file <f> [--supersedes <ids>] [--authority operator --ref <O-id>].Verb Outcomes (op) INTAKE ADMIT(add, move),BACKLOG(remove, move, none),AD-HOC(none)REVERSION MOVE(move, remove),KEEP(keep)DISCHARGE ACCEPT(discharge),REJECT(none)When a ruling (or the baseline,
baseline-<v>-g<n>) is already in effect
for the key and version,--supersedesmust name it; the error names it.
An operator ruling cites the chief'sO-record, which must cover the
exact key, op and versions; a bare decision number authorizes nothing.release apply <R> <R-id>— writes Jira, reads it back, recordsapplied,
posts the receipt comment, recordsreceipted, and prints the RULING line.
Re-run it after any failure: it is idempotent and never posts twice.Send the chief the printed line, verbatim:
RULING <id> <req> <verb> <key> <op> <from>→<to> <outcome> <class> sector=<s> — <ground>: <reason>.
Only a receipted ruling is sent.
A refusal is a fact to act on, not to route around: UNKNOWN state, a pending
intent, a missing supersedes, an uncovered authority. Report a refusal you
cannot resolve to the chief as a FINDING.
STATUS
release state <R> --json. Write release/<R>/status-<ISO date>-<HHMM>.md
under the state directory: each input and its freshness, the lease, the open
and claimed requests, the leaks (unauthorized members and ruled-in
non-members), the integrity lines, the burn-down and the trend. SendSTATUS <path>. A state that is UNKNOWN is reported as UNKNOWN, never as a
clean result.
BURN-DOWN
From the same state: per version, baseline open of baseline, admitted open,
emergency open and deferred out; then the open keys grouped by sector, with
the next keys per lane you would dispatch from. Writerelease/<R>/burndown.md and send BURN-DOWN <path>. You advise; the
chief dispatches.
READY [v|R]
Every row is PASS, FAIL or UNKNOWN, and UNKNOWN fails:
- every baseline key of
vis terminal or carries an effective move out; - every effective
inkey ofvis terminal; - no open Critical, Blocker or Highest bug is
in(or emergency) forv; - no leaks, no open or claimed requests for
v, no integrity lines; - every required check succeeded on the candidate sha;
- the fold covers every Done key merged in the tag range;
- no open PR is linked to an
inkey ofvwithout a deferral ruling.
Sync the mirror first (mirror), then read the state. Writerelease/<R>/ready-<v>-<sha7>.md and sendREADY <v|R> <sha> TAG-READY|NOT-READY <path>. The operator tags and judges
stability; a FAIL row is overridden only by an operator record naming it.
Lease and hand-off
- Start:
release lease acquire <R> --expect-epoch <n> --doc <your doc> --session <name>(the brief namesn), thenrelease claim <R>, thenrelease applyevery older-epoch intent it lists in the state (a successor
resolves them by readback; one Jira never saw is voided and its request
reopened). - Hand-off (45 % context or HALT): apply or void every intent,
release lease release <R>, write<doc stem>-RM-HANDOFF.md(release, epoch, chain heads,
last STATUS path), appendWRAPPED — handoff <path>and send the chiefWRAPPED <path>. - You never run
release operator,release request,createortransition; the engine refuses them for you anyway.