Skills
Elke OpenSpec-skill: argumenten, wat het aanmaakt en waarop het reageert.
De skills komen in twee sets:
- Core: standaard geïnstalleerd, de belangrijkste planning-loop.
- Optional: alleen geïnstalleerd wanneer je ze toevoegt, via Profielen.
Elke skill verwacht een project dat al OpenSpec gebruikt. Vóór zijn eerste stap die iets schrijft, controleert een skill op een opgeloste root. Wat er gebeurt als er geen is, hangt af van hoe de skill werd bereikt:
- Automatisch geselecteerd: je agent heeft de skill zelf gekozen, zonder dat jij OpenSpec noemde. Het laat OpenSpec vallen en beantwoordt je verzoek op de normale manier, zoals het zou doen zonder OpenSpec geïnstalleerd.
- Expliciet OpenSpec-verzoek: je noemde OpenSpec, noemde de skill, of voerde het commando uit. Het stopt vóór het schrijven en vraagt hoe verder te gaan: voer
openspec inithier uit, richt een store in met--store <id>, of ga door zonder OpenSpec. Het wacht op je antwoord.
Commando's zijn altijd het tweede geval. Een project waarvan openspec/config.yaml een store noemt die deze machine niet kan oplossen (niet geregistreerd, of een ongeldige store: regel) wordt niet behandeld als niet-geïnitialiseerd: de skill stopt en toont de store-fout met de bijbehorende oplossing. Geen enkele skill maakt in beide gevallen zelf een openspec/ map aan. De vermeldingen hieronder beschrijven wat elke skill doet zodra een root aanwezig is.
| Skill | Taak | Type |
|---|---|---|
| openspec-explore | Denk een idee door voordat het een change proposal wordt | Core |
| openspec-propose | Maak een change proposal met al zijn planningsartefacten in één stap | Core |
| openspec-apply-change | Implementeer de taken van een change proposal | Core |
| openspec-update-change | Herzie het plan van een change proposal | Core |
| openspec-sync-specs | Voeg de spec-updates van een change proposal samen in specs/ | Core |
| openspec-archive-change | Verplaats een voltooide change proposal naar het archief | Core |
| openspec-new-change | Start een change proposal als een lege scaffold | Optional |
| openspec-continue-change | Maak het volgende planningsartefact aan, één voor één | Optional |
| openspec-ff-change | Maak een change proposal met elk artefact dat de implementatie nodig heeft, in één keer | Optional |
| openspec-verify-change | Controleer of de implementatie overeenkomt met het plan | Optional |
| openspec-bulk-archive-change | Archiveer meerdere change proposals tegelijk | Optional |
| openspec-onboard | Leer de workflow door één echte change proposal van begin tot eind te doen | Optional |
Elke vermelding hieronder noemt de skill die de volgende stap bezit. Wanneer je profiel die skill weglaat, noemen de geïnstalleerde bestanden hem nooit: de overdracht wordt het equivalente openspec commando, of een gewoon verzoek aan jou, en een regel die alleen bestaat om naar een ontbrekende skill te verwijzen, wordt helemaal niet geschreven. Dus de skills die je hebt, geven altijd door aan skills die je hebt. Welke set je krijgt, staat in Profielen.
openspec-explore
Denk grondig na over een idee voordat het een wijzigingsvoorstel wordt.
| Contract | Beschrijving |
|---|---|
| Argumenten | Een onderwerp: een idee, een probleem, een vergelijking, of de naam van een bestaand wijzigingsvoorstel om in context te verkennen. Als er niets wordt opgegeven, gaat het in verkenningsmodus. |
| Creëert | Standaard niets. Het leest en onderzoekt alleen. Op verzoek legt het inzichten vast: een nieuw wijzigingsvoorstel onder openspec/changes/<name>/, of updates aan het voorstel, ontwerp, de specs of taken van een bestaand voorstel. Nooit code. |
| Reactie | Een open gesprek zonder vereiste uitvoer. Wanneer het denken kristalliseert, vat het het probleem, de aanpak, openstaande vragen en vervolgstappen samen en biedt het aan om deze vast te leggen. Jij beslist. Implementatie begint hier nooit. |
openspec-propose
Maak een wijzigingsvoorstel en genereer alle planningsartefacten in één stap.
| Contract | Beschrijving |
|---|---|
| Argumenten | Een kebab-case naam (add-dark-mode) of een gewone beschrijving. Vraagt ernaar als je geen van beide opgeeft. |
| Creëert | openspec/changes/<name>/ met elk artefact dat het schema definieert, in afhankelijkheidsvolgorde (spec-gedreven: voorstel, spec-delta's, ontwerp, taken). Nooit code. |
| Reactie | De gecreëerde artefacten, klaar voor beoordeling, en de volgende stap. Stopt daar; implementatie wacht op openspec-apply-change. |
openspec-apply-change
Implementeer de taken van een wijzigingsvoorstel, werk de lijst af tot alles klaar is of geblokkeerd raakt.
| Contract | Beschrijving |
|---|---|
| Argumenten | Een naam van een wijzigingsvoorstel (add-auth), optioneel. Als het doel dubbelzinnig is, toont het de actieve wijzigingsvoorstellen en vraagt het je om te kiezen. |
| Creëert | Code: de minimale wijzigingen die elke taak vereist, in je projectbestanden. In het wijzigingsvoorstel vinkt het elke voltooide taak af (- [ ] naar - [x]) in het gevolgde bestand dat wordt geïdentificeerd door sourcePath en de op één gebaseerde line. Een schema kan taken over meerdere bestanden volgen. |
| Reactie | Voortgang per taak, daarna een totaaltelling (N/M taken voltooid). Alles klaar: stelt openspec-archive-change voor. Geblokkeerd door ontbrekende artefacten: wijst naar openspec-continue-change, of naar openspec status en openspec instructions als die vaardigheid niet is geïnstalleerd (het kernprofiel laat deze weg). Onduidelijke taken of fouten: pauzeert en vraagt. |
openspec-update-change
Herzie de bestaande planningsartefacten van een wijzigingsvoorstel en houd ze onderling coherent.
| Contract | Beschrijving |
|---|---|
| Argumenten | Een naam van een wijzigingsvoorstel, optioneel, plus de gewenste herziening. Zonder opgegeven herziening voert het een coherentiecontrole uit: artefacten worden tegen elkaar gecontroleerd op tegenstrijdigheden, hiaten en duplicatie. |
| Creëert | Bewerkt artefactbestanden die al bestaan. Eén uitzondering: voor een artefact dat als glob is geschreven, zoals specs/**/*.md, dat al minstens één bestand heeft, kan het een ontbrekend begeleidend bestand toevoegen zodra je het pad bevestigt. Een artefact zonder bestanden is de taak van openspec-continue-change. Zonder die vaardigheid (het kernprofiel laat deze weg) wijst het in plaats daarvan naar openspec status en openspec instructions. Nooit code. |
| Reactie | Toont elke voorgestelde herziening en schrijft deze pas nadat je hebt bevestigd, één artefact per keer. Eindigt met wat is herzien en de volgende stap; implementatie wacht op openspec-apply-change. |
openspec-sync-specs
Voeg de spec-updates van een wijzigingsvoorstel samen in specs/ zonder het te archiveren.
| Contract | Beschrijving |
|---|---|
| Argumenten | Een naam van een wijzigingsvoorstel, optioneel. Je kunt ook een subset van de delta-specs benoemen, en alleen die worden gesynchroniseerd. |
| Creëert | Bewerkt of creëert openspec/specs/<capability-path>/spec.md voor elke delta-spec, waarbij toegevoegde, gewijzigde, verwijderde en hernoemde vereisten worden samengevoegd in de hoofd-spec. Nooit code. |
| Reactie | Een samenvatting per capaciteit van toegevoegde, gewijzigde, verwijderde of hernoemde vereisten, nadat de bijgewerkte specs zijn gevalideerd. Het wijzigingsvoorstel blijft actief; archiveren wacht op openspec-archive-change. |
openspec-archive-change
Verplaats een afgerond wijzigingsvoorstel naar het archief.
| Contract | Beschrijving |
|---|---|
| Argumenten | Een naam van een wijzigingsvoorstel, optioneel. |
| Creëert | Verplaatst de map van het wijzigingsvoorstel naar openspec/changes/archive/YYYY-MM-DD-<name>/ (geen datum toegevoegd als de naam al met een datum begint). Met jouw goedkeuring synchroniseert het eerst openstaande delta-specs. Wanneer openspec-sync-specs is geïnstalleerd, voert het die workflow uit. Anders voegt het de delta-specs zelf samen in de hoofd-specs. Nooit code. |
| Reactie | Waarschuwt en vraagt voordat het archiveert met onvolledige artefacten of taken, en vraagt of er gesynchroniseerd moet worden wanneer delta-specs bestaan. Eindigt met een samenvatting: naam, schema, archieflocatie, spec-synchronisatiestatus en eventuele waarschuwingen. |
openspec-new-change
Start een wijzigingsvoorstel als een leeg scaffold.
| Contract | Beschrijving |
|---|---|
| Argumenten | Een kebab-case naam (add-user-auth) of een gewone beschrijving, plus een schemanaam alleen voor een niet-standaard workflow. Vraagt wat je wilt bouwen als je geen van beide opgeeft. |
| Creëert | openspec/changes/<name>/ als een leeg scaffold: nog geen artefacten, nooit code. |
| Reactie | De naam en locatie van het scaffold, de artefactenreeks van de workflow, status (0/N voltooid), en het sjabloon van het eerste artefact. Het opstellen van artefacten wacht op openspec-continue-change. |
openspec-continue-change
Maak het volgende planningsartefact in een wijzigingsvoorstel, één voor één.
| Contract | Beschrijving |
|---|---|
| Argumenten | Een naam van een wijzigingsvoorstel, optioneel. Als het nog steeds dubbelzinnig is, vraagt het je om te kiezen uit de meest recent gewijzigde. |
| Creëert | Het volgende gereed zijnde artefact in de reeks van het schema, geschreven in de map van het wijzigingsvoorstel. Eén artefact per run, nooit code. |
| Reactie | Het gecreëerde artefact, voortgang (N van M voltooid), en welke artefacten daarmee zijn ontgrendeld. Wanneer de planning compleet is, zegt het dat; implementatie gaat verder naar openspec-apply-change. |
openspec-ff-change
Maak een wijzigingsvoorstel en elk planningsartefact dat de implementatie nodig heeft, in één keer.
| Contract | Beschrijving |
|---|---|
| Argumenten | Een kebab-case naam of een gewone beschrijving. Vraagt ernaar als je geen van beide opgeeft. Als het genoemde wijzigingsvoorstel al bestaat, stelt het voor om in plaats daarvan verder te gaan. |
| Creëert | openspec/changes/<name>/ en elk planningsartefact dat de implementatie vereist, in afhankelijkheidsvolgorde (spec-gedreven: voorstel, specs, ontwerp, taken), waarbij alleen artefacten worden overgeslagen die als overgeslagen of voorwaardelijk zijn gemarkeerd. Nooit code. |
| Reactie | De naam en locatie van het wijzigingsvoorstel, elk gecreëerd artefact, en elk overgeslagen voorwaardelijk artefact en waarom. Stopt daar; implementatie wacht op openspec-apply-change. |
openspec-verify-change
Controleer of de implementatie overeenkomt met de artefacten van het wijzigingsvoorstel.
| Contract | Beschrijving |
|---|---|
| Argumenten | Een naam van een wijzigingsvoorstel, optioneel. Bij dubbelzinnigheid vraagt het, waarbij het wijzigingsvoorstellen toont die een takenartefact hebben. |
| Creëert | Niets. Het leest de artefacten van het wijzigingsvoorstel en de codebase. Verificatie is alleen rapportage. |
| Reactie | Een rapport: een scorekaart voor Volledigheid, Correctheid en Coherentie, daarna KRITIEKE, WAARSCHUWINGS- en SUGGESTIE-problemen met aanbevelingen, en een definitieve beoordeling van archiefgereedheid. Het verandert niets en archiveert niet. |
openspec-bulk-archive-change
Archiveer meerdere wijzigingsvoorstellen tegelijk.
| Contract | Beschrijving |
|---|---|
| Argumenten | Geen. Het toont de actieve wijzigingsvoorstellen en vraagt je om er een willekeurig aantal te selecteren, met een optie voor alle. Als er geen actief zijn, zegt het dat en stopt het. |
| Creëert | openspec/changes/archive/YYYY-MM-DD-<name>/ per gearchiveerd wijzigingsvoorstel (namen die al een datum hebben behouden hun voorvoegsel). De spec-delta's van elk worden eerst gesynchroniseerd via openspec-sync-specs. Nooit code. |
| Reactie | Een statustabel per wijzigingsvoorstel en één bevestiging voor de hele batch, daarna een samenvatting van gearchiveerd, overgeslagen en mislukt, plus resultaten van spec-synchronisatie. Wanneer twee wijzigingsvoorstellen dezelfde spec raken, controleert het de codebase en synchroniseert het geïmplementeerde delta's van oud naar nieuw. |
openspec-onboard
Leer de workflow door één echt wijzigingsvoorstel van begin tot eind uit te voeren.
| Contract | Beschrijving |
|---|---|
| Argumenten | Geen. Het scant je codebase op kleine starttaken en vraagt je om er een te kiezen of je eigen te beschrijven. |
| Creëert | Een echt wijzigingsvoorstel voor de gekozen taak, één artefact per keer, daarna echte code zodra je de implementatie bevestigt. Archiveert het wijzigingsvoorstel aan het einde. |
| Reactie | Een begeleide doorloop van de volledige cyclus met pauzes voor jouw invoer: verkennen, creëren, elk artefact bouwen, implementeren, archiveren. Eindigt met een samenvatting en een verwijzing naar openspec-propose. Duurt ongeveer 15 tot 20 minuten. |