create-twig-form-template — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited create-twig-form-template (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/Twig/CONTEXT.md for template conventions (layout, flash messages, routes, form themes).
Create src/PrestaShopBundle/Resources/views/Admin/{Section}/{Domain}/form.html.twig:
{% extends '@PrestaShop/Admin/layout.html.twig' %}
{% block content %}
{{ form_start(form) }}
{{ form_widget(form) }}
<button type="submit" class="btn btn-primary">
{{ 'Save'|trans({}, 'Admin.Actions') }}
</button>
{{ form_end(form) }}
{% endblock %}enctype="multipart/form-data" (see CONTEXT.md)Reference: src/PrestaShopBundle/Resources/views/Admin/Improve/International/Tax/ (simple), src/PrestaShopBundle/Resources/views/Admin/Sell/Catalog/Manufacturer/ (with image)
When specific fields need custom rendering beyond Symfony defaults:
form_theme option directly on the form (PrestaShop custom option) — usually in the controller when building the form, or in the form type's configureOptions(). Symfony picks up the theme automatically; no {% form_theme %} directive needed in the Twig file.{% form_theme form 'Admin/{Section}/{Domain}/{domain}_theme.html.twig' %}
{% block _{field_id}_widget %}...{% endblock %}Form themes are scoped to this form only — no global side effects.
If the form needs JavaScript (for initComponents or Vue):
{% block javascripts %}
{{ parent() }}
<script src="{{ asset('themes/new-theme/public/{domain}.bundle.js') }}"></script>
{% endblock %}The asset path must match the webpack entry name.
Conventions (layout, path(), single form_widget(form), NavigationTabType auto-rendering, file upload enctype, form theme block naming, JS asset inclusion) are in Twig/CONTEXT.md. Skill-specific reminders:
form_end(form)~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.