Install any skill in seconds. Free to start, no credit card required.
Get Started Free →docs-site structure map for the oss-docs harness structure-curator: exact paths and schemas for hugo.toml, per-locale content/<locale>/_meta.yaml, data/menu/main.yaml (4-locale name maps + icon values), the icon-to-SVG-case coupling in layouts/partials/menu.html, shortcodes, the FROZEN moai-brand.css, vercel.json redirect examples, and the known design-vs-guides divergence. Loaded by the structure-curator before any navigation or config edit.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 3% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -25% | 0% |
| case-07 | ✗→✓ | ▲ Improved | -11% | 0% |
Hugo geekdoc site at docs-site/, deployed to adk.mo.ai.kr via Vercel (auto-deploy on push). All paths below are relative to docs-site/.
| Surface | Path | Notes | |---------|------|-------| | Site config | hugo.toml | NOT hugo.yaml. defaultContentLanguage = "ko"; version SSOT params.version / params.releaseDate | | Content | content/{ko,en,ja,zh}/ | ko canonical; 4 locale trees mirror each other | | Section order | content/<locale>/_meta.yaml | per-locale; a section change lands in ALL FOUR files | | Sidebar menu | data/menu/main.yaml | 4-locale name maps + icon: per entry | | Menu icons | layouts/partials/menu.html | SVG switch/case per icon: value — coupling below | | Shortcodes | layouts/shortcodes/ | icon.html (variants ok/warn/danger/primary/muted), etc. | | CSS | static/moai-brand.css (FROZEN — never edit), static/moai-design.css | Claude Warm Editorial, light-only theme | | Redirects | vercel.json | redirects array — the only Vercel surface this harness touches |
Each sidebar entry carries a 4-locale name map and an icon:
yaml- name: ko: 시작하기 en: Getting Started ja: はじめに zh: 快速开始 ref: /getting-started icon: rocket
Every icon: value in main.yaml MUST have a matching case in the SVG switch inside layouts/partials/menu.html. An unmatched value renders an empty <svg> — a silent visual defect (no build warning). After any icon edit:
bashgrep -n '"<icon-value>"' docs-site/layouts/partials/menu.html
If absent, add the SVG path case in the same change.
Moved/renamed pages require BOTH entries:
json{ "redirects": [ { "source": "/:locale(ko|en|ja|zh)/old-path", "destination": "/:locale/new-path" }, { "source": "/old-path", "destination": "/ko/new-path" } ] }
The Vercel project binding itself is immutable — this harness edits only the redirects array.
content/<locale>/_meta.yaml carries a design section while data/menu/main.yaml carries guides. When touching either file, reconcile toward the SSOT design report's 12→11 section restructure (.moai/reports/readme-docs-redesign-20260713.md) and record the resolution direction in your report.
gen_menu.py (referenced by the legacy i18n rules doc) DOES NOT exist —menu edits are manual; use the coupling grep above.
cd docs-site && hugo --minify --gc must completewarning-free (a malformed _meta.yaml or menu entry surfaces here). Full recipe: Skill("hns-oss-docs-verify").
Other measured skills in the registry, with their headline benchmark lift.