1. Types (src/types.ts)
- [x] 1.1
srcDir?: stringzuOpenSpecPluginOptionshinzufügen (default:process.cwd())
2. Plugin-Kern (src/plugin.ts)
- [x] 2.1 Datei-Schreib-Logik aus
configResolvedin eine exportierte FunktiongenerateOpenSpecPages(options)extrahieren - [x] 2.2
generateOpenSpecPages()synchron implementieren (kein async): nutzt die bestehendenwriteFile/copyFile-Helfer - [x] 2.3
srcDiraus Options auflösen:options.srcDir ?? process.cwd() - [x] 2.4
configResolved-Hook vereinfachen: ruft interngenerateOpenSpecPages()auf (für Dev-Server / Hot Reload)
3. Exports (src/index.ts)
- [x] 3.1
generateOpenSpecPagesaus./plugin.jsre-exportieren
4. Demo-Site (docs/.vitepress/config.ts)
- [x] 4.1
generateOpenSpecPagesausvitepress-plugin-openspecimportieren - [x] 4.2
generateOpenSpecPages({ specDir, outDir: 'openspec', srcDir: path.resolve(__dirname, '..') })am Anfang der Datei aufrufen (vordefineConfig)
5. Tests (src/tests/)
- [x] 5.1 Smoke-Test für
generateOpenSpecPages(): schreibt Dateien in ein temp-Verzeichnis, prüft dass index.md existiert
6. Verify
- [x] 6.1
bun run build— Plugin-Build erfolgreich - [x] 6.2
bun test— alle Tests grün (29/29) - [x] 6.3
bun run docs:build(einmaliger Aufruf) — Build erfolgreich ohne vorherige Dateien