/hns-oss-docs-verify
Mandatory verify recipe for the oss-docs harness — the runnable exit gate every specialist executes before returning: warning-free hugo build, sitemap existence, URL-blacklist grep, Mermaid LR/RL direction grep, 4-locale file-existence and section-count parity, README 4-file
$ npx -y skills add modu-ai/moai-adk --skill hns-oss-docs-verify --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
- You can call itInvoke it directly when you want it.
- Slash command
/hns-oss-docs-verify
Context preview
The summary Claude sees to decide when to auto-load this skill.
Mandatory verify recipe for the oss-docs harness — the runnable exit gate every specialist executes before returning: warning-free hugo build, sitemap existence, URL-blacklist grep, Mermaid LR/RL direction grep, 4-locale file-existence and section-count parity, README 4-file
SKILL.md
hns-oss-docs-verify.SKILL.mdname: hns-oss-docs-verify
description: >
Mandatory verify recipe for the oss-docs harness — the runnable exit gate
every specialist executes before returning: warning-free hugo build,
sitemap existence, URL-blacklist grep, Mermaid LR/RL direction grep,
4-locale file-existence and section-count parity, README 4-file heading
parity, and body-emoji scan. All checks are inlined here because
docs-i18n-check.sh and gen_menu.py do not exist.
allowed-tools: Read, Grep, Glob, Bash
user-invocable: false
metadata:
version: "1.0.0"
category: "harness"
status: "active"
updated: "2026-07-13"
tags: "oss-docs,verify,quality-gate,hugo,parity,blacklist"
oss-docs Verify Recipe (exit gate)
Runnable checks for the sprint-contract dimensions. **The scripts `docs-i18n-check.sh` and `gen_menu.py` DO NOT exist — never shell out to them; every check is inlined below.** All checks are read-only; this skill never commits or pushes.
1. Build clean (`build-clean`, must_pass, threshold 1.0)
cd docs-site && hugo --minify --gc
- Must exit 0 AND complete **warning-free** (any `WARN`/`ERROR` line = FAIL).
test -f docs-site/public/sitemap.xml && echo "sitemap OK" || echo "sitemap MISSING"
2. URL blacklist (`content-fidelity`)
grep -rn 'docs\.moai-ai\.dev\|adk\.moai\.com\|adk\.moai\.kr' docs-site/content README*.md
- Expected: **no matches**. Only `adk.mo.ai.kr` is valid. Note: the pattern
`adk\.moai\.kr` does not match `adk.mo.ai.kr` (different dot positions) — no false positive on the valid domain.
3. Mermaid direction (`style-compliance`)
grep -rn 'flowchart LR\|graph LR\|flowchart RL\|graph RL' docs-site/content
- Expected: **no matches** (TD-only rule; `flowchart TD` / `graph TB` pass).
4. 4-locale parity (`locale-parity`, must_pass, threshold 1.0)
File-existence parity — every ko page has en/ja/zh counterparts:
cd docs-site/content && for f in $(cd ko && find . -name '*.md'); do
for loc in en ja zh; do
[ -f "$loc/$f" ] || echo "MISSING: $loc/$f"
done
doneSection-count parity per locale tree (compare totals):
for loc in ko en ja zh; do
printf '%s: %s\n' "$loc" "$(grep -rc '^## ' docs-site/content/$loc --include='*.md' | awk -F: '{s+=$2} END {print s}')"
doneREADME 4-file heading-count parity:
grep -c '^## ' README.md README.ko.md README.ja.md README.zh.md
- Expected: identical counts across the 4 files (and identical H2 order —
spot-check with `grep '^## ' <file>`).
5. Body-emoji scan (`style-compliance`)
grep -rnP '[\x{1F300}-\x{1FAFF}\x{2600}-\x{26FF}\x{2700}-\x{27BF}]' docs-site/content --include='*.md' | grep -v '{{<' | head -40- Review each hit: body-text emoji = FAIL (use `{{</* icon */>}}`);
preserved typographic symbols (`→ ← ↓ ✓ ✗`, U+2702 in handoff blocks) and branding emoji inside orchestrator-banner example code blocks are allowed — judge code-block context before flagging.
Scoring map (sprint contract)
| Dimension | Checks | Threshold | |-----------|--------|-----------| | `locale-parity` | §4 (all parity checks clean = 1.0) | 1.0 (must_pass) | | `build-clean` | §1 (build warning-free + sitemap = 1.0) | 1.0 (must_pass) | | `style-compliance` | §3 + §5 (proportion of clean checks) | 0.95 | | `content-fidelity` | §2 + facts/figures preserved vs canonical | 0.9 |
A must_pass dimension below threshold blocks the harness run result (`must_pass_ok: false`) — fix and re-verify before handing back to the orchestrator.
Read more
name: hns-oss-docs-verify description: > Mandatory verify recipe for the oss-docs harness — the runnable exit gate every specialist executes before returning: warning-free hugo build, sitemap existence, URL-blacklist grep, Mermaid LR/RL direction grep, 4-locale file-existence and section-count parity, README 4-file heading parity, and body-emoji scan. All checks are inlined here because docs-i18n-check.sh and gen_menu.py do not exist. allowed-tools: Read, Grep, Glob, Bash user-invocable: false metadata: version: "1.0.0" category: "harness" status: "active" updated: "2026-07-13" tags: "oss-docs,verify,quality-gate,hugo,parity,blacklist"
oss-docs Verify Recipe (exit gate)
Runnable checks for the sprint-contract dimensions. **The scripts `docs-i18n-check.sh` and `gen_menu.py` DO NOT exist — never shell out to them; every check is inlined below.** All checks are read-only; this skill never commits or pushes.
1. Build clean (`build-clean`, must_pass, threshold 1.0)
cd docs-site && hugo --minify --gc
- Must exit 0 AND complete **warning-free** (any `WARN`/`ERROR` line = FAIL).
test -f docs-site/public/sitemap.xml && echo "sitemap OK" || echo "sitemap MISSING"
2. URL blacklist (`content-fidelity`)
grep -rn 'docs\.moai-ai\.dev\|adk\.moai\.com\|adk\.moai\.kr' docs-site/content README*.md
- Expected: **no matches**. Only `adk.mo.ai.kr` is valid. Note: the pattern
`adk\.moai\.kr` does not match `adk.mo.ai.kr` (different dot positions) — no false positive on the valid domain.
3. Mermaid direction (`style-compliance`)
grep -rn 'flowchart LR\|graph LR\|flowchart RL\|graph RL' docs-site/content
- Expected: **no matches** (TD-only rule; `flowchart TD` / `graph TB` pass).
4. 4-locale parity (`locale-parity`, must_pass, threshold 1.0)
File-existence parity — every ko page has en/ja/zh counterparts:
cd docs-site/content && for f in $(cd ko && find . -name '*.md'); do
for loc in en ja zh; do
[ -f "$loc/$f" ] || echo "MISSING: $loc/$f"
done
doneSection-count parity per locale tree (compare totals):
for loc in ko en ja zh; do
printf '%s: %s\n' "$loc" "$(grep -rc '^## ' docs-site/content/$loc --include='*.md' | awk -F: '{s+=$2} END {print s}')"
doneREADME 4-file heading-count parity:
grep -c '^## ' README.md README.ko.md README.ja.md README.zh.md
- Expected: identical counts across the 4 files (and identical H2 order —
spot-check with `grep '^## ' <file>`).
5. Body-emoji scan (`style-compliance`)
grep -rnP '[\x{1F300}-\x{1FAFF}\x{2600}-\x{26FF}\x{2700}-\x{27BF}]' docs-site/content --include='*.md' | grep -v '{{<' | head -40- Review each hit: body-text emoji = FAIL (use `{{</* icon */>}}`);
preserved typographic symbols (`→ ← ↓ ✓ ✗`, U+2702 in handoff blocks) and branding emoji inside orchestrator-banner example code blocks are allowed — judge code-block context before flagging.
Scoring map (sprint contract)
| Dimension | Checks | Threshold | |-----------|--------|-----------| | `locale-parity` | §4 (all parity checks clean = 1.0) | 1.0 (must_pass) | | `build-clean` | §1 (build warning-free + sitemap = 1.0) | 1.0 (must_pass) | | `style-compliance` | §3 + §5 (proportion of clean checks) | 0.95 | | `content-fidelity` | §2 + facts/figures preserved vs canonical | 0.9 |
A must_pass dimension below threshold blocks the harness run result (`must_pass_ok: false`) — fix and re-verify before handing back to the orchestrator.
Agentic development harness for Claude Code — SPEC-driven plan/run/sync, TRUST 5 quality gates, model+effort routing, and Claude×GLM multi-LLM cost control. Single Go binary, 16 languages, zero deps.
Repo: modu-ai/moai-adk
Other skills on moai-adk.
- /hns-lsel-applier
Local Self-Evolution Loop (LSEL) APPLY engine — the playback-only consumer of approved decision.json records that drives `.moai/hooks/lsel-apply.sh` for the GOOS-local PROPOSE→APPLY seam closure (SPEC-LSEL-LOCAL-EVOLUTION-001 M3). Reads an approved decision.json, validates the
Open skill - /hns-lsel-curator
Local Self-Evolution Loop (LSEL) curator — the CLUSTER + drain engine for the GOOS-local PROPOSE→APPLY seam closure (SPEC-LSEL-LOCAL-EVOLUTION-001). Companion-offset drain of .moai/lessons-inbox.jsonl with a drain-side severity filter that drops the ~65% Bash-timeout/sandbox
Open skill - /hns-moaiadk-best-practices
moai-adk-go best-practices reference for the 4 harness specialists (cli-template-specialist, quality-specialist, workflow-specialist, hook-ci-specialist). Covers TRUST 5 gates, Go test isolation (t.TempDir, no OTEL env in parallel tests), hardcoding-prevention rules (env
Open skill - /hns-moaiadk-dev-reference
moai-adk-go local dev reference — version management/release process (sec 5), shell-script hook development (sec 7), build & dev commands (sec 10). Load only when performing these specific tasks.
Open skill - /hns-moaiadk-patterns
moai-adk-go domain-patterns reference for the 4 harness specialists (cli-template-specialist, quality-specialist, workflow-specialist, hook-ci-specialist). Covers the CLI/template/config/hook/spec subsystem architecture, key source paths, the Pipeline specialist delegation map,
Open skill - /hns-oss-docs-i18n-rules
HARD i18n rules digest for the oss-docs harness specialists working on moai-adk-go README 4-locale set and the docs-site (adk.mo.ai.kr). Covers the canonical-locale chains, the 4-locale same-PR obligation, Mermaid TD-only, the no-emoji + icon-shortcode rule, emphasis-marker
Open skill

