1. Make a trusted data folder
New-Item -ItemType Directory -Force C:\VFS-AI\data | Out-Null
Save the following files as UTF-8. In Notepad, use Save as type: All files so Windows does not add .txt.
2. Create training.csv
The header must be exactly utterance,intent. Use one user question per row. Quote text containing a comma or quote. Each intent needs at least two training rows.
utterance,intent
"How do I add a file to a VFS image?",vfs_build
"Which build option maps a host file?",vfs_build
"What does a Monk fallback rule do?",monk_policy
"When is a Monk rule evaluated?",monk_policy
Intent names begin with a letter and may contain letters, numbers, dots, underscores, and hyphens. Keep one meaning per intent. The same normalized question cannot have two different intents.
3. Create benchmark.csv independently
The benchmark uses the same columns, but its questions must not be copied or lightly duplicated from training. It must cover every training intent.
utterance,intent
"What command packages local content as Federation Image v2?",vfs_build
"Explain the policy phase used after exact resolution",monk_policy
What Studio rechecks from the retained branch bundle
Signing does not make the CSV claims trustworthy by itself. Before signing or Chronicle registration, Studio opens the actual training.csv, benchmark.csv, and model.json bytes and requires all of the following:
- both CSV files are UTF-8 and begin with the exact two-column header
utterance,intent; - every row has exactly two nonempty bounded fields and every intent is a valid label;
- the ordered labels inside
model.jsonexactly match the signed manifest; - training and benchmark each cover the complete model/manifest label set—no missing or unexpected label;
- the actual row counts and benchmark SHA-256 match the manifest evidence; and
- no case-folded, whitespace-normalized utterance occurs in both training and benchmark, even under different labels.
A mismatch stops the bundle before trust or accuracy policy can make it acceptable. Correct the source data and train into a new directory; do not edit a signed bundle.
4. Create knowledge.json
Knowledge contains the reviewed answer shown after an intent is recognized. Every training intent needs at least one article.
{
"schema": "vfs-perl-nn-knowledge",
"version": 1,
"name": "My reviewed VFS help",
"articles": [
{
"id": "vfs-build-basics",
"title": "Build a VFS image",
"intent": "vfs_build",
"answer": "Map each virtual path to one reviewed host file, then run the VFS build command.",
"tags": ["VFS", "build"],
"queries": ["How do I package a file?"]
},
{
"id": "monk-policy-basics",
"title": "Understand Monk fallback",
"intent": "monk_policy",
"answer": "Fallback rules are considered only after the earlier resolution conditions permit that phase.",
"tags": ["Monk", "policy"],
"queries": ["What is a fallback rule?"]
}
]
}
Optional specialist action recipes
A specialist knowledge article may add workspace_actions: an array of 1 to 64 exact, reviewed Chronicle action objects. Each object contains only kind, payload, and reason. The classifier retrieves the stored recipe; it does not synthesize IDs, names, or paths from the question. The Perl response exposes the array as proposal-only data and never executes it.
"workspace_actions": [
{
"kind": "rename_project",
"payload": {
"project_id": "exact-project-uuid-from-the-workspace",
"name": "Production Federation"
},
"reason": "Use the reviewed production-facing root name."
}
]
Permitted families cover project, source, mount, collision, and build-profile configuration. Shell/code execution, arbitrary writes, trust decisions, Monk-policy changes, proposal resolution, build, and release actions are not part of the schema. See the complete agent reconfiguration walkthrough before authoring a recipe.
5. Point Studio at the files
- Open AI Workbench… and choose Edit settings….
- On Datasets, put
C:\VFS-AI\data\training.csvunder Training sources,C:\VFS-AI\data\knowledge.jsonunder Knowledge JSON, andC:\VFS-AI\data\benchmark.csvunder Benchmark sources. Put one source path per line. - On Security, set Workspace root to
C:\VFS-AI. All three files must stay below this trusted root. - Choose Apply settings, choose a configuration path such as
C:\VFS-AI\assistant-config.json, then choose Save JSON. - Choose Run preflight. Correct every error before training.
6. Understand what this small sample proves
The sample is useful for learning the file formats and preflight. It is not a releasable replacement for the package’s main assistant. A main candidate must retain all required Perl, VFS, Monk, Loom, Spindle, runtime, agent, and general-help intents and must pass the configured accuracy, macro-F1, and per-intent recall gates. Narrow data belongs in a specialist branch.
Accepted record formats
| Format | Shape | Use |
|---|---|---|
| CSV | Exactly utterance,intent | Easiest to edit in a spreadsheet or text editor. |
| JSON | A records array, or a vfs-perl-nn-training wrapper containing it | Good for generated datasets. |
| JSONL / NDJSON | One {"utterance":"…","intent":"…"} object per nonblank line | Good for append-oriented tooling. |
Preflight checklist
- All input is valid UTF-8 and stays under the configured workspace root.
- There are at least two intents and at least two training rows per intent.
- The benchmark covers every training intent and has no normalized training overlap. A reconfiguration agent has at least 8 independent rows and preserves its accepted comparison set for later versions.
- Knowledge has at least one reviewed article for every intent and no unknown intent.
- Every optional workspace action uses a permitted kind, exact existing IDs where required, a bounded payload, and a clear review reason.
- No passwords, private keys, access tokens, or other detected secrets appear in the data.
- Byte, row, parameter, worker, and optimizer-update limits remain within the selected security profile.