What you will make
| Input or output | Role |
|---|---|
content\root | Root project files, including /docs/hello.txt. |
content\plugin | Child project mounted at /plugins/demo. |
federation.vfsworkspace.json | Editable Chronicle design and immutable generation history. |
build\federation.vfsbin | Verified Federation Image v2. |
dist\Example-First-1.0.0 | Self-contained pure-Perl distribution with runtime, tests, help, and the VFS. |
1. Check prerequisites
Open PowerShell. Studio requires 64-bit Python 3.12 or newer. Perl export verification requires perl and prove; Strawberry Perl is one suitable Windows distribution.
py --version
perl -v
prove --version
If a command is not found, install that runtime and open a new PowerShell window.
2. Install and launch Studio
Put the wheel in a writable folder, open PowerShell there, and run:
py -m pip install .\vfs_federation_studio-1.1.5-py3-none-any.whl
py -m vfs_federation.ide
Studio starts maximized. It restores the last valid workspace on later launches.
3. Create the example files
Leave Studio open. In PowerShell, create a project folder under Documents:
$Demo = Join-Path $env:USERPROFILE "Documents\VFS First Federation"
New-Item -ItemType Directory -Force "$Demo\content\root\docs" | Out-Null
New-Item -ItemType Directory -Force "$Demo\content\plugin" | Out-Null
Set-Content -Encoding utf8 "$Demo\content\root\docs\hello.txt" "Hello from the root VFS"
Set-Content -Encoding utf8 "$Demo\content\plugin\plugin.txt" "Hello from the embedded child"
4. Create the Chronicle workspace
- In Studio choose New workspace.
- Select the
VFS First Federationfolder created above. - Use filename
federation.vfsworkspace.json. - Enter Root project name
First Federationand Package namespaceexample.first. - Choose Create workspace.
If that filename already exists, the dialog offers the next unused name. Choose it to create another workspace, or cancel and use Open workspace to continue the existing one.
5. Add the root source
- Choose Design federation.
- Open the Sources tab and choose Add source….
- Select First Federation.
- Set Source file or directory to
content\rootand Virtual root to/. - Choose Save. The change is already persisted as the next Chronicle generation.
6. Add and mount the child project
- On Projects, choose Add project…. Use Project name
Demo Pluginand namespaceexample.first.plugin. - On Sources, choose Add source…. Select Demo Plugin, enter
content\plugin, and use Virtual root/. - On Mounts, choose Add mount….
- Select Parent First Federation, Child Demo Plugin, and prefix
/plugins/demo. - Keep Delivery mode Embedded, Collision policy Error, and Priority
0. Choose Save. - On Build profiles, confirm one row for each project is marked Active, then close the editor.
If you make a mistake, use Undo or Redo in the editor. Each correction is a new saved generation; history is never silently erased.
7. Build the VFS and export Perl
- Choose Build & export on Home, or Export Perl Package on the toolbar.
- Keep VFS image output
build\federation.vfsbinand Perl package parentdist. - Use Perl module
Example::Firstand version1.0.0. - Choose Build + Export Perl. Watch the log until the status says the build completed and was verified.
The child is built before the root. Output is staged and digest-checked before the destination is replaced. Perl syntax checks and generated tests run before the package is accepted. Cancelling leaves the previously committed destination unchanged.
To reproduce the same saved design from PowerShell, use the workspace as the authoritative input:
Set-Location $Demo
py -m vfs_federation_studio.tools.build_cli `
.\build\federation.vfsbin --workspace .\federation.vfsworkspace.json `
--perl-package .\dist --perl-module Example::First --perl-version 1.0.0
8. Independently inspect the image
Return to PowerShell:
Set-Location $Demo
py -m vfs_federation_studio.tools.inspect_cli `
.\build\federation.vfsbin --deep-verify --resolve /docs/hello.txt --trace
py -m vfs_federation_studio.tools.inspect_cli `
.\build\federation.vfsbin --resolve /plugins/demo/plugin.txt --trace
The first command must include verify PASS and a resolve row for /docs/hello.txt. The second trace must resolve through the mounted child. Do not distribute an image that fails deep verification.
9. Test and try the Perl package
Set-Location "$Demo\dist\Example-First-1.0.0"
prove -Ilib -r t
perl .\bin\vfs-perl-assistant --ask "How do I read a VFS file?" --explain
prove must end with Result: PASS or All tests successful. Open the package root README.md for the VFS runtime, share\example-first\assistant\README.md for the actual model measurements and Perl respond() API, and examples\branch_agent\README.md for the exact specialist workflow. Copy the complete Example-First-1.0.0 directory—not selected files—to another machine with Perl to use it without Python or network access.
10. Reopen and continue
Close and launch Studio again. It reopens the last valid workspace. Federation Explorer shows the projects, sources, mount, and active profiles. Use Chronicle Center to inspect generations and recovery candidates. Use Path Resolution Lens on the built image for an interactive trace; click its checked toolbar icon again to hide it.
Optional next steps: train an assistant or a VFS specialist
The exported package already contains the reviewed bundled assistant. To replace the main assistant, follow Prepare assistant CSV and JSON data and Use the AI Workbench. To train a named pure-Perl branch that can return reviewed, proposal-only workspace recipes, follow Train an agent to propose workspace changes. Before such a branch can enter Chronicle review, follow Trust agent signers and set regression limits to trust its signer, sign the retained bundle, and verify admission. Training, signing, quality admission, human review, workspace application, and packaging remain distinct actions.