VFS Federation Studio 0.0.14 engineering handoff
=================================================

Primary change
--------------
The packaged pure-Perl assistant now has a typed configuration/preflight/
training/quality/approval pipeline, package-time and runtime integrity gates,
responsive explanatory configuration UI, and local context help. A refreshed
four-worker checkpoint is the default: 93.10% independent accuracy and 0.9304
macro-F1 over the same 29 required Perl/VFS intents.

Important files
---------------
src/vfs_federation_studio/assistant/configuration.py
src/vfs_federation_studio/assistant/datasets.py
src/vfs_federation_studio/assistant/candidate.py
src/vfs_federation_studio/tools/assistant_cli.py
src/vfs_federation_studio/ui/dialogs/assistant_configuration.py
src/vfs_federation_studio/ui/dialogs/offline_help.py
src/vfs_federation_studio/emitters/perl/package.py
perl_runtime_templates/assistant/bin/plnn-text-train
perl_runtime_templates/assistant/bin/plnn-text-evaluate
perl_runtime_templates/assistant/lib/LaptopNN/PackageGuard.pm
docs/architecture/PERL_NN_CONFIGURATION_CONTRACT.md
docs/architecture/PERL_NN_CONFIGURATION_STATUS_v0.0.14.md

Compatibility and authority
---------------------------
Monk Loom section 12 is unchanged and separate. A replacement main candidate
must preserve all 29 Perl/VFS intent labels. Narrower data belongs in a branch
agent. Main and branch assistants remain advisory and have no execution,
network, autonomous-training, promotion, VFS-commit, or Monk-policy authority.

Verification expectations
-------------------------
1. Run python -m compileall -q src tests scripts.
2. Run the full pytest suite where pytest is installed.
3. Run perl -c for every assistant template module/program.
4. Train a small candidate with workers=2, approve it separately, validate it,
   then prove a changed artifact is rejected.
5. Emit a default Perl package with verify_perl=True and run prove -lr t after
   relocating the generated directory.
6. Change one packaged assistant artifact and prove Package->assistant() fails
   before loading the model.
7. On Windows 11 with PySide6, inspect all eight tabs at 100%, 125%, 150%, and
   200% scaling; resize to the smallest supported window; verify keyboard/F1,
   wrapped help rows, contrast, and screen-reader names.
8. Build a full 29-intent approved candidate and exercise --assistant-bundle.

Assembly results
----------------
The full v0.0.14 candidate completed item 8 with four persistent workers and
scored 93.10% accuracy, 0.9304 macro-F1, 0.75 minimum recall, and 99.14%
top-three accuracy on 116 independent benchmark questions. The strict source
preflight accepted 348 training rows and all 29 required intents without a
warning. The default 58-file and approved-candidate 59-file packages passed 40
generated Perl assertions; the default also passed after relocation and via
MakeMaker. All nine preservation/Chronicle/Monk/direct-training proofs, 93
repository Perl assertions, 92 standalone PLNN assertions, the 19-topic help
contract, and the static responsive-UI contract passed. All 174 Python files
compiled in memory and all 11 assistant Perl programs/modules passed syntax.
The source manifest binds 326 files, excluding itself.

PySide6 and pytest were not installed in the assembly runtime, so items 2 and
7 remain host qualification work and are not claimed as executed here.

Release boundary
----------------
The GUI dialog owns typed active-session state, but Chronicle persistence and
the final build-controller connection remain future integration. The JSON CLI
configuration is the durable build-authoritative path in 0.0.14.

Security reminder
-----------------
SHA-256 manifests detect unexpected asset changes but are not third-party
signatures. Explicit approval is local reviewed promotion. Do not describe the
assistant as a sandbox, authorization mechanism, autonomous agent, or signed
publisher identity.
