Communitygithub.com

yasyf/long-running

Führt eine Mehrebenen-Abfahrt aus, damit kein Koordinator zum Engpass wird. Die Sitzung, in die der Besitzer tippt, ist der Kommunikator; eine geschwisterliche Orca-Sitzung, die als Lane-Root gebunden ist, ist der Koordinator; eine stehende Meta-Lane nimmt jede Skill-, Tooling- und Prozessänderung auf und macht jede Entscheidung zu einem Skill-Update; jede Frage hat ein Verb des Abfahrtswerkzeugs lr; Landung, Benotung, Lane-Liveness, Incident-Spawn, Release-Tracking und Besitzer-Updates laufen als Prozesse, die den Koordinator nur mit einer zu treffenden Entscheidung erreichen. Verwenden Sie dies bei der Orchestrierung von Arbeiten über mehrere Lanes hinweg, beim Fahren einer CI oder Infrastruktur-Aufsetzung, beim Durchführen einer Migration oder eines Audits über viele Einheiten, beim Überwachen von Hintergrundagenten oder PR-Landungen, beim Verfolgen von mehr als zehn offenen PRs, beim Landen von PRs durch eine Merge-Queue aus vielen Lanes oder bei jeder Aufgabe, die eindeutig einen Kontextfenster überschreitet.

Was ist long-running?

Das Skill `yasyf/long-running` orchestriert langlebige, mehrstufige Arbeiten (sogenannte Drives) über mehrere Lanes hinweg, ohne dass ein einzelner Koordinator zum Engpass wird. Es ist für Claude Code und ähnliche KI-Agenten-Plattformen konzipiert und vermeidet Serialisierung von Entscheidungen und Warteschlangen. Das Skill definiert eine Architektur mit zwei Hauptsitzungen: einem Kommunikator (für den Besitzer) und einem Koordinator (einer Orca-Sitzung als Lane-Root). Hinzu kommen eine Meta-Lane für Skill-Updates und eine Signal-Lane, die den Koordinator überwacht. Alle Arbeiten werden als Lanes ausgeführt, die durch das Werkzeug `lr` gesteuert werden. Das Skill enthält umfangreiche Regeln für Hooks, Kommunikation und Prozesssteuerung, um sicherzustellen, dass der Koordinator nur dann eingreift, wenn eine Entscheidung getroffen werden muss. Es liegt in `~/.claude/CLAUDE.md` und besteht aus einer Go-Binärdatei `lr`. Es ist ideal für Aufgaben wie CI/CD-Orchestrierung, Migrationen, Audits und Überwachung vieler gleichzeitiger PRs, die über einen einzelnen Kontext hinausgehen.

Funktioniert mit✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/yasyf/cc-skills/tree/HEAD/plugins/long-running/skills/long-running

In Ihrer bevorzugten KI fragen

Öffnet einen neuen Chat, in dem dieser Agent-Skill bereits geladen ist.

Dokumentation

Langlebige Orchestrierung

Ein Koordinator ist ein serieller Entscheidungspunkt: Jeder Lesevorgang, den er durchführt, und jede Entscheidung, die durch ihn geleitet wird, wartet in einer Warteschlange ohne Uhr, und wenn er gesättigt ist, stoppt die Arbeit still. Dieses Skill verhindert, dass etwas eine solche Warteschlange erreicht.

Die oberste Ebene einer Abfahrt besteht aus zwei Sitzungen. Der Kommunikator ist die Sitzung, in die der Besitzer tippt; seine gesamte Aufgabe ist er. Der Koordinator ist eine geschwisterliche Orca-Sitzung, die als Lane root gebunden ist: Sie erzeugt eine Lane für jede Anfrage mit einem Hauptteil in der Runde, in der sie eintrifft, entscheidet, was ein Prozess eskaliert hat, und leitet weiter, was die Schreibtische produzieren. Daneben stehen die Meta-Lane, die jede Skill-, Tooling- und Prozessänderung aufnimmt und jede Entscheidung in ein Skill-Update verwandelt, und die Signal-Lane, die den Koordinator verfolgt, damit der Kommunikator dies nie tun muss. Alles andere ist ein Verb des Abfahrtswerkzeugs lr oder ein Prozess, der ohne sie alle läuft. Eine Regel hier benennt das Verb oder den Prozess, der einen Fehler unmöglich macht; eine Regel ohne beides ist ein Fehler, der im Paket behoben werden muss.

Dieses Skill befindet sich in ~/.claude/CLAUDE.md, das die Fan-Out-Form, das Modell-Routing und die Überprüfungstiefe bestimmt. Das Paket ist eine Go-Binärdatei, lr, mit den Python-Skripten, die es ersetzt, die nur so lange behalten werden, bis jedes Verb live geht (Design).

Drei oder mehr Lanes gleichzeitig, eine Aufgabe, die einen Kontextfenster überdauert, ein Warten auf CI, eine Warteschlange, ein Anwenden oder Einweichen oder ein Durchlauf über viele unabhängige Einheiten ist eine Abfahrt. Eine Untersuchung mit einer einzelnen Lane ist ein Sub-Agent im Direktmodus, keine Abfahrt.

Inhalt

Lesen Sie die Datei für Ihren Job

Lesen Sie nur die Zeile, die Sie gerade ausführen. Jede Datei gibt ihre Regeln vollständig an.

Sie sindLesen Sie
Antworten dem Besitzer: Antworten, Auswahlen, Neugestaltungen, sein Slack und Boardcommunicator-brief.md
Rendern des Besitzer-Updates oder Aktualisieren des Dashboardsowner-report-table.md, drive-dashboard.md
Der Koordinatorcoordinator-brief.md
Die Meta-Lane oder ihr Implementierermeta-lane-brief.md
Die Signal-Lane; die Aufgaben-Lanesignal-lane-brief.md; chores-lane-brief.md
Schreiben einer Lane-Beschreibung oder Arbeiten als Lane oder Schreibtisch unter einer solchenorca-lane-brief.md
Rotieren des Kontexts einer Lane; eine Übergabe oder eine Kompaktierunghandoff-subagent-brief.md, compaction.md
Starten oder Weiterleiten von Orca-Workern auf dem Mac oder auf einem Spriteorca-desk-brief.md, orca-workers.md, orca-sprite-workers.md
Landen eines PR, der Merge-Queue, D1 bis D23landing.md, merge-train-brief.md
Bewerten eines Heads, einer Landung oder eines Plansgrading-principles.md, finder-brief.md, finder-desk-brief.md, finder-desk-rows.md, fidelity-desk-brief.md, fidelity-job-brief.md, semantic-collisions-brief.md
Besitzen eines Rots ohne Besitzerred-sweep-brief.md
Ein Alarm oder Vorfallactive-alert-brief.md, alert-fix-brief.md, alerts-desk-brief.md, alert-evidence-brief.md, alert-comms-brief.md, unfixed-case-brief.md
Ein Releaserelease-lanes.md, manual-release-brief.md
Posten auf Slackslack-lane-brief.md, comms-desk-brief.md
Posten oder Lesen von cci-Datensätzen, dem Lane-Bus, B-Regelnbus-contracts.md
Aufzeichnen oder Anwenden einer Besitzerentscheidung, des Registers, der Richterowner-rulings.md
Lane-Liveness: Warum eine Lane nicht still werden kann, der Supervisor und die Wächtersupervisor.md, watchers.md, drive-watchdog-brief.md
Das eine Nummer-eins-Ergebnis; den Besitzer gegen eine Oberfläche spielenpriority-desk-brief.md; user-test-brief.md
Starten einer Unter-Abfahrtsub-drives.md
Lesen eines großen Korpus in Fix-Lanesthe bulk-read skill
Fragen, warum eine Regel existiert; keine Lane braucht dies, um ihren Job zu erledigenlessons.md

Urteil zuerst

  • Keine Regel verbietet das Lesen der einen Zeile, von der eine Entscheidung abhängt.
  • Ein vorliegender Befund ist ein Fix, niemals eine Lane, eine erneute Prüfung oder ein Workflow.
  • Lesen Sie jeden Satz des Besitzers, wie es ein sorgfältiger Kollege tun würde. Eine Korrektur benennt einen Fehler beim Lesen, niemals eine Neugestaltung von etwas, das er zuvor entschieden hat; lesen Sie die Zeilen des Registers zu diesem Thema, bevor Sie handeln. Eine Wiederholung ist ein Fehlerbericht über das erste Lesen: Beheben Sie jede Stelle, an der es überlebt hat, in dieser Runde.

Hooks und Ablehnungen

  • Hooks warnen. Sie blockieren nur bei Vertrauen: ein Merge ohne die Genehmigung des Besitzers, eine Änderung, wer Landungen genehmigt, ein Revert ohne sein Wort, ein Ausführender oder Schreibtisch, der vom Kommunikator gestartet wurde, eine Lane, die seinen eingeloggten Browser im Produktivbetrieb steuert, Bearbeitungen der installierten Hook-Dateien und der Sitzungsschutz-Wächter. Ein fehlgeschlagener Lesevorgang warnt nur; tests/test_fail_open.py erzwingt dies und listet die Ausnahmen auf, und der Slack-Berechtigungs-Hook schlägt offen fehl (slack-lane-brief.md).
  • Ein Hook, der bei Ihrer Arbeit fehlzündet, erhält eine Fix-Lane in der Runde, in der er Sie blockiert, und Sie arbeiten weiter an dem, was er nicht blockiert. Eine Ablehnung, die richtig ist, wie der Produktivitätsidentitätsschutz, erhält keine. Die blockierte Sitzung startet sie, sei es Lane, Schreibtisch, Koordinator oder Kommunikator, ohne Anfrage an root und ohne Meta-Lane: lr launch lane hook-fix-<hook> opus high <brief> --drive <drive> --lane <you>, es sei denn, lr lanes hook-fix-<hook> zeigt eine Live an.
  • Hooks leben in plugins/long-running/capt-hook/hooks/ in yasyf/cc-skills und in captain_hook/builtin_packs/ in yasyf/captain-hook, und jede Änderung folgt captain-hook:authoring-hooks, dessen Lint und Test in der CI dieses Repos laufen. Die Fix-Lane behebt den eigentlichen Fehler des Hooks mit einem Regressionstest, liefert ihn aus, installiert ihn dort, wo die blockierte Sitzung läuft, und sein Beweis ist, dass der abgelehnte Aufruf durchgeht (orca-lane-brief.md).
  • Beheben bedeutet nicht, es zu umgehen: Solange eine Ablehnung besteht, führt niemand das blockierte Ding durch einen Wrapper, cc-sudo oder ein Skript aus. Die Sicherheitsregeln des Besitzers bleiben wie geschrieben: Merge, Slack, Lasttests und die Prozesswache. Ein Hook, der einen von ihnen bewacht und fehlzündet, erhält eine Fehlerbehebung mit einem Regressionstest, und die Regel selbst ändert sich nur auf sein Wort hin. Der eine Hook, der vor seiner Behebung deaktiviert wird, ist derjenige, der jeden Stopp des Kommunikators blockiert: Kommentieren Sie ihn im Paketquelltext mit einem TODO aus, das seine Fix-Lane benennt, in einem sofort gemergten PR, da eine Bearbeitung des installierten Caches nur bis zur nächsten Installation hält, die dieser Mac innerhalb von Minuten ausführt.
  • Ein Hook, der nichts blockiert und verbessert werden könnte, geht in derselben Runde an die Meta-Lane als ein cci post --kind note --to meta-desk. Jede andere Ablehnung eines Tools geht in derselben Runde an die Meta-Lane, und die Arbeit wird auf ihrem Handpfad fortgesetzt. Keine Ablehnung ist eine Ausrede oder eine Frage an den Besitzer, und die Plattform auch nicht: Ein Datensatz, der einem Sprite, einem Host oder einem gemeinsam genutzten Tool die Schuld für eine Wartezeit oder einen Fehler gibt, benennt die Lane, die die Grundursache behebt, und die Uhr dieser Behebung, und ohne eine solche Lane fordert er in derselben Runde eine vom Koordinator an. Das Ersetzen einer Maschine ist ein Provisorium und niemals die Antwort.

Meta-Änderungen landen im Skill

Die Lane, die eine global anwendbare Meta-Änderung erhält, jede Entscheidung darüber, wie Lanes, Karten, Wartezeiten, Antworten, Hooks, Routing oder Antworten funktionieren, sendet sie in der Runde, in der sie eintrifft, als einen cci-Datensatz an die Meta-Lane. Die Meta-Lane macht daraus immer ein Update dieses Skills oder des Brief-Vorlagen-, Hook- oder cc-Notes-Dokuments, dem es gehört, gemergt und installiert, wobei der Abschnitt, den es berührt, umgeschrieben und umgestaltet wird, damit das Skill als ein Design gelesen wird, niemals als eine bloße angehängte Zeile. Eine Speicherdatei oder ein Datensatz ist ein Zeiger und zählt nie als erledigt.

Vor jedem Tool-Aufruf

Wenn der Aufruf istMachen Sie
Etwas, das ein Verb beantwortetFühren Sie das Verb aus.
Arbeit mit einem HauptteilErzeugen Sie die Lane mit ihrer Aufgabe und Ledger-Zeile.
Eine WartezeitFalten Sie sie in die Lane, die handelt.
StatusDer Kommunikator sendet das Rendern des Update-Schreibtischs; der Koordinator sendet nichts.
Eine BesitzernachrichtDer Kommunikator erzeugt einen Sub-Agenten dafür, der auf der Oberfläche antwortet, von der sie kam; der Koordinator wendet die Entscheidung überall an; eine Entscheidung darüber, wie die Abfahrt funktioniert, geht in derselben Runde an die Meta-Lane, die daraus ein Skill-Update macht.
Ein Alarm, den der Supervisor nicht beantwortet hatlr incident run <slug> jetzt.
Eine Tool-Ablehnung oder etwas, das zweimal schiefgegangen istEin Hook, der Ihre Arbeit blockiert, erhält die Fix-Lane, die Sie in dieser Runde starten (Hooks und Ablehnungen); alles andere geht in dieser Runde an die Meta-Lane, wo die Behebung ein Go-Verb ist. Fahren Sie in jedem Fall fort.
Eine Genehmigung, ein Halten, ein Start oder ein AbbrechenDie Anordnung des Besitzers trägt es, oder eine Lane besitzt es.

Beendete Agenten gestoppt, Produktionsoperationen protokolliert, nichts als erledigt bezeichnet, was nicht live und geprüft ist. Ein Aufruf, der die Liste überlebt, entscheidet etwas, das kein Verb und keine Lane entscheiden kann. Alles andere ist eine Lane.

Fragen Sie das Verb, lesen Sie nie

Um zu wissenFühren Sie aus
Ist eine Lane am Leben, und was hat sie zuletzt gesagtlr lanes <lane> --config <lr.json>
Jede Lane, ihr Zustand, PRs und stehende Aufgabelr lanes
Was passiert ist, seit es zuletzt nachgesehen hatcci digest --drive <drive>, dann cci tail --drive <drive> --cursor root
Was auf den Besitzer wartetcci owner-waits --drive <drive>
Welche Unter-Abfahrten offen sind und was jede noch hältlr drive sub list
Der Zustand von PRs, die es nennen mussccx vcs pr status <n1> <n2> ..., gebündelt
Welche PRs der Besitzer auf dem Board genehmigt hat und welche davon noch offen sindlr approved [--since <seq>], nachträglich ermittelte Urteile ausgeschlossen
Jede offene Anfrage und was gelandet, aber nicht live istlr asks
Das Besitzer-Update, vollständig und aus Quellenlr update render, ausgeführt vom update-desk des Kommunikators
Was ein Vorfall tut; ein Satz darüber, was er istlr incident status <slug>; lr incident describe <slug>
Wohin die Post einer Lane geht; jedes lr-Verb nimmt einen Stamm, meta-desk, für seine neueste Live-Lanelr route <lane>

Ein Lesevorgang, den die Tabelle nicht enthält, gehört zu einer Lane: ein PR, ein CI-Protokoll, ein Slack-Thread, eine lange Datei, eine Cloud-Auflistung, eine Build-Seite. Ein Diff, ein Plan oder ein Urteil, das Sie genehmigen, ist von Ihnen zu lesen. Der Koordinator erzeugt einen Leser und nimmt höchstens fünf Zeilen zurück; eine Suche ist ein Aufruf, lr ask-lane '<question>'. Die root_context- und root_reads-Hooks warnen bei jedem Lesevorgang dieser Art, bei einer zweiten Quelle, die für eine Besitzeranfrage geöffnet wird, und bei Datensätzen einer Lane, die durch tail oder grep geleitet werden; im Fenster des Kommunikators verweigert root_context eine breite Suche und nennt lr ask-lane.

Die Regeln

Ids sind stabil; Skripte, Hooks und Referenzen zitieren sie. root bedeutet der Koordinator, es sei denn, die Regel nennt den Kommunikator.

R1. Ground Truth kommt von der besitzenden Lane oder dem Verb, niemals einem grep, einer Auflistung, einem curl oder einer Build-Seite; höchstens fünf Zeilen zurück. Der Zustand von Prioritäts-PRs wird in einem einzigen gebündelten ccx vcs pr status-Aufruf gelesen.

R2. Alles mit einem Hauptteil ist eine Lane: ein Lesevorgang über ein begrenztes Fenster hinaus, ein Protokoll, eine Untersuchung, PR- oder Merge-Mechanik, eine Aufzählung. Ein begrenzter Lesevorgang einer einzelnen benannten Datei, bis zu 150 Zeilen, ist erlaubt.

R3. Eine Lane pro Warte-dann-handle-Kette, und keine Lane parkt: Eine Lane wartet auf einen Monitor, eine Agent-Benachrichtigung, CronCreate für einen Takt oder einen lr wait-Aufruf, bis zu einem Endzustand, und meldet sich einmal. shell_waits blockiert eine Shell-Schleife oder einen Schläfer. Ein Monitor eines Schreibtischs wird bei Ablauf erneut aktiviert.

R4. Weisen Sie eine Lane niemals erneut an, beantworten Sie niemals ein Duplikat. Eine SendMessage an einen beendeten Agenten führt dessen Brief erneut aus. lr wait markiert gedruckte Post als gelesen.

R5. Schreiben Sie es auf, behalten Sie es nicht: Befunde an cc-notes von der Lane, die sie gefunden hat, Briefe als Anhänge im briefs: <slug>-Protokoll, nichts von Hand erstelltes unter ~/.claude/scratch.

R6. Jede Besitzeranfrage ist in der Runde, in der sie eintrifft, in Bearbeitung, eine Lane pro Anfrage, niemals an die Warteschlange einer beschäftigten Lane angehängt. Eine Lane besitzt einen PR pro lieferbarem Ergebnis und landet ihre Fixes als Commits darauf; orca-lane-brief.md sagt, wann sie stapelt.

R7. Der Zustand eines PR wird gelesen, bevor er gemeldet wird: ccx vcs status oder der Squash-Commit auf dem geholten Hauptzweig, niemals eine Nachricht oder ein Speicher.

R8. Jede Besitzeranfrage ist in der Runde, in der sie eintrifft, eine Ledger-Zeile und nur bei LIVE erledigt; davor lautet die Antwort "in #N, noch nicht live: <blocker>".

…

[zur Übersetzung gekürzt]

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

yasyf/design-doc

Run an assumptions-first architecture design and ship it as an interactive design doc. Ground truths land in a register with stable IDs, every design fork goes through a question round with a recorded escape hatch, an adversarial review attacks the middle draft, and every estimate is gated on a named spike. The deliverable is a registers.json-driven single-file HTML doc that opens on a hand-written executive summary, cites every entry by a human-readable handle, carries declared interactive components, and answers questions in the page when an AI config is deployed beside it, plus a generated PDF, written as a humble proposal that explains and asks for feedback. Use when asked to "write a design doc", "architecture proposal", "help me design <system>", "redesign <system>", "assumptions-first design", or to turn a systems discussion into a reviewable design document.

yasyf/open-pr

Open a pull request that reads like the repo's own maintainers wrote it — pick a depth first, where an express lane for "just open the PR" or "just ship it" orients, writes, and ships without the research passes, and the full lane orients with `ccx vcs lane` and `ccx vcs guidelines`, learns the house style from a bot-filtered sample of recent human-authored merged PRs via a cached per-repo style card, calibrate register against a local wlm voice profile, run a politeness and standards-conformance pass with issue-first handling on repos the user does not own, write the title, body, and commit messages to the repo's own conventions, ship through `ccx vcs ship`, and hand the CI and bot-comment watch to a background pr-watcher agent. Use when opening, submitting, or contributing a pull request, drafting a PR title or body, contributing a change to an open-source repo, or shipping a branch as a PR.

yasyf/orca

Launch and supervise Orca workers through the canonical Sprite prepare-and-attach entrypoint, with an explicit local route for Opus roots and the rare Fable assignment for the most sensitive work, and reclaim what a settled Dispatch left behind. Use for worker dispatch, native Run messaging, remote diagnosis, ending a done lane, or source return.

Verwandte Skills