1. Typen (src/types.ts)
- [x] 1.1 Bestehende OpenAPI-Typen (
OpenSpecPluginOptions,ParsedEndpoint,ParsedSpec) durch OpenSpec-Typen ersetzen:CapabilitySpec,Change,ChangeArtifact,OpenSpecFolder,OpenSpecPluginOptions - [x] 1.2
NavItemundSidebarItembeibehalten (unverändert)
2. Folder-Reader (src/utils.ts)
- [x] 2.1 Bestehende OpenAPI-Funktionen entfernen (
loadSpecFile,extractEndpoints,parseSpec,slugify,generateEndpointMarkdown,generateIndexMarkdown,groupEndpointsByTag) - [x] 2.2
readOpenSpecFolder(dir: string): OpenSpecFolderimplementieren: scanntspecs/,changes/,changes/archive/ - [x] 2.3
.openspec.yamlmitjs-yamlauslesen für Change-Metadaten (created,status) - [x] 2.4
generateSpecPage(spec: CapabilitySpec): stringimplementieren (H1 + Spec-Inhalt) - [x] 2.5
generateSpecsIndexPage(specs: CapabilitySpec[], outDir: string): stringimplementieren - [x] 2.6
generateChangeIndexPage(change: Change, outDir: string): stringimplementieren - [x] 2.7
generateChangesIndexPage(folder: OpenSpecFolder, outDir: string): stringimplementieren (aktive + Archiv-Abschnitt) - [x] 2.8
generateOpenSpecSidebar(specDir: string, options?): SidebarItem[]implementieren - [x] 2.9
openspecNav(specDir: string, options?): NavItemimplementieren
3. Plugin (src/plugin.ts)
- [x] 3.1 Bestehende OpenAPI-Implementierung von
openspec()undgenerateSidebarFromSpec()entfernen - [x] 3.2 Neues
openspec(options: OpenSpecPluginOptions): Pluginimplementieren: liestopenspec/-Ordner und schreibt alle Seiten inconfigResolved - [x] 3.3 Spec-Seiten schreiben: für jede Canonical Spec
<outDir>/specs/<cap>/index.md - [x] 3.4 Specs-Index schreiben:
<outDir>/specs/index.md - [x] 3.5 Change-Seiten schreiben: für jeden aktiven Change Artefakte und
index.mdkopieren - [x] 3.6 Changes-Index schreiben:
<outDir>/changes/index.mdmit aktiven + archivierten Changes - [x] 3.7 Root-Index schreiben:
<outDir>/index.mdmit Links zu Specs und Changes
4. Exports (src/index.ts)
- [x] 4.1
generateSidebarFromSpecundopenspecNav(alte OpenAPI-Version) durchgenerateOpenSpecSidebarundopenspecNav(neue OpenSpec-Version) ersetzen - [x] 4.2 OpenAPI-Typen aus Exports entfernen; neue OpenSpec-Typen exportieren
5. Tests (src/tests/)
- [x] 5.1 Bestehende Tests und
sample.yaml-Fixture entfernen - [x] 5.2 Miniatur-
openspec/-Fixture erstellen: zwei Specs, zwei aktive Changes, ein archivierter Change - [x] 5.3 Tests für
readOpenSpecFolder()schreiben - [x] 5.4 Tests für
generateSpecPage(),generateSpecsIndexPage()schreiben - [x] 5.5 Tests für
generateChangesIndexPage()schreiben - [x] 5.6 Tests für
generateOpenSpecSidebar()schreiben - [x] 5.7 Tests für
openspecNav()schreiben
6. Demo-Site (docs/)
- [x] 6.1
docs/.vitepress/config.tsauf neue API umstellen:openspecNavundgenerateOpenSpecSidebarstatt bisheriger Funktionen - [x] 6.2
docs/petstore.yamlentfernen (nicht mehr benötigt) - [x] 6.3 Lokalen Build prüfen:
bun run build && bun run docs:build
7. Abschluss
- [x] 7.1
bun run lint— TypeScript-Fehler beheben - [x] 7.2
bun test— alle Tests grün - [x] 7.3 Version in
package.jsonauf0.2.0bumpen (Breaking Change)