Layout Planner 1.0.2 — validation

PASS: 10 dependency-free tests under normal Python.
PASS: The same 10 tests under optimized Python (-O), including explicit smoke-test validation.
PASS: 960 page / orientation / arrangement / margin / spacing combinations.
PASS: Python syntax compilation of every packaged module.
PASS: Required publication metadata, complete GPLv3 LICENSE and installable ZIP structure.
PASS: Bandit 1.9.4, default recursive scan: 0 findings, 0 scan errors.
PASS: detect-secrets 1.5.0, all package files, without credential verification: 0 findings.
No scanner skip rules, ignore comments, baseline suppression or excluded test files are used.

Version 1.0.1 local scan: 8 B101 findings in smoke-test checks and 1 B608 SQL-pattern finding in generated English help text.
Version 1.0.2 replaces those smoke checks with explicit validation and rewords the help text. The plugin contains no SQL execution at that location.

NOT RUN: Native QGIS / Qt UI and print-layout integration (QGIS is not installed in the build environment).
Run layout_planner.selftest.run() in the QGIS Python Console for native integration checks.
NOT RUN: The QGIS repository's own rescan. Its exact scanner configuration can differ from local defaults. Upload the new version and inspect its server results.
