Skip to main content

rustfs-docs

Write, edit, or review RustFS documentation in this repo (docs.rustfs.com, a FumaPress site under content/). Use whenever a task adds or changes a page in content/, updates navigation (meta.json), touches screenshots, or reviews a docs change. Encodes the factual-accuracy discipline, canonical constants, FumaPress syntax rules, page structure, voice, and the pre-flight checks that keep the docs correct and consistent.

소스 정보

저장소
rustfs/docs.rustfs.com
최근 소스 활동
2026년 7월 24일 13:07
감지된 SKILL.md 언어
영어
스타
19
포크
81

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
rustfs-docs
description
Write, edit, or review RustFS documentation in this repo (docs.rustfs.com, a FumaPress site under content/). Use whenever a task adds or changes a page in content/, updates navigation (meta.json), touches screenshots, or reviews a docs change. Encodes the factual-accuracy discipline, canonical constants, FumaPress syntax rules, page structure, voice, and the pre-flight checks that keep the docs correct and consistent.
# Writing RustFS documentation This is a **FumaPress** site (Waku + Fumadocs). Pages live in `content/`; each page's URL mirrors its path (`content/administration/data/bucket/creation.md` → `/administration/data/bucket/creation`). Navigation is defined by `content/meta.json` (root sidebar) and per-folder `meta.json` files. Read `STYLE.md` (repo root) for the full style guide and `AGENTS.md` for repo mechanics. This skill is the operating playbook — follow it for every change. ## 1. Accuracy is the first rule The single worst class of past defects was **plausible but false** content: invented CLI commands, non-existent config files, wrong defaults, capabilities that don't exist. Never repeat it. - Every command, flag, environment variable, port, default, metric name, limit, or capability claim MUST be verifiable against the **upstream source** (`rustfs/rustfs`) or observed by running RustFS. When you cannot verify it, **omit it** — do not guess, and never ship a command you have not confirmed exists (no "hypothetical `rustfs-admin ...`" placeholders). - To verify: read `rustfs/src/config/cli.rs` and `crates/config/src/constants/` for flags/env/defaults; `crates/*` for capabilities; run the binary or the Docker image for behavior. Cite the source (file:line) in your reasoning. - The only CLI binary is `rustfs` (subcommands `server` / `info` / `tls`). There is a `rc` admin client referenced by the Helm chart — treat its exact syntax as unverified unless confirmed. Admin operations are the Console or the admin HTTP API. - RustFS is S3-compatible but **not 100%** — link the compatibility notes rather than claiming full coverage. Never write "100% S3 compatible" or "100% secure". ## 2. Canonical constants (use these verbatim) | Thing | Value | |---|---| | S3 API endpoint (examples) | `http://localhost:9000` (note: replace with server IP) | | Console | port `9001` (`RUSTFS_CONSOLE_ADDRESS`); desktop launcher uses `7001` | | Internal node RPC | shares port `9000` | | Region | `us-east-1` | | Bucket name | `my-bucket` | | Sample object / path | `hello.txt` / `/path/to/hello.txt` | | Credentials | `<your-access-key>` / `<your-secret-key>` placeholders | | Default credentials | `rustfsadmin` / `rustfsadmin` — mention only as a local-test caveat, never as the recommended value | | Addressing | RustFS defaults to **path-style**; every SDK/client example must enable path-style (`forcePathStyle` / `force_path_style` / `UsePathStyle` / `addressing_style=path`); virtual-host needs `RUSTFS_SERVER_DOMAINS` | Banned in examples (the CI rejects them): `12.34.56.78`, `cn-east-1`, `password.txt`, `/Users/<name>` private paths, real-looking access keys, `100% S3`, `100% secure`, `rustfs-admin`. ## 3. Page structure - Frontmatter: `title` (required — rendered as the H1 and sidebar label) and a `description` that is a **complete sentence** (no `…` truncation, not a copy of the first body line). Do **not** add a duplicate top-level `#` heading. - Open with what the page is and what the reader will accomplish, plus any prerequisites — not a marketing slogan. - Headings are unnumbered, EXCEPT install/how-to step sequences: `## 1. …` headings render as numbered steps (remark-steps). Don't skip heading levels. - Same-level parallel operations (UI / mc / API) use same-level headings. - End task pages with a short "Next steps" with real links. - Follow Diátaxis: keep concept / task / reference / troubleshooting content in separate pages; a reference page is a lookup table, a task page is steps. ## 4. FumaPress formatting (use sparingly, where it aids scanning) - **Admonitions** (work in `.md`): `:::note`, `:::tip`, `:::warning[Title]`, `:::danger`, closed by `:::`. Prefer these over bare `>` blockquotes for notes/warnings. Do not mix syntaxes. - **Code fences** always carry a language. Commands → `bash`; command output → `text`; config files → `ini`/`yaml`/`nginx` with `title="/etc/…"`; S3 request lines → `http`. Use `{2,3}` meta ranges to highlight lines. - **JSX components require the `.mdx` extension** — in a plain `.md` file they are silently dropped (renders blank, no build error). `<Cards>`/`<Card title href>` for link grids; `<Tabs items={[...]}><Tab value id>` for mutually exclusive alternatives (each `Tab` needs a page-unique `id`). Rename a page to `.mdx` only when it actually uses components — the URL does not change. - Diagrams: ```mermaid fenced blocks. Math: KaTeX `$…$` / `$$…$$`. ## 5. Voice Second person ("you"). Official recommendations as "We recommend". No superlatives or promises (fastest, perfect, 100% …). Technical pages carry instructions, not sales copy — solutions/marketing content belongs on the main site (rustfs.com), not in these docs. The docs sidebar has seven sections: Installation · Administration · Security & Compliance · Operations · Troubleshooting · Developer · Reference. New pages go into one of these. ## 6. Navigation Every new page must be added to the appropriate `meta.json` (root or folder), or it becomes an orphan (invisible in the sidebar but still indexed). Align the sidebar label with the page's `title`. Relative `.md` links between pages resolve automatically (FumaPress maps by URL, so a `.md` link to a page shipped as `.mdx` is fine). ## 7. Screenshots - Capture the **current Console** in **English**, **light theme**, at **2×** device-pixel-ratio; downscale to ~2000 px wide and keep each **≤300 KB**. - No leaked secrets: use throwaway demo keys, `hello.txt` (never `password.txt`), and clear any presigned-URL/token field. - Meaningful `alt` text describing the location and action. Match the platform (don't show a macOS window on the Windows page). - Store images in a sibling `images/` folder; reference by relative path. ## 8. Pre-flight before proposing a change Always run, from the repo root, and fix every finding: ```bash npm run docs:check # orphans, broken links, unlabelled fences, banned strings, oversized images npm run build # must succeed ``` For a change with runtime surface (commands, config, Console flows), verify the behavior against a running RustFS (binary or `docker run rustfs/rustfs`) or the upstream source — do not rely on the previous docs, which may be wrong. ## 9. Reviewing a docs change Check, in priority order: (1) every factual claim is verifiable; (2) canonical constants and no banned strings; (3) page structure and voice; (4) correct `.md`/`.mdx` extension for any component use; (5) new pages are in `meta.json`; (6) `docs:check` and `build` pass. Reject invented commands and unverifiable numbers rather than softening them.
GitHub에서 보기