# Capability Matrix

Plugin: `OstCapabilityDataExport`

Capability matrix derived for OstCapabilityDataExport with 10 capabilities.

## Selected Capabilities

### Shopware plugin runtime

- Category: `foundation`
- Description: Provides the mandatory Shopware plugin bootstrap, metadata, and service wiring.
- Validation focus:
  - `Composer metadata validity`
  - `Plugin bootstrap syntax and activation readiness`

### Configurable plugin surface

- Category: `foundation`
- Description: Exposes deterministic configuration, documentation, and installable defaults.
- Validation focus:
  - `Documentation completeness`
  - `Store-readiness metadata checks`

### Repository-side QA coverage

- Category: `verification`
- Description: Requires static analysis, PHPUnit coverage, and repeatable QA tooling in the repository workspace.
- Validation focus:
  - `Composer validate + autoload dump`
  - `PHP lint, PHPStan, PHP-CS-Fixer, PHPUnit`

### Runtime-only release packaging

- Category: `verification`
- Description: Packages only runtime files into the release ZIP and keeps QA/browser assets repository-local.
- Validation focus:
  - `Release ZIP exists and contains runtime files only`
  - `Store checklist rejects dev and browser artifacts in packaged output`

### Admin API endpoint

- Category: `entrypoint`
- Description: Provides authenticated administration/API routes for plugin functionality.
- Validation focus:
  - `Authenticated admin API smoke request`
  - `Route-scope compatibility and ACL assertions`
- Evidence files:
  - `src/Controller/DataExportController.php`
  - `src/Resources/config/routes.xml`

### CSV export

- Category: `business`
- Description: Builds streamed or downloadable CSV output with deterministic field mapping.
- Validation focus:
  - `CSV headers, delimiter, and payload assertions`
  - `Export request and file naming coverage`
- Evidence files:
  - `src/Service/CsvWriter.php`
  - `src/Service/ExportRequest.php`
  - `src/Service/ExportRequestFactory.php`
  - `tests/Service/CsvWriterTest.php`
  - `tests/Service/ExportRequestFactoryTest.php`

### DAL repository access

- Category: `data`
- Description: Reads Shopware entities through DAL repositories or sales-channel repositories.
- Validation focus:
  - `Repository criteria and entity mapping assertions`
  - `Static analysis for repository typing compatibility`

### Entity and field discovery

- Category: `data`
- Description: Discovers available entities or fields dynamically before export or reporting operations.
- Validation focus:
  - `Entity listing and field metadata assertions`
  - `Preview payload coverage for discovered field sets`
- Evidence files:
  - `src/Service/EntityMetadataService.php`

### Browser E2E smoke

- Category: `verification`
- Description: Ships Playwright-based browser smoke assets for generated plugin verification.
- Validation focus:
  - `Generated Playwright smoke flow`
  - `run-browser-tests.sh execution against Dockware`
- Evidence files:
  - `package.json`
  - `playwright.config.ts`
  - `scripts/run-browser-tests.sh`
  - `tests/e2e/admin-smoke.spec.ts`
  - `tests/e2e/data-export.spec.ts`

### Product feed export

- Category: `business`
- Description: Maps product feed fields such as ordernumber, category, attr63, link, and image URLs.
- Validation focus:
  - `Feed-field mapping assertions for ordernumber/category/attr63/link/images`
  - `Canonical storefront URL and media-resolution checks`

## Validation Focus

- `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`
- `Authenticated admin API smoke request`
- `Route-scope compatibility and ACL assertions`
- `CSV headers, delimiter, and payload assertions`
- `Export request and file naming coverage`
- `Repository criteria and entity mapping assertions`
- `Static analysis for repository typing compatibility`
- `Entity listing and field metadata assertions`
- `Preview payload coverage for discovered field sets`
- `Generated Playwright smoke flow`
- `run-browser-tests.sh execution against Dockware`
- `Feed-field mapping assertions for ordernumber/category/attr63/link/images`
- `Canonical storefront URL and media-resolution checks`

## Repository-Only Artifacts

- `tests/`
- `phpunit.xml`
- `phpunit.xml.dist`
- `phpstan.neon`
- `.php-cs-fixer.php`
- `.php-cs-fixer.dist.php`
- `composer.qa.json`
- `package.json`
- `playwright.config.ts`
- `scripts/`
- `tests/e2e/`
- `scripts/run-browser-tests.sh`

## Release Excludes

- `tests`
- `phpunit.xml`
- `phpunit.xml.dist`
- `phpstan.neon`
- `.php-cs-fixer.php`
- `.php-cs-fixer.dist.php`
- `composer.qa.json`
- `package.json`
- `playwright.config.ts`
- `scripts`
