Ga naar inhoud

Slash-commando’s

Commando’s die je in de composer van een ruimte typt. Ze vallen in drie groepen op basis van waar ze effect hebben, en dat verschil is belangrijk: een lokaal commando reist nooit als bericht mee, dus het verschijnt niet in het transcript en bereikt geen agent.

Waar het draait Wat dat betekent
Lokaal Wordt in de client afgehandeld (of in een door de client gestarte serverop). Het commando reist nooit als bericht mee, dus geen enkele agent ziet het.
Zijdelings Eén modelaanroep aan de serverkant over het gesprek. Het gesprek wordt niet gewijzigd.
Dispatch Stelt een modus of richtlijn in voor de run die het bericht start.

Lokaal → dispatch. Zet planmodus aan voor het gesprek: een volledig alleen-lezen worktree en een tooloppervlak dat beperkt is tot read. De oplevering van de agent is een plan, geen bewerking. Een kale /plan zet alleen de modus om en reist nooit als bericht mee; met een prompt is de rest van de regel wat de run start.

Dispatch. Start een autonoom doel dat de doelsupervisor over segmenten en herstarts opnieuw dispatcht.

Als je /goal met tekst typt, opent eerst het doelinterview — een korte ronde die een concept pas accepteert als het alle vijf heeft: succescriteria die een beoordelaar zonder eigen oordeel kan vaststellen, een exact verificatiecommando, een limiet op het aantal pogingen, een afbakening van het bereik en stopvoorwaarden. Elke stap biedt Overslaan en uitvoeren zoals geschreven: het interview is een standaard, geen poort.

/goal pause, /goal resume en /goal drop zijn geen slash-commando’s. Pauzeren, hervatten en stoppen staan in de doelenlijst van het gesprek in de zijbalk. De startflags van het doel zelf zijn --budget <dollars>, --max <N> (runbudget) en --days <N> (deadline). Een doel dat zijn kostenlimiet heeft bereikt, wordt alleen hervat door die limiet te verhogen, via hetzelfde bedieningselement in de zijbalk.

Dispatch. Werkt iteratief tot het klaar is. Accepteert een grens: /loop 10, /loop 30m, /loop 1h30m, /loop 10 minutes fix the tests.

Een token dat op een limiet lijkt (begint met een cijfer of een teken) en niet te parsen is, is een harde fout. Proza is gewoon proza, dus /loop keep going until the tests pass is een onbegrensde loop met een inline prompt in plaats van een verkeerde parse.

Dispatch. Maakt van de sessie een regisseur: zijn eigen tools beperken zich tot read plus vijf worker-werkwoorden, en achtergrondworkers doen het bewerken. Zie Achtergrondworkers sturen.

Workers overleven de modus nooit — bij het verlaten worden ze allemaal gestopt.


Lokaal → server. Vouwt oudere geschiedenis samen tot een verankerde samenvatting en gaat verder op de gecomprimeerde context. Geen argument voor het model: het commando reist nooit als bericht mee, en de compressieronde neemt geen focusaanwijzing aan.

Lokaal → server. Gooit zware inhoud weg zonder samen te vatten: geen modelaanroep, elk woord blijft behouden, alleen de bulk die toch niemand opnieuw zou lezen wordt gewist.

Doel Wat er wegvalt
tool_output Gebeurtenisloze oudere toolresultaten (standaard)
images Oude schermafbeeldingen, waarbij de tekst behouden blijft
all Beide

Dit is de uitweg voor “mijn context is dik, maar ik wil geen samenvatting”.

Lokaal. Opent de contextverkenner voor de agent van dit gesprek in een eigen tabblad: elk segment en onderdeel van zijn contextvenster — systeemprompt, skills, contextbestanden, toolschema’s, geschiedenis en afbeeldingen — met wat elk kost en de letterlijke inhoud erachter.

Het tabblad is gekoppeld aan het paar (ruimte, agent), dus als je het twee keer uitvoert, wordt hetzelfde tabblad opnieuw gericht in plaats van kopieën van dezelfde uitsplitsing op te stapelen.

In een ruimte met meer dan één agent opent een kale /context het venster dat de contextmeter in de koptekst uitleest — de agent die hier het laatst heeft gewerkt, degene wiens bericht onderaan het spoor staat — en het tabblad is gelabeld als Context · <name>, zodat duidelijk is van wie het is. Noem een andere naam om te wisselen: /context qa (de @ is optioneel). Een getypte naam wordt exact opgelost, nooit fuzzy: twee agenten hebben twee verschillende vensters, dus een bijna-treffer die het andere venster zou openen, is een plausibel lijkend antwoord op een vraag die je niet hebt gesteld.

Dezelfde verkenner zit achter de contextmeter-chip in de koptekst van de ruimte, die dezelfde agent volgt — het commando en de chip kunnen het nooit oneens zijn over wat “de context” hier betekent.


Deze kosten één modelaanroep en veranderen het gesprek nooit. De volgende echte beurt van de agent ziet precies wat hij toch al zou hebben gezien, en dat is de hele waarde van het vragen.

Zijdelings. Schrijft een overdrachtsdocument voor wie het werk er koud oppakt: wat de taak is, wat er is geleerd, wat er nog rest.

Zijdelings. Beantwoordt een vraag over het werk tot nu toe zonder de vraag of het antwoord aan het transcript toe te voegen.


Lokaal. Opent de taknavigator: waar het gesprek zich splitste, welk pad het nu volgt, en hoe je terugkomt bij een pad dat je hebt verlaten. Zie Een gesprek vertakken.

Lokaal. Schrijft het gesprek naar een op zichzelf staand HTML-bestand — inklapbare toolkaarten, geen stylesheet, geen script, geen imagehost. Komt terecht in Documents/ControlCenter/exports/ op desktop en wordt gedownload op het web.

Lokaal. Kopieert het transcript naar het klembord als markdown, met toolaanroepen in inklapbare blokken. Redeneringen worden bewust weggelaten: een transcript dat in een bugrapport wordt geplakt, wordt door een mens gelezen.


Lokaal. Bekijkt en bewerkt de opgeslagen checklist van het gesprek. Een kale /todo opent de editor. Subcommando’s: append, start, done, drop (alias rm), edit, copy, export, import.

Dispatch. Past een geïnstalleerde skill toe. Skills leven onder hun eigen voorvoegsel skill: zodat ze geen namespace delen met de ingebouwde — zonder dat zou een skill met de naam plan permanent onbereikbaar zijn.

Dispatch. Elk markdown-bestand onder .agents/commands, .agent/commands, .claude/commands, .codex/commands of .opencode/commands in de repo. Een genest foo/bar.md is ook bereikbaar als foo:bar.

Sjabloonverwerking: $1, $@, $@[start:length] en $ARGUMENTS. Frontmatter kan description instellen (autocomplete in de composer). allowed-tools en model worden uit het bestand geparseerd, maar een aanroep van een gebruikerscommando vervangt op dit moment alleen argumenten in de body — ze veranderen het model of het tooloppervlak van de run niet.

Een door de gebruiker geschreven commando wint van een skill met dezelfde naam — het is een snelkoppeling die een mens bewust heeft aangeroepen, met argumenten.


Geen commando’s. Een losstaand woord in kleine letters, waar dan ook in een prompt, hangt een verborgen instructie aan die beurt.

Woord Effect
ultrathink Maximale redeneerinspanning voor de beurt
orchestrate Delegeer onafhankelijk werk parallel en verifieer elke fase

De matcher is bewust strikt op grenzen. orchestrate, komt overeen; orchestrated, orchestrate.ts, foo::orchestrate en orchestrate() niet, en omheinde codeblokken, inline-fragmenten en XML-secties worden eerst gemaskeerd. Zonder dat zou het plakken van een stacktrace het gedrag van de agent veranderen.