create-form-data-handling — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited create-form-data-handling (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Read @.ai/Component/Forms/CONTEXT.md for form conventions (IdentifiableObject pattern, service registration).
Create src/Core/Form/IdentifiableObject/DataProvider/{Domain}FormDataProvider.php implementing FormDataProviderInterface:
getData(int $id): array — dispatch Get{Domain}ForEditing query via query bus, map the result DTO to the form's expected array structuregetDefaultData(): array — return sensible defaults for the create form (empty strings, null IDs, active => true)Reference: src/Core/Form/IdentifiableObject/DataProvider/TaxFormDataProvider.php (simple)
Create src/Core/Form/IdentifiableObject/DataHandler/{Domain}FormDataHandler.php implementing FormDataHandlerInterface:
create(array $data): mixed — build Add{Domain}Command from $data, dispatch via command bus, return new entity IDupdate(int $id, array $data): void — build Edit{Domain}Command($id), call fluent setters for each field from $data, dispatch$command->setName($data['name'])$command->setLocalizedNames($data['name']) where value is lang-keyed arrayReference: src/Core/Form/IdentifiableObject/DataHandler/TaxFormDataHandler.php (simple)
!$form->isValid(), re-render the form — Twig displays errors automatically via {{ form_errors(field) }}Register in the appropriate DI YAML file:
{Domain}Type — tagged with form.type (usually auto-discovered){Domain}FormDataProvider — with autowire: true, autoconfigure: true{Domain}FormDataHandler — with autowire: true, autoconfigure: truephp bin/console debug:container | grep {domain}_formConventions (DataProvider/DataHandler roles, service registration, IdentifiableObject pattern) are in Forms/CONTEXT.md. Skill-specific reminder:
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.