Project files and test recipes
Understand the portable folder, selection rules, tests and safe transfer between cloud and local.
Project files and test recipes
A Context Project is a directory of versionable files. The browser starter creates seif.yaml, agents/assistant/AGENT.md, agents/assistant/context.yaml, knowledge/welcome.md and an example experiment. Keep the authoring folder in Git; generated .seif/, .workstation/ and builds/ data stays out of it.
| File | Purpose | First useful change |
|---|---|---|
seif.yaml | Project identity, sources and environments | Give a source a clear name and point it at the knowledge folder. |
agents/<id>/AGENT.md | The agent's purpose and instructions | State the job, audience and boundaries. |
agents/<id>/context.yaml | Context layers, profiles, selection rules and budget | Include the knowledge the agent needs and exclude private layers from public tasks. |
knowledge/*.md | Source material, split into addressable sections | Put one policy or procedure under each ## heading. |
tests/*.ctx.md | Deterministic Context Tests | Require a policy and forbid a sensitive layer for a representative query. |
experiments/*.exp.yaml | Optional local experiments | Compare budgets or retrieval behavior before changing release rules. |
The browser lets you edit Markdown, YAML and JSON files in this project. Save checks the previous file digest, so a second edit cannot silently overwrite a newer revision. Validation rejects malformed project files, unsafe paths and likely secrets. The cloud accepts only project-contained inline, file and folder sources. Remote Git, HTTP, MCP, runtime providers and credentials belong in a local deployment.
A small test that can fail for a useful reason
After writing a ## Refunds section in knowledge/welcome.md, create tests/refund.ctx.md:
---
id: refund
name: Refund question includes the policy
consumer: assistant
objective: answer
required: true
query: Can I request a refund?
must:
- knowledge/welcome.md#refunds
---
# Refund context guardRun Test. must checks a rendered material locator; forbid checks that a locator is absent. In the full test format, expect.include and expect.exclude check layers, expect.status checks the resolution status and expect.maxTokens caps the estimated budget. A required FAIL or UNKNOWN blocks a release-quality Build. Tests check context selection and rendering, not generated answer quality. Preserve representative customer inputs in tests, but omit sensitive real-world personal data.
Transfer deliberately
Download folder ZIP produces ordinary files to extract and open locally. Download JSON package produces a seif.cloud-project.v1 archive that the browser's Import project accepts. Import creates a separate project; it does not merge histories or synchronize later edits. The local source checkout includes scripts/import-cloud-project.mjs to extract JSON into a new folder. Both exports omit credentials, sessions, traces and Build directories. A local project with absolute paths or remote connections needs those settings adapted before cloud import. Local import walkthrough.