/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.
$ npx -y skills add modu-ai/moai-adk --skill hns-moaiadk-dev-reference --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-moaiadk-dev-reference
Context preview
The summary Claude sees to decide when to auto-load this skill.
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.
SKILL.md
hns-moaiadk-dev-reference.SKILL.mdname: hns-moaiadk-dev-reference
description: 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.
hns-moaiadk-dev-reference
> moai-adk-go 로컬 dev 레퍼런스 — `CLAUDE.local.md` §5/§7/§10 의 작업 특화 상세를 이곳으로 이관 (lazy-load). 세션마다 필요 없는 참고 자료. 항상-로드 컨텍스트 절감용. > 소유: `hns-*` 네임스페이스 (user-owned, `moai update` 보존 — CLAUDE.local.md §24). 템플릿 미러 금지.
---
Version Management (from CLAUDE.local.md §5)
Single Source of Truth
- [HARD] `go.mod` module version + git tags are the authoritative sources
- [HARD] `pkg/version/version.go` reads from git tags at build time
**Version Reference:**
- Authoritative Source: Git tags (e.g., `v1.0.0`)
- Runtime Access: `pkg/version/version.go` via `git describe`
- Config Display: `.moai/config/sections/system.yaml` (updated by release process)
Build Version Injection
Version is injected at build time using ldflags:
# Build with version injection
go build -ldflags="-X github.com/modu-ai/moai-adk/pkg/version.Version=v1.0.0"
# Makefile handles this automatically
make build VERSION=1.0.0
Files Requiring Version Sync
When releasing new version, update:
**Documentation Files:**
- README.md (Version line)
- README.ko.md (Version line)
- CHANGELOG.md (New version entry)
**Configuration Files:**
- .moai/config/sections/system.yaml (moai.version)
- internal/template/templates/.moai/config/sections/system.yaml.tmpl (moai.version)
Release Process
1. Update CHANGELOG.md with new version entry 2. Create git tag: `git tag v1.0.0` 3. Push tag: `git push origin v1.0.0` 4. Build release binaries: `make release VERSION=1.0.0`
---
Hook Development (from CLAUDE.local.md §7)
[HARD] Shell Script Hooks Only
moai-adk-go uses shell scripts for hooks, NOT Python:
**Hook Wrapper Pattern:**
#!/bin/bash
# .claude/hooks/moai/handle-session-start.sh
# Read stdin JSON from Claude Code
INPUT=$(cat)
# Call moai binary with hook subcommand
moai hook session-start <<< "$INPUT"
**Why Shell Scripts:**
- Faster execution (no Python startup overhead)
- Always available (no dependency on uv/python)
- Cross-platform (bash, /bin/sh)
Hook Command Format
**settings.json hook configuration:**
{
"hooks": {
"SessionStart": [{
"hooks": [{
"command": "\"$CLAUDE_PROJECT_DIR/.claude/hooks/moai/handle-session-start.sh\"",
"timeout": 5
}]
}]
}
}**Key Rules:**
- [HARD] Always quote `$CLAUDE_PROJECT_DIR`: `"$CLAUDE_PROJECT_DIR"`
- [HARD] Use full path to hook wrapper script
- [HARD] Set appropriate timeout. MoAI policy default is 5 seconds (the Claude Code platform default is 10 minutes; MoAI tightens this to 5 seconds to avoid stalling the session).
Platform Differences
**macOS/Linux:**
"command": "\"$CLAUDE_PROJECT_DIR/.claude/hooks/moai/hook.sh\""
**Windows:**
"command": "\"%CLAUDE_PROJECT_DIR%\\.claude\\hooks\\moai\\hook.sh\""
---
Build & Dev Commands (from CLAUDE.local.md §10)
Common Commands
# Build the project
make build
# Run tests
make test
# Run with race detection
make test-race
# Run linter
make lint
# Format code
make fmt
# Install locally
make install
# Clean build artifacts
make clean
# Run go fix modernizers
make fix
Development Workflow
# 1. Edit templates
vim internal/template/templates/.claude/skills/moai/SKILL.md
# 2. Regenerate embedded files
make build
# 3. Run tests
go test ./internal/template/...
# 4. Test locally
./moai init test-project
# 5. Commit
git add internal/template/templates/
git commit -m "feat(template): update SKILL.md"
Read more
name: hns-moaiadk-dev-reference description: 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.
hns-moaiadk-dev-reference
> moai-adk-go 로컬 dev 레퍼런스 — `CLAUDE.local.md` §5/§7/§10 의 작업 특화 상세를 이곳으로 이관 (lazy-load). 세션마다 필요 없는 참고 자료. 항상-로드 컨텍스트 절감용. > 소유: `hns-*` 네임스페이스 (user-owned, `moai update` 보존 — CLAUDE.local.md §24). 템플릿 미러 금지.
---
Version Management (from CLAUDE.local.md §5)
Single Source of Truth
- [HARD] `go.mod` module version + git tags are the authoritative sources
- [HARD] `pkg/version/version.go` reads from git tags at build time
**Version Reference:**
- Authoritative Source: Git tags (e.g., `v1.0.0`)
- Runtime Access: `pkg/version/version.go` via `git describe`
- Config Display: `.moai/config/sections/system.yaml` (updated by release process)
Build Version Injection
Version is injected at build time using ldflags:
# Build with version injection go build -ldflags="-X github.com/modu-ai/moai-adk/pkg/version.Version=v1.0.0" # Makefile handles this automatically make build VERSION=1.0.0
Files Requiring Version Sync
When releasing new version, update:
**Documentation Files:**
- README.md (Version line)
- README.ko.md (Version line)
- CHANGELOG.md (New version entry)
**Configuration Files:**
- .moai/config/sections/system.yaml (moai.version)
- internal/template/templates/.moai/config/sections/system.yaml.tmpl (moai.version)
Release Process
1. Update CHANGELOG.md with new version entry 2. Create git tag: `git tag v1.0.0` 3. Push tag: `git push origin v1.0.0` 4. Build release binaries: `make release VERSION=1.0.0`
---
Hook Development (from CLAUDE.local.md §7)
[HARD] Shell Script Hooks Only
moai-adk-go uses shell scripts for hooks, NOT Python:
**Hook Wrapper Pattern:**
#!/bin/bash # .claude/hooks/moai/handle-session-start.sh # Read stdin JSON from Claude Code INPUT=$(cat) # Call moai binary with hook subcommand moai hook session-start <<< "$INPUT"
**Why Shell Scripts:**
- Faster execution (no Python startup overhead)
- Always available (no dependency on uv/python)
- Cross-platform (bash, /bin/sh)
Hook Command Format
**settings.json hook configuration:**
{
"hooks": {
"SessionStart": [{
"hooks": [{
"command": "\"$CLAUDE_PROJECT_DIR/.claude/hooks/moai/handle-session-start.sh\"",
"timeout": 5
}]
}]
}
}**Key Rules:**
- [HARD] Always quote `$CLAUDE_PROJECT_DIR`: `"$CLAUDE_PROJECT_DIR"`
- [HARD] Use full path to hook wrapper script
- [HARD] Set appropriate timeout. MoAI policy default is 5 seconds (the Claude Code platform default is 10 minutes; MoAI tightens this to 5 seconds to avoid stalling the session).
Platform Differences
**macOS/Linux:**
"command": "\"$CLAUDE_PROJECT_DIR/.claude/hooks/moai/hook.sh\""
**Windows:**
"command": "\"%CLAUDE_PROJECT_DIR%\\.claude\\hooks\\moai\\hook.sh\""
---
Build & Dev Commands (from CLAUDE.local.md §10)
Common Commands
# Build the project make build # Run tests make test # Run with race detection make test-race # Run linter make lint # Format code make fmt # Install locally make install # Clean build artifacts make clean # Run go fix modernizers make fix
Development Workflow
# 1. Edit templates vim internal/template/templates/.claude/skills/moai/SKILL.md # 2. Regenerate embedded files make build # 3. Run tests go test ./internal/template/... # 4. Test locally ./moai init test-project # 5. Commit git add internal/template/templates/ git commit -m "feat(template): update SKILL.md"
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-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 - /hns-oss-docs-readme-sync
README 4-file synchronization procedure for the oss-docs harness: English README.md as primary source, ko/ja/zh derivation, the shared language-switcher header contract, section-order parity checklist, and the manual verification recipe (no linter exists for READMEs). Loaded by
Open skill

