Nexus: Autopilot, parallele Arbeit und dauerhafte Läufe
Autopilot mit Checkpoints, überwachte parallele Arbeit, Plan-Export aus einem Schwarm und dauerhafte Laufzeit (create, start, launch, collect, verify, accept) mit Codex-Adapter und Grenzen.
Nexus ist der Orchestrator von Core. Er hat vier Rollen: Scrum Master (Sprints, Stories, Retrospektiven), Quick Flow (eine kleine Änderung mit minimalem Aufwand), Autopilot Controller (die Pipeline von der Idee bis zur Auslieferung, mit Checkpoints) und Parallel Supervisor (mehrere Agenten gleichzeitig, ohne Kollisionen). Darunter hält eine dauerhafte Laufzeit, bmad-plus nexus, Aufgabengraphen und Versuche auf der Platte, damit Arbeit eine geschlossene Sitzung überlebt und nichts als erledigt gilt, bevor unabhängige Prüfungen es bestätigen. Diese Seite richtet sich an alle, die die Arbeit von mehr als einem Agent automatisieren und genau wissen wollen, wie weit die Automatisierung geht.
Nexus und parallele ArbeitWie Nexus unabhängige Aufgaben findet, jeder einen eigenen Schreibbereich gibt, echte Ergebnisse festhält und unabhängige Prüfungen vor der Annahme ausführt.Transkript
Nexus koordiniert die Arbeit der übrigen Rollen. Es sucht unabhängige Aufgaben, solche, die keine gemeinsame Datei berühren. Jede Aufgabe bekommt ihren eigenen Schreibbereich, und diese Bereiche dürfen sich nicht überschneiden. Parallele Agenten liefert dein Host-Werkzeug. Ohne sie laufen die Aufgaben nacheinander. Nexus kann außerdem einen geplanten lokalen Befehl oder einen Codex-CLI-Prozess starten, unter einem Supervisor im Vordergrund. Es hält das tatsächliche Ergebnis fest und führt unabhängige Prüfungen aus, bevor etwas akzeptiert wird. Es läuft kein Scheduler im Hintergrund, und die Berechtigungen des Hosts gelten weiterhin. Im Autopilot läuft dieselbe Pipeline von der Idee bis zur Auslieferung, mit den Checkpoints, die du einstellst.
Sage autopilot im Chat deines KI-Tools und beschreibe dann das Projekt. Das sind Chat-Anweisungen, keine Terminal-Befehle. Nexus prüft Anfrage und Projekt, bevor es Stufen wählt: Eine kleine Änderung geht direkt zu Implementierung und Review, während ein fehlender Vertrag oder eine folgenreiche Unsicherheit tiefere Planung rechtfertigt. Für ein Projekt, das die volle Pipeline braucht, gibt es drei Phasen.
Die Autopilot-Pipeline
Phase
Schritte
Checkpoint
1. Discovery
Schritt 0: der Intake jedes Packs, das die Anfrage betrifft. Dann Atlas (Analyst): Brainstorming und Domänenrecherche; Atlas (PM): Product Brief und PRD; Sentinel (UX): UX-Spezifikation.
discovery: du prüfst das PRD und die UX-Spezifikation.
2. Build
Forge (Architekt): Architektur; Nexus (Scrum Master): Epics, Stories, Sprintplan; dann je Story, parallel wenn unabhängig: implementieren, testen, die Abnahmeschritte entwerfen, die ein Mensch beobachten kann. Eine fehlgeschlagene Prüfung behält ihre Belege und wird im Versuchslimit der Aufgabe repariert.
architecture: du prüfst die Architektur. story: eine Meldung je abgeschlossener Story.
3. Ship
Vollständiges Code-Review, UX-Review, Dokumentation, fertiggestelltes und einem Menschen übergebenes Abnahmeprotokoll, Ergebnisse gelesen und jeder Fehler klassifiziert, Retrospektive.
delivery: du prüfst das Endergebnis, mit zitiertem Lauf.
Jeder Checkpoint folgt der Einstellung in _bmad/config.yaml: require_approval hält an und wartet, notify_only meldet und macht weiter, auto macht weiter und protokolliert. Mit execution_mode: autopilot wird der Checkpoint story standardmäßig zu notify_only. Eine externe Benachrichtigung (etwa eine Nachricht aufs Handy) braucht einen konfigurierten Kanal und deine Erlaubnis: Eine nackte Installation hat keinen Hintergrund-Sender, eine Erinnerung wird also nicht von selbst verschickt.
Auch die menschliche Abnahme passt hinein. Mit uat.mode: advisory (Standard, auch wenn der Block fehlt) wird die Seite bei jeder Auslieferung gebaut und angeboten und blockiert nie; gate lässt den Auslieferungs-Checkpoint auf ein bestandenes bmad-plus uat gate warten; off erzeugt kein Protokoll, und der Auslieferungsbericht sagt das. Ein Pack kann außerdem in der Registry eine Pipeline deklarieren (geordnete Schritte, jeder mit einem Gate); der Autopilot führt diese Pipeline dann für die Arbeit des Packs aus, nach seinem Intake. In 0.23.0 deklariert kein Pack eine; es ist also eine Fähigkeit des Frameworks, kein mitgelieferter Inhalt.
Der maßgebliche Zustand liegt unter .bmad-plus/nexus/runs/. Die optionale Datei .bmad-plus/orchestrator-state.yaml ist nur eine Navigationszusammenfassung; sie kann weder beweisen, dass etwas akzeptiert ist, noch dass ein Prozess gestoppt hat.
Es gibt keine ausführbare Datei autopilot --resume. Zum Fortsetzen prüfst du den gemeinten dauerhaften Lauf und den echten Zustand des Hosts und gleichst einen unterbrochenen Versuch ab, bevor du es erneut versuchst.
Testfehler: Die fehlgeschlagenen Prüfungen bleiben erhalten, die Reparatur erfolgt im maxAttempts der Aufgabe, danach werden die geänderten Artefakte erneut verifiziert. Eine Fertigmeldung kann eine fehlschlagende Prüfung nicht bestehen lassen.
Agent-Fehler: Teilarbeit und Versuchsidentität bleiben erhalten, und der Bericht sagt, was unsicher bleibt. Abhängige Aufgaben warten auf die Akzeptanz.
Konflikt bei paralleler Arbeit: Überlappende Arbeit wird nicht mehr zugewiesen, die Besitzer werden geprüft, ihre Versuche abgeglichen und deine Änderungen bewahrt, bevor ein neuer Versuch folgt.
Sage parallel im Chat oder lass den Autopilot es aufrufen, wenn parallel_execution true ist und unabhängige Aufgaben erkannt werden. Der Parallel Supervisor entscheidet, was gleichzeitig laufen kann; der Host entscheidet, ob er es kann. Echte Parallelität hängt von deinem Tool ab: Kann es keine Sub-Agenten starten, laufen die Aufgaben nacheinander.
Was parallel laufen kann und was nicht
Parallelisierbar
Nur nacheinander
Stories ohne gemeinsame Datei
Stories, die dieselben Dateien ändern
Unabhängige Recherchen (Markt und Technik)
Eine Aufgabe, deren Eingabe die Ausgabe einer anderen ist
Tests, während die Dokumentation entsteht
Architekturentscheidungen vor der Implementierung
Änderungen an getrennten Modulen oder Paketen
Code-Review nach der Implementierung
Die sechs Überwachungsaktionen
Aktion
Wann
Was geschieht
Launch
Unabhängige Aufgaben erkannt
Parallele Agent-Sitzungen starten.
Monitor
Fortlaufend
Den Fortschritt im Nexus-Lauf verfolgen.
Pause
Konflikt erkannt
Den kollidierenden Agent anhalten.
Restart
Nach Lösung des Konflikts
Den bestehenden Versuch und seine Wirkungen abgleichen, dann im erfassten Limit mit neuer Host-Identität wiederholen.
Reallocate
Ein Agent wird früher fertig
Die nächste Aufgabe der Warteschlange zuweisen.
Escalate
Versuchslimit erreicht oder Abgleich blockiert
Den ungelösten Zustand und die Belege melden; unabhängige, erlaubte Arbeit fortsetzen.
bmad-plus nexus hält einen Aufgabengraphen und seine Versuche unter .bmad-plus/nexus/runs/ fest. Jede normale Änderung nimmt eine exklusive Projektsperre und schreibt eine Zustandsdatei mit Prüfsumme über eine geflushte Temporärdatei und ein atomares Umbenennen. Die Inspektion ist schreibgeschützt. Drei Ergebnisse werden getrennt gehalten, und diese Trennung ist der Sinn der Laufzeit.
Ausführung, Verifikation, Akzeptanz
Ergebnis
Wer es feststellt
Was es bedeutet
Ausführung
Ein identifizierter Host meldet completed, failed, blocked oder ambiguous; oder ein ursprünglicher Supervisor im Vordergrund sammelt das reale Ergebnis seines Kindprozesses ein.
Eine Beobachtung. Keine unabhängige Verifikation.
Verifikation
Nexus führt die Prüfbefehle des Plans selbst aus, mit wörtlichen Argument-Arrays und ohne Shell, erfasst Exit-Codes und begrenzte Ausgabe und vergleicht Schnappschüsse von Artefakten und Schreibbereich davor und danach.
Das Ergebnis besteht die unabhängigen Prüfungen, mit Belegen.
Akzeptanz
Ein getrennter, serialisierter Vorgang prüft aktuelle Artefakte, Ressourcen-Hashes und Abhängigkeitsbelege erneut.
Der aktuelle Arbeitsstand wird akzeptiert. Es erfolgt kein Git-Commit, kein Merge, keine Kopie und kein Deployment.
Belege bleiben über die Zeit ehrlich. Eine akzeptierte Aufgabe gilt nur so lange als aktuell, wie ihre Artefakte, geschützten Ressourcen und jede transitive Abhängigkeit noch dem Verifizierten entsprechen: Die Änderung einer vorgelagerten Datei entwertet die Belege der abhängigen Aufgaben, und ein alter Eintrag „akzeptiert“ behauptet nicht, dass später bearbeitete Dateien noch bestehen. Eine Frist ist eine Beobachtung, kein Beweis dafür, dass Arbeit nie stattfand oder ein Prozess endete.
Ein Plan ist eine JSON-Datei; strukturierte Eingaben laufen immer über Dateien, damit Shell-Quoting ein Befehls-Array nicht umdeuten kann. Dieser minimale Plan hat eine Aufgabe, deren Ergebnis eine bereits vorhandene Prüfung (checks/check-result.cjs) erfüllen muss und deren Quelle außerhalb des Schreibbereichs des Arbeiters liegt.
nexus-plan.json
{
"id": "example",
"maxParallel": 1,
"config": { "language": "English" },
"tasks": [
{
"id": "result",
"objective": "Produce the requested result in work/result.txt.",
"acceptance": ["The result satisfies the independent check."],
"dependsOn": [],
"scope": ["work"],
"artifacts": ["work/result.txt"],
"resources": ["checks/check-result.cjs", ".agents/skills/agent-orchestrator/SKILL.md"],
"checks": [
{
"id": "result-content",
"command": "node",
"args": ["checks/check-result.cjs"],
"cwd": ".",
"timeoutMs": 30000
}
],
"maxAttempts": 2,
"deadlineMs": 3600000,
"idempotent": true,
"authorizations": ["Edit work/ and run the listed local check."]
}
]
}
Felder einer Aufgabe
Feld
Bedeutung
id, objective, acceptance
Kennung, was zu erzeugen ist, und die Bedingungen, die gelten müssen.
dependsOn
Aufgaben, die aktuelle akzeptierte Belege haben müssen, bevor diese beginnt.
scope
Dateien oder Ordner, die die Aufgabe schreiben darf. Die Scopes aller Aufgaben sind exklusiv und paarweise disjunkt, auch zwischen aufeinanderfolgenden Aufgaben.
artifacts
Dateien, die das Ergebnis bilden; ihre Hashes werden erfasst.
resources
Jede dem Host gelieferte Anweisung und Hilfsdatei, von Nexus gehasht. Sie müssen außerhalb des Schreibbereichs jeder Aufgabe liegen. Nexus kann nichts bezeugen, was nicht deklariert ist.
checks
Bis zu 30 pro Aufgabe: command (node oder ein absoluter Pfad einer ausführbaren Datei, deren Bytes an den Plan gebunden werden), args, cwd, timeoutMs (10 bis 300000). Dateiargumente müssen deklarierte Ressourcen sein.
maxAttempts, deadlineMs, idempotent
Versuchslimit (höchstens 10), Frist und ob eine Wiederholung ohne besondere Beobachtung sicher ist.
authorizations
Text zur bestehenden Berechtigung. Ein Arbeiter kann sie nicht ändern oder eine Freigabeabfrage beantworten.
execution
Optionaler Vertrag für eine prozessgestützte Aufgabe (siehe unten). Ohne ihn gehört die Aufgabe dem Host.
Pfade in einem Plan sind portabel, projektrelativ und nutzen /. Absolute Pfade, Aufstieg im Verzeichnisbaum, alternative Datenströme, reservierte Windows-Namen, Symlinks oder Junctions sowie Schreibzugriffe auf .git oder den Nexus-Zustandsbaum werden abgelehnt. Prüfungen laufen in einer eingeschränkten Umgebung: Nur PATH, SYSTEMROOT, WINDIR, TEMP, TMP und TMPDIR können übernommen werden (plus einige nicht geheime Identitäts- und Pfadvariablen unter Windows), die Locale ist C, die Zeitzone UTC, und NODE_OPTIONS, PYTHONPATH, Loader-Hooks und Zugangsdaten fehlen. Das schränkt die Umgebung ein; es ist keine Betriebssystem-Sandbox.
Der Ablauf im Host: create, start, record, verify, accept#
Das Standard-Backend ist der Host: Dein Assistent erledigt die Arbeit mit eigenen Mitteln und meldet zurück. Unten ein echter Lauf eines aus einem Schwarm exportierten Fanouts (drei Seiten-Einheiten; nur die erste wird durchlaufen). Lege die drei Schwarm-Dateien und host.json in einem Projekt an, um ihn nachzuvollziehen. Der „Arbeiter“ ist ein Platzhalter, der die Antwortdatei von Hand schreibt: Das Beispiel zeigt die Buchführung, nicht die Arbeit eines Modells.
swarm/page-fanout.json (die Schwarm-Definition)
{
"schemaVersion": 1,
"id": "site-pages",
"kind": "fanout",
"title": "One sub-agent per page of the site",
"units": { "source": "input" },
"brief": { "template": "briefs/page.md", "context": [] },
"answer": {
"required": ["id", "done", "words"],
"fields": {
"done": { "type": "boolean" },
"words": { "type": "integer", "min": 0 },
"note": { "type": "string", "max": 200 }
}
},
"tally": { "rate": "done", "numbers": ["words"] },
"disclosure": "Each page was written by a separate sub-agent from the same brief; read them together before publishing."
}
# Page {{unit.id}}
Write the page "{{card.title}}" under `{{card.scope}}`, {{card.tone}} in tone. Touch nothing
outside that folder.
When the page is written, write a JSON object to `{{answer.path}}` with `id` ("{{unit.id}}"),
`done`, `words` (the word count) and an optional `note`.
{{disclosure}}
host.json (Identität des Arbeiters und seiner Sitzung)
Eine Host-Aufgabe von der Anlage bis zur Akzeptanz
$ npx bmad-plus swarm init --definition swarm/page-fanout.json --units swarm/units.jsonsite-pages-20261019-vwk0: fanout of 3 units, budget 26, approval not-needed.Units listed, no seed.Next: bmad-plus swarm briefs site-pages-20261019-vwk0$ npx bmad-plus swarm plan site-pages-20261019-vwk0 --out .bmad-plus/swarm/reports/site-pages-20261019-vwk0/plan.json/work/demo/app/.bmad-plus/swarm/reports/site-pages-20261019-vwk0/plan.json: 3 tasks, 10 in parallel.Next: bmad-plus nexus create --plan /work/demo/app/.bmad-plus/swarm/reports/site-pages-20261019-vwk0/plan.json$ npx bmad-plus nexus create --plan .bmad-plus/swarm/reports/site-pages-20261019-vwk0/plan.jsonNexus run site-pages-20261019-vwk0 — durable task coordinationabout: not started; verification=pending; acceptance=pendingpricing: not started; verification=pending; acceptance=pendingcontact: not started; verification=pending; acceptance=pendingUse inspect --json for recorded evidence and reconciliation observations.$ npx bmad-plus nexus start site-pages-20261019-vwk0 about --input host.jsonabout: running; verification=pending; acceptance=pending Attempt: a4ec0495-660b-487c-8c83-e82ada22a857; host: demo-worker/demo-session-1$ echo '{"id":"about","done":true,"words":120}' > .bmad-plus/swarm/runs/site-pages-20261019-vwk0/answers/about.json# Der Platzhalter-Worker schreibt seine Antwortdatei von Hand. Schreibe dann rec.json (unter diesem Terminal gezeigt) mit der Versuchs-ID, die start ausgibt.$ npx bmad-plus nexus record site-pages-20261019-vwk0 about --input rec.jsonabout: completed; verification=pending; acceptance=pending Attempt: a4ec0495-660b-487c-8c83-e82ada22a857; host: demo-worker/demo-session-1$ npx bmad-plus nexus verify site-pages-20261019-vwk0 aboutabout: completed; verification=passed; acceptance=pending$ npx bmad-plus nexus accept site-pages-20261019-vwk0 aboutabout: completed; verification=passed; acceptance=accepted$ npx bmad-plus nexus inspect site-pages-20261019-vwk0about: completed; verification=passed; acceptance=accepted Accept only after rechecking current artifacts and resources.pricing: not started; verification=pending; acceptance=pending Start when dependencies have current accepted evidence.# Jeder nexus-Befehl gibt außerdem die Kopfzeile, die Zeilen pricing und contact und den Schlusshinweis aus; hier bleiben nur die Zeilen, die sich ändern.
npx bmad-plus swarm init --definition swarm/page-fanout.json --units swarm/units.json
npx bmad-plus swarm plan site-pages-20261019-vwk0 --out .bmad-plus/swarm/reports/site-pages-20261019-vwk0/plan.json
npx bmad-plus nexus create --plan .bmad-plus/swarm/reports/site-pages-20261019-vwk0/plan.json
npx bmad-plus nexus start site-pages-20261019-vwk0 about --input host.json
echo '{"id":"about","done":true,"words":120}' > .bmad-plus/swarm/runs/site-pages-20261019-vwk0/answers/about.json
npx bmad-plus nexus record site-pages-20261019-vwk0 about --input rec.json
npx bmad-plus nexus verify site-pages-20261019-vwk0 about
npx bmad-plus nexus accept site-pages-20261019-vwk0 about
npx bmad-plus nexus inspect site-pages-20261019-vwk0
Ausgabe eines echten Laufs. Quelle: bmad-plus 0.23.0, 2026-10-19
rec.json (was der Host meldet; die Versuchs-ID stammt aus start)
{
"attemptId": "a4ec0495-660b-487c-8c83-e82ada22a857",
"backend": { "kind": "host", "id": "demo-worker", "sessionId": "demo-session-1" },
"outcome": "completed",
"exitCode": 0,
"summary": "The demo host reports the about page is written."
}
record braucht die exakte Versuchs-ID und dasselbe Backend samt Sitzung. Andere Ergebnisse sind failed, blocked (die Anfrage bleibt sichtbar und behält ihre Kapazität) und ambiguous (gewöhnliche Bestätigungen werden dann abgelehnt; gleiche ausdrücklich ab). verify endet mit 1, wenn die Verifikation nicht bestanden wurde, und accept lehnt eine Aufgabe ohne geeignete bestandene Verifikation ab. Der Exit-Code eines Arbeiters oder ein Satz „fertig“ ersetzt nie einen Prüfbeleg.
Erfasst eine Anfrage. Ein Host-Versuch signalisiert keine PID und kein Terminal; der Host stoppt nur seine eigene Operation. Die Kapazität bleibt bis zum Abgleich belegt.
nexus reconcile RUN TASK
Der Versuch, outcome (completed, failed oder cancelled), ownerStopped: true, retrySafe, summary
Schließt einen unsicheren Versuch mit einer Operator-Beobachtung. Es ist eine Beobachtung, nie ein unabhängiger Beleg, dass der Besitzer gestoppt hat.
nexus retry RUN TASK
Eine neue Host-Identität
Startet nach dem Abgleich einen neuen Versuch. Er verbraucht maxAttempts; eine neue Sitzung setzt das Limit nicht zurück. Nicht idempotente Aufgaben brauchen außerdem retrySafe: true.
nexus recover-lock
Der exakte Sperr-Hash aus inspect, ownerStopped: true, eine nicht leere note
Entfernt eine unterbrochene Schreibsperre, nachdem du ihren Besitzer geprüft hast. Ein lebender lokaler Schreiber verhindert das Entfernen. Nie automatisch.
Das optionale Prozess-Backend und der Codex-Adapter#
Eine Aufgabe kann ein execution-Objekt tragen, statt dem Host zu gehören. Das ist eine vom Operator gelieferte Definition, nie ein aus dem Aufgabentext abgeleiteter Befehl. nexus launch RUN TASK bleibt dann im Vordergrund, bis die eigene Operation endet; ein Terminal, ein Coding-Host oder ein CI-Runner hält es am Leben. Der Aufgabeneintrag wird vor dem Start des Prozesses gespeichert und bindet eine frische Versuchs-ID an eine frische Supervisor-Sitzung, die exakte Definition und die Hashes seiner geschützten Eingaben. Der Supervisor behält begrenzte stdout und stderr, das reale Ende oder Signal und einen Beleg mit Prüfsumme. launch lässt das Einsammeln auch nach sauberem Ende offen: nexus collect RUN TASK --input attempt.json (die exakte attemptId und das ganze backend-Objekt) schließt es und lehnt einen fremden, wiederholten oder späten Beleg ab. Status 0 bei launch heißt nur, dass der Prozessbeleg „completed“ sagt; Akzeptanz bedeutet es nicht.
Eine Aufgabe mit dem generischen Befehlsadapter (execution-Objekt)
Die ausführbare Datei wird zu einer regulären Datei aufgelöst und ihr SHA-256 im Plan festgenagelt. Argumente sind wörtliche Arrays, ohne Shell, ohne Umgebungsüberschreibung und ohne Zugangsdaten-Schnappschuss übergeben.
Texteingaben sind je höchstens 256 KiB groß, das ganze Paket höchstens 1 MiB. Anweisungen werden mit ihren relativen Pfaden vor die Standardeingabe gesetzt.
Ein Ende mit Null ist generischer Abschluss; ein in blockedExitCodes gelisteter Code ungleich Null gilt als blockiert. Diese Liste ist eine Konvention deines Wrappers, nie eine Freigaberichtlinie.
Der Codex-Adapter baut -a never exec --json --color never --sandbox MODE --skip-git-repo-check --ignore-user-config -; model ist optional und fügt nur --model MODEL hinzu. sandbox ist read-only (Standard) oder workspace-write; kein anderes Flag, keine Umgehung der Freigabe und kein Shell-String wird akzeptiert. Nur HOME, USERPROFILE, HOMEDRIVE, HOMEPATH und CODEX_HOME dürfen über die minimale Umgebung hinaus geerbt werden, und Belege listen Variablennamen, nicht Werte.
Der Codex-Abschluss braucht ein Ende mit Null, eine thread.started-Identität und ein turn.completed-Ereignis ohne abschließenden Fehler. Nur ausdrückliche approval_required-Fehlercodes werden zu blockiert; andere Anbieterfehler bleiben fehlgeschlagen.
Der Abbruch ist an die zurückgegebene Identität gebunden. Nur der ursprüngliche Supervisor darf dem direkten Kindprozess, den er erzeugt hat, ein Signal senden; nichts tötet eine gespeicherte PID oder übernimmt ein altes Terminal. Eine Frist, übermäßige Ausgabe oder ein verlorener Supervisor ergibt ein mehrdeutiges Ergebnis und hält die Kapazität bis zum Abgleich.
Ehrlicher Beleg: Der Flag-Vertrag wurde gegen Codex CLI 0.153.4 geprüft. Ein autorisierter Aufruf am 2026-09-11 erzeugte einen echten Thread und ein Abschlussereignis, doch der Host lehnte die gewünschte Dateiänderung als schreibgeschützt ab; Nexus sammelte den Beleg ein, der unabhängige Verifizierer scheiterte und die Akzeptanz wurde verweigert. Das zeigt die Verdrahtung und die Fehlereindämmung auf diesem Host; erfolgreiches Dateischreiben durch Codex wurde dort nicht nachgewiesen.
Dateien pro Scope-Schnappschuss; Größe einer erfassten Datei
10000; 16 MiB
JSON-Eingabedateien
Höchstens 1 MiB, reguläre Dateien
Kein Daemon, kein Scheduler, keine unbeaufsichtigte Schleife. Jeder Start ist ausdrücklich und belegt einen Kapazitätsplatz; Kapazität ist kein Geldbudget.
Keine Betriebssystem-Sandbox. Arbeiter teilen Projekt und OS-Nutzer mit Nexus und können deklarierte Scopes ignorieren; Prüfsummen erkennen versehentliche Änderungen, sie sind keine Signaturen. Schütze Plan und Verifizierer und nutze ein isoliertes Projekt oder eine Host-Richtlinie, wenn es darauf ankommt.
Kein Git-Commit, kein Merge, kein Deployment. Akzeptanz heißt „der aktuelle Arbeitsstand hat die unabhängigen Prüfungen bestanden“, nicht mehr.
Keine Aussage zur Modellqualität. Ein Beleg ist kein Nachweis, dass ein Modell irgendwo besser wurde.
Ein Verifikations-Timeout signalisiert nur das direkte Kind und erfasst ein mehrdeutiges Ergebnis, weil die Abwesenheit von Nachfahren oder äußeren Wirkungen nicht bewiesen ist. Prüfprogramme müssen begrenzte Vordergrundbefehle sein.
Nexus ein kleines Projekt mit Checkpoints führen lassen#
Nutze es zu Beginn eines Projekts, mit execution_mode auf manual oder hybrid, damit du die Freigaben behältst.
In deinem KI-Assistenten
autopilot. Das Projekt: eine kleine API, mit der Freiberufler Angebote senden und in Rechnungen umwandeln. Beginne mit dem Intake aller beteiligten Packs. Halte am Checkpoint des PRD und an dem der Architektur an und warte auf meine Freigabe. Halte jede Story klein, verifiziere jede gegen ihre Abnahmekriterien, bevor die nächste kommt, und sage mir am Ende, was unsicher bleibt.
Das solltest du erhalten Zuerst läuft Discovery (Briefing, PRD, UX-Spezifikation) und hält am Checkpoint discovery mit etwas Lesbarem an. Nach deiner Freigabe schreibt Forge die Architektur, und Nexus hält erneut an. Danach werden Stories nacheinander implementiert und getestet; mit den Standard-Checkpoints wartet jede fertige Story außerdem auf deine Freigabe (story), es sei denn, du stellst sie auf notify_only, und die finale Auslieferung hält zu deiner Prüfung an (delivery). Eine fehlschlagende Prüfung wird im Versuchslimit repariert statt durchgewunken. Der Schlussbericht nennt, was verifiziert wurde und was offen bleibt.
Genehmigte Arbeit in unabhängige Aufgaben aufteilen#
Nutze es, wenn die Stories vorliegen. Der Host muss Sub-Agenten unterstützen, damit es echte Parallelität gibt; sonst laufen die Aufgaben nacheinander.
In deinem KI-Assistenten
parallel. Nimm die genehmigten Stories und teile sie in Aufgaben auf, die nicht dieselben Dateien berühren. Gib jeder Aufgabe einen exklusiven Schreibbereich, die lesbaren Dateien und eine Prüfung, die ich ausführen kann. Erfasse den Plan mit bmad-plus nexus create, führe nur unabhängige Aufgaben zusammen aus und zeige mir nexus inspect nach jeder Welle. Akzeptiere eine Aufgabe nicht, bevor nexus verify bestanden hat.
Das solltest du erhalten Ein nexus-plan.json mit disjunkten Scopes und unabhängigen Prüfungen, ein von nexus inspect gelisteter Nexus-Lauf (jede Aufgabe not started; verification=pending; acceptance=pending) und danach eine Statuszeile je Aufgabe im Verlauf der Arbeit. Eine Aufgabe mit fehlschlagender Prüfung zeigt verification=failed und kann nicht akzeptiert werden; ein Konflikt hält die kollidierende Aufgabe an, statt sie zu überschreiben.