Migreren naar OPSX
Deze handleiding helpt u bij de overgang van de legacy OpenSpec-workflow naar OPSX. De migratie is ontworpen om soepel te verlopen—uw bestaande werk wordt behouden en het nieuwe systeem biedt meer flexibiliteit.
Wat verandert er?
OPSX vervangt de oude fase-gebaseerde workflow door een vloeibare, actie-gebaseerde aanpak. Hier is de belangrijkste verschuiving:
| Aspect | Legacy | OPSX |
|---|---|---|
| Commando's | /openspec:proposal, /openspec:apply, /openspec:archive | Standaard: /opsx:propose, /opsx:explore, /opsx:apply, /opsx:update, /opsx:sync, /opsx:archive (uitgebreide workflow-commando's optioneel) |
| Workflow | Alle artefacten tegelijk aanmaken | Incrementeel of tegelijk aanmaken—uw keuze |
| Terugkeren | Onhandige fasepoorten | Natuurlijk—elk artefact op elk moment bijwerken |
| Aanpassing | Vaste structuur | Schema-gedreven, volledig aanpasbaar |
| Configuratie | CLAUDE.md met markers + project.md | Schone configuratie in openspec/config.yaml |
De filosofische verandering: Werk is niet lineair. OPSX doet niet meer alsof het dat wel is.
Voordat u begint
Uw bestaande werk is veilig
Het migratieproces is ontworpen met behoud in gedachten:
- Actieve wijzigingen in
openspec/changes/— Volledig behouden. U kunt deze voortzetten met OPSX-commando's. - Gearchiveerde wijzigingen — Onaangeroerd. Uw geschiedenis blijft intact.
- Hoofdspecificaties in
openspec/specs/— Onaangeroerd. Dit zijn uw bron van waarheid. - Uw inhoud in CLAUDE.md, AGENTS.md, enz. — Behouden. Alleen de OpenSpec-markerblokken worden verwijderd; alles wat u hebt geschreven blijft staan.
Wat wordt verwijderd
Alleen OpenSpec-beheerde bestanden die worden vervangen:
| Wat | Waarom |
|---|---|
| Verouderde slash-commando-mappen/bestanden | Vervangen door het nieuwe skills-systeem |
openspec/AGENTS.md | Verouderde workflow-trigger |
OpenSpec-markers in CLAUDE.md, AGENTS.md, enz. | Niet langer nodig |
Verouderde commandolocaties per tool (voorbeelden — uw tool kan verschillen):
- Claude Code:
.claude/commands/openspec/ - Cursor:
.cursor/commands/openspec-*.md - Devin Desktop, voorheen Windsurf:
.windsurf/workflows/openspec-*.md - Cline:
.clinerules/workflows/openspec-*.md - Roo:
.roo/commands/openspec-*.md - GitHub Copilot:
.github/prompts/openspec-*.prompt.md(alleen IDE-extensies; niet ondersteund in Copilot CLI) - Codex: OpenSpec gebruikt nu de canonieke
.agents/skills/openspec-*-padstructuur. OpenSpec-beheerdeSKILL.md-bestanden onder het vroegere.codex/skills-pad worden alleen gereconcilieerd nadat vervangers bestaan; aangepaste bestanden en afwijkende kopieën blijven op hun plaats. Als een gemarkeerde.agents-boom al OpenSpec-skills bevat, behoudt OpenSpec de bestaande Codex ($openspec-*) of generieke (/openspec-*) weergave in plaats van te gokken op basis van de verouderde map. Selecteercodexexpliciet metopenspec initom het eigendom over te schakelen. Opruiming van verouderde prompts richt zich nog steeds alleen op de toegestane bestandsnamen van OpenSpec in$CODEX_HOME/promptsof~/.codex/prompts. - En anderen (Augment, Continue, Amazon Q, enz.)
De migratie detecteert welke tools u hebt geconfigureerd en ruimt hun verouderde bestanden op.
De verwijderlijst kan lang lijken, maar dit zijn allemaal bestanden die OpenSpec oorspronkelijk heeft aangemaakt. Uw eigen inhoud wordt nooit verwijderd.
Wat uw aandacht vereist
Eén bestand vereist handmatige migratie:
openspec/project.md — Dit bestand wordt niet automatisch verwijderd omdat het projectcontext kan bevatten die u hebt geschreven. U moet:
- De inhoud ervan beoordelen
- Nuttige context verplaatsen naar
openspec/config.yaml(zie de richtlijnen hieronder) - Het bestand verwijderen wanneer u klaar bent
Waarom wij deze wijziging hebben doorgevoerd:
Het oude project.md was passief — agents konden het lezen, hoefden het niet te lezen, en konden vergeten wat ze hadden gelezen. We vonden de betrouwbaarheid inconsistent.
De nieuwe config.yaml-context wordt actief geïnjecteerd in elke OpenSpec-planningsaanvraag. Dit betekent dat uw projectconventies, tech stack en regels altijd aanwezig zijn wanneer de AI artefacten aanmaakt. Hogere betrouwbaarheid.
De afweging:
Omdat context in elke aanvraag wordt geïnjecteerd, wilt u beknopt blijven. Focus op wat echt belangrijk is:
- Tech stack en belangrijke conventies
- Niet voor de hand liggende beperkingen die de AI moet kennen
- Regels die eerder vaak werden genegeerd
Maak u geen zorgen over het perfect krijgen. We leren nog steeds wat hier het beste werkt, en we zullen de contextinjectie verbeteren naarmate we experimenteren.
De migratie uitvoeren
Zowel openspec init als openspec update detecteren verouderde bestanden en begeleiden u door hetzelfde opruimingsproces. Gebruik wat bij uw situatie past:
- Nieuwe installaties gebruiken standaard profiel
core(propose,explore,apply,update,sync,archive). - Gemigreerde installaties behouden uw eerdere geïnstalleerde workflows door een
custom-profiel te schrijven wanneer nodig.
openspec init gebruiken
Voer dit uit als u nieuwe tools wilt toevoegen of wilt herconfigureren welke tools zijn ingesteld:
openspec initHet init-commando detecteert verouderde bestanden en begeleidt u door de opruiming:
Upgrading to the new OpenSpec
OpenSpec now uses agent skills, the emerging standard across coding
agents. This simplifies your setup while keeping everything working
as before.
Files to remove
No user content to preserve:
• .claude/commands/openspec/
• openspec/AGENTS.md
Files to update
OpenSpec markers will be removed, your content preserved:
• CLAUDE.md
• AGENTS.md
Needs your attention
• openspec/project.md
We won't delete this file. It may contain useful project context.
The new openspec/config.yaml has a "context:" section for planning
context. This is included in every OpenSpec request and works more
reliably than the old project.md approach.
Review project.md, move any useful content to config.yaml's context
section, then delete the file when ready.
? Upgrade and clean up legacy files? (Y/n)Wat er gebeurt als u ja zegt:
- Verouderde slash-commando-mappen worden verwijderd
- OpenSpec-markers worden verwijderd uit
CLAUDE.md,AGENTS.md, enz. (uw inhoud blijft staan) openspec/AGENTS.mdwordt verwijderd- Nieuwe skills worden geïnstalleerd in
.claude/skills/ openspec/config.yamlwordt aangemaakt met een standaard-schema
openspec update gebruiken
Voer dit uit als u alleen wilt migreren en uw bestaande tools naar de nieuwste versie wilt bijwerken:
openspec updateHet update-commando detecteert en ruimt ook verouderde artefacten op, en werkt daarna gegenereerde skills/commando's bij om ze af te stemmen op uw huidige profiel en leveringsinstellingen.
Niet-interactieve / CI-omgevingen
Voor gescripteerde migraties:
openspec init --force --tools claudeDe --force-vlag slaat prompts over en accepteert opruiming automatisch.
Dit omvat opruiming van OpenSpec-beheerde Codex-promptbestanden in de globale Codex-promptmap. Opruiming richt zich alleen op de toegestane verouderde Codex-promptbestandsnamen van OpenSpec, verwijdert ze alleen nadat vervangende .agents/skills/openspec-*-skills bestaan, en behoudt alle andere bestanden.
project.md migreren naar config.yaml
Het oude openspec/project.md was een vrijvormig markdown-bestand voor projectcontext. Het nieuwe openspec/config.yaml is gestructureerd en — cruciaal — wordt geïnjecteerd in elke planningsaanvraag, zodat uw conventies altijd aanwezig zijn wanneer de AI werkt.
Vóór (project.md)
# Project Context
This is a TypeScript monorepo using React and Node.js.
We use Jest for testing and follow strict ESLint rules.
Our API is RESTful and documented in docs/api.md.
## Conventions
- All public APIs must maintain backwards compatibility
- New features should include tests
- Use Given/When/Then format for specificationsNa (config.yaml)
schema: spec-driven
context: |
Tech stack: TypeScript, React, Node.js
Testing: Jest with React Testing Library
API: RESTful, documented in docs/api.md
We maintain backwards compatibility for all public APIs
rules:
proposal:
- Include rollback plan for risky changes
specs:
- Use Given/When/Then format for scenarios
- Reference existing patterns before inventing new ones
design:
- Include sequence diagrams for complex flowsBelangrijke verschillen
| project.md | config.yaml |
|---|---|
| Vrijvormig markdown | Gestructureerd YAML |
| Eén tekstblok | Aparte context en regels per artefact |
| Onduidelijk wanneer het wordt gebruikt | Context verschijnt in ALLE artefacten; regels verschijnen alleen in overeenkomende artefacten |
| Geen schemakeuze | Expliciet schema:-veld stelt standaardworkflow in |
Wat te behouden, wat te laten vallen
Wees selectief bij de migratie. Vraag uzelf: "Heeft de AI dit nodig voor elke planningsaanvraag?"
Goede kandidaten voor context:
- Tech stack (talen, frameworks, databases)
- Belangrijke architectuurpatronen (monorepo, microservices, enz.)
- Niet voor de hand liggende beperkingen ("we kunnen bibliotheek X niet gebruiken omdat...")
- Kritieke conventies die vaak worden genegeerd
Verplaats naar rules:
- Artefact-specifieke opmaak ("gebruik Given/When/Then in specificaties")
- Reviewcriteria ("voorstellen moeten een rollback-plan bevatten")
- Deze verschijnen alleen voor het overeenkomende artefact, waardoor andere aanvragen lichter blijven
Volledig weglaten
- Algemene best practices die de AI al kent
- Uitgebreide uitleg die samengevat kan worden
- Historische context die geen invloed heeft op het huidige werk
Migratiestappen
config.yaml aanmaken (als het nog niet door init is aangemaakt):
yamlschema: spec-drivenUw context toevoegen (wees beknopt — dit gaat in elke aanvraag):
yamlcontext: | Uw projectachtergrond komt hier. Focus op wat de AI echt moet weten.Regels per artefact toevoegen (optioneel):
yamlrules: proposal: - Uw voorstel-specifieke richtlijnen specs: - Uw specificatie-schrijfrulesproject.md verwijderen zodra u alles nuttige hebt verplaatst.
Denk er niet te lang over na. Begin met de essentials en iterer. Als u merkt dat de AI iets belangrijks mist, voeg het toe. Als context te opgeblazen voelt, knip het terug. Dit is een levend document.
Hulp nodig? Gebruik deze prompt
Als u zich afvraagt hoe u uw project.md moet distilleren, vraag uw AI-assistent:
I'm migrating from OpenSpec's old project.md to the new config.yaml format.
Here's my current project.md:
[paste your project.md content]
Please help me create a config.yaml with:
1. A concise `context:` section (this gets injected into every planning request, so keep it tight—focus on tech stack, key constraints, and conventions that often get ignored)
2. `rules:` for specific artifacts if any content is artifact-specific (e.g., "use Given/When/Then" belongs in specs rules, not global context)
Leave out anything generic that AI models already know. Be ruthless about brevity.De AI helpt u te bepalen wat essentieel is en wat kan worden teruggedrongen.
De nieuwe commando's
Beschikbaarheid van commando's is profielafhankelijk:
Standaard (core-profiel):
| Commando | Doel |
|---|---|
/opsx:propose | Maak een wijziging aan en genereer planningsartefacten in één stap |
/opsx:explore | Denk na over ideeën zonder structuur |
/opsx:apply | Implementeer taken uit tasks.md |
/opsx:update | Herzie de planningsartefacten van een wijziging en houd ze coherent |
/opsx:sync | Voeg delta-specificaties samen met hoofdspecificaties |
/opsx:archive | Finaliseer en archiveer de wijziging |
Uitgebreide workflow (aangepaste selectie):
| Commando | Doel |
|---|---|
/opsx:new | Start een nieuw wijzigingsscaffold |
/opsx:continue | Maak het volgende artefact aan (één tegelijk) |
/opsx:ff | Fast-forward — maak planningsartefacten tegelijk aan |
/opsx:verify | Valideer of de implementatie overeenkomt met specificaties |
/opsx:bulk-archive | Archiveer meerdere wijzigingen tegelijk |
/opsx:onboard | Begeleide eind-tot-eind onboardingsworkflow |
Schakel uitgebreide commando's in met openspec config profile, en voer daarna openspec update uit.
Commandomapping vanaf verouderde versie
| Verouderd | OPSX-equivalent |
|---|---|
/openspec:proposal | /opsx:propose (standaard) of /opsx:new dan /opsx:ff (uitgebreid) |
/openspec:apply | /opsx:apply |
/openspec:archive | /opsx:archive |
Nieuwe mogelijkheden
Deze mogelijkheden maken deel uit van de uitgebreide workflow-commandoset.
Granulaire artefactcreatie:
/opsx:continueMaakt één artefact tegelijk aan op basis van afhankelijkheden. Gebruik dit wanneer u elke stap wilt beoordelen.
Verkenmodus:
/opsx:exploreDenk na over ideeën met een partner voordat u zich committeert aan een wijziging.
De nieuwe architectuur begrijpen
Van gefaseerd naar vloeiend
De oude workflow forceerde een lineaire voortgang:
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ PLANNINGS- │ ───► │ IMPLEMENTATIE│ ───► │ ARCHIVERINGS-│
│ FASE │ │ FASE │ │ FASE │
└──────────────┘ └──────────────┘ └──────────────┘
Als je in de implementatiefase zit en realiseert dat het ontwerp verkeerd is?
Helaas. Fase-poorten laten je niet eenvoudig teruggaan.OPSX gebruikt acties, geen fasen:
┌───────────────────────────────────────────────┐
│ ACTIES (geen fasen) │
│ │
│ new ◄──► continue ◄──► apply ◄──► archive │
│ │ │ │ │ │
│ └──────────┴───────────┴─────────────┘ │
│ willekeurige volgorde │
└───────────────────────────────────────────────┘Afhankelijkheidsgraaf
Artefacten vormen een gerichte graaf. Afhankelijkheden zijn mogelijkmakers, geen poorten:
proposal
(root node)
│
┌─────────────┴─────────────┐
│ │
▼ ▼
specs design
(requires: (requires:
proposal) proposal)
│ │
└─────────────┬─────────────┘
│
▼
tasks
(requires:
specs, design)Wanneer je /opsx:continue uitvoert, controleert het wat klaar is en biedt het volgende artefact aan. Je kunt ook meerdere gereedstaande artefacten in willekeurige volgorde aanmaken.
Skills versus Commando's
Het oude systeem gebruikte tool-specifieke opdrachtbestanden:
.claude/commands/openspec/
├── proposal.md
├── apply.md
└── archive.mdOPSX gebruikt de opkomende skills-standaard:
.claude/skills/
├── openspec-explore/SKILL.md
├── openspec-new-change/SKILL.md
├── openspec-continue-change/SKILL.md
├── openspec-apply-change/SKILL.md
└── ...Skills worden herkend in meerdere AI-codeertools en bieden rijkere metadata.
Codex is volledig op skills gebaseerd in OPSX. OpenSpec genereert niet langer aangepaste Codex-promptbestanden; gebruik in plaats daarvan de gegenereerde .agents/skills/openspec-*-mappen.
Bestaande wijzigingen voortzetten
Je lopende wijzigingen werken naadloos met OPSX-commando's.
Heb je een actieve wijziging van de oude workflow?
/opsx:apply add-my-featureOPSX leest de bestaande artefacten en gaat verder waar je gebleven was.
Wil je meer artefacten toevoegen aan een bestaande wijziging?
/opsx:continue add-my-featureToont wat klaar is om aan te maken op basis van wat al bestaat.
Wil je de status zien?
openspec status --change add-my-featureHet nieuwe configuratiesysteem
Structuur van config.yaml
# Vereist: Standaardschema voor nieuwe wijzigingen
schema: spec-driven
# Optioneel: Projectcontext (max 50KB)
# Wordt in ALLE artefactinstructies geïnjecteerd
context: |
Your project background, tech stack,
conventions, and constraints.
# Optioneel: Regels per artefact
# Wordt alleen in overeenkomende artefacten geïnjecteerd
rules:
proposal:
- Inclusief terugdraaiplan
specs:
- Gebruik het Given/When/Then-formaat
design:
- Documenteer fallback-strategieën
tasks:
- Opsplitsen in brokken van maximaal 2 uurSchemaresolutie
Bij het bepalen welk schema te gebruiken, controleert OPSX in volgorde:
- CLI-vlag:
--schema <naam>(hoogste prioriteit) - Wijzigingsmetadata:
.openspec.yamlin de wijzigingsmap - Projectconfiguratie:
openspec/config.yaml - Standaard:
spec-driven
Beschikbare schema's
| Schema | Artefacten | Meest geschikt voor |
|---|---|---|
spec-driven | proposal → specs → design → tasks | De meeste projecten |
Toon alle beschikbare schema's:
openspec schemasAangepaste schema's
Maak je eigen workflow:
openspec schema init my-workflowOf fork een bestaande:
openspec schema fork spec-driven my-workflowZie Aanpassingen voor details.
Probleemoplossing
"Oude bestanden gedetecteerd in niet-interactieve modus"
Je draait in een CI- of niet-interactieve omgeving. Gebruik:
openspec init --forceCommando's verschijnen niet na migratie
Herstart je IDE. Skills worden gedetecteerd bij het opstarten.
"Onbekende artefact-ID in regels"
Controleer of je rules:-sleutels overeenkomen met de artefact-ID's van je schema:
- spec-driven:
proposal,specs,design,tasks
Voer dit uit om geldige artefact-ID's te zien:
openspec schemas --jsonConfiguratie wordt niet toegepast
- Zorg ervoor dat het bestand op
openspec/config.yamlstaat (niet.yml) - Valideer de YAML-syntax
- Configuratiewijzigingen worden onmiddellijk van kracht—geen herstart nodig
project.md niet gemigreerd
Het systeem behoudt project.md bewust omdat het je eigen inhoud kan bevatten. Bekijk het handmatig, verplaats nuttige onderdelen naar config.yaml, en verwijder het daarna.
Wil je zien wat er zou worden opgeschoond?
Voer init uit en weiger de opschoonprompt—je ziet de volledige detectiesamenvatting zonder dat er wijzigingen worden aangebracht.
Snel referentie
Bestanden na migratie
project/
├── openspec/
│ ├── specs/ # Ongewijzigd
│ ├── changes/ # Ongewijzigd
│ │ └── archive/ # Ongewijzigd
│ └── config.yaml # NIEUW: Projectconfiguratie
├── .claude/
│ └── skills/ # NIEUW: OPSX skills
│ ├── openspec-propose/ # default core profile
│ ├── openspec-explore/
│ ├── openspec-apply-change/
│ ├── openspec-update-change/
│ ├── openspec-sync-specs/
│ ├── openspec-archive-change/
│ └── ... # uitgebreid profiel voegt new/continue/ff/etc. toe
├── CLAUDE.md # OpenSpec-markeringen verwijderd, jouw inhoud behouden
└── AGENTS.md # OpenSpec-markeringen verwijderd, jouw inhoud behoudenWat is verdwenen
.claude/commands/openspec/— vervangen door.claude/skills/openspec/AGENTS.md— verouderdopenspec/project.md— migreer naarconfig.yaml, verwijder daarna- OpenSpec-markeringsblokken in
CLAUDE.md,AGENTS.md, etc.
Commandospiekbriefje
/opsx:propose Snel starten (standaard kernprofiel)
/opsx:apply Taken implementeren
/opsx:archive Afronden en archiveren
# Uitgebreide workflow (indien ingeschakeld):
/opsx:new Een wijziging opzetten
/opsx:continue Volgend artefact aanmaken
/opsx:ff Planartefacten aanmakenHulp verkrijgen
- Discord: discord.gg/YctCnvvshC
- GitHub Issues: github.com/Fission-AI/OpenSpec/issues
- Documentatie: docs/opsx.md voor de volledige OPSX-referentie