# Implementation Spec: OstCapabilityDataExport

## Objective
Erstelle ein Shopware 6 Plugin fuer komfortable CSV Exporte beliebiger DAL Entit

## Feature Scope
- Configurable CSV export for arbitrary Shopware DAL entity data
- Entity and field selection with optional filters, sorting, and scoped ID lists
- Preview endpoint and downloadable CSV with configurable delimiter, BOM, and file naming
- Clear plugin configuration with deterministic defaults
- Automated QA and compatibility checks in CI
- Store-ready documentation and release artifacts

## Acceptance Criteria
- Implemented and testable: Configurable CSV export for arbitrary Shopware DAL entity data
- Implemented and testable: Entity and field selection with optional filters, sorting, and scoped ID lists
- Implemented and testable: Preview endpoint and downloadable CSV with configurable delimiter, BOM, and file naming
- Implemented and testable: Clear plugin configuration with deterministic defaults
- Implemented and testable: Automated QA and compatibility checks in CI
- Implemented and testable: Store-ready documentation and release artifacts
- No release packaging unless all gates are green.
- Generated plugin passes store readiness checks without blockers.

## Quality Gates
- composer validate --no-check-publish
- composer dump-autoload -o
- PHP lint on src/tests
- vendor/bin/php-cs-fixer fix --dry-run --diff --allow-unsupported-php-version=yes
- vendor/bin/phpstan analyse --no-progress
- vendor/bin/phpunit
- Composer metadata validity
- Plugin bootstrap syntax and activation readiness
- Documentation completeness
- Store-readiness metadata checks
- Composer validate + autoload dump
- PHP lint, PHPStan, PHP-CS-Fixer, PHPUnit
- Release ZIP exists and contains runtime files only
- Store checklist rejects dev and browser artifacts in packaged output
- CSV headers, delimiter, and payload assertions
- Export request and file naming coverage

## Test Plan
- Unit tests (PHPUnit)
- Static analysis (PHPStan, configured levels)
- Code style checks (PHP-CS-Fixer)
- Browser E2E tests (Playwright)
- Dockware compatibility matrix (Shopware/PHP)
- Capability validation: Composer metadata validity
- Capability validation: Plugin bootstrap syntax and activation readiness
- Capability validation: Documentation completeness
- Capability validation: Store-readiness metadata checks
- Capability validation: Composer validate + autoload dump
- Capability validation: PHP lint, PHPStan, PHP-CS-Fixer, PHPUnit
- Capability validation: Release ZIP exists and contains runtime files only
- Capability validation: Store checklist rejects dev and browser artifacts in packaged output
- Capability validation: CSV headers, delimiter, and payload assertions
- Capability validation: Export request and file naming coverage

## Store Readiness Checklist
- Plugin icon exists
- Store documentation generated
- Support contact provided
- Release ZIP artifact generated
- Strict store policy enabled

## Architecture Hints
- Plugin root class `OstCapabilityDataExport` with service registration via DI.
- Feature logic in dedicated services with explicit error handling.
- Separation between administration UI, API/controller layer, and domain service.
- Definition registry should provide entity metadata and allowed scalar export fields dynamically.
- Export service should resolve repositories by entity name, apply optional filters/sorting, and paginate deterministically.
- Preview and download endpoints should share one request model so users get consistent CSV output.
- Capability Shopware plugin runtime: Provides the mandatory Shopware plugin bootstrap, metadata, and service wiring.
- Capability Configurable plugin surface: Exposes deterministic configuration, documentation, and installable defaults.
- Capability Repository-side QA coverage: Requires static analysis, PHPUnit coverage, and repeatable QA tooling in the repository workspace.
- Capability Runtime-only release packaging: Packages only runtime files into the release ZIP and keeps QA/browser assets repository-local.
- Capability CSV export: Builds streamed or downloadable CSV output with deterministic field mapping.

## Global Architecture Standards
# Architecture Standards

## Grundsaetze

- Shopware-Plugins sollen deterministisch, wartbar und store-tauglich aufgebaut sein.
- Die Plugin-Struktur folgt der ueblichen Trennung in `src`, `tests`, `docs`, `scripts` und `Resources`.
- Fachlogik gehoert in Services oder klar abgegrenzte Module, nicht in duenne Controller oder Bootstrap-Klassen.

## Standardstruktur

- Plugin-Hauptklasse unter `src/<PluginName>.php`
- Service-Definitionen in `src/Resources/config/services.xml`
- Metadaten in `src/Resources/config/plugin.xml`
- Dokumentation in `README.md` und `docs/*`
- QA-Konfigurationen fuer PHPUnit, PHPStan und PHP-CS-Fixer

## Entwicklungsstandards

- Konfiguration mit sinnvollen Defaults und klarer Benennung
- Fehlerszenarien und Eingabevalidierung explizit behandeln
- Keine unnötigen Seiteneffekte im Installations- oder Aktivierungspfad
- Datenintensive Workflows muessen Pagination, Batching oder Streaming frueh beruecksichtigen
- Tests fokussieren auf Kernfunktion, Regressionen und Kompatibilitaet

## Release-Standards

- Release-Artefakt ausschliesslich nach gruener QA/MATRIX
- Preview und GitHub nur nach formaler Freigabe bzw. aktiviertem Workflow
- Dokumente muessen den konkreten Plugin-Nutzen erklaeren, nicht den Generator

## Agent Guidance
# Agent Roles

## Requirements and Spec Agent

- normalisiert den eingegebenen Anforderungstext
- extrahiert Features, Akzeptanzkriterien und Kontext
- fuehrt globale Standards aus `docs/requirements.md`, `docs/acceptance-criteria.md` und `docs/architecture.md` zusammen

## Market Research Agent

- fuehrt Markt- und Wettbewerbsanalyse fuer das aktuelle Plugin durch
- liefert Wettbewerber, Quellen und Store-Positionierung

## Market Gap Analysis Agent

- leitet aus Markt- und Anforderungsdaten neue Plugin-Chancen und Vermarktungshypothesen ab
- soll nur Vorschlaege mit realem Entwicklungs- oder Vermarktungsmehrwert liefern

## Scope Risk Review Agent

- prueft frueh, ob das Briefing einen klaren MVP-Schnitt zulaesst
- markiert fehlende Eingaben, verdeckte Komplexitaet und QA-Risiken vor der Implementierung

## Release Positioning Agent

- formt Headline, Zielgruppe, Nutzenversprechen und Differenzierungsargumente fuer das Plugin
- soll die Store-Kommunikation schaerfen, ohne unhaltbare Marketingversprechen zu erzeugen

## Implementation Agent

- erzeugt oder ueberarbeitet die eigentliche Plugin-Implementierung
- folgt den globalen Architektur- und Akzeptanzstandards

## Repair Agent

- reagiert auf QA-, Browser- oder Matrix-Fehler
- patcht gezielt und minimal-invasiv auf Basis des Root Cause

## QA and Review Agent

- bewertet Gate-Ergebnisse, Rest-Risiken und Store-Tauglichkeit
- verhindert Veroeffentlichung bei roten Pflicht-Gates

## Codex/OpenAI Handoff

- Web-Orchestrierung wie `Codex Handoff`, `Codex Development` und `Server Validation` gehoeren zur Laufzeitsteuerung
- diese Zustaende sind dokumentiert, aber keine frei konfigurierbaren Built-in-Steps in v1

## Assumptions
- SHOPWARE_VERSION from config matrix: "6.5.8.10".
- PHP_VERSION from php_matrix[6.5]: "8.1".
- TARGET_COMPATIBILITY derived as ">=6.5.8.10 <6.8.0.0".
- NAMESPACE_PREFIX derived from vendor prefix as "Ost".

## Scope and Risk Review
- Keine Eintraege

## Release Positioning
Kein Positionierungs-Headline definiert.

- Keine Eintraege
