You are writing the official documentation for Eydara EyVz. Generate complete documentation in Astro Starlight format, with full English and Swedish versions using Starlight's i18n structure. Starlight is already set up and there are placeholders for Swedish and English versions.
Explore the source code in src/agent/aivz thoroughly before writing. Use it as the authoritative reference for all functionality, field names, and behavior. Do not invent features.
Eydara consists of several stages that work together — capture, preprocess, ingest, annotate, train, and deploy — each handling a distinct part of the pipeline from raw data to deployed model. The platform is deployed on-premise at customer sites such as manufacturing facilities.
EyVz is the human-facing component of Eydara. It is where domain experts — people who know the product, not the model — inspect images captured by cameras at inspection rigs along the production line, annotate those images, and evaluate model predictions. The annotations produced in EyVz are used to train models that detect product defects.
On the landing page, describe the Eydara pipeline stages at a conceptual level — one or two sentences each — so a new user understands the overall flow and where EyVz fits. Do not go into technical implementation details of the other stages. The landing page should read "Welcome to Eydara", not "Welcome to EyVz". EyVz is the tool; Eydara is the platform identity.
Follow the Astro documentation (https://docs.astro.build/en/getting-started/) as your primary visual and structural reference. The goal is documentation that feels lightweight, scannable, and component-rich — not dense prose.
Key principles:
Every .mdx page must import and use Starlight's built-in components where applicable. Do not write plain markdown when a component exists for the purpose. These are the components to use:
import { Steps, Aside, Tabs, TabItem, LinkCard, CardGrid } from '@astrojs/starlight/components';
<Steps>Wrap any numbered procedure in <Steps>. This renders numbered circles instead of a plain ordered list. Use it for every multi-step workflow.
<Steps>
1. **Open the Home view.** Navigate to the main page.
2. **Apply a filter.** Use the sidebar to narrow results.
3. **Click an image.** The annotation view opens.
</Steps>
<Aside>Use <Aside> for tips, notes, and cautions. Do not skip these — they add visual rhythm and highlight important information.
<Aside type="tip">
Use **Auto-update** to see new images as they arrive in real time.
</Aside>
<Aside type="caution">
Auto-update adds load to the database. Disable it when not actively monitoring.
</Aside>
<Aside>
This is a neutral note — useful for context that doesn't fit in the main flow.
</Aside>
Available types: note (default), tip, caution, danger.
Use markdown tables for any structured information: UI element descriptions, button actions, field comparisons, filter options. Prefer tables over bullet lists when items have two or more attributes.
| Element | Description |
|---|---|
| **Image thumbnail** | The captured image with bounding box overlays. |
| **Predictions** | AI output displayed as `label:value [confidence%]`. |
| **Annotations** | Human-provided labels, shown after annotation. |
<LinkCard> and <CardGrid>Use for "What's next?" sections or when linking to related pages with descriptions.
<CardGrid>
<LinkCard title="Filtering" href="/guides/filtering/" description="Master the filter panel." />
<LinkCard title="Annotation" href="/guides/annotation/" description="Learn the annotation workflow." />
</CardGrid>
<Aside> (tip, note, or caution)<Steps>Apply Filters, label:value [confidence%]These principles govern all documentation decisions without exception:
If documentation ever makes Eydara feel autonomous, silent in its assumptions, or overly confident — something is wrong.
The central rule: Eydara guides. It does not shout. Eydara speaks when it has something to say.
Apply this to every sentence written:
When describing behavior under uncertainty or low confidence: explain that Eydara exposes uncertainty, slows conclusions, and invites review. Never imply it masks ambiguity or forces outcomes to appear reliable.
Do not position Eydara as autonomous, self-directing, or universally flexible. It may be described as a platform for clarity at the edge, a governed system for consistent decision support, or a foundation designed for scale without fragmentation.
In Swedish: use a calm, professional tone. Avoid marketing language. Prefer short, direct sentences. Do not translate idioms literally — write as a Swedish engineer would naturally write.
The long-term test: documentation should be something engineers recognize as honest, that sales cannot easily distort, and that customers experience as calm and reliable. If it needs defending through argument, something has gone wrong.
Documentation must never reveal, reference, or hint at customer-specific information of any kind. This is a hard constraint with no exceptions.
This includes, but is not limited to:
If the source code contains such details — in comments, variable names, file paths, example data, or anywhere else — treat them as implementation artifacts. Do not include them in documentation, even as examples. Replace with generic, neutral placeholders such as product-line-a, run-20240101, or example-batch where concrete examples are needed. When in doubt, omit rather than generalize.
Only generate documentation for the following three views in EyVz:
Do not document other views or settings pages. If the source code reveals relevant details about these three views, include them. Ignore everything else.
Generate one page per view, plus a landing page, a How-To chapter, and a Glossary:
Each view page should include:
A dedicated chapter with three workflow guides:
Annotate from scratch without an AI model How to start labeling images manually when no model exists yet. Cover the full workflow from selecting images to saving annotations.
Understand how an existing model behaves How to use EyVz to evaluate a model's predictions — identify what it gets right, what it gets wrong, and where it is uncertain. Focus on using confidence scores, thresholds, and filtering to build an honest picture of model performance.
Verify that a new model version is better than the current one How to compare two model runs side by side. What to look for in threshold statistics, how to spot regressions, and how to make a grounded decision about whether to promote the new version.
Each guide should be practical, step-by-step, and grounded in what the UI actually provides. Do not describe capabilities that do not exist in the source code.
A standalone glossary page defining all domain-specific and ML-adjacent terms used in EyVz and its documentation. The glossary must be grounded in the source code — only define terms that actually appear in the UI, the data model, or the documented workflows.
Write definitions for a domain expert audience: someone who understands manufacturing and quality control, but has no machine learning background. Every definition must explain what the term means in practical terms — what it represents, why it matters to the user's task — not how it works internally.
Terms to define include, for example:
Explore the source code and UI thoroughly to identify all terms that may be unfamiliar or unclear to a new user. Define every such term you find.
Format the glossary alphabetically. For each term, write two to four sentences. Do not use bullet points within definitions — write in plain prose. Cross-reference related terms where helpful (e.g. "See also: Threshold").
Both English and Swedish versions of the glossary must be generated. Swedish definitions should read naturally — do not translate literally from English.