CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.What this is
Documentation site for Vero Monitor Service (VMS) built on Mintlify. Content only — there is nopackage.json, build script, test suite, or CI. The entire site is .mdx pages plus assets, configured by docs.json. Mintlify renders and hosts it.
Scope is operator-facing and limited to three workflows: set up the VMS master control plane, roll out VMS agent collectors, and troubleshoot collectors/dashboards/alerts/probes. Do not add trading-platform integration content (see skill.md).
Bilingual structure — keep en/ and vi/ in sync
Content lives in two parallel trees,en/ (English) and vi/ (Tiếng Việt), with identical file sets. Every page exists in both languages.
- A change to any
en/page must be mirrored in itsvi/counterpart, and vice versa. Recent history shows pages are edited in pairs (“vi and en kept in sync”); breaking parity is a defect. - Translate the prose, but keep the technical content identical across languages — commands, paths, config field names, metric names, and table structure must match exactly.
Navigation and adding pages
docs.json is the Mintlify config: theme, colors, fonts, SEO, and the navigation tree. Navigation is defined separately per language under navigation.languages[] (one block for en, one for vi), each with its own groups.
A page only appears in the site if it is listed in docs.json. To add a page you must do all three: create en/<page>.mdx, create vi/<page>.mdx, and add the path to both language groups in docs.json. (Note: en/probes/container-mon.mdx and en/probes/k8s-mon.mdx exist on disk but are absent from navigation, so they are not published — match an existing pattern before relying on either.)
Page paths in docs.json omit the .mdx extension and are relative to repo root (e.g. en/probes/ping).
Page conventions
Every page starts with YAML frontmatter:title, description, and optionally mode ('wide' / 'custom'). Pages use Mintlify components — <Card>/<CardGroup>, <Steps>/<Step>, <Warning>/<Info>/<Note> — and inline JSX (the progress bars in setup pages, video heroes).
Probe pages (en/probes/* and vi/probes/*) follow a fixed template; reuse it for any new probe:
## Description— what the probe does and platform/adapter requirements## Config fields— a table:Field | Type | Required | Default | Description## Metrics— a table:Metric | Type | Unit | Labels | Condition## Example config## Notes
Docs must match the shipping agent
The bulk of recent work is correcting docs to match what the agent actually ships. Config field names, defaults, metric names/labels (e.g.vms.host.cpu.usage_percent), CLI invocations (agent.sh / agent.ps1), file paths, and service models (Linux systemctl --user, Windows Scheduled Task) must reflect the real agent — not aspirational or outdated behavior. When unsure whether a documented command/field is real, flag it rather than inventing one.
Writing style
Plain, operator-focused, concise. No marketing language. Write the simplest sentence that conveys the fact; cut adjectives, hype, and filler. Prefer short declarative sentences, tables, and step lists over prose. State what something does and how to use it — nothing more.Local preview
This is a standard Mintlify project (config isdocs.json). Preview locally with the Mintlify CLI from the repo root:
docs.json navigation in sync.
