git clone --depth 1 https://github.com/modu-ai/moai-adk /tmp/hns-oss-docs-structure-map && cp -r /tmp/hns-oss-docs-structure-map/.claude/skills/hns-oss-docs-structure-map ~/.claude/skills/hns-oss-docs-structure-mapSKILL.md
# docs-site Structure Map
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/`.
## Path map
| 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 |
## main.yaml entry schema
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
```
## icon ↔ menu.html SVG-case coupling [HARD]
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:
```bash
grep -n '"<icon-value>"' docs-site/layouts/partials/menu.html
```
If absent, add the SVG path case in the same change.
## vercel.json redirect pattern
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.
## Known divergence to reconcile
`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.
## Tooling reality
- `gen_menu.py` (referenced by the legacy i18n rules doc) DOES NOT exist —
menu edits are manual; use the coupling grep above.
- Build check: `cd docs-site && hugo --minify --gc` must complete
warning-free (a malformed `_meta.yaml` or menu entry surfaces here).
Full recipe: Skill("hns-oss-docs-verify").Claude Code upstream change tracker -> moai-adk update plan + docs sync workflow (dev-only). Tracks new CC release notes, classifies changes by impact tier, cross-references official docs, generates update plan at .moai/research/ or .moai/specs/, and synchronizes docs-site 4-locale + README. NOT distributed to user projects.
GitHub Workflow - Manage issues and review PRs with Agent Teams (dev-only). NOT distributed to user projects.
MoAI-ADK production release via Enhanced GitHub Flow (CLAUDE.local.md §18). Creates release/vX.Y.Z branch, version bump, CHANGELOG (bilingual), PR to main, merge commit (NOT squash), then scripts/release.sh for tag + GoReleaser. Hotfix support via --hotfix flag. All git operations delegated to manager-git. Quality failures escalate to expert-debug. NOT distributed to user projects (dev-only).
Run the 7-phase /moai brain ideation workflow to convert ideas into validated proposals
Identify and safely remove dead code with test verification
Scan codebase and generate architecture documentation in codemaps/
Analyze test coverage, identify gaps, and generate missing tests
Hybrid design workflow — Claude Design import (path A) or code-based brand design (path B)